一种基于密度进化改进偏移最小和的LDPC译码方法
技术领域
本发明涉及移动通信技术领域,具体涉及一种基于密度进化改进偏移最小和的LDPC译码方法。
背景技术
低密度奇偶检验码(Low Density Parity Check Code,LDPC)是一种译码复杂度低且性能优良的线性分组纠错码,在使用置信度传播(Belief Propagation,BP)算法或者基于因子图的消息传递算法进行译码时拥有接近香农极限的纠错性能,目前,LDPC已经广泛应用于深空通信、光纤通信、卫星数字视频和音频广播等领域,并被各种现代通信标准所采用。
传统的LDPC译码算法在某些情况下其译码性能的提高存在限制,例如,以tanner图表示的检验矩阵为例,当tanner图上无环时,现有的译码方法可以达到最佳译码,而当tanner图上存在环(环是指从一个节点按边不重复回到同一节点的路径,即存在环时,信息会在两组节点间反复传递,难以更新,违背了迭代译码的初衷)特别是小环时,迭代译码会出现正反馈作用不明显,判决消息出现问题,从而导致错误判决,降低译码性能,尤其在中、高信噪比时,环的存在会造成变量节点和校验节点传递的外部信息出现振荡现象,降低译码算法的性能。现有的易于硬件实现的简化算法,例如归一化最小和算法以及其他改进的最小和算法主要考虑如何通过修正信息幅度或多次更新变量节点信息来提高译码性能,而都没有考虑到tanner图上存在环时出现的外部消息振荡现象给译码带来的影响。因此需要对现有技术进行改进,寻求一种可以削弱外部信息振荡现象,提高译码性能并且易于硬件实现的译码方法。
发明内容
为了解决上述问题,本发明提供一种基于密度进化改进偏移最小和的LDPC译码方法。
本发明的一种基于密度进化改进偏移最小和的LDPC译码方法,包括以下步骤:
S1、计算变量节点接收到的信道消息值;
S2、根据变量节点接收到的信道消息值,利用最优的偏移因子进行校验节点更新,利用对数似然比LLR消息值进行变量节点更新;
S3、校验节点与变量节点更新完成后,计算变量节点的硬判决值,进行硬判决;
S4、判断硬判决是否满足检验矩阵,如果满足检验矩阵,输出硬判决作为译码结果;如果不满足检验矩阵,判断译码是否达到最大迭代次数,如果达到最大迭代数则译码停止,否则返回步骤S2。
本发明的有益效果:
1.本发明使用变量节点更新前后的LLR消息值进行加权,减缓变量节点LLR信息的振荡,提高译码收敛速度。
2.本发明联合密度进化方法和加权平均方案计算出各信噪比下的偏移因子,通过仿真提前选出最优的偏移因子,以此来补偿整个译码方法的译码性能,使用线性近似方法,等价最优的偏移因子,降低了计算复杂度,并作为常量保存在硬件中,在实现过程中不会增加多余的硬件计算消耗。
附图说明
下面结合附图和具体实施方式对本发明做进一步详细的说明。
图1为本发明实施例的一种基于密度进化改进偏移最小和的LDPC译码方法流程图;
图2为本发明实施例的LDPC译码方法在不同信噪比下的误比特率与不同译码算法性能比较图;
其中:横坐标Eb/No代表信噪比,纵坐标BER代表误比特率。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明的一种基于密度进化改进偏移最小和的LDPC译码方法,包括以下步骤:
S1、计算变量节点接收到的信道消息值;
S2、根据变量节点接收到的信道消息值,利用最优的偏移因子进行校验节点更新,利用对数似然比LLR消息值进行变量节点更新;
S3、校验节点与变量节点更新完成后,计算变量节点的硬判决值,进行硬判决;
S4、判断硬判决是否满足检验矩阵,如果满足检验矩阵,输出硬判决作为译码结果;如果不满足检验矩阵,判断译码是否达到最大迭代次数,如果达到最大迭代数则译码停止,否则返回步骤S2。
假设5G通信系统中,信道为高斯信道,码长为N=3200,码率为0.2的LDPC码表示为(N,dv,dc)其中dv为变量节点的度数,即校验矩阵H的每一列中包含1的行的个数,dc为校验节点的度数,即检验矩阵H中每一行中包含的1的列的个数,本发明提供基于5G通信系统的一种采用密度进化偏移最小和的LDPC译码方法与装置,如图1所示,包括:
初始化,计算变量节点接收到的信道消息值。
通常变量节点从加性高斯白噪声(Additive White Gaussian Noise,AWGN)信道接收到的LLR消息服从
分布,
为信道噪音方差,所有独立同分布的变量节点接收到的LLR消息也服从高斯分布,那么这些LLR消息的和也服从高斯分布,基于此特性可以简化信道参数。
码字x=[x1,x2,…,xN]经过二进制相移键控BPSK调制后发送,当变量节点从AWGN信道接收到噪声污染的信息后,根据下式初始化变量节点接收的信道消息值:
其中,ln表示第n个变量节点的初始值,yn表示接收码字,σ2表示信道的方差。
变量节点接收到的信道消息值初始化完成后,进行校验节点更新,即更新校验节点m传递给变量节点n的外信息。
校验节点更新:计算最优的偏移因子值,利用最优的偏移因子值更新从校验节点m传递给变量节点n的外信息,校验节点m传递给变量节点n的外信息表示为:
其中,Lm→n(xn)表示从校验节点m传递给变量节点n的外信息,xn表示第n个发送码字,取值为{0,1},sign(*)表示符号函数,n'∈N(m)\n表示与校验节点m相连接的变量节点集合中,除去变量节点n的其他变量节点集合,N(m)表示与校验节点m相连接的变量节点集合,Zn'→m(xn')表示从变量节点n'传递给检验节点m的外信息,β'表示最优的偏移因子值。
进一步的,最优的偏移因子值的计算方式包括:根据第一校验节点更新函数的期望和第二校验节点更新函数的期望的差值求出第一次迭代过程中偏移因子的值;当满足硬判决的最大迭代次数itermax大于等于2时,根据第三校验节点更新函数的期望与第一校验节点更新函数的期望的差值计算第k次迭代过程中的偏移因子的值。然后计算itermax次迭代过程中偏移因子的加权平均值,将该加权平均值作为优化偏移最小值方法中优化的偏移因子值。为了进一步降低硬件复杂度,采用线性近似方法对优化的偏移因子值进行近似处理,得到最优的偏移因子值。
在进行校验节点更新时,首先基于密度进化方法得到译码过程中每次迭代的校验节点更新函数和校验节点更新函数的概率密度函数,进而得到每一次迭代过程中的偏移因子。密度进化方法是从数学角度得到译码过程中每次迭代的外信息的概率密度函数,外信息的概率密度函数随着迭代次数的变化而变化,偏移因子的值也随着迭代次数的变化而变化。
进一步的,第一检验节点更新函数L1表示为:
第一校验节点更新函数的数学期望E(|L1|)表示为:
其中,L1表示第一校验节点更新函数,E(|L1|)表示L1的数学期望,E(|L1|)由无穷项之和组成,通常将前几个项的和作为E(|L1|),tanh(*)代表双曲正切函数,tanh-1(*)代表双曲正切函数的反函数,t表示展开式的项数,dc表示校验节点的度。
第二检验节点更新函数L2表示为:
利用加性高斯白噪声信道的分布特性,第二校验节点更新函数的数学期望E(|L2|)表示为:
其中,L2表示第二校验节点更新函数,E(|L2|)表示L2的数学期望,sign(*)表示符号函数;μ表示信道均值,y表示独立同分布的随机变量,σ表示信道标准差,dc是检验节点的度,Q(*)表示变量节点传递给校验节点消息的概率密度函数,根据信道信息进行初始化:μ=4/N0,σ2=8/N0。
第三校验节点更新函数L3表示为:
第三校验节点更新函数的数学期望E(|L3|)表示为:
其中,L3表示第三校验节点更新函数,E(|L3|)表示L3的数学期望,sign(*)表示符号函数,βk为第k次迭代的偏移因子,P(*)表示量化点的概率质量函数,i表示dc-1个独立同分布随机变量软值{Zn'→m(xn')-β,0}。
进一步的,迭代过程中偏移因子的计算包括:根据第一校验节点更新函数的期望和第二校验节点更新函数的期望的差值求出第一次迭代过程中偏移因子的值;当最大迭代次数itermax大于等于2时,根据第三校验节点更新函数的期望与第一校验节点更新函数的期望的差值计算第k次迭代过程中的偏移因子的值,具体包括:
第k次迭代过程中的偏移因子βk:
其中,L1表示第一校验节点更新函数,E(|L1|)表示L1的数学期望;L2表示第二校验节点更新函数,E(|L2|)表示L2的数学期望;L3表示第三校验节点更新函数,E(|L3|)表示L3的数学期望。
进一步的,在更新从校验节点传送到变量节点的外部信息的过程中,基于密度进化方法得到每一次迭代过程中的偏移因子后,引入加权平均方法对偏移因子进行修正,随着译码迭代中错误信息不断被纠正,偏移因子会逐渐收敛于0值,将这些偏移因子的加权平均值作为优化的偏移因子值。
计算itermax次迭代过程中偏移因子的加权平均值,得到优化的偏移因子值β,包括:
其中,β表示优化的偏移因子值,βk表示第k次迭代过程中偏移因子,λk是加权平均系数。
在某一信噪比下,在每次迭代中使用不同的偏移因子可以改善译码性能,但为了降低硬件复杂度,在整个译码过程中使用相同的偏移因子值,引入加权平均方法对偏移因子进行修正,随着译码迭代中错误信息不断纠正,偏移因子会逐渐收敛于0值,所以仅需要把前几次迭代中的偏移因子进行加权平均计算,通常选择前5次迭代的偏移因子进行加权平均计算。
进一步的,用线性近似方法将βk用β1带线性近似表示:
βk=γkβ1
其中,γk表示线性系数。
将近似处理后的β
k代入公式
中,进而对优化的偏移因子做近似处理,得到最优的偏移因子值β':
其中,β'表示最优的偏移因子值,是纠正因子,该纠正因子作为一个常量计算。
将最优的偏移因子值β'代入下式进行计算,更新从校验节点m传递给变量节点n的外信息。
其中,Lm→n(xn)表示从校验节点m传递给变量节点n的外信息,xn表示第n个发送码字,取值为{0,1},sign(*)表示符号函数;β'表示最优的偏移因子值,Zn'→m(xn')表示从变量节点n'传递给检验节点m的外信息;N(m)表示与校验节点m相连接的变量节点集合,n'∈N(m)\n表示除去变量节点n,与校验节点m相连接的其他变量节点。
校验节点更新完成后,进行变量节点更新:校验节点传递给变量节点的外信息更新后,利用当前更新变量节点的对数似然比(Log-likelihood ratio,LLR)消息值与前一次输出的变量节点的LLR值进行加权处理,作为新的LLR值更新从变量节点传递给校验节点的外信息,具体包括:
变量节点传递给校验节点的外信息包括:
其中,Zn→m(xn)表示从变量节点n传递给校验节点m的LLR消息,ln表示第n个变量节点的初始值,M(n)表示与变量节点n相连的校验检点的集合,M(n)\m表示除去校验节m的与变量节点n相连的校验节点的集合,m'∈M(n)\m表示除去校变量节m的与变量节点n相连的校验节点;Lm'→n(xn)表示前一次迭代过程中校验节点传递给变量节点n的外部LLR消息。
由于LDPC码环的存在,在译码迭代中导致变量节点LLR消息循环振荡,导致译码失败。本发明对变量节点更新前后的LLR消息值进行加权处理,减少同一个变量节点输出LLR消息与迭代前LLR消息间的差距,减缓变量节点的LLR信息的振荡性。
对变量节点更新前后输出的对数似然比消息值进行加权处理:
其中,
表示第k次迭代过程中变量节点n的LLR消息值,
表示第k-1次迭代过程中变量节点n的LLR消息值,ω表示加权平均系数,不同的检验矩阵对应不同的最佳ω值。
使用
代替变量节点更新函数中的Z
n→m(x
n)值,即可更新从变量节点传递给校验节点的外信息。
其中,
表示第k次迭代过程中变量节点n的LLR消息值,l
n表示第n个变量节点的初始值,M(n)表示与变量节点n相连的校验检点的集合,M(n)\m表示除去校验节点m的与变量节点n相连的校验节点的集合,m'∈M(n)\m表示除去校验节点m的与变量节点n相连的校验节点;L
m'→n(x
n)表示前一次迭代过程中校验节点传递给变量节点n的外部LLR消息。
校验节点与变量节点更新完成后,通过下式计算变量节点的硬判决值,并进行硬判决。
判断硬判决是否满足检验矩阵X·ΗT=0,如果满足,输出硬判决作为译码结果;如果满足检验矩阵,判断译码是否达到最大迭代次数,如果达到最大迭代数则译码停止,否则返回第二步操作。
在传统中译码方法中,偏移因子的值仅能够在第一次迭代中使用密度进化方法进行计算,而本发明通过密度进化方法计算出迭代过程中的偏移因子值,再通过加权平均获得的优化的偏移因子值更为精确,可以提高算法的译码性能;而采用线性近似方法对优化的偏移因子做近似处理,既降低硬件复杂度又保证了译码性能。
如图2所示,在相同仿真环境不同信噪比下,本发明的一种基于密度进化改进偏移最小和的LDPC译码方法与现有的LLRBP算法、MS算法、NMS算法、OMS算法进行误比特率性能对比,图2中,曲线DEOMS-1/2和vwDEOMS-3是本发明对校验节点处的偏移因子做出改进后的仿真结果,曲线DEOMS-1是使用密度进化和加权平均对偏移因子进行处理后的仿真结果,曲线DEOMS-2是联合线性近似处理得到最优的偏移因子后的仿真结果,曲线vwDEOMS-3是采用加权平均处理变量节点振荡性并使用最优的偏移因子更新迭代译码后的仿真结果,曲线LLRBP是LLRBP算法的仿真结果,作为基准线,拥有接近香农限的优良译码性能,但计算复杂度过高;曲线MS、NMS、OMS分别是MS算法、NMS算法、OMS算法的仿真结果。本发明的方法在OMS算法的基础上进一步对该算法进行改进,复杂度略高于OMS算法,但在同一信噪比下,本发明算法的误比特率明显低于现有的MS算法、NMS算法和OMS算法,译码性能优于现有的MS算法、NMS算法和OMS算法的译码性能。
尽管已经示出和描述了本发明的实施例,对于本领域的普通技术人员而言,可以理解在不脱离本发明的原理和精神的情况下可以对这些实施例进行多种变化、修改、替换和变型,本发明的范围由所附权利要求及其等同物限定。