APP下载

非顺序的TPC 软判决迭代译码算法

2018-03-20张佳岩马永奎

吉林大学学报(信息科学版) 2018年1期
关键词:译码器码字译码

卢 昊,张佳岩,马永奎

0 引 言

Turbo乘积码是一种兼顾误码率性能和译码复杂度的长码[1],由两个线性分组码串行级联得到。线性分组乘积码的概念最早由Elias[2]提出,但在Turbo类译码器提出之前,分组乘积码使用译码能力较差的硬输入硬输出(HIHO:Hard-Input/Hard-Output)译码器,其优越的性能一直未被发现。直到1994年,Pyndiah以Chase算法[3]为基础,提出了一种适用于TPC(Turbo Product Code)码的软输入软输出(SISO:Soft-Input/Soft-Output)Turbo类译码器,称为Chase-Phydiah译码器。该译码器在具有良好译码性能的同时降低了算法复杂度。由此,TPC码被广泛研究应用[4-8]。之后的研究多针对如何在不损失或有限损失误码率性能的前提下减少Chase-Phydiah译码器的复杂度。如文献[9,10]中将Chase算法中候选码字重新排序,以减小Chase算法的实现复杂度。文献[11-13]估计信道情况,选择合适的试探序列个数,以减小候选码字个数,从而降低Chase算法复杂度。文献[14,15]中提出HIHO译码器与SISO译码器混合使用,用HIHO译码器代替后几次SISO译码从而减少译码复杂度。提高TPC误码性能的研究大多针对HIHO译码器[16,17],或利用其他最大后验(MAP:Maximum A Posteriori)算法作为TPC的子码译码算法,但这常常伴随译码复杂度的增加[18,19]。实际上,Chase-Phydiah译码器的复杂度不是制约其实用的原因,许多研究者已经完成了Chase-Phydiah译码器的硬件设计与实现[20-22]。相比于关注度更高的Turbo卷积码[23]和低密度奇偶校验码[24],使用Chase-Phydiah译码器的TPC码与香农极限存在较大性能差异是TPC码明显的劣势。如采用PL-log-MAP译码算法的Turbo卷积码在高误比特率情况下,所获信噪比增益高达7~9 dB[25],而TPC码在相同条件下,信噪比增益仅为4~6 dB。因此,如何能在不增加译码复杂度的情况下降低误码率是具有实际意义的研究方向。

2009年,Al-Dweik等[17]提出非顺序(NS:Non-Sequential)译码。其思想是在第1次迭代时,一旦接收信息到可用码字的汉明距离大于阈值时,则跳过此次译码,以避免引入额外错误,从而提高译码性能。但NS译码思想仅用于HIHO迭代译码算法,而HIHO译码算法与SISO译码算法相比有2~3 dB的性能损失,无法体现出TPC码的优越性。笔者将NS译码思想推广到SISO迭代译码算法,从而在几乎不增加额外运算的情况下,提高Chase-Phydiah译码器的误码率性能。

1 TPC编码与译码

1.1 TPC编码结构

TPC码可看做由两个线性分组编码编码器串行级联而成。其子码Ci(i=1,2)可表示为(ni,ki,d(mii)n),其中ni,ki,d(mii)n分别表示码长、信息位长度和最小汉明距离。TPC编码结构如图1所示,其编码过程如下:

图1 TPC编码结构Fig.1 TPC code structure

1)将k1×k2信息序列排成k1×k2的矩阵;

2)用C2编码k1行,得到k1×n2的矩阵;用C1编码n2列,得到n1×n2编码矩阵。

乘积码P的参数为n=n1n2,k=k1k2,dmin=d(1)mind(2)min。由于C1,C2都是线性分组码,因此每行或列都是C1或C2的可用码字。笔者仅考虑C1,C2是相同扩展BCH(Bose-Ray-Chaudhuri-Hocquenghem codes)码的情况。因此,乘积码P可表示为e BCH(n,k,dmin)2。

1.2 标准Chase-Phydiah译码算法

假定信息用BPSK(Binary Phase Shift Keying)调制方式,经加性高斯白噪声(AWGN:Additive White Gaussian Noise)信道到达接收端。设发送的码字矩阵为X=[xi,j]n×n,xi,j∈{+1,-1},则X到二元域GF(2)的投影是P的一个可用码字,其经过AWGN信道后对应的接收矩阵为R=[ri,j]n×n,AWGN噪声矩阵为G=[gi,j]n×n,其中每个元素gi,j都是独立的零均值正态分布随机数,则R=X+G。

设R′(m)和W(m)分别代表第m次译码(每次迭代含行、列两次译码)的软判决输入矩阵和外信息量矩阵,则Chase-Phydiah译码过程可总结如下。

初始化。设定最大译码次数I(一次迭代过程包含行、列两次译码),设定第m次译码的权重系数α(m)和可靠性系数 β(m)(m=1,2,…,I)。第1次译码设置 m=1,输入 R′(1)=R,中间缓存变量Rtemp=R。

SISO迭代过程如下。

1)用Chase-Phydiah算法计算外信息量W(m),定义W=(w1,…,wn)和R′=(r1′,…,r′n)分别对应W(m)和R′(m)的某行,其计算过程如下。

① 用Chase-Ⅱ算法[3]译码R′,获得候选码字集合Ω。

②在集合Ω中搜索决定码字D=(d1,…,dn)和竞争码字C=(c1,…,cn)。其中D是Ω中与R′欧氏距离最近的码字,C是满足C∈Ω,cj≠dj的码字中与R′欧氏距离最近的码字。对不同的j,C并不总是存在。在此规定,若对位置j不存在C,则称j是无竞争码字位置。

③ 计算wj。若存在C,则

否则

2)令Rtemp←RTtemp,其中T代表矩阵转置运算。

3)计算下一次迭代译码器输入R′(m+1)=Rtemp+α(m)W(m)T。

4)令m←m+1,若m>I,则终止译码;否则,回到步骤1)重复译码过程。

上述译码过程可由图2所示的基础译码单元串联得到。Pyndiah[1]指出,为减少α对乘积码的依赖性,将所有由式(1)导出的外信息量的绝对值w的平均值归一化到1。但若固定α=0.5,β=1,则不需对外信息量归一化[10]。

图2 TPC译码单元结构框图Fig.2 Block diagram of elementary block turbo decoder

2 NS-SISO迭代译码算法

TPC码的行和列是相互联系的,行译码器的输出结果会影响列译码器的工作,反之亦然。因此一旦行(或列)错误译码,会将错误引入后续迭代过程中。这种错误译码在HIHO译码器中会导致闭链错误(close-chain error),在SISO译码器中,会在下一次译码过程中引入额外噪声。

TPC码NS-HIHO译码的思想是利用码字可靠度将所有行(或列)分成可靠和不可靠两类。每次行译码(列译码)仅对可靠行(或列)操作,以避免错误译码。

2.1 码字可靠度计算

NS译码首先要度量码字的可靠度。在NS-HIHO译码中[8],Al-Dweik采用了将硬判决码字可靠度用对数似然比形式定义,一个错α位的码字,其可靠度为

其中Rh为接收码字硬判决值,Dh为决定码字,dmin为最小码距,e为错误个数。其中

其中Pch为信道错误发生概率,n为码长。

显然,该定义式(3)表达形式复杂,不易计算。笔者采用Lu等[15]的硬判决码字可靠度估计值表示码字可靠度。硬判决码字可靠度定义为

其中σ2为噪声方差。在σ2→0时,式(5)可近似为

其中Dm表示与Rh有第2小海绵距离的码字,am代表Dm个数。假定信号调制方式为BPSK,经方差为σ2的高斯白噪声信道到达接收端,则式(4)可化为

当σ2→0时,式(5)可化为

其中dmin为子码的最小码距,e为错误个数。由式(8)可知,码字硬判决可靠度值仅和最小码距与错误个数有关。一旦TPC子码最小码距确定,γh可由错误个数唯一确定,因此,可用错误个数作为判断是否进行此次译码的标准。

2.2 SISO迭代译码的NS译码

参考HIHO译码中的NS译码算法,SISO的NS译码算法过程可概括为:

1)设定错误个数阈值t;

2)若决定码字D的硬判决错误个数e>t,则跳过后续译码过程,译码器外信息量输出结果为零,否则正常译码。

特别注意,与HIHO中NS译码算法不同,SISO的NS译码过程不是仅在第1次译码时执行,而是在每次译码时都被执行。NS-SISO具体译码流程图如图3所示。

图3 NS-SISO译码算法流程Fig.3 NS-SISO decoding algorithm flow diagrams

3 仿真结果与分析

首先讨论不同阈值t对BER(Bit-Error-Rate)性能的影响,然后讨论在选择合适阈值的情况下,NS-SISO算法对迭代收敛性的影响。仿真结果将对比标准SISO译码算法与NS-SISO译码算法的误码性能。其他参数设置为p=4,I=8,α(m)=[0,0.2,0.3,0.5,0.7,0.9,1],β(m)=[0.2,0.4,0.6,0.8,1,1,1]。图4反应了在译码e BCH(64,57,4)2时不同阈值t对NS-SISO译码器性能影响。由图4可知,t=2时,阈值过小,这令部分Chase译码器可正确译码的码字未能译码,使译码性能下降。t=3时,NS-SISO译码器在Eb/N0处于3~3.4 dB之间时,误码率性能增益最优,仅为传统SISO算法的1/4左右。但在信噪比更高的区域性能不如t=4的情况。这是因为信噪比越高,Chase译码器的译码效果越好,可纠正更不可靠的码字,因此可靠度阈值可适度升高。t=4时,NS-SISO译码相较于传统SISO译码的性能增益保持稳定。由此看出,阈值的选择与Eb/N0有关,标准SISO译码器误码率小于10-5时,阈值建议选择t=4。

图5为采用NS-SISO算法译码e BCH(64,57,4)2的误码率随迭代次数变化曲线,选定Eb/N0=3,t=4。从图5可看出,随迭代次数的增加,NS-SISO译码的性能优势逐渐明显。这是因为NS-SISO译码会跳过可靠度不高的行或列,使其在迭代次数较少时性能增益不明显。但由于NS-SISO译码不引入错误纠正,当迭代次数超过5时,双方的性能差异将开始体现。由图5可见,要达到相同的误码性能,NS-SISO译码比标准SISO译码少半次迭代。

图4 NS-SISO不同阈值t译码e BCH(64,57,4)2性能Fig.4 Performance of decoding e BCH(64,57,4)2 by different NS-SISO thresholds

图5 不同迭代次数条件下两种 译码方法比较Fig.5 Different decoding methods on different iteration number

图6给出了两种TPC码型e BCH(64,57,4)2和e BCH(32,26,4)2使用NS-SISO和标准SISO译码方法的性能对比图。仿真中选定p=4,I=8,t=4。从图6中可见,对不同的TPC码型NS-SISO译码算法都有一定的性能增益。

图7给出了利用Al-dweik等[17]提出的NS译码算法与笔者提出的NS-SISO算法及传统算法译码e BCH(64,57,4)2时的性能比较。显然,软判决算法具有明显的性能优势。而笔者提出的NS-SISO算法能比传统SISO算法误码性能更好。

图6 两种不同TPC码型下NS-SISO和标准SISO译码性能比较Fig.6 The performance of two different TPC codes by NS-SISO decoding method and normal SISO decoding method

图7 硬判决与软判决NS算法 和传统算法性能比较Fig.7 The performance of NSand normal decoding method

4 结 语

笔者将TPC码的NS译码思想推广到SISO译码中,以提高误码率性能,若阈值选取适当,NS-SISO算法的误码率仅为标准SISO算法误码率的1/2~1/4。该算法根据码字可靠度选择更可靠的行(或列)译码,将低于可靠度阈值的子码码字留到下次译码,以避免迭代过程中引入新的错误。仿真结果表明,NS-SISO的最优阈值与Eb/N0有关。当选择合适的阈值值时,达到相同BER性能的情况下,NS-SISO译码所需的译码次数比标准SISO译码少一次。

[1]PYNDIAH R M.Near-Optimum Decoding of Product Codes:Block Turbo Codes[J].IEEE Transactions on Communications,1998,46(8):1003-1010.

[2]ELIASP.Error-Free Coding[J].Transactions of the IRE Professional Group on Information Theory,1954,4(4):29-37.[3]CHASE D.Class of Algorithms for Decoding Block Codes with Channel Measurement Information[J].IEEE Transactions on Information Theory,1972,18(1):170-182.

[4]MUKHTAR H,AL-DWEIK A,SHAMIA.Turbo Product Codes:Applications,Challenges,and Future Directions[J].IEEE Communications Surveys&Tutorials,2016,18(1):3052-3069.

[5]MUKHTAR H,AL-DWEIK A,AL-MUALLA M.CRC-Free Hybrid ARQ System Using Turbo Product Codes[J].IEEE Transactions on Communications,2014,62(12):4220-4229.

[6]马雯,李秀花.基于Turbo乘积码的超短波高速数传系统性能研究[J].南阳理工学院学报,2016,8(4):1-3.MA Wen,LI Xiuhua.Performance Research of Ultra-Short-Wave High-Speed Data Transmission System Based on Turbo Product Code[J].Journal of Nanyang Institute of Technology,2016,8(4):1-3.

[7]李安顺,邢威,谢立.一种运载火箭高码率遥测系统设计方案[J].计算机测量与控制,2015,23(6):1915-1918.LI Anshun,XING Wei,XIE Li.Design of Launch Vehicle High Bit-Rate Measure System[J].Computer Measurement&Control,2015,23(6):1915-1918.

[8]朱小辉,熊省军,谢哲,等.TPC码在水声中继节点中的应用研究[J].声学与电子工程,2017(2):1-4.ZHU Xiaohui,XIONG Shengjun,XIE Zhe,et al.Application of TPC Code in Underwater Acoustic Relay Node[J].Acoustics and Electronics Engineering,2017(2):1-4.

[9]HIRST SA,HONARY B,MARKARIAN G.Fast Chase Algorithm with an Application in Turbo Decoding[J].IEEE Transactions on Communications,2001,49(10):1693-1699.

[10]ARGON C,MCLAUGHLIN S W.An Efficient Chase Decoder for Turbo Product Codes[J].IEEE Transactions on Communications,2004,52:896-898.

[11]CHEN GT,CAOL,YU L,et al.Test-Pattern-Reduced Decoding for Turbo Product Codes with Multi-Error-Correcting EBCH Codes[J].IEEE Transactions on Communications,2009,57(2):307-310.

[12]MAHRAN A,BENAISSA M.Adaptive Chase Algorithm for Block Turbo Codes[J].Electronics Letters,2003,39(7):617-619.

[13]韩明,张佳岩,赵洪林.低复杂度的TPC自适应译码算法[J].中南大学学报:自然科学版,2017,48(1):141-147.HAN Ming,ZHANG Jiayan,ZHAO Honglin.A Low-Complexity Adaptive Decoding Algorithm for Turbo Product Code[J].Journal of Central South University:Science and Technology,2017,48(1):141-147.

[14]AL-DWEIK A,GOFF S,SHARIF B.A Hybrid Decoder for Block Turbo Codes[J].IEEE Transactions on Communications,2009,57(5):1229-1232.

[15]LU P,LU E,CHEN T.An Efficient Hybrid Decoder for Block Turbo Codes[J].IEEE Communications Letters,2014,18(12):2077-2080.

[16]AL-DWEIK A J,SHARIFB S.Closed-Chains Error Correction Technique for Turbo Product Codes[J].IEEETransactions on Communications,2011,59(3):632-638.

[17]AL-DWEIK A J,SHARIF B S.Non-Sequential Decoding Algorithm for Hard Iterative Turbo Product Codes[J].IEEE Transactions on Communications,2009,57(6):1545-1549.

[18]MARTIN P A,TAYLOR D P,FOSSORIER M P C.Soft-Input Soft-Output List-Based Decoding Algorithm[J].IEEE Transactions on Communications,2004,52(2):252-262.

[19]LONCAR M,JOHANNESSON R,BOCHAROVA IE,et al.Soft-Output BEAST Decoding with Application to Product Codes[J].IEEE Transactions on Information Theory,2008,54(3):1036-1049.

[20]ADDE P,PYNDIAH R,RAOUL O,et al.Block Turbo Decoder Design[J].Proc IEEE Int Symp Turbo Codes&Related Topics,1997,1(1):166-169.

[21]李超.基于FPGA的TPC编译码器设计与实现[J].电子科技,2015,28(5):121-123.LI Chao.Design and Realization of TPC Coding Based on FPGA[J].Electronic Sci&Tech,2015,28(5):121-123.

[22]熊玉平.一种交错并行高速TPC译码器的设计[J].电讯技术,2017,57(7):830-833.XIONG Yuping.Design of a High-speed Interleaved Parallel TPC Decoder[J].Telecommunication Engineering,2017,57(7):830-833.

[23]BERROU C,GLAVIEUX A,THITIMAJSHIMA P.Near Shannon Limit Error-Correcting Coding and Decoding:Turbo-Codes[C]∥ICC'93-IEEE International Conference on Communications.Piscataway,NJ:IEEE,1993:1064-1070.

[24]CHUNG S,FORNEY GD,RICHARDSON TJ,et al.On the Design of Low-Density Parity-Check Codes within 0.004 5 dB of the Shannon Limit[J].IEEE Communications Letters,2001,5(2):58-60.

[25]ROMANYUK A N,YU YU IVANOV.A Brief Overview and Experimental Researches of Novel PL-Log-MAP Turbo Decoding Algorithm[C]∥2017 International Siberian Conference on Control and Communications.Astana:SIBCON,2017:1-6.

猜你喜欢

译码器码字译码
基于对数似然比与极化信道可靠度的SCF 译码算法
基于扩大候选码元范围的非二元LDPC加权迭代硬可靠度译码算法
分段CRC 辅助极化码SCL 比特翻转译码算法
基于校正搜索宽度的极化码译码算法研究
放 下
数据链系统中软扩频码的优选及应用
放下
编码器和译码器综合实现数字显示
跟踪导练(一)5
数字电路环境下汽车控制电路信号设计