基于VHDL的快速信号处理器实现 毕业论文.doc

上传人:来看看 文档编号:3922035 上传时间:2019-10-10 格式:DOC 页数:49 大小:633.52KB
返回 下载 相关 举报
基于VHDL的快速信号处理器实现 毕业论文.doc_第1页
第1页 / 共49页
基于VHDL的快速信号处理器实现 毕业论文.doc_第2页
第2页 / 共49页
基于VHDL的快速信号处理器实现 毕业论文.doc_第3页
第3页 / 共49页
基于VHDL的快速信号处理器实现 毕业论文.doc_第4页
第4页 / 共49页
基于VHDL的快速信号处理器实现 毕业论文.doc_第5页
第5页 / 共49页
点击查看更多>>
资源描述

《基于VHDL的快速信号处理器实现 毕业论文.doc》由会员分享,可在线阅读,更多相关《基于VHDL的快速信号处理器实现 毕业论文.doc(49页珍藏版)》请在三一文库上搜索。

1、毕 业 论 文(设计)题 目:基于VHDL的快速信号处理器实现学 号:xxxxxxxxxxxxxxxxxx 姓 名:xxxxxxxxxxx 年 级:2007级 学 院:信息科学技术学院 系 别:电子信息工程系 专 业:电子信息工程专业 指导教师:xxxxxxx 完成日期:20xx年 05 月 05日 44摘 要 随着数字电子技术的快速发展,数字信号处理技术及理论广泛应用于通信、语音处理、图像处理、雷达信号处理、计算机和多媒体等领域。随着可编程逻辑器的发展,使得电子设计的规模和集成度大幅度提高。在不同应用场合使用不同性能的FFT处理器。 FPGA(Field Programmable Gate

2、Array)即现场可编程门阵列,是大规模可编程逻辑器件。由于FPGA在速度和集成度方面的飞速提高,使得利用硬件来实现数字信号处理找到了新的方法。FPGA使用可编程的查找表(Look Up Table,LUT)结构,用静态随机存储器SRAM构成逻辑函数发生器,采用FPGA技术可以提高元器件的优质利用性可以降低设计风险,减少资金投入,缩短研发周期,且能够并行处理数据,容易实现流水线结构,而且升级简便,提高了设计的灵活性,再加上VHDL语言的灵活的描述方法以及与硬件无关的特点,所有这些都非常适合实现FFT算法,使得使用VHDL语言基于FPGA实现FFT成为研究方向。FFT的硬件结构主要包括蝶形处理单

3、元、数据存储器RAM、控制模块、旋转因子存储器ROM、地址发生器。本文以8点复数、8位数据位宽为例进行设计与逻辑综合。采用Altera公司的Cyclone II系列FPGA芯片EP2C8Q208C8实现该处理器,用Quartus II进行开发。关键词: 数字信号处理;FPGA;FFT算法;VHDL语言AbstractWith the rapid development of digital electronic technology, digital signal processing technology and theory has been widely used in communic

4、ations, voice processing, image processing, radar signal processing, computer and multimedia and so on. With the development of programmable logic devices, making the scale of electronic design and integration greatly improved. In different applications use different performance FFT processor.FPGA (

5、Field Programmable Gate Array) or field programmable gate array ,it is large-scale programmable logic devices. Owing to improvement of FPGAs speed and integration, its possible to realize digital signal processing by hardware. FPGA use look-up table(LUT) structure,with a static random access memory

6、SRAM constitutes a logic function generator,the using of FPGA technology can improve the using of high-quality components to reduce design risk,reduce capital investment,shorten the development cycle, and the ability to parallel processing of data, easy to implement pipeline structure.And easy to up

7、grade and improve design flexibility,coupled with the VHDL description of a flexible approach and hardware-independent features,all of which are very suitable for implementation of FFT algorithm,which make it to be a research problem that using VHDL achieves FFT based on FPGA.The hardware structure

8、including FFT butterfly processing unit, data memory RAM, the control module, the twiddle factor memory ROM, address generator. By a 8 point complex, 8-bit data bit wide as an example the design and logic synthesis. Using Alteras Cyclone II series FPGA chip EP2C8Q208C8 implement the processor to use

9、 Quartus II development software.Key words: Digital signal processing; FPGA; FFT algorithm; VHDL language目 录1 绪 论11.1 数字信号处理简介11.2 FFT算法简介21.3 FPGA结构及工作原理21 硬件描述语言及Quartus平台42.1 HDL概述42.2 VHDL语言简介42.3 VHDL的优点52.4 VHDL基本设计流程52.5 VHDL设计单元模型62.6 VHDL语言开发环境Quartus介绍93 数字信号处理的理论基础113.1傅里叶变换的几种形式113.2 离散傅

10、里叶变换算法123.3 FFT算法基本思想133.4 按时间抽取基-2 FFT算法(库利-图基算法)144 用FPGA实现数字信号处理的算法184.1 数字信号处理实现方法184.2 FFT算法在FPGA中的实现194.2.1 数据存储单元RAM的实现194.2.2 旋转因子存储器ROM的实现204.2.3 8位加法器设计204.2.4 8位乘法器设计224.2.5 地址产生单元234.2.6 控制单元设计244.3 总结23致谢26参考文献27附录281 绪 论1.1 数字信号处理简介数字信号处理(digital signal processing ,DSP)是从20世纪60年代随着信息科学

11、和计算机科学的快速发展而形成的一门新兴学科,它把信号用数字或符号表示成序列,通过计算机或通用(专用)信号处理设备,用数字的数值计算方法处理(如滤波、变换、压缩、增强、估计、识别等),达到提取有用信息的目的,并且在许多应用领域逐步代替的模拟信号处理系统。图1.1所表示的是模拟信号数字处理系统的方框图,抗混叠滤波器是一个低通滤波器。对模拟信号进行采样时遵循奈奎斯特采样定律,采样频率f2至少应大于或等于2倍分析信号的最高频率f1,即f2f1;否则可能出来因采样频率不够高,模拟信号的高频信号折叠到低频段出现“混叠现象”。因为我们研究的信号只在一定范围内才有实际意义,当然采样频率也不可能无限高也不需要无

12、限高。为解决频率混叠现象,对模拟信号采样前,用低通滤波器滤除高于1/2采样频率的成份。经过抗混叠滤波器输出的模拟信号为X(t),经过A/D变换器后输出的数字信号为X(n),经过数字信号处理器处理后输出的数字信号为Y(n),经过D/A变换器后输出的模拟信号为Y(t),再用低通滤波器滤除高频成份输出平滑的模拟信号。抗混叠滤波器A/D变换器数字信号处理器D/A变换器低通滤波器图1.1 数字信号处理系统的简单方框图数字信号与模拟信号的比较: 1、时间和幅度上都是连续的信号称为模拟信号,时间和幅度上都是离散的信号称为数字信号。 2、数字信号抗干扰能力强,无噪声积累。在模拟通信中,为了提高信噪比,需要在信

13、号传输过程中及时对误差的信号进行放大,信号在传输过程中不可避免地对叠加上的噪声也被同时放大,使得信号在传输的过程中质量变得很差。 3、便于加密处理。信息传输的安全性和保密性越来越重要,数字信号通信加密处理比模拟信号通信容易得多。 4、便于存储、处理和交换。数字信号形式和计算机所用信号一致,都是二进制代码,因此便于与计算机联网,也便于用计算机对数字信号进行存储、处理和交换,可使通信网的管理、维护实现自动化、智能化。 5、设备便于集成化、微型化。数字通信采用时分多路复用,不需要体积较大的滤波器,设备中大部分是数字电路,可用大规模和超大规模集成电路实现,因此体积小、功耗低。6、但占用频带较宽。一路模

14、拟电话的频带为4KHz带宽,一路数字电话约占64KHz,这是模拟通信目前仍有生命力的主要原因,但随着宽频带信道(如光缆)的大量使用,带宽已经不是大问题了。1.2 FFT算法简介快速傅里叶变换并不是一种新的变换,而是离散傅里叶变换(DFT)的一种快速算法。DFT有很多快速算法,大致可分为两类。一类是递归型算法,是将一维DFT转化为容易计算的二维或多维DFT,分裂基算法、基2、基4、基8、基16及任意组合因子等的组合数FFT算法,利用的周期性、对称性,使长序列的DFT分解为更小点数的DFT,减少运算量。另一类是将DFT转变为卷积,利用计算卷积的方法计算。FFT广泛应用在无线通信、语音识别、图像处理

15、和频谱分析等领域。在不同应用场合,需要不同性能要求的FFT处理器,特别是随着OFDM(正交频分复用)技术的出现,FFT作为OFDM系统中调制解调的关键。FFT的理论研究已经趋于成熟,但很多场合需要快速、高性能的FFT处理器,在综合考虑硬件特性和满足特定要求的情况下,对FFT处理器的流程、算法进行进一步的优化处理,使它的处理速度能有所提高。1.3 FPGA结构及工作原理可编程逻辑阵列器件由用户编程实现数字集成电路,与ASIC相比,可编程逻辑阵列器件具有设计周期短,硬件升级容易的优点。现场可编程门阵列FPGA是新型高密度可编程逻辑器件。通过编程可以把一个通用的FPGA芯片配置成用户需要的数字电路系

16、统,加快电子产品的研发周期,降低成本,缩短产品上市时间。FPGA具有高密度,运行速度快,并行逻辑运算能力强,容易实现流水线的特点。用FPGA设计数字电路可以简化系统设计,提高系统的稳定性。FPGA在超高速应用领域和实时测控方面很有应用前景,在高可靠应用领域,在设计得好的情况下,不存在类似于MCU的复位不可靠和PC程序跑飞等问题。FPGA可实现片上系统缩小产品体积,提高产品可靠性。FPGA优势是开发周期短,投资风险小、产品上市速度快,市场适应能力强和硬件升级容易。目前芯片朝着高密度、低压、低功耗方向发展:在SOC芯片上可以将微处理器、数字信号处理器、存储器、逻辑电路、模拟电路集成在一个芯片上从而

17、形成一个完整的系统。如果将IP核集成到SOC芯片上则会提高SOC芯片的灵活性与有效性,缩短设计周期。FPGA解决了电子系统小型化、低功耗、高可靠性等问题,且开发周期短、芯片价格低,使得FPGA占有越来越多的市场。2 硬件描述语言及Quartus II平台 2.1 HDL概述硬件描述语言(Hardware Description Language, HDL)是描述硬件电路的功能、信号连接关系及时序关系的语言。常用的硬件描述语言有VHDL和Verilog。利用硬件描述语言,数字电路系统的设计可以自顶向下描述自己的设计思想,用一系列分层次的模块来表示极其复杂的数字系统。然后利用EDA工具,逐层进行仿

18、真验证,再把其中需要变为实际电路的模块组合,经过自动综合工具转换到门级电路网表。再用FPGA自动布局布线工具,把网表转换为要实现的具体电路布线结构。硬件描述语言HDL具有20多年历史,20世纪80年代后期,VHDL和Verilog HDL语言适合时代发展的要求,先后成为IEEE标准。就FPGA/CPLD开发而言,VHDL语言是最常用和流行的硬件描述语言之一,一般VHDL语言应用在教学中较多,Verilog应用在工业生产中较多,在数字信号处理的FPGA设计中得到了广泛的使用。2.2 VHDL语言简介超高速集成电路硬件描述语言(VHDL,Very-High-Speed Integrated Cir

19、cuit Hardware Description Language),诞生于1982年,1987年底VHDL被IEEE和美国国防部确认为标准硬件描述语言。自IEEE公布了VHDL的标准版本(IEEE std 1076-1987)之后,各EDA公司相继推出了自己的VHDL设计环境。1993年,IEEE对VHDL进行了修订,从更高的抽象层次和系统描述能力上扩展VHDL的内容,公布了新版本的VHDL。VHDL主要用于描述数字系统的结构、行为、功能和接口,非常适用于可编程逻辑芯片的应用设计。强大的行为描述能力是从逻辑行为上描述和设计大规模电子系统的重要保证。流行的EDA工具和VHDL综合器而言,将基

20、于抽象的行为描述风格的VHDL程序综合成为具体的FPGA和CPLD等目标器件的网表文件已不成问题。VHDL语言在大规模数字系统的设计中,是主要的硬件描述语言,它将成为数字系统设计领域中所有技术人员必须掌握的一种语言。VHDL和可编程逻辑器件的结合成为一种强有力的设计方式,使产品上市周期明显缩短。2.3 VHDL的优点VHDL主要用于描述数字系统的结构、行为、功能和接口。除了含有许多具有硬件特征的语句外,VHDL语言形式、描述风格与句法与一般的计算机高级语言十分相似。VHDL的程序结构特点是将一项设计实体(可以是一个元件、一个电路模块或一个系统)分成外部和内部两个基本部分,其中外部为可见部分,即

21、系统的端口,而内部则是不可视部分,即设计实体的逻辑部分。在对一个设计实体定义了外部界面后,一旦其内部开发完成后,其他的设计就可以直接调用这个实体。这种将设计实体分成内外部分的概念是VHDL系统设计的基本点。应用VHDL语言设计有许多优点如下:(1) 设计技术齐全、方法灵活、支持广泛。VHDL语言支持top_down与down_top 设计方法,还支持同步电路、异步电路及随机电路设计。目前多数EDA工具均支持VHDL语言。(2)VHDL具有更强的系统硬件描述能力,具有多层次描述系统硬件功能的能力,其描述对象可从系统的数学模型直到门级电路。(3)VHDL的设计不依赖于特定的器件,方便了工艺的转换。

22、(4)VHDL语言标准、规范,易于共享和复用。2.4 VHDL基本设计流程用VHDL/Verilog HDL开发CPLD/FPGA的完整流程为:(1)设计输入:用任何文本编辑器都可以。VHDL文件保存为.vhd,Verilog文件保存为.v。(2)功能仿真:将文件调入HDL仿真软件进行功能仿真,检查逻辑功能是否正确。(3)逻辑综合:将源文件调入逻辑综合软件进行综合,即把语言描述的电路转换成实际可以执行的电路。(4)布局布线:将.edf文件调入PLD厂家提供的软件中进行布线,即把设计好的逻辑安放到CPLD/FPGA内。(5)时序仿真:需要利用在布局布线中获得的精确参数,用仿真软件验证电路的时序。

23、(6)编程下载:确认仿真无误后,将文件下载到芯片中。2.5 VHDL设计单元模型VHDL设计可由4个分立的设计单元组成,这4个可编辑的源设计单元分别是:实体(ENTITY)、结构体(ARCHITECTURE)、配置(CONFIGURATION)和程序包(PACKAGE),下面就实体和结构体加以说明。2.5.1实体实体类似原理图中的模块符号,作为一个设计实体的组成部分,其功能是对这个设计实体与外部电路进行接口描述。实体是设计实体的表层设计单元,实体说明部分规定了设计单元的输入输出接口信号或引脚,它是设计实体对外的一个通信界面。 用VHDL源代码定义一个八位寄存器实体REG8,它的输入端口为DAT

24、A_IN,CLK,输出端口为DATA_OUT。其源代码如下:ENTITY REG8 IS PORT( DATA_IN : IN STD_LOGIC_VECTOR(7 DOWNTO 0); CLK : IN STD_LOGIC; DATA_OUT: OUT STD_LOGIC_VECTOR(7 DOWNTO 0);END ENTITY REG8;图2.1 8位寄存器2.5.2结构体结构体定义了硬件设计的输入端口和输出端口之间的映射关系,用来说明相应的硬件的行为。结构体通常由说明部分和算法部分组成,算法部分通常是一些并发执行的语句。用VHDL源代码描述REG8的结构体。源代码如下:ARCHITEC

25、TURE art OF REG8 IS BEGIN PROCESS(DATA_IN,CLK) BEGIN IF(CLK=1 AND CLKEVENT) THEN DATA_OUTAIN,B=BIN,COS2);U2:H_ADDER PORT MAP(A=S2,B=CIN,SO=SUM,CO=S3);U3:OR2 PORT MAP(A=S1,B=S3,C=COUT);END ARCHITECTURE RTL;2.5.4数据流描述方式数据流描述反映一个设计中数据从输入到输出的流向,使用并发语句描述。下面是半加器的VHDL数据流描述。LIBRARY IEEE;USE IEEE.STD_LOGIC_1

26、164.ALL;ENTITY HARF_ADDER ISPORT( A,B: IN STD_LOGIC; SO,CO: OUT STD_LOGIC );END ENTITY HARF_ADDER;ARCHITECTURE BEHAVIOR OF HARF_ADDER IS BEGIN PROCESS(A,B) BEGIN SO=A XOR B; CO=A AND B; END PROCESS;END ARCHITECTURE BEHAVIOR;2.5.5行为描述方式行为描述方式是描述输入与输出的行为,不涉及具体电路的结构,大多数情况是用数学建模的手段描述设计实体,下面程序描述半加器的行为描述。

27、LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY HARF_ADDER ISPORT( A,B: IN STD_LOGIC; SO,CO: OUT STD_LOGIC );END ENTITY HARF_ADDER;ARCHITECTURE BEHAVIOR OF HARF_ADDER IS BEGIN PROCESS(A,B) VARIABLE X,Y:STD_LOGIC; BEGIN X:=A XOR B; Y:=A AND B; SO=X; CO=Y; END PROCESS;END ARCHITECTURE BEHAVIOR;在一个系统中三

28、种描述风格有可能都会用到。主模块调用子模块时采用结构化描述:在一般模块的设计时,根据具体情况,可以用行为级描述,又可以用数据流描述。要描述一个复杂的系统,很难用单一的描述方法实现,通常三种描述方法混合使用。2.6 VHDL语言开发环境Quartus介绍Altera公司的CPLD/FPGA设计工具软件Quartus是适合单芯片可编程系统(SOPC)的设计环境。Quartus开发工具支持Altera公司主流FPGA全部系列。VHDL语言能够在多种EDA工具设计环境中运行。Quartus软件包含了FPGA设计过程中要用到的所有功能,为了将其它EDA软件公司的先进技术引入到Quartus软件中,使其能

29、够与Quartus联合使用,Quartus提供了与这些EDA工具连接的接口。如综合工具Synplify、仿真工具Modelsim等。使用Quartus的设计者可以不精通器件内部结构,可以使用自己熟悉的设计工具建立设计,Quartus把这些设计自动转换成最终需要的格式。Quartus结合各种系列器件的物理结构,提供了各种的优化措施,可以在提高工作速度和资源利用率之间给以平衡,为多数设计提供了解决方案。Quartus提供了原理图输入、文本输入和波形输入等多种设计输入,并可以把这些输入方式任意组合使用。利用该工具所配备的编辑、编译、仿真、综合、芯片编程等功能,可将设计电路图或电路描述程序变成基本的逻

30、辑单元写入到可编程的芯片中(如FPGA芯片),做成ASIC芯片。用户首先对所做项目进行设计,明确设计目的、设计要求;然后利用原理图输入方式或文本输入方式进行设计输入;输入完成后,进行编译,若编译过程中发现错误,则检查设计输入,修改错误,直至没有错误发生;编译完成后,就可以进行仿真,检查设计是否达到设计要求,否则的话,还需重新检查设计输入;仿真结果达到要求后,就可以进行编程,把设计程序下载到目标文件中;最后把芯片放到实际系统中进行验证、测试。AlteraQuartus 设计输入编译仿真编程验证图2.2 Quartus开发FPGA流程图3 数字信号处理的理论基础3.1 傅立叶变换的几种形式傅立叶变

31、换是信号分析和处理的有力工具,在以快速傅立叶变换算法为代表的一系列有效算法出现后,傅立叶变换不但在信号处理领域起着支柱作用,而且在其它工程领域也获得了广泛的应用。根据信号的连续性、离散性、周期性、非周期性,傅立叶变换可以分为四种不同的形式,形成四种不同的傅立叶变换对。3.1.1连续时间非周期信号连续时间非周期信号在频域中得到的是连续非周期的频谱密度函数,傅立叶变换对如下: (3-1) (3-2)这种类型信号的典型信号有指数衰减信号和高斯信号,这种类型信号的变换就称为傅立叶变换。3.1.2连续时间周期信号 连续时间周期信号当满足狄里赫利条件时在频域中得到的是离散非周期的傅立叶级数,傅立叶级数的系

32、数为,为离散非周期函数,和组成的变换对如下: (3-3)3.1.3离散时间非周期信号离散时间非周期信号也称为序列,序列的傅立叶变换对如下所示: (3-4) (3-5)这种信号的傅立叶变换称为离散时间傅立叶变换 3.1.4离散时间周期信号离散时间周期信号的傅立叶变换有时称为傅立叶级数,但最常被称为离散傅立叶变换。3.2 离散傅立叶变换算法声音图像等各种信号大都为模拟信号,要用计算机对这些信号进行数字信号处理,这些信号必须通过采样量化编码变成有限长的数字信号序列。对于有限长序列,可以得出另外一种傅立叶变换,称为离散傅立叶变换(DFT)。离散傅立叶变换本身是一个序列,而不是一个连续变量的函数,它相应

33、于对信号的傅立叶变换进行频率的等间隔取样的样本。离散傅里叶变换描述分析有限长序列,其本质是建立了以时间为自变量的信号与以频率为自变量的频谱函数之间的变换关系,换言之,离散傅里叶变换定义了时域与频域之间的一种变换或者说是映射。对于DFT时间和频率变量都取离散值。下面讨论一下有限长序列的离散傅立叶变换。设有限长序列的长度为N,即可以看成是周期为N的周期序列。从而有限长序列的傅立叶变换定义为正变换: (3-6)反变换: (3-7)其中,当DFT的直接计算时,且为复数的话,则计算DFT每一个值就需要次复数乘法和次复数加法。个值总共需要次复数乘法和次复数加法。每个复数乘法需要4次实数乘法和2次实数加法。

34、所以,对于每一个值,直接计算就需要4次实数乘法和次实数加法。DFT数字计算还需要存储和读取个复数输入序列值以及复系数值的设备。当值很大时直接计算DFT计算量特别大。直到1965年库利和图基首次提出了计算DFT的一种快速算法,人们开始认识到DFT运算的一些内在规律,发展和完善了一套高效的运算方法,DFT的运算在实际中才得到广泛的应用。FFT使复数乘法的次数从次减少到了次。如时运算量从1048576次减少到5120次,运算效率提高了204.8倍,为DFT乃至数字信号处理技术的实际应用特别是实时处理创造了良好的条件,大大地推动了数字信号处理技术的发展。3.3 FFT算法基本思想FFT算法的基本思想:

35、将长度为的序列的离散傅里叶变换逐次分解为较短的离散傅里叶变换,直到两点的FFT为止,使得总的运算次数比直接计算DFT运算量少得多,从而提高了运算速度。快速傅立叶变换就是利用的特性,逐步地将点序列分解成较短的序列,计算短序列的DFT,然后组合成原序列的DFT,使运算量明显减少。有两类分解:一类是将时间序列进行逐次分解,称为按时间抽取算法(Decimation In Time);另一类将傅立叶变换序列进行分解,称为按频率抽取算法(Decimation In Frenquency)。本文主要介绍按时间抽取基-2 FFT算法。3.4 按时间抽取基-2 FFT算法(库利-图基算法)FFT算法主要是利用的

36、性质,把序列分解为较短的序列来减小运算量。有以下三种性质:性质1:的周期性 性质2:的对称性 性质3:的可约性 , 基二算法中,序列的长度为2的整数次幂,即,其中为正整数。最初通过将分解为奇数项序列和偶数项序列的形式使FFT运算分为两组。设: (3.8)设为的DFT,为的DFT,利用的性质可得的DFT运算为: (3-9)上面式子的运算可用下图的蝶形信号流图符号表示:4点DFT4点DFT x(0) x(2) x(4) x(6) x(1) x(3) x(5) x(7)X1(0)X1(1)X1(2)X1(3)X2(0)X2(1)X2(2)X2(3)X(0)X(1)X(2)X(3)X(4)X(5)X(

37、6)X(7)图3.1 时间抽取算法蝶形运算图图3.2 的时间抽取基-4 FFT算法流图2点DFT2点DFT2点DFT2点DFT x(0) x(4) x(2) x(6) x(1) x(5) x(3) x(7) X3(0) X3(1) X4(0) X4(1) X5(0) X5(1) X6(0) X6(1)X1(0)X1(1)X1(2)X1(3)X2(0)X2(1)X2(2)X2(3)X(0)X(1)X(2)X(3)X(4)X(5)X(6)X(7)N点DFT分解为两个点的DFT,从而实现了运算量的减少,再经过逐次分解最终分解为2点的DFT,实现了FFT运算。FFT运算的核心是蝶形运算,通过顺序计算全

38、部蝶形实现FFT算法的实现。下面给出时的按时间抽取FFT流图。图3.3 的时间抽取基-2 FFT算法流图当的FFT,共有级蝶形,每级由个蝶形运算单元,每个蝶形包括一次复乘、二次复加,则级运算的运算量为复数乘法:复数加法:则FFT算法与直接DFT算法相比运算量大为减少,当时,DFT所需的复数乘法运算次数为:次,而FFT所需的复数乘法运算次数仅为次。可见时DFT算法的运算量是FFT算法的运算量的倍,则N越大FFT算法的优越性越明显。按时间抽取FFT算法的特点FFT运算有两个特点:同址运算和倒位序规律。 特点1:同址运算 长度为的序列,将N个数据送到存储器后,经蝶形运算,其结果为另一列数据,它们以蝶

39、形为单位仍存储在这同一组存储中,直到最后输出,中间无需其他存储器。采用同址运算只需个存储单元,大大节省了存储单元,从而降低了设计成本。 特点2:倒位序规律 为了实现同址计算,输入序列不能按照原来的先后顺序存贮,这种输入数据存贮和读取的顺序称为倒位序。我们注意到,对于已经讨论过的8点流图,只需要用三位二进制码来标注整个数据。 若为序列中标号的二进制表示,则序列值存放在数列的位置上。实际运算中先按自然顺序将信号序列存入RAM中,则需经过变址运算得到倒位序的排列,然后实现FFT算法。图3.4码位的倒位序自然系数二进制码倒位序二进制码倒位序数000000001001100420100102301111

40、06410000115101101561100113711111174 用FPGA实现数字信号处理的算法本章讨论FFT在FPGA中如何实现,首先介绍实现FFT算法的四种方法:软件、DSP、专用FFT处理芯片、FPGA来实现。软件和DSP实现速度较慢;专用FFT处理芯片价格高、硬件不易扩展;FPGA资源丰富,强大的并行逻辑运算能力使得速度极快、扩展能力强,设计灵活、开发周期短、成本低。但国内所使用FPGA实现FFT运算主要局限性是运算点数偏小,设计缺乏灵活性从而难以扩展,且多基于整数和定点数,从而运算精度不高,当然FPGA也有弱点不擅长复杂的流程控制。FPGA厂商研制的综合性能较好的FFT IP

41、核,但是价格昂贵。本设计的FFT处理器硬件由蝶形处理单元、双端口RAM、旋转因子ROM、控制器、地址产生单元构成。4.1 数字信号处理的实现方法FFT算法大都用于实时场合,实时DSP系统要求硬件的处理器速度满足抽样率。如语音处理系统抽样频率低,对DSP系统的处理速度要求相应也较低。而雷达、图像处理的抽样频率高,对DSP系统的处理能力的要求相应就很高,高速、实时信号处理是现代信号处理的显著特点,需要极高的数据吞吐率和计算速度。常见信号处理系统结构有:4.1.1并行处理提高系统性能的有效方法是并行处理,同时性或者并发性,并行处理是相对于串行处理的处理方式,它着重解决并发事件,并行处理结构会提高系统

42、的数据吞吐率和数据处理能力。4.1.2 流水线方式流水线是把一个重复的过程分解为若干个子过程,每个子过程可以与其他子过程同时进行。由于这种方式与工厂中的生产流水线十分相似,即称为流水线方式,在数字信号处理器中,为了尽量提高数字信号处理器的性能和数学运算的并行性,通常有一个独立的运算单元乘累加运算器。它一般一个时钟周期完成一个乘累加运算,这其中就运用到了流水线工作方式。4.1.3 精简指令集计算机(Reduced Instruction Set Computer RISC)精简指令集计算机是相对于复杂指令系统计算机而言的,是80年代开始发展起来的新型计算机结构形式。由于其优越性大现在普遍被人们接受为新的计算机体系结构原则。4.1.4 阵列结构阵列结构处理器的出现标志着实时信号处理技术发展到了一个新的阶段,阵列处理最大限度地利用了超大规模集成电路(Very Large Scale Integrated Circuits ,VLSI)技术的特点,采用高度并行-流水的结构,相当适合完成数据处理

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

当前位置:首页 > 其他


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