CN108494527A - 一种基于LoRa的数据发送和接收方法 - Google Patents
一种基于LoRa的数据发送和接收方法 Download PDFInfo
- Publication number
- CN108494527A CN108494527A CN201810230878.2A CN201810230878A CN108494527A CN 108494527 A CN108494527 A CN 108494527A CN 201810230878 A CN201810230878 A CN 201810230878A CN 108494527 A CN108494527 A CN 108494527A
- Authority
- CN
- China
- Prior art keywords
- sequence
- coding sequence
- information
- length
- channels
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L1/00—Arrangements for detecting or preventing errors in the information received
- H04L1/004—Arrangements for detecting or preventing errors in the information received by using forward error control
- H04L1/0056—Systems characterized by the type of code used
- H04L1/0057—Block codes
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L1/00—Arrangements for detecting or preventing errors in the information received
- H04L1/004—Arrangements for detecting or preventing errors in the information received by using forward error control
- H04L1/0056—Systems characterized by the type of code used
- H04L1/0061—Error detection codes
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Error Detection And Correction (AREA)
Abstract
本发明提供一种基于LoRa的数据发送和接收方法,其中,发送方法包括:对原始数据进行CRC编码,获取第一序列,其长度为第一参数;若当前信道极化为第二参数个子信道,则从各个子信道中选取信道容量最大的第一参数个子信道作为信息比特传输信道并记录编号;第二参数为极化长度;基于各编号,将第一序列中的各位信息放置在第二序列的对应位上,构成第三序列;第二序列的长度为第二参数、各位信息均为0;线性变换第三序列,获取第四序列;根据待删除位序号删除第四序列中的对应位,构成第五序列;通过LoRa模块对第五序列进行调制后发射。本发明提供的方法,增强了LoRa信道传输的抗干扰能力,提高了LoRa物联网的传输可靠性。
Description
技术领域
本发明涉及物联网技术领域,尤其涉及一种基于LoRa的数据发送和接收方法。
背景技术
随着科技的不断发展和应用,物联网技术已经开始走进并影响人类的生产和生活等活动。尤其是近年来,随着人们对智能体验的需求的日益增加,越来越多的碎片化终端设备需要接入网络实现互联,物联网技术已经在智能家居、智慧城市、智能建筑、智能农业等各个应用场景中大显身手。
组网技术在物联网应用中十分重要,它解决了各个终端设备的网络互联与通信。LoRa技术是近年来兴起的一种低功耗广域网通信技术,相比于之前的WiFi、ZigBee和蓝牙等局域网无线技术,以及2G/3G/4G等广域网无线技术,LoRa同时具有传输距离远、终端功耗低、容量大、电池寿命长等优点,能在较大程度地实现更长距离通信与更低功耗,因而在物联网应用领域中大放异彩。
然而,LoRa现有技术中,对于输入的原始信息未经过信道编码,即直接进行调制、发射等步骤输入信道进行传输,由于其工作在全球ISM开放频段下,所以存在严重的频谱干扰,降低了LoRa的传输性能。
发明内容
本发明为解决现有技术中存在的LoRa信道传输干扰严重的问题,提供了一种基于LoRa的数据发送和接收方法。
一方面,本发明提出一种基于LoRa的数据发送方法,包括:S11,对原始数据进行循环冗余校验编码,获取第一序列;所述第一序列的长度为第一参数;S12,若当前信道极化为第二参数个子信道,则从所述各个子信道中选取信道容量最大的所述第一参数个子信道作为信息比特传输信道,并记录各信息比特传输信道的编号;所述第二参数为预设的极化长度;S13,基于所述各信息比特传输信道的编号,将所述第一序列中的各位信息放置在第二序列的对应位上,构成第三序列;所述第二序列的长度为所述第二参数,所述第二序列的各位信息均为0;S14,对所述第三序列进行线性变换,获取第四序列;S15,根据待删除位序号删除所述第四序列中的对应位,构成第五序列;所述待删除位序号是基于准均匀凿孔法获取的,所述待删除位序号的个数为所述极化长度和LoRa模块的有效负载部分序列长度之差;S16,通过所述LoRa模块对所述第五序列进行调制后发射。
优选地,所述步骤S11进一步包括:对原始数据进行循环冗余码校验,获取校验数据;将所述校验数据附在所述原始数据后,构成第一序列;其中,所述第一序列的长度为第一参数,所述第一参数为所述原始数据的长度和所述校验数据的长度之和。
优选地,所述步骤S12前还包括:若当前信道极化为第二参数个子信道,则根据蒙特卡洛法或高斯近似下的密度演进法计算各个子信道的对数似然比,并通过所述各个子信道的对数似然比获取各个子信道的信道容量。
优选地,所述步骤S12进一步包括:若当前信道极化为第二参数个子信道,则通过排序算法基于各个子信道的信道容量从大到小的顺序对所述各个子信道进行排序;所述排序算法至少包括快速排序算法和/或选择排序算法;依次选取信道容量最大的所述第一参数个子信道作为信息比特传输信道,并记录各信息比特传输信道的编号;所述第二参数为预设的极化长度。
优选地,所述步骤S14进一步包括:S141,根据下式将所述第三序列转换为向量
式中,N为所述极化长度,s2m-1和s2m分别为所述向量中的第2m-1和第2m位信息,u2m-1和u2m分别为所述第三序列中的第2m-1和第2m位信息,m为正整数;S142,根据下式对所述向量进行重新排序,获取向量
式中,vm和v2(m-N/2)分别为所述向量中的第m和第2(m-N/2)位信息;S143,将所述向量分为向量和S144,分别将所述向量和作为执行步骤S141。
另一方面,一种基于LoRa的数据接收方法,包括:S21,通过LoRa模块对接收到的传输信息进行解调,获取第六序列;S22,从所述第六序列的第一位开始,依次获取所述第六序列每一信息位分别为0和1时的译码序列,计算所述译码序列的可能性;若所述译码序列的总数大于预设的序列数,则保留可能性最大的所述序列数个译码序列;所述信息位为所述第六序列中信息比特传输信道的编码的对应位;S23,分别对各所述译码序列进行循环冗余码校验,根据所述各译码序列的校验结果和可能性获取原始数据。
优选地,步骤S22中,计算所述译码序列的可能性进一步包括:应用如下迭代公式对所述译码序列l的对数似然比进行计算:
其中,与的形式分别为:
式中,迭代初始形式为 表示长度为i的译码序列l的对数似然比,和分别为序列中第1位信息为偶数与奇数时构成的子序列,为所述第六序列;
对于长度为i的译码序列l,其可能性Pr定义为:
其中,为译码序列l的第i次迭代的可能性,表示译码序列l中第j+1位的值;应用如下公式,通过对数似然比迭代计算译码序列l的Pr:
其中,为符号函数,则则则
优选地,所述步骤S23进一步包括:若原始数据为m位,则分别对各所述译码序列中的前m位进行循环冗余码校验,获取校验数据;若任一所述译码序列对应的校验数据与该译码序列的校验位相等,则该译码序列通过循环冗余码校验;所述译码序列的校验位为所述译码序列的第m位后的部分;在通过循环冗余码校验的各译码序列中选取可能性最高的译码序列的前m位作为原始数据。
优选地,所述步骤S23还包括:若所述各译码序列均未通过循环冗余码校验,则所述传输信息为误块。
本发明提供的一种基于LoRa的数据发送和接收方法,在应用LoRa进行数据传输之前,对原始数据进行了极化编码,增强了LoRa信道传输的抗干扰能力,提高了LoRa物联网的传输可靠性,同时具备编译码复杂度低、可实用性强的优点。
附图说明
图1为本发明具体实施例的一种基于LoRa的数据发送方法的流程示意图;
图2为本发明具体实施例中第三序列线性变换的示意图;
图3为本发明具体实施例中N=2时第三序列线性变换的示意图;
图4为本发明具体实施例中N=4时第三序列线性变换的示意图;
图5为本发明具体实施例的一种基于LoRa的数据接收方法的流程示意图;
图6为本发明具体实施例的一种基于LoRa的数据发送和接收方法示意图;
图7为本发明具体实施例中N=8的比特顺序倒转示意图;
图8为本发明具体实施例的第三序列构成示意图。
具体实施方式
下面结合附图和实施例,对本发明的具体实施方式作进一步详细描述。以下实施例用于说明本发明,但不用来限制本发明的范围。
本发明为解决现有技术中存在的LoRa信道传输干扰严重的问题,提供了一种基于LoRa的数据发送和接收方法,并分别从发送端和接收端的角度说明基于LoRa的数据发送方法和数据接收方法。
首先,针对发送端的LoRa数据发送方法进行如下说明:
图1为本发明具体实施例的一种基于LoRa的数据发送方法的流程示意图,如图1所示,一种基于LoRa的数据发送方法,包括:S11,对原始数据进行循环冗余校验编码,获取第一序列;所述第一序列的长度为第一参数;S12,若当前信道极化为第二参数个子信道,则从所述各个子信道中选取信道容量最大的所述第一参数个子信道作为信息比特传输信道,并记录各信息比特传输信道的编号;所述第二参数为预设的极化长度;S13,基于所述各信息比特传输信道的编号,将所述第一序列中的各位信息放置在第二序列的对应位上,构成第三序列;所述第二序列的长度为所述第二参数,所述第二序列的各位信息均为0;S14,对所述第三序列进行线性变换,获取第四序列;S15,根据待删除位序号删除所述第四序列中的对应位,构成第五序列;所述待删除位序号是基于准均匀凿孔法获取的,所述待删除位序号的个数为所述极化长度和LoRa模块的有效负载部分序列长度之差;S16,通过所述LoRa模块对所述第五序列进行调制后发射。
具体地,S11,发送端对原始数据进行循环冗余校验编码,获取第一序列。其中,发送端将所述第一序列的长度定义为第一参数。本发明具体实施例中,所述原始数据是传感器采样量化后得到的数据。此外,所述原始数据还能够是任意需要通过LoRa传输的信息,且不限于此。
进一步地,所述循环冗余校验(Cyclic Redundancy Check,CRC)是一种根据网络数据包或电脑文件等数据产生简短固定位数校验码的一种散列函数,主要用来检测或校验数据传输或者保存后可能出现的错误。所述循环冗余校验通过除法及余数的原理进行错误侦测。
S12,发送端通过信道极化将当前信道分为多个子信道。其中,所述子信道的个数为第二参数,所述第二参数为预设的极化长度。本发明具体实施例中,信道极化即通过将多个相同信道的输入进行线性组合,使得部分等效子信道的差错率降低,部分等效子信道的差错率升高。选择差错率低的信道传输信息比特,差错高的信道用于传输非信息比特,可降低误码率。
随后,在已知各个子信道的信道容量的基础上,发送端从当前信道分为的所有子信道中,选取其中信道容量最大的第一参数个子信道,并将上述选取的子信道定义为信息比特传输信道,记录各个信息比特传输信道对应的编号。
S13,发送端初始化一个长度为预设的极化长度、各位信息均为0的序列,并将所述序列定义为第二序列。根据记录的各个信息比特传输信道对应的编码,将第一序列中的各位信息依次放置在所述第二序列对应信息比特传输信道的编号位上,并将添加了第一序列信息的第二序列定义为第三序列。
S14,发送端对所述第三序列进行线性变换,将线性变换后的第三序列定义为第四序列。
S15,发送端删除所述第四序列中与待删除位序号对应的位,并将删除了待删除位序号对应位的第四序列定义为第五序列。
其中,所述待删除位序号是根据准均匀凿孔法获取的,所述准均匀凿孔法(Quasi-uniform Puncturing,QUP)中,极化长度即母码码长为N=2n,LoRa模块的有效负载部分序列长度为Nt,待删除位序号的个数即凿孔比特数为Np=N-Nt,凿孔向量p为二进制向量,取值为0的元素指示凿孔比特位置,即待删除位序号。
进一步地,所述准均匀凿孔法如下:
1)初始化向量p为全1,设置前Np个元素为0;
2)对向量p实施比特反转排序(bit-reversal permutation)操作,从而得到凿孔向量,即待删除位序号。
例如,对于N=8,Nt=5,Np=3,初始化向量p=(00011111),经过比特反转排序后的向量,即凿孔向量p=(01010111)。其中序号为1、3和5的位置为凿孔比特位置,即待删除位序号为1、3和5。
S16,发送端应用LoRa模块将上述步骤获取的第五序列进行调制并发射。
本发明具体实施例中,在应用LoRa进行数据传输之前,对原始数据进行了极化编码,增强了LoRa信道传输的抗干扰能力,提高了LoRa物联网的传输可靠性,同时具备编译码复杂度低、可实用性强的优点。
基于上述具体实施例,一种基于LoRa的数据发送方法,所述步骤S11进一步包括:对原始数据进行循环冗余码校验,获取校验数据;将所述校验数据附在所述原始数据后,构成第一序列;其中,所述第一序列的长度为第一参数,所述第一参数为所述原始数据的长度和所述校验数据的长度之和。
具体地,所述步骤S11中,对原始数据进行循环冗余校验编码的过程,进一步包括对原始数据进行循环冗余校验生成校验数据以及将原始数据与校验数据拼接构成第一序列两部分。
由此可知,对应地所述第一序列由原始数据和校验数据两部分构成,所述校验数据附在所述原始数据后,作为所述原始数据的校验位。
进一步地,所述循环冗余校验(Cyclic Redundancy Check,CRC)可通过查表法或计算法执行,且不限于此。
例如,对原始数据进行CRC-16编码。设原始数据的长度为Kr,编码后得到的第一序列长度即第一参数为K,其中K=Kr+16。
将原始数据视为二进制数。CRC-16生成多项式为x16+x15+x2+1,即1 1000 00000000 0101(简化表示为0x8005)。
采用计算法,获取16位校验位信息:
(1a)将16位的CRC寄存器初始化值为0xFFFF。
(1b)将原始数据的第一个字节(即前8位)与CRC寄存器的低8位按位进行异或,并把结果存入CRC寄存器的低8位内。
(1c)将CRC寄存器值右移一位(朝低位),最高有效位补零,检查被移出的最低有效位。
(1d)最低有效位若为0,则直接重复步骤(1c);若为1,则将当前CRC寄存器值与0xA001按位异或,结果存入CRC寄存器。其中0xA001即为1 1010 0000 0000 0001,有效校验位(后16位)为0x8005的有效校验位比特顺序倒转的结果。
(1e)重复步骤(1c)和(1d)至完成8次右移,即完成对原始数据第一个字节的处理。
(1f)将原始数据的下一个字节按步骤(1b)~(1e)进行处理,直至完成对原始数据所有字节的处理。
(1g)将寄存器中的16位CRC值进行高八位与低八位互换,作为校验位附在Kr位的原始数据后,构成一个包含原始数据与校验信息的K位数据序列,即第一序列。
本发明具体实施例中,通过应用循环冗余校验编码辅助极化码在LoRa数据传输领域的应用,有助于改善低信噪比下的传输性能。
基于上述任一具体实施例,一种基于LoRa的数据发送方法,所述步骤S12前还包括:若当前信道极化为第二参数个子信道,则根据蒙特卡洛法或高斯近似下的密度演进法计算各个子信道的对数似然比,并通过所述各个子信道的对数似然比获取各个子信道的信道容量。
具体地,在根据信道容量选取子信道前,需要对各个子信道的信道容量进行计算。本发明具体实施例中,将子信道的对数似然比作为衡量对应子信道的信道容量的参数,其中,对数似然比(likelihood Rate,LLR)在通信中通常用于软解码。
进一步地,用于计算子信道的对数似然比的算法例如蒙特卡洛法和高斯近似下的密度演进法。
其中,蒙特卡洛法(Monte Carlo method),也称统计模拟方法,是一种以概率统计理论为指导的一类非常重要的数值计算方法,当所求解问题是某种随机事件出现的概率,或者是某个随机变量的期望值时,通过某种“实验”的方法,以这种事件出现的频率估计这一随机事件的概率,或者得到这个随机变量的某些数字特征,并将其作为问题的解。
例如,应用高斯近似下的密度演进算法计算子信道的对数似然比,包含以下步骤:
(3a)设置一个信噪比参数cS1NR;
(3b)根据cS1NR,设置高斯分布的方差:
(3c)采用一个N位的寄存器存储极化后各子信道的对数似然比LLR,与确定的待删除位对应的位初始化为0,其余位初始化为2/σ2;
(3d)考虑一个段长度2Δ,Δ=2i,i初始化为0,将长度为N的序列拆分为N/2Δ段;
(3e)设置j为从1至N/2Δ递增的整数,在j的每个取值下,考虑一个整数k,在k从1至j-1递增的过程中,对于k的每个取值根据以下公式计算新的对数似然比序列llr:
其中,下标t与S1的值分别为:
其中,使用的函数与反函数分别为:
其中,参数分别为:α=0.0564,β=0.4856,γ=0.86;
(3f)完成(3e)中的计算后,将得到的新对数似然比序列llr赋值给LLR;
(3g)将(3d)中的段长度Δ扩充为两倍,即Δ=2i+1,重复步骤(3e)和(3f);完成Δ=N/2下的(3e)和(3f)计算后终止,通过此时的LLR值获取完成极化后各子信道的容量。
本发明具体实施例中,给出了信道容量的计算方法,为极化后子信道的选择提供了依据。
基于上述任一具体实施例,一种基于LoRa的数据发送方法,所述步骤S12进一步包括:若当前信道极化为第二参数个子信道,则通过排序算法基于各个子信道的信道容量从大到小的顺序对所述各个子信道进行排序;所述排序算法至少包括快速排序算法和/或选择排序算法;依次选取信道容量最大的所述第一参数个子信道作为信息比特传输信道,并记录各信息比特传输信道的编号;所述第二参数为预设的极化长度。
具体地,在根据信道容量选取子信道作为信息比特传输信道的过程中,首先需要通过排序算法按照信道容量从大到小的顺序对各个子信道进行排序。本发明具体实施例中,所述排序算法为内部排序算法,即对数据记录在内存中进行排序,例如冒泡排序算法、直接插入排序算法、希尔排序算法、堆排序算法、快速排序算法和选择排序算法等。
其中,选择排序算法是一种简单直观的排序算法,其工作原理为:初始时在序列中找到最小(大)元素,放到序列的起始位置作为已排序序列;然后,再从剩余未排序元素中继续寻找最小(大)元素,放到已排序序列的末尾。以此类推,直到所有元素均排序完毕。
快速排序算法是由东尼·霍尔所发展的一种排序算法。在平均状况下,排序n个元素要O(nlogn)次比较。在最坏状况下则需要O(n^2)次比较,但这种状况并不常见。事实上,快速排序通常明显比其他O(nlogn)算法更快,因为它的内部循环可以在大部分的架构上很有效率地被实现出来。
随后,依次选取信道容量最大的所述第一参数个子信道作为信息比特传输信道,并记录各信息比特传输信道的编号。
本发明具体实施例中,通过排序算法为选取信道容量最大的子信道提供了便利,
基于上述任一具体实施例,图2为本发明具体实施例中第三序列线性变换的示意图,如图2所示,一种基于LoRa的数据发送方法,所述步骤S14进一步包括:S141,根据下式将所述第三序列转换为向量
式中,N为所述极化长度,s2m-1和s2m分别为所述向量中的第2m-1和第2m位信息,u2m-1和u2m分别为所述第三序列中的第2m-1和第2m位信息,m为正整数;S142,根据下式对所述向量进行重新排序,获取向量
式中,vm和v2(m-N/2)分别为所述向量中的第m和第2(m-N/2)位信息;S143,将所述向量分为向量和S144,分别将所述向量和作为执行步骤S141。
具体地,对第三序列进行线性变换后各位依次经信道传输的过程可视为N维向量经组合信道WN传输,线性变换及等效的组合信道WN遵循以上规律递归表示。
当N=2时,线性变换的方式如图3所示:
当极化信道数量倍增,即N=4时,线性变换的方式如图4所示:
根据图2中组合信道W4与W2的关系,可见W4由两个W2信道以及一个换序矩阵R4组成。
考虑N=2i的情况,如图2所示,由两个的信道以及一个换序矩阵构成。
以下,针对接收端的LoRa数据接收方法进行说明:
基于上述任一具体实施例,图5为本发明具体实施例的一种基于LoRa的数据接收方法的流程示意图,如图5所示,一种基于LoRa的数据接收方法,包括:S21,通过LoRa模块对接收到的传输信息进行解调,获取第六序列;S22,从所述第六序列的第一位开始,依次获取所述第六序列每一信息位分别为0和1时的译码序列,计算所述译码序列的可能性;若所述译码序列的总数大于预设的序列数,则保留可能性最大的所述序列数个译码序列;所述信息位为所述第六序列中信息比特传输信道的编码的对应位;S23,分别对各所述译码序列进行循环冗余码校验,根据所述各译码序列的校验结果和可能性获取原始数据。
具体地,S21,接收端通过LoRa模块接收发送端的LoRa模块发送的传输信息,并对所述传输信息进行解调,将解调后的传输信息定义为第六序列。
S22,接收端从所述第六序列的第一位开始,顺序获取所述第六序列中的每一信息位为0和1时分别对应的译码序列,并对每一信息位为0和1时分别对应的译码序列的可能性进行计算。
进一步地,本发明具体实施例中,还通过判断所述第六序列中的任意一位是否为信息比特传输信道编码对应的位数,来获取该位对应的译码序列。如果该位对应的位数为信息比特传输信道的编码,则该位为信息位,获取该位为0和1时分别对应的译码序列;否则,该位为非信息位,则仅获取该位为0时对应的译码序列。
因而,当进行第j位译码后,可得lj个译码序列,且lj≤2j。
令预设的序列数为L,当lj>L时,接收端从当前lj个译码序列中保留可能性最大的L个译码序列,并将剩余的译码序列删除。
随后,接收端进入对所述第六序列的第j+1位的译码,重复上述步骤的译码过程和依据可能性对译码序列进行筛选。依序完成所述第六序列中各位的译码,最终保留L个译码序列。
S23,接收端对步骤S22中最终保留的L个译码序列分别进行循环冗余码校验,并根据所述各译码序列的校验结果和可能性从上述L个译码序列中获取原始数据。
进一步地,所述循环冗余校验(Cyclic Redundancy Check,CRC)是一种根据网络数据包或电脑文件等数据产生简短固定位数校验码的一种散列函数,主要用来检测或校验数据传输或者保存后可能出现的错误。所述循环冗余校验通过除法及余数的原理进行错误侦测。
本发明具体实施例中,通过对接收数据的似然比计算、路径选择和循环冗余校验,获取基于极化编码的LoRa传输的原始数据,增强了LoRa信道传输的抗干扰能力,提高了LoRa物联网的传输可靠性,同时具备编译码复杂度低、可实用性强的优点。
基于上述任一具体实施例,一种基于LoRa的数据接收方法,步骤S22中,所述计算所述译码序列的可能性进一步包括:应用如下迭代公式对所述译码序列l的对数似然比进行计算:
其中,与的形式分别为:
式中,迭代初始形式为
对于在准均匀凿孔时被删除的位,其对数拟然比初始值为0。
表示长度为i的译码序列l的对数似然比,和分别为序列中第1位信息为偶数与奇数时构成的子序列,为所述第六序列。
对于长度为i的译码序列l,其可能性Pr定义为:
其中,为译码序列l的第i次迭代的可能性,表示译码序列l中第j+1位的值。
应用如下公式,通过对数似然比迭代计算译码序列l的Pr:
其中,为符号函数,则则则
本发明具体实施例中,通过迭代算法实现了译码过程中对各个译码序列的可能性的计算。
基于上述任一具体实施例,一种基于LoRa的数据接收方法,所述步骤S23进一步包括:若原始数据为m位,则分别对各所述译码序列中的前m位进行循环冗余码校验,获取校验数据;若任一所述译码序列对应的校验数据与该译码序列的校验位相等,则该译码序列通过循环冗余码校验;所述译码序列的校验位为所述译码序列的第m位后的部分;在通过循环冗余码校验的各译码序列中选取可能性最高的译码序列的前m位作为原始数据。
具体地,在对译码序列进行循环冗余码校验时,首先根据原始数据的长度m提取各译码序列的前m位。
其次,分别对各译码序列的前m位进行循环冗余码校验,对应获取各译码序列的校验结果。
随后,将任一译码序列的校验结果与该译码序列的校验位进行比较:
若该译码序列的校验结果与校验位相等,则认为该译码序列通过了循环冗余码校验;
否则,认为该译码序列未通过循环冗余码校验。
其中,所述译码序列的校验位是该译码序列的第m+1至K位,K为该译码序列的长度。
最后,在通过循环冗余码校验的译码序列中,选取可能性最高的译码序列,并将所述可能性最高的译码序列的前m位作为原始数据。
本发明具体实施例给出了通过循环冗余码校验和可能性比较确定最接近的原始数据的方法,编译码复杂度低,可实用性强。
基于上述任一具体实施例,一种基于LoRa的数据接收方法,所述步骤S23还包括:若所述各译码序列均未通过循环冗余码校验,则所述传输信息为误块。
具体地,在上述对译码序列进行循环冗余码校验时,还存在所有译码序列的校验结果与校验位均不同的情况,即在此情况下无法选取符合要求的原始数据,则认为本次接收端接收的传输信息为误块。其中,误块为含有一个或多比特差错的数据块。
为了更好地理解与应用本发明提出的一种基于LoRa的数据发送和接收方法,本发明进行以下示例,且本发明不仅局限于以下示例。
图6为本发明具体实施例的一种基于LoRa的数据发送和接收方法示意图,参考图6,并分别从发送端和接收端的角度说明基于LoRa的数据发送方法和数据接收方法。
首先,针对发送端的LoRa数据发送方法进行如下说明:
11)发送端将传感器采样量化得到的原始数据做CRC-16编码,获取第一序列。其中,原始数据为Kr位,编码后得到的第一序列为K位,其中K=Kr+16。
12)LoRa模块发射数据的有效负载部分序列长度为Nt,极化长度为2的整数次幂N,N=2n,N/2<Nt≤N。根据准均匀凿孔法,确定N-Nt个待删除位序号。
准均匀凿孔法中,将下标1至N均减一后用二进制数表示,再每一个下标对应的二进制数进行比特顺序倒转,得到一组新的二进制数,图7为本发明具体实施例中N=8的比特顺序倒转示意图。新的二进制数中的前N-Nt个数(0至N-Nt-1)对应的原下标即为待删除位的序号。
13)采用蒙特卡洛法或高斯近似下的密度演进法等算法,计算当前信道极化成N个信道时各比特子信道的对数似然比,并通过所述各比特子信道的对数似然比获取各个子信道的信道容量。
完成信道容量计算后,将所有子信道的信道容量进行排序。由于LoRa技术传输的序列长度较短,则N值较小,可采用快速排序、选择排序等排序算法。排序后选取LLR值最大的K个信道作为信息比特传输信道,用于传输时放置信息比特,记录这K个信道的编号。
14)根据记录的各个信息比特传输信道对应的编码,将第一序列中的各位信息依次放置在所述第二序列对应信息比特传输信道的编号位上,并将添加了第一序列信息的第二序列定义为第三序列所述第二序列为发送端初始化的一个长度为N、各位信息均为0的序列。图8为本发明具体实施例的第三序列构成示意图。
15)应用如下递归方法将所述第三序列转换为第四序列:
151)根据下式将所述第三序列转换为向量
式中,N为所述极化长度,s2m-1和s2m分别为所述向量中的第2m-1和第2m位信息,u2m-1和u2m分别为所述第三序列中的第2m-1和第2m位信息,m为正整数;
152)根据下式对所述向量进行重新排序,获取向量
式中,vm和v2(m-N/2)分别为所述向量中的第m和第2(m-N/2)位信息;
153)将所述向量分为向量和
154)分别将所述向量和作为执行步骤151)。
16)发送端删除所述第四序列中与待删除位序号对应的位,并将删除了待删除位序号对应位的第四序列定义为第五序列。
17)发送端应用LoRa模块将上述步骤获取的第五序列进行调制并发射。
以下,针对接收端的LoRa数据接收方法进行说明:
21)接收端通过LoRa模块接收发送端的LoRa模块发送的传输信息,并对所述传输信息进行解调,将解调后的传输信息定义为第六序列。
22)对第五序列的第i位进行译码时的对数似然比采用如下形式的迭代公式进行计算:
其中,与的形式分别为:
式中,迭代初始形式为 表示长度为i的译码序列l的对数似然比,和分别为序列中第1位信息为偶数与奇数时构成的子序列,为所述第六序列。
对于长度为i的译码序列l,其可能性Pr定义为:
其中,为译码序列l的第i次迭代的可能性,表示译码序列l中第j+1位的值。
应用如下公式,通过对数似然比迭代计算译码序列l的Pr:
其中,为符号函数,则则则
23)考虑第i位为0或1两种情况下得到的当前译码序列,则当进行第j位译码后得到2j个可能的序列。L为规定的列表长度,当2j>l时,对当前2j个序列的可能性进行排序,保留可能性最大的L个译码序列进入第J+1位的译码。
24)对于第J+1位至第N位的译码,重复22)和23)中的可能性排序及筛选。
25)完成第N位的译码及序列筛选后,共得到L个译码序列。提取这L个序列的信息位进行CRC校验,在通过校验的序列中选择可能性最大的序列作为最后的译码结果输出,即作为原始数据。
CRC校验的过程中,对于K个信息位中的前Kr位采用步骤11)中的CRC-16标准进行校验位计算,将计算得到的校验位与译码结果中的校验位部分进行对比,如果两者相等,则视为通过CRC校验,不相等则不通过。
若完成N位译码后的L个序列均未通过CRC校验,则视本次接收的数据包为一个误块。
本示例中,在应用LoRa进行数据传输的基础上,对原始数据进行了极化编码,增强了LoRa信道传输的抗干扰能力,提高了LoRa物联网的传输可靠性,同时具备编译码复杂度低、可实用性强的优点。
最后,本申请的方法仅为较佳的实施方案,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (9)
1.一种基于LoRa的数据发送方法,其特征在于,包括:
S11,对原始数据进行循环冗余校验编码,获取第一序列;所述第一序列的长度为第一参数;
S12,若当前信道极化为第二参数个子信道,则从所述各个子信道中选取信道容量最大的所述第一参数个子信道作为信息比特传输信道,并记录各传输信道的编号;所述第二参数为预设的极化长度;
S13,基于所述各信息比特传输信道的编号,将所述第一序列中的各位信息放置在第二序列的对应位上,构成第三序列;所述第二序列的长度为所述第二参数,所述第二序列的各位信息均为0;
S14,对所述第三序列进行线性变换,获取第四序列;
S15,根据待删除位序号删除所述第四序列中的对应位,构成第五序列;所述待删除位序号是基于准均匀凿孔法获取的,所述待删除位序号的个数为所述极化长度和LoRa模块的有效负载部分序列长度之差;
S16,通过所述LoRa模块对所述第五序列进行调制后发射。
2.根据权利要求1所述的方法,其特征在于,所述步骤S11进一步包括:
对原始数据进行循环冗余码校验,获取校验数据;
将所述校验数据附在所述原始数据后,构成第一序列;
其中,所述第一序列的长度为第一参数,所述第一参数为所述原始数据的长度和所述校验数据的长度之和。
3.根据权利要求1所述的方法,其特征在于,所述步骤S12前还包括:
若当前信道极化为第二参数个子信道,则根据蒙特卡洛法或高斯近似下的密度演进法计算各个子信道的对数似然比,并通过所述各个子信道的对数似然比获取各个子信道的信道容量。
4.根据权利要求1所述的方法,其特征在于,所述步骤S12进一步包括:
若当前信道极化为第二参数个子信道,则通过排序算法基于各个子信道的信道容量从大到小的顺序对所述各个子信道进行排序;所述排序算法至少包括快速排序算法和/或选择排序算法;
依次选取信道容量最大的所述第一参数个子信道作为信息比特传输信道,并记录各信息比特传输信道的编号;所述第二参数为预设的极化长度。
5.根据权利要求1所述的方法,其特征在于,所述步骤S14进一步包括:
S141,根据下式将所述第三序列转换为向量
式中,N为所述极化长度,s2m-1和s2m分别为所述向量中的第2m-1和第2m位信息,u2m-1和u2m分别为所述第三序列中的第2m-1和第2m位信息,m为正整数;
S142,根据下式对所述向量进行重新排序,获取向量
式中,vm和v2(m-N/2)分别为所述向量中的第m和第2(m-N/2)位信息;
S143,将所述向量分为向量和
S144,分别将所述向量和作为执行步骤S141。
6.一种基于LoRa的数据接收方法,其特征在于,包括:
S21,通过LoRa模块对接收到的传输信息进行解调,获取第六序列;
S22,从所述第六序列的第一位开始,依次获取所述第六序列每一信息位分别为0和1时的译码序列,计算所述译码序列的可能性;若所述译码序列的总数大于预设的序列数,则保留可能性最大的所述序列数个译码序列;所述信息位为所述第六序列中信息比特传输信道的编码的对应位;
S23,分别对各所述译码序列进行循环冗余码校验,根据所述各译码序列的校验结果和可能性获取原始数据。
7.根据权利要求6所述的方法,其特征在于,步骤S22中,计算所述译码序列的可能性进一步包括:
应用如下迭代公式对所述译码序列l的对数似然比进行计算:
其中,与的形式分别为:
式中,迭代初始形式为 表示长度为i的译码序列l的对数似然比,和分别为序列中第1位信息为偶数与奇数时构成的子序列,为所述第六序列;
对于长度为i的译码序列l,其可能性Pr定义为:
其中,为译码序列l的第i次迭代的可能性,表示译码序列l中第j+1位的值;
应用如下公式,通过对数似然比迭代计算译码序列l的Pr:
其中,为符号函数,则则则
8.根据权利要求6所述的方法,其特征在于,所述步骤S23进一步包括:
若原始数据为m位,则分别对各所述译码序列中的前m位进行循环冗余码校验,获取校验数据;
若任一所述译码序列对应的校验数据与该译码序列的校验位相等,则该译码序列通过循环冗余码校验;所述译码序列的校验位为所述译码序列的第m位后的部分;
在通过循环冗余码校验的各译码序列中选取可能性最高的译码序列的前m位作为原始数据。
9.根据权利要求8所述的方法,其特征在于,所述步骤S23还包括:
若所述各译码序列均未通过循环冗余码校验,则所述传输信息为误块。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810230878.2A CN108494527B (zh) | 2018-03-20 | 2018-03-20 | 一种基于LoRa的数据发送和接收方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810230878.2A CN108494527B (zh) | 2018-03-20 | 2018-03-20 | 一种基于LoRa的数据发送和接收方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN108494527A true CN108494527A (zh) | 2018-09-04 |
CN108494527B CN108494527B (zh) | 2020-04-07 |
Family
ID=63318761
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810230878.2A Active CN108494527B (zh) | 2018-03-20 | 2018-03-20 | 一种基于LoRa的数据发送和接收方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN108494527B (zh) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110061747A (zh) * | 2019-04-28 | 2019-07-26 | 中国石油大学(华东) | 一种极化码的基于阈值的比特反转译码方法 |
CN111211873A (zh) * | 2020-01-13 | 2020-05-29 | 华南师范大学 | 一种基于冗余余数系统码的信号处理方法 |
CN112994845A (zh) * | 2021-02-08 | 2021-06-18 | 武汉梦芯科技有限公司 | 一种基于LoRa和LDPC结合的RTK数据传输方法、系统及存储介质 |
CN113489569A (zh) * | 2021-06-03 | 2021-10-08 | 中国地质大学(武汉) | 一种基于RM-BICM算法的加强型LoRa物理层设计方法 |
WO2023065955A1 (zh) * | 2021-10-21 | 2023-04-27 | 华为技术有限公司 | 通信方法及装置 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20160094268A1 (en) * | 2014-09-30 | 2016-03-31 | Semtech Corporation | Wireless communication method |
CN105811998A (zh) * | 2016-03-04 | 2016-07-27 | 深圳大学 | 一种基于密度演进的极化码构造方法及极化码编译码系统 |
CN106160784A (zh) * | 2015-03-03 | 2016-11-23 | 商升特公司 | 蜂窝频带中的通信设备和方法 |
CN106888026A (zh) * | 2017-01-22 | 2017-06-23 | 深圳大学 | 基于lsc‑crc译码的分段极化码编译码方法及系统 |
CN107453839A (zh) * | 2016-05-20 | 2017-12-08 | 商升特公司 | 利用宏分集的无线通信系统 |
-
2018
- 2018-03-20 CN CN201810230878.2A patent/CN108494527B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20160094268A1 (en) * | 2014-09-30 | 2016-03-31 | Semtech Corporation | Wireless communication method |
CN106160784A (zh) * | 2015-03-03 | 2016-11-23 | 商升特公司 | 蜂窝频带中的通信设备和方法 |
US20170324441A1 (en) * | 2015-03-03 | 2017-11-09 | Semtech Corporation | Communication device and method in the cellular band |
CN105811998A (zh) * | 2016-03-04 | 2016-07-27 | 深圳大学 | 一种基于密度演进的极化码构造方法及极化码编译码系统 |
CN107453839A (zh) * | 2016-05-20 | 2017-12-08 | 商升特公司 | 利用宏分集的无线通信系统 |
CN106888026A (zh) * | 2017-01-22 | 2017-06-23 | 深圳大学 | 基于lsc‑crc译码的分段极化码编译码方法及系统 |
Non-Patent Citations (1)
Title |
---|
RÉMI BAQUÉ等: "Results of the LORAMbis Bistatic VHF/UHF SAR Experiment for FOPEN", 《2011 IEEE》 * |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110061747A (zh) * | 2019-04-28 | 2019-07-26 | 中国石油大学(华东) | 一种极化码的基于阈值的比特反转译码方法 |
CN111211873A (zh) * | 2020-01-13 | 2020-05-29 | 华南师范大学 | 一种基于冗余余数系统码的信号处理方法 |
CN111211873B (zh) * | 2020-01-13 | 2022-10-04 | 华南师范大学 | 一种基于冗余余数系统码的信号处理方法 |
CN112994845A (zh) * | 2021-02-08 | 2021-06-18 | 武汉梦芯科技有限公司 | 一种基于LoRa和LDPC结合的RTK数据传输方法、系统及存储介质 |
CN113489569A (zh) * | 2021-06-03 | 2021-10-08 | 中国地质大学(武汉) | 一种基于RM-BICM算法的加强型LoRa物理层设计方法 |
WO2023065955A1 (zh) * | 2021-10-21 | 2023-04-27 | 华为技术有限公司 | 通信方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
CN108494527B (zh) | 2020-04-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108494527A (zh) | 一种基于LoRa的数据发送和接收方法 | |
CN105721106B (zh) | 基于串行策略的scma上行通信系统多用户检测方法 | |
CN109716662A (zh) | 使用极化码编码数据的方法和装置 | |
CN106230489B (zh) | 适用于任意高阶调制的极化码编码调制方法 | |
CN103023618B (zh) | 一种任意码长的极化编码方法 | |
CN103684477B (zh) | 混合极性码的生成方法和生成装置 | |
CN110089037A (zh) | 用于极化码构造的装置和方法 | |
CN103281166A (zh) | 一种基于极化码的混合自动重传请求传输方法 | |
CN106899379A (zh) | 用于处理极化码的方法和通信设备 | |
CN108347302A (zh) | 一种编译码方法和终端 | |
CN110326221A (zh) | 一种用于为极化码生成有序序列的方法 | |
CN108540141A (zh) | Polar码编译码方法及装置 | |
CN107231158A (zh) | 一种极化码迭代接收机、系统和极化码迭代译码方法 | |
CN108365914A (zh) | Polar码编译码方法及装置 | |
CN109981224B (zh) | 一种深空通信信道编译码系统及其方法 | |
CN109286468A (zh) | 极化码比特位置选择方法、装置和计算机设备 | |
CN108289010A (zh) | 一种数据处理方法和装置 | |
CN101867379A (zh) | 一种循环冗余校验辅助的卷积码译码方法 | |
CN108282259A (zh) | 一种编码方法及装置 | |
CN108092742A (zh) | 一种基于极化码的通信方法 | |
CN109327226A (zh) | 极化码的编译码方法、装置及设备 | |
CN110061808A (zh) | 一种基于素数码交织及脊髓码编码的水下抗干扰传输方法 | |
CN108462560A (zh) | 一种用于极化码级联的编译码方法 | |
CN111835464A (zh) | 一种与源址无关的大规模合作接入方法 | |
CN108809500A (zh) | 编码方法、装置和设备 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |