matlab中如何产生pn序列

2025-05-18 23:48:35
推荐回答(3个)
回答1:

for k=1:length(x) gfpretty(x(k,:));end

m伪随机序列Matlab源代码
%5阶m序列
% 在MATLAB命令窗口输入以下:
% fbconnection=[0 1 0 0 1];
% mseq="m"_sequence(fbconnection);
% mseq

function mseq="m"_sequence(fbconnection)
n=length(fbconnection);
N=2^n-1;
register=[ones(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

保存为m_sequence.m;

回答2:

gfprimfd %计算N阶序列的本原多项式

gfprimdf %计算N阶序列的默认本原多项式
----------------------

如下程序计算所有8阶的本原多项式

x=gfprimfd(8,'all')
for k=1:length(x) gfpretty(x(k,:));end

回答3:

function [mseq]=m_sequence(fbconnection)
%% get the PN sequence after knowing the characteristic polynomial
n=length(fbconnection);
N=2^n-1;
register=[zeros(1,n-1) 1]; %define the initial state of the shift register
mseq(1)=register(n);
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