您当前的位置:五五电子网电子知识电子知识资料计算机应用LDPC码译码算法 性能分析应用 正文
LDPC码译码算法 性能分析应用

LDPC码译码算法 性能分析应用

点击数:7407 次   录入时间:03-04 11:44:18   整理:http://www.55dianzi.com   计算机应用

    引 言

    信道编译码技术可以检测并且纠正信号在传输过程中引入的错误,能够保证数据进行可靠的传输[1].

    LDPC码的校验矩阵具有稀疏的特性,因此存在高效的译码算法,其纠错能力非常强。1981年,Tanner提出了基于图模型描述码字的概念,将LDPC码的校验矩阵对应到Tanner图的双向二部图上。采用Tanner图构造的LDPC码,通过并行译码可大大降低译码复杂度。Mack-ay 和Neal利用随机构造的Tanner 图研究了LDPC 码的性能,发现采用和积算法(SPA)的LDPC 码具有优异的译码性能,在长码时甚至超过了Turbo 码[2].本文采用Mackay 基于二分图提出的改进方案构造LDPC 码的校验矩阵。基于置信传播(BP)算法,给出了一种简化的BP算法--对数域迭代APP LLR 算法,复杂度大大降低。目前,LDPC码是最有希望在广泛的信道范围取得香农容量的误差纠正技术[3],在保证LDPC 码纠错性能的前提下,降低编译码器实现的复杂度是研究的重点,引发了信道编码界的研究热潮。

    1 LDPC 码编码

    LDPC码是一种性能非常接近香农极限的“好”码,它是惟一用校验矩阵来表示的线性分组码。LDPC码的编码主要分两步进行,首先构造奇偶校验矩阵,然后是基于奇偶校验矩阵的编码算法。

    1.1 校验矩阵的构造

    根据式子n*j = m*k 可知,规则的LDPC码(n,j,k),当参数n, j, k 确定后,可以得到校验方程的数目m,则校验矩阵H 的大小就可以定为m × n.构造LDPC 码校验矩阵的一般步骤为:先生成一个m 行n 列的全0矩阵,然后随机地将每列中的j 个0换成1,每行中的k 个0换成1.但在随机置l的过程中,必须避免出现长度为4的环[4].

    如果最小环长为4,在迭代中非常容易造成错误信息的扩散传播,从而导致译码性能的下降[5].

    Mackay 为了消除校验矩阵中长度为4 的环,基于Tanner图提出了改进的构造方案。采取的准则是:在构造时必须保证任意两列间的交叠重量不超过1.本文采用的是Mackay的1A构造方法,按照此方法构造的一个LDPC码(3,6)码如图1所示。

     

     

    Mackay的1A构造方法是最基本的一种构造方法,它要求保证固定列重为γ ,而行重尽可能均匀的保持为ρ .

    利用Mackay构造方法得到的LDPC码距离特性很好,且没有短环。

    1.2 基于奇偶校验矩阵的编码算法

    LDPC码的直接编码方法就是利用高斯消去法,产生一个下三角矩阵,然后进一步初等变换得到右边单位阵形式H = [P|I] ,由G = [I|P] 得到生成矩阵,再利用信息码元向量u 和生成矩阵G 相乘可得到完整码字C,即C = M*G 直接编码[5].

    2 LDPC 码译码[4,6-7]

    BP 算法是在Gallager提出的概率译码算法基础上发展而来的。BP算法每次迭代包括2步:变量节点的处理和校验节点的处理。概率域就是在节点间传递的是概率信息,采用很多乘法运算,运算量大;而对数域的和积算法实现是将概率值通过对数似然比变化为软信息值(LLR),再进行传递,这样就将大量乘法运算变为加法运算,大大简化了译码复杂度,利于硬件实现。下面重点介绍对数域迭代APP LLR译码算法。

    2.1 迭代APP LLR译码算法的变量定义

    对于(N,K) LDPC码,定义变量U 取值为0和1时的对数似然比(LLR)为:

     

     

    设发端发送的码字为u = [u1,u2 ,…,uN ] ,接收码字为y = [y1,y2 ,…,yN ] ,由此可以得出在迭代中传递的校验节点和信息节点的软信息为:

     

     

     

     

    2.2 迭代APP LLR译码算法

    迭代APP LLR译码算法的迭代过程如下:

    (1)初始化:设每个变量节点n 的软信息为:

     

     

    对于矩阵中H(m,n) = 1,相应的变量节点的软信息初始化为信道输出的软信息,即λmn (un ) = L(un ),Λmn (un ) = 0.

    (2)校验节点更新:根据每个变量节点n,向与该变量节点相连的所有校验节点传递更新的软信息,计算校验节点信息:

     

     

    (3)判决:当λn (un )  0,则u-n = 0 ,否则u-n = 1,此时判决出的码为:u- ={u-1,u-2 ,…,u-N}.最后根据校验矩阵来判断所译出的码字是否正确。如果u-H T = 0,那么译码正确,此时,停止迭代;否则继续迭代进行译码,直到迭代次数达到所设定的最大次数。如果此时仍未正确译码,则译码失败。

    由以上所述可见,在变量节点更新时只有加法运算,但是还可以再进一步降低算法的实现复杂度。采用迭代APP LLR 算法,将LLR BP 算法中的λn (un ) 代替λmn′(u ) n′ 参与校验信息的迭代。即λn (un ) 不仅用于硬判决,还用于校验信息的更新。这样所传递的变量消息之间便引进了相关性,传递的变量消息就不再是外部消息,仅仅需要计算和存储一个变量消息的数值,可以大大地降低算法的复杂度。

    3 LDPC 码在高斯信道下不同译码算法的仿真结果和分析

    基于Matlab按照上述的编译码方法,在高斯信道下分别对LDPC 码概率域的SPA 和对数域的迭代APPLLR 译码算法进行了误码性能仿真。然后由所得到的性能仿真图形进行分析比较。

    3.1 概率域的SPA的仿真结果和分析高斯信道下,用BPSK 调制,采用概率域的迭代译码算法,迭代次数为20,该程序的优点是译码效率高,其关键地方利用了LOG 函数,提高了译码效率。相同码率均为1 2,码长分别为36,256,512,用概率域的迭代译码算法时的编译码系统的误码率随信噪比变化的曲线如图2所示。

     

     

    由图2 可见,译码前的误码率最高,采用概率域的迭代译码算法后,误码率大幅度降低,译码性能较好。码长为512的LDPC码纠错性能最好,码长为36的LDPC码纠错性能最差。由此可得:在相同码率下,随着码长的增加,LDPC码的纠错性能逐渐改善。

    3.2 迭代APP LLR译码算法的仿真结果和分析

    高斯信道下,用BPSK 调制,采用对数域的迭代译码算法,迭代次数为10,可以设置误码码字的最大数量来计算每个信噪比点,程序简明了,容易理解,而且译码效率非常高。相同码率为1/2,码长分别为36、256、512,用对数域的迭代APP LLR译码算法时的编译码系统的误码率随信噪比变化的曲线如图3所示。



www.55dianzi.com

     

     

    由图3可见,码长为512的LDPC码纠错性能最好,码长为36的LDPC码纠错性能最差。即在相同码率下,随着码长的增加,LDPC码的纠错性能逐渐改善。

    3.3 概率域的SPA和对数域的迭代APP LLR译码算法的误码性能比较及分析

    高斯信道下,用BPSK调制,分别对码率为1/2,码长为256 的LDPC 码概率域的SPA 和对数域的迭代APPLLR译码算法的性能比较,如图4所示。

     

[1] [2]  下一页


本文关键字:暂无联系方式计算机应用电子知识资料 - 计算机应用