m_seq.m

来自「一个matlab程序」· M 代码 · 共 24 行

M
24
字号
function mseq=m_seq(prim_poly);%{函数声明}
fbconnection=de2bi(oct2dec(prim_poly));
%de2bi---转换十进制为二进制
%oct2dec-------8进制转换为十进制
%因此以上语句的作用实际上是将8进制本原多项式直接转换成2进制。
fbconnection=fbconnection(end-1:-1:1);%2进制本原多项式位数顺序颠倒。
%就是从2进制数组的倒数第二位开始,反向生成新的数组。
n=length(fbconnection);%{length(z)表示求出z元素的个数,这个函数表示求出fbconnection的元素个数}
N=2^n-1;
register=ones(1,n);%n级移位寄存器赋初值全“1”,{ones表示赋值全为1}
mseq=zeros(1,N);%{zeros为赋值全为0}
mseq(1)=register(n);
for i=2:N
newregister(1)=mod(sum(fbconnection.*register),2);%
%第一,fbconnection.*register表示两个数组对应元素的相乘,
%第二,sum(a)表示将所乘得到的数组a中的每个元素相加
%第三mod(a,b)就是求的是a除以b的余数。比方说mod(7,3)=1,mod(11,6)=5
for j=2:n
newregister(j)=register(j-1);
end
register=newregister;
mseq(i)=register(n);
end

⌨️ 快捷键说明

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