m 序列

原理

m 序列长度为 ,具有强自相关性和低互相关性,具体体现为对极化之后相关运算的峰均比。

m 序列由线性反馈移位寄存器(Linear Feedback Shift Register,LFSR)生成,,取决于 LFSR 的阶数和生成种子(寄存器初始状态)。

  • 阶数

例如阶数为 时,本原多项式,则多项式共有 位,对应 LSFR 个寄存器,

m_serial

阶数为 6 的 LFSR
  • 生成种子

生成种子不能为全 ,否则输出永远是 .

MATLAB 仿真

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
function [pn] = mseq(coe)
len = 2 ^ (length(coe) - 1)-1;
pn = zeros(1, len);

lfsr = randi([0 1], 1, (length(coe) - 1));
% lfsr = [zeros(1, length(coe) - 2) 1];
for i = 1: len
pn(i) = lfsr(end);
lfsr_front = 0;
for j = (length(coe) - 1): -1: 1
lfsr_front = lfsr_front + coe(j + 1) * lfsr(j);
end
lfsr_front = mod(sum(lfsr_front), 2);
lfsr = [lfsr_front lfsr(1: end - 1)];
end
end