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

📄 m_serial.m

📁 支持4到16bit 的m序列的MATLAB源码。输入寄存器长度M_Len
💻 M
字号:
function Y = M_serial(M_Len)
%  产生伪随机的4~16bit长度的序列
% M_Len为寄存器长度
% Y 为输出的状态寄存器值向量,寄存器初始值随机产生,则Y随机
clc;
M_Len = 4;
switch M_Len
    case 3 
        Genertor = [1,0,1]; % 0 1 3
    case 4 
        Genertor = [0,0,1,1]; % 0 3 4
    case 5
        Genertor = [0,1,0,0,1]; % 0 2 5 
    case 5
        Genertor = [0,1,0,0,1]; % 0 2 5 
     case 6
        Genertor = [1,0,0,0,0,1]; % 0 1 6 
    case 7
        Genertor = [0,0,1,0,0,0,1]; % 0 3 7
    case 8
        Genertor = [0,1,1,1,0,0,0,1]; % 0 2 3 4 8
    case 9
        Genertor = [0,0,0,1,0,0,0,0,1]; % 0 4 9
    case 10 % 1024
        Genertor = [0,0,1,0,0,0,0,0,0,1]; % 0 3 10 
    case 11
        Genertor = [0,1,0,0,0,0,0,0,0,0,1]; % 0 2 11 
    case 12
        Genertor = [1,0,0,1,0,1,0,0,0,0,0,1]; % 0 1 4 6 12 
    case 13
        Genertor = [1,0,1,1,0,0,0,0,0,0,0,0,1]; % 0 1 3 4 13
    case 14  %-----------16384
        Genertor = [1,0,0,0,0,1,0,0,0,1,0,0,0,1]; % 0 1 6 10 14
    case 15
        Genertor = [1,0,0,0,0,0,0,0,0,0,0,0,0,0,1]; % 0 1 15 
    case 16
        Genertor = [1,0,1,0,0,0,0,0,0,0,0,1,0,0,0,1];
    otherwise
        Genertor =[];
end

Mem0 = round(rand(1,M_Len));
while(sum(Mem0)==0)
    Mem0 = round(rand(1,M_Len));
end

% 生成多项式为16 12 3 1 0
Mem = Mem0;
% fprintf('%s\n',num2str(Mem));
M(1)=0;
for k=1:M_Len
    M(1) = M(1) + Mem(k)*2^(M_Len-k);
end 
% plot(0,M,'r.');hold on;
for i=1:2^M_Len-1
    GenFactor = mod( sum(Mem.*Genertor), 2);
    Mem(2:M_Len) = Mem(1:M_Len-1);
    Mem(1)       = GenFactor;%mod(sum(GenFactor),2);
%     fprintf('%s\n',num2str(Mem));
    M(i+1)=0;
    for k=1:M_Len
        M(i+1) = M(i+1) + Mem(k)*2^(M_Len-k);
    end 
%     plot(i,M,'r.');hold on;
end
% plot(M,'r');hold on;plot(M,'b*');grid,axis tight
% bitxor(M(3),0)
% bitxor(M(3),1)
% bitxor(M(3),2)
% bitxor(M(3),3)
% bitxor(M(3),4)
Y=bitand(M,15);%mod(M,11);
% Y(1:10)

⌨️ 快捷键说明

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