线性反馈移位寄存器---习题

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

输出序列:111-0001-0011-0110?和上诉图片结果不对?

一、线性反馈移位寄存器(LFSR)

线性反馈移位寄存器:是指给定前一状态的输出,将该输出的线性函数再用作输入的移位寄存器。异或运算是最常见的单比特线性函数:对寄存器的某些位进行异或操作后作为输入,再对寄存器中的各比特进行整体移位。

通过对事先选定的种子做运算使得人工生成的伪随机序列的过程,在实际中,随机种子的选择决定了输出的伪随机序列的不同,也就是说随机种子的选择至关重要。

产生伪随机数的方法最常见的是利用一种线性反馈移位寄存器(LFSR),它是由n个D触发器和若干个异或门组成的,如下图:
在这里插入图片描述
其中,gn为反馈系数,取值只能为0或1,取为0时表明不存在该反馈之路,取为1时表明存在该反馈之路;这里的反馈系数决定了产生随机数的算法的不同。用反馈函数表示成y=a0x0+a1x+a2x2…反馈函数为线性的叫线性移位反馈序列,否则叫非线性反馈移位序列。

抽头

图中,抽头序列为[16,14,13,11]
![在这里插入图片描述](https://img-blog.csdnimg.cn/20200126184012341.png
多项式中常数“1”并不代表某一个抽头,它所指的是一个比特位的输入(例如 x0,等效为 1 )。多项式中的指数代表从左至右的抽头位。第一个和最后一个比特一般相应的是输入和输出位。

当且仅当相应的回授多项式是本原多项式时,LFSR才能达到最大长度。这表示以下条件是必须的:

抽头的数量必须为偶数。
抽头之间不能成对出现,必须是互质的。
在这里插入图片描述

应该选取哪些位来进行异或才能保证最长周期为,这是一个很重要的问题。选取的“某些位”构成的序列叫做抽头序列,理论表明,要使LFSR得到最长的周期,这个抽头序列构成的多项式加1必须是一个本原多项式,也就是说这个多项式不可约,比如在这里插入图片描述
**n个D触发器最多可以提供2^n-1个状态(不包括全0的状态),为了保证这些状态没有重复,gn的选择必须满足一定的条件。**下面以n=3,g0=1,g1=1,g2=1)初始状态是由SEED提供的;
  2)**当反馈系数不同时,得到的状态转移图也不同;必须保证gn===1,否则哪来的反馈?**这就保证了最大系数必然存在。
  3)D触发器的个数越多,产生的状态就越多,也就越“随机”;0,g3=1为例,说明LFSR的特性,具有该参数的LFSR结构如下图:
在这里插入图片描述
假设在开始时,D2D1D0=111(seed),那么,当时钟到来时,有:

D2=(D1_OUT=D1)=1;

D1=(D0_OUT=D0)^(D2_OUT=D2)=0;

D0=(D2_OUT=D2)=1;
^(D2_OUT=D2)=0;

即D2D1D0=101;同理,又一个时钟到来时,可得D2D1D0=001. ………………
在这里插入图片描述

画出状态转移图如下:
在这里插入图片描述
从图可以看出,正好有2^3-1=7个状态,不包括全0;

如果您理解了上图,至少可以得到三条结论:

1)初始状态是由SEED提供的;
 2)当反馈系数不同时,得到的状态转移图也不同;必须保证gn===1,否则哪来的反馈?
 3)D触发器的个数越多,产生的状态就越多,也就越“随机”;*
(4)多项式中的指数代表从左至右的抽头位,第一个和最后一个比特一般相应的是输入和输出位。
(5)初始状态相同,输出序列相同(也就是说初始状态决定输出序列)
(6)输出序列看起来是随机序列,但是达到一定位数后会循环
(7)LFSR可以产生的最长的随机序列是2^-1长度(即m序列),其中n表示寄存器数目
(8)异或的数学符号为“⊕”其运算法则为:a⊕b = (¬a ∧ b) ∨ (a ∧¬b),*如果a、b两个值不相同,则异或结果为1。如果a、b两个值相同,异或结果为0。
(9)n个D触发器最多可以提供2^n-1个状态(不包括全0的状态)

参考文献:

【1】https://blog.csdn.net/bleauchat/article/details/91387188

发布了67 篇原创文章 · 获赞 7 · 访问量 4961

猜你喜欢

转载自blog.csdn.net/qq_43042339/article/details/104088157
今日推荐