云题海 - 专业文章范例文档资料分享平台

当前位置:首页 > 维特比解码matlab仿真程序

维特比解码matlab仿真程序

  • 62 次阅读
  • 3 次下载
  • 2025/6/20 14:53:09

Viterbi encoding and uncoding: (based on hamming distance)

Code:

%the hamming distance of x and y function z=d(x,y) z=0;

for i=1:length(x)

if x(i)~=y(i) z=z+1; end end

function x=viterbi_uncoding(a) n=length(a); s1=[0 0 1 1]; s2=[1 0 0 1]; s3=[1 1 0 0]; s4=[0 1 1 0];

D1=0;D2=0;D3=0;D4=0;%hamming distance of four route %NO.1 of input code

D1=d([s1(1),s1(2)],[a(1),a(2)]);x1=[0]; D2=d([s1(3),s1(4)],[a(1),a(2)]);x2=[1]; %NO.2

A=x1;B=x2;C=D1;D=D2;

D1=C+d([s1(1),s1(2)],[a(3),a(4)]);x1=[A,0]; D2=C+d([s1(3),s1(4)],[a(3),a(4)]);x2=[A,1]; D3=D+d([s2(1),s2(2)],[a(3),a(4)]);x3=[B,0]; D4=D+d([s2(3),s2(4)],[a(3),a(4)]);x4=[B,1]; %NO.3-NO.n/2 for i=3:n/2

A=x1;B=x2;C=x3;D=x4; E=D1;F=D2;G=D3;H=D4; %point1

if E+d([s1(1),s1(2)],[a(2*i-1),a(2*i)])

else D1=G+d([s3(1),s3(2)],[a(2*i-1),a(2*i)]); x1=[C,0]; end %point2

if E+d([s1(3),s1(4)],[a(2*i-1),a(2*i)])

else D2=G+d([s3(3),s3(4)],[a(2*i-1),a(2*i)]); x2=[C,1]; end %point3

if F+d([s2(1),s2(2)],[a(2*i-1),a(2*i)])

else D3=H+d([s4(1),s4(2)],[a(2*i-1),a(2*i)]);

x3=[D,0]; end %point4

if F+d([s2(3),s2(4)],[a(2*i-1),a(2*i)])

else D4=H+d([s4(3),s4(4)],[a(2*i-1),a(2*i)]); x4=[D,1]; end end

if D1<=D2&&D1<=D3&&D1<=D4 x=x1; end

if D2<=D1&&D2<=D3&&D2<=D4 x=x2; end

if D3<=D1&&D3<=D2&&D3<=D4 x=x3; end

if D4<=D1&&D4<=D2&&D4<=D3 x=x4; end figure(2);

subplot(2,1,1);stem(a);grid on; title('Input Code');

subplot(2,1,2);stem(x);grid on;

title('Output Code after viterbi uncoding');

function x=viterbi_encoding(s) r1=0; r2=0; x=[];

for i=1:length(s)

x(2*i-1)=mod((s(i)+r1+r2),2); x(2*i)=mod((s(i)+r2),2); r2=r1; r1=s(i); end

figure(1);

subplot(2,1,1);stem(s);grid on; title('Input Code');

subplot(2,1,2);stem(x);grid on;

title('Output Code after viterbi encoding');

%by 张鹏 2010年10月27日 % % clc;

clear all;

s=randint(1,20); %input code

a=viterbi_encoding(s); %viterbi encoding %x=[1 0 1 0 0 0 0 1 1 0 1 0 1 0 1 0 0 1 1 1 0 0 1 1];

%x=[0 -1 zeros(1,length(a)-2)]+a; %interfering

b=viterbi_uncoding(a);

%output code after viterbi uncoding

搜索更多关于: 维特比解码matlab仿真程序 的文档
  • 收藏
  • 违规举报
  • 版权认领
下载文档10.00 元 加入VIP免费下载
推荐下载
本文作者:...

共分享92篇相关文档

文档简介:

Viterbi encoding and uncoding: (based on hamming distance) Code: %the hamming distance of x and y function z=d(x,y) z=0; for i=1:length(x) if x(i)~=y(i) z=z+1; end end function x=viterbi_uncoding(a) n=length(a); s1=[0 0 1 1]; s2=[1 0 0 1]; s3=[1 1 0 0]; s4=[0 1 1 0]; D1=0;D2=0;D3=0;D4=0;%hamming distance of four route

× 游客快捷下载通道(下载后可以自由复制和排版)
单篇付费下载
限时特价:10 元/份 原价:20元
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信:fanwen365 QQ:370150219
Copyright © 云题海 All Rights Reserved. 苏ICP备16052595号-3 网站地图 客服QQ:370150219 邮箱:370150219@qq.com