ZKX's LAB

反馈移位寄存器生成随机数

2020-07-17知识17

真正意义的随机数生成器存在吗? http:// boallen.com/random-numb ers.html 这里有一个关于linux的/dev/random的介绍 http:// en.wikipedia.org/wiki// dev/random 另一个是windowshttp://www. random.org/ 反馈移位寄存器的反馈移位寄存器的性质 反馈函数f(a1,a2,a3,…an)为n元布尔函数。在时钟脉冲时,如果反馈移位寄存器的状态为si=(ai,….ai+n-1)则ai+n=f(ai,ai+1,.,ai+n-1),(2.1)这个ai+n 又是移位寄存器的输入。在ai+n的驱动下,移位寄存器的各个数据向前推进一位,使状态变为si+1=(ai+1,….ai+n),同时,整个移位寄存器的输出为ai。由此得到的一系列数据:a1,a2,a3,…,an,…。该序列称为满足关系式(2.1)的一个反馈移位寄存器序列。例如,线性反馈移位寄存器设f(a1,a2,a3,…an)=cna1⊕cn-1a2⊕….⊕c2an-1⊕c1an,输出序列{ai}满足an+i=cnai⊕cn-1ai+1⊕….⊕c2an-2+i⊕c1an-1+i,其中i为非负整数。则该序列{ai}称为该反馈移位寄存器序列。对于一个n级反馈移位寄存器来说,最多可以有2n个状态,对于一个线性反馈移位寄存器来说,全“0”状态不会转入其他状态,所以线性移位寄存器的序列的最长周期为2n-1。当n级线性移位寄存器产生的序列{ai}的周期为T=2n-1时,称{ai}为n级m序列。已经证明,n级m序列{ai}具有以下性质:在一个周期内,0,1出现次数分别为2n-1-1次和2n-1次;在一个周期圈内,总游程(是指一个元素连续出现的次数)数为2n-1,对1≤i≤n-2,长度为i的游程有2n-i-1个,且0,1游程各半,高斯白噪声有哪两种表示形式 热噪声和散粒噪声是高斯白噪声 高斯白噪声:如果一个噪声,它的幅度分布服从高斯分布,而它的功率谱密度又是均匀分布的,则称它为高斯白噪声.所谓高斯白噪声中的高斯是指概率分布是正态函数,而白噪声是指它的二阶矩不相关,一阶矩为常数,是指先后信号在时间上的相关性.这是考查一个信号的两个不同方面的问题.短波信道存在多径时延、多普勒频移和扩散、高斯白噪声干扰等复杂现象.为了测试短波通信设备的性能,通常需要进行大量的外场实验.相比之下,信道模拟器能够在实验室环境下进行类似的性能测试,而且测试费用少、可重复性强,可以缩短设备的研制周期.所以自行研制信道模拟器十分必要.信道模拟器可选用比较有代表性的 Watterson 信道模型(即高斯散射增益抽头延迟线模型),其中一个重要环节就是快速产生高斯白噪声序列,便于在添加多普勒扩展和高斯白噪声影响时使用.传统的高斯白噪声发生器是在微处理器和 DSP 软件系统上实现的,其仿真速度比硬件仿真器慢的多.因此,选取 FPGA 硬件平台设计高斯白噪声发生器可以实现全数字化处理,同时测试费用少、可重复性强、实时性好、速度快,能较好地满足实验需求.本文提出了一种基于 FPGA 的高斯白噪声序列的快速产生方案.该方案根据均匀怎么用线性移位寄存器生成m序列 伪随机序列可由线性移位寄2113存器产生。该网5261络由r级串联的双态器4102件,移位脉冲产生器和模2加法器组成1653,下面以4级移位寄存器为例,说明伪随机序列的产生。规定移位寄存器的状态是各级从右至左的顺序排列而成的序列,这样的状态叫正状态或简称状态。反之,称移位寄存器状态是各级从左至右的次序排列而成的序列叫反状态。例如,初始状态是0001,那么an-4=0,an-3=0,an-2=0,an-1=1。如果反馈逻辑为an=an-3⊕an-4,对于初始状态为0001,经过一个时钟节拍后,各级状态自左向右移到下一级,未级输出一位数,与此同时模2加法器输出值加到移位寄存器第一级,从而形成移位寄存器的新状态,下一个时钟节拍到来又继续上述过程。未级输出序列就是伪随机序列。其产生的伪随机序列为an=100110101111000100110101111000…,这是一个周期为15的周期序列。改变反馈逻辑的位置及数量还可以得到更多不同的序列输出。从上述例子可以得到下列结论:1、线性移位寄存器的输出序列是一个周期序列。2、当初始状态是0状态时,线性移位寄存器的输出全0序列。3、级数相同的线性移位寄存器的输.M序列是怎么产生的啊,最好是用移位寄存器产生 伪随机序列可由线性移位寄存器网络产生.该网络由r级串联的双态器件,移位脉冲产生器和模2加法器组成,下面以4级移位寄存器为例,说明伪随机序列的产生.规定移位寄存器的状态是各级从右至左的顺序排列而成的序列,这样的状态叫正状态或简称状态.反之,称移位寄存器状态是各级从左至右的次序排列而成的序列叫反状态.例如,初始状态是0001,那么an-4=0,an-3=0,an-2=0,an-1=1.如果反馈逻辑为an=an-3?an-4,对于初始状态为0001,经过一个时钟节拍后,各级状态自左向右移到下一级,未级输出一位数,与此同时模2加法器输出值加到移位寄存器第一级,从而形成移位寄存器的新状态,下一个时钟节拍到来又继续上述过程.未级输出序e5a48de588b6e79fa5e9819331333363353830列就是伪随机序列.其产生的伪随机序列为an=100110101111000100110101111000…,这是一个周期为15的周期序列.改变反馈逻辑的位置及数量还可以得到更多不同的序列输出.从上述例子可以得到下列结论:1、线性移位寄存器的输出序列是一个周期序列.2、当初始状态是0状态时,线性移位寄存器的输出全0序列.3、级数相同的线性移位寄存器的输出序列和反馈逻辑有关.4、同一个线性移位寄存器的输出序列还和起始状态有关.5、对于级数Quartus II软件中可以调出线性反馈移位寄存器(LFSR)吗?如何使用?(想搞出随机数) 的线性反馈移位寄存器(LFSR)是一种机制,用于产生一个二进制比特序列。该寄存器设置初始化向量一系列的信件中,最常见的是关键要素。该寄存器的行为是一个时钟调整。每个定时,该寄存器单元中的内容被移动到一个正确的位置,仇外或字母的子空间被放置在最左边的单元格内内容的组。A位的输出通常是从整个更新过程。的LFSR的应用包括生成的伪随机数,伪噪声序列,快速数字计算器和灰数序列。软件和硬件实现的LFSR的是相同的。计算机产生随机数的原理是什么?是绝对的随机吗? 问:怎样产生随机数?答:在计算机中并没有一个真正的随机数发生器,但是可以做到使产生的数字重复率很低,这样看起来好象是真正的随机数,实现这一功能的程序叫伪随机数发生器。有关如何产生随机数的理论有许多,如果要详细地讨论,需要厚厚的一本书的篇幅。不管用什么方法实现随机数发生器,都必须给它提供一个名为“种子”的初始值。而且这个值最好是随机的,或者至少这个值是伪随机的。“种子”的值通常是用快速计数寄存器或移位寄存器来生成的。下面讲一讲在C语言里所提供的随机数发生器的用法。现在的C编译器都提供了一个基于ANSI标准的伪随机数发生器函数,用来生成随机数。它们就是rand()和srand()函数。这二个函数的工作过程如下:1)首先给srand()提供一个种子,它是一个unsignedint类型,其取值范围从0~65535;2)然后调用rand(),它会根据提供给srand()的种子值返回一个随机数(在0到32767之间)3)根据需要多次调用rand(),从而不间断地得到新的随机数;4)无论什么时候,都可以给srand()提供一个新的种子,从而进一步“随机化”rand()的输出结果。这个过程看起来很简单,问题是如果你每次调用srand()时都提供相同的种子值,那么,你将会得到相同的随机数序列,这时用verilog写移位寄存器 线性反馈移位寄存器=移位寄存器+组合逻辑反馈●用处:产生伪随机序列、数据压缩、计数器、数据编码解码等等●好处:具有速度和面积优势●特点:★产生伪随机序列的最大长度FPGA如何在一个给定范围内产生一个伪随机数 下面的VHDL描述从PRBS端口输出伪随机序列:ENTITY PRBSGEN ISGENERIC(LENGTH:POSITIVE:=8;TAP1:POSITIVE:=8;TAP2:POSITIVE:=4);PORT(CLK,RESET:IN BIT;PRBS:OUT BIT);END PRBSGEN;ARCHITECTURE EXAMPLE OF PRBSGEN ISSIGNAL PRREG:BIT_VECTOR(LENGTH DOWNTO 0);BEGINPRREG(0=>'1',OTHERS=>'0')WHEN RESET='1'ELSE(PRREG((LENGTH-1)DOWNTO 0)&(PRREG(TAP1)XOR PRREG(TAP2))WHEN CLK'EVENT AND CLK='1'ELSEPRREG;PRBS(LENGTH);END EXAMPLE;labview产生1000 随机数求最大最小值,用移位寄存器 如图,求最大值,最小值同理。

#随机数发生器#高斯白噪声#随机数#移位寄存器#伪随机序列

随机阅读

qrcode
访问手机版