m 序列产生 funcon [mseq]=Mchansheng(input_args)
connecon=[0 1 0 0 1];
mseq=m_sequence(connecon);
new_mseq=mseq;
tem_mseq=nd(new_mseq==0);
new_mseq(tem_mseq)=-1
stem(new_mseq);
tle('5 阶 m 序列的一个周期序列,记为 mseq');
m_sequence . m 代码如下
funcon [mseq] = m_sequence ( connecon);%%函数声明,函数名字 m_sequence,函数输
入变量 connecon,函数输出 mseq
connecon=[0 1 0 0 1];
n=length ( connecon) ;%%得到 connecon 的长度
N=2^n-1 ;%%得到循环次数
register= [zeros(1,n-1) ,1];%%建立大小为 1*n 的矩阵,前 n-1 个元素都为 0,第 n 个元素为 1
mseq(1)=register (n) ; %%让输出的第一个元素为 1
for i=2:N%%i 从 2 开始循环,一直去到 N
newregister (1) =mod (sum ( connecon. *register) ,2) ; %%让 connecon 和 register 中对应
元素相乘,并求和,然后除以 2 得余数赋给 newregister 的第一个元素
for j=2:n,
newregister (j)=register(j-1) ;%%把 register 的前 n-1 个元素赋给 newregister 的第 2-n 个元素,
也就是全 0
end;
register=newregister;%%把 newregister 的值赋给 register
mseq (i) =register (n) ;%%把 register 的第 n 个元素的值赋给 mseq 的第 i 个元素
End
评论0
最新资源