📄 mseq64.m
字号:
function a=mseq64(N)
%%%%%%产生M序列%%%%%
%registers=ones(1,12);%将移位寄存器的初值都设置为1
%seq(1)=registers(1);%第一个寄存器的值做为序列的第一个值
%for i=2:(6*N) %产生的m序列长度为20000,其中一个周期为4095个点
% t=xor(xor(registers(1),registers(7)),xor(registers(9),registers(12)));
% for j=1:11
% registers(j)=registers(j+1);
%end;
%registers(12)=t;
%seq(i)=registers(1);
%end;
for i=1:N %将产生的m序列的前400个点转换成星座图
switch 1
case seq(6*(i-1)+6)==0&seq(6*(i-1)+4)==0&seq(6*(i-1)+2)==0
ci(i)=7;
case seq(6*(i-1)+6)==0&seq(6*(i-1)+4)==0&seq(6*(i-1)+2)==1
ci(i)=5;
case seq(6*(i-1)+6)==0&seq(6*(i-1)+4)==1&seq(6*(i-1)+2)==1
ci(i)=3;
case seq(6*(i-1)+6)==0&seq(6*(i-1)+4)==1&seq(6*(i-1)+2)==0
ci(i)=1;
case seq(6*(i-1)+6)==1&seq(6*(i-1)+4)==1&seq(6*(i-1)+2)==0
ci(i)=-1;
case seq(6*(i-1)+6)==1&seq(6*(i-1)+4)==1&seq(6*(i-1)+2)==1
ci(i)=-3;
case seq(6*(i-1)+6)==1&seq(6*(i-1)+4)==0&seq(6*(i-1)+2)==1
ci(i)=-5;
case seq(6*(i-1)+6)==1&seq(6*(i-1)+4)==0&seq(6*(i-1)+2)==0
ci(i)=-7;
end
switch 1
case seq(6*(i-1)+5)==0&seq(6*(i-1)+3)==0&seq(6*(i-1)+1)==0
cq(i)=7;
case seq(6*(i-1)+5)==0&seq(6*(i-1)+3)==0&seq(6*(i-1)+1)==1
cq(i)=5;
case seq(6*(i-1)+5)==0&seq(6*(i-1)+3)==1&seq(6*(i-1)+1)==1
cq(i)=3;
case seq(6*(i-1)+5)==0&seq(6*(i-1)+3)==1&seq(6*(i-1)+1)==0
cq(i)=1;
case seq(6*(i-1)+5)==1&seq(6*(i-1)+3)==1&seq(6*(i-1)+1)==0
cq(i)=-1;
case seq(6*(i-1)+5)==1&seq(6*(i-1)+3)==1&seq(6*(i-1)+1)==1
cq(i)=-3;
case seq(6*(i-1)+5)==1&seq(6*(i-1)+3)==0&seq(6*(i-1)+1)==1
cq(i)=-5;
case seq(6*(i-1)+5)==1&seq(6*(i-1)+3)==0&seq(6*(i-1)+1)==0
cq(i)=-7;
end
end
j=sqrt(-1);
a=[0 0 0 0 0 0];
a=ci+j*cq;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -