本发明属于信道编码技术领域,具体涉及一种应用于g-ldpc编码协作的联合迭代译码方法。
背景技术:
低密度奇偶校验(low-densityparity-check,ldpc)码是一类纠错能力很强的线性分组码,它在很多数据传输和数据存储信道上都表现出逼近信道容量的性能。ldpc码最早由gallager博士提出,但由于当时存储能力和计算机的限制,人们一直没有充分认识到ldpc码的优越性,直到mackay等人受到turbo码迭代译码的启发,提出了适用于ldpc码且译码性能接近香农极限的置信传播(beliefpropagation,bp)迭代译码算法。期间值得一提的是tanner所做的一项重要工作,他对ldpc码进行了推广并引入了ldpc码的图形表示即tanner图。tanner图奠定了消息传递算法的基础。至此,ldpc码再次引起了学者们的注意并被广泛研究和应用。
编码协作将信道编码技术和协作技术有机结合在一个系统中,通过相互独立的信道发送码字的不同部分,使之同时获得编码增益和协作分集增益,极大的提升了系统的可靠性。由于低密奇偶校验码性能逼近香农限,同时可以采用完全并行的迭代译码,减少译码时延,chakrabarti在2007年提出采用ldpc码的编码协作系统。
在ldpc编码协作系统中,目的节点译码器若采用传统协作系统译码方法对来自信源节点和协作中继的两路接收信号分别进行独立迭代译码,迭代结束后分别求基于两路信号的后验概率,再利用两者的后验概率得到联合后验概率进行译码判决。这虽然能得到一定的协作分集增益,但在每次独立译码迭代过程中,两路信号各自的软输出外信息并未实现互换,而联合检验-变量处理的hcvp译码算法能够充分发挥协作系统的优势和潜能。
技术实现要素:
本发明所要解决的技术问题是克服现有技术的不足,提供一种应用于g-ldpc编码协作的联合迭代译码方法,在联合迭代最小和译码算法的基础上,提出联合校验-变量处理译码算法,使译码性能有效提高,并具有更强的实用性。
本发明提供一种应用于g-ldpc编码协作的联合迭代译码方法,包括如下步骤:
步骤s1、信源节点s通过编码器g-ldpc-s对产生的信息比特编码,生成码字c并通过广播信道将其发送至中继节点r和节目节点d;
步骤s2、中继节点r将接收到的信息通过译码器decoder-r译码,获取原始的信息比特,再将信息比特通过译码器g-ldpc-r重新编码,并将编码取得的校验比特通过广播信道发往目的节点d;
步骤s3、目的节点接收来自信源节点s与中继节点r的信息,基于校验矩阵和码字之间的检验关系,通过联合迭代译码算法分析系统的错误码率性能。
联合译码算法基于双层tanner图,采用对数似然比形式将联合迭代译码校验节点更新处乘法算法转换为加法算法,再利用联合最小和迭代译码把对数译码中双曲正切函数近似为输入信息的最小和形式,所述目的节点的译码器采用联合译码。作为本发明的进一步技术方案,联合校验-变量处理的hcvp译码算法基于双层tanner图。其检验节点的更新采用基于最小值和次小值的间距差,变量节点的更新基于消息节点的独立分布。
进一步的,信源节点s将信息比特序列
进一步的,步骤s2中,所述中继节点r通过译码器decoder-r对来自信源节点s的码字c1进行译码恢复出原始比特,再利用校验矩阵
进一步的,步骤s3中,目的节点的编码系统满足检验关系hc=0,其中,
进一步的,信号源点与中继节点,分别使用校验矩阵h1和h2、分组码c1和c2,中继节点将译码器输出作为其信息序列进行再编码,在目的节点的译码器中,联合迭代译码基于双层tanner图,其中vn(n=1,…n)为h1和h2的共同变量节点,vn(n=n+1,…n+m2)为h2的变量节点;
更进一步的,校验节点更新时,采用归一化方法对联合最小和迭代译码带来的过估计进行有效的降低,并根据检验节点输入信息的最小值和次小值的间距差,确定每一次迭代过程中归一化方法中乘性因子的取值。
进一步的,变量节点更新时,采用乘性因子修正方案,使得节点消息之间满足独立分布条件。
本发明降低了联合最小和迭代译码带来的过估计问题,引入乘性因子和加性因子的概念来减少估计。归一化最小和(normalizedminsum,nms)只在ms的基础上引入了乘性因子(少量乘法),译码复杂度与ms基本相同,但能有效改善译码的性能。nms译码算法结合最小值和次小值间距差的修正算法,可将该算法运用到g-ldpc码编码协作系统中。相比传统的nms算法采用固定的修正因子,本发明修正方法可在每次迭代过程中,根据最小值和次小值间距差决定使用何种译码过程,更准确的反映校验节点信息。在此基础上,还对变量节点进行了独立化。在译码复杂度相比传统nms增加不多的前提下,提出联合校验-变量处理译码算法。使译码性能进一步提高,因而具有较强的实用性。同等条件下,本发明的误码率性能优于相应的点对点系统,能更好地满足实际通信的需求。
附图说明
图1为本发明的编码协作系统示意图;
图2为本发明的g-ldpc编码协作系统对应的双层tanner图;
图3为本发明的编码协作系统与点对点系统的联合迭代译码性能仿真图;
图4为不同译码算法性能仿真图;
图5为不同信道下编码协作系统的联合迭代译码性能仿真图。
具体实施方式
请参阅图1,本实施例提供一种应用于g-ldpc编码协作的联合迭代译码方法,包括如下步骤:
步骤s01:信源节点s将信息比特序列
步骤s02:协作中继r对s发送的受到噪声干扰的码字进行译码。假定译码器能正确译码,协作中继r用检验矩阵为
步骤s03:对编码协作通信系统目的节点而言,整个编码系统满足如下检验关系hc=0;其中,
此联合迭代译码算法的更新分为检验节点的更新和变量节点的更新,检验节点更新主要是为了降低译码算法的复杂度在此基础上进一步提高检验节点消息的可靠性;变量节点的更新主要是提高译码算法的性能。
基于ldpc编码联合迭代译码方案:
步骤s01:信源节点和协作中继分别使用检验矩阵如下h1和h2的分组码c1和c2。协作中继将译码器输出作为其信息序列进行再编码。对目的节点译码器而言,整个编码协作系统校验矩阵所对应的双层tanner图如图2所示。其中vn(n=1,…n)为h1和h2的共同变量节点,vn(n=n+1,…n+m2)为h2的变量节点;
双层tanner图结构中的共同信息位同时参与了第一层和第二层tanner图中检验节点所确定的检验关系,在置信度传播(beliefpropagation,bp)译码算法检验节点的处理中,将双层tanner图中的所有校验节点视为一个统一的检验节点整体进行处理。
步骤s02:要降低l2的幅度,可以将其除以一个尺度因子,即
步骤s03:通过调整变量消息的处理过程,降低消息之间的相关性为
其中,γ为乘性因子,0<γ<1。一般γ取值与码长、码率、信噪比以及译码迭代次数有关。在整个译码过程中采用相同的数值。通仿真比较得出,当γ=0.93时,译码性能提高最多。可以降低短循环引进的变量消息之间的相关性,在稍微增加复杂度的同时,获得了性能增益。
其中校验节点的更新步骤如下:
步骤a:任取校验矩阵h中第m行,如果知道里面一个节点含有的后验概率信息,就可以得到h的第m行含有奇数个’1’,和偶数个’1’概率分别是多少。即,一个m长的二进制序列,其中第l位是1的概率用pl表示,则整个序列包含偶数个1的概率为:
联合bp迭代译码算法过程中传递的是概率值,这些概率值均参与乘法运算。为了简化运算,降低译码复杂度,采用对数的形式变乘法运算为加法运算,对应的译码算法为对数域bp译码算法。联合llr-bp迭代译码算法的译码步骤涉及大量的双曲正切函数计算,计算复杂度很高实现难度较高。联合ms迭代算法在译码过程中使用min函数近似计算,对llr-bp进行简化。
步骤b:符号用来进行译码,而判决的置信度或可靠性由幅度表示。在幅度的计算中,检验节点
l2的幅度大于l1的幅度,即|l2|>|l1|。
ms算法与bp算法相比,过高估计了输入检验消息的幅度。ms算法性能损失的根本原因是产生了过估计。因此,为了使译码性能接近bp算法,采取了降低消息幅度的措施。
要降低l2的幅度,可以除以一个校正因子β,即
其中,β的值与码率、行重和信噪比有关。用译码算法第一次迭代的结果计算出β的值。为简化运算,一般在所有迭代过程中,采用同一个β值。可采用计算机模拟仿真的方法来确定乘性因子的最佳取值。因为nms算法只在ms算法的基础上引入了一个校正因子,所以两种算法的复杂度差别不大。
步骤c:影响联合ms迭代译码算法估计值与真实值之间差距的主要因素是最小值与次小值之间的距离,距离越大,估计值越接近真实值。
设输入信息的最小值和次小值分别为a和b(a,b>0),只取最小值和次小值进行计算,更新公式变为
该式后半部分得
继续对上式进行分析,当a和b之间的距离逐渐增大到无穷大时,即b-a→∞,则-(b-a)→-∞,则e-(b-a)→0,此时式(10)值为0,估计值与实际值相等;当a和b之间的距离逐渐缩小到无穷小时,即b-a→0,则-(a+b)→-2a,式(10)化为ln(1+e-2a)-ln2,因为ln2>ln(1+e-2a)>0,因此估计值与实际值的间距差不会超过ln2=0.693,当最小值a较大时,基本可以忽略不计,当a较小时,差值带来的影响就会比较明显。
由此可得,联合ms迭代译码算法引起误差的的主要因素是输入信息最小值和次小值的间距差以及输入信息最小值a的大小。
nms算法中为了简化运算,一般在所有迭代过程中,采用同一个校正因子β,实际上外信息的最小值和次小值的间距差决定了校正因子的取值,通过最小值和次小值来确定每一次迭代过程中校正因子的大小,可以进一步提高译码性能。
改进译码算法校验节点的更新规则:将
令
其中(a+b/10)为nms中改进的乘性因子。nms中,校正因子每次取固定值1.25,在改进的译码算法中若(a+b/10)=1,则检验节点的更新同ms译码算法,其中a=ln2≈0.693,且门限值约为3,所以有(0.693+3/10)≈1。
变量节点的更新步骤如下:
步骤a:检验节点传递给变量节点的外信息(不包括校验节点本身接收到的信息)为
i=1时,表明变量节点vn传递外信息
i=2时,表明变量节点vn传递外信息
步骤b:由于tanner图没有环在码长为几百到几千时就不严格了,此时变量节点之间的消息就不满足i.i.d条件,各个变量消息之间存在相关性,译码性能降低。所以,通过调整变量消息的处理过程,降低消息之间的相关性。
其中γ为乘性因子,0<γ<1。
一般γ取值与码长、码率、信噪比以及译码迭代次数有关。在整个译码过程中采用相同的数值。通过计算机仿真得γ=0.93时译码性能提高最多,可以有效降低变量消息之间的相关性,在增加少量译码复杂度的情况下,获得了译码性能增益。具体hcvp译码算法实现过程见算法1.
结合图3-图5分析,同等条件下,仿真采用了二进制相移键控调制,目的节点信道状态信息已知,译码算法采用本文所提到的hcvp。考虑两种信信道场景下的译码性能:(a)s-d和r-d信道为相互独立的awgn信道,但是具有不同的snr。(b)s-d和r-d信道为相互独立的瑞利块衰落信道,在每个码字时间里信道衰落保持不变,且s-d和r-d信道的平均信噪比相同。对码长为2000,码率为2/5的g-ldpc码和码长为1500,码率为1/3的g-ldpc码,采用上述环境进行译码性能仿真,迭代次数为10次。对比并分析了不同条件下的仿真结果。
如图3所示,码长2000,码率2/5的g-ldpc在瑞利块衰落信道下采用二进制相移键控调制,比较了编码协作系统和点对点系统的译码性能。结果表明编码协作系统的性能优于点对点非协作系统。这是由于编码协作将信道编码技术和协作技术有机结合在一个系统中,通过相互独立的信道发送码字的不同部分,使之同时获得编码增益和协作分集增益,极大的提升了系统的可靠性,且随着迭代次数的增加,性能增益越明显。该增益归功于中继的设置提高了目的节点部分接收信号的信噪比,而通过联合迭代译码算法,可以提升整个协作系统的ber性能。在ber=10-3数量级时,编码协作系统相比于对点系统获得约5db的增益,译码性能得到改善。
同等仿真条件下,选取码长为1500,码率为1/3的g-ldpc码,对单信源单中继编码协作系统下不同译码算法的性能进行仿真比较,仿真结果如图4所示。从图4可以看出,三种码性能均较好。基于输入信息最小值和次小值间距差改进的译码算法,将nms中用一次计算出的校正因子代替所有更新过程中的校正因子的方法改进为每次校验节点的更新过程都根据变量节点的输入消息的最小值和次小值差距的大小与门限值进行比较,若大于门限值则仍采用ms译码,否则采用每次迭代均更新乘性因子的改进译码算法。改进的译码算法估计值更接近bp算法的真实值,译码性能优于nms。本文提出的hcvp译码算法,考虑到变量节点的可信度可能因为短环的存在使得信息之间不独立,所以在变量节点迭代的过程中引入乘性因子,降低了变量节点的相关性。hcvp译码算法从一开始就优于其他两种译码算法,当ber=10-5数量级时,这种联合检验节点和变量节点的联合迭代译码算法,优于其它两种算法约0.1db。且译码复杂度同nms的改进算法相差无几,所以具有广泛的应用价值。
图5在同等条件下,对比了编码协作系统在高斯信道和瑞利信道下的译码性能仿真。
采用单信源单中继编码协作系统下,码长1500,码率1/3的g-ldpc码,译码算法采用hcvp联合迭代译码算法,仿真了g-ldpc编码协作系统在不同信道下的译码性能。首先,迭代次数越多,tanner图中各节点获得的信息的准确性越高,译码性能越好。瑞利信道,因为瑞利乘性因子的存在,使得只有在信道信噪比很高的情况下,译码性能才好。
以上显示和描述了本发明的基本原理、主要特征和优点。本领域的技术人员应该了解,本发明不受上述具体实施例的限制,上述具体实施例和说明书中的描述只是为了进一步说明本发明的原理,在不脱离本发明精神范围的前提下,本发明还会有各种变化和改进,这些变化和改进都落入要求保护的本发明范围内。本发明要求保护的范围由权利要求书及其等效物界定。