首页 - 信息 - Matlab生成M序列的伪随机码

Matlab生成M序列的伪随机码

2023-10-10 10:47
-->

最常用的伪随机编码是m序列,它是一种线性反馈移位寄存器序列。其特点是在相同寄存器电平下,输出序列周期最长。线性反馈移位寄存器的工作原理是,给所有寄存器一个初始值,当移位脉冲到来时,输出最后一级寄存器的值,并将第i级寄存器的内容存储在第 i+1 阶段。 ,另外,根据一定的线性运算规则,将各级寄存器输出计算出一个值,并将该值存储到第一级寄存器中。随着移位脉冲的累加,线性反馈移位寄存器的输出可以形成一个序列,称为移位寄存器序列[71]。

图3.5 线性反馈移位寄存器

MATLAB生成M序列伪随机码函数如下:

% 在 MATLAB 命令窗口中输入以下内容:% fbconnection=[0 1 1 0 1 0 0 0 0 0 0 0 0 0 0

% 1];原多项式系数:[d0, d1, d2...di];其中di是本原多项式
% mseq=m_sequence(fbconnection)之前的系数; %MSEQ
%M_Sequence.m函数是生成伪随机序列
%时间:2016_1_13
%编辑by:chaining
function[mseq] = m_sequence(fbConnection)
n=长度(fbconnection);
N=2^n-1;
%寄存器=[zeros(1,n-1) 1];
寄存器=[1 1 0 1 0 0 0 0 1 0 1 1 1 1 0 1]; %移位寄存器的初始状态,[r(i),r(i-1),r(i-2),...r(0)];
mseq(1)=register(n) ;
%m 序列的第一个输出符号
for i=2:N
newregister(1)=mod(sum(fbconnection.*register),2);
对于 j=2 :n,
newregister(j)=register(j-1);
结束;
寄存器=新寄存器;
mseq(i)=寄存器(n); -->