一站式电子元器件采购平台

华强商城公众号

一站式电子元器件采购平台

元器件移动商城,随时随地采购

华强商城M站

元器件移动商城,随时随地采购

半导体行业观察第一站!

芯八哥公众号

半导体行业观察第一站!

专注电子产业链,坚持深度原创

华强微电子公众号

专注电子产业链,
坚持深度原创

电子元器件原材料采购信息平台

华强电子网公众号

电子元器件原材料采购
信息平台

如何实现它们以及可用于改进所生成数字的统计特性的技术

来源:analog 发布时间:2023-08-08

摘要: 介绍了线性反馈移位寄存器以及完全描述它们的多项式。应用说明描述了如何实现它们以及可用于改进所生成数字的统计特性的技术。

lfsr(线性反馈移位寄存器)提供了一种在微控制器上快速生成非顺序数字列表的简单方法。生成伪随机数只需要右移操作和异或操作。图1显示了一个5位LFSR。图2显示了用C语言实现的LFSR,图3显示了用8051汇编实现的16位LFSR。

lfsr和多项式

LFSR完全由其多项式指定。例如,每个项都存在的6(th)次多项式表示为方程x(6) + x(5) + x(4) + x(3) + x(2) + x + 1。这种大小的多项式有2((6 - 1))= 32种不同的可能。就像数字一样,有些多项式是素数或原数。我们对原始多项式很感兴趣因为它们会给我们移动时最长的周期。一个n次的最大长度多项式会有2(n) - 1种不同的状态。每次转换后都会转换到一个新的状态。因此,一个6次多项式将有31种不同的状态。1到31之间的每个数字在重复之前都会出现在移位寄存器中。在原始的6(th)次多项式的情况下,只有6个。表1列出了所有原始的6(th)次多项式和它们各自的多项式掩码。多项式掩码是通过取多项式的二进制表示并截断最右边的位来创建的。在实现多项式的代码中使用掩码。它需要n位来实现n(th)次多项式的多项式掩码。

每个原始多项式都有奇数个项,这意味着每个原始多项式的掩码都有偶数个1位。每个原始多项式也定义了第二个原始多项式,它的对偶。对偶可以通过从多项式的次数中减去每一项的指数来找到。例如,给定6(6)次多项式x(6) + x + 1,其对偶是x(6-6) + x(6-1) + x(6-0),等于x(6) + x(5) + 1。在表1中,多项式1与2、3与4、5与6互为对偶。

表2列出了每种不同大小的多项式的周期以及每种大小存在的原语多项式的数量。表3为每个不同大小的多项式列出了一个多项式掩码。它还显示了当LFSR初始化为1时,连续移位后LFSR将保持的前四个值。这个表应该有助于确保实现是正确的。

LFSR的结构

LFSR的值永远不会为零,因为LFSR为零的每次移位都会使其为零。LFSR必须初始化,即播种到一个非零值。当LFSR保持1并且移位一次时,它的值将始终是多项式掩码的值。当寄存器除最高有效位外全为零时,接下来的几次移位将显示高位移位到低位,并填充零。例如,任何具有基本多项式的8位移位寄存器最终将生成序列0x80、0x40、0x20、0x10、8、4、2、1,然后是多项式掩码。

用LFSR生成伪随机数

一般来说,基本的LFSR不能产生很好的随机数。一个更好的数字序列可以通过选择一个更大的LFSR和使用随机数的低位来改进。例如,如果你有一个10位的LFSR并且想要一个8位的数字,你可以取寄存器的底部8位作为你的数字。使用这种方法,在LFSR完成一个周期并重复之前,您将看到每个8位数字四次,零三次。这解决了得到零的问题,但数字仍然没有表现出很好的统计特性。相反,您可以将LFSR的子集用于随机数,以增加数字的排列并改进LFSR输出的随机特性。

在得到随机数之前多次移动LFSR也可以改善其统计特性。将LFSR移动其周期的一个因子将使总周期长度减少该因子。表2列出了各时期的因素。

相对较短的lfsr周期可以通过将两个或多个不同大小的lfsr的值叠加在一起来解决。这些xor lfsr的新周期将是周期的LCM(最小公倍数)。例如,一个基本的4位LFSR和一个基本的6位LFSR的LCM是LCM(15,63),即315。当以这种方式加入lfsr时,请确保只使用lfsr的最小位数;使用更少的量是更好的做法。对于4位和6位的lfsr,不应该使用超过底部4位。在图2中,底部16位来自32位和31位lfsr。注意,XORing两个相同大小的lfsr不会增加周期。

lfsr的不可预测性可以通过在反馈项上增加一点“熵”来增加。在这样做的时候应该小心一些——随着熵位的增加,LFSR有很小的可能会全部归零。如果周期性地增加熵,LFSR的归零会自我修正。这种用反馈项XORing位的方法就是计算循环冗余检查(crc)的方法。

多项式不是生来相等的。有些多项式肯定会比其他的好。表2列出了位大小为31位的可用基本多项式的数量。尝试不同的多项式,直到你找到一个满足你需要的。表3给出的口罩是随机选择的。

用于测试随机数生成器的所有基本统计测试都可以在Donald Knuths, the Art of Computer Programming, Volume 2, Section 3.3中找到。可以使用NIST的统计测试套件进行更广泛的测试。NIST也有一些描述随机数测试的出版物,并参考了其他测试软件。


图1所示 LFSR的简化图


图2 实现LFSR的C代码


图3 8051汇编代码实现一个16位带掩码0D295h的LFSR

表1、所有的六(六)次原始多项式

不可约多项式二进制形式二元掩模面具
1X6 + x + 11000011 b100001 b0 x21
2X6 + x5 + 11100001 b110000 b0 x30
3.X6 + x5 + x2 + x + 11100111 b110011 b0 x33
4X6 + x5 + x4 + x + 11110011 b111001 b0 x39
5X6 + x5 + x3 + x2 + 11101101 b110110 b0 x36
6X6 + x4 + x3 + x + 11011011 b101101 b0 x2d
表2、多项式的信息
学位时期因素不。这个次的原始多项式
3.772
4153、52
531316
6633 3 76
712712718
82553 5 1716
95117348
101023年3 11 3160
112047年23日,89年176
124095年3 3 5 7 13144
138191年8191630
1416383年3,43,127756
1532767年7,31,1511800年
1665535年3 5 17 2572048年
17131071年1310717710年
18262143年3 3 3 7 19 737776年
19524287年52428727594年
20.1048575年3,5,5,11,31,4124000年
212097151年7,7,127, 33784672年
224194303年3,23,89,683120032年
238388607年178481356960年
2416777215年3,3,5,7,13,17,241276480年
2533554431年31, 601, 18011296000年
2667108863年3,2731,81911719900年
27134217727年7,73, 2626574202496年
28268435455年3、5、29、43、113、1274741632年
29536870911年233,1103, 208918407808年
30.1073741823年3,3,7,11,31,151, 33117820000年
312147483647年214748364769273666年
324294967年,293,5,17,257, 65537不可用
表3、用1初始化LFSR后的样本掩码和前四个值输出
学位典型的面具连续换班后LFSR的前四个值
3.0 x50 x50 x70 x60 x3
40 x90 x90 xd0 xf0 xe
50 x1d0 x1d0 * 130 x140 xa
60 x360 x360 x1b0 x3b0 x2b
70 x690 x690 x5d0 x470 x4a
80 xa60 xa60 x530 x8f0 xe1
90 x17c0 x17c0 xbe0 x5f0 x153
100 x32d0 x32d0 x2bb0 x2700 x138
110 x4f20 x4f20 x2790 x5ce0 x2e7
120 xd340 xd340 x69a0 x34d0 xc92
130 x13490 x13490 x1a0 x1e3f0 x1c56
140 x25320 x25320 x12990 x2c7e0 x163f
150 x66990 x66990 x55d50 x4c730 x40a0
160 xd2950 xd2950 xbbdf0 x8f7a0 x47bd
170 x129330 x129330 x1bdaa0 xded50 x14659
180 x2c93e0 x2c93e0 x1649f0 x27b710 x3f486
190 x593ca0 x593ca0 x2c9e50 x4f7380 x27b9c
20.0 xaff950 xaff950 xf805f0 xd3fba0 x69fdd
210 x12b6bc0 x12b6bc0 x95b5e0 x4adaf0 x10e06b
220 x2e652e0 x2e652e0 x1732970 x25fc650 x3c9b1c
230 x5373d60 x5373d60 x29b9eb0 x47af230 x70a447
240 x9ccdae0 x9ccdae0 x4e66d70 xbbfec50 xc132cc
250 x12ba74d0 x12ba74d0 x1be74eb0 x1f49d380 xfa4e9c
260 x36cd5a70 x36cd5a70 x2dabf740 x16d5fba0 xb6afdd
270 x4e5d7930 x4e5d7930 x6973c5a0 x34b9e2d0 x5401885
280 xf5cde950 xf5cde950 x8f2b1df0 xb25867a0 x592c33d
290 x1a4e6ff20 x1a4e6ff20 xd2737f90 x1cddf40e0 xe6efa07
30.0 x29d1e9eb0 x29d1e9eb0 x3d391d1e0 x1e9c8e8f0 x269faeac
310 x7a5bc2e30 x7a5bc2e30 x477623920 x23bb11c90 x6b864a07
320 xb4bcd35c0 xb4bcd35c0 x5a5e69ae0 x2d2f34d70 xa22b4937



声明:本文观点仅代表作者本人,不代表华强商城的观点和立场。如有侵权或者其他问题,请联系本站修改或删除。

社群二维码

关注“华强商城“微信公众号

调查问卷

请问您是:

您希望看到什么内容: