FPGA:卷积编码及维特比译码仿真 | 您所在的位置:网站首页 › 卷积码与分组码有什么不同 › FPGA:卷积编码及维特比译码仿真 |
FPGA:卷积编码及维特比译码仿真
本篇记录一下在FPGA中完成卷积编码和维特比译码的过程,通过代码解释编码的过程和译码的过程,便于理解,同时也方便移植到其他工程中。 1. 准备工作 卷积编译码IP核—convolutionIP核和viterbiIP核卷积编码原理知识—网上有很多关于原理性的解释卷积编码对照仿真过程—可以对照之前的MATLAB仿真程序便于更好的理解编译码的过程,但是有一点不同,在FPGA仿真代码中利用自然数编码,最后译码回自然数,方便对照正确性。 2. 编码过程首先添加convolutionIP核,可以看到首先有如下的需要配置的参数。 按照上图的设置方式为2,1,7形式的卷积编码器,这个没有什么需要注意的,按照常规设置就可以了。 然后添加viterbiIP核,打开之后可以看到如下的设置参数。 在第一个Viterbi Type栏中可以可以选择Standard,然后约束长度和编码过程的设置一致,回溯深度可以利用公式计算5*(约束长度-1),这个是最小的设置的值,回溯深度至少要大于这个值。 在第二个配置页中,按照如下的参数进行设置,这个可以参考MATLAB仿真。 这个页面配置的传入的bit数据,因为编码设置的是2,1,7所以这个设置为2, 3. 仿真过程整个仿真过程利用0-15的自然数循环,对其进行卷积编码,然后通过viterbi译码还原出原来的自然数。 程序的设置流程思路: 为了方便移植到其他的工程中,同时为了转换数据速率,在自然数信源和卷积编码中间添加了一个fifo同样的操作,在译码结束之后添加了一个fifo,与前一个fifo对称。在利用译码的过程中,有一点注意事项:编码之后的2bit数据输入到viterbi译码的IP核中时,需要在第0位和第8位填充,构成两bit。这个技术手册中有说明。下面给出两个fifo的参数设置,自然数位宽为[0:3],首先是信源和编码之间的fifo。
|
CopyRight 2018-2019 实验室设备网 版权所有 |