本发明涉及通讯领域,特别是一种低功耗广域网扩频通信系统信道编码系统和方法。
背景技术:
扩频通信(ssc,spread-spectrumcommunication)因强抗干扰能力、隐蔽性好、抗截获能力强等优点被广泛的应用于军事通信领域。之后随着无线通信技术的高速发展,无线电设备广泛使用,无线频道变得异常拥挤,扩频通信由于其很强的多址能力成为频道资源紧张“救星”。为了满足日益增长的民用通信容量的需求和有效地利用频谱资源,80年代初期开始扩频通信技术在民用通信中获得巨大发展。世界各国就纷纷在卫星移动通信、数字蜂窝移动通信和未来的个人通信中采用扩频技术。数年便迅速成为引领通信发展的新的潮流。目前它与光纤通信、卫星通信一同被誉为进入信息时代的三大高技术通信传输方式。
信号要实现在信道中远距离传输就必须提高发射功率,这也就伴随着更多的能耗。在低功耗广域网(lowpowerwideareanetwork,lpwan)产生之前,wi-fi、蓝牙等近距离无线通信技术无法满足物联网的大规模部署,以zigbee等为代表wsn网络虽是可以低成本低功耗接入,但目前还形成不了广域的覆盖和部署,也还限于小范围的应用。移动网络虽是全国范围的部署,但其接入点(gprs/3g/4g)功耗偏高,尤其是对于电池供电的场合,无法满足低功耗低成本接入的需求。低功耗广域网络(lpwan)以低功耗、低成本、大连接、易于部署等优势受到了产业链极大的关注与青睐。由于它补齐了物联网通信层的重大短板,因此成为2016年度物联网最为热门的领域,低功耗广域物联网已经成为时代不可逆转的发展潮流。
信道编码技术可以显著改善通信系统性能,提高通信系统容量。在b4g/5g系统中,为不断提高通信的需求提供合适的信道编译码解决方案成为了一个研究热点。为了满足当前及未来高速发展的物联网应用需求,我们急需有针对性的选择一种低功耗、低成本、易于实现的信道编码方案进行实现。
技术实现要素:
本发明的目的在于克服现有技术的缺点与不足,提供了一种低功耗广域网扩频通信系统信道编码系统和方法。
本发明通过以下的方案实现:一种低功耗广域网扩频通信系统信道编码系统,包括编码模块和译码模块;
所述编码模块包括rs编码器和卷积编码器;所述rs编码器用于对数据进行rs编码,然后再由所述卷积编码器进行卷积编码,再发送至信道;
所述译码模块包括维特比译码器和rs译码器;所述维特比译码器将接收的信号进行卷积解码,然后再发生至rs译码器进行rs解码;
所述维特比译码器包括控制单元、分支度量生成单元、加比选单元、路径度量存储单元、幸存路径信息存储单元、存储管理单元和回溯单元;
所述控制单元用于控制所述分支度量生成单元、加比选单元、路径度量存储单元、幸存路径信息存储单元、存储管理单元和回溯单元的工作;
所述分支度量单元用于接收信道的码元,计算分支度量值,并发送至所述加比选单元;
所述加比选单元从所述路径度量存储单元中提取分支度量,并与当前时刻的分支度量值进行求和比较,选出最小的分支度量值,并将该幸存路径存储至所述幸存路径信息存储单元,再将最小状态值发送至所述回溯单元;
所述回溯单元从所述幸存路径信息存储单元中提取对应的路径信息,并进行解码;
所述存储管理单元用于对幸存路径信息存储单元进行存储地址的管理分配。
作为本发明的进一步改进,所述rs译码器包括伴随多项式计算电路、bm匹配算法实现电路、钱搜索实现电路、forney算法实现电路和码字缓冲器;
所述rs接收的码元一路依次经过伴随多项式计算电路、bm匹配算法实现电路、钱搜索实现电路、forney算法实现电路进行错误值计算,另一路进入所述码字缓冲器缓存起来与所计算出的错误值同步,进行纠错;
所述码字缓冲器为fifo存储结构,包括存储器和寄存器;所述存储器用于接收并存储数据,再通过所述寄存器进行数据的输出。
本发明还提供了一种低功耗广域网扩频通信系统信道编码方法,包括以下步骤:
s1:通过rs编码器用于对数据进行rs编码;
s2:通过卷积编码器进行卷积编码,再发送至信道;
s3:通过维特比译码器将接收的信号进行卷积解码;在步骤s3中,包括:
s31:由分支度量单元接收信道的码元,计算分支度量值,并发送至加比选单元;
s32:加比选单元从路径度量存储单元中提取分支度量,并与当前时刻的分支度量值进行求和比较,选出最小的分支度量值,并将该幸存路径存储至幸存路径信息存储单元,再将最小状态值发送至回溯单元;
s33:回溯单元从幸存路径信息存储单元中提取对应的路径信息,并进行解码;
s4:通过rs译码器进行rs解码。
作为本发明的进一步改进,所述步骤s4中具体包括:
s41:计算伴随多项式;具体为:由接收到的r(x)计算伴随多项式sj,sj=r(αj)j=1,2l2t,若sj=0,无错;若存在sj≠0,执行步骤s42;
s42:计算错误位置多项式;具体为:利用bm迭代算法译码能够快速高效的根据伴随多项式sj求λ(x)=(1-x1x)(1-x2x)l(1-xvx)=1+λ1x+λ2x2+....+λvxv;
s43:钱搜索求根;具体为:求得λ(x)之后,接下来利用chien搜索能够简单的求出它的根,即把伽罗华域元素的倒数按顺序依次代进错误位置多项式,就能得到误码所在的位置;
s44:计算错误值;具体为:根据forney算法计算错误图样:定义求值多项式:ω(x)=s(x)λ(x),rs码错误值计算公式为:
s45:完成纠错;具体为:求得错误图样后根据已知的错误位置和相应位置的错误大小,利用c=r-e完成t个错误以内的纠错。
相比于现有技术,本发明采用rs+卷积级联的方式对低功耗广域物联网扩频通信的信号进行信道编码。在码长受限的情况下尽可能的表现出了良好的纠错性能。译码算法相对其他码来讲较简单,译码器设备易于实现。大大降低了完成信道编解码所需的功耗。在实现时,优化改进后的rs译码器的码字缓冲器,利用器件本身的优势,不需要额外的逻辑单元,为系统带来了硬件资源的节省。
为了更好地理解和实施,下面结合附图详细说明本发明。
附图说明
图1是本发明的低功耗广域网扩频通信系统信道编码系统结构框图。
图2是rs编码器的结构框图。
图3是本发明的卷积编码器电路结构图。
图4是本发明的维特比译码其的电路框图。
图5是rs译码的流程图。
图6是现有寄存器实现同步fifo的示意图。
图7是优化后的fifo存储器结构图。
图8是本发明的低功耗广域网扩频通信系统信道编码方法的流程图。
具体实施方式
以下结合实施例及附图对本发明作进一步详细的描述,但本发明的实施方式不限于此。
为了解决现有技术的缺陷,本发明提供了一种低功耗广域网扩频通信系统信道编码系统和方法,具体通过以下的实施例进行介绍。
如图1所示,其为本发明的低功耗广域网扩频通信系统信道编码系统结构框图。本发明的低功耗广域网扩频通信系统信道编码系统由两大部分组成,包括编码模块和译码模块;
所述编码模块包括rs编码器1和卷积编码器2。所述rs编码器1用于对数据进行rs编码,然后再由所述卷积编码器2进行卷积编码,再发送至信道。
所述译码模块包括维特比译码器3和rs译码器4。所述维特比译码器3将接收的信号进行卷积解码,然后再发生至rs译码器4进行rs解码。
本发明选择rs+卷积级联码作为该实例的编码方案,所述编码模块由rs编码器与卷积编码器组成。数据首先每9个信息码元为一组地进入rs编码器,rs编码器输出15个码元,其中6位为校验位。由于外码rs码的符号取自gf(24),所以对于卷积码来说,rs编码器送来的每一位码元都是4位二进制数,即是说每组60个码元送入卷积编码器,卷积编码器加了尾部清零操作,经过卷积(2,1,7)编码后则变成每组132个码元通过发送端进入信道。所述解码接收端端系统模块由rs解码器与维特比译码器组成。接收端接收到受到信道干扰的132个码元,经维特比译码后译出60个码元送给rs解码器,rs解码器将每4位二进制码元转换成十进制,最后输出9个信息码元。
具体地,所述的rs编码器如图2所示,rs的编码方法是参照适应于低功耗广域物联网要求的lora芯片特征来设置参数的。rs编码器是一个gf(24)上的系统码,输入信息符号(k)为9个,校验符号(2t)为6个,rs(15,9,4)中的符号均为gf(24)域内的元素。
域生成多项式为:f(x)=1+x+x4
码生成多项式为:
rs编码主要由多项式除法电路完成。随着时钟的节拍,输入端将m(x)的各次系数按照(m8,m7,m6,lm1,m0)先后顺序依次输入编码电路。信息组一方面经过数据选择器k2直接输出,一方面将信息元送入除法电路的右端,由数据选择器k1来控制。在第9个节拍之后完成x6m(x)modg(x)得到余数。其除法电路的求余过程可以这样来理解:设r0,r1,...r5这6个寄存器中的所存系数对应的多项式表示为:
余数多项式各系数就是各个寄存器的值,r5右边的输出等于该步除法的商。所以,该除法器可以完成除法
进一步,请参阅图3,其为本发明的卷积编码器电路结构图。卷积编码时首先对rs编码后输出的序列加上约束度-1长的尾比特迫使卷积编码结束后能让编码器归零。选择的(2,1,7)卷积码的多项式表示如式所示:
f1(x)=x6+x5+x4+x3+1
f2(x)=x6+x4+x3+x+1
通过寄存单元的移位寄存,并且每次进入一个新的比特都将进行编码。
在在进行卷积译码时选择维特比译码算法,请同时参阅图4,其为本发明的维特比译码其的电路框图。
所述维特比译码器3包括控制单元、分支度量生成单元bmg、加比选单元asc、路径度量存储单元pmu、幸存路径信息存储单元mmu、存储管理单元smu和回溯单元tbu。
所述控制单元用于控制所述分支度量生成单元bmg、加比选单元asc、路径度量存储单元pmu、幸存路径信息存储单元mmu、存储管理单元smu和回溯单元的工作tbu。
所述分支度量单元bmg用于接收信道的码元,计算分支度量值,并发送至所述加比选单元asc;
所述加比选单元asc从所述路径度量存储单元pmu中提取分支度量,并与当前时刻的分支度量值进行求和比较,选出最小的分支度量值,并将该幸存路径存储至所述幸存路径信息存储单元mmu,再将最小状态值发送至所述回溯单元tbu;
所述回溯单元tbu从所述幸存路径信息存储单元mmu中提取对应的路径信息,并进行解码;
所述存储管理单元smu用于对幸存路径信息存储单元mmu进行存储地址的管理分配。
具体的,在进行卷积译码的过程为:首先对译码器初始化和设置译码相关参数。然后计算接收数据与网格图中期望数据的汉明距离,在bmg中,采用简化的汉明距离求解方法,该方法所需的硬件资源少,处理的速度更快。计算出支路度量后存储下来,接着进行距离数据累加,更新路径度量。最后根据最小路径度量和幸存路径进行回溯,回溯深度选择48,完成译码输出。
所述rs译码器包括伴随多项式计算电路、bm匹配算法实现电路、钱搜索实现电路、forney算法实现电路和码字缓冲器。
所述rs接收的码元一路依次经过伴随多项式计算电路、bm匹配算法实现电路、钱搜索实现电路、forney算法实现电路进行错误值计算,另一路进入所述码字缓冲器缓存起来与所计算出的错误值同步,进行纠错;
所述码字缓冲器为fifo存储结构,包括存储器和寄存器;所述存储器用于接收并存储数据,再通过所述寄存器进行数据的输出。
请同时参阅图5,其为rs译码的流程图。在进行rs译码时,具体流程为:计算伴随多项式只要是由接收到的r(x)计算伴随多项式sj,sj=r(αj)j=1,2l2t,若sj=0,无错;若存在sj≠0,一般先求出错误位置再求错误值。利用bm迭代算法译码能够快速高效的根据伴随多项式sj求λ(x)=(1-x1x)(1-x2x)l(1-xvx)=1+λ1x+λ2x2+....+λvxv,并且实现简单。求得λ(x)之后,接下来利用chien搜索能够简单的求出它的根。即把伽罗华域元素的倒数按顺序依次代进错误位置多项式,就能得到误码所在的位置。根据forney算法计算错误图样:定义求值多项式:ω(x)=s(x)λ(x),此等式是求错误值的关键等式。rs码错误值计算公式为:
对于rs译码器来说,接收端接收数据时,每个经过卷积解码之后的码字包含15个码元被逐码元接收。接收码元在经过伴随多项式、错误位置多项式、错误值计算,钱搜索求根之后,由计算出的错误值来对此纠错。因此接收码元接收后分成两路,一路输入译码器进行伴随多项式计算,一路进入码字缓冲器缓存起来使得与译码计算出的错误值同步。一般情况下用同步fifo来实现缓存。
请参阅图6,其为现有寄存器实现同步fifo的示意图。
同步fifo用verilog实现后查看编译报告如下表。
从编译报告可看出器件内部存储单元没有被利用起来,用了大量的逻辑单元来缓存码元,因此芯片资源消耗大。由于直接使用同步fifo没有用到器件内部存储资源导致使用大量逻辑单元,因此可以利用器件内部存储资源。在fpga实现时我们利用altera公司提供的双端口ram宏模块,由于函数库中的双端口ram模块全是参数化调用,直接调用函数lpm_ram_dp,不但能降低设计复杂度,还可以充分发挥器件自身优势。
请参阅图7,其为优化后的fifo存储器结构图。对改进后的fifo寄存器用verilog实现后查看编译报告如下表,
通过比较改进前后的编译报告可以不难发现,器件内存单元使用了64个bit,大大提高了内存资源利用率,而且以此节省了器件逻辑单元,实现变得更加简单。
另外,请同时参阅图8,其为本发明的低功耗广域网扩频通信系统信道编码方法的流程图。本发明还提供了一种低功耗广域网扩频通信系统信道编码方法,包括以下步骤:
s1:通过rs编码器用于对数据进行rs编码;
s2:通过卷积编码器进行卷积编码,再发送至信道;
s3:通过维特比译码器将接收的信号进行卷积解码;在步骤s3中,包括:
s31:由分支度量单元接收信道的码元,计算分支度量值,并发送至加比选单元;
s32:加比选单元从路径度量存储单元中提取分支度量,并与当前时刻的分支度量值进行求和比较,选出最小的分支度量值,并将该幸存路径存储至幸存路径信息存储单元,再将最小状态值发送至回溯单元;
s33:回溯单元从幸存路径信息存储单元中提取对应的路径信息,并进行解码;
s4:通过rs译码器进行rs解码,所述步骤s4中具体包括:
s41:计算伴随多项式;具体为:由接收到的r(x)计算伴随多项式sj,sj=r(αj)j=1,2l2t,若sj=0,无错;若存在sj≠0,执行步骤s42;
s42:计算错误位置多项式;具体为:利用bm迭代算法译码能够快速高效的根据伴随多项式sj求λ(x)=(1-x1x)(1-x2x)l(1-xvx)=1+λ1x+λ2x2+....+λvxv;
s43:钱搜索求根;具体为:求得λ(x)之后,接下来利用chien搜索能够简单的求出它的根,即把伽罗华域元素的倒数按顺序依次代进错误位置多项式,就能得到误码所在的位置;
s44:计算错误值;具体为:根据forney算法计算错误图样:定义求值多项式:ω(x)=s(x)λ(x),rs码错误值计算公式为:
s45:完成纠错;具体为:求得错误图样后根据已知的错误位置和相应位置的错误大小,利用c=r-e完成t个错误以内的纠错。
相比于现有技术,本发明为了进一步降低收发系统的整体功耗,在芯片低功耗设计的基础之上,从性能、实现复杂度,以及可行性等角度对当前主流几个候选编码方案如ldpc码、turbo码、rs+卷积级联码进行了全面的分析从而选择了rs+卷积级联码编码方案,针对项目需要将选定的rs+卷积级联码编码方案作硬件实现。在实现过程中由于rs译码器工作时需要一个码字缓冲器来缓存接收码元,直接使用同步fifo因没有用到器件内部存储资源导致使用大量逻辑单元。因而对码字缓冲器进行改进。
本发明能够实现低功耗广域物联网扩频通信对数据包的要求,能够满足芯片能承载的数据块大小条件下,对突发错误和随机错误有良好的纠错性能。
本发明能够在码长受控条件下减小译码器复杂度,实现降低信号编解码所需功耗。
本发明优化后的缓冲器利用了器件本身的优势,提高了器件内存利用率,节省了硬件资源。
上述实施例为本发明较佳的实施方式,但本发明的实施方式并不受上述实施例的限制,其他的任何未背离本发明的精神实质与原理下所作的改变、修饰、替代、组合、简化,均应为等效的置换方式,都包含在本发明的保护范围之内。