




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、1 / 38目录目录引言引言5 5第一章第一章 FPGAFPGA 的设计流程的设计流程6 61.11.1 FPGAFPGA 概述概述 6 61.21.2 FPGAFPGA 设计流程设计流程 8 81.31.3 硬件描述语言硬件描述语言 HDL(HardwareHDL(Hardware DescriptionDescription Language)Language)10101.41.4 FPGAFPGA 开发工具开发工具 QuartusQuartus 软件设计流程软件设计流程 1111第二章有限冲激响应第二章有限冲激响应(FIR)(FIR)滤波器的原理与设计滤波器的原理与设计14142.12.
2、1 数字信号处理基础原理数字信号处理基础原理 14142.22.2 FIRFIR 滤波器背影知识滤波器背影知识 17172.32.3 FIRFIR 数字滤波器原理数字滤波器原理 18182.42.4 利用窗函数法设计利用窗函数法设计 FIRFIR 滤波器滤波器 2222第三章第三章 FIRFIR 数字滤波器的数字滤波器的 FPGAFPGA 实现实现27273.13.1 串行串行 FIRFIR 滤波器原理滤波器原理 27273.23.2 分布式算法基础分布式算法基础 27273.33.3 直接型直接型 FIRFIR 滤波器的原理结构图滤波器的原理结构图 30303.43.4 具有转置结构的具有转
3、置结构的 FIRFIR 滤波器滤波器 3131第四章结论与总结第四章结论与总结3636辞辞3737参考文献参考文献38382 / 38摘要摘要: :本论文课题是基于 FPGA 的 FIR 滤波器设计与实现 。数字滤波器是语音与图象处理、模式识别、雷达信号处理、频谱分析等应用中的一种基本的处理部件,它能满足滤波器对幅度和线性相位的严格要求,避免模拟滤波器所无法克服的电压漂移、温度漂移和噪声等问题。有限冲激响应(FIR)滤波器能在设计任意幅频特性的同时保证严格的线性相位特性。因此在许多应用领域都显示了强大的生命力,具有重要应用意义。本文介绍了用 VHDL 实现线性相位 FIR(有限长单位冲激响应)
4、滤波器。提出了一种基于 FPGA 的 FIR 滤波器设计方案。介绍了基于 FPGA 的 FIR 滤波器的数字信号处理的算法设计,采用直接型和转置型的基本结构来设计,其运算效率明显提高,并结合先进的 EDA 软件进行高效的设计和实现,并给出了用 Quartus 运行的仿真结果。该设计对 FPGA 硬件资源的利用高效合理,用 VHDL 编程,在 PFGA 中实现了高采样率的 FIR 滤波器。关键字:关键字:FIR 滤波器;FPGA;VHDL;MATLAB;Quartus 3 / 38Abstract:Abstract:Digital filter is a fundamental device u
5、sed in pronunciation &pattern process, pattern-recognition, radar signal process and spectral analysis. It can meet the high needs to range and phase, and can avoid such problems as voltage drifting, temperature drifting and noise that analogue filters cannot overcome. FIR filter can assure a st
6、rict linear phase identity while designing any range and frequency. Therefore, FIR filter has shown its strong vitality in many fields and its importance in using. In the paper, the way to use VHDL to design linear phase FIR filter is introduced and its importance in using. In the paper, the way to
7、use VHDL to design linear phase FIR filter is introduced and its designing thoughts are expounded. This paper introduces the design scheme of FIR filter based on FPGA, introduces that the design technology of FIR filter based on FPGA about digital system processing arithmetic. FIR filter adopts the
8、basic structure of direct type, the result are shifting and adding. Integrating advanced software of EDA to design and achieve, and giving some emulator results. This design makes high use of hardware resource about FPGA, programming with VHDL language, achieving FIR filter with high sampling level
9、based on PDGA. KeywordsKeywords: Finite Impulse Response Digital Filter(FIR)、Field Programmable Gate、 Array(FPGA) 、VHDL、Quartus 引引 言言在数字信号处理技术不断发展的今天,数字滤波器正在迅速地代替传统的4 / 38模拟滤波器,所以有越来越多的人们在研究数字滤波器的结构以与其实现。在数字滤波器中,有限冲激响应(FIR)滤波器具有无限冲激响应(IIR)滤波器所没有的线性相位,所以本课题研究的就是 FIR 数字滤波器,主要讨论了它的结构以与实现的方法。目前FIR滤波器的实现
10、方法有3种:利用单片通用数字滤波器集成电路、DSP器件和可编程逻辑器件实现。单片通用数字滤波器使用方便,但由于字长和阶数的规格较少,不能完全满足实际需要;使用DSP器件实现虽然简单,但由于程序顺序执行,执行速度较慢。FPGA有着规整的部逻辑阵列和丰富的连线资源,特别适合于数字信号处理任务,相对于串行运算为主导的通用DSP芯片来说,其并行性和可扩展性更好。本人毕业设计就是基于FPGA运用VHDL设计实现FIR 滤波器。众所周知,Quartus 是美国ALTERA公司自行开发的一种针对其公司生产的系列FPGA的设计、仿真、编程的工具软件,Quartus 是FPGA应用软件中比较典型和常见的一种工具
11、,在我国应用较为普遍。本设计就是用Quartus 所支持的一种很常用的硬件描述语言(VHDL)来编程,并在Quartus 上编译与仿真。5 / 381 1 FPGAFPGA 的设计流程的设计流程可编程逻辑器件(PLD, Programmable Logic Device)是厂家作为一种通用型器件生产的半定制电路,用户可以通过对器件编程实现使之实现所需要的逻辑功能.它的应用和发展不仅简化了电路设计,降低了成本,提高了系统的可靠性,而且给数字系统的设计方式带来了革命性的变化。1.11.1 FPGAFPGA 概述概述1 简单PLD的基本结构简单PLD包括PROM, PLA, PAL和GAL。其结构特
12、点是由与阵列和或阵列组成,能有效地实现“积之和”形式的布尔逻辑函数。简单PLD的基本结构图如图2.1所示。图中与阵列和或阵列是电路的主体,主要用来实现组合逻辑函数。输入由缓冲器组成,它使输入信号具有足够的驱动能力并产生互补输入信号。输出电路可以提供不同的输出方式。 图1.1简单PLD的基本结构2 现场可编程门阵列FPGA是现场可编程门阵列(Field Programmable Gate Array)的简称,是20世纪80年代中期出现的高密度可编程逻辑器件。FPGA的出现是超大规模集成电路技术和计算机辅助设计技术发展的结果。FPGA器件集成度高、体积小,具有通过用户编程实现专门应用的功能。它允许
13、电路设计者利用基于计算机的开发平台,经过设计输入、仿真、测试和校验,直到达到预期的结果。使用FPGA器件可以大大缩短系统的研制周期,减少资金投入。更为可贵的是,采用FPGA器件可以将原来的电路板级产品集成为芯片级产品,从而降低了功耗,提高了可靠性,同时还可以很方便地对设计进行在线修改。6 / 38FPGA一般由三种可编程电路和一个用于存放编程数据的SRAM组成,这三种可编程电路是:可编程逻辑块CLB、输入输出模块IOB和互连资源IR,其基本结构如图2.2所示。可编程逻辑块是实现逻辑功能的基本单元,它们通常规则地排列成一个阵列,散布于整个芯片;可编程输入/输出模块主要完成芯片上逻辑与外部封装脚的
14、接口,它通常排列在芯片的四周;可编程互连资源包括各种长度的连线线段和一些可编程连接开关,它们将各个CLB之间或CLB、IOB之间以与IOB之间连接起来,构成特定功能的电路。FPGA的功能由逻辑结构的配置数据决定。工作时,这些配置数据存放在片的SRAM或熔丝图上。基于SRAM的FPGA器件,在工作前需要从芯片外部加载配置数据,配置数据可以控制加载过程,在现场修改器件的逻辑功能,即所谓现场编程。1、可编程逻辑块(CLB)CLB是FPGA的主要组成部分,是实现逻辑功能的基本单元。它主要由逻辑函数发生器、触发器、数据选择器等电路组成。CLB中有许多不同规格的数据选择器,分别用来选择触发器激励输入信号、
15、时钟有效边沿、时钟能使信号以与输出信号。这些数据选择器的地址控制信号均由编程信息提供,从而实现所需的电路结构。CLB中的逻辑函数发生器均为查找表结构,其工作原理类似于ROM。2、输入/输出模块(IOB) IOB提供了器件引脚和部逻辑功能阵列之间的连接。它主要由输入触发器、输入缓冲器和输出触发/锁存器、输出缓冲器组成,每个IOB控制一个引脚,它们可被配置为输入、输出或双向I/O功能。3、可编程互连资源(IR)可编程逻辑互连资源可以将FPGA部的CLB和CLB之间、CLB和IOB之间连接起来,构成各种具有复杂功能的系统。IR主要由许多金属线段构成,这些金属线段带有可编程开关,通过自动布线实现各种电
16、路的连接。3 3 FPGAFPGA VS.VS. CPLDCPLD可编程逻辑器件的两种主要类型是 FPGA(Field Programmable Gate Array,现场可编程门阵列)和 CPLD(Complex Programmable Logic Device,复杂可编程逻7 / 38辑器件)。虽然两者都是可编程逻辑器件,但是两者之间仍有较大的区别。(1)FPGA 是触发器密集型的器件,具有大量的触发器资源;而 CPLD 是组合逻辑密集型的器件,触发器资源少。(2)FPGA 的集成度远高于 CPLD。(3)FPGA 的分段式布线结构决定了其延迟的不可预测性,而 CPLD 的连续式布线结构
17、决定了它的时延是均匀的和可预测的。因此,FPGA 的应用围远较 CPLD 广泛,FPGA 可以用工业控制通信消费类电子等各种领域中较为复杂的设计,而 CPLD 一般只用于实现简单的控制,如地址译码等。4 主流 FPGA 厂商介绍目前主要的 FPGA 生产厂家为 Xilinx 和 Altera。Xilinx 公司是 FPGA 领域的老牌厂商,曾在 FPGA 领域占有绝对的领先优势。目前,它在低端市场推出了 Spartan-2 和 Spartan-3 系列产品,在高端市场则推出了 Virtex-2、Virtex-4 系列产品。Altera 公司是目前在 FPGA 领域惟一可以和 Xilinx 平起
18、平坐的公司。它在低端市场的产品有 Cyclone 和 Cyclone系列,在高端市场则有Stratix、StratixGX 与 Stratix系列产品。1.21.2 FPGAFPGA 设计流程设计流程FPGA的电路设计是通过FPGA开发系统实现。用户无需了解FPGA的部构造和工作原理,只要在计算机上输入电路原理图或硬件描述语言,FPGA开发系统就能自动进行模拟、验证、分割、布局和布线,最后实现FPGA的部配置。FPGA的设计流程如图1.2所示。8 / 38 图1.2 FPGA设计流程图IC电路设计一般都采用自顶向下的设计方法。所谓自顶向下的设计就是从系统总体要求出发,从上到下地逐步将设计容细化
19、,最后完成系统硬件的整体设计。在利用VHDL的硬件设计方法中,设计者将至上自下分成3个层次对系统硬件进行设计。第一层次是行为描述。所谓行为描述,实质上就是对整个系统的数字模型的描述。一般来说,对系统进行行为描述的目的是试图在系统设计的初始阶段,通过对系统行为描述的仿真来发现设计中存在的问题。在行为描述阶段,并不真正考虑其实际的操作和算法用什么方法来实现。考虑更多的是系统的结构与其在工作过程中是否能达到系统设计规格书的要求。第二层次是RTL方式描述。这一层次称为寄存器传输描述。如前所述,用行为方式描述的系统结构的程序,其抽象度很高,是很难直接影射到具体逻辑元件结构的硬件实现的。要想得到硬件的具体
20、实现,必须将行为方式描述的VHDL语言程序该为RTL方式描述的VHDL语言程序。也就是说,系统采用RTL方式描述,才能导出系统的逻辑表达式,才能进行逻辑综合。在完成编写RTL方式的描述程序以后,再用仿真工具对RTL方式描述的程序进行仿真。如果通过这一步仿真,那么就可以利用综合工具进行综合了。第三层次是逻辑综合。逻辑综合这一阶段是利用逻辑综合工具,将RTL方式描述的程序转换成用基本逻辑元件表示的文件(门级网络表)。此时,如果需要,可以将逻辑综合结果,以逻辑原理图方式输出。也就是说,逻辑综合的结果相当于在人工设计硬件电路时,根据系统要求画出了系统的逻辑电路原理图。此后对逻辑综合结果在门电路级上再进
21、行仿真,并检查定时关系。如果一切正常,那么系统的硬件设计就基本结束。如果三个层次的某个层次上发现有问题,都应返回上一层次,寻找并修改相应的错误,然后再向下继续未完的工作。由自顶向下的设计过程可知,从总体行为设计开始到最终逻辑综合,形成网表为止,每一步都要进行仿真检查,这样有利于尽早发现系统设计中存在的问题,从而可以大大缩短系统硬件设计周期。这是用VHDL语言设计系统硬件的最突出的优点之一。9 / 381.31.3 硬件描述语言硬件描述语言 HDL(HardwareHDL(Hardware DescriptionDescription Language)Language)1 硬件描述语言简介硬件
22、描述语言是一种用形式化方法来描述数字电路的设计数字逻辑系统的语言。它可以使数字逻辑电路设计者利用这种语言来描述自己的设计思想,然后利用电子设计自动化(EDA)工具进行仿真,自动综合到门级电路,再利用ASIC 或 FPGA 实现其具体功能。从 80 年代后期开始,硬件描述语言逐步向着标准化的方向发展,最终 VHDL 和 Verilog 适应了标准化需求,成为 IEEE 标准。此后用这两种标准的硬件描述语言进行数字逻辑设计的方法逐渐流行。与传统的电路图设计方法相比,用硬件描述语言进行电路设计有如下好处:(1)使用硬件描述语言,可以在较高的抽象层次描述设计,也就是说这样的设计方法不仅提高了设计人员的
23、效率,而且设计与特定的工艺无关。逻辑综合工具能自动地把设计转换成针对某种工艺的门级网表,如果出现了新的工艺,设计者不必重新设计电路,而只要针对新工艺,重新综合即可。(2) 使用硬件描述语言进行设计,可以在设计阶段进行功能验证,这样设计者可以不断地修改和优化 RTL 代码描述,直到满足设计需求。大部分的错误和缺陷在这时被排除,防止错误被带到门级或者物理设计阶段。实践证明,错误发现越早,排除错误所花费的代价就越少。由于用硬件描述语言进行的设计可以在早期进行验证,从而极缩短设计周期,节约设计成本。(3)设计用文本的方式表示,简单高效,可以对设计添加注释,易于开发、调试和维护。2 VHDL 语言简介V
24、HDL 是 Very-High-Speed Integrated Circuit Hardware Description Language 的英文缩写, 1987 年底,由 IEEE(The Institute of Electrical and Electronics Engineers)和美国国防部将其标准化。VHDL 语言是一种行为描述语言,其主要用于描述数字系统的结构、行为、功能和接口。VHDL 还是一种与实现技术相独立的语言,即不束缚于某一特定的模拟程序或数字装置上,也不把设计方法强加于设计者。它允许设计者在其使用围选择工艺和方法。VHDL 语言的语言形式和描述风格与句法十分类似于
25、一般的计算机高级语言,在10 / 38描述复杂逻辑设计时,非常地简洁,具有很强的逻辑描述和仿真能力,是未来硬件设计语言的主流。VHDL 的程序结构特点是将一项设计实体(可以是一个元件、一个简单电路模块或一个系统)分成外部(或称可视部分)和部(或称不可视部分),即设计实体的部功能和算法完成部分。在对一个设计实体定义了外部界面后,一旦其部开发完成后,其它设计就可以直接调用这个完成的设计。这种将设计实体分成外部分的概念就是 VHDL 语言系统设计的基本点。应用 VHDL 进行工程设计具有以下几个方面的优点:1. 可以分层次设计。2. 每个设计单元,既有定义好的接口(以便连接其他元件使用),又有明确的
26、行为规(用来仿真)。3. 用算法或实际硬件结构来定义一个元件操作的行为规。例:一个元件最初可以用算法来定义,在高层次设计、检验时使用,仿真通过以后,可以用硬件结构代替算法定义,以实现实际电路的设计。4. 并发性:用硬件描述语言所描述的实际系统,其许多操作是并发执行的。5. 逻辑操作和设计的时序行为都能够仿真。6. VHDL 对设计的描述具有相对独立性,设计者可以不懂硬件的结构,也不必去管最终设计实现的器件是什么,就可以进行独立的设计。7. 设计周期短,投资风险小。由于商用 VHDL 综合工具的发展,VHDL 的使用也随着仿真环境的大大改善而更加广泛。有些 VHDL 程序,可以直接从 VHDL
27、的行为描述中创建逻辑电路结构,也可以使用 VHDL 在一个芯片上设计、仿真和综合任何从简单到复杂的电路系统 。1.41.4 FPGAFPGA 开发工具开发工具 QuartusQuartus 软件设计流程软件设计流程Altera 公司在推出各种系列的可编程逻辑器件的同时,也在不断地升级其相应的开发软件。Quartus 就是 Altera 公司推出的最新一代的可编程逻辑器件开发系统,Quartus 支持对 Altera 公司的11 / 38APEX、FLEX、Cyclone、Mercury、Excalibur、Stratix 和 Stratix GX 等系列器件进行开发和配置。Quartus 还支
28、持多平台工作,Quartus 即可以工作于“PC + Microsoft Windows 操作系统”或“PC + Red Hat Linux 操作系统”上,还可以在其他多种工作平台上运行。在 Quartus 集成开发环境中进行可编程 ASIC 设计的基本流程如图 2.2 所示,主要包括设计输入、设计编译、设计校验(时序分析、仿真)和器件编程四个部分。下面将简单介绍一下 Quartus 基本流程的各部分。一.设计输入Quartus 支持三种设计输入方法:原理图输入、HDL 输入、网表输入,用户可以使用 Quartus 自身带的设计输入工具,如模块编辑器(Block Editor)、文本编辑器(T
29、ext Editor)和 Mega Wizard Plug-In Manager,也可以利用其他的设计输入/综合工具来建立设计文件。但输入方法不同,生成的设计文件类型也会有所不同。另外,Quartus 还支持层次化的设计方法,用户可以将一个完整的设计逐层分解成规模小的子设计单元,每个设计单元用一个设计文件来描述,而描述整个设计的设计文件被称为顶层设计文件。用 Quartus 进行层次化的设计时,每个设计文件的设计输入方式都可以有多种选择,如原理图输入、HDL 输入或网12 / 38设计输入设计要求设计编译设计校验器件编程可编程 ASIC图 1.3 Quartus 的基本设计流程表输入,但要注意
30、的是,顶层设计文件的扩展名只能是.bdf .tdf .vhd .vhdl .v.vlg .edif 或.deaf二.设计编译Quartus 提供一个编译设置向导,可以方便地完成所有的编译参数设置的功能,通过这个编译设置向导,可以让 Quartus 自动选择 FPGA 器件或由用户指定 FPGA 器件,可以选中是否运行延时分析与是否运行仿真等,还可以选择要执行编译的类型。可选的编译类型包括二种:1.只是综合并输出网表。这种编译可以编译设计文件,综合产生门级代码,编译器只运行到综合这步就停止了,因此,编译器只产生估算的延时数值。2.完全的编译,包括编译,网表输出,综合,配置器件,时序分析等。这种编
31、译方法,编译器要将设计配置到Altera 器件中去,编译器根据器件特性会产生真正的延时时间和给器件的配置文件。三.延时分析与仿真为了让设计的仿真结果能够与电路的实际运行结果相吻合,Quartus 还提供了详细的延时分析工具。Quartus 延时分析工具支持对单个时钟或多个时钟的延时分析。通过 Quartus 的延时分析能够分析出不同类型的延时信息,13 / 38包括没有布局布线的延时信息、经过布局布线的延时信息、混合的树状层次型设计等。Quartus 支持多种仿真方法,包括:波形输入方法,.vwf(向量波形文件),这是 Quartus 中最主要的波形文件;.vec(向量文件),这是 MAX+P
32、LUS 中的文件,主要是为了向下兼容;.tbl(列表文件),用来将 MAX+PLUS 中的.scf 文件输入到 Quartus 中,也可以将.vwf 文件保存成.tbl 文件,然后通过MATLAB 软件、提取其中的数据,用来对仿真结果的分析。此外,Quartus 还支持 Testbench(仿真测试向量文件)和 Tcl 仿真脚本文件。四. 器件编程器件编程就是利用 Quartus 的编程器(Programmer)工具模块和编程硬件(如 MasterBlaster 和 ByteBlaster 通信电缆),将编译器产生的编程文件下载到可编程逻辑器件中去。2 2 有限冲激响应有限冲激响应(FIR)(
33、FIR)滤波器的原理与设计滤波器的原理与设计2.12.1 数字信号处理数字信号处理基础原理基础原理1 数字信号系统概述自从 60 年代,特别是 1965 年快速傅立叶变换(FFT)的问世以来,随着计算机和信息学科的飞速发展,数字信号处理(Diginal Signal Processing,DSP)技术应运而生并迅速发展,现已形成一门独立的学科体系。DSP 是利用数字计算机或专用数字处理设备对信号进行分析、变换、综合、滤波、估值与识别等加工处理,随着在规模集成电路和计算机技术的迅猛发展,数字信号处理技术已广泛应用于通信、语音、雷达、地震预报、声纳、遥感、生物医学、电视、控制系统、水利工程、故障检
34、测、仪器仪表等领域。数字信号处理技术与设备具有灵活、精确、抗干扰强、设备尺寸小、造价低、速度快等突出优点,这些14 / 38都是模拟信号处理技术与设备所无法比拟的2 离散时间信号与系统一个离散时间系统可以抽象为一种变换或是一种映射,即把输入序列变换为输出序列:,式中 T 代表变换。这样,一个离散时间)(nx)()(nxTny系统既可以是一个硬件装置,也可以是数字表达式,即 )(nx)(nxT)(ny若一个离散时间系统同时具有线性和移不变性的离散时间系统称为线性移不变性(Linear Shift Invariant,LSI)离散时间系统。线性:即该系统的输入、输出之间满足叠加原理;移不变性:设离
35、散时间系统对 x(n)的响应是y(n) ,如果将 x(n)延迟 k 个抽样周期、输出 y(n)也相应地延迟了 k 个抽样周期。离散时间系统(LSI)分为有限冲激响应(Finite Impulse Response,FIR)系统和无限冲激响应(Infinite Impulse Reponse,IIR)系统。且对一个 LSI 系统我们可以用四种不同的方法描述它: 频率响应: 2.1.10)()(nnjjenheH 转移函数: 2.1.2nnznhzH0)()( 差分方程: 2.1.3MrNkrnxrbknykany01)()()()()( 卷积关系: 2.1.4)(*)()()()(nhnxknh
36、kxnyk3 离散时间信号的傅立叶变换与 DFT 简单介绍一下连续时间信号的傅立叶变换与傅立叶级数的基本概念,然后着重讨论离散信号的抽样定理,最终引导出时域和频域都取离散值的离散傅立叶变换即 DFT。DFT 是数字信号处理中最基本,也是最重要的运算。连续时间信号傅立叶变换: 设为一连续时间信号,则的傅立叶变换)(tx)(tx为 2.1.5dtetxjXtj)()(15 / 38其反变换为 2.1.6dejXtxtj)(21)(其中为角频率,单位为 rad/s。是的连续函数,称为信号f2)( jX的频率密度函数或频谱密度函数或简称为频谱。)(tx(1) 离散时间信号的傅立叶变换(DTFT 的定义
37、)对任意的,其离散时间的傅立叶变换(DTFT)为)(nx 2.1.7njjenxeX)()( 2.1.8)2(2)()(jjenxeX)()(2jnjnjeXenxe由式 2.1.8 我们可以看出是的周期函数,周期为。而且由序列 z)(jeX2变换的定义很容易得到式 2.1.9 2.1.9jjezzHeH)()(即 DTFT 是 z 仅在单位圆上取值 z 变换。 DTFT 的反变换公式为 2.1.10deeXnxnjj)(21)(2) DFT 的定义DFT 对应的是在时域、频域都是有限长且都是离散的,其正变换为 2.1.111, 1 , 0,)()()(10102NkWnxenxkXnkNNn
38、NnnkNj反变换为 2.1.121, 1 , 0,)(1)(1)(10102NkWkXNekXNnxnkNNnNnnkNj(3) 抽样定理抽样定理是连接离散信号和连续信号的桥梁,是进行离散信号处理与离散系统设计的基础。将连续信号和冲激串函数相乘。即可得到离散信号)(txa)(tp,)(nTsx16 / 38 2.1.13)()()()(tptxtxnTsxanTsta其中冲激串函数为:,它是时域的周期信号,周期为,nnTsttp)()(Ts则和的傅立叶变换如式 2.1.14 和式 2.1.15 所示)(txa)(nTsx 2.1.14dtetxjXtjaa)()( 2.1.15njjenTs
39、xeX)()(由上述两式可以得到 2.1.16nsaTssjjkjXTsjXeX)(1)()( 将连续信号经抽样变成后,的频谱将变成周期的。相)(txa)(nTsx)(nTsx对频率,周期为,相对圆频率,周期为。变成周期的ssfTs2/22方法是将在频率轴上以为周期作移位后再叠加并除以 Ts。这种现象)( jXas又称为频谱的周期延拓。则在保证抽样频率,则可由恢复出,csff2)(nTsx)(tx即保留了的全部信息。是最小抽样频率,即“Nyquist 频率” ,)(nTsx)(txcsff2称为折叠频率。2/sf2.22.2 FIRFIR 滤波器背影知识滤波器背影知识 有限冲击响应(FIR)滤
40、波器和无限冲击响应(IIR)滤波器广泛应用于数字信号处理系统中。IIR 数字滤波器方便简单,但它相位的线性,要采用全通网络进行相位校正。图象处理以与数据传输都要求信道具有线性相位特性,有限冲击响应(FIR)滤波器具有很好的线性相位特性,因此越来越受到广泛的重视。1 IIR 和 FIR 数字滤波器的比较:首先,从性能上说,IIR 滤波器传输函数的极点可位于单位圆的任何地方,因此可用较低的阶数获得高的选择性,所用的存贮单元少,所以经济而效率高,17 / 38但是这个高效率是以相位为代价的。选择性越好,则相位非线性越严重。相反,FIR 滤波器却可以得到严格的非线性相位,然而由于 FIR 滤波器传输函
41、数的极点固定在原点,所以只能用较高的阶数达到高的选择性;对于同样的滤波器设计指标,FIR 滤波器所要求的阶数可以比 IIR 滤波器高 510 倍,结果,成本高,信号延时也较大;如果按一样的选择性和一样的线性要求来说,则 IIR 滤波器就必须加全同网络进行相位校正,同样要大大增加滤波器的节数和复杂性。从结构上看,IIR 滤波器必须采用递归结构,极点位置必须在单位圆,否则系统将不稳定。另外在这种结构中,由于运算过程中对序列的舍入处理,这种有限字长效应有时会引起寄生振荡。相反,FIR 滤波器主要采用非递归结构,不论在理论上还是在实际的有限精度运算中都不存在稳定性的问题,运算误差较小。FIR 滤波器采
42、用快速傅立叶变换算法,在一样阶数的条件下,运算速度快的多。从设计工具看,IIR 滤波器可以借助与模拟滤波器的成果,计算工作量比较小,对计算工具的要求不高。FIR 滤波器的设计只有计算程序可循,对计算工具要求不高。从上面简单比较看出 IIR 与 FIR 滤波器各有所长,在实际应用中应从多方面来加以选择。在相位要求不敏感的场合,用 IIR 较为合适,可以充分发挥其经济高效的特点。对于图象信号处理,数据传输等以波形携带信息的饿系统,则对线性相位要求高,采用 FIR 滤波器较好。2 有限冲击响应(FIR)滤波器的特点:.系统的单位冲击响应 h(n)在有限个 n 值处不为零。.系统函数 H(z)在0 处
43、收敛,极点全部在 z处(稳定系统) 。z结构上主要是非递归结构,没有输出到输入的反馈,但有些结构中(例如频率抽样结构)也包含有反馈的递归部分。3 有限冲击响应(FIR)滤波器的优点:.既有严格的线性相位又具有任意的幅度.FIR 滤波器的单位抽样响应是有限长的,因而滤波器性能稳定.只要经过一定的延时,任何非因果有限长序列都能变成因果的有限长序列,因而能用因果系统来实现18 / 384.FIR 滤波器用于单位冲击响应是有限长的因而可用快速傅立叶变换(FFT)算法来实现过滤信号,可大大提高运算效率。4 滤波器设计方法有两种:一类是频谱法,即逼近所需要的频率特性;另一类是时域法,既逼近所需要的时间特性
44、。2.32.3 FIRFIR 数字滤波器原理数字滤波器原理1 单位冲击响应 h(n)的特点FIR 滤波器单位脉冲响应 h(n)长度 N(0nN-1),其 Z 变换为:H(z)=在有限 Z 平面有(N-1)个零点,而它的(N-1)个极点均位于原10)(Nmnhmz点 z=0 处。因此 H(z)永远稳定。稳定和线性相位特性是 FIR 滤波器突出的优点。2 线性相位条件对于长度为 N 的 h(n),传输函数为H()= 2.3.1je10)(NnnhnjeH()= H() 2.3.2je)(je式中,H()称为幅度特性,称为相位特性。H()线性相位是指是)(je)(的线性函数,即=-,为常数 2.3.
45、3)(=- , 是起始相位 2.3.4)(00一般称满足(1.2.3)式是第一类线性相位;满足(1.2.4)式是第二类线性相位。 满足第一类线性相位的条件是:h(n)是实序列且对(N-1)/2 偶对称,即 h(n)=h(N-n-1) 满足第二类线性相位的条件是:h(n)是实序列且对(N-1)/2 奇对称,即 h(n)=-h(N-n-1)结论:如果 FIR 滤波器的单位抽样响应 h(n)为实数,且满足以下任一条件:偶对称 h(n)=h(N-1-n)19 / 38奇对称 h(n)=-h(N-1-n)其对称中心在 n=(N-1)/2 处,则滤波器具有准确的线性相位。3 3 线性相位特点与幅度函数的特
46、点线性相位特点与幅度函数的特点第一类线性相位条件即 h(n)偶对称时,幅度函数 H()和相位函数分别)(为H()= 2.3.51012)cos()(NnNnnh=-(N-1) 2.3.6)(12第二类线性相位条件即 h(n)奇对称时,幅度函数 H()和相位函数分别)(为H()=- 2.3.71012)(sin)(NnNnh=-()- 2.3.8)(12N2由于 h(n)的长度 N 取奇数还是偶数,对 H()的特性有影响,因此,对于两类线性相位,下面我们分四种情况讨论其幅度特性的特点。1) h(n)=h(N-n-1),N=奇数按照 2.3.5式,幅度函数 H()为H()=1012)cos()(N
47、nNnnh式中 h(n)对(N-1)/2 偶对称,余弦项也对(N-1)/2 偶对称,可以以(N-1)/2 为中心把两两相等的项进行合并,由于 N 是奇数,故余下中间项 n=(N-1)/2。则H()=h()+12N1012)cos()(2NnNnnh令 m=(N-1)/2-n,则有H()=h()+ 2.3.912N2/ )1(112cos)(2NmNmmhH()=2/ )1(0cos)(Nnnna20 / 38式中 a(0)=h() a(n)=2h(-n),n=1,2,3,21N21N21N按照 2.3.9 式,由于式中 cos项对=0,皆为偶对称,因此幅度特性的n2 ,特点是对=0,是偶对称的
48、。2 ,同理可知: 2) h(n)=h(N-n-1),N=偶数H()= 2.3.102/121)(cos)(Nnnnb式中 b(n)=2h(-n),n=1,2,2N2N按照 2.3.10 式,=时,由于余弦项为零,且对=奇对称,因此这种情况下的幅度特性的特点是对=奇对称,且在=处有一零点,使 H()=0,这样,对于高通和带阻不适合采用这种情况。3) h(n)=-h(N-n-1),N=奇数H()= 2.3.112/ )1(1sin)(Nnnnc式中 c(n)=2h(-n),N=1,2,.,21N21N由于在=0,时,正弦项为零,因此幅度特性 H()在=0,处为零,2 ,2 ,即在 z=处是零点,
49、且 H()对=0,呈奇对称形式。12 ,4) h(n)=-h(N-n-1),N=偶数H()= 2.3.122/121)(sin)(Nnnnd式中 d(n)=2h(-n),n=1,2,3,2N2N由 2.3.12 式,因为正弦项在=0,处为零,因此幅度特性 H()在=0,2处为零,即在 z= 处有一个零点,且 H()对=0,奇对称形式,对=212呈偶对称。结论结论:(1)h(n)偶对称H()= 2.3.51012)cos()(NnNnnh21 / 38=-(N-1) 2.3.6)(12幅度函数 H()包括正负值,相位函数是严格线性相位,说明滤波器有(N-1)/2个抽样的延时,它等于单位抽样响应
50、h(n)长度的一半。图 1 中,线性相位无附加相移,幅度函数在处存在零点,且对=呈奇对称,因此不适合作90高通滤波器。图 2 中,线性相位无附加相移,幅度函数在=0呈偶对90,2 ,称,因此适合做低通、高通滤波器。(2)h(n)奇对称H()=- 2.3.71012)(sin)(NnNnh=-()- 2.3.8)(12N2相位函数仍是线性,但在零频率(=0)处有/2 的截距。不仅有(N-1)个抽样的延时,还产生一个/2 的相移。图 3 中,线性相位有附加相移,幅度函90数在 0、2处为零点,且对=0、2呈奇对称,对=呈偶对称。图 4 中,线性相位有附加相移,幅度函数在 0处为零,且对=0呈奇对9
51、02 ,2 ,称。图 3、图 4 所示的滤波器均适合在微分器和移相器中应用。9022 / 384 线性相位 FIR 滤波器零点位置由 H(z)=H()可以得出,如果 z=是 H(z)的零点,则 z=1/也一定)1( kz1ziziz是 H(z)的零点,当 h(n)是实数时,H(z)的零点必成共轭对出现,所以 1/也iz一定是 H(z)的零点。因而线性相位 FIR 滤波器的零点必是互为倒数的共轭对。2.42.4 利用窗函数法设计利用窗函数法设计 FIRFIR 滤波器滤波器1 设计思路设希望设计的滤波器传输函数为(),(n)是与其对应的单位脉冲响应,dHjedh()=dHjenjndenh)(n)
52、=dh21deeHnjjd)(首先给定所要求的理想滤波器频率响应(),由()导出(n),但dHjedHjedh它是无限长序列,且是非因果序列。而要设计的 FIR 滤波器,其 h(n)是有限长,所以要用一个有限长 h(n)来逼近函数:(n)=,有效方法dh21deeHnjjd)(是截取(n)或取窗函数(有限长度) ,一般表示为 h(n)=(n)(n),这里(n)就dhdh是窗口函数。常用的窗口函数有矩形窗、三角形窗、升余弦窗(汉宁窗)、改进的升余弦窗(海明窗)、二阶升余弦窗(布拉克曼窗)、凯塞窗。23 / 38对窗函数一般有两个方面的要求:(1)主瓣尽可能窄,以使设计出的滤波器具有较陡的过渡带。
53、(2)旁瓣尽可能少,即应使其能量集中在主瓣,使设计出的滤波器肩峰和余振较小,阻带衰减较大。对任一具体窗函数来说,这两项要求相互矛盾,无法同时满足,只能根据具体的设计指标选择一种较为合适的窗函数。表 2.1 六种窗函数的基本参数窗函数旁瓣峰值幅度/dB过渡带宽阻带最小衰减/dB矩形窗-134/N-21三角形窗-258/N-25汉宁窗-318/N-44海明窗-418/N-53布拉克曼窗-5712/N-74凯塞窗-5710/N-802 用窗函数法设计 FIR 滤波器的步骤1 给定所待求的频率响应函数();dHje2 根据技术要求确定待求滤波器的单位取样响应(n)。由()的傅立叶反dhdHje变换导出
54、(n)。即(n)=IDFT(); (n)=dhdhdHjedh21deeHnjjd)(3 由过渡带宽与阻带最小衰减要求,比对 6 种窗函数基本参数选定窗函数(n)与 N 值。求得 FIR 滤波器的单位抽样响应 h(n)= (n)(n),n=0,1,.,N-1;dh4 验算技术指标是否满足要求。求设计出的滤波器频率响应用下式计算:H()= 2.3.1 ; 即 H()=DTFTh(n)je10)(Nnnhnjeje检验是否满足要求,如果 H()不满足要求根据具体情况重复 2、3、4 步,直je到满足要求。24 / 38注:窗函数法是从时域出发的一种设计方法,若技术指标在频域给出的,则用频率采样法设
55、计 FIR 滤波器。本论文不涉与频率采样法设计 FIR 滤波器。3 设计实例设计理想 FIR 线性滤波器,已知其它0,1)(ccjdeH故单位冲激响应为clcdedenhNnjNnjd)21()21(2121)(=)21()21sin()21(sinNnNnNnC若 N 为奇数,当 n=时,由上式得 h()=1-21N21Nc当 n时,=021N)21()21(sinNnNn设截止频率,h(n)的长度 N=21,则 FIR 滤波器的 MATLAB 实现程序如下:4c clear; close all; N=21; wc=3*pi/4; n=0:N-1; r=(N-1)/2; hdn=-sin(
56、wc*(n-r)/pi/(n-r); if rem(N,2)=0hdn(r+1)=1-(wc/pi);end hn1=fir1(N-1,wc/pi,high,boxcar(N); hn2=fir1(N-1,wc/pi,high,hamming(N); subplot(2,2,1)25 / 38 stem(n,hn1,.) line(0,20,0,0); title(矩形窗设计的 h(n); xlabel(n);ylabel(h(n); subplot(2,2,3) stem(n,hn2,.) line(0,20,0,0); title(hamming 窗设计的 h(n); xlabel(n);
57、ylabel(h(n); hn11=fft(hn1,512); w=2*0:511/512; subplot(2,2,2) plot(w,20*log10(abs(hn11) grid; axis(0,2,-80,5); title(幅度特性); xlabel(w/pi);ylabel(幅度(dB); hn22=fft(hn2,512); subplot(2,2,4) plot(w,20*log10(abs(hn22) grid axis(0,2,-80,5); title(幅度特性); xlabel(w/pi);ylabel(幅度(dB);26 / 38用矩形窗和 hamming 窗设计的
58、FIR 高通滤波器3 3 FIRFIR 数字滤波器的数字滤波器的 FPGAFPGA 实现实现在上一章中,我们已经对数字滤波器的一般设计方法(窗函数法)进行了说明。本章主要对数字滤波器的结构进行分析,展示 FIR 转置结构滤波器原理27 / 38图,以与如何用 FPGA 实现 FIR 数字滤波器,即如何用 VHDL 编程并在Quartus中进行逻辑综合与时序仿真。3.13.1 串行串行 FIRFIR 滤波器原理滤波器原理串行结构的最大优点是实现简单,串行设计只需要一个乘法器,一个循环移位寄存器(或RAM结构),一个只读存储器。当对电路运行速度要求不高时,采用此种结构将大大节省硬件资源。此时通过提
59、高部时钟方法,输入信号数据率为1MHz的16阶串行滤波器,移位寄存器的触发时钟和计数器时钟为16MHz,计数器给系数ROM地址产生权系数与移位寄存器串行输出的数据乘法累加输出。计数器每16个时钟给乘法累加器一个清零时钟信号。3.23.2 分布式算法基础分布式算法基础传统算法强调乘-累加(multiply-accumulate,MAC)的。比如下式给出了线性卷积和。10*Lkknxkfnxnfny对于每次采样都需要进行L次连续乘法和L-1次加法操作来计算乘积之ny和。这种做法所需的硬件电路规模比较大,而且电路的执行速度也比较慢。对于传统PDSP的MAC,计算乘积还有另一种方法DA算法。28 /
60、38分布式算法(distributed arithmetic,DA)是一项重要的FPGA技术,广泛应用在计算乘积和中10,Nnnxncxcy当使用传统算法单元完成一个滤波周期时,大约需要用N个MAC循环。使用流水线可以缩短这一数量,但也非常有限,仍旧非常长。当使用通用乘法器(SOP,sum of products)时,这就成了一个简单问题了。为了理解DA设计例,考虑“乘积和”如下:10,Nnnxncxcy = 1 1. 1 1 00NxNcxcxc假设系数是已知常数,是变量。无符号DA系统假设变量的表达式ncnxnx如下:10 1 , 0,2Bbbbbnxnxnx其其中表示的第位,而也就是的第次采样,
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 二零二五年度汽车品牌授权销售合同模板
- 2025广东省广晟控股集团校园招聘2000人笔试参考题库附带答案详解
- 交通工程学(视频课)知到智慧树章节测试课后答案2024年秋北京工业大学
- 2025年如东水务集团所属子公司公开遴选工作人员及招聘劳务人员6人笔试参考题库附带答案详解
- 2025年中储粮储运有限公司社会招聘吉林省岗位笔试参考题库附带答案详解
- 污水泵站施工组织设计
- 金融反洗钱知识培训课件
- 2024首都文化科技集团有限公司人才招聘10人笔试参考题库附带答案详解
- 2024福建福州市仓山区国有投资发展集团有限公司招聘3人笔试参考题库附带答案详解
- 2025年上半年全国事业单位招考(107人)易考易错模拟试题(共500题)试卷后附参考答案
- 2024年新疆维吾尔自治区招聘事业单位工作人员考试真题
- 2025年舞蹈培训机构学员培训合同范本
- 2025年保险销售业务人员岗位职业技能资格知识考试题(附答案)
- 儿科护理模拟考试题与参考答案
- 2025年南网数字集团公开选聘高频重点模拟试卷提升(共500题附带答案详解)
- 西门子S7-1200 PLC应用技术项目教程(第3版) 考试复习题
- 注意缺陷与多动障碍疾病科普幼儿心理健康教育课件
- 人工智能在招聘行业的应用
- 课件:《科学社会主义概论(第二版)》第一章
- 水利行业知识培训课件
- 区域临床检验中心
评论
0/150
提交评论