新闻中心

EEPW首页>嵌入式系统>设计应用> 基于FPGA的短帧Turbo译码器的实现

基于FPGA的短帧Turbo译码器的实现

作者: 时间:2012-10-31 来源:网络 收藏

3.4 8状态值最小值运算单元

由MAX-LOG-MAP算法可知,在进行前后向递推归一化处理和计算译码软输出时,均需要计算每一时刻8个状态的最小值。为了减小计算延时,采用了8状态值并行比较的结构,与串行的8状态值比较结构相比较,要少4级延时。结构如图4所示。

8状态值最小值运算单元

4 仿真结果

按照以上所分析的简化译码算法、的相关参数和结构,整个译码采用Verilog HDL语言编程,以Xilinx ISE 7.1i、Modelsim SE 6.0为开发环境,选定Virtex4芯片xc4vlx40-12ff668进行设计与。整个译码器占用逻辑资源如表1所示。

整个译码器占用逻辑资源

MAX-LOG-MAP译码算法,帧长为128,迭代4次的情况下,MATLAB浮点算法和定点实现的译码性能比较如图5所示。

MATLAB浮点算法和FPGA定点实现的译码性能比较

由MAX-LOG-MAP算法的MATLAB浮点与定点的性能比较仿真结果可知,采用F(9,3)的定点量化标准,FPGA定点实现译码性能和理论的浮点仿真性能基本相近,并具有较好的译码性能。

综上所述,在短帧情况下,MAX-LOG-MAP算法具有较好的译码性能,相对于MAP,LOG-MAP算法具有最低的硬件实现复杂度,并且码译码延时也较小。所以,在特定的短帧通信系统中,如果采用码作为信道编码方案,MAX-LOG-MAP译码算法是硬件实现的最佳选择。

码常见的几种译码算法中,MAP算法[1][3]具有最优的译码性能。但因其运算过程中有较多的乘法和指数运算,硬件实现很困难。简化的MAP译码算法是LOG-MAP算法和MAX-LOG-MAP算法,它们将大量的乘法和指数运算转化成了加减、比较运算,大幅度降低了译码的复杂度,便于硬件实现。简化算法中,LOG-MAP算法性能最接近MAP算法,MAX-LOG-MAP算法次之,但由于LOG-MAP算法后面的修正项需要一个查找表,增加了存储器的使用。所以,大多数硬件实现时,在满足系统性能要求的情况下,MAX-LOG-MAP算法是硬件实现的首选。通过仿真发现,采用3GPP的编码和交织方案[2],在短帧情况下,MAX-LOG-MAP算法同样具有较好的译码性能。

如图1所示,帧长为128,迭代6次,BER=10-5的数量级时, MAX-LOG-MAP算法的译码性能比MAP算法差大约0.6dB,比LOG-MAP算法差0.2dB左右。所以,本文采用3GPP的交织和(13,15)编码方案,MAX-LOG-MAP译码算法进行短帧Turbo码译码器的FPGA实现与设计。

2.jpg

2 MAX-LOG-MAP算法

为对MAP算法进行简化,通常将运算转换到对数域上进行,避免了MAP算法中的指数运算,同时,乘法运算变成了加法运算,而加法运算用雅可比公式简化成MAX*运算[4]。

将运算转化到正对数域进行运算,则MAX*可等效为:

公式

按照简化公式(3)对MAP译码算法[1][3]的分支转移度量、前向递推项、后向递推项及译码软输出进行简化。

分支转移度量:

公式

为防止迭代过程中数据溢出,对前后向递推项(5)、(6)式进行归一化处理:

公式

公式



关键词:实现TurboFPGA基于

评论


相关推荐

技术专区

关闭