LFSR 和 m序列

翻译自:sharetechnote: LFSR

LFSR

Linear Feedback Shift Register - 线性反馈移位寄存器
LFSR 是一种移位寄存器电路,其中两个或多个中间步骤的输出线性组合并反馈到输入值,这就是为什么它被称为线性反馈移位寄存器的原因。

该电路具有以下特点:

  • 如果初始状态相同,则最终会得到相同的输出序列(即输出序列是确定的);
  • 输出序列趋向于随机序列(伪随机);
  • 经过一定次数的迭代后,你将得到与初始状态相同的状态值;(最大重复间隔可由( 2 n 2^n 2n - 1)计算,其中n为移位寄存器的数目)
    由于上述特性,LFSR主要用于生成PN序列(伪噪声序列)。
    LFSR 和 m序列_第1张图片
    本电路中每次迭代的状态转换如下表所示,在这个表中,你会发现到上面列出的所有属性。
    LFSR 和 m序列_第2张图片
    在许多出版物中,你会看到这个电路被表示为一个多项式,但是你会发现很难把真实的电路和生成的多项式联系起来,下面的插图将帮助你理解生成的多项式的含义。
    LFSR 和 m序列_第3张图片
    //上图中,原作者可能存在一个错误,应该是1 X 1 X^1 X1, 而不是0 X 1 X^1 X1.


可以使用Matlab通信工具箱实现LFSR,如下所示,这个例子是针对上述电路的。

g = [1 0 0 1 1];
init = [1 1 1 1];
curr = [1 1 1 1];
mask = [0 0 0 1];
NoOfOutBits = 15;
h = commsrc.pn('GenPoly',       g, ...
              'InitialStates', init,   ...
              'CurrentStates', curr,   ...
              'Mask',          mask,   ...
              'NumBitsOut',    NoOfOutBits)

如果使用下列函数生成输出序列:

h.generate ()

您将得到以下输出:
1 1 1 1 0 0 0 1 0 0 1 1 0 1 0
将此结果与上表中的x(i-4)列进行比较。

m 序列

m Sequence (MLS : Maximum Length Sequence)
m序列是一类特殊的LFSR序列,为了更好的理解m序列,首先你需要理解LFSR序列的概念。

与典型的LFSR相比,m序列有什么特别之处?
如果使用LFSR生成一个序列,输出最终会重复它自己,但是在大多数应用程序中,其目的是使用给定数目的移位寄存器(后续用taps表示这些寄存器)生成尽可能长的非重复序列。m-Squence 是一种特殊类型的LFSR,它为每个给定的taps提供了最长的非重复序列
下表显示了各种taps的已知m序列:
LFSR 和 m序列_第4张图片

你可能感兴趣的:(5GNR)