用MATLAB实现m序列的生成(MATLAB 2021a适用)
1.在MATLAB中新建脚本,命名为mseq.m,输入以下代码:
function mseq = mseq(fbconnection)
n=length(fbconnection);
N=2^n-1;
register=[zeros(1,n-1) 1]; %移位寄存器的初始状态
mseq(1)=register(n); %m序列的第一个输出码元
for i=2:N
newregister(1)=mod(sum(fbconnection.*register),2);
for j=2:n
newregister(j)=register(j-1);
end;
register=newregister;
mseq(i)=register(n);
end
2.输入反馈系数
如7级m序列的反馈系数(203)8转换为二进制,为(10000011)2,此时在命令行中输入:
m = mseq([1 0 0 0 0 0 1 1]);
得到输出:
m =
列 1 至 13
1 0 0 0 0 0 0 0 1 1 1 1