[毕业设计精品]基于Nios II的数字频谱分析仪_第1页
[毕业设计精品]基于Nios II的数字频谱分析仪_第2页
[毕业设计精品]基于Nios II的数字频谱分析仪_第3页
[毕业设计精品]基于Nios II的数字频谱分析仪_第4页
[毕业设计精品]基于Nios II的数字频谱分析仪_第5页
已阅读5页,还剩32页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、本科毕业设计(论文)摘 要频谱分析仪用来分析信号各频率上的信号强度。在信号分析处理中常用频谱分析方法,将信号在频域上进行处理、 分析以及显示。早期频谱分析仪主要由分离元件构成,不仅设计复杂,价格昂贵,体积较大,而且频率分辨率不高。后来以傅立叶变换为基础的现代频谱分析仪的出现,实现在频谱分析的数字化,随着大规模集成电路的发展,特别是dsp 专用数字信号处理器的出现,使数字信号处理的速度得到了大幅度的提高。在数字信号处理中fft算法占有重要的地位,本文提出了用nios ii实现fft的一种设计思想,采用了软件与硬件相结合的方法,使其结构更加的灵活。本文给出了总体实现框图:重点设计实现了fft算法,

2、采用了硬件加速,从而提高了运算速度,降低了运算复杂度。本设计具有频谱的显示及按键控制功能,人机界面友好,操作使用方便的特点。关键词 fft算法快速傅里叶变换;fpga;nios ii;vhdl语言abstractthe spectrum analyzer uses for in analytical signal various frequencies the signal strength. in signal analysis processing commonly used spectral analysis method,carries on processing, the analy

3、sis as well as the demonstration the signal in the frequency range. early time spectrum analyzer mainly by separative element constitution, not only designs complex, the price is expensive, the volume is big, moreover the frequency resolution is not high. afterward take the fourier transformation as

4、 the foundation modern spectrum analyzers appearance, realized in the spectral analysis digitization, along with large scale integrated circuits development, specially the dsp special-purpose digital signal processors appearance, enabled the digital signal processing the speed to have the large scal

5、e enhancement. the fft algorithm held the important status in the digital signal processing, this article proposed ii realized the fft one kind of design concept with nios, this design method simplified the design hardware architecture, enhanced the design flexibility, facilitated the promotion. thi

6、s article gave the overall to realize the diagram: the key design has realized the fft algorithm, has used the hardware acceleration, thus raised the operating speed, reduced the operation order of complexity. this design has the frequency spectrum demonstration and the pressed key control function,

7、 the man-machine contact surface is friendly, operation easy to operate characteristic. key word: fft algorithm fast fournier transformation fpga nios ii vhdl language 目录摘 要iabstractii第1章 绪言111选题意义112 国内外信号发生器的发展与现状。2121国内发展与现状2122国外发展与现状213 前景展望314本章小结3第2章 算法依据421离散傅立叶变换算法42. 2快速傅立叶变换52.2.1 fft算法基本

8、思想62.2.2 按时间抽取基-2fft算法723本章小节9第3章 硬件设计及niosii软核的配置1031 系统硬件电路的设计1032 nios ii 软核的相关配置1333 本章小结15第4章 系统软件的设计1641位运算1642 蝶形运算1943 fft运算2144本章小结21第5章 数据的运算及分析2251旋转因子复数乘法器的相关数据分析2252 fft相关的数值分析及计算2353 本章小结24结论25参考文献26致谢27附录1 28附录2 3132 第1章 绪言11选题意义频谱分析仪对于信号分析来说是不可少的。它是利用频率域对信号进行分析、研究,同时也应用于诸多领域,如通讯发射机以及

9、干扰信号的测量,频谱的监测,器件的特性分析等等,各行各业、各个部门对频谱分析仪应用的侧重点也不尽相同.过去这些算法是通过软件来实现的,缺点就是速度慢,延时大,效率低。后来随着大规模集成电路的发展,出现了 dsp 专用数字信号处理器,使数字信号处理实现了质的飞跃。这种dsp 分两种处理器,一种为通用型,一种是专用型。通用 dsp 的灵活性好,功能强大,但处理速度比不上专用 dsp。 nios ii 系列软核处理器是altera的第二代fpga嵌入式处理器,其性能超过200dmips,在 altera fpga中实现仅需 35美分。特别是,nios ii系列支持使用专用指令。专用指令是用户增加的硬

10、件模块,它增加了算术逻辑单元(alu)。用户能为系统中使用的每个 nios ii 处理器创建多达 256 个专用指令,这使得设计者能够细致地调整系统硬件以满足性能目标。 在 fpga中使用软核处理器(如 nios ii)比硬核的优势在于,硬核实现没有灵活性,通常无法使用最新的技术。随着系统日益先进,而基于 nios ii 处理器的方案是基于hdl源码构建的,能够修改以满足新的系统需求,其优势越来越明显。将处理器实现为hdl的 ip核,开发者能够完全定制 cpu和外设,获得恰好满足需求的处理器。 另外,在 altera提供的nios ii ide里面,可以轻松实现c语言到 hdl语言的转换,在硬

11、件上实现程序的功能,据测试,硬件加速可以提高 50 倍的运算速度。 本设计是基于nios ii的数字频谱分析仪,硬件电路简单,软件功能完善,控制系统可靠,价格低廉。具有一定得使用和参考价值。12 国内外信号发生器的发展与现状。121国内发展与现状安泰信电子有限公司的频谱分析仪共两大系列及at5000和at6000系列主要用于电压、功率、周期、波形、边带和频率的谱波失真,双音交调失真和杂波探测,对遥控器、对讲机、测量发射接收机、无绳电话测量进行分析。可用于有线电视catv及通讯机检测; gsm、cdma, 3g手机检修;电磁兼容测试(emc);信号侦听等功能。还可广泛用应于教学、科研。at503

12、0频谱分析仪能真正看到电信号 (如射频脉冲信号 )用傅利叶级数展开出来的图像 ,教学上更容易理解,科研上更清楚。 at5000系列数字频谱分析仪频率范围1ghz(0.151050mhz)有粗调和细调调节中心频率,数字列键盘和飞棱键外加频率、span、rbw、频标等引出控制键更方便用户的快速测试,本仪器采用7彩色tft液精显示器同步显示各种参数,并携带与pc连接的各种接口更方便数据采集。本仪器携带usb、rs232、lan等外部数据接口,更能体现远程的控制能力。 at6000系列频谱分析仪可测频率范围1ghz(0.151050mhz)有50mhz步进和细调调节中心频率,加上1mhz1ghz扫频宽

13、度选择,组成简易的频域测量。at6011装有跟踪发生器。本仪器适用于产品开发时的先期测试,在交第三方正式测试之前,一组近场探头az530适用于初样机电路板和原样机阶段,对电缆和印制板等处的发射“热点”测试和电磁兼容性水平评估。122国外发展与现状美国安捷伦科技公司的频谱分析仪-psa系列频谱分析仪hpe4440a产品说明与介绍agilente4440a是psa系列现代高性能频谱分析仪中的一种仪器,具有适应2g/3g应用的通用单键功率测量能力和各种测量专用件。psa系列把这些专用件和强大的测量性能相结合,能满足航天/防务、无线通信和其它行业通用和高度专用的信号分析需要。psa系列为频谱分析提供全

14、新的平台,它具有非常先进的总体性能,在精度、动态范围、灵敏度、分辨率和速度方面得到重大改进。agilente4440a是psa系列中的3hz-26ghz型。能提供高性能的频谱分析。13 前景展望频谱分析仪是对无线电信号进行测量的必备手段,是从事电子产品研发、生产、检验的常用工具。因此,应用十分广泛,被称为工程师的射频万用表。(1)、传统频谱分析仪传统的频谱分析仪的前端电路是一定带宽内可调谐的接收机,输入信号经变频器变频后由低通滤器输出,滤波输出作为垂直分量,频率作为水平分量,在示波器屏幕上绘出坐标图,就是输入信号的频谱图。传统的频谱分析仪也有明显的缺点,它只能测量频率的幅度,缺少相位信息,因此

15、属于标量仪器而不是矢量仪器。(2)、现代频谱分析仪基于快速傅里叶变换(fft)的现代频谱分析仪,通过傅里叶运算将被测信号分解成分立的频率分量,达到与传统频谱分析仪同样的结果,。这种新型的频谱分析仪采用数字方法直接由模拟/数字转换器(adc)对输入信号取样,再经fft处理后获得频谱分布图。在这种频谱分析仪中,为获得良好的仪器线性度和高分辨率,对信号进行数据采集时adc的取样率最少等于输入信号最高频率的两倍。(3)、随着超大规模集成电路工艺技术的发展,以超深亚微米工艺和ip核复用技术为支撑的系统芯片技术(soc)是国际超大规模集成电路发展的趋势和二十一世纪集成电路技术的主流。14本章小结在本章节中

16、主要介绍了频谱分析仪的用途,现状及发展趋势及其实现方法,通过本章的介绍,可对频谱分析仪有大致的了解。第2章 算法依据 离散傅里叶变换不仅具有明确的物理意义,相对于dtft他更便于用计算机处理。但是,直至上个世纪六十年代,由于数字计算机的处理速度较低以及离散傅里叶变换的计算量较大,离散傅里叶变换长期得不到真正的应用,快速离散傅里叶变换算法的提出,才得以显现出离散傅里叶变换的强大功能,并被广泛地应用于各种数字信号处理系统中。近年来,计算机的处理速率有了惊人的发展,同时在数字信号处理领域出现了许多新的方法,但在许多应用中始终无法替代离散傅里叶变换及其快速算法。 21离散傅立叶变换算法根据信号的连续性

17、、离散性、周期性、非周期性,傅立叶变换可以分为四种不同的形式即连续时间非周期信号的傅立叶变换、连续时间周期信号的傅立叶变换、离散时间非周期信号的傅立叶变换、离散时间周期信号。四种傅立叶变换对前三种由于至少在时域或频域是离散的,都不适于在计算机上运行。然而、现实世界中的声音图像等各种信号大都为模拟信号,要用计算机对这些信号进行数字信号处理,这些信号必须通过采样量化编码变成有限长的数字信号序列。对于有限长序列,可以得出另外一种傅立叶表示,称为离散傅立叶变换(dft)。离散傅立叶变换本身是一个序列,而不是一个连续变量的函数,它相应于对信号的傅立叶变换进行频率的等间隔取样的样本。因为存在着计算dft的

18、高效算法,作为序列的傅立叶表示,dft除了在理论上十分重要外,在实现各种数字信号处理算法中还起着核心作用。离散傅里叶变换描述分析有限长序列,其本质是建立了以时间为自变量的信号与以频率为自变量的频谱函数之间的变换关系,换言之,离散傅里叶变换定义了时域与频域之间的一种变换或者说是映射。对于dft时间和频率变量都取离散值。下面讨论一下有限长序列的离散傅立叶变换。对于一个长度为n的有限长序列x(n),亦即只在n=0到(n-1)个点上为非零值,其余皆为零,我们可以把它看成周期为n的周期序列中的一个周期.即当, 当为其它值, 。 其中 (2-1)从而有限长序列的傅立叶变换定义为正变换: (2-2)反变换:

19、 (2-3)其中, 由此可见,离散傅立叶变换开辟了频域离散化的道路,使数字信号处理也可以在频域上采用数字运算方法进行,它可以作为一种数学工具来描述离散信号的时域和频域表示的关系,大大增加了数字信号处理的灵活性,特别是它的多种快速算法,使信号的实时处理和设备的简化得以实现,所以离散傅立叶变换不仅在理论上有重要意义,而且在各种数字信号处理中起着核心的作用。2.2快速傅立叶变换对于式(2.1)dft的直接计算法。x(n)若为复数的话,则计算dft每一个值就需要n次复数乘法和(n-1)次复数加法。因此计算全部的n个值总共需要次复数乘法和n(n-1)次复数加法。而每一个复数乘法需要4次实数乘法和2次实数

20、加法。所以,对于每一个k值,直接计算x(k)就需要4次实数乘法和2n(2n-1)次实数加法。除了这些运算量外,通用计算机或专用硬件来做dft数字计算还需要存储和读取个复数输入序列值x(n)以及复系数值的设备。由于计算的总次数以及所需的时间大致上正比于,显然当值很大时直接计算dft所需要的算术运算的次数就非常大。可见,离散傅里叶变换算法实现了频域离散化,在数字信号处理中起着极其重要的作用,它可以直接用来分析信号的频谱、计算滤波器频率响应、以及实现信号通过线性系统的卷积运算。但对于n点dft运算总共需要4次实数乘法和2n(2n-1)次实数加法,这样庞大的运算量使得dft的实际应用特别是实时处理难以

21、实现,直到1965年库利和图基首次提出了计算dft的一种快速算法,人们开始认识到dft运算的一些内在规律,发展和完善了一套高效的运算方法,dft的运算在实际中才得到广泛的应用。继cooleytukey算法以后,sandetukey等快速算法相继出现,很快形成了一套高效运算方法,这就是现在的通用快速傅里叶变换,简称为fft。这种方法使复数乘法的次数从次减少到了次。如n=1024时运算量从1048576次减少到5120次,运算效率提高了204.8倍,为dft乃至数字信号处理技术的实际应用特别是实时处理创造了良好的条件,大大地推动了数字信号处理技术的发展。所以实际工程中用到的都是dft的快速算法:快

22、速傅里叶变换(fft)。2.2.1 fft算法基本思想fft算法的基本思想:可以将一个长度为n的序列的离散傅里叶变换逐次分解为较短的离散傅里叶变换来计算,这些短序列的dft可重新组合成原序列的dft,而总的运算次数却比直接的dft运算少得多,从而达到提高速度的目的。快速傅立叶变换就是利用的特性,逐步地将n点序列分解成较短的序列,计算短序列的dft,然后组合成原序列的dft,使运算量显著减少。这种分解基本上可分为两类,一类是将时间序列x(n)进行逐次分解,称为按时间抽取算法(decimation in time);另一类将傅立叶变换序列x(k)进行分解,称为按频率抽取算法(decimation

23、in frenquency)。本文主要介绍t按时间抽取基-2fft算法。2.2.2 按时间抽取基-2fft算法我们已经知道fft算法主要是利用的性质,通过把序列逐渐分解为短序列实现运算量的减少。的以下三种性质在fft运算中得到了应用:性质1:的周期性 性质2:的对称性 性质3:的可约性 ,由于目前fft比较普遍使用的算法还是基二算法,本节将讨论基二的按时间抽取算法。基二算法中,序列x(n)的长度n为2的整数次幂,即n=,其中m为正整数。最初通过将x(n)分解为奇数项序列和偶数项序列的形式使fft运算分为两组。设: (2.4)设为的dft,为的dft,利用的性质可得x(n)的dft运算为: (2

24、-5)由此可见,一个n点dft分解为两个n/2点的dft,从而实现了运算量的减少,再经过逐次分解最终分解为2点的dft,实现了fft运算。fft运算的核心是蝶形运算。通过顺序计算全部蝶形实现fft算法的实现。下面给出时的按时间抽取fft流图。图2.1 n=8的时间抽取fft算法流图对于序列的长度的fft,共有m级蝶形,每级由n/2个蝶形运算组成,每个蝶形包括一次复乘、二次复加,则m级运算的运算量为复数乘法: 复数加法:由此可见,fft算法与直接dft算法相比运算量大为减少,如n=1024时,dft所需的复数乘法运算次数为:=1048576次,而fft所需的复数乘法运算次数仅为次。可见时dft算

25、法的运算量是fft算法的运算量的倍。从而可以看出fft算法的优越性,且当点数n越大越能突出fft算法的优越性。23本章小节 本章从理论上结fft进行分析介绍,主要介绍了fft相对于dft的优越性,fft运算提高了运算速度,从理论上指出其提高速度的原理。第3章 硬件设计及niosii软核的配置由于系统采用的是altera公司niosii软核处理器,该处理器具有完全可定制特性、高性能、较低成本、易用性、适应性等优势。使用niosii处理器,将不会局限于预先制造处理器技术,而是根据用户标准定制处理器,按照需要选择合适外设、存储器和接口。此外,还可以轻松集成用户专有功能,使设计具有独特竞争优势。nio

26、sii处理器软件开发是建立在ansl c基础上。niosii ide是nios系列嵌入式处理器主要软件开发工具。用户可以在niosii ide中完成所有软件开发任务,如编辑、编译、下载、调试和闪存编程。niosii嵌入式系统一个重要问题就是软件代码量大小,这关系到存放代码存储器件容量大小,因此控制和减小程序代码量是降低系统成本重要方法,必须首先从处理器启动顺序开始研究。系统相关硬件方面的设计主要包括了硬件平台的搭建及niosii软核与软核相关的外设配置。31系统硬件电路的设计系统的硬件主要包括了用于处理和控制运算的主要芯片fpga;用于进行数据存储及程序存储的存储单元sdrom和nor fla

27、sh;ad转换电路用于模数转换;前置滤波电路用于抗混叠滤波;频谱显示模块lcd电路;控制模块键盘电路组成。各个部分都能够通过nios ii处是器有机的结合在一起,例如存储单元sdrom和nor flash,在nios ii中已经为其制定好了控制模块,可以通过quartus ii 对其进行相关的设计即可使用,同样也可以定制一个adc控制器将其封装成nios ii的自定义ip,通过avalon总线进行调用,也可以通过i/o口直接对adc805控制。系统的总体框图如图3.1所示。niosii处理器sdramnorflash抗混叠滤波器adc转换器lcd频谱显示信号输入键盘控制图3.1系统总体框图1、

28、niosii处理器硬件平台在本系统中niosii处理器的构建采用的是altera公司的cyclone ii系列的fpga ep2c8,ep2c8具有20万逻辑门完全可以构成系统所须要的nios ii软核。sdram采用的是hy57v641620芯片,该芯片具有64m的存储容量,flash采用的是28f640芯片该芯片具有8m的存储容量。完全满足系统所须的程序及数据存储。2、lcd液晶显示电路lcd液晶显示主要用于人机交换及频谱的显示,在本系统中lcd显示器采用的是128*64点阵液晶显示器。支持三种接口方式,我们采用是并行时序方式,接口简单,使用方便。对于lcd而言,需要清楚的了解驱动控制ic

29、的显存与lcd上的对应关系,lcd的显存中存在8(page)*8+1行,即65行,s0-s131,即132列,而液晶叧有64*128个点。因此显存上的一些数据是不能显示的。途过实验测试得知,最后一行(page8中的d0)和最后三列(adc为正常时,s129、s130、s131;adc为反向时,s0、s1、s2)是不能显示的,而显存上其他数据不lcd上的点一一对应。lcd与fpga的连接图如图3.3所示。图3.3 lcd12864电路3、adc转换器的选择系统中adc转换器用的ti公司的12位ad转换器ads805,具有20mhz的动态范围,其引脚兼容ads804与ads803。ads805的内

30、部框图如图3.2所示。图3.2 ads805的内部结构图抗混叠滤波及adc转换电路见附录。32 nios ii 软核的相关配置1、cpu的构建用鼠标点击左侧边框的红圈处nios ii processor,如下图示 点击后,将出现下图,返一步我们来选择软核的类型。这里给我们提供了三种类型,nios ii/e占用资源最少600-800les,功能也最简单,速度最慢。nios ii/s占资源比前者多一些,功能也多了,速度也快一些nios ii/f占资源最多,功能也最多,速度就快。在这里,由于fft须要进行快速的运算,因此选择nios ii/f,功能和速度都可以得到满足。下面的reset vector

31、是复位后启动时的memory类型和偏移量, exception vector是异常情况时的memory类型和偏移量。现在还不能配置,需要sdram和flash设置好以后才能修改这里。 2、调试接口的配置在系统测试和调试方面,需要nios ii处理器能够向电脑发送数据,方便用户验证测试,和程序的调试,故在选择jtag时需要更高级别的调试功能。 3、存储器的配置系统板为了节省i/o引脚,将flash和sdram的数据线和地址线复用了,因此在配置软核时也加入一个三态总线桥,实现数据正确读取。 4、lcd12864的配置lcd12864对应的3根控制线与8根数据通过 配制gpio引脚来实现对lcd的读

32、写控制,根据lcd的读写时序的对其各个控制及数据引脚进行方向设置。其控制引脚的配置如下图所示。为了对信号的正确稳定地采集,必须再加上一个缓冲存储器。fifo是一种先进先出的存储器,亦可以在信号采集和信号处理之间实现速度匹配。本系统用vhdl语言设计了一个可控分频器,用来当fifo的写时钟,从而控制adc的采样频率。33 本章小结 本章从硬件的选型,到原理图进行了祥细的说明,同时对nios ii软核的配置进行了介绍,实现整体硬件电路平台的搭建,后来软件程序的设计提供了硬件基础。第4章 系统软件的设计系统的核心是fft变换,而fft变换的的数据来源于ads805模数转换的结果,系统通过对adc的控

33、制来实验采样频率的控制。通过按键实现对整个系统的控制作用,通过点阵液晶lcd12864来显示频谱及功率等信息。系统的整体流程图如图4.1所示。开始初始化按键中断采样频率控制取数fft变换数据变换lcd频谱显示yn图4.1 整体流程图41位运算由于输入序列按时间序位的奇偶抽取,故输入序列是混序的,为此需要先进行混序处理。1.原位运算从fft的流图可以看出,蝶形结两个输入节点只参与本蝶形运算单元的运算,输出也是两个节点,并且计算完后两个输入节点就不再起作用。由于这一特点,我们在计算机编程时可以将蝶形单元的输出仍放在输入数组中,这一特点称为“原位运算”。利用这一特点编程可节省存储空间,只用n个复数存

34、储单元。为满足原位运算,输入或输出必有一个是倒位序。2.位倒序关于fft运算的混序与顺序处理(位倒序处理) 由于输入序列按时间序位的奇偶抽取,故输入序列是混序的,为此需要先进行混序处理。混序规律: x(n)按n位置进行码位(二进制)倒置规律输入,而非自然排序,即得到混序排列。所以称为位倒序处理。位倒序实现:(1)dsp实现采用位倒序寻址(2)通用计算机实现可以有两个方法:一是严格按照位倒序含义进行;二是倒进位的加n/2。倒位序 倒位序自然序00000000100410010102201011063011001141001015510101136110表4.1自然序与倒位序对应表位倒序主要是通过

35、位运算实现的,首先根据所提供的数值求出所要进行fft运算的最大位数n,并存储n个二进制数用于位倒序运算。再将给定的数进行位倒序,其过程:首先进行循环最值为n判断,为真则用按位与运算判断相应位是否为1,若为1则进行倒序。位倒序的程序流程图4.3所示。求fft运算的最大位数n存储n个二进制数判断出相应位是否为将二进制数组中的数据倒序并累加记录取数nyny图4.3 位倒序的程序流程位倒序的程序如下: while(bit_temp&samplenumber)!=samplenumber) /计算fft运算的最大位数 bit_temp=0x0001; bit_temp=bit_tempbit_max;

36、bit_mapbit_max=bit_temp; /存储二进制相应位数 bit_max+; for(i=0;isamplenumber;i+) bit_sum=0; /倒序后的数据 for(k=0;kbit_max;k+) if(i&bit_mapk)!=0) /二进制相应位是否为 1 bit_sum+=bit_mapbit_max-k-2; /计算倒位序 databit_sum=data_tempi;42 蝶形运算蝶形运算由一个复数乘法器,和两个复数加法器构成构成蝶形运算单元的核心是复数乘法器,在本系统中复数乘法器是通过dsp builder制定的。利用dsp builder生成复数乘法模块

37、使用dsp builder在fpga上进行dsp模块的设计,可实现高速dsp处理。但是,在实际应用中,除了要求dsp高速外,由于dsp处理的算法往往比较复 杂,如果单纯使用dsp builder来实现纯硬件的dsp模块,会耗费过多的硬件资源,因此有时也无法完成许多算法复杂的模型。而nios则是一个建 立在fpga上的嵌入式微处理器软核,它有一个重要的特性是具有自定制指令。在dsp算法中会反复出现一些运算(如复数乘法器、整数乘法器、浮点乘法器 等),而在通用的cpu中都没有专门用于复数乘法计算和浮点乘法计算的相关指令。在系统设计中,利用ma-tlab、dsp builder或者vhdl设计并生成

38、复数乘法器、整数乘法器、浮点乘法器等硬件模块。在quartus环境中对上述文件做一些修正后,在sopc builder窗口中将它们定制为相应的指令,并可设定或修改执行该指令的时钟周期。在进行dsp算法运算时,可通过汇编或c语言,甚至c+语言来运用 这些自定义指令进行嵌入式程序设计。根据复数运算,设2个复数为a+bj和c+dj,则乘法表述为:在matlabsimulink下建立如图4.3所示的复数乘法模型,图中的dataal、databl和resultl是dsp builder中sopclibrary中custom ins-truction中的模块,分别对应nios内部alu的2个输入信号dat

39、aa和datab,以及alu的输出信号result。 datareal、dataimag、datbreal、da-thlmag是一个总线位转换模块;busconeatenation是总线复合模块。 dataa tocomplex和datab to complex是一个实数转复数的模块,com-plex product是复数乘法模块,real result是复数解出实部和虚部的模块。图4.4 复数乘法模型该模型完成了1个16位的复数乘法。利用nios32的32位数据位宽,把32位分成2部分,分别放入复数的实部和虚部,实部、虚部的位宽 都是16位,正好构成1个32位数,两个16位复数进行运算后,把

40、结果设为16位复数,也用32位表示。模块的核心部件为complex product复数乘法模块,它的功能是完成在这个设计中,复数乘法的运算。该模型中所有的模块都由dsp builder 元件库中调用,使用十分方便,并且能够生成vhdl代码。设此模型的文件名为co-mplexmdl。并 点击signalcompiler,对complexmdl进行转换,在转换窗口中分别作如下选择:器件选择cyclone;综合器选择quart- us;“sopc info”的generate sopc builder ptf file项要选择打勾。分别单击转换按钮1-convert和综合按钮2-synthesis即

41、可将其转换成标准的vhdl语言。该模块完成的功能是:复数乘法器生成后通过quartus ii 将其制成复数乘法器指令。以供nios ii软核调用进行fft运算。43 fft运算fft运算的程序流程图如图4.5所示。图4.5 fft运算的程序流程图44本章小结 本章主要介绍了fft的实现方法,用编程语言c语言的方法阐述了fft的原理,并祥细介绍了fft的核心蝶形运算及复数乘法器的dsp bulder的实现方法。第5章 数据的运算及分析51旋转因子复数乘法器的相关数据分析实时信号处理硬件的实现通常需要高效的乘法器单元,因此乘法器的设计在数字信号处理中占有很重要的地位。蝶形运算由一个复数加法器、一个

42、复数减法器和一个旋转因子的复数乘法器组成,可见在fft中设计一个高效的乘法器可以提高fft的计算速度,提高运算效率,所以本文采用的乘法器算法是由dsp bulder设计生成vhdl语言实现旋转因子复数乘法器。将所得到的vhdl语言在quartus ii 7.2 中进行仿真给出激励,可得到仿真波形。输入值为,旋转因子时的仿真波形如下图所示:图5.1旋转因子复数乘法器仿真图从理论上所计算的结果应为:图5.1,在waveform editor中加入输入激励后得到的仿真波形,其中clk是时钟信号,x_in和y_in分别是输入数据的实部与虚部,这里输入为,所以所加输入激励为x_in=50、 y_in=4

43、5。c_in、cas_in、css_in仿真得到的输出分别为r_out=16、 i_out=28,这和前面理论上算得的输出结果是完全相符的,从而证明了dsp bulder设计的旋转因子复数乘法器的正确性。fft变换可以将时域信号变成频域信号,便于分析信号特征,而且,fft结果可以将频谱提取出来。采样得到的数字信号就可以做fft变换,n个采样点,经过fft后,就可以得到n个点的fft结果。52 fft相关的数值分析及计算假设采样频率为fs,信号频率f,采样点数为n。那么fft之后结果就是一个为n点的复数。每一个点就对应着一个频率点。这个点的模值,就是该频率值下的幅度特性。具体跟原始信号的幅度有什

44、么关系呢?假设原始信号的峰值为a,那么fft结果的每个点(除了第一个点直流分量之外)的模值就是a的n/2倍。而第一个点就是直流分量,它的模值就是直流分量的n倍。而每个点的相位呢,就是在该频率下的信号的相位。第一个点表示直流分量(即0hz),而最后一个点n的再下一个(实际上这个点是不存在的,这里是假设的第n+1个点,也可以看做是将第一个点分做两半分,另一半移到最后)则表示采样频率fs,这中间被n-1个点平均分成n等份,每个点的频率依次增加。例如某点n所表示的频率为:fn=(n-1)*fs/n。 由上面的公式可以看出,fn所能分辨到频率为为fs/n,如果采样频率fs为1024hz,采样点数为102

45、4点,则可以分辨到1hz。1024hz的采样率采样1024点,刚好是1秒,也就是说,采样1秒时间的信号并做fft,则结果可以分析到1hz,如果采样2秒时间的信号并做fft,则结果可以分析到0.5hz。如果要提高频率分辨力,则必须增加采样点数,也即采样时间。频率分辨率和采样时间是倒数关系。假设fft之后某点n用复数a+bi表示,那么这个复数的模就是an=根号a*a+b*b,相位就是pn=atan2(b,a)。根据以上的结果,就可以计算出n点(n1,且n=n/2)对应的信号的表达式为: an/(n/2)*cos(2*pi*fn*t+pn),即2*an/n*cos(2*pi*fn*t+pn)。对于n

46、=1点的信号,是直流分量,幅度即为a1/n。 由于fft结果的对称性,通常我们只使用前半部分的结果,即小于采样频率一半的结果。图5.2 fft结果图要提高频率分辨率,就需要增加采样点数,这在一些实际的应用中是不现实的,需要在较短的时间内完成分析。解决这个问题的方法有频率细分法,比较简单的方法是采样比较短时间的信号,然后在后面补充一定数量的0,使其长度达到需要的点数,再做fft,这在一定程度上能够提高频率分辨力。53 本章小结 本章主要是通过一系列的仿真数据对fft进行分析,从理论分析到实际得到的数据来验证fft的正确性,这章介绍的内容有dsp bulder 所生成的复数乘法器指令的时序图和ma

47、tlab仿真的fft数据波形图,并都做了相应的理论分析,经计算,理论值与实际得到的值基本相同。结论毕业设计是本科学习阶段一次非常难得的理论与实际相结合的机会,通过这次比较完整的给排水系统设计,我摆脱了单纯的理论知识学习状态,和实际设计的结合锻炼了我的综合运用所学的专业基础知识,解决实际工程问题的能力,同时也提高我查阅文献资料、设计手册、设计规范以及电脑制图等其他专业能力水平,而且通过对整体的掌控,对局部的取舍,以及对细节的斟酌处理,都使我的能力得到了锻炼,经验得到了丰富,并且意志品质力,抗压能力及耐力也都得到了不同程度的提升。这正是我们进行毕业设计的目的所在。niosii嵌入式处理器是fpga

48、生产厂商althera推出的软核cpu,它是一种面向用户的、可灵活定制的通用risc嵌入式cpu。用户可以在 nios指令系统中增加用户自定义指令,以增强对强实时软件算法的处理能力,可以把一个复杂的标准指令序列简化为一条用硬件实现的单个指令。在需要 使用大量fft算法的场合,可以根据用户的需要,定制专门的fft处理器硬件和定制一些诸如复数乘法或复数加法等传统运算指令,同时也可以自定义外设将其做为avalon总线上的一个设备cpu以外设的形式调用这个设备。在此设计的项目中利用niosii的用户自定义指令功能,达到了 fft运算的软硬件协同设计,实现了快速fft的变换。由于软件直接控制硬件,所以编

49、译过后的软件调试工作,基本上都是软硬件协同完成的。因此速度快,占用资源少,容易扩展。同时也起到了硬件加速的作用。参考文献1 电子技术基础. 模拟部分/康华光主编;北京:高等教育出版社,2006.1 2 陈后金.数字信号处理.北京:高等教育出版社,2004.7 3 卡曼(kamen.e.w).应用 web 和 matlab 的信号与系统基础(第二版).北京:电子工业出版社,2002.54 潘松,黄继业.eda技术实用教程(第一版).北京:科学出版社,2002, 10-155 王建校.sopc 设计基础与实践.西安:西安电子科技大学出版社,2006.4 6 altera可编程逻辑器件应用技术/子枫

50、等编著.北京:科学出版社, 2004 7 何锋.vhdl语言中信号设置的不同方式及注意事项. 半导体技术, 2002,(03):173-1768 程佩青.数字信号处理教程(第二版).北京:清华大学出版社,2001: 87-919 黄正瑾,徐坚等著.cpld系统设计技术入门与应用(第一版).成都:电子工业出版社,2002: 203-20910 a.v.奥本海姆,r.w.谢弗著.离散时间信号处理(discrete-time signal processing).黄建国,刘树棠译.第一版.北京:科学出版社,2000, 489-49411 李国丽.eda与数字系统设计. 机械工业出版社.2004,25

51、-12512 翁木云.fpga设计与应用.西安电子科技大学.2003, 12-12813 陈意军,王迎旭.cpld在频率测控系统中的应用 半导体技术 第26卷第12期.2001年14 林明权.vhdl数字控制系统设计范例.电子工业出版社.2003,224-24115 altera corporationaltera digital library 2002,12-20 致谢经过半年的忙碌和工作,本次毕业设计最终完成。作为一个本科生的毕业设计,由于经验的匮乏,难免有许多考虑不周全的地方,如果没有导师的督促指导,以及一起工作的同学们的支持,想要完成这个设计是难以想象的。 在这里首先要感谢我的导师张桐老师。在我做毕业设计的每个阶段,从查阅资料到设计方案的确定和定稿的完成张老师都给予了我悉心的指导。其次要感谢我的同学对我无私的帮助。在本次设计中,如果没有老师和同学的帮助,我的毕业设计是不可能顺利完成的,另外,我还要感谢那些曾给我授过课的每一位老师,是你们教会我专业知识。在此,我再说一次谢谢! 附录1 原理图1、 电源及接口电路2、滤波及adc转换电路3、存储器电路附录2 程序/*fft.c文件*/#include #include #include #define pi 3.1415926#define samplenumber 128void i

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论