⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 m_producer.m

📁 MATLAB程序
💻 M
字号:
function [d,s]=m_producer(le,w)
%%这是私自开发的用于产生m序列的小程序
%%版权所有,不可用于商业用途
%%参数介绍
%输入参数: level: 用于指定m序列的级数
%              w: 所需序列的长度
%输出参数:     d:产生的m序列
%              s:对应的移位寄存器的各个状态
if(nargin==1)
    w=2^le-1;
end
if (le==2)
    a=[1 0];
    e=zeros(1,le);
    for j=1:w;
        e(1)=a(1);e(2)=a(2);
        a(1)=mod((a(1)+a(2)),2);
        a(2)=e(1);
        s(:,j)=[a(1) a(2)];
        d(j)=a(2);
        d(j)=2*d(j)-1;
    end
elseif (le==3)
a=[ 0 1 0];
e=zeros(1,le);
for j=1:w;
    e(1)=a(1);e(2)=a(2),e(3)=a(3);
    a(1)=mod((a(1)+a(3)),2);
    a(2)=e(1);
    a(3)=e(2);
    s(:,j)=[a(1) a(2) a(3)];
    d(j)=a(3);
    d(j)=2*d(j)-1;
end
elseif(le==4)
    a=[0 0 0 1];
    e=zeros(1,le);
    for j=1:w;
        e(1)=a(1);e(2)=a(2);e(3)=a(3);e(4)=a(4);
        a(1)=mod((a(4)+a(3)),2);
        a(2)=e(1);
        a(3)=e(2);
        a(4)=e(3);
        s(:,j)=[a(1) a(2) a(3) a(4)];
        d(j)=a(4);
        d(j)=2*d(j)-1;
    end
elseif(le==5)
    a=[0 0 0 1 0];
    e=zeros(1,le);
    for j=1:w;
        e=a;
        a(1)=mod((a(5)+a(3)),2);
        a(2)=e(1);
        a(3)=e(2);
        a(4)=e(3);
        a(5)=e(4);
        s(:,j)=[a(1) a(2) a(3) a(4) a(5)];
        d(j)=2*a(5)-1;
    end
elseif(le==6)
    a=[0 0 0 0 0 1];
    e=zeros(1,le);
    for j=1:w;
        e=a;
        a(1)=mod((a(6)+a(5)),2);
        a(2)=e(1);
        a(3)=e(2);
        a(4)=e(3);
        a(5)=e(4);
        a(6)=e(5);
        s(:,j)=[a(1) a(2) a(3) a(4) a(5) a(6)];
        d(j)=2*a(6)-1;
    end
elseif(le==7);
    a=[0 0 0 0 0 1 1];
    e=zeros(1,le);
    for j=1:w;
        e=a;
        a(1)=mod((a(7)+a(6)),2);
        a(2)=e(1);
        a(3)=e(2);
        a(4)=e(3);
        a(5)=e(4);
        a(6)=e(5);
        a(7)=e(6);
        s(:,j)=[a(1) a(2) a(3) a(4) a(5) a(6) a(7)];
        d(j)=2*a(7)-1;
    end
end

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -