资源简介
212卷积码的编码与译码,并且具有对编码序列随机出错的功能,以及误码率的计算
代码片段和文件信息
function outsignal=decode(signal)
d0=0;m0=[];
d1=0;m1=[];
d2=0;m2=[];
d3=0;m3=[];
s0=[0 0];
s1=[0 1];
s2=[1 0];
s3=[1 1];
%N=1
data=signal(1:2);
d0=path(datas0);
m0=[0];
d1=path(datas3);
m1=[1];
%N=2
yd0=d0;yd1=d1;
ym0=m0;ym1=m1;
data=signal(3:4);
d0=yd0+path(datas0);
m0=[ym00];
d1=yd0+path(datas3);
m1=[ym01];
d2=yd1+path(datas2);
m2=[ym10];
d3=yd1+path(datas1);
m3=[ym11];
%N>=3
for i=5:2:length(signal)
ym0=m0;ym1=m1;ym2=m2;ym3=m3;
yd0=d0;yd1=d1;yd2=d2;yd3=d3;
data=signal(i:(i+1));
%状态0的两个路径比较
if(d0+path(datas0))<(d2+path(datas3))
d0=d0+path(datas0);
m0=[ym00];
else
d0=d2+path(datas3);
m0=[ym20];
end
%状态1的两个路径比较
if(d0+path(datas3))<(d2+path(datas0))
d1=d0+path(datas3);
m1=[ym01];
else
d1=d2+path(datas3);
m1=[ym21];
end
%状态2的两个路径比较
if(d1+path(datas2))<(d3+path(datas1))
d2=d1+path(datas2);
m2=[ym10];
else
d2=d3+path(datas1);
m2=[ym30];
end
%状态3的两个路径比较
if(d1+path(datas1))<(d3+path(datas2))
d3=d1+path(datas1);
m3=[ym11];
else
d3=d3+path(datas2);
m3=[ym31];
end
end
m0m1m2m3
outsignal=m0(1:(length(m0)-2));
end
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 1439 2009-05-13 21:30 212卷积\decode.m
文件 328 2009-05-21 23:04 212卷积\encode.m
文件 538 2009-05-21 22:35 212卷积\main.m
文件 424 2009-05-21 21:51 212卷积\opposite.m
文件 73 2009-05-13 19:58 212卷积\path.m
目录 0 2009-06-17 21:52 212卷积
----------- --------- ---------- ----- ----
2802 6
评论
共有 条评论