试验目的:
1. 熟悉m序列,进一步了解m序列原理。 2. 学会m序列的产生。
实验内容:
1. 编写MATLAB程序仿真程序; 2. 对程序做修改,进行仿真;
3. 分析仿真中观察的数据,撰写实验报告。
试验代码
clear clc
G=63;%码长
%使用生成多项式(45)8=(100101)2产生第一个m序列 %(n)8代表八进制
sd1=[0 0 0 0 1];%寄存器初始状态 PN1=[];%第一个序列 for j=1:G
PN1=[PN1 sd1(5)]; if sd1(1)==sd1(3) temp1=0; else temp1=1; end
sd1(1)=sd1(2); sd1(2)=sd1(3); sd1(3)=sd1(4); sd1(4)=sd1(5); sd1(5)=temp1; end
subplot(3,1,1) stem(PN1)
title('使用生成多项式(45)8=(100101)2产生第一个m序列')
%使用生成多项市(67)8=(110111)2产生第二个m序列 sd2=[0 0 0 0 1]%寄存器初始状态 PN2=[]; for j=1:G
PN2=[PN2 sd2(5)]; if sd2(1)==sd2(2) temp1=0; else temp1=1; end
if sd2(4)==temp1 temp2=0; else
temp2=1; end
if sd2(5)==temp2 temp3=0; else temp3=1; end
sd1(1)=sd1(2); sd1(2)=sd1(3); sd1(3)=sd1(4); sd1(4)=sd1(5); sd1(5)=temp3; end
subplot(3,1,2) stem(PN2)
title('使用生成多项式(67)8=(110111)2产生第二个m序列')
%使用生成多项市(75)8=(111101)2产生第三个m序列 sd3=[0 0 0 0 1]%寄存器初始状态 PN3=[]; for j=1:G
PN3=[PN3 sd3(5)]; if sd3(1)==sd3(2) temp1=0; else temp1=1; end
if sd3(3)==temp1 temp2=0; else
temp2=1; end
if sd3(4)==temp2 temp3=0; else temp3=1; end
sd3(1)=sd3(2); sd3(2)=sd3(3); sd3(3)=sd3(4); sd3(4)=sd3(5); sd3(5)=temp3; end
subplot(3,1,3) stem(PN3)
title('使用生成多项式(75)8=(111101)2产生第三个m序列')
因篇幅问题不能全部显示,请点此查看更多更全内容