基于LoRa无线网络的速率自适应方法
技术领域
本发明涉及无线网络领域。更具体地说,本发明涉及一种基于LoRa无线网络的速率自适应方法。
背景技术
LoRa是LPWAN通信技术中的一种,是美国Semtech公司采用和推广的一种基于扩频技术的超远距离无线传输方案。LoRa融合了数字扩频、数字信号处理和前向纠错编码技术。无线网络是物联网技术发展的重要组成部分,而网络容量又是无线网络的一个重要的性能指标。通过调节通信速率,可以减少信号空中传输时间,降低不同节点在同一信道的碰撞概率,极大的提高网络容量且减少了发送时间,降低了传感器节点功耗。另外从成本、实现难度、提升效果等方面的因素综合考虑,使用基于无线传感器网络速率调节提高网络容量是一个相对合理且易于实现的方向。
目前大部分的提高无线传感器网络容量的方法都是基于特定的协议、传输机制或者是以增加丢帧率为代价。这些方法可适用性不强,对应用的协议有很强的依赖性。另一个是提高了丢帧率,重传虽然使总体数据量提高,但造成了额外的功耗消耗以及增加了节点数据在同信道碰撞的可能性。
发明内容
本发明的目的是提供一种基于LoRa无线网络的速率自适应方法,利用节点到网关的信噪比作为信道质量的判断标准,针对信噪比无规则波动,提出了利用振幅值去预测信噪比波动的最差值,并提供了一种新颖有效的振幅值计算方法去评估当前信道下信噪比的波动范围,最终根据所预测的最小信噪比去选择合适的传输速率。
为了实现根据本发明的这些目的和其它优点,提供了一种基于LoRa无线网络的速率自适应方法,包括以下步骤:
步骤一、获取最近上传的N帧数据的信噪比的数列Snew:获取由节点向网关上传的最近第一帧到第N帧数据每一帧数据上传时节点到网关的信噪比,将其组成数列,得到Snew;
其中,N为常数,由人工设置;
步骤二、确定计算振幅值所用Snew中的最小值amminSNRNew:提取Snew中的最小值minSNRNew和第二小值sminSNRNew,分别计算其欧氏距离Dmin和Dsmin,并根据Dmin和Dsmin确定下一步计算amminSNRNew,确定amminSNRNew的方法如下:
当Dmin<Value且Dsmin<Value时,amminSNRNew=minSNRNew;
当Dmin>Value且Dsmin<Value时,amminSNRNew=sminSNRNew;
当Dmin>Value且Dsmin>Value时,amminSNRNew=sminSNRNew;
其中,Value为常数,根据通信网络的吞吐量和传输速率的稳定性综合设置;
步骤三、根据amminSNRNew计算最近上传的N帧数据的振幅值amSNRNew:提取Snew中的最大值maxSNRNew和amminSNRNew,计算amSNRNew:
amSNRnew=maxSNRNew-amminSNRNew+baseSNR
其中,baseSNR为初始化参数,用于防止数据较少时带来的误判问题,2.5≤baseSNR≤10;
步骤四、获取最近上传的上一个N帧数据的信噪比的数列Slast,计算最近上传的上一个N帧数据的振幅值amSNRLast:获取由节点向网关上传的最近第二帧到第N+1帧数据每一帧数据上传时节点到网关的信噪比,将其组成数列,得到Slast,并对其重复步骤二到步骤三,计算得到amSNRLast;
步骤五、根据Slast计算最近上传的N帧数据的预测用最大值pmaxSNR:提取Slast中的最大值maxSNRLast和maxSNRNew,计算pmaxSNR:
pmaxSNR=(maxSNRNew-maxSNRlast)*kv+maxSNRlast
步骤六、根据最近上传的N帧数据的预测用振幅值amSNR:提取amSNRNew和
amSNRLast,计算amSNR:
amSNR=(amSNRNew-amSNRLast)*kv+amSNRLast
其中,kv是比例因子,0.970≤kv≤0.999;
步骤七、根据amSNR计算当前信道最差SNR和当前传输速率所需最小SNR之间的差值intervalSNR:参照LoRa官方的sx1301数据手册,根据当前传输速率确定当前传输速率所需最小信噪比SNRRequired,提取amSNR和pmaxSNR,计算intervalSNR:
intervalSNR=pmaxSNR–amSNR-SNRRequired
步骤八、统计当前数据库中的数据集中和最近一帧数据的传输速率相等的数据帧的个数cDataFrameCount,以及节点向网关上传最近N帧数据时进行速率调节的次数adrCount,当cDataFrameCount<N或adrCount≥3时,传输速率保持不变;当cDataFrameCount≥N且adrCount<3时,进入下一步;
步骤九、根据intervalSNR对传输速率进行调节:
当intervalSNR<3时,计算传输速率降低的级数steps:
对得到的steps四舍五入取整,得到整数M,此时传输速率降低M级;
当3≤intervalSNR≤7时,传输速率保持不变;
当intervalSNR>7时,传输速率提高一级。
优选的是,所述的基于LoRa无线网络的速率自适应方法中,所述步骤一之前还包括对节点统计的向网关上传数据的累积上传帧数的验证,用于防止系统异常时造成的帧数统计不准确,对速率的自适应造成影响,验证过程包括以下步骤:
A、提取节点向网关上传最近一帧数据FrameNew时节点统计的累积上传帧数FcntUpNew,以及节点向网关上传最近一帧数据前一帧数据FrameLast时节点统计的累积上传帧数FcntUpLast,当FcntUpNew≤FcntUpLast时,传输速率保持不变;当FcntUpNew>FcntUpLast时,对传输速率进行调节,进入下一步;
B、提取系统统计的节点向网关上传数据的累积上传帧数M,当FcntUpNew<M时,传输速率保持不变,当FcntUpNew≥M时,对传输速率进行调节,进入步骤一。
优选的是,所述的基于LoRa无线网络的速率自适应方法中,所述步骤二之前还包括使用滑动平均滤波法对Snew进行处理后,得到平滑数列S′new,使用S′new进行步骤二的操作。
优选的是,所述的基于LoRa无线网络的速率自适应方法中,所述步骤二中,N=20。
优选的是,所述的基于LoRa无线网络的速率自适应方法中,所述步骤四中得到Slast后,使用滑动平均滤波法对其进行处理,得到平滑数列Sl′ast,然后对Sl′ast进行重复步骤二到步骤三的操作。
优选的是,所述的基于LoRa无线网络的速率自适应方法中,所述步骤四中计算欧氏距离的方法为:
其中,D为数列中任一项的欧氏距离;SNR为数列中任一项的信噪比;SNRk为数列中第k项的信噪比;k为SNR为数列的项数。
优选的是,所述的基于LoRa无线网络的速率自适应方法中,所述步骤五中,baseSNR=5。
优选的是,所述的基于LoRa无线网络的速率自适应方法中,所述步骤七中,kv=0.997。
本发明至少包括以下有益效果:
本发明选用LoRa无线技术作为通信方式,协议方面采用LoRaWan标准协议,利用节点到网关的信噪比作为信道质量的判断标准,从而达到速率自适应的目的。
本发明根据香农公式,通过信噪比确定最大的信道速率,并以此为当前传输速率。
本发明针对信噪比无规则波动,提出了利用振幅值去预测信噪比波动的最差值,提高信噪比的测量准确性。
本发明的其它优点、目标和特征将部分通过下面的说明体现,部分还将通过对本发明的研究和实践而为本领域的技术人员所理解。
附图说明
图1为本发明所述的基于LoRa无线网络的速率自适应方法在LoRaWan协议的应用流程图;
图2为本发明所述的基于LoRa无线网络的速率自适应方法主要需要的数据结构;
图3为本发明所述的基于LoRa无线网络的速率自适应方法的具体流程图。
具体实施方式
下面结合附图对本发明做进一步的详细说明,以令本领域技术人员参照说明书文字能够据以实施。
本发明提供一种基于LoRa无线网络的速率自适应方法,包括以下步骤:
步骤一、获取最近上传的N帧数据的信噪比的数列Snew:获取由节点向网关上传的最近第一帧到第N帧数据每一帧数据上传时节点到网关的信噪比,将其组成数列,得到Snew;
其中,N为常数,由人工设置;
步骤二、确定计算振幅值所用Snew中的最小值amminSNRNew:提取Snew中的最小值minSNRNew和第二小值sminSNRNew,分别计算其欧氏距离Dmin和Dsmin,并根据Dmin和Dsmin确定下一步计算amminSNRNew,确定amminSNRNew的方法如下:
当Dmin<Value且Dsmin<Value时,amminSNRNew=minSNRNew;
当Dmin>Value且Dsmin<Value时,amminSNRNew=sminSNRNew;
当Dmin>Value且Dsmin>Value时,amminSNRNew=sminSNRNew;
其中,Value为常数,根据通信网络的吞吐量和传输速率的稳定性综合设置;
步骤三、根据amminSNRNew计算最近上传的N帧数据的振幅值amSNRNew:提取Snew中的最大值maxSNRNew和amminSNRNew,计算amSNRNew:
amSNRnew=maxSNRNew-amminSNRNew+baseSNR
其中,baseSNR为初始化参数,用于防止数据较少时带来的误判问题,2.5≤baseSNR≤10;
步骤四、获取最近上传的上一个N帧数据的信噪比的数列Slast,计算最近上传的上一个N帧数据的振幅值amSNRLast:获取由节点向网关上传的最近第二帧到第N+1帧数据每一帧数据上传时节点到网关的信噪比,将其组成数列,得到Slast,并对其重复步骤二到步骤三,计算得到amSNRLast;
步骤五、根据Slast计算最近上传的N帧数据的预测用最大值pmaxSNR:提取Slast中的最大值maxSNRLast和maxSNRNew,计算pmaxSNR:
pmaxSNR=(maxSNRNew-maxSNRlast)*kv+maxSNRlast
步骤六、根据最近上传的N帧数据的预测用振幅值amSNR:提取amSNRNew和amSNRLast,计算amSNR:
amSNR=(amSNRNew-amSNRLast)*kv+amSNRLast
其中,kv是比例因子,0.970≤kv≤0.999;
步骤七、根据amSNR计算当前信道最差SNR和当前传输速率所需最小SNR之间的差值intervalSNR:参照LoRa官方的sx1301数据手册,根据当前传输速率确定当前传输速率所需最小信噪比SNRRequired,提取amSNR和pmaxSNR,计算intervalSNR:
intervalSNR=pmaxSNR–amSNR-SNRRequired
步骤八、统计当前数据库中的数据集中和最近一帧数据的传输速率相等的数据帧的个数cDataFrameCount,以及节点向网关上传最近N帧数据时进行速率调节的次数adrCount,当cDataFrameCount<N或adrCount≥3时,传输速率保持不变;当cDataFrameCount≥N且adrCount<3时,进入下一步;
步骤九、根据intervalSNR对传输速率进行调节:
当intervalSNR<3时,计算传输速率降低的级数steps:
对得到的steps四舍五入取整,得到整数M,此时传输速率降低M级;
当3≤intervalSNR≤7时,传输速率保持不变;
当intervalSNR>7时,传输速率提高一级。
在另一种技术方案中,所述的基于LoRa无线网络的速率自适应方法中,本发明选用LoRa无线技术作为通信方式,协议方面采用LoRaWan标准协议,利用节点到网关的SNR(信噪比)作为信道质量的判断标准。根据香农公式C=B log2(1+S/N),其中C是最大信息传送速率,B是信道带宽,S/N是信号功率S和噪声功率N的比值,即SNR(信噪比)。由香农公式可知,当信道带宽B一定时,越高的SNR具备有更高的信道容量,因此根据当前SNR可以得到最大的信道速率。而影响SNR的因素很多,尤其户外环境SNR波动无规则,本发明针对SNR无规则波动,提出了利用振幅值去预测SNR波动的最差值,并提供了一种新颖有效的振幅值计算方法去评估当前信道下SNR的波动范围,最终根据所预测的最小SNR去选择合适的传输速率。
如图1所示,本方案提供的速率自适应方法在应用流程中以ADR表示:当只有单网关GW1覆盖时,节点设备1上传的数据通过网关GW1,再转发到服务器LoRaWan Server的前端Front1,Front1进行简单的筛选处理后,将数据转发给中端Middle1,中端Middle1缓存数据,再转发给后端Back1,Back1与应用交互,决定是否往节点下发数据,并将需要下发的数据发送给Middle1。此时本方案提供的速率自适应方法工作,提取出Middle1中的数据,数据结构如图2所示,然后读取数据库中数据,数据结构如图3所示,对数据进行处理后,再将数据单元按照图3结构存入数据库,待下次读取使用,并将调节后的速率返回。将返回的速率和往节点下发的数据一起按照协议格式封装后,再发送给节点设备。当具备有多网关GW1,GW2覆盖时,节点设备2上传的数据通过网关GW2,GW3上传至前端Front2,Front3。和单网关覆盖流程一致,但在后端Back2,Back3会进行一个比较筛选,选择SNR信号最好的路径将数据下发给节点。选择好好路径之后,在Middle3和Front3的处理方式与Middle1,Front1一致。上述流程是本发明实施例中速率自适应方法的应用流程,其中LoraWan Server中各个部分功能没有特殊要求,也是本发明对于协议以及服务器端网络架构的主要依赖,本方案适用于满足于此需求的任何无线传感器网络协议。
本方案还包括:根据上传的数据中的图2所示数据结构中的节点MAC地址和网关ID从数据库中读取相应的数据。
当数据库中最近一帧数据FrameNew的上传帧数FcntUp小于等于刚上传数据帧中的上传帧数FcntUp时,利用刚上传帧数据覆盖数据中该节点设备MAC地址对应的所有数据,并返回速率不调节;当上述情况不发生,进入下一步。下一步计算当前数据库中的数据集nodeFrameDBArray加上FrameNew的帧数frameCount,在frameCount小于5时,滑动窗口的输出值为原来的信噪比;在frameCount大于等于5时,取值为最近5帧数据中信噪比的平均值。并把滑动窗口输出值做提取FrameNew数据按图3数据格式存入到数据库中nodeFrameDBArray数据后面。其中图3数据结构中的滑动窗口处理后的SNR计算的滑动窗口输出值;图3节点MAC地址为FrameNew中的MAC地址;图3所示网关ID为当前数据上行使用的网关编号即FrameNew中网关ID;图3所示上传帧数FcntUP为节点设备对于自身发送的上行帧数的统计值;可以从FrameNew中获取;图3所示传输速率DataRate为节点上行此帧所采用的传输速率;可以从FrameNew中获取;图3所示节点设备到网关SNR即为从网关端所测试得到的信噪比可以从FrameNew得到。图3所示其余值在此步骤取值为0。为并返回速率不调节标记。当frameCount大于等于20帧,进入步骤一。
所述的基于LoRa无线网络的速率自适应方法中,所述步骤一之前还包括对节点统计的向网关上传数据的累积上传帧数的验证,用于防止系统异常时造成的帧数统计不准确,对速率的自适应造成影响,验证过程包括以下步骤:
A、提取节点向网关上传最近一帧数据FrameNew时节点统计的累积上传帧数FcntUpNew,以及节点向网关上传最近一帧数据前一帧数据FrameLast时节点统计的累积上传帧数FcntUpLast,当FcntUpNew≤FcntUpLast时,传输速率保持不变;当FcntUpNew>FcntUpLast时,对传输速率进行调节,进入下一步;
B、提取系统统计的节点向网关上传数据的累积上传帧数M,当FcntUpNew<M时,传输速率保持不变,当FcntUpNew≥M时,对传输速率进行调节,进入步骤一。
在另一种技术方案中,所述的基于LoRa无线网络的速率自适应方法中,节点每向网关上传一帧数据时,节点统计的累积上传帧数就会加1,所以正常情况下,FcntUpNew会比FcntUpLast大1,但当系统出现断电、重启等问题,或者软件出现BUG时,节点统计的累积上传帧数会清零,这时如果在不知道异常原因的情况下直接进行传输速率进行调节,将不能得到最合适的传输速率;所以本方案中将FcntUpNew和FcntUpLast作比较,当FcntUpNew≤FcntUpLast时,即系统发生异常,传输速率保持不变,而当FcntUpNew>FcntUpLast时,对传输速率进行调节,进入步骤B。步骤B中,对FcntUpNew进行第二次验证,防止FcntUpNew和FcntUpLas均出现异常时,步骤A不能检测出异常,此时将FcntUpNew与系统统计的节点向网关上传数据的累积上传帧数M进行比较,当FcntUpNew<M时,系统出现异常,传输速率仍然保持不变,当FcntUpNew≥M时,系统运行正常,对传输速率进行调节,进入步骤一。
所述的基于LoRa无线网络的速率自适应方法中,所述步骤二之前还包括使用滑动平均滤波法对Snew进行处理后,得到平滑数列S′new,使用S′new进行步骤二的操作。
在另一种技术方案中,所述的基于LoRa无线网络的速率自适应方法中,对Snew进行滑动平均滤波,滑动平均相当于低通滤波,将数列内的所有异常值做算术平均,将所求的平均值作为数列中心点的异常值,按点距或线距移动数列,重复此平均方法,直到对整幅图完成上述过程,这种过程称为滑动平均。本方案使用滑动平均滤波,滤除Snew中的异常值,使得Snew中的各项的值更加准确。
所述的基于LoRa无线网络的速率自适应方法中,所述步骤二中,N=20。
所述的基于LoRa无线网络的速率自适应方法中,所述步骤四中得到Slast后,使用滑动平均滤波法对其进行处理,得到平滑数列S′last,然后对S′last进行重复步骤二到步骤三的操作。
所述的基于LoRa无线网络的速率自适应方法中,所述步骤四中计算欧氏距离的方法为:
其中,D为数列中任一项的欧氏距离;SNR为数列中任一项的信噪比;SNRk为数列中第k项的信噪比;k为SNR为数列的项数。
欧氏距离即欧几里得度量,是一个通常采用的距离定义,指在m维空间中两个点之间的真实距离,或者向量的自然长度(即该点到原点的距离),在二维和三维空间中的欧氏距离就是两点之间的实际距离。
所述的基于LoRa无线网络的速率自适应方法中,所述步骤五中,baseSNR=5。
所述的基于LoRa无线网络的速率自适应方法中,所述步骤七中,kv=0.997。
尽管本发明的实施方案已公开如上,但其并不仅仅限于说明书和实施方式中所列运用,它完全可以被适用于各种适合本发明的领域,对于熟悉本领域的人员而言,可容易地实现另外的修改,因此在不背离权利要求及等同范围所限定的一般概念下,本发明并不限于特定的细节和这里示出与描述的图例。