面向CCSDS标准的Turbo码的研究与仿真实现

2017-10-20 06:00杨泽坤晋东立
无线电通信技术 2017年6期
关键词:译码器码率交织

杨泽坤,晋东立

(北京跟踪与通信技术研究所,北京 100094)

面向CCSDS标准的Turbo码的研究与仿真实现

杨泽坤,晋东立

(北京跟踪与通信技术研究所,北京 100094)

Turbo码是一种性能优异且高效的信道编码方式,被空间数据系统咨询委员会(CCSDS)推荐为深空通信中可采用的信道编码方案之一。分析了Turbo码的编码和译码的基本原理,基于CCSDS给出的深空通信标准,设计并实现了Turbo码的编码和译码过程。通过Matlab软件仿真测试,初步探究了译码迭代次数、码率、译码算法等因素对误码率性能的影响,并对仿真结果进行了分析。

信道编码;Turbo码;CCSDS

0 引言

1993年,在瑞士召开的国际通信会议上,C.Berrou[1]等人提出一种新型信道编码方案——Turbo码。Turbo 码是接近香农理论极限的编码方案,特别是在低信噪比的条件下性能优异,它的提出是信道编码研究领域的一项重大突破。在深空通信系统中[2-3],由于通信距离长,信号从深空传回地面时功率衰减十分严重,接收信号信噪比极低,此时 Turbo 码的优势得以体现。1999年,空间数据咨询委员会(CCSDS)[4]将Turbo 码作为遥测信道编码的备选方案,并在2002年正式将Turbo码在其蓝皮书中列为推荐的信道编码方案之一[5]。下面介绍了Turbo码编码和译码的基本原理,以及CCSDS标准下Turbo码的编码器结构,并基于此标准进行了仿真测试,探究了迭代次数、码率以及译码算法等对误码率性能的影响。

1 Turbo码基本原理

Turbo码编码器是由2个递归系统卷积码(RSC)编码器作为分量编码器,码字通过一个随机交织器并行连接而成,编码后的校验位经过删余器,从而产生不同码率的码字。Turbo码的译码是一个迭代过程,译码算法目前主要有基于最大后验概率的译码算法和基于维特比的译码算法两大类[6]。

1.1 Turbo编码原理

图1 Turbo码编码器结构框图

1.2 Turbo译码原理

Turbo译码器主要由2个软输入软输出子译码器、交织器、硬判决器件和解交织器组成。2个子译码器分别与2个子编码器相对应,它们之间通过交织器和解交织器相连,交织规则与编码器中的交织规则一样[8]。其结构如图2所示。

图2 Turbo码译码器结构框图

Turbo码译码是一个迭代译码的过程:DEC1对分量编码器1的输出进行最佳译码,生成信息序列{dk}中的每一比特位的似然信息,并将其中的外信息经过交织器得到先验信息2送到DEC2,同时分量编码器2的输出校验序列2也输入DEC2进行最佳译码,产生交织后信息序列中每一比特的似然信息,而后将其中的外信息经过解交织器得到的作为DEC1的先验信息,准备进行下一次迭代的译码。这就是一次迭代译码的过程。当迭代次数达到预定值后,对DEC2产生的似然信息解交织后再进行硬判决,最后产生译码结果。

其中,子译码器是Turbo译码结构的核心[9]。输入包括信息序列、校验序列和由前一个子译码器产生的先验信息;输出包括信息序列的似然信息和外信息;外信息经过交织或者解交织后作为下一个译码器的先验信息输入。图3为采用软输入软输出的子译码器示意图。

图3 子译码器机构框图

1.3 Turbo译码算法

Turbo码的纠错能力包括2个含义:一个是这种码自身纠错的能力,另一个则是在特定译码算法下的纠错能力。子译码器作为整个译码结构的核心,其任务是如何对3个软输入进行处理,以获得输入信息序列dk的外信息及其软输出。目前主要有基于最大后验概率的译码算法MAP(Maximum Posterior Probability)和基于维特比的译码算法SOVA(Soft Output Viterbi Algorithm)两大类[10],总结如下。

① MAP算法

是基于最大后验概率的算法,Turbo码的最优算法。其核心思想是译码时分别计算每一个码元的后验概率,并依据这个后验概率来判断该码元的值。MAP 算法采用对数似然比函数作为其软判决的输出。MAP 算法也存在不足之处,其中存在大量的指数和乘法运算,导致计算复杂性高、存储空间大、译码延时大、不易于硬件实现和工程应用。

② Log-MAP算法[11]

将MAP算法中的各个度量转移对数域计算,将指数运算变为加法运算,降低运算量。原理可用公式表示为:

ln(ex1+ex2)= max(x1,x2)+ln(1+e-|x2-x1|)=

max(x1,x2)+fc(|x2-x1|),

(1)

式中,fc是一个相关函数,可预先做成表,利用查表来完成运算。

③ Max-Log-MAP算法

在对数域算法中,将加法表示式中的对数分量忽略掉,采用近似式:

ln(ex1+ex2)≈max(x1,x2)。

(2)

从而使得加法运算完全变成求最大值运算,进一步降低计算复杂性,提高译码速率,但是会使得性能下降。

④ Scale-Max-Log-MAP算法

利用比例因子来进一步降低在Max-Log-MAP算法中采用近似化处理对结果的影响。

⑤ SOVA算法

是基于最大似然函数的软输入软输出Viterbi算法。它在标准 Viterbi 算法的基础上进行了修正,在删除低似然路径时保留必要的信息,从而为每个输出比特提供一个可信度。其关键是利用最优路径和被删路径的度量差,差值越小意味着这次选取的可靠性越低。

在上述的几种算法中,SOVA算法的计算复杂度最小、硬件实现较容易,但是性能最差;而MAP算法虽然有一些不足却是最优算法,其他3种近似算法性能虽然不如MAP算法,但是计算复杂度得以降低、译码速率显著提高。由此可见,在实际应用中要对译码性能和计算复杂度进行权衡。

2 基于CCSDS标准的Turbo码

在CCSDS标准下的Turbo码的结构中[13],采用并行级联结构(PCCC),其成员码为2个结构完全相同的16状态递归卷积码,并且可以采用1/2、1/3、1/4、1/6 四种不同的码率[14]。信息码块的长度分别为1 784 bits、3 568 bits、7 136 bits、8 920 bits。编码器的结构如图4所示。

图4 CCSDS标准下的Turbo编码器结构

在 CCSDS 标准中,每个分量编码器有4个移位寄存器,这就决定了每个分量编码器有16个状态,同时也决定了在信息比特的末端需要增加的尾比特数目为 4。因为有尾比特的存在,Turbo 码的实际码长为n=(k+4)/r,式中k为信息位的长度,r为码率。

CCSDS标准对交织器的交织算法也做了具体的规定。CCSDS 标准建议的交织器用交织算法将 1、2、k,…,组成的整数序列置乱,其中k=k1*k2,对于所有支持的数据帧长度,k1=8,相应于数据帧长有1 784、3 568、7 136和8 920。对于不同的信息块长度,k1和k2的取值如表1所示,表中还给出了不同码率下的码子长度。

表1 特定信息块长度在不同码率下的码字长度及k1、k2取值

具体的交织算法如下,给定8个素数:

p1=31;p2=37;p3=43;p4=47;

p5=53;p6=59;p7=61;p8=67。

对s= 1,2,……k,根据给出的公式计算映射数值I(s),其中,s为置乱前的位置编号,I(s)为置乱后对应的位置编号:

m=(s-1)mod 2,

(3)

(4)

(5)

(6)

q=tmod 8+1,

(7)

c=(pqj+21m)modk2,

(8)

(9)

在交织器仿真运算中,尾比特也会随着信息比特一起进入交织器,但尾比特的位置信息保持不变,即尾比特不参与交织运算。

3 仿真实现及结果分析

本人利用MATLAB 设计了基于 CCSDS 标准的 Turbo 码编码和译码程序[15],可实现 CCSDS 标准规定的所有码长和码率。信号采用 BPSK 调制,信道中加入高斯白噪声干扰,不考虑信道的衰减特性。

待编码的信息比特由随机产生的 0/1 序列代替,每次仿真对9帧数据进行编译码运算,则每次待编码的信息比特数目至少为1 784 *9=16 056,在这个数量级的信息比特数目下,可以忽略不同随机序列对误码率的影响。

针对可能对误码率有影响的多种参数,分别进行仿真测试,并且在Pe~Eb/N0平面进行了分析。将重点分析采用Log-MAP算法时迭代次数和码率的影响,以及对比采用Log-MAP、Max-Log-MAP、Scale-Max-Log-MAP三种修正算法时的性能。

3.1 迭代次数的影响

采用Log-MAP算法,信息块长度为1 784 bits,码率为1/6;迭代次数分比为1、2、4、8。曲线如图5所示。

图5 Turbo码译码迭代次数对误码率性能的影响

从图5中可以看出,随着迭代次数的增加,误码率性能逐渐变好。指定误码率为10-6来比较性能差异,迭代一次需要大于2.5 dB的信噪比,迭代2次大概需要1.6 dB,迭代4、8次分别需要0.6 dB、0.4 dB。需要注意的是,随着迭代次数的增加,会引起译码延迟并带来更高的译码复杂度,仿真计算时间差异明显。较高的译码复杂度将会带来很小的性能增益,当迭代次数增加达到一个特定的值时就显得不那么有效了。所以在实际的深空通信系统中要折衷考虑,根据需要来选择合适的迭代次数。通常情况下,可以在系统中加入一个终止准则。每次译码后的临时输出会经过一次动态的检测,当满足终止准则时就会停止迭代。这样就可以节省计算空间和时间。

3.2 码率的影响

采用Log-MAP算法,信息块长度为1 784 bits,迭代次数为8;码率分比为1/3、1/4、1/6。曲线如图6所示。

图6 Turbo码译码码率对误码率性能的影响

可以从中看出,随着码率的降低,误码率性能逐渐变好。这是因为,码率越低,编码后的码长就会越长,相应的校验位就会越多,译码性能就会越好。通过误码率为10-6的点来比较性能差异的话,码率为1/6大概需要0.35 dB的信噪比,码率为1/4需要大约0.6 dB、码率为1/3需要大于0.8 dB的信噪比。同时也要注意到,码率降低会使得译码的复杂度增加。所以在一个实际的深空通信的系统设计中,应根据实际需求和目标选择码长或码率。

3.3 译码算法的影响

信息块长度为1 784 bits,迭代次数为8,码率为1/6,曲线如图7所示。

图7 Turbo码不同译码算法对误码性能的影响

考虑了3种算法Log-MAP、Max-Log-MAP、和Scale-Max-Log-Map对误码率性能的影响。通过误码率为10-5的点来比较性能差异,Log-MAP大概需要0.21 dB、Max-Log-MAP大约需要0.73 dB,Scale-Max-Log-Map大约需要0.41 dB。由此,这3种算法的差异是很明显的。

Log-MAP是性能最佳的译码算法,但相比另外2种近似算法它在译码时需要更多的时间。近似算法Max-Log-MAP,虽然提高了计算效率但是精度下降使得性能有些损失。Scale-Max-Log-Map则是二者很好的折中。

4 结束语

由于深空通信的特点与特征,使得信号在传输过程中会面临损耗、性能及质量等各方面的问题,这就必须要不断提高通信系统的基本要求,而优良的信道编码方案成为了一种必然的选择。

本文介绍了Turbo编码和译码的基本原理,结合CCSDS标准中给出的Turbo编译码方案,进行了深空通信系统的仿真实现与测试,并且发现随着迭代次数的增加、码率的降低以及采用适当的译码算法会提升系统的误码率性能,但同时会使得系统的计算复杂度变大,所以通常需要根据实际情况折中考虑。

[1] Berrou C,Glavieux A,Thitimajshima P.Near Shannon Limit Error-correcting Coding and Decoding:Turbo Codes[C]∥in Proc.Int.Conf.Communications,1993:1064-1070.

[2] 张更新,谢智东,沈志强.深空通信的现状与发展[J].数字通信世界,2010(4):82-86.

[3] 张乃通,李晖,张钦宇.深空探测通信技术发展趋势及思考[J].宇航学报,2007,28(4):786-79.

[4] Consultative Committee for Space Data Systems.Recommendations for Space Data System Standards.Telemetry Channel Coding.CCSDS 101.0-B-4.Bluebook[S],1999.

[5] Andrews K S,Divsalar D,Dolinar S,et al.The Development of Turbo and LDPC Codes for Deep-Space Applications[J].Proceedings of the IEEE,2007,95(11):2142-2156.

[6] 刘东华.Turbo码原理与应用技术[M].北京:电子工业出版社,2004.

[7] 张凯.CCSDS标准Turbo码译码器设计及实现[D].北京:北京邮电大学,2013.

[8] 韩超.面向CCSDS标准的深空通信信道编译码算法研究[D].哈尔滨:哈尔滨工业大学,2013.

[9] 张桂华,姬红兵,胡家佺,等.一种实用的Turbo码编译码设计[J].飞行器测控学报,2008,27(3):44-49.

[10] 李旭东,杨亮.Turbo码在深空通信中应用[J].无线电通信技术,2010,36(4):58-60.

[11] Lou Xizhong,Mao Zhigang.Study on the Simplification of Log-MAP Algorithm for Turbo Decoding[J].Acta Aeronautica et Astronautica Sinica,2005,26(5):581-586.

[12] 向良军,刘东华,郑林华.基于CCSDS的Turbo码译码器设计与实现[J].计算机工程,2011(s1):282-286.

[13] Consultative Committee for Space Data Systems.Recommendations for Space Data System Standards.TM Synchronization and Channel Coding.CCSDS 131.0-B-2.BlueBook[S].2011.

[14] 冯战,侯孝民,郑海昕,等.基于CCSDS标准的Turbo码译码性能仿真研究[J].无线电工程,2014(4):7-9.

[15] Berner J B,Andrews K S.Deep Space Network Turbo Decoder Implementation[C]∥ Aerospace Conference,2001,IEEE Proceedings.IEEE,2001,3:1149-1157.

ResearchandSmulationImplementationofTurboCodeBasedonCCSDSStandard

YANG Ze-kun,JIN Dong-li

(Beijing Institute of Tracking and Telecommunications Technology,Beijing 100094,China)

Turbo code is an excellent and efficient channel coding scheme,recommended by CCSDS (Consultative Committee for Space Data System) as one of channel coding in deep space communication.Firstly,this paper introduces the basic principle of coding and decoding in Turbo code.Based on CCSDS standard in deep space communication,the implementation and simulation of Turbo coding and decoding is presented.Some parameters which may influence BER performance are simulated by Matlab software,such as iteration times,code rate,and decoding algorithm.Some analysis based on simulation results are given further.

channel coding;Turbo code;CCSDS

TN911.22

A

1003-3114(2017)06-86-5

10.3969/j.issn.1003-3114.2017.06.21

杨泽坤,晋东立.面向CCSDS标准的Turbo码的研究与仿真实现[J].无线电通信技术,2017,43(6):86-90.

[YANG Zekun,JIN Dongli.Research and Smulation Implementation of Turbo Code Based on CCSDS Standard[J].Radio Communications Technology,2017,43(6):86-90.]

2017-07-18

中国博士后科学基金项目(2016M601286)

杨泽坤(1993—),男,硕士研究生,主要研究方向:信道编码、卫星通信。晋东立(1963—),男,研究员,硕士生导师,主要研究方向:无线通信。

猜你喜欢
译码器码率交织
“新”与“旧”的交织 碰撞出的魅力“夜上海”
一种基于HEVC 和AVC 改进的码率控制算法
基于FPGA的多码率卷积编码器设计与实现
交织冷暖
高速码率兼容DVB-S2的LDPC译码器的FPGA实现
基于状态机的视频码率自适应算法
编码器和译码器综合实现数字显示
跟踪导练(一)5
金融骗局虚实交织
奥运梦与中国梦交织延展