推荐星级:
- 1
- 2
- 3
- 4
- 5
基于FPGA的viterbi译码设计及Verilog代码
资料介绍
viterbi译码算法是一种卷积码的解码算法。优点不说了。缺点就是随着约束长度的增加算法的复杂度增加很快。约束长度N为7时要比较的路径就有64条,为8时路径变为128条。 (2<<(N-1))。所以viterbi译码一般应用在约束长度小于10的场合中。
先说编码(举例约束长度为7):编码器7个延迟器的状态(0,1)组成了整个编码器的64个状态。每个状态在编码器输入0或1时,会跳转到另一个之中。比如110100输入1时,变成101001(其实就是移位寄存器)。并且输出也是随之而改变的。
这样解码的过程就是逆过程。算法规定t时刻收到的数据都要进行64次比较,就是64个状态每条路有两条分支(因为输入0或1),同时,跳传到不同的两个状态中去,将两条相应的输出和实际接收到的输出比较,量度值大的抛弃(也就是比较结果相差大的),留下来的就叫做幸存路径,将幸存路径加上上一时刻幸存路径的量度然后保存,这样64条幸存路径就增加了一步。在译码结束的时候,从64条幸存路径中选出一条量度最小的,反推出这条幸存路径(叫做回溯),得出相应的译码输出。
部分文件列表
文件名 | 文件大小 | 修改时间 |
viterbi_decoder/src/BMG.v.bak | 1KB | 2009-11-05 11:59:56 |
viterbi_decoder/src/BMG.v | 1KB | 2009-11-05 13:51:58 |
viterbi_decoder/src/ACS.v.bak | 1KB | 2009-11-05 13:55:02 |
viterbi_decoder/src/ACS.v | 1KB | 2009-11-05 13:55:38 |
viterbi_decoder/src/m_gen.v.bak | 1KB | 2009-11-05 14:19:56 |
viterbi_decoder/src/m_gen.v | 1KB | 2009-11-05 14:20:32 |
viterbi_decoder/src/ACSU.v.bak | 1KB | 2009-11-05 14:58:18 |
viterbi_decoder/src/ACSU.v | 1KB | 2009-11-05 16:12:46 |
viterbi_decoder/src/MLD.v.bak | 3KB | 2009-11-06 09:54:08 |
viterbi_decoder/src/MLD.v | 3KB | 2009-11-06 09:55:18 |
viterbi_decoder/src/conv_code.v.bak | 1KB | 2009-11-06 10:55:16 |
... |
全部评论(0)