📄 mgen.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 + -