CN100539441C - 一种低密度奇偶校验码的译码方法 - Google Patents

一种低密度奇偶校验码的译码方法 Download PDF

Info

Publication number
CN100539441C
CN100539441C CNB200710120192XA CN200710120192A CN100539441C CN 100539441 C CN100539441 C CN 100539441C CN B200710120192X A CNB200710120192X A CN B200710120192XA CN 200710120192 A CN200710120192 A CN 200710120192A CN 100539441 C CN100539441 C CN 100539441C
Authority
CN
China
Prior art keywords
node
check
variable node
message transmitted
variable
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
CNB200710120192XA
Other languages
English (en)
Other versions
CN101106383A (zh
Inventor
李剑
张贤达
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Tsinghua University
Original Assignee
Tsinghua University
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Tsinghua University filed Critical Tsinghua University
Priority to CNB200710120192XA priority Critical patent/CN100539441C/zh
Publication of CN101106383A publication Critical patent/CN101106383A/zh
Application granted granted Critical
Publication of CN100539441C publication Critical patent/CN100539441C/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Error Detection And Correction (AREA)

Abstract

本发明公开了一种低密度奇偶校验码的译码方法,属于数字信息传输技术领域。所述方法包括:初始化每个变量节点迭代译码前的后验概率和第n个变量节点向第m个校验节点传递的消息,根据除所述第n个变量节点外,与第m个校验节点相连的变量节点向所述第m个校验节点传递的消息中的最小和次最小幅值,更新所述第m个校验节点向所述第n个变量节点传递的消息;计算更新所述第n个变量节点向第m个校验节点传递的消息;判断译码终止条件,满足终止条件时输出译码结果。通过改进译码过程中校验节点更新过程,使改进后的译码算法比现有标准置信传播算法计算量低得多,且能达到标准置信传播算法性能,在高信噪比下甚至能超过标准置信传播算法。

Description

一种低密度奇偶校验码的译码方法
技术领域
本发明涉及数字信息传输技术领域,特别涉及一种低密度奇偶校验码(LDPC Codes,LowDensity Parity Check Codes)的译码方法。
背景技术
低密度校验码(简称LDPC码)是一种逼近香农限的纠错码。它是一种线性分组码,最早由Gallager于1960年在其博士论文《Low Density Parity Check Codes》中提出。在随后的三十年里,人们一直未能给予足够的重视。一直到1996年,MacKay在《Near Shannon limitperformance of low density parity check codes》一文中重新发现了此码,在接下来的十年里取得了大量的成果。大量研究工作证明,其性能已经超过了Turbo码,最好的LDPC码离香农限只差0.0045分贝。由于其强大的纠错能力,已经被欧洲数字电视广播DVB-S2,无线个人区域网(IEEE 802.15),宽带无线接入网(IEEE 802.16),10GBASE-T(IEEE 802.3an-2006)采纳为信道纠错码。
LDPC码的校验矩阵是一个稀疏矩阵,即其矩阵元素绝大部分为0,其余为1,如图1所示是一个码长为16的LDPC码。LDPC码同时还可以用Tanner图表示,图2所示是图1所示LDPC码的Tanner图,16个变量节点对应校验矩阵的16列,即16个比特位,8个校验节点对应校验矩阵的8行,即8个校验方程。校验矩阵的1元素对应Tanner图的每一根连线,即若校验矩阵的第m行第n列元素为1,则对应Tanner图的第m个校验节点与第n个变量节点相连。LDPC码校验矩阵的稀疏性保证了其强大的纠错能力和低复杂度的译码性能。LDPC码有多种译码方法,其中性能最好的译码方法是置信传播算法(BP算法,Belief PropagationAlgorithm),但是其计算也相对最为复杂。
现有技术中给出了关于LDPC码的定义,简单介绍如下:
一个(N,K)(λ,ρ)规则的LDPC码,码长为N,信息位为K位,LDPC码由校验矩阵H=[Hmn]唯一表示,H是一个M行N列的矩阵。H矩阵的每一行有ρ个1,ρ称为校验节点的重数;H矩阵的每一列有λ个1,λ称为变量节点的重数。定义集合N(m)={n:Hm,n=1},即校验矩阵的第m行中元素为1的列号所组成的集合,对应Tanner图中为与第m个校验节点相连的变量节点集合。以图1提供的校验矩阵为例,N(1)={1,5,9,13},N(5)={2,6,10,14}等。集合N(m)中除n外的其他元素定义为N(m)\n,对应Tanner图中为除第n个变量节点外与第m个校验节点相连的变量节点集合,例如:N(1)\9={1,5,13}。定义集合M(n)={m:Hm,n=1},即校验矩阵的第n列中元素为1的行号所组成的集合,对应Tanner图中与第n个变量节点相连的校验节点集合。以图1提供的校验矩阵为例,M(2)={2,5},M(16)={3,6}等。集合M(n)中除m外的其他元素定义为M(n)\m,对应Tanner图中为除第m个校验节点外与第n个变量节点相连的校验节点集合,例如:M(2)\5={2}。
现有技术中给出了关于LDPC译码方法——置信传播算法,简单介绍如下:
传输码字表示为c=(c1,c2,...,cN),传输的信号表示为s=(s1,s2,...,sN),其中sn=2cn-1;接收信号向量表示为y=(y1,y2,...,yN),译码结果表示为 c = ( c ^ 1 , c ^ 2 , . . . , c ^ N ) . L,Z是一个大小与H矩阵相同的稀疏矩阵,其元素分别由Lmn,Zmn表示,Lmn表示第m个校验节点向第n个变量节点传递的消息;Zmn表示第n个变量节点向第m个校验节点传递的消息。z是一个长度为N的向量,其元素由zn表示,其中zn记录每一次迭代后第n个变量节点的后验概率。λ是一个长度为N的向量,其元素由λn表示,λn表示迭代译码前第n个变量节点的后验概率,也可以看成译码器的先验概率,例如:对于等概率输入加性高斯信道,λn=log(P(cn=1|yn)/P(cn=0|yn))。
现将置信传播算法描述如下:
1)初始化,计算每个变量节点迭代译码前的后验概率
λ n = 2 σ 2 y n ,       n=1,2,...,N.
其中,σ2是噪声方差,yn是接收信号。
对于校验矩阵中每一个Hmn=1的m和n,初始化Zmn如下:
Zmn=λn
2)校验节点更新:对于校验矩阵中每一个Hmn=1的m和n,计算
L mn = 2 tanh - 1 ( Π n ′ ∈ N ( m ) \ n tanh Z mn ′ 2 )
其中,tanh是双曲正切函数, tanh ( x ) = e 2 x - 1 e 2 x + 1 , tanh-1是双曲正切函数的反函数。
3)变量节点更新:
z n = λ n + Σ m ∈ M ( n ) L mn ,      n=1,2,...,N
对于校验矩阵中每一个Hmn=1的m和n,计算
Zmn=zn-Lmn
4)根据zn计算译码结果
Figure C200710120192D00081
即如果zn>0则 c ^ n = 1 , 否则 c ^ n = 0 , 然后计算M个校验和sm
s m = Σ n ∈ N ( m ) ⊕ c ^ n ,      m=1,2,....,M
其中,
Figure C200710120192D00085
表示模二加,即0+1=1,0+0=0,1+1=0。
5)判断译码终止条件:若M个校验和sm都为0,或者迭代次数超过设定的最大次数,则译码终止,输出译码结果
Figure C200710120192D00086
。否则迭代次数加1,返回到2)继续迭代。
上述LDPC码译技术的缺点是:置信传播算法校验节点更新计算量大,复杂度高。
发明内容
为了降低译码的复杂度,提高译码速度,本发明实施例提供了一种低密度奇偶校验码的译码方法。所述技术方案如下:
一种低密度奇偶校验码的译码方法,所述方法包括:
步骤A:初始化每个变量节点迭代译码前的后验概率,对于校验矩阵中Hmn=1对应的第n个变量节点向第m个校验节点传递的消息,初始化为所述第n个变量节点迭代译码前的后验概率;
步骤B:根据除所述第n个变量节点外,与第m个校验节点相连的变量节点向所述第m个校验节点传递的消息中的最小和次最小幅值,用最小与次最小幅值的差作为f函数的输入,通过f函数得到输出值,用最小幅值减去f函数的输出值,再对该差值取绝对值,若与第m个校验节点相连的变量节点向所述第m个校验节点传递的消息中正数个数为奇数时,更新后的消息取正值,若正数个数为偶数时,更新后的消息取负值;
步骤C:将与第n个变量节点相连的校验节点向所述第n个变量节点传递的消息总和与所述第n个变量节点迭代译码前的后验概率相加,用相加后的结果更新所述第n个变量节点的后验概率;计算更新后的所述第n个变量节点的后验概率与所述第m个校验节点向所述第n个变量节点传递的消息的差值,将所述差值作为下一次迭代所述第n个变量节点向第m个校验节点传递的消息;
步骤D:根据变量节点的后验概率得到变量节点的硬判决,用硬判决计算M个校验和,其中,第m个校验和是与第m个校验节点相连的变量节点的硬判决的异或之和,判断M个校验和是否都为0,如果是,执行步骤E,否则,判断迭代次数是否超过预设最大次数,如果超过所述预设最大次数,执行步骤E,否则,迭代次数加1,返回步骤B继续迭代;
步骤E:终止译码,输出译码结果。
除所述第n个变量节点外,与第m个校验节点相连的变量节点向所述第m个校验节点传递的消息中有奇数个正数时,所述步骤B中的所述第m个校验节点向所述第n个变量节点传递的消息的计算公式为:
Lmn=||Zmp|-f(|Zmq|-|Zmp|)|
其中,|Zmp|,|zmq|分别是除所述第n个变量节点外,与第m个校验节点相连的变量节点向所述第m个校验节点传递的消息中最小和次最小的幅值,p,q分别为最小幅值和次最小幅值的下标,函数f(x)=ln(1+e-|x|)或 f ( x ) = &delta; , if | x | < T 0 , else , δ为正常数,T是一个预设正常数门限。
除所述第n个变量节点外,与第m个校验节点相连的变量节点向所述第m个校验节点传递的消息中有偶数个正数时,所述步骤B中的所述第m个校验节点向所述第n个变量节点传递的消息的计算公式为:
Lmn=-||Zmp|-f(|Zmq|-|Zmp|)|
其中,|Zmp|,|Zmq|分别是除所述第n个变量节点外,与第m个校验节点相连的变量节点向所述第m个校验节点传递的消息中最小和次最小的幅值,p,q分别为最小幅值和次最小幅值的下标,函数f(x)=ln(1+e-|x|)或 f ( x ) = &delta; , if | x | < T 0 , else , δ为正常数,T是一个预设正常数门限。
除所述第n个变量节点外,与第m个校验节点相连的变量节点向所述第m个校验节点传递的消息中有奇数个正数时,所述步骤B中的所述第m个校验节点向所述第n个变量节点传递的消息的计算公式为:
Lmn=α·||Zmp|-f(|Zmq|-|Zmp|)|
其中,α是针对不同的码通过计算机仿真确定的正常数;|Zmp|,|Zmq|分别是除所述第n个变量节点外,与第m个校验节点相连的变量节点向所述第m个校验节点传递的消息中最小和次最小的幅值,p,q分别为最小幅值和次最小幅值的下标。函数f(x)=ln(1+e-|x|)或 f ( x ) = &delta; , if | x | < T 0 , else , δ为正常数,T是一个预设正常数门限。
除所述第n个变量节点外,与第m个校验节点相连的变量节点向所述第m个校验节点传递的消息中有偶数个正数时,所述步骤B中的所述第m个校验节点向所述第n个变量节点递的消息的计算公式为:
Lmn=-α·||Zmp|-f(|Zmq|-|Zmp|)|
其中,α是针对不同的码通过计算机仿真确定的正常数;|Zmp|,|Zmq|分别是除所述第n个变量节点外,与第m个校验节点相连的变量节点向所述第m个校验节点传递的消息中最小和次最小的幅值,p,q分别为最小幅值和次最小幅值的下标,函数f(x)=ln(1+e-|x|)或 f ( x ) = &delta; , if | x | < T 0 , else , δ为正常数,T是一个预设正常数门限。
除所述第n个变量节点外,与第m个校验节点相连的变量节点向所述第m个校验节点传递的消息中有奇数个正数时,所述步骤B中的所述第m个校验节点向所述第n个变量节点传递的消息的计算公式为:
Lmn=||Zmp|-f(|Zmq|-|Zmp|)|
其中,|Zmp|,|Zmq|分别是除所述第n个变量节点外,与第m个校验节点相连的变量节点向所述第m个校验节点传递的消息中最小和次最小的幅值,p,q分别为最小幅值和次最小幅值的下标,f(x)的输出值通过预先设定的函数表查找获得。
除所述第n个变量节点外,与第m个校验节点相连的变量节点向所述第m个校验节点传递的消息中有偶数个正数时,所述步骤B中的所述第m个校验节点向所述第n个变量节点传递的消息的计算公式为:
Lmn=-||Zmp|-f(|Zmq|-|Zmp|)|
其中,|Zmp|,|Zmq|分别是除所述第n个变量节点外,与第m个校验节点相连的变量节点向所述第m个校验节点传递的消息中最小和次最小的幅值,p,q分别为最小幅值和次最小幅值的下标,f(x)的输出值通过预先设定的函数表查找获得。
除所述第n个变量节点外,与第m个校验节点相连的变量节点向所述第m个校验节点传递的消息中有奇数个正数时,所述步骤B中的所述第m个校验节点向所述第n个变量节点传递的消息的计算公式为:
Lmn=α·||Zmp|-f(|Zmq|-|Zmp|)|
其中,α是针对不同的码通过计算机仿真确定的正常数;|Zmp|,|Zmq|分别是除所述第n个变量节点外,与第m个校验节点相连的变量节点向所述第m个校验节点传递的消息中最小和次最小的幅值,p,q分别为最小幅值和次最小幅值的下标,f(x)的输出值通过预先设定的函数表查找获得。
除所述第n个变量节点外,与第m个校验节点相连的变量节点向所述第m个校验节点传递的消息中有偶数个正数时,所述步骤B中的所述第m个校验节点向所述第n个变量节点传递的消息的计算公式为:
Lmn=-α·||Zmp|-f(|Zmq|-|Zmp|)|
其中,α是针对不同的码通过计算机仿真确定的正常数;|Zmp|,|Zmq|分别是除所述第n个变量节点外,与第m个校验节点相连的变量节点向所述第m个校验节点传递的消息中最小和次最小的幅值,p,q分别为最小幅值和次最小幅值的下标,f(x)的输出值通过预先设定的函数表查找获得。
所述α为针对不同的码预先根据计算机仿真选取出的误码率尽可能小的α值。
本发明实施例提供的技术方案的有益效果是:
通过改进译码过程中校验节点更新过程,使得改进后的译码算法比现有的标准置信传播算法计算量低得多,且能达到标准置信传播算法的性能。对于校验节点重数较低的码,双和译码方法能达到标准置信传播算法的性能,甚至在高信噪比下超过标准置信传播算法的性能。对于校验节点重数较大的码,双和译码方法略有损失,此时可采用修正的双和译码算法,采用修正的双和译码算法能达到甚至在高信噪比下超过标准置信传播算法的性能。
附图说明
图1是现有技术提供的(16,9)(2,4)LDPC码的校验矩阵;
图2是现有技术提供的(16,9)(2,4)LDPC码的Tanner图;
图3是本发明实施例提供的低密度奇偶校验码的译码方法的流程图;
图4是本发明实施例提供的对(504,252)(3,6)LDPC码分别应用置信传播算法的译码和本发明的译码方法的性能比较示意图;
图5是本发明实施例提供的(1008,504)(3,6)LDPC码应用置信传播算法的译码和本发明的译码方法的性能比较示意图;
图6是本发明实施例提供的10GBASE-T(IEEE802.3an-2006)标准中(2048,1723)(6,32)LDPC码为例分别应用置信传播算法和本发明的两种译码方法的性能比较示意图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明实施方式作进一步地详细描述。
参见图3,本实施例提供了一种低密度奇偶校验码的译码方法,可供信道译码器对接收的信号进行译码。信道译码器收到解调器发送的信号后,即可进行LDPC码的译码,该译码方法包括以下步骤:
步骤101:初始化,计算每个变量节点迭代译码前的后验概率λn
&lambda; n = 2 &sigma; 2 y n ,        n=1,2,...,N
其中,σ2是噪声方差,yn是接收信号。
对于校验矩阵中每一个Hmn=1的m和n,初始化Zmn如下:
Zmn=λn
其中,Zmn表示第n个变量节点向第m个校验节点传递的消息。
步骤102:校验节点更新,对于校验矩阵中每一个Hmn=1的m和n,计算更新第m个校验节点向第n个变量节点传递的消息Lmn
Lmn的更新消息来自集合{Zmn′:n′∈N(m)\n},Lmn的幅值|Lmn|的计算过程为:在向第m个校验节点传递的消息中找出幅值最小和次最小的项,用最小与次最小幅值的差作为f函数的输入,通过f函数得到输出值,然后用最小幅值减去f函数的输出值,再对该差值取绝对值。若集合{Zmn′:n′∈N(m)\n}中有奇数个正数,则更新后Lmn取正值,即
Lmn=||Zmp|-f(|Zmq|-|Zmp|)|
若集合{Zmn′:n′∈N(m)\n}中有偶数个正数,则更新后Lmn取负值,即
Lmn=-||Zmp|-f(|Zmq|-|Zmp|)|
其中,Lmn表示第m个校验节点向第n个变量节点传递的消息, p = arg min p &prime; &Element; N ( m ) \ n | Z mp &prime; | , q = arg min q &prime; &Element; N ( m ) \ n , p | Z mq &prime; | , |Zmp|,|Zmq|分别是集合{|Zmn′|:n′∈N(m)\n}中最小和次最小的项。
函数f(x)=ln(1+e-|x|),同时f(x)也可以近似为 f ( x ) = &delta; , if | x | < T 0 , else , δ为任意正常数,优选0.5和0.7之间的数;T是一个正常数门限,优选2左右的值;f(x)的输出值也可以通过预先设定的函数表查找获得。
步骤103:变量节点更新,计算zn
z n = &lambda; n + &Sigma; m &Element; M ( n ) L mn ,     n=1,2,...,N
其中,zn表示每一次迭代第n个变量节点的后验概率,对于校验矩阵中每一个Hmn=1的m和n,计算Zmn
Zmn=zn-Lmn
步骤104:根据zn计算译码结果
Figure C200710120192D00126
即如果zn>0则 c ^ n = 1 , 否则 c ^ n = 0 , 然后计算M个校验和sm
s m = &Sigma; n &Element; N ( m ) &CirclePlus; c ^ n ,      m=1,2,....,M
其中,
Figure C200710120192D00132
表示模二加,即0+1=1,0+0=0,1+1=0。
步骤105:判断译码终止条件,即判断M个校验和sm是否都为0,若是,则执行步骤107,否则执行步骤106。
步骤106:判断迭代次数是否超过预设的最大次数,若是,则执行步骤107,输出译码结果
Figure C200710120192D0013113451QIETU
。否则,迭代次数加1,返回步骤102继续迭代。
步骤107:终止译码,输出译码结果。
以上低密度奇偶校验码的译码方法,称为双和译码算法。特别地,上述译码方法的还可以改进,改进步骤102中的Lmn的幅值,即
|Lmn|=α·||Zmp|-f(|Zmq|-|Zmp|)|
其中,α是针对不同的码通过计算机仿真确定的正常数,α优选不大于1的正常数,该正常数优选计算机仿真时误码率尽可能小的α值。
这里将α称为修正因子;改进后的双和译码算法称为修正的双和译码算法。综上可知,双和译码算法是修正的双和译码算法的一个特例。
以上消息的更新计算,只需计算校验矩阵中Hmn=1对应的Lmn和Zmn;对于每一个Hmn=0时的Lmn和Zmn无需计算。
下面介绍双和译码算法校验节点更新的具体实施过程:
若第m行校验节点的重数为ρ,设N(m)={n1,n2,...,np},集合
Figure C200710120192D00133
中最小值,次最小值,次次最小值分别是
Figure C200710120192D00134
集合
Figure C200710120192D00135
中共有P个正数,则
| L mn i | = | | Z mk 2 | - f ( | Z mk 3 | - | Z mk 2 | ) | , n i = k 1 | | Z mk 1 | - f ( | Z mk 3 | - | Z mk 1 | ) | , n i = k 2 | | Z mk 1 | - f ( | Z mk 2 | - | Z mk 1 | ) | , others
Figure C200710120192D00137
具体应用例1
以图1提供的(16,9)(2,4)LDPC码的第5行的校验方程为例,本发明实施例与现有技术的不同点在于步骤102校验节点更新过程,以下应用实施例1提供的方法说明译码的过程,其余步骤类似,这里不再赘述。
设上一次迭代更新后Z5,2=2.4,Z5,6=-1.3,Z5,10=2.2,Z5,14=-0.1。集合{|Z5,2|,|Z5,6|,|Z5,10|,|Z5,14|}中最小值
Figure C200710120192D00141
次最小值
Figure C200710120192D00142
次次最小值
Figure C200710120192D00143
分别是0.1、1.3、和2.2,即最小值,次最小值和次次最小值的下标分别是k1=14,k2=6,k3=10。因为集合{Z5,2,Z5,6,Z5,10,Z5,14}有2个正数,且Z5,2>0,则集合{Z5,6,Z5,10,Z5,14}有奇数(2-1=1)个正数,L5,2取正值;由于Z5,6<0,则集合{Z5,2,Z5,10,Z5,14}有偶数(2-0=2)个正数,L5,6取负值;由于Z5,10>0,则集合{Z5,2,Z5,6,Z5,14}有奇数(2-1=1)个正数,L5,10取正值;由于Z5,14<0,则集合{Z5,2,Z5,6,Z5,10}有偶数(2-0=2)个正数,L5,14取负值。选择 f ( x ) = 0.6 , if | x | < 2 0 , else .
所以有:
14=k1 L 5,14 = - | | Z mk 2 | - f ( | Z mk 3 | - | Z mk 2 | ) | = - | 1.3 - f ( 2.2 - 1.3 ) | = - 0.7
6=k2 L 5,6 = - | | Z mk 1 | - f ( | Z mk 3 | - | Z mk 1 | ) | = - | 0.1 - f ( 2.2 - 0.1 ) | = - 0.1
L 5,2 = | | Z mk 1 | - f ( | Z mk 2 | - | Z mk 1 | ) | = - | 0.1 - f ( 1.3 - 0.1 ) | = 0.5
L 5,10 = | | Z mk 1 | - f ( | Z mk 2 | - | Z mk 1 | ) | = | 0.1 - f ( 1.3 - 0.1 ) | = 0.5 .
如图4所示,以(504,252)(3,6)LDPC码为例分别应用置信传播算法和本发明实施例提供的双和译码算法进行200次迭代译码后的比特差错概率和码字差错概率的比较示意图;如图所示,双和译码算法跟置信传播算法有几乎相同的差错性能。
如图5所示,以(1008,504)(3,6)LDPC码为例应用的置信传播算法和本发明实施例提供的双和译码算法分别进行20次和200次迭代译码后比特差错概率比较示意图;如图所示,双和译码算法跟置信传播算法有几乎一致的差错性能。在高信噪比下,双和译码算法的性能略优于置信传播算法。
如图6所示,以10GBASE-T(IEEE802.3an-2006)标准中(2048,1723)(6,32)LDPC码为例分别应用置信传播算法,本发明实施例提供的双和译码算法和修正的双和译码算法100次迭代译码后的比特差错概率比较示意图。其中修正的双和译码算法的修正因子选为0.8。如图所示,双和译码算法相比置信传播算法有0.1分贝的性能损失。这是由于该码的有较大的校验节点重数。此时,采用修正的双和译码算法能改善性能。如图所示,修正的双和译码算法跟置信传播算法有相似的差错性能。在高信噪比下,修正的双和译码算法的性能还优于置信传播算法。上述图4,图5,图6提供的计算机仿真中的函数 f ( x ) = 0.6 , if | x | < 2 0 , else .
通过以上技术方案,本发明实施例提出双和译码算法方法以及修正的双和译码算法方法比现有的标准置信传播算法计算量低得多,对于校验节点重数较低的码,双和译码方法能达到标准置信传播算法的性能,甚至在高信噪比下超过标准置信传播算法的性能。对于校验节点重数较大的码,双和译码算法方法略有损失,采用修正的双和译码算法能达到甚至在高信噪比下超过标准置信传播算法的性能。
以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

Claims (10)

1.一种低密度奇偶校验码的译码方法,其特征在于,所述方法包括:
步骤A:初始化每个变量节点迭代译码前的后验概率,对于校验矩阵中Hmn=1对应的第n个变量节点向第m个校验节点传递的消息,初始化为所述第n个变量节点迭代译码前的后验概率;
步骤B:根据除所述第n个变量节点外,与第m个校验节点相连的变量节点向所述第m个校验节点传递的消息中的最小和次最小幅值,用最小与次最小幅值的差作为f函数的输入,通过f函数得到输出值,用最小幅值减去f函数的输出值,再对该差值取绝对值,若与第m个校验节点相连的变量节点向所述第m个校验节点传递的消息中正数个数为奇数时,更新后的消息取正值,若正数个数为偶数时,更新后的消息取负值;
步骤C:将与第n个变量节点相连的校验节点向所述第n个变量节点传递的消息总和与所述第n个变量节点迭代译码前的后验概率相加,用相加后的结果更新所述第n个变量节点的后验概率;计算更新后的所述第n个变量节点的后验概率与所述第m个校验节点向所述第n个变量节点传递的消息的差值,将所述差值作为下一次迭代所述第n个变量节点向第m个校验节点传递的消息;
步骤D:根据变量节点的后验概率,得到变量节点的硬判决,用硬判决计算M个校验和,其中,第m个校验和是与第m个校验节点相连的变量节点的硬判决的异或之和,判断M个校验和是否都为0,如果是,执行步骤E,否则,判断迭代次数是否超过预设最大次数,如果超过所述预设最大次数,执行步骤E,否则,迭代次数加1,返回步骤B继续迭代;
步骤E:终止译码,输出译码结果。
2.如权利要求1所述的低密度奇偶校验码的译码方法,其特征在于,除所述第n个变量节点外,与第m个校验节点相连的变量节点向所述第m个校验节点传递的消息中有奇数个正数时,所述步骤B中的所述第m个校验节点向所述第n个变量节点传递的消息的计算公式为:
Lmn=||Zmp|-f(|Zmq|-|Zmp|)
其中,|Zmp|,|Zmq|分别是除所述第n个变量节点外,与第m个校验节点相连的变量节点向所述第m个校验节点传递的消息中最小和次最小的幅值,p,q分别为最小幅值和次最小幅值的下标,函数f(x)=ln(1+e-|x|)或 f ( x ) = &delta; , if | x | < T 0 , else , δ为正常数,T是一个预设正常数门限。
3.如权利要求1所述的低密度奇偶校验码的译码方法,其特征在于,除所述第n个变量节点外,与第m个校验节点相连的变量节点向所述第m个校验节点传递的消息中有偶数个正数时,所述步骤B中的所述第m个校验节点向所述第n个变量节点传递的消息的计算公式为:
Lmn=-||Zmp|-f(|Zmq|-|Zmp|)
其中,|Zmp|,|Zmq|分别是除所述第n个变量节点外,与第m个校验节点相连的变量节点向所述第m个校验节点传递的消息中最小和次最小的幅值,p,q分别为最小幅值和次最小幅值的下标,函数f(x)=ln(1+e-|x|)或 f ( x ) = &delta; , if | x | < T 0 , else , δ为正常数,T是一个预设正常数门限。
4.如权利要求1所述的低密度奇偶校验码的译码方法,其特征在于,除所述第n个变量节点外,与第m个校验节点相连的变量节点向所述第m个校验节点传递的消息中有奇数个正数时,所述步骤B中的所述第m个校验节点向所述第n个变量节点传递的消息的计算公式为:
Lmn=α·||Zmp|-f(|Zmq|-|Zmp|)
其中,α是针对不同的码通过计算机仿真确定的正常数;|Zmp|,|Zmq|分别是除所述第n个变量节点外,与第m个校验节点相连的变量节点向所述第m个校验节点传递的消息中最小和次最小的幅值,p,q分别为最小幅值和次最小幅值的下标,函数f(x)=ln(1+e-|x|)或 f ( x ) = &delta; , if | x | < T 0 , else , δ为正常数,T是一个预设正常数门限。
5.如权利要求1所述的低密度奇偶校验码的译码方法,其特征在于,除所述第n个变量节点外,与第m个校验节点相连的变量节点向所述第m个校验节点传递的消息中有偶数个正数时,所述步骤B中的所述第m个校验节点向所述第n个变量节点传递的消息的计算公式为:
Lmn=-α·||Zmp|-f(|Zmq|-|Zmp|)|
其中,α是针对不同的码通过计算机仿真确定的正常数;|Zmp|,|Zmq|分别是除所述第n个变量节点外,与第m个校验节点相连的变量节点向所述第m个校验节点传递的消息中最小和次最小的幅值,p,q分别为最小幅值和次最小幅值的下标,函数f(x)=ln(1+e-|x|)或 f ( x ) = &delta; , if | x | < T 0 , else , δ为正常数,T是一个预设正常数门限。
6.如权利要求1所述的低密度奇偶校验码的译码方法,其特征在于,除所述第n个变量节点外,与第m个校验节点相连的变量节点向所述第m个校验节点传递的消息中有奇数个正数时,所述步骤B中的所述第m个校验节点向所述第n个变量节点传递的消息的计算公式为:
Lmn=||Zmp|-f(|Zmq|-|Zmp|)
其中,|Zmp|,|Zmq|分别是除所述第n个变量节点外,与第m个校验节点相连的变量节点向所述第m个校验节点传递的消息中最小和次最小的幅值,p,q分别为最小幅值和次最小幅值的下标,f(x)的输出值通过预先设定的函数表查找获得。
7.如权利要求1所述的低密度奇偶校验码的译码方法,其特征在于,除所述第n个变量节点外,与第m个校验节点相连的变量节点向所述第m个校验节点传递的消息中有偶数个正数时,所述步骤B中的所述第m个校验节点向所述第n个变量节点传递的消息的计算公式为:
Lmn=-||Zmp|-f(|Zmq|-|Zmp|)
其中,|Zmp|,|Zmq|分别是除所述第n个变量节点外,p,q分别为最小幅值和次最小幅值的下标,与第m个校验节点相连的变量节点向所述第m个校验节点传递的消息中最小和次最小的幅值,f(x)的输出值通过预先设定的函数表查找获得。
8.如权利要求1所述的低密度奇偶校验码的译码方法,其特征在于,除所述第n个变量节点外,与第m个校验节点相连的变量节点向所述第m个校验节点传递的消息中有奇数个正数时,所述步骤B中的所述第m个校验节点向所述第n个变量节点传递的消息的计算公式为:
Lmn=α·||Zmp|-f(|Zmq|-|Zmp|)|
其中,α是针对不同的码通过计算机仿真确定的正常数;|Zmp|,|Zmq|分别是除所述第n个变量节点外,与第m个校验节点相连的变量节点向所述第m个校验节点传递的消息中最小和次最小的幅值,p,q分别为最小幅值和次最小幅值的下标,f(x)的输出值通过预先设定的函数表查找获得。
9.如权利要求1所述的低密度奇偶校验码的译码方法,其特征在于,除所述第n个变量节点外,与第m个校验节点相连的变量节点向所述第m个校验节点传递的消息中有偶数个正数时,所述步骤B中的所述第m个校验节点向所述第n个变量节点传递的消息的计算公式为:
Lmn=-α·||Zmp|-f(|Zmq|-|Zmp|)
其中,α是针对不同的码通过计算机仿真确定的正常数;|Zmp|,|Zmq|分别是除所述第n个变量节点外,与第m个校验节点相连的变量节点向所述第m个校验节点传递的消息中最小和次最小的幅值,p,q分别为最小幅值和次最小幅值的下标,f(x)的输出值通过预先设定的函数表查找获得。
10.如权利要求4、5、8或9中任一权利要求所述的低密度奇偶校验码的译码方法,其特征在于,所述α为针对不同的码预先根据计算机仿真选取出的误码率尽可能小的α值。
CNB200710120192XA 2007-08-13 2007-08-13 一种低密度奇偶校验码的译码方法 Expired - Fee Related CN100539441C (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CNB200710120192XA CN100539441C (zh) 2007-08-13 2007-08-13 一种低密度奇偶校验码的译码方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CNB200710120192XA CN100539441C (zh) 2007-08-13 2007-08-13 一种低密度奇偶校验码的译码方法

Publications (2)

Publication Number Publication Date
CN101106383A CN101106383A (zh) 2008-01-16
CN100539441C true CN100539441C (zh) 2009-09-09

Family

ID=39000102

Family Applications (1)

Application Number Title Priority Date Filing Date
CNB200710120192XA Expired - Fee Related CN100539441C (zh) 2007-08-13 2007-08-13 一种低密度奇偶校验码的译码方法

Country Status (1)

Country Link
CN (1) CN100539441C (zh)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101262231B (zh) * 2008-04-25 2011-09-28 浙江大学 一种块状低密度校验码的译码方法及可重构多模式译码器
CN101465654B (zh) * 2009-01-06 2012-07-18 中山大学 基于校验和错误模式的ldpc码的译码停止判决方法
CN101807928B (zh) * 2009-02-13 2013-06-05 瑞昱半导体股份有限公司 记录控制器及奇偶校验码译码器
CN103199874B (zh) * 2012-01-05 2017-02-15 国民技术股份有限公司 一种低密度奇偶校验码译码方法
CN111416627A (zh) * 2020-03-09 2020-07-14 重庆邮电大学 一种基于简化bp算法的ldpc译码方法
CN111510162B (zh) * 2020-05-20 2023-08-29 桂林电子科技大学 一种基于节点刷新机制的低复杂度多元ldpc译码方法

Also Published As

Publication number Publication date
CN101106383A (zh) 2008-01-16

Similar Documents

Publication Publication Date Title
Lian et al. Learned belief-propagation decoding with simple scaling and SNR adaptation
US8185797B2 (en) Basic matrix, coder/encoder and generation method of the low density parity check codes
CN1830149B (zh) 用于对低密度奇偶校验码编码的方法
CN101141133B (zh) 一种结构化低密度校验码的编码方法
CN101534166B (zh) 准循环低密度奇偶校验码解码器及解码方法
CN107370490B (zh) 结构化ldpc的编码、译码方法及装置
CN101107782B (zh) 用于解码纠错码的方法
WO2017080249A1 (zh) 生成用于在信道中传输的低密度奇偶校验码的方法及设备
CN100486118C (zh) 一种基于分段偏移修正的最小和译码方法
US8966336B2 (en) Selective merge and partial reuse LDPC (low density parity check) code construction for limited number of layers belief propagation (BP) decoding
US20090292966A1 (en) Method for recovery of lost and/or corrupted data
CN100539441C (zh) 一种低密度奇偶校验码的译码方法
CN107204780B (zh) polar-LDPC级联码的合并BP解码算法及装置
CN103259545A (zh) 基于振荡的准循环低密度奇偶校验码置信传播译码方法
CN104218955A (zh) 基于比特翻转的ldpc码局部搜索译码方法
US7945845B2 (en) Maximum likelihood decoding via mixed-integer adaptive linear programming
CN104052501A (zh) 低复杂度的多进制ldpc码译码方法
CN107968657A (zh) 一种适用于低密度奇偶校验码的混合译码方法
CN100508442C (zh) 一种编译码方法及编译码装置
CN101106437B (zh) 一种有限几何低密度奇偶校验码的译码方法
CN101355366B (zh) 低密度奇偶校验码的译码方法及装置
KR101657912B1 (ko) 비이진 저밀도 패리티 검사 코드의 복호화 방법
CN101257311A (zh) 一种多进制调制下ldpc码的快速译码方法
KR20150076583A (ko) 비이진 패리티 검사 부호의 복호 방법 및 장치
CN101350695B (zh) 低密度奇偶校验码译码方法及***

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
C17 Cessation of patent right
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20090909

Termination date: 20120813