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

📄 mgen.m

📁 DTTB(中国数字地面电视标准)数字电视均衡仿真分析
💻 M
字号:
function [out] = mgen(g,state,N)

% ----- 函数功能说明: m序列发生器 ----- %

%% 输入参数说明 %%
%           g             : m序列生成多项式;    
%           state         : m序列生成寄存器初始状态;
%           N             : 生成m序列长度;

%% 输出参数说明 %%
%           out           : 输出m序列;

gen=dec2bin(g)-48;                                                              %二进制数转化为对应的数字向量
M=length(gen);
curState=dec2bin(state,M-1)-48;  
for k=1:N
    out(k)=curState(M-1);
    a=rem(sum(gen(2:end).*curState),2);
    curState=[a curState(1:M-2)];
end

% %两段m序列生成代码(参考一)
% m=length(connections); % connections:多项式向量
% L=2^m-1;     %周期长度
% if len==0
%     len=L;
% end
% fan=0;
% for i=1:len
%     seq(i)=registers(m);
%     for j=1:m
%         fan=fan +connections(j)*registers(j);
%         fan=(mod(fan,2));
%     end
%     for t=m:-1:2  %寄存器移位
%         registers(t)=registers(t-1);
%     end
%     registers(1)=fan;
%     fan=0;
% end
% 
% %两段m序列生成代码(参考二)
% coefficients=[1 0 0 0 0 0 0 0 0 1 0 1]; % coefficients:多项式向量
% registers=[1 1 1 1 1 1 1 1 1 1 1]; %初始寄存器内容
% len=length(coefficients);
% L=2^len-1; %所需的移位寄存器的长度
% 
% out(1)=registers(1);
% for i= 2:L
% newregisters(1:len-1) = out(2:len);
% newregisters(len) = mod(sum(coefficients.*registers),2);
% registers=newregisters;
% out(i)=registers(1);
% end

⌨️ 快捷键说明

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