背景技术
在整个通信***中,信道编码是非常重要的一部分,它保证了通信***的可靠性。现今移动通信越来越趋向实时高速传输,这种情况下用户对数据可靠性的关注更加密切,因此,对具有优秀性能的信道编码的算法研究和硬件实现尤为重要。低密度奇偶校验LDPC(Low Density Parity check,LDPC)码是移动通信的关键技术之一,它的优异纠错性能和其在信道可靠传输中的良好应用前景,已经成为当今信道编码领域最受瞩目的研究热点。LDPC码在许多情况下将取代Turbo码的趋势已经很明显,它将在深空通信、光纤通信、卫星数字视频和声频广播、磁/光/全息存储、移动和固定无线通信、电缆调制/解调器和数字用户线(DSL)中得到广泛应用。例如10千兆位以太网(10GBASE-T)、欧洲数字移动广播(DVB-S2)、WiMax(802.16e)、Wi-Fi(802.11n)、国移动多媒体广播标准(CMMB)和60GHz的无线个人局域网WPAN(802.15.3c)等通信标准都采用LDPC码作为信道编译码方案。
LDPC码是一类特殊的线性分组码,特殊之处就在于它的奇偶校验矩阵H中非零元素的个数非常少,远远小于零元素的个数,所以LDPC码可由其校验矩阵来定义。依据校验矩阵H每行和每列中非零元素的个数是否相等,LDPC码可以分为规则LDPC码和非规则LDPC码。规则LDPC码的校验矩阵中每一列包含dv个非零元素,每一行包含dc个非零元素,若码长为N,则可记为(N,dv,dc)。式(1)表示的就是(10,3,6)的规则LDPC码,相应的校验方程式如式(2)所示。
根据统计,现代的通信芯片中,有将近1/2的面积、1/3的功率消耗在信道编译码模块,由此可见信道编译码模块的性能好坏将决定通信芯片的成本与复杂度,也将决定数字电视发射器和接收器的优劣,进而决定一个公司在市场上的竞争力。所以设计并实现一个高性能、低面积及更低功耗的LDPC译码器对于整个***来说至关重要。
LDPC译码算法对译码器设计具有重要影响。目前LDPC的译码算法众多,主流算法包括:和积算法、最小和算法、分层算法及残余信息算法等。其中最小和算法和分层算法是目前译码器设计主要采用的算法,这些算法都基于迭代译码的思想,需要一定的迭代次数完成译码。在LDPC译码器实现方面过程中,存储器所占的资源是最主要的,所以如何设计一个存储器资源占用少的LDPC译码器是设计关键。在早期的LDPC译码器的实现一般都是采用最小和算法来实现,其控制简单,比较容易实现。最近几乎都是使用分层算法对LDPC译码器进行了硬件实现,分层算法不需要存储中间变量节点信息,而且收敛速度比最小和算法快一倍,大幅度节省了存储资,尤其对功耗要求严格的LDPC译码器具有非常大的吸引力。
分层算法是一种并行的迭代译码算法,即在迭代中先更新所有的校验节点,然后再更新所有的变量节点,而校验节点的更新只能利用上一次迭代过程中的比特节点信息。为了尽可能早的利用已经更新过的变量节点的信息,加快码字的收敛迭代速度。
在加性高斯白噪声(AWGN)信道下采用二进制相移键控(BPSK)调制,分层算法译码过程如下:
(1)初始化:
设定最大迭代次数Imax
后验信息初始化: yj为信道接收软信息,σ2为噪声方差,N为LDPC码字长度
检验信息初始化:M为校验矩阵行数
(2)迭代步骤:i=0,1,…,M-1;
α为修正系数,k为当前迭代次数
(3)码字x判决及校验方程计算
如果HTx=0或者达到最大迭代次数Imax,则终止译码,反之返回步骤(2)继续迭代,迭代次数加一。
当使用分层算法对LDPC译码器进行了硬件实现时,提前终止译码对实现高性能、更低功耗的LDPC译码器对于整个***来说至关重要。现有技术中,一般通过设置固定的比较大的译码迭代次数Imax,每次译码都迭代到最大次数Imax才退出译码。还有一种终止译码的方案,即一边译出一个分层一边计算出这个分层是否满足校验方程,直到所有分层都满足校验方程(HTx=0)则终止译码。第一种方案最大的缺点是功耗太大,因为在大部分情况下都不需要迭代到最大次数,导致译码器大部分时间在做“无用功”,所以实际应用中几乎不会采纳这种方法。第二种方案,如图1所示,CMMB标准3/4码率的校验矩阵H共九层,每层Hi(1≤i<10)大小为256x9216。当译码器译完第一层同时完成了计算第一层的校验方程H1Tx是否为0,紧接着译码第二层和计算第二层校验方程H2Tx是否为0,以此类推一直到计算完H9Tx是否为0为止,则一次迭代完成,当所有H1Tx,H2Tx,…,H9Tx都为0时则译码器输出译码结果。这种方案实现LDPC译码器缺点是,比如当译码完第一层且H1Tx=0,紧接着译码第二层的过程可能把第一层参与计算校验方程的后验信息的符号改变,使得H1Tx又不为0了。当这样计算所有校验方程都满(HiTx=0),但译码不一定完全正确时却提前终止译码,即终止译码条件的完备性不够。对于误比特率(BER)性能要求比较高的***,比如,ABS,dvb-s2等数字卫星广播,特别是对于ABS只有一个LDPC信道译码器的***,甚至只有一比特错在关键位置都有可能导致后面的视频显示上出现一大片马赛克。
发明内容
本发明所要解决的技术问题是,针对现有技术不足,提供一种LDPC译码器终止译码的方法,解决现有方法功耗大、终止译码条件不完备、误比特率高的问题。
为解决上述技术问题,本发明所采用的技术方案是:一种LDPC译码器终止译码的方法,该方法为:
1)初始化:仿真确定最大迭代次数I
max,后验信息
及变量节点信息
初始值
0≤j<N,y
j为信道接收的软信息,σ
2为噪声方差,N为LDPC码字长度;初始化检验信息:
i=0,1,…,M-1;M为校验矩阵行数;
2)令k=1;
其中,
c
i为第i个校验节点,v
j为第j个变量节点,M(c
i)表示和校验码元i相约束的比特码元信息集合,M(c
i)/v
j表示M(c
i)不包含v
j的子集,α为修正系数,0<α<1;sgn()为符号函数;
4)利用下式更新后验信息
5)判断
是否等于
若
等于
且
或者达到最大迭代次数I
max,则终止译码;否则,将k的值加1,返回3);其中H
i为第i层的校验矩阵,
与现有技术相比,本发明所具有的有益效果为:本发明在每层译码完成的同时除了计算校验方程是否满足外,还计算参与本次译码的所有后验信息
符号位译码前后是否出现翻转,保证了所计算的Hi
Tx结果的正确性和终止条件的完备性;本发明硬件实现时只需要加入少量硬件逻辑就可以防止出现错误的终止迭代情况,可以使***终止译码条件更完备和得到更低的误比特率,特别用在高阶调制的通信接收机***时,本发明的方法可以使硬件实现的LDPC译码器误比特率的瀑布线过渡带更窄。
具体实施方式
本发明硬件实现逻辑框图如图3,具体实施步骤如下:S1,把本层译码所需要的
信息和校验信息分别从后验信息存储模块和校验信息存储模块取出,并把
符号位暂存起来。S2,把数据送入运算单元运算更新校验信息和后验信息
S3,计算校验方程Hi
Tx和通过异或判断符号位是否翻转。S4,把新的后验信息和校验信息存回存储模块。如果S3满足则,输出译码结果,否则返回S1开始下一次迭代直到到达设定的最大迭代次数。
为了解决所有校验方程都满足H
Tx=0,但译码不一定完全正确时却提前终止译码的问题,本发明在每层译码完成的同时除了计算校验方程是否满足外还计算参与本次译码的所有后验信息
符号位译码前后是否出现翻转,即
是否等于
如图2。这样保证了前面所计算的Hi
Tx结果的正确性和终止条件的完备性。当每一层的Hi
Tx都为0且每一层所参与译码的
译码前后符号都没有改变时才输出本次译码结果。
本发明的方法步骤如下:
(1)初始化:
设定最大迭代次数Imax, yj为信道接收软信息,σ2为噪声方差,N为LDPC码字长度
(2)迭代步骤:i=0,1,…,M-1;
α为修正系数,k为当前迭代次数
c)每层参与计算的信息进行判决 并计算HiTx是否为0;
(3)退出迭代判决
,如果所有HiTx都为0且每层计算的符号位都未翻转或者达到最大迭代次数Imax,则终止译码,反之返回步骤(2)继续迭代,迭代次数加一。
本发明硬件实现逻辑框图如图3,译码及译码终止步骤如下:S1,把本层译码所需要的
信息和校验信息分别从后验信息存储模块和校验信息存储模块取出,并把
符号位暂存起来。S2,把数据送入运算单元运算更新校验信息和后验信息
S3,计算校验方程Hi
Tx和通过异或判断符号位是否翻转。S4,把新的后验信息和校验信息存回存储模块。如果S3满足则,输出译码结果,否则返回S1开始下一次迭代直到到达设定的最大迭代次数。