首页 维特比译码

维特比译码

举报
开通vip

维特比译码维特比译码的介绍与仿真实现 维特比译码是将接收到的序列和所有可能的发送序列作比较,选择其中汉明距离最小的序列当作是现在的发送序列的一种算法。译码器从某个状态,例如从状态出发,每次向右延伸一个分支,并与接收数字相应分支进行比较,计算它们之间的距离,然后将计算所得距离加到被延伸路径的累积距离值中。对到达每个状态的各条路径的距离累积值进行比较,保留距离值最小的一条路径,称为幸存路径(当有两条以上取最小值时,可任取其中之一)。这种算法所保留的路径与接收序列之间的似然概率为最大,所以又称为最大似然译码。 所以,维特比译码的...

维特比译码
维特比译码的介绍与仿真实现 维特比译码是将接收到的序列和所有可能的发送序列作比较,选择其中汉明距离最小的序列当作是现在的发送序列的一种算法。译码器从某个状态,例如从状态出发,每次向右延伸一个分支,并与接收数字相应分支进行比较,计算它们之间的距离,然后将计算所得距离加到被延伸路径的累积距离值中。对到达每个状态的各条路径的距离累积值进行比较,保留距离值最小的一条路径,称为幸存路径(当有两条以上取最小值时,可任取其中之一)。这种算法所保留的路径与接收序列之间的似然概率为最大,所以又称为最大似然译码。 所以,维特比译码的过程可以简单的理解为:接收端使用相同的网格图,从同一状态开始猜测发送端可能的编码序列,然后与接收到的码组比较,其中与接收到的码组最近的猜测序列即使为译码序列,也就是码距最小的序列。 设卷积码为(n, k, m) = (3, 1, 2)码,如下图: 那么对应的网格图为上图所示。 由网格图可见,沿路径每一级有4种状态a, b, c和d。每种状态只有两条路径可以到达。故4种状态共有8条到达路径。比较网格图中的这8条路径和接收序列之间的汉明距离。比较到达每个状态的两条路径的汉明距离,将距离小的一条路径保留,也就是幸存路径。这样,就剩下4条路径了。继续考察接收序列中的后继的比特,最后得出总的汉明距离最小的路径,也就是发送序列。 假设现在的发送信息位为1101 编码后的发送序列:111 110 010 100 001 011 000 接收序列:111 010 010 110 001 011 000 (红色为错码) 发送序列的约束长度为N = m + 1 = 3 最后的幸存路径画出的网格图示于下图中,图中粗线路径是距汉明离最小(等于2)的路径。 在上例中卷积码的约束长度为N = 3,需要存储和计算8条路径的参量。由此可见,维特比算法的复杂度随约束长度N按指数形式2N增长。故维特比算法适合约束长度较小(N 10)的编码。 卷积码的维特比译码是根据接收码字序列寻找编码时通过网格图最佳路径的过程,找到最佳路径即完成了译码过程,并可以纠正接收码字中的错误比特。维特比译码算法步骤如下描述: 1) 根据接收码符号R,计算出相应的分支量度值BM(R/ Cj),j = 1 、2; 2) 进入某一状态的2 条分支量度BM (R/ Cj)与其前状态路径量度PM累加求和; 3) 比较到达当前状态的2 条新的路径量度PM的大小,选择最大者作为新的状态路径量度存储起来,并保存与此路径对应的码字; 4) 对所有的256 个状态都实施上述加、比、选(ACS) 运算; 5) 在每一译码时刻,满足延时就从256 条留存路径中,选择路径量度最大的一条路径作为译码数据输出; 进入下一译码时刻,重复以上步骤,直至译码结束。 维特比算法的复杂度随约束长度N按指数形式2N增长。故维特比算法适合约束长度较小(N 10)的编码。 本文对维特比译码进行仿真,随机输入一组数,进行编码后输出,再进行维特比译码,程序如下: clear all temp=[-3 -1 1 3]; N=30; sent1=zeros(1,N+1); addgain=zeros(1,4); addgain1=zeros(1,4); result2=zeros(4,N); result2(:,1)=[-3 -1 1 3]; result1=zeros(4,N); yy0=[-2.4 -0.8 0.8 2.4]; yy=[-0.6 -1.8 -3 -4.2;1 -0.2 -1.4 -2.6;2.6 1.4 0.2 -1;4.2 3 1.8 0.6]; SNR_dB=100; sigma=10^(-SNR_dB/20)*sqrt(5) %***************************************** info=ceil(rand(1,N)*4); sent=temp(info) sent1(1,2:end)=sent(1,1:end); %***************************************** for i=1:N ii=i+1; y(i)=sent1(ii)*(0.8)+sent1(i)*(-0.6); end y; noise=randn(1,N)*sigma; y=y+noise; %***************************************** addgain=(yy0-y(1)).^2; %***************************************** for i=2:1:N for ii=1:4 xx=addgain+(yy(ii,:)-y(i)).^2; [minval,minnum]=min(xx); xxx=minval-addgain(minnum); addgain1(ii)=addgain(minnum)+xxx; result1(ii,:)=result2(minnum,:); result1(ii,i)=temp(ii); end addgain=addgain1; result2=result1; end [minval,minnum]=min(addgain); receive=result2(minnum,:) 仿真结果如下图所示: 可见输入一组序列译码后得到的输出序列与发送的一致。
本文档为【维特比译码】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
该文档来自用户分享,如有侵权行为请发邮件ishare@vip.sina.com联系网站客服,我们会及时删除。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
下载需要: 免费 已有0 人下载
最新资料
资料动态
专题动态
is_721103
暂无简介~
格式:doc
大小:24KB
软件:Word
页数:6
分类:互联网
上传时间:2019-02-21
浏览量:30