基于FPGA的高斯白噪声发生器设计与实现仿真 源码.doc

上传人:rrsccc 文档编号:9266821 上传时间:2021-02-13 格式:DOC 页数:18 大小:41KB
返回 下载 相关 举报
基于FPGA的高斯白噪声发生器设计与实现仿真 源码.doc_第1页
第1页 / 共18页
基于FPGA的高斯白噪声发生器设计与实现仿真 源码.doc_第2页
第2页 / 共18页
基于FPGA的高斯白噪声发生器设计与实现仿真 源码.doc_第3页
第3页 / 共18页
基于FPGA的高斯白噪声发生器设计与实现仿真 源码.doc_第4页
第4页 / 共18页
基于FPGA的高斯白噪声发生器设计与实现仿真 源码.doc_第5页
第5页 / 共18页
点击查看更多>>
资源描述

《基于FPGA的高斯白噪声发生器设计与实现仿真 源码.doc》由会员分享,可在线阅读,更多相关《基于FPGA的高斯白噪声发生器设计与实现仿真 源码.doc(18页珍藏版)》请在三一文库上搜索。

1、-范文最新推荐- 基于FPGA的高斯白噪声发生器设计与实现仿真+源码 摘要:高斯白噪声发生器对系统的测试和理论研究具有重大意义,本论文介绍了高斯白噪声的特点以及高斯白噪声的产生原理,着重讨论了高斯白噪声的产生算法和各模块的功能实现,最后通过Quartus软件并借助MATLAB对高斯白噪声的性能进行了理论分析和实验仿真。仿真结果表明该设计方案可以得到比较理想的高斯白噪声,且该噪声具有频率可调、幅度可调、重复性好的优点。关键词:高斯白噪声;m序列;FPGA,4289Design and Realization of White Gaussian Noise GeneratorBased on FP

2、GAAbstract: The test and theory research of the system of Gauss white noise generator is of great significance. This paper introduces the characteristics of Gauss white noise and principle of Gauss white noise, it also discusses the Gauss white noise generation algorithm and function realization of

3、each module, finally, the properties of Gauss white noise is analyzed in theory and the experimental simulation through the Quartus software and the MATLAB. The simulation results show that this scheme can get relatively ideal Gauss white noise, and the noise has the advantages of adjustable frequen

4、cy, adjustable amplitude, and good repeatability.Key words: White Gaussian noise; M sequence; FPGA目录摘要1引言11.高斯白噪声的产生原理概述22.高斯白噪声的产生算法及核心模块分析32.1均匀分布随机数的产生32.2 FIR数字滤波算法描述42.3 DDS算法描述52.4数模转换器模块62.5放大器模块62.6低通滤波器模块73.高斯白噪声的性能分析73.1高斯白噪声的谱分析7 1. 高斯白噪声的产生原理概述高斯白噪声是一个平稳随机过程,它的功率谱密度的幅度是一个非零常数,且其概率分布服从高斯分

5、布,均值为零1。近年来,随着高斯白噪声在模拟信道中的应用越来越广泛,对于它的产生算法研究也层出不穷。在此本设计使用一种相对简单的方法,不仅可以产生理想的高斯白噪声,而且还可以得到一些其他的波形,还可以控制一些参数。高斯白噪声发生器原理图如图1所示。图1高斯白噪声发生器原理图首先,在现场可编程门阵列(Field Programmable Gate Array,FPGA)平台上,各个部件使用一个共同的时钟频率(以后称之为高斯白噪声的发生速度,即f)生成高速m序列伪随机码,在FPGA中,m序列伪随机码能够转换成高斯白噪声是通过存储器来实现的,存储器地址和均匀分布的序列相对应,所要产生的高斯白噪声就是

6、相对应的存储器的内容,并对该序列进行m有限冲击响应(Finite Impulse Response,FIR)数字滤波处理,得到带限的高斯白噪声序列,同时在FPGA中实现直接数字综合(Direct Digital Synthesizer,DDS)算法来产生正弦数字序列,将这两个序列合成;其次,将以上合成得到的数字序列通过高速数模转换器(Digital Analog Converter,DAC)转换为模拟噪声信号;最后,通过LC低通滤波器和放大器就转换为模拟带限高斯白噪声信号,得到了所需的噪声信号2。高斯白噪声发生方法中涉及了伪随机码发生算法、数字滤波算法和正弦波发生算法。本文详细论述这几种算法,

7、及其在FPGA上的实现方法,并分析了各种算法在频域上的频谱特性。2. 高斯白噪声的产生算法及核心模块分析2.1 均匀分布随机数的产生2.1.1 m序列发生器的生成原理伪随机噪声的一些统计特性类似于随机噪声,并且它可以重复产生和处理,所以在工程中获得了广泛的应用。m序列常被称为最大的线性反馈移存序列,其实就是一种伪随机序列,它由线性反馈移位寄存器产生,周期是最长的一种伪随机序列。如果设计中选用线性反馈移位寄存器的级数为n级,那么m序列的周期就为( )。对m序列来说,把n级线性反馈移位寄存器的状态看成无符号整数来处理,则状态取值范围为1( ),并且移位寄存器的每种状态在m序列的一个周期内都能得到且

8、仅出现一次,但线性反馈移位寄存器的初始状态应设定为非0值,这点是需要注意的,只要给定初始状态为非0状态,m序列的周期都不变3。移位寄存器的状态值是一系列随机数,它们服从均匀分布,在制作m序列发生器时,可通过查找本原多项式(系数为1表示对应位有反馈线连接,为0表示对应位无反馈线连接)来查看线性反馈移位寄存器的反馈线连接情况。所以本原多项式的项数直接决定了线性反馈移位寄存器反馈线的数目以及模2加法器的数目。设计时可选取项数少的本原多项式,从而降低硬件资源的消耗。为了使伪随机序列有足够长的周期,符合设计需要,本设计采用的本原多项式为 ,即用一个18级线性反馈移位寄存器就可以产生周期为( )的m序列。

9、m序列原理图如图2所示。此原理是由硬件实现的,但在实际设计中往往采用软件实现,通过Quartus软件运用VHDL硬件描述语言直接得到本论文所需要的m序列伪随机码,使设计更为简单可行。 将n(t)的双边功率谱密度S(f)进行傅立叶反变换,得到n(t)的自相关函数为,-∞τ+∞(2)由式(2)可见,高斯白噪声采样信号在任意两个不同时刻都是统计独立的。但是,从m序列的产生过程可知,线性反馈移位寄存器在每个时钟周期内只移出一个最高位,并给最低位反馈一个值。所以,几个相邻状态之间不是完全独立的,这显然对高斯白噪声任意两个不同时刻采样信号之间的独立性是有一定影响的。所以本设

10、计为了减小相关性要进行非相关性操作,通常的方法是在产生高斯序列后再接一个交织器,从而把高斯序列出现的前后顺序打乱,但是有一个缺点就是建交织器要占用FPGA的硬件资源。并且考虑到m序列的周期为( -1),第 个值往后都是不断地重复第1个到第( -1)个状态,所以本设计不采用交织器。只要线性反馈移位寄存器每隔r个同步时钟(其中r= ,i为整数)输出一个状态值(即线性反馈移位寄存器变换r个状态输出一次状态值),那么就能在不改变m序列原有周期的情况下减小相关性,并且硬件资源的消耗也不会增加。但是如果要保证m序列的周期是不变的,一定要是2的幂。2.2 FIR数字滤波算法描述m序列功率谱是固定的,那么要使

11、生成的数字噪声序列带宽可调就需要对m序列进行低通滤波器滤波处理,本文采用的是FIR低通数字滤波器。由Lindeberg定理可知,设有独立随机变量序列ξ,且Dξ= ,Eξ=a,k=1,2.,n, ,则:(3)此定理证明了由大量微小的、独立的随机因素引起,并积累而成的变量必是一个正态随机变量。FIR滤波器的单位脉冲响应是h(n), ,输入函数是x(i),那么输出函数y(i)有卷机和公式可以知为 参考频率源又称为参考时钟源,是用来同步DDS的各组成部分的,它是一个比较稳定的晶体振荡器。相位累加器类似于一个计数器,它是由加法器和寄存器组成的,每当参考时钟脉冲输入时,它的输出就会增加一

12、个步长的相位增量值,这样相位累加器就把频率控制字K的数字变换成相位抽样,从而确定输出合成频率的大小5。相位增量的大小是随着外指令频率控制字的变化而变化的,一旦给定相位增量,也就是确定了其输出频率。当用这样的数据寻址时,通过正弦查表就可以把相位累加器中的抽样数字值转换成近似的正弦波幅度的数字量函数。以上的操作都可在FPGA芯片内部来完成,不需要添加额外的附件。2.4 数模转换器模块数/模转换器A采用了ADI公司的AD9744。在本设计中,FPGA产生级数为20级的m序列,其速率是200MSPS,由于AD9744是14位数模转换器,也就是每次只能对14个伪随机码进行分析和处理,因此,本文采用&ld

13、quo;有限截取源序列”的处理方法,即每次从20个m序列伪随机码流中,按照一定方式截取14个进行操作。具体做法就是:某一个m序列伪随机码,第1次时先对m序列伪随机码流第1位到第14位进行数模转换,第2次时取第2位到第15位进行数模转换,第3次时取第3位到16位,依此规律,直到第7次,取第7位到第20位进行数模转换,那么此时,就可以取遍全部的20位m序列伪随机码流,然后,再通过反馈移位寄存器进行反馈移位操作,对于下一个m序列状态我们就采用相同的方式取码转换。通过查找资料了解到AD9744的参考电平V最大输入值为1.25V,最小输入值为0.1V。2.5 放大器模块在设计中,放大器选用了

14、TI公司的THS3001芯片。THS3001是带宽为420MHz且具有较好的带内平坦度的超高速运算放大器,带宽为5MHz时开路输出阻抗为10 ,经实验验证,设计时应在THS3001输出端串联一个34.8 的电阻,就可以实现与输出端50 的阻抗匹配,进而产生高斯白噪声。此外,根据数据手册,由于数/模转换器A(AD9744)的输出电压最大值为+1.25V,最小值为-1V,因此如果要实现输出电压最大峰峰值为6V的指标,放大器的放大倍数至少应为5。 3.2 高斯白噪声的功率控制分析在测量通信设备或通信系统时,为了测量其在不同信噪比下的可靠性,因此需要一个指标来作为测试环境,这个指标也就是要设定一定的信

15、噪比。当有用信号的功率已知后就需要根据信噪比,来求出噪声的功率。高斯白噪声的均值为零,没有直流分量,那么其功率就只有交流功率,没有直流功率,因此白噪声的平均功率公式为N=2Bn,式中:n为双边功率谱密度,B为等效带宽,一般调整功率的大小是通过改变功率谱密度来实现的,而不改变等效带宽,因为在模拟器中等效带宽是一定的,这就给设计带来了很大方便。设计中通过分析高斯白噪声的自身特点知道它的方差和功率之间是有一定的联系的。通常情况下,有用信号是固定的,设有用信号功率为 ,噪声功率为 ,噪声方差为D。信噪比的分贝表示形式为SNR。又因为直流功率和交流功率的和是信号的功率,而白噪声的均值为零,即没有直流功率

16、,因此它的功率就只有交流功率,而交流功率就是D,即 。信噪比 ,所以方差 。由以上的分析可知,如果要使高斯白噪声的功率得到调整,那么就可以通过调整噪声的方差来实现。在工程设计中高斯分布的方差是一定的,本设计在功率控制单元中,通过改变线性放大器的放大倍数,相当于每个噪声数据都同乘一个系数k,所以经过线性放大器后的高斯白噪声功率为 ,其中 是高斯数据的方差。所以信噪比在给定的的情况下,根据方差的计算公式可以计算出要求的噪声方差,通过调节线性放大器,即改变系数k,就可以得到所需的信噪比。4. 高斯白噪声发生器的FPGA总体设计FPGA是可编程逻辑器件,它借助EDA工具,通过软件编程,重构器件的硬件结

17、构和工作方式,就使得硬件设计具有了与软件设计一样的灵活性和便捷性。本设计采用VHDL硬件描述语言并且选用可编程逻辑器件在Quartus下进行仿真来产生通信系统中的高斯白噪声。 5. 高斯白噪声发生器的仿真结果分析在本设计中,把Altera公司的Quartus作为FPGA的开发环境,其具有强大的功能,友好的界面,并且使用起来便捷。该系列具有最多200K逻辑单元、8Mb存储器,而静态功耗不到0.25W。在Cyclone和Stratix等系列的FPGA中存在着Quartus中的PLL宏模块,因此就可根据需要在Mega Wizar Plug-In Manager工具中设置分频或倍频系数、相移、占空比。

18、下面就是它的开发流程,把Quartus软件打开,单击Tools中的Mega Wizar Plug-In Manager,在I/O菜单下点击ALTPLL,将inclock0设置为45MHz,倍频系数设置为6,取消pllena、areset和locked这三项,其余均用默认值,确定完成后就可以生成PLL图元,在编辑原理图文件中可直接调用8。仿真过程中,本设计需要把MATLAB生成的仿真图转换为mif文件,以便于完成ROM的定制,为Quartus的仿真做准备9。顶层设计,调用文件准备好后,利用Quartus软件对所设计的高斯白噪声信号发生器进行功能仿真,结果如图8所示。然后借助MATLAB软件工具可

19、以得到更为直观的仿真图如图9所示。图8高斯白噪声发生器仿真图图9高斯白噪声MATLAB仿真图形改变高斯白噪声的发生频率,通过Quartus仿真软件我们又可以得到其仿真图如图10所示。图10调节频率后高斯白噪声仿真图调节频率后的MATLAB仿真图如图11所示。图11调节频率后高斯白噪声MATLAB仿真图在FPGA平台上,本设计完成了高斯白噪声发生器的设计,里面有m序列产生单元,FIR数字滤波模块,DDS算法,我们需要FPGA逻辑单元资源的86%,RAM资源的1%,50MHz的时钟,50ppm的稳定度的有源晶振,把EP2C70内部的PLL作为系统全局时钟,采用ADI公司的AD9744进行D/A转换

20、,高采样速率,对模拟信号进行滤波放大,我们就可以得到性能良好的高斯白噪声10。 表1 控制开关的逻辑功能3位开关(由低到高)输出结果1xx无输出000正弦波001方波100噪声信号011锯齿波010三角波6. 结论与展望本设计的核心思想就是利用m序列发生器产生均匀分布的伪随机序列,然后利用滤波、放大,数模转换等对其进行高斯化变换,得到了性能比较好的高斯白噪声信号。系统设计使用硬件描述语言VHDL实现,全数字化处理,可移植性强。另外,该高斯白噪声产生器的设计充分运用了FPGA内部丰富的布线资源,将噪声产生的过程集中在一个芯片上,从而就节约了电路板面积。FPGA器件本身所内嵌有很多模块,比如RAM

21、模块、特殊功能模块,使本设计得到了进一步的优化,其性能有了很大的提高。同时,由于FPGA可以进行在线调试,这样一来就使调试和设计的周期大大缩短了,节约了宝贵的时间。系统设计采用了VHDL硬件描述语言编写,灵活性和通用性比较强,便于进行系统升级。同时该设计操作简单,容易控制,因此可以作为一个整体嵌入到其它工程领域中去,因而移植效果很好。为了能够得到更为理想的高斯白噪声,在今后的高斯白噪声发生器的研究中还需要在很多方面做出改进,以使得该噪声发生器的参数更可控,精度更高,频带调节范围更广,另外,今后在设计时也会进一步考虑产生一些概率较小的高斯随机数,即概率密度分布函数尾部的那一部分,以使得所产生的高斯随机数更加接近于理想的高斯分布,从而满足许多领域仿真的要求。 基于FPGA的高斯白噪声发生器设计与实现仿真+源码(7): 17 / 18

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 社会民生


经营许可证编号:宁ICP备18001539号-1