之前关于(3,1,3)卷积码的维特比译码仿真写过一篇文章(基于C语言实现):
卷积码Viterbi译码算法基本原理及C语言实现
文中从概率的角度出发,对卷积码的基于硬判决和软判决维特比译码原理进行了阐述,最后以(3,1,3)系统卷积码为例进行了C语言实现,但该实现仅是针对(3,1,3)这个固定参数的卷积码,不具有一般性,相比MATLAB,C语言晦涩难懂,可读性较差。
本文从更具一般性的角度对Viterbi译码算法进行阐述,并采用MATLAB对(n,k,m)卷积码进行了仿真实现。
维特比(Viterbi)译码核心思想卷积码的维特比译码算法其实质是基于最大似然的算法,就是找一个与接收到的序列最“像”的序列认为是原始发送序列,而把得到该发送序列的输入序列作为译码后的信息序列。
说白了就是去遍历每一个状态,计算每一种可能的序列的概率,这个概率可以用最小汉明距离(最像)和最大相关度量(相关性最强)来衡量,最后选择概率最大的序列作为原始发送序列,同样得到该发送序列的输入序列即为译码输出。
具体译码步骤概括起来就是
加——比——选
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)