- 博客(48)
- 收藏
- 关注

原创 Ble Mesh技术目录
Ble Mesh技术(一)之概览Ble Mesh技术(二)之App LayerBle Mesh技术(三)之Model LayerBle Mesh技术(四)之Access LayerBle Mesh技术(五)之Upper transport LayerBle Mesh技术(六)之Lower Transport LayerBle Mesh技术(七)之Network LayerBle Me...
2020-01-16 10:51:55
3221
原创 支持向量机和核函数
1. 支持向量机1.1. 从logistic回归到支持向量机logistic回归模型:minθ1m[∑i=1my(i)(−loghθ(x(i)))+(1−y(i))(−log(1−hθ(x(i))))]+λ2m∑j=1nθj2\min_{\theta} \frac{1}{m}\left [ \sum_{i=1}^{m}y^{(i)}(-logh_{\theta}(x^{(i)}))+(1...
2020-03-16 17:55:14
555
原创 机器学习系统设计及算法评估
1. 数据集分类数据集分为训练集(training set),交叉验证集(cross validation set),测试集(test set)。比例为60:20:20。使用训练集对模型进行训练,得到使训练集误差Jtrain(θ)J_{train}(\theta)Jtrain(θ)最小的一系列参数θ\thetaθ,然后代入验证集,得到使验证集误差Jcv(θ)J_{cv}(\theta)Jcv...
2020-03-14 21:20:34
507
原创 C++类构造/继承/虚拟指针
1. C++类class CBase{public: int ipub; virtual int funcPub() { return ipub; } virtual int funcPrt() { return iprt; } virtual int funcPrv() { return iprv; }protect: int iprt;private: int iprv;...
2020-03-06 17:00:28
353
原创 C++STL之容器
C++STL中数据结构主要分为序列式容器和关联式容器。1. 序列式容器元素可序,但未必有序的容器。包含array,vector,list,duque,stack,queue等。1.1. array静态空间,类似数组,但比数组更加安全,配置完毕后不能改变大小。array<int, 5> arr; // 生成一个长度为5的整型数组1.2. vector具有动态改变长度的向量...
2020-03-05 19:29:21
272
原创 C++STL之空间配置器
1. STL分配内存方式第一步:调用alloc分配足够大内存;第二步:调用construct对内存进行初始化;第三步:调用destroy对对象进行析构;第四步:调用free对内存进行释放。2. alloc/freeSTL通过两种方式进行内存申请,第一种为第一级配置器,第二种为第二级配置器+第一级配置器。2.1 第一级配置器使用malloc(),free(),realloc()等C函...
2020-03-03 11:58:26
242
原创 神经网络及相关公式推导
1. 神经网络输入[x1,x2,...,xn][x_1, x_2,...,x_n][x1,x2,...,xn],输出[y1,y2,...,yk][y_1, y_2,...,y_k][y1,y2,...,yk]。当输出分类k>2k>2k>2时,使用[10...0],[01...0],[0...10],[00...1]\begin{bmatrix}1\\0\\.....
2020-02-12 21:40:59
880
原创 Ble Mesh技术(十二)之Provisioning
任何一个出厂的mesh设备是一个未配网设备(Unprovisioned Device),需要使用配网者(Provisioner)对未配网设备进行配网,使其成为mesh网络中的一个节点。要使未配网设备成为一个节点,需要配网者为其分配一个NetKey(表示该设备属于哪一个子网),一个IV Index(表示该设备是有效的),一个Unicast Address(作为该节点的唯一标识)。配网的流程其实就是配...
2020-01-16 10:14:58
6438
9
原创 Ble Mesh技术(十一)之Mesh安全
1. Mesh数据加密流程① AccessPDU由Opcode+Payload组成,在UTransport层进行加密,形成EncUTransportPDU,由EncAccessPDU+TransMIC组成。② LTrans层将加密后的EncUTransportPDU和未加密的ControlPDU分包后,形成LTransportPDU。③ Network层将目的地址DST+LTranspo...
2020-01-15 14:48:43
3212
原创 Ble Mesh技术(十)之Heartbeat
心跳消息也是上层传输层定义的控制消息之一。用于监控节点是否处于网络中,节点之间的距离。1. Heartbeat PDUFieldSize(bits)NotesRFU1Reserved for Future UseInitTTL7该消息的初始TTL值取值范围:0x00-0x7FFeatures16该节点正在使用的featureFeatures...
2020-01-15 11:13:17
2958
原创 Ble Mesh技术(九)之Friendship
Friend直接流程建立都是通过上层传输曾的控制PDU进行交互。控制消息大部分都为不分段消息,所以这一章我们以下层传输层的为分段消息作为PDU格式的总体示意图。1. Friendship相关Control PDU1.1. Friend Poll由LPN发起,请求Friend发送LPN睡眠期间为LPN存储的消息。Opcode=0x01,对应的Parameters如下所示:Fie...
2020-01-15 10:28:29
1597
原创 Ble Mesh技术(八)之Bearer Layer
承载层将网络层的数据通过ADV或者GATT的方式广播出去,并把各个接口接收到的数据送至网络层。1. Advertising Bearer通过广播进行数据收发。发送数据的广播类型为不可连接,不可扫描,不可定向广播类型。mesh在Bearer层的数据格式如下:FiledSize(octs)NotesLength1表示当前数据包的总长度AD Type1表示...
2020-01-14 16:53:56
3546
原创 Ble Mesh技术(七)之Network Layer
Network Layer负责消息的二次加解密,以及消息中继,代理的操作。1. Network Layer消息格式网络层数据大小为18-29字节。Field NameSize(bits)NotesIVI132bits IV值的最低有效位NID7由NetKey生成的7bits NIDCTL1CTL=0,表明这条消息是access msg;CTL=...
2020-01-14 16:15:52
2230
1
原创 Ble Mesh技术(六)之Lower Transport Layer
下层传输层主要负责数据的分段与重组。下层传输层接收上层传输层的Access消息和Control消息。1. 分段消息(Segmented Msg)1.1. 分段接入层消息(Segmented Access Message)分段接入层消息(5-16字节)的每个分段的结构如下:FieldSize(bits)NotesSEG1SEG=1,表示当前消息是分段消息AK...
2020-01-14 16:02:58
2111
3
原创 Ble Mesh技术(五)之Upper transport Layer
上层传输层负责接入层消息的加密,和控制消息的交互。1.Access PDU由Access层下发来的消息为Access PDU,Access PDU经过Appkey或者DevKey加密后生成4/8字节的TransMIC(transport message integrity check)。Encrypted Access Payload的最大size为380个字节。2.Control PD...
2020-01-14 11:28:12
1819
1
原创 Ble Mesh技术(四)之Access Layer
Access Layer将Model下发的消息转化成Mesh协议栈规定的格式,并将下层的数据上传至指定的Model。1.Payload前面讲到Model下发的数据包含3个信息,分别是Model ID/Opcode/Payload,因为Opcode包含Model ID,所以从Model层下来的有效信息只有Opcode和Payload。一条Access消息的最大长度是384字节,每一条消息经过...
2020-01-14 10:58:13
2732
1
原创 Ble Mesh技术(三)之Model Layer
编写Mesh的Model需要先知道节点(node),元素(element),模型(model)的概念。1. 节点(Node)简单来讲,一个节点就是一个mesh芯片。要使一个节点成为Mesh网络里面的点,需要配网者(provisioner) 配网,配置客户端(configuration client) 配置后才能正常使用。2. 元素(Element)一个元素就是执行一组功能的单位实体,一个节...
2020-01-14 10:19:32
6101
3
原创 Ble Mesh技术(二)之App Layer
Mesh设计出来的目的主要是为了解决什么呢?在我看来比较适合的场景为数据量小,对可靠性或者实时性要求不高,但规模较大的场景。我们知道BLE 5.0出现的多连接理论上可以支持一个蓝牙设备连接无限制个设备,但实际上由于芯片资源限制,一个设备能连接10个设备就算极限了,而且对于成本来说极不划算。在这种情况下,mesh的优势之一就在于不需要建立连接,因此发送消息的步骤相对来说要少一点,可以试着比较一下广...
2020-01-14 10:12:07
2547
原创 Ble Mesh技术(一)之概览
1. Mesh概览1.1. mesh消息的收发mesh消息收发方式区别于ble的连接方式,而是通过消息的发布(publish)与订阅(subscribe)进行消息的传递。mesh的数据包主要包含有以下字段:其中IVI/NID/CTL/TTL/SEQ暂不做解释,其中SRC/DST就代表这条消息是从哪里发来的和这条消息是要发送到哪里去。a.每个节点都有一个发布地址和多个订阅地址。b.发送...
2020-01-14 10:09:58
7052
原创 随机梯度下降算法及最优步长相关公式推导
返回目录运用批量梯度下降法(BGD),每次迭代需要对所有训练集进行运算。随机梯度下降法(SGD)则每次只对一次数据集进行运算。代价函数:J(θ⃗)=12m∑i=1i=m(θ⃗Tx⃗(i)−y(i))2J(\vec{\theta})=\frac{1}{2m}\sum_{i=1}^{i=m}( \vec{\theta}^T\vec{x}^{(i)}-y^{(i)})^2J(θ)=2m1i=...
2019-12-07 15:25:00
3940
原创 线性回归和逻辑斯蒂回归正则化
返回目录当特征量过少时,会出现欠拟合。即训练数据不能进行较好的拟合。当特征量过多时,会出现过拟合。即训练数据能很好的拟合,但测试数据不能进行较好的拟合。针对过拟合,需要在代价函数上加上惩罚项,模型复杂度越大,惩罚项越大。1. 线性回归正则化代价函数:J(θ)=12m∑i=1i=m(h(x(i))−y(i))2+β∑i=1i=nθi2J( \pmb{\theta}) = \frac{1...
2019-12-05 22:13:17
343
原创 逻辑斯蒂回归法多元分类
返回目录输出为包含多个值的离散序列。y∈{s1,s2,...,sK}y\in \{ s_1, s_2, ..., s_K \} y∈{s1,s2,...,sK}其中:K为输出样本不同值的个数。1.转化为多个二元分类。将预测值yyy进行以下映射,可划分为KKK组:zk={1(y=sk)0(y≠sk)z_k=\begin{cases}1& (y = s_k) \...
2019-12-05 11:23:43
1279
原创 逻辑斯蒂回归法二元分类
返回目录预测值为0或者1的离散序列。将x\pmb xxxx映射成0或者1,使用sigmoid函数进行模拟。假设函数:h(x)=11+e−θTxh(\pmb{x}) =\frac{1}{ 1+e^{ -\pmb{\theta}^T\pmb{x}}}h(xxx)=1+e−θθθTxxx1其中:x=[x0,x1,...,xn]T∈R(n+1)×1θ=[θ0,θ1,...,θn]T∈R...
2019-12-05 11:05:00
602
原创 线性回归梯度下降法推导
返回目录预测值为一系列连续的值假设函数:h(x)=θTxh(\pmb{x}) = \pmb{\theta}^T\pmb{x}h(xxx)=θθθTxxx其中:x=[x0,x1,...,xn]T∈R(n+1)×1θ=[θ0,θ1,...,θn]T∈R(n+1)×1(n为特征个数)\begin{aligned}\pmb{x}=[x_0, x_1, ...,x_n]^T\in\math...
2019-12-05 11:00:17
755
原创 线性回归公式法推导
返回目录预测值为一系列连续的值假设函数:h(x)=θTxh(\pmb{x}) = \pmb{\theta}^T\pmb{x}h(xxx)=θθθTxxx其中:x=[x0,x1,...,xn]T∈R(n+1)×1θ=[θ0,θ1,...,θn]T∈R(n+1)×1(n为特征个数)\begin{aligned}\pmb{x}=[x_0, x_1, ...,x_n]^T\in\math...
2019-12-05 10:51:54
405
原创 manjaro xfce配置
1.升级系统# 排列源sudo pacman-mirrors -g# 同步 sudo pacman-optimize && sync # 升级系统sudo pacman -Syyu2.添加源sudo nano /etc/pacman.conf# 在文件后添加如下语句[archlinuxcn]SigLevel = Optional TrustedOnly...
2018-04-09 18:01:38
3579
原创 各种排序
/************************输入:待排数组vector<int>*输出:排好的序列***********************/#include <iostream>#include <vector>using namespace std;/******简单排序*********时间复杂度: 平均:O(n^2) 最坏:O(n^2) 最好
2017-08-27 23:19:13
272
原创 最短路算法
根据大话数据结构整理/***********************************输入:邻接矩阵vMatrix*输出:最短路径***********************************/#include <iostream>#include <vector>using namespace std;#define INF 65535/*********Dijkstra
2017-08-27 17:14:12
376
原创 最小生成树
根据大话数据结构整理:/***********************************输入:邻接矩阵vMatrix/边表vEdge*输出:最小生成树***********************************/#include <iostream>#include <vector>#include <algorithm>using namespace std;#def
2017-08-27 13:30:28
246
1
原创 邻接矩阵/邻接表的遍历方法
/***********************************输入:邻接矩阵vMatrix/邻接表vList, 顶点表vNode*输出:遍历元素***********************************/#include <iostream>#include <vector>#include <queue>using namespace std;#define I
2017-08-26 22:44:35
589
原创 字符串模式匹配
/***********************************输入:主串sa, 子串sb, 开始匹配位置start*输出:成功返回sb首字符在sa的位置,否则返回-1***********************************/#include <iostream>#include <string>#include <vector>using namespace st
2017-08-26 20:50:21
382
原创 深度学习之感知器AND(与)实现C++代码
利用深度学习的感知器算法实现AND(与)操作感知器类头文件:#include <vector>#include <iostream>using namespace std;class Perceptron//感知器{public: Perceptron(){} Perceptron(const vector<vector<double>> &input, const int
2017-07-23 17:19:34
1863
原创 win764+VS2013+fftw3+Armadillo+QT5
一、配置fftw31.登陆http://www.fftw.org/install/windows.html,下载 64-bit version 2.解压到D:\fftw3.打开VS2013。工具->visual stdio 命令提示 4.cd d:\fftw5.输入命令: lib /machine:x64 /def:libfftw3-3.def lib /machine:x64 /def:l
2017-05-12 14:13:35
1708
原创 顶层const和底层const
1.顶层const和底层const顶层const:本身是一个常量底层const:所指的对象是一个常量2.例子int *const p1 = &i;const修饰p1,p1本身是一个const,所以这个const是顶层constconst int ci = 42;const修饰ci,ci本身是一个const,顶层const int *p2 = &ci;const修饰*p2,修饰的是p2所指的对象,所以
2017-01-09 11:34:16
565
原创 排序之堆排序
堆排序是一种基于比较排序的另一种排序算法,它采用了一种近似完全二叉树的二叉堆数据结构。算法实现兼容了插入排序的空间原址性(即只需要有限个额外的存储空间)和归并排序的优良时间复杂度。
2016-11-28 11:11:33
276
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人