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