首先是演示代码,首先输入输入信号,用m序列加扰(演示里只用16位长度的m序列),再1/3卷积编码,接收端先维特比解码,再解扰,得到原始信号
Demo.m
function demo
input=[1 0 1 1 0 1 0 0 0 1 1];%输入信号
subplot(2,3,1);
drawSig(input);
input_r=scramble(input);%加扰
subplot(2,3,2);
drawSig(input_r);
Y=coder(input_r);%进行卷积编码
subplot(2,3,3);
drawSig(Y);
O=decoder(Y);%维特比解码
subplot(2,3,4);
drawSig(O);
Res=scramble(O);%解扰
subplot(2,3,5);
drawSig(Res);
end
得到图片
mxulie.m
%产生16位m序列
function Y=mxulie()
F(16)=0;
a3=1;
a2=0;
a1=0;
a0=0;
for i=1:16
F(i)=a0;
a0=a1;
a1=a2;
a2=a3;
a3=mod((a3+a0),2);
end
Y=F;
end
cod

这是一个关于通信专业课程设计的博客,主要内容是使用Matlab进行卷积编码和维特比解码的演示。博客提供了输入信号处理的流程,包括使用16位长度的M序列加扰,1/3卷积编码。在接收端,通过维特比解码和解扰步骤,恢复原始信号。博客附带了相关的Matlab代码文件:Demo、mxulie、coder、decoder、dist和scramble。
最低0.47元/天 解锁文章
3039





