本发明涉及电子信息技术领域,尤其涉及一种基于循环压缩的turbo码译码方法及其装置。
背景技术:
近年来,turbo码已经被多种通信标准确定为必须支持的信道编码码型。为了提高无线数据传输的可靠性,turbo码在(wirelesssensornetworks,以下简称:wsns)中也有相应的应用。在很多场合中,传感器节点电源能量有限,而无线数据通信消耗了多达80%的节点功耗,并且过多功耗将严重缩短传感器节点的生命周期。为了降低传输功耗并且尽可能减少传感器节点的数据帧重传概率,低功耗近最优turbo码译码器的研究引起了广泛关注。
然而,在turbo码译码器的工程实现中,为获得满意的ber性能,译码算法需经过多次迭代处理。由于译码算法自身的属性,译码器需要大容量的smc和频繁的访问操作,致使turbo译码器的功耗很高。所以,传统的turbo译码器不适合于功率受限的wsns.
为了解决turbo码译码器的功耗问题,目前研究者们提出了不同的译码结构设计方案。具体包括:特定准则下停止迭代方法、反向计算试探设计方案和减小状态量度缓存(statemetriccache,以下简称:smc)容量的设计策略。在这些技术中,减小smc容量是降低turbo码译码器整体功耗的一个有效策略。根据这种策略,目前提出了基-4追溯计算译码方案和walsh-hadamard变换法。其中,基-4追溯计算译码方案通过将8个状态度量值转化为6个差值度量和4个比特的符号位,使smc容量降低了20%;walsh-hadamard变换法,通过对状态度量值做压缩变换,再做非均匀量化处理,使得变换值位宽为5比特,进而将smc容量降低了50%。
基-4追溯计算译码方案中,由于存储的差值度量采用了和状态度量相同的量化位宽,smc容量降低不足以适应低功耗的需求。
walsh-hadamard变换法虽然降低了更多的smc容量,但是其引入的量化误差使得ber性能有较大的损失且冗余计算复杂度较高。
技术实现要素:
本发明的目的在于针对在功率受限的无线传感器网络(wsns)中turbo码译码器的功耗问题,提供一种基于循环压缩的turbo码译码方法及其装置。
一种基于循环压缩的turbo码译码方法,包括:
将前向状态度量计算出来的信息进行压缩处理后存放在后进先出的smc中;
从所述后进先出的smc读取压缩信息,并将读取的压缩信息进行解压缩处理以估算出对应的前向状态度量值;
将该估算出的前向状态度量值用于后验概率对数似然比的计算,最终实现译码;
所述循环压缩处理包括:
首先,将前向状态度量计算出来度量值进行对数域的规整化处理;
其次,对规整化处理后的前向状态度量值做递归压缩处理:
最后,输出压缩度量值并存储于smc中;
所述解压缩处理包括:
从smc读取压缩度量值进行解压缩处理:
最后,输出解压处理后的度量值,用于后验概率llr的计算。
进一步地,如上所述的基于循环压缩的turbo码译码方法,所述循环压缩处理包括:
首先,将前向状态度量计算出来度量值
j2∈{0,…,7},k∈{1,…,w},w是译码窗口宽度;
其次,对规整化处理后的前向状态度量值根据公式(2)做递归压缩处理:
最后,输出压缩度量值
所述解压缩处理包括:
从smc读取压缩度量值
最后,输出解压处理后的度量值,用于后验概率llr的计算。
进一步地,如上所述的基于循环压缩的turbo码译码方法,在所述递归压缩处理的过程中,当递归压缩处理后得到的压缩度量值
一种基于循环压缩的turbo码译码装置,包括:
压缩模块,用于将计算得到的前向状态度量进行循环压缩处理;
smc模块,用于将压缩模块压缩处理后的数据进行存放;
解压缩模块,用于读取smc模块存放的压缩数据并进行解压缩;
所述压缩模块包括:
规整化处理单元,用于将前向状态度量计算出来度量值
j2∈{0,…,7},k∈{1,…,w},w是译码窗口宽度;
递归压缩单元,用于对规整化处理后的前向状态度量值根据公式(2)做递归压缩处理:
压缩输出控制单元,用于将压缩处理后的压缩度量值
所述解压缩模块包括:
解压缩单元,用于将读取的压缩度量值利用公式(3)进行解压缩处理:
解压缩输出控制单元,用于将解压缩单元解压后的得到的度量值进行输出。
进一步地,如上所述的基于循环压缩的turbo码译码装置,还包括递归计算前向状态度量模块,用于计算前向状态度量值供压缩模块压缩。
进一步地,如上所述的基于循环压缩的turbo码译码装置,所述压缩模块包括;
比较单元,用于比较压缩单元压缩处理后得到的压缩度量值
循环单元,用于将计算得到的
加法计数单元,用循环单元每循环操作一次,其将迭代压缩次数ik加1并输出;迭代压缩次数ik∈{1,2,3,4}。
进一步地,如上所述的基于循环压缩的turbo码译码装置,所述压缩模块还包括压缩缓存单元,用于存放规整化处理单元处理后的数据以供递归压缩单元进行递归压缩处理、以及存放递归压缩单元压缩处理的数据。
进一步地,如上所述的基于循环压缩的turbo码译码装置,所述解压缩模块包括:
减法计数单元,用于读取迭代压缩次数ik,解压缩单元每解压一次,减法计数单元减少1,直到ik为1时,解压缩完毕。
进一步地,如上所述的基于循环压缩的turbo码译码装置,所述解压缩模块还包括解压缩缓存单元,用于存储第一次输入和后续循环解压缩得到的数据。
进一步地,如上所述的基于循环压缩的turbo码译码装置,所述解压缩模块还包括延时单元,用于对解压缩后的数据调整时序。
有益效果:
本发明通过在传统的turbo译码结构中插入一个循环压缩模块和一个解压缩模块,能以更小的量化方案实现压缩度量值的存储,并可以利用压缩计算带来的相关性,对压缩度量值做解压缩处理。通过此方法turbo码译码器的状态量度缓存(smc)容量减少了53.75%,且误码率(ber)性能与最优的log-map译码算法非常接近,解决了turbo码在功率受限的无线通信场合中的应用限制。
附图说明
图1为本发明turbo码译码方法流程图;
图2为本发明turbo码译码装置结构示意图;
图3为本发明turbo码译码装置中压缩模块结构示意图;
图4为本发明turbo码译码装置中解压缩模块结构示意图;
图5为本发明smc字长结构示意图;
图6为译码窗口为800bit时误码率对比曲线图;
图7为译码窗口为1440bit时误码率对比曲线图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚,下面本发明中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
如图1所示,本发明为了进一步降低smc容量,同时保持较低的冗余计算复杂度,以lte-advanced标准中的turbo码为研究对象,提出了压缩状态度量存储位宽的方法。当前向状态度量计算出来后,先插入一个循环压缩模块对前向状态度量做压缩处理,存放在后进先出(lifo)的smc中,再插入一个解压缩模块,估算出对应的前向状态度量值,用于后验概率对数似然比(llr)的计算。
具体地,本发明提供一种基于循环压缩的turbo码译码方法,包括以下步骤:
步骤1:将前向状态度量计算出来的信息进行压缩处理后存放在后进先出的smc中;
步骤2:从所述后进先出的smc读取压缩信息,并将读取的压缩信息进行解压缩处理以估算出对应的前向状态度量值;
步骤3:将该估算出的前向状态度量值用于后验概率对数似然比的计算,最终实现译码;
具体地,所述循环压缩与解压缩模块的具体实现过程如下:
状态度量的循环压缩:
首先,对每个译码时刻k,前向状态度量递归计算模块输出的8个度量值
其中,j2∈{0,…,7},k∈{1,…,w},w是译码窗口宽度。
其次,对规整化处理后的7个前向状态度量值
由公式(2)可知,在每个译码时刻,用当前状态的度量值减去其前一个状态度量值,再乘以一个压缩系数1/4,便可以得到当前状态下新的度量值。在硬件实现中乘以1/4的操作可以转化为右移2个比特的操作。在经典的turbo码译码器中,状态度量值采用了(10,3)的二进制量化方案。本技术中通过压缩处理后,可以采用更小的(5,3)量化方案,即可保证较好的ber性能。其中5表示总比特数,3表示小数比特数。然而,当压缩度量值
最后,当完成压缩操作后,输出迭代压缩次数ik和压缩度量值并存储于smc中。值得注意的是,由于在任意译码时刻有α′k(s0,k)=0,因此没必要存储在smc中。smc的字长结构如图5示。
状态度量的解压缩:
首先,从lifosmc模块中读出ik和
然后,利用公式(3)进行解压缩处理。从公式(3)可知,解压缩处理是递归压缩的一个逆过程。ik决定了解压计算的次数。ik最小是1,所以必定有一次解压处理,每解压一次,减法计数减少1,直至ik次解压完成,然后输出解压结果;例如,当ik等于2时,将进行3次的解压缩处理。注意,在解压缩模块中可以通过一个2比特左移来代替乘法操作,并可通过一个延时单元(du)来调整时序。
最后,输出解压处理后的度量值,用于后验概率llr的计算。虽然在压缩模块中采用了(5,3)量化方案会带来一定的量化误差,但是仿真结果表明,ber性能仅比最优的log-map算法有很小的降低。
图2为本发明turbo码译码装置结构示意图,如图2所示,本发明实施例提供的基于循环压缩的turbo码译码装置,包括:
递归计算前向状态度量模块,用于计算前向状态度量值供压缩模块压缩;
压缩模块,用于将计算得到的前向状态度量进行循环压缩处理;
smc模块,用于将压缩模块压缩处理后的数据进行存放;
解压缩模块,用于读取smc模块存放的压缩数据并进行解压缩。
具体地,如图3所示,本发明提供的基于循环压缩的turbo码译码装置其压缩模块包括:
规整化处理单元,用于将前向状态度量计算出来度量值
j2∈{0,…,7},k∈{1,…,w},w是译码窗口宽度;
递归压缩单元,用于对规整化处理后的前向状态度量值根据公式(2)做递归压缩处理:
压缩输出控制单元,用于将压缩处理后的压缩度量值
优选地,如上所述的基于循环压缩的turbo码译码装置,所述压缩模块还包括比较单元,所述比较单元用于比较压缩单元压缩处理后得到的压缩度量值
循环单元,用于将计算得到的
加法计数单元,用循环单元每循环操作一次,其将迭代压缩次数ik加1并输出;迭代压缩次数ik∈{1,2,3,4}。
优选地,如上所述的基于循环压缩的turbo码译码装置,所述压缩模块还包括压缩缓存单元,用于存放规整化处理单元处理后的数据以供递归压缩单元进行递归压缩处理、以及存放递归压缩单元压缩处理的数据。
如图4所示,本发明提供的解压缩模块,包括:
解压缩单元,用于将读取的压缩度量值利用公式(3)进行解压缩处理:
减法计数单元,用于读取迭代压缩次数ik,解压缩单元每解压一次,减法计数单元减少1,直到ik为0时,解压缩完毕,并将最终解压缩的值供解压缩输出控制单元进行输出。
解压缩输出控制单元,用于将解压缩单元解压后的得到的度量值进行输出。
具体地,解压缩输出控制单元根据ik值判断是否继续循环压缩处理,ik最小是1,所以必定有一次解压处理,每解压一次,减法计数减少1,直至ik次解压完成,然后输出解压结果。
优选地,如上所述的解压缩单元,还包括解压缩缓存单元,用于存储第一次输入和后续循环解压缩得到的数据。
延时单元,用于对解压缩后的数据调整时序。
本发明提供的解压缩模块解压处理过程为:数据输入解压缩缓存单元,ik输入减法计数单元,开始解压处理:首先解压一次,然后看减法计数单元,是00时(对应1),结束输出;比00大时,减计数一次,让输出控制单元继续工作开始下一次解压,直至为00时结束。
本发明通过在传统的turbo译码结构中插入一个循环压缩模块和一个解压缩模块,能以更小的量化方案实现压缩度量值的存储,并可以利用压缩计算带来的相关性,对压缩度量值做解压缩处理。通过此方法turbo码译码器的状态量度缓存(smc)容量减少了53.75%,且误码率(ber)性能与最优的log-map译码算法非常接近,解决了turbo码在功率受限的无线通信场合中的应用限制。
如图6、图7所示,两种w译码窗口宽度800和1440,每个比特对应1个译码时刻,算法从上到下,最大值log-map算法,本申请方法,最优的log-map算法。δ是度量因子。按经典方法,存储容量为8*10*w,其中8是每个译码时刻k对应的8个状态度量值,10是每个度量值的量化比特数,w是译码窗口宽度。按本发明方法后是2+7*5=37,所以本发明方法状态量度缓存容量减少了53.75%。
最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。