线性反馈移位寄存器(Linear Feedback Shift Register, LFSR)

线性反馈移位寄存器

5G NR的主同步序列(PSS)是一个m序列,m序列是一种特殊的LFSR序列。
LFSR序列就是由LFSR产生的序列,m序列就是由LFSR可以产生的最长序列。
LFSR的概念可以由下面这张图直观的展示出来:
线性反馈移位寄存器(Linear Feedback Shift Register, LFSR)_第1张图片
从中可以看到,线性反馈移位寄存器主要由两种器件组成:作为寄存器的D触发器和作为反馈运算的异或门。
下面这张图用来解释LFSR的名字也是够形象,够清晰了,佩服。
线性反馈移位寄存器(Linear Feedback Shift Register, LFSR)_第2张图片
LFSR有几个特性:

  1. 初始状态相同,输出序列相同(也就是说初始状态决定输出序列)
  2. 输出序列看起来是随机序列,但是达到一定位数后会循环
  3. LFSR可以产生的最长的随机序列是 2 n − 1 2^n-1 2n1长度(即m序列),其中 n n n表示寄存器数目
    由于这些特性,LFSR常被用来生成随机码,在密码学中有重要应用。大名鼎鼎的CRC就可以通过LFSR来产生和校验。在很多文章中,尤其是计算机相关的研究中,人们更多的把LFSR用多项式来表示。

那么LFSR的形式如何确定呢?它跟多项式又如何对应呢?
这次不能用sharetechnote的图了,因为我看了他的图之后越发迷惑。我们来看这张图:
线性反馈移位寄存器(Linear Feedback Shift Register, LFSR)_第3张图片
这是一张完整的LFSR表示图,其中gn称为反馈系数,只能取0或者1。如果gn取0表示这个反馈通路不存在,取1表示这个反馈通路存在。那么,把反馈系数用多项式表示就是
g n X n + g n − 1 X n − 1 + . . . + g 1 X 1 + g 0 g_nX_n+g_{n-1}X_n-1+...+g_1X_1+g_0 gnXn+gn1Xn1+...+g1X1+g0,如果我们令 y ( X n , X n − 1 , . . . , X ) = g n X n + g n − 1 X n − 1 + . . . + g 1 X 1 + g 0 y(X_n,X_{n-1},...,X)=g_nX_n+g_{n-1}X_n-1+...+g_1X_1+g_0 y(Xn,Xn1,...,X)=gnXn+gn1Xn1+...+g1X1+g0这个多项式,那么 y ( X n , X n − 1 , . . . , X ) y(X_n,X_{n-1},...,X) y(Xn,Xn1,...,X)就称为这个LFSR的反馈函数。
如果 y ( X n , X n − 1 , . . . , X ) y(X_n,X_{n-1},...,X) y(Xn,Xn1,...,X)是线性的,即各个反馈系数之间是 + + +的关系,则称为线性反馈,如果反馈系数之间存在乘除等非线性关系,则称为非线性反馈。
上面这种形式的LFSR称为异或门内接LFSR,因为还有一种叫异或门外接LFSR的电路,大家一看就明白了。
线性反馈移位寄存器(Linear Feedback Shift Register, LFSR)_第4张图片
如果我们把输入和输出序列也表示成多项式的形式,那边LFSR所实现的功能,从数学上来看就是多项式除法。因此,它可以用来实现CRC校验码。

参考资料:
http://www.sharetechnote.com/
https://www.cnblogs.com/Dinging006/p/9564274.html
http://blog.sina.com.cn/s/blog_62d9edac01015lsd.html
https://wenku.baidu.com/view/38a4fb1aff00bed5b9f31d7a.html
https://wenku.baidu.com/view/ce578b72f242336c1eb95e84.html?sxts=1556419273272

你可能感兴趣的:(5G,LFSR,线性反馈移位寄存器,m序列,5G,PSS)