由于本方案中SISO模块将时分复用作为两个分量译码器,对应于一次译码迭代的两个半迭代过程。因此图4中的Decoder_num为低时,SISO模块作为第一个分量译码器,进行第一个半迭代运算;Decoder_num为高时,SISO模块作为第二个分量译码器,进行第二个半迭代运算。每次半迭代产生的对数似然比信息作为下次半迭代的先验信息。用两块RAM存储两次半迭代产生的外信息对数似然比。第一个半迭代时,从第二个外信息存储器中读取上一次半迭代产生的外信息对数似然比作为先验信息,计算得到外信息对数似然比后存储到第一个外信息存储器中;第二个半迭代时,从第一个外信息存储器中读取上一次半迭代产生的外信息对数似然比作为先验信息,计算得到外信息对数似然比后存储到第二个外信息存储器中。每帧数据译码的第一次迭代中的第一个半迭代的先验信息设为0。 迭代满足迭代终止准则后,译码器停止迭代,由信息的对数似然比值硬判决输出译码结果。工程中常用的迭代终止准则是设置最大迭代次数。最大迭代次数的设定需要综合考虑误码率性能和系统吞吐量性能。 3 Turbo码编译码器的性能 基于以上提出的Turbo码编译码器的FPGA实现方案,本文在Xilinx公司的Virtex2系列的XC2V500-6fg256 FPGA芯片上,实现了帧长在64~1 024范围之间可变的Turbo编译码器。输入数据4bit量化,内部数据位宽选择12bit,编码器模块和译码器模块在同一块FPGA芯片上实现。综合后时钟最小周期为7.188ns ,对应最高时钟频率为139.121MHz,所占的资源如表2所示。
所占的资源如表2
延迟与吞吐量是衡量译码器性能的两个主要指标。延迟定义为从第一个数据输入到第一个数据输出间的时间差。吞吐量定义为平均每秒能处理的数据量。在帧长为1 024、迭代次数为5的条件下,译码器延时约为1.4ms,吞吐量约为0.72Mbps。
最后,对帧长为128、256、512和1 024四种条件的Turbo码译码器进行了误码率性能测试。测试系统中加入高斯白噪声,数据采用 BPSK调制,译码器5次迭代。测试结果的性能曲线如图5所示。测试结果表明,在信噪比低于4dB的条件下,跳频数传通信系统采用Turbo编译码方案,误码率小于10-5,达到了数据传输可靠性的要求。由于译码器的帧长在64~1 024范围内可变,因此非常适合应用在突发数据通信中的差错控制中。
由于译码器的帧长在64~1 024范围内可变,因此非常适合应用在突发数据通信中的差错控制中
参考文献 1 Berrou C, Glavieux A, Thitimajshima P. Near shannon limit error-correcting codeing and decoding: turbo codes. in Proc.ICC′93, Geneva, Switzerland, May. 1993:1064~1070
2 Berrou C. Near optimum error correcting coding and decoding-turbo-codes. IEEE Transcations On Communications, 1996;44(10)
3 万 蕾. Turbo码及其在第三代移动通信系统中的应用. 北京理工大学博士学位论文,2001
4 Robertson P, Villebrun E, Hoeher P. A comparison of optimal and suboptimal MAP decoding algorithms operation in the log domain. in Proc.ICC’95,Seattle,WA,June 1995:1009~1013
5 刘东华. Turbo码原理与应用技术. 北京:电子工业出版社,2004 6 Worm A, hoeher P, When N. Turbo-decoding without SNR estimation. IEEE Commmun,2000;(4):193~195 |