一种适用于低密度奇偶校验码的多值修正最小和解码方法转让专利

申请号 : CN201110387887.0

文献号 : CN102412846B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 窦金芳姜明

申请人 : 西安空间无线电技术研究所

摘要 :

一种适用于低密度奇偶校验码的多值修正最小和解码方法,对每一个校验节点将关联的变量节点输入数据符号相乘得到总的输出符号,同时比较相邻变量节点输入数据的绝对值大小,得到最小值、次最小值以及第三最小值,另外记录最小值对应的变量节点序号;对于最小值所对应的变量节点,将次最小值和第三最小值作对数似然比(LLR)域的加法运算,得到的结果乘以所述总的输出符号和该变量节点输入数据符号,作为向最小值对应的变量节点的输出信息;对于其他变量节点,则将最小值和第三最小值做LLR域的加法运算,得到的结果乘以所述总的输出符号和该变量节点输入数据符号,作为向该变量节点的输出信息。本发明的译码方法性能好、复杂度低、实现简单。

权利要求 :

1.一种适用于低密度奇偶校验码的多值修正最小和译码方法,低密度奇偶校验码的校验矩阵为HM×N=[hm,n],低密度奇偶校验码包括变量节点集合{vn,n∈[1,N]}和校验节点集合{cm,m∈[1,M]},变量节点vn参与的校验节点集合为A(n)={j,hj,n=1},包含于校验节点cm的变量节点集合为B(m)={i,hm,i=1};

其特征在于:所述译码方法包括按照如下顺序执行的步骤:(1)确定初始的各变量节点总的输出信息 以及初始的各变量节点向每一个校验节点输出的信息 n∈[1,N],j∈A(n);并设置初始迭代次数k=1,开始迭代译码;

(2)根据第k-1次迭代的各变量节点vi向校验节点cm输出的信号 计算出第k次迭代每一个校验节点cm向各变量节点vi输出的信号首先根据信号 的符号 做乘法求得总的输出符号

同时按照信号的绝对值大小比较出绝对值最小的三个数值, i1,i2,i3∈B(m),并记录最小值对应的输入变量节点序号i1;并针对序号i1的变量节点,利用 和 更新向变量节点i1的输出,计算方法如下:向其他变量节点i≠i1,i∈B(m)的输出更新计算方法如下:(3)计算第k次迭代各变量节点总的输出信息 及第k次迭代各变量节点向与之相连的每一个校验节点输出的信息 对于每个变量节点vn,n∈[1,N],将所有与之相连的校验节点cj,j∈A(n)向变量节点vn输出的信息 以及该变量节点的初始输出信息 相加,作为该变量节点vn总的输出信息 ;

各变量节点vn将总输出信号 减去对应节点cj,j∈A(n)的输入信号 作为所述信息k

(4)根据 的符号硬判得到一个输出序列W ;如果该输出序列满足如下条件: kθ为全零行向量;则将该序列W 作为译码输出,宣布译码成功,终止译码;否则迭代次数k加1,如果迭代次数k大于预设的最大迭代次数K,则译码失败,终止译码,否则继续迭代译码跳转至步骤(2)进行下一次迭代。

说明书 :

一种适用于低密度奇偶校验码的多值修正最小和解码方法

技术领域

[0001] 本发明涉及一种低密度奇偶校验(LDPC)码的迭代译码方法,属于信道纠错编码的译码技术领域。

背景技术

[0002] 各种通信系统中,传输比特受信道随机噪声的影响而产生随机错误。理论和实践证明,通过引入冗余度来提供传输可靠性的纠错编码方法是一类行之有效的手段。而近年来引入的Turbo码和低密度奇偶校验(Low-DensityParity-Check,简称LDPC)码是至今发现的纠错能力最强的编码方案之一。
[0003] 相比于Turbo码而言,LDPC码的设计更为灵活(不同码率/码长),LDPC码解码算法的全并行结构使得设计高吞吐率的LDPC解码器更容易。因此,未来通信系统中有关信道编码的标准化大都选用LDPC码。
[0004] LDPC码的标准迭代解码算法主要包括三种:和积算法(Sum-ProductAlgorithm,SPA)、最小和算法(Min-Sum Algorithm,MSA)、比特翻转解码算法(Bit-Flipping,BF)。在这三种算法中,SPA算法性能最好,但实现也最复杂;BF算法性能最差,但实现最简单。MSA算法对SPA算法的校验节点计算单元做简化处理,是降低SPA算法运算复杂度的一个有效途径,由于MSA算法在复杂度和性能上取得了较好的折中,因此它是实际通信系统中LDPC解码器的优选算法。
[0005] MSA算法和SPA算法有相似的迭代结构,也是变量节点和校验节点两层节点之间的一个交替迭代计算过程。但是MSA算法中的校验节点计算单元采用近似方法计算校验节点输出信息,有效地降低了校验节点的计算复杂度,原先SPA算法中的指数和对数运算被简单的比较运算所取代。在节点重量相同的条件下,MSA算法中校验节点和变量节点的计算复杂度近似相等。虽然MSA算法的复杂度明显低于SPA译码算法,但简化处理也使得其译码性能相比SPA算法有较大的差距,SPA算法的校验节点输出信息可靠度大小应当略小于MSA算法的输出幅值。所以如果要很好的逼近标准输出结果,必须适当降低MSA近似输出信息的绝对值大小。J.Chen等人提出了一类无条件修正方案,主要分为两类:通过一个乘性因子修正MSA算法校验式输出,对应的改进MSA算法称为乘性修正的MSA(NMSA,Normalized Min Sum);通过一个偏移因子修正MS算法校验式输出,对应的改进算法称为偏移修正的MSA(OMSA,Offset Min Sum)。
[0006] 这两种改进MSA算法都是在原始算法的基础上,引入了修正因子,它们与原始MSA算法的共同点是都只用了变量节点输入信息的最小值和次最小值,因此都没有利用较多的变量节点输入信息,导致了这些算法与SPA算法的性能仍存在一定差距。

发明内容

[0007] 本发明的目的是提供一种性能好、复杂度低、实现简单的低密度奇偶校验码的译码方法。
[0008] 本发明包括如下技术方案:
[0009] 一种适用于低密度奇偶校验码的多值修正最小和译码方法,低密度奇偶校验码的校验矩阵为HM×N=[hm,n],低密度奇偶校验码包括变量节点集合{vn,n∈[1,N]}和校验节点集合{cm,m∈[1,M]},变量节点vn参与的校验节点集合为A(n)={j,hj,n=1},包含于校验节点cm的变量节点集合为B(m)={i,hm,i=1};所述译码方法包括按照如下顺序执行的步骤:
[0010] (1)确定初始的各变量节点总的输出信息 以及初始的各变量节点向每一个校验节点输出的信息 n∈[1,N],j∈A(n);并设置初始迭代次数k=1,开始迭代译码;
[0011] (2)根据第k-1次迭代的各变量节点vi向校验节点cm输出的信号
[0012] 计算出第k次迭代每一个校验节点cm向各变量节点vi输出的信号
[0013] 首先根据信号 的符号 做乘法求得总的输出符号同时按照信号的绝对值大小比较出绝对值最小的三个数值,
i1,i2,i3∈B(m),并记录最小值对应的输入变量节点序号i1;然后针对
序号i1的变量节点,利用 和 更新向变量节点i1的输出,计算方法如下:
[0014]
[0015] 向其他变量节点i≠i1,i∈B(m)的输出更新计算方法如下:
[0016]
[0017] (3)计算第k次迭代各变量节点总的输出信息 及第k次迭代各变量节点向与之相连的每一个校验节点输出的信息 对于每个变量节点vn,n∈[1,N],所有与之相连的校验节点cj,j∈A(n)向该变量节点vn输出的信息为 则该变量节点vn总的输出信息
[0018] 各变量节点vn将总输出信号 减去对应节点cj,j∈A(n)的输入信号 作为所述信息
[0019] (4)根据 的符号硬判得到一个输出序列Wk;如果该输出序列满足如下条件:k
θ为全零行向量;则将该序列W 作为译码输出,宣布译码成功,终止
译码;否则迭代次数k加1,如果迭代次数k大于预设的最大迭代次数K,则译码失败,终止译码,否则继续迭代译码跳转至步骤(2)进行下一次迭代。
[0020] 本发明与现有技术相比,具有如下优点:
[0021] (1)相比于现有的最小和解码方法,本发明在校验节点计算的时候,从变量节点输入信息中再找一个第三最小值,并利用这三个值更新输出信息,该方法利用了较多的变量节点的输入信息,使得修正最小和译码获得更好的性能。
[0022] (2)本发明在不增加复杂度的前提下,对原最小和算法的校验节点计算进行改进,使得其性能有很大提高,与标准的和积算法相当,实现复杂度却远低于和积算法。另外,算法计算步骤简单,利于硬件实现。

附图说明

[0023] 图1是一个LDPC码的校验矩阵和其对应的二分图的示意图。图1(a)是LDPC码的校验矩阵结构图,图1(b)是LDPC码校验矩阵的一个示例图,图1(c)是LDPC码校验矩阵对应的二分图的结构图,即校验节点和变量节点的连接示意图。
[0024] 图2是校验节点cm如何更新向变量节点vn输出信息 的原理图。其中,图2(a)给出了校验节点接收来自相邻变量节点的输入信息的示意图;图2(b)给出了校验节点将更新后的信息输出给相邻变量节点的示意图。
[0025] 图3是变量节点vn如何更新对数似然比域(LLR)输出 以及输出信息 的原理图。图3(a)给出了变量节点接收来自相邻校验节点的输入信息、计算LLR输出信息以及传输给相邻校验节点信息的示意图;图3(b)给出了变量节点将更新后的信息输出给相邻校验节点的示意图。
[0026] 图4为本发明实施例的译码方法流程图。
[0027] 图5为本发明实施例的校验节点处理子模块内部结构框图。
[0028] 图6是本发明的译码方法与现有的译码方法的误帧率性能比较图。
[0029] 所有的符号注解:
[0030] yn:接收到的信号大小;
[0031] σ2:AWGN信道的噪声方差;
[0032] vn:第n个变量节点;
[0033] cm:第m个校验节点;
[0034] A(n):变量节点vn参与的校验节点集合;
[0035] B(m):校验节点cm包含的变量节点集合;
[0036] 第k次迭代第n个变量节点传输给第m个校验节点的信息;
[0037] 第k次迭代第m个校验节点传输给第n个变量节点的信息;
[0038] 第k次迭代第n个变量节点的输出LLR信息;
[0039] 校验节点相邻变量节点的输入信息绝对值中的最小值;
[0040] 校验节点相邻变量节点的输入信息绝对值中的第二最小值;
[0041] 校验节点相邻变量节点的输入信息绝对值中的第三最小值;
[0042] i1: 对应的变量节点序号;
[0043] Wk:对 硬判后得到的序列;
[0044] Wk的第n个元素;
[0045] Sk:根据Wk计算出的校正子;
[0046] LDPC:低密度奇偶校验;
[0047] SPA:和积算法;
[0048] MSA:最小和算法;
[0049] NMSA:归一化的MSA算法;
[0050] OMSA:偏移修正的MSA算法;
[0051] MMSA:修正MSA算法。

具体实施方式

[0052] 本发明适用于低密度奇偶校验码的多值修正最小和译码方法,其方法是:用信道初始化信息对变量节点的初始信息以及变量节点向相邻校验节点输出的初始信息赋值,开始迭代;对每一个校验节点将关联的变量节点输入数据符号相乘得到总的输出符号,同时比较相邻变量节点输入数据的绝对值大小,得到最小值、次最小值以及第三最小值,另外记录最小值对应的变量节点序号;对于最小值所对应的变量节点,将次最小值和第三最小值作对数似然比(LLR)域的加法运算,得到的结果乘以所述总的输出符号和该变量节点输入数据符号,作为向最小值对应的变量节点的输出信息;对于其他变量节点,则将最小值和第三最小值做LLR域的加法运算,得到的结果乘以所述总的输出符号和该变量节点输入数据符号,作为向该变量节点的输出信息;对每一个变量节点,累加所有相邻校验节点的输入信息得到LLR域的后验输出,并从LLR域后验输出中减去该校验节点的输入信息,得到向该校验节点的输出信息;根据各个变量节点的LLR域后验输出,取符号硬判得到新的试探序列,如果校验矩阵和试探序列模2乘得到全零序列,宣布译码成功,终止译码;若不为全零序列且迭代次数到达预设的最大迭代次数,宣布译码失败,终止译码;否则继续下一轮迭代。
[0053] 为使本发明的内容和技术手段更加清楚和完整,以下结合附图对本发明做进一步详细阐明。
[0054] 定义LDPC码的校验矩阵为HM×N=[hm,n],图1(a)是其具体形式,图1(b)是它的一个例子。图1(c)是LDPC码校验矩阵对应的二分图的结构图,即校验节点和变量节点的连接示意图。LDPC码的校验矩阵和它的二分图之间是唯一确定的关系。二分图包含了N个变量节点{v1,v2,…vN},用集合{vn,n∈[1,N]}表示,每个变量节点代表编码后的比特位或者对应校验矩阵的一列;二分图还包含了M个校验节点,用集合{cm,m∈[1,M]}表示,每个校验节点代表一个校验约束或者对应校验矩阵的一行。当码字中某一比特vn包含在某一校验约束cm中,即校验矩阵中相应位hm,n=1时,则在二分图中对应的变量节点vn和校验节点cm之间连一条边。与一个节点相连的另一节点称为该节点的相邻节点。与一个节点相连的边的数目称为该节点的度数。定义变量节点vn参与的校验节点集合为A(n)={j,hj,n=1},包含于校验节点cm的变量节点集合为B(m)={i,hm,i=1}。
[0055] 如图4所示,本实施方式的译码方法包括如下具体步骤:
[0056] 步骤S401:迭代初始化,确定初始的各变量节点总的输出信息 以及初始的各变量节点向各校验节点输出的边信息,并设置迭代次数k=1;
[0057] 编码序列{x1,x2,...,xN}做BPSK调制zn=1-2xn,n∈[1,N],经过零均值2
方差σ 的高斯白噪声信道后得到接收序列Y={y1,y2,...,yN},进行译码迭代的初始化:确定初始的各变量节点vn,n∈[1,N]向各校验节点cm,m∈[1,M]输出的边信息并设置迭代次数k=1。其中,N为变量节点总的个数,M为校验
节点总的个数。
[0058] 步骤S402:如图2所示,根据第k-1次迭代的各变量节点vi向校验节点cm输出的信息 (k=0时为初始信息),计算出第k次迭代每一个校验节点cm向各变量节点vi输出的信息 校验节点cm处理子模块根据输入信号 的符号
做乘法求得总的输出符号 同时按照信号的绝对值大小比
较出绝对值最小的三个数值, i1,i2,i3∈B(m),并记录最小值对应的输入变量节点序号i1;并针对序号i1的变量节点,利用 和 更新向变量节点i1的输出,[0059]
[0060] 另外向其他变量节点i≠i1,i∈B(m)的输出更新计算如下
[0061]
[0062] 步骤S403:如图3(a)所示计算第k次迭代各变量节点总的输出信息[0063] 对于每个变量节点vn,n∈[1,N],将所有与之相连的校验节点cj,j∈A(n)向变量节点vn输出的信息 以及该变量节点的初始信息 相加,作为该变量节点vn总的输出信息
[0064] 步骤S404:如图3(b)所示,计算第k次迭代各变量节点向每一个与之相连的校验节点输出的信息
[0065] 变量节点vn总的输出信息 减去与之相连的校验节点cj,j∈A(n)输出信息作为变量vn向校验节点cj更新的输出信息
[0066] 步骤S405:根据第k次迭代的各变量节点总的输出信息作判决,得到第k次迭代的译码输出序列。
[0067] 根据第k次迭代的各个变量节点总的输出信息 按照数据符号做出判决,得到输出序列
[0068] 具体判决条件如下:
[0069]
[0070] 其中,n∈[1,N]。
[0071] 步骤S406:根据第k次迭代的输出序列是否满足校验方程来进行迭代终止判断。
[0072] 如果输出序列满足如下校验方程: θ为全零行向量;则将该k
序列W 作为译码输出,宣布译码成功,终止译码;否则执行步骤S407。
[0073] 步骤S407:迭代次数k增加1,并判断迭代次数k是否等于最大迭代次数K,若迭代次数大于预设的最大迭代次数K,宣布译码失败,终止迭代;否则跳转至步骤S402进行下一次迭代。
[0074] 对于每个校验节点,比如校验节点cm,关联的变量节点序号假定为{1,2,...,dc}校验节点cm处理子模块的内部结构如图5所示,包括:符号与幅值分离单元组501、多值比较单元502、最小值修正单元504、非最小值修正单元505、查表单元506、总乘积单元503、子乘积单元组507、校验输出更新单元组508。
[0075] 符号与幅值分离单元组501中包括dc个符号与幅值分离单元分别对应dc个变量节点。符号与幅值分离单元组501根据各变量节点向该校验节点cm输出的信息后,根据 获得该值的绝对值输出到多值比较单元502,并将 值的符号信息,即 值输出到总乘积单元503。
[0076] 多值比较单元502获得各变量节点向该校验节点cm输出信息 的绝对值后,计算出其中幅度最小的三个数据 并将 输出到最小值修正单元504、将 输出到非最小值修正单元505,并将最小值 对应的变量节点序号i1输出到查表单元506。
[0077] 最小值修正单元504和非最小值修正单元505分别对多值比较单元502的输入数据按对应的计算公式做修正处理,公式如下,
[0078] 和
[0079]
[0080] 查表单元506具有dc个输出,根据最小值对应的变量节点序号,将对应序号的输出置为有效电平。
[0081] 总乘积单元503获得各变量节点向该校验节点cm输出的信息 的符号信息,并对这些符号信息作连乘运算 连乘运算结果Ek(cm)被输出到子乘积单元组507。
[0082] 子乘积单元组507包括dc个子乘积单元。每个子乘积单元都是一个双输入的与门。dc个子乘积单元分别接收dc个符号与幅值分离单元输出的变量节点向该校验节点cm输出的边信息 的符号信息,同时还接收总乘积单元503输出的连乘结果Ek(cm),并作乘积运算后输出到校验输出更新单元组508中的dc个校验输出更新单元。
[0083] dc个校验输出更新单元还接收最小值修正单元504和非最小值修正单元505输出的修正后的数据,以及分别接收查表单元的输出最小值节点索引信号i1。校验输出更新单元根据其接收的查表单元的输出是否有效来决定其输出值的绝对值:当其接收的查表单元的输出为有效信号,其输出值的绝对值为最小值修正单元504的输出;当其接收的查表单元的输出为无效信号,其输出值的绝对值为非最小值修正单元505的输出。校验输出更新单元根据其接收的子乘积单元的输出来决定其输出值的符号:如果子乘积单元的输出为“1”,校验输出更新单元输出值的符号为正;如果子乘积单元的输出为“-1”,校验输出更新单元输出值的符号为负。校验输出更新单元将输出值的绝对值以及输出值的符号组合成最后输出的数据,即该校验节点cm向变量节点输出的信息
[0084] 图6是二相移位键控(BPSK)调制的加性高斯白噪声(AWGN)信道下,总长4536,信息长度1008,码率0.25的基于原图构造的LDPC码,在SPA算法,NMSA算法以及修正最小和(MMSA)算法的误帧率性能比较,最大迭代次数K=50。可以看出,本发明提出的多值修正最小和(MMSA)算法相对于NMSA算法在性能上有显著的提高,且与SPA算法性能逼近。
[0085] 以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以作出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。
[0086] 本发明说明书中未作详细描述的内容属于本领域专业技术人员公知的现有技术。