新闻中心

EEPW首页>EDA/PCB>设计应用> 基于FPGA的卷积编译码器的设计与实现

基于FPGA的卷积编译码器的设计与实现

作者: 时间:2010-11-22 来源:网络 收藏


4 译码器设计中改进和优化算法
本文采取状态路径和判决比特同时存储,在表示状态信息的比特前加上1位判决比特来表示相应状态的输入支路的译码信息,因此,译码器在回溯时就可直接输出判决比特作为译码器的输出,降低了译码器的判决难度,节省了存储回溯路径所需要的内存,从而降低了译码器结构复杂性。
本设计中译码器在计算所有状态的路径量度的同时进行路径存储,从而大大提高了译码速度。路径量度是指每个状态的2条输入支路和2条输出支路,路径存储指的是状态存储以及相应的译码判决比特存储。该结构的译码器对每一个状态都具有独立的处理单元,彼此互补影响,并行工作,提高了译码速度。对于(2,1,3)码,一个时钟需要进行2x2x2m=32次路径量度计算和2m=8次4比特存储操作。充分发挥了拥有大量LCS和RAM的优势。
在网格图中,随着状态的改变,每个状态的输出支路的路径量度逐渐增加,造成存储资源压力增大,设计中在每次进行路径量度计算时,将该状态的量度值与上次剩余路径量度的最小值做差后进行保存,以达到减小存储器空间的需求。对于编码效率为1/2的码,以上差值最大不超过2m,因此,路径量度的量化宽的为1b(2m)。对于(2,1,3)码,存储路径量度的寄存器位宽为lb(2×3)=3。

5 验证仿真
本设计采用Xilinx公司的ISE 9.2i为开发平台,选用的是Xilinx Virtex 4为开发芯片用于设计和验证所提出的卷积编码和维特比(Veterbi)译码算法。
5.1 卷积编码器
如图6所示,clk为时钟信号,reset为复位信号,din为输入信号,out_1,out_2为编码后得到的并行码字序列。可看出:输入码元为“101010111011 000100011011111111100……”经过编码得到编码结果为“1101000100010010101000101011001101110011101001010101010 10101011”结果正确。

本文引用地址://m.amcfsurvey.com/article/191469.htm

23z.jpg
5.2 Verterbi译码器
Vertrbi译码器仿真波形如图7所示,rev[1:0]为输入译码器的接收序列,clk为时钟信号,rst为复位信号,enable为使能信号,h_out为译码器输出序列。可看出:译码输出码元为“10101011101100010001101111111l100……”。结果正确。

6 结束语
通过对卷积编码原理与维特比译码算法的深入研究,在理解传统实现方法的基础上提出适合存储器和独立运算单元丰富的特点的优化算法,有效地提高了译码器的处理速度,简化了译码器的复杂程度。


上一页 1 2 3 下一页

评论


相关推荐

技术专区

关闭