《基于FPGA的FIR滤波器设计与实现(31页).doc》由会员分享,可在线阅读,更多相关《基于FPGA的FIR滤波器设计与实现(31页).doc(31页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、-基于FPGA的FIR滤波器设计与实现-第 31 页目录引 言5第一章 FPGA的设计流程61.1 FPGA概述61.2 FPGA设计流程81.3硬件描述语言HDL(Hardware Description Language)101.4 FPGA开发工具Quartus 软件设计流程11第二章 有限冲激响应(FIR)滤波器的原理及设计142.1数字信号处理基础原理142.2 FIR滤波器背影知识172.3 FIR数字滤波器原理182.4 利用窗函数法设计FIR滤波器22第三章 FIR 数字滤波器的FPGA实现273.1串行FIR滤波器原理273.2分布式算法基础273.3直接型FIR滤波器的原理
2、结构图303.4具有转置结构的FIR滤波器31第四章 结论与总结36谢 辞37参考文献38摘要:本论文课题是基于FPGA的FIR滤波器设计与实现 。数字滤波器是语音与图象处理、模式识别、雷达信号处理、频谱分析等应用中的一种基本的处理部件,它能满足滤波器对幅度和线性相位的严格要求,避免模拟滤波器所无法克服的电压漂移、温度漂移和噪声等问题。有限冲激响应(FIR)滤波器能在设计任意幅频特性的同时保证严格的线性相位特性。因此在许多应用领域都显示了强大的生命力,具有重要应用意义。本文介绍了用VHDL实现线性相位FIR(有限长单位冲激响应)滤波器。提出了一种基于FPGA的FIR滤波器设计方案。介绍了基于F
3、PGA的FIR滤波器的数字信号处理的算法设计,采用直接型和转置型的基本结构来设计,其运算效率明显提高,并结合先进的EDA软件进行高效的设计和实现,并给出了用Quartus 运行的仿真结果。该设计对FPGA硬件资源的利用高效合理,用VHDL编程,在PFGA中实现了高采样率的FIR滤波器。关键字:FIR滤波器;FPGA;VHDL;MATLAB;Quartus Abstract: Digital filter is a fundamental device used in pronunciation &pattern process, pattern-recognition, radar signa
4、l 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 strict linear phase identity while designing any range and frequency. Therefo
5、re, 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 use VHDL to design linear phase FIR filter is introduced and its designing
6、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 basic structure of direct type, the result are shifting and adding. Integra
7、ting 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 based on PDGA. Keywords: Finite Impulse Response Digital Filter(FIR)、Field
8、Programmable Gate、 Array(FPGA)、VHDL、Quartus 引 言在数字信号处理技术不断发展的今天,数字滤波器正在迅速地代替传统的模拟滤波器,所以有越来越多的人们在研究数字滤波器的结构以及其实现。在数字滤波器中,有限冲激响应(FIR)滤波器具有无限冲激响应(IIR)滤波器所没有的线性相位,所以本课题研究的就是FIR数字滤波器,主要讨论了它的结构以及实现的方法。目前FIR滤波器的实现方法有3种:利用单片通用数字滤波器集成电路、DSP器件和可编程逻辑器件实现。单片通用数字滤波器使用方便,但由于字长和阶数的规格较少,不能完全满足实际需要;使用DSP器件实现虽然简单,但由于
9、程序顺序执行,执行速度较慢。FPGA有着规整的内部逻辑阵列和丰富的连线资源,特别适合于数字信号处理任务,相对于串行运算为主导的通用DSP芯片来说,其并行性和可扩展性更好。本人毕业设计就是基于FPGA运用VHDL设计实现FIR滤波器。众所周知,Quartus 是美国ALTERA公司自行开发的一种针对其公司生产的系列FPGA的设计、仿真、编程的工具软件,Quartus 是FPGA应用软件中比较典型和常见的一种工具,在我国应用较为普遍。本设计就是用Quartus 所支持的一种很常用的硬件描述语言(VHDL)来编程,并在Quartus 上编译与仿真。1 FPGA的设计流程可编程逻辑器件(PLD, Pr
10、ogrammable Logic Device)是厂家作为一种通用型器件生产的半定制电路,用户可以通过对器件编程实现使之实现所需要的逻辑功能.它的应用和发展不仅简化了电路设计,降低了成本,提高了系统的可靠性,而且给数字系统的设计方式带来了革命性的变化。1.1 FPGA概述1 简单PLD的基本结构简单PLD包括PROM, PLA, PAL和GAL。其结构特点是由与阵列和或阵列组成,能有效地实现“积之和”形式的布尔逻辑函数。简单PLD的基本结构图如图2.1所示。图中与阵列和或阵列是电路的主体,主要用来实现组合逻辑函数。输入由缓冲器组成,它使输入信号具有足够的驱动能力并产生互补输入信号。输出电路可以
11、提供不同的输出方式。 图1.1简单PLD的基本结构2 现场可编程门阵列 FPGA是现场可编程门阵列(Field Programmable Gate Array)的简称,是20世纪80年代中期出现的高密度可编程逻辑器件。FPGA的出现是超大规模集成电路技术和计算机辅助设计技术发展的结果。FPGA器件集成度高、体积小,具有通过用户编程实现专门应用的功能。它允许电路设计者利用基于计算机的开发平台,经过设计输入、仿真、测试和校验,直到达到预期的结果。使用FPGA器件可以大大缩短系统的研制周期,减少资金投入。更为可贵的是,采用FPGA器件可以将原来的电路板级产品集成为芯片级产品,从而降低了功耗,提高了可
12、靠性,同时还可以很方便地对设计进行在线修改。FPGA一般由三种可编程电路和一个用于存放编程数据的SRAM组成,这三种可编程电路是:可编程逻辑块CLB、输入输出模块IOB和互连资源IR,其基本结构如图2.2所示。可编程逻辑块是实现逻辑功能的基本单元,它们通常规则地排列成一个阵列,散布于整个芯片;可编程输入/输出模块主要完成芯片上逻辑与外部封装脚的接口,它通常排列在芯片的四周;可编程互连资源包括各种长度的连线线段和一些可编程连接开关,它们将各个CLB之间或CLB、IOB之间以及IOB之间连接起来,构成特定功能的电路。FPGA的功能由逻辑结构的配置数据决定。工作时,这些配置数据存放在片内的SRAM或
13、熔丝图上。基于SRAM的FPGA器件,在工作前需要从芯片外部加载配置数据,配置数据可以控制加载过程,在现场修改器件的逻辑功能,即所谓现场编程。1、 可编程逻辑块(CLB)CLB是FPGA的主要组成部分,是实现逻辑功能的基本单元。它主要由逻辑函数发生器、触发器、数据选择器等电路组成。CLB中有许多不同规格的数据选择器,分别用来选择触发器激励输入信号、时钟有效边沿、时钟能使信号以及输出信号。这些数据选择器的地址控制信号均由编程信息提供,从而实现所需的电路结构。CLB中的逻辑函数发生器均为查找表结构,其工作原理类似于ROM。2、 输入/输出模块(IOB) IOB提供了器件引脚和内部逻辑功能阵列之间的
14、连接。它主要由输入触发器、输入缓冲器和输出触发/锁存器、输出缓冲器组成,每个IOB控制一个引脚,它们可被配置为输入、输出或双向I/O功能。3、可编程互连资源(IR)可编程逻辑互连资源可以将FPGA内部的CLB和CLB之间、CLB和IOB之间连接起来,构成各种具有复杂功能的系统。IR主要由许多金属线段构成,这些金属线段带有可编程开关,通过自动布线实现各种电路的连接。3 FPGA VS. CPLD可编程逻辑器件的两种主要类型是FPGA(Field Programmable Gate Array,现场可编程门阵列)和CPLD(Complex Programmable Logic Device,复杂可
15、编程逻辑器件)。虽然两者都是可编程逻辑器件,但是两者之间仍有较大的区别。(1) FPGA是触发器密集型的器件,具有大量的触发器资源;而CPLD是组合逻辑密集型的器件,触发器资源少。(2) FPGA的集成度远高于CPLD。(3) FPGA的分段式布线结构决定了其延迟的不可预测性,而CPLD的连续式布线结构决定了它的时延是均匀的和可预测的。因此,FPGA的应用范围远较CPLD广泛,FPGA可以用工业控制通信消费类电子等各种领域中较为复杂的设计,而CPLD一般只用于实现简单的控制,如地址译码等。4 主流FPGA厂商介绍目前主要的FPGA生产厂家为Xilinx和Altera。Xilinx公司是FPGA
16、领域的老牌厂商,曾在FPGA领域占有绝对的领先优势。目前,它在低端市场推出了Spartan-2和Spartan-3系列产品,在高端市场则推出了Virtex-2、Virtex-4系列产品。Altera公司是目前在FPGA领域惟一可以和Xilinx平起平坐的公司。它在低端市场的产品有Cyclone和Cyclone系列,在高端市场则有Stratix、StratixGX及Stratix系列产品。1.2 FPGA设计流程FPGA的电路设计是通过FPGA开发系统实现。用户无需了解FPGA的内部构造和工作原理,只要在计算机上输入电路原理图或硬件描述语言,FPGA开发系统就能自动进行模拟、验证、分割、布局和布
17、线,最后实现FPGA的内部配置。FPGA的设计流程如图1.2所示。 图1.2 FPGA设计流程图IC电路设计一般都采用自顶向下的设计方法。所谓自顶向下的设计就是从系统总体要求出发,从上到下地逐步将设计内容细化,最后完成系统硬件的整体设计。在利用VHDL的硬件设计方法中,设计者将至上自下分成3个层次对系统硬件进行设计。第一层次是行为描述。所谓行为描述,实质上就是对整个系统的数字模型的描述。一般来说,对系统进行行为描述的目的是试图在系统设计的初始阶段,通过对系统行为描述的仿真来发现设计中存在的问题。在行为描述阶段,并不真正考虑其实际的操作和算法用什么方法来实现。考虑更多的是系统的结构及其在工作过程
18、中是否能达到系统设计规格书的要求。第二层次是RTL方式描述。这一层次称为寄存器传输描述。如前所述,用行为方式描述的系统结构的程序,其抽象度很高,是很难直接影射到具体逻辑元件结构的硬件实现的。要想得到硬件的具体实现,必须将行为方式描述的VHDL语言程序该为RTL方式描述的VHDL语言程序。也就是说,系统采用RTL方式描述,才能导出系统的逻辑表达式,才能进行逻辑综合。在完成编写RTL方式的描述程序以后,再用仿真工具对RTL方式描述的程序进行仿真。如果通过这一步仿真,那么就可以利用综合工具进行综合了。第三层次是逻辑综合。逻辑综合这一阶段是利用逻辑综合工具,将RTL方式描述的程序转换成用基本逻辑元件表
19、示的文件(门级网络表)。此时,如果需要,可以将逻辑综合结果,以逻辑原理图方式输出。也就是说,逻辑综合的结果相当于在人工设计硬件电路时,根据系统要求画出了系统的逻辑电路原理图。此后对逻辑综合结果在门电路级上再进行仿真,并检查定时关系。如果一切正常,那么系统的硬件设计就基本结束。如果三个层次的某个层次上发现有问题,都应返回上一层次,寻找并修改相应的错误,然后再向下继续未完的工作。由自顶向下的设计过程可知,从总体行为设计开始到最终逻辑综合,形成网表为止,每一步都要进行仿真检查,这样有利于尽早发现系统设计中存在的问题,从而可以大大缩短系统硬件设计周期。这是用VHDL语言设计系统硬件的最突出的优点之一。
20、1.3硬件描述语言HDL(Hardware Description Language)1 硬件描述语言简介硬件描述语言是一种用形式化方法来描述数字电路的设计数字逻辑系统的语言。它可以使数字逻辑电路设计者利用这种语言来描述自己的设计思想,然后利用电子设计自动化(EDA)工具进行仿真,自动综合到门级电路,再利用ASIC或FPGA实现其具体功能。从80年代后期开始,硬件描述语言逐步向着标准化的方向发展,最终VHDL和Verilog适应了标准化需求,成为IEEE标准。此后用这两种标准的硬件描述语言进行数字逻辑设计的方法逐渐流行。与传统的电路图设计方法相比,用硬件描述语言进行电路设计有如下好处:(1)使
21、用硬件描述语言,可以在较高的抽象层次描述设计,也就是说这样的设计方法不仅提高了设计人员的效率,而且设计与特定的工艺无关。逻辑综合工具能自动地把设计转换成针对某种工艺的门级网表,如果出现了新的工艺,设计者不必重新设计电路,而只要针对新工艺,重新综合即可。(2) 使用硬件描述语言进行设计,可以在设计阶段进行功能验证,这样设计者可以不断地修改和优化RTL代码描述,直到满足设计需求。大部分的错误和缺陷在这时被排除,防止错误被带到门级或者物理设计阶段。实践证明,错误发现越早,排除错误所花费的代价就越少。由于用硬件描述语言进行的设计可以在早期进行验证,从而极大地缩短设计周期,节约设计成本。(3)设计用文本
22、的方式表示,简单高效,可以对设计添加注释,易于开发、调试和维护。2 VHDL语言简介VHDL是 Very-High-Speed Integrated Circuit Hardware Description Language的英文缩写, 1987年底,由IEEE(The Institute of Electrical and Electronics Engineers)和美国国防部将其标准化。VHDL语言是一种行为描述语言,其主要用于描述数字系统的结构、行为、功能和接口。VHDL还是一种与实现技术相独立的语言,即不束缚于某一特定的模拟程序或数字装置上,也不把设计方法强加于设计者。它允许设计者在
23、其使用范围内选择工艺和方法。VHDL语言的语言形式和描述风格与句法十分类似于一般的计算机高级语言,在描述复杂逻辑设计时,非常地简洁,具有很强的逻辑描述和仿真能力,是未来硬件设计语言的主流。VHDL的程序结构特点是将一项设计实体(可以是一个元件、一个简单电路模块或一个系统)分成外部(或称可视部分)和内部(或称不可视部分),即设计实体的内部功能和算法完成部分。在对一个设计实体定义了外部界面后,一旦其内部开发完成后,其它设计就可以直接调用这个完成的设计。这种将设计实体分成内外部分的概念就是VHDL语言系统设计的基本点。应用VHDL进行工程设计具有以下几个方面的优点:1. 可以分层次设计。2. 每个设
24、计单元,既有定义好的接口(以便连接其他元件使用),又有明确的行为规范(用来仿真)。3. 用算法或实际硬件结构来定义一个元件操作的行为规范。例:一个元件最初可以用算法来定义,在高层次设计、检验时使用,仿真通过以后,可以用硬件结构代替算法定义,以实现实际电路的设计。4. 并发性:用硬件描述语言所描述的实际系统,其许多操作是并发执行的。5. 逻辑操作和设计的时序行为都能够仿真。6. VHDL对设计的描述具有相对独立性,设计者可以不懂硬件的结构,也不必去管最终设计实现的器件是什么,就可以进行独立的设计。7. 设计周期短,投资风险小。由于商用VHDL综合工具的发展,VHDL的使用也随着仿真环境的大大改善
25、而更加广泛。有些VHDL程序,可以直接从VHDL的行为描述中创建逻辑电路结构,也可以使用VHDL在一个芯片上设计、仿真和综合任何从简单到复杂的电路系统 。1.4 FPGA开发工具Quartus 软件设计流程Altera公司在推出各种系列的可编程逻辑器件的同时,也在不断地升级其相应的开发软件。Quartus 就是Altera公司推出的最新一代的可编程逻辑器件开发系统,Quartus 支持对Altera公司的APEX、FLEX、Cyclone、Mercury、Excalibur、Stratix和Stratix GX等系列器件进行开发和配置。Quartus 还支持多平台工作,Quartus 即可以工
26、作于“PC + Microsoft Windows操作系统”或“PC + Red Hat Linux操作系统”上,还可以在其他多种工作平台上运行。在Quartus 集成开发环境中进行可编程ASIC设计的基本流程如图2.2所示,主要包括设计输入、设计编译、设计校验(时序分析、仿真)和器件编程四个部分。下面将简单介绍一下Quartus 基本流程的各部分。一.设计输入Quartus 支持三种设计输入方法:原理图输入、HDL输入、网表输入,用户可以使用Quartus 自身带的设计输入工具,如模块编辑器(Block Editor)、文本编辑器(Text Editor)和Mega Wizard Plug-
27、In Manager,也可以利用其他的设计输入/综合工具来建立设计文件。但输入方法不同,生成的设计文件类型也会有所不同。另外,Quartus 还支持层次化的设计方法,用户可以将一个完整的设计逐层分解成规模小的子设计单元,每个设计单元用一个设计文件来描述,而描述整个设计的设计文件被称为顶层设计文件。用Quartus 进行层次化的设计时,每个设计文件的设计输入方式都可以有多种选择,如原理图输入、HDL输入或网设计输入设计要求设计编译设计校验器件编程可编程ASIC图1.3 Quartus 的基本设计流程表输入,但要注意的是,顶层设计文件的扩展名只能是.bdf .tdf .vhd .vhdl .v.v
28、lg .edif或.deaf二.设计编译Quartus 提供一个编译设置向导,可以方便地完成所有的编译参数设置的功能,通过这个编译设置向导,可以让Quartus 自动选择FPGA器件或由用户指定FPGA器件,可以选中是否运行延时分析及是否运行仿真等,还可以选择要执行编译的类型。可选的编译类型包括二种:1.只是综合并输出网表。这种编译可以编译设计文件,综合产生门级代码,编译器只运行到综合这步就停止了,因此,编译器只产生估算的延时数值。2.完全的编译,包括编译,网表输出,综合,配置器件,时序分析等。这种编译方法,编译器要将设计配置到Altera器件中去,编译器根据器件特性会产生真正的延时时间和给器
29、件的配置文件。三.延时分析及仿真为了让设计的仿真结果能够与电路的实际运行结果相吻合,Quartus 还提供了详细的延时分析工具。Quartus 延时分析工具支持对单个时钟或多个时钟的延时分析。通过Quartus 的延时分析能够分析出不同类型的延时信息,包括没有布局布线的延时信息、经过布局布线的延时信息、混合的树状层次型设计等。Quartus 支持多种仿真方法,包括:波形输入方法,.vwf(向量波形文件),这是Quartus 中最主要的波形文件;.vec(向量文件),这是MAX+PLUS 中的文件,主要是为了向下兼容;.tbl(列表文件),用来将MAX+PLUS 中的.scf文件输入到Quart
30、us 中,也可以将.vwf文件保存成.tbl文件,然后通过MATLAB软件、提取其中的数据,用来对仿真结果的分析。此外,Quartus 还支持Testbench(仿真测试向量文件)和Tcl仿真脚本文件。四. 器件编程器件编程就是利用Quartus 的编程器(Programmer)工具模块和编程硬件(如MasterBlaster和ByteBlaster通信电缆),将编译器产生的编程文件下载到可编程逻辑器件中去。2 有限冲激响应(FIR)滤波器的原理及设计2.1数字信号处理基础原理1 数字信号系统概述自从60年代,特别是1965年快速傅立叶变换(FFT)的问世以来,随着计算机和信息学科的飞速发展,
31、数字信号处理(Diginal Signal Processing,DSP)技术应运而生并迅速发展,现已形成一门独立的学科体系。DSP是利用数字计算机或专用数字处理设备对信号进行分析、变换、综合、滤波、估值与识别等加工处理,随着在规模集成电路和计算机技术的迅猛发展,数字信号处理技术已广泛应用于通信、语音、雷达、地震预报、声纳、遥感、生物医学、电视、控制系统、水利工程、故障检测、仪器仪表等领域。数字信号处理技术及设备具有灵活、精确、抗干扰强、设备尺寸小、造价低、速度快等突出优点,这些都是模拟信号处理技术与设备所无法比拟的2 离散时间信号与系统一个离散时间系统可以抽象为一种变换或是一种映射,即把输入
32、序列变换为输出序列:,式中T代表变换。这样,一个离散时间系统既可以是一个硬件装置,也可以是数字表达式,即 若一个离散时间系统同时具有线性和移不变性的离散时间系统称为线性移不变性(Linear Shift Invariant,LSI)离散时间系统。线性:即该系统的输入、输出之间满足叠加原理;移不变性:设离散时间系统对x(n)的响应是y(n),如果将x(n)延迟k个抽样周期、输出y(n)也相应地延迟了k个抽样周期。离散时间系统(LSI)分为有限冲激响应(Finite Impulse Response,FIR)系统和无限冲激响应(Infinite Impulse Reponse,IIR)系统。且对一
33、个LSI系统我们可以用四种不同的方法描述它: 频率响应: 2.1.1 转移函数: 2.1.2 差分方程: 2.1.3 卷积关系: 2.1.43 离散时间信号的傅立叶变换及DFT 简单介绍一下连续时间信号的傅立叶变换及傅立叶级数的基本概念,然后着重讨论离散信号的抽样定理,最终引导出时域和频域都取离散值的离散傅立叶变换即DFT。DFT是数字信号处理中最基本,也是最重要的运算。连续时间信号傅立叶变换: 设为一连续时间信号,则的傅立叶变换为 2.1.5其反变换为 2.1.6其中为角频率,单位为rad/s。是的连续函数,称为信号的频率密度函数或频谱密度函数或简称为频谱。(1) 离散时间信号的傅立叶变换(
34、DTFT的定义)对任意的,其离散时间的傅立叶变换(DTFT)为 2.1.7 2.1.8由式2.1.8我们可以看出是的周期函数,周期为。而且由序列z变换的定义很容易得到式2.1.9 2.1.9即DTFT是z仅在单位圆上取值z变换。 DTFT的反变换公式为 2.1.10(2) DFT的定义DFT对应的是在时域、频域都是有限长且都是离散的,其正变换为 2.1.11反变换为 2.1.12(3) 抽样定理抽样定理是连接离散信号和连续信号的桥梁,是进行离散信号处理与离散系统设计的基础。将连续信号和冲激串函数相乘。即可得到离散信号, 2.1.13其中冲激串函数为:,它是时域的周期信号,周期为,则和的傅立叶变
35、换如式2.1.14和式2.1.15所示 2.1.14 2.1.15由上述两式可以得到 2.1.16 将连续信号经抽样变成后,的频谱将变成周期的。相对频率,周期为,相对圆频率,周期为。变成周期的方法是将在频率轴上以为周期作移位后再叠加并除以Ts。这种现象又称为频谱的周期延拓。则在保证抽样频率,则可由恢复出,即保留了的全部信息。是最小抽样频率,即“Nyquist频率”,称为折叠频率。2.2 FIR滤波器背影知识 有限冲击响应(FIR)滤波器和无限冲击响应(IIR)滤波器广泛应用于数字信号处理系统中。IIR数字滤波器方便简单,但它相位的线性,要采用全通网络进行相位校正。图象处理以及数据传输都要求信道
36、具有线性相位特性,有限冲击响应(FIR)滤波器具有很好的线性相位特性,因此越来越受到广泛的重视。1 IIR和FIR数字滤波器的比较:首先,从性能上说,IIR滤波器传输函数的极点可位于单位圆内的任何地方,因此可用较低的阶数获得高的选择性,所用的存贮单元少,所以经济而效率高,但是这个高效率是以相位为代价的。选择性越好,则相位非线性越严重。相反,FIR滤波器却可以得到严格的非线性相位,然而由于FIR滤波器传输函数的极点固定在原点,所以只能用较高的阶数达到高的选择性;对于同样的滤波器设计指标,FIR滤波器所要求的阶数可以比IIR滤波器高510倍,结果,成本高,信号延时也较大;如果按相同的选择性和相同的
37、线性要求来说,则IIR滤波器就必须加全同网络进行相位校正,同样要大大增加滤波器的节数和复杂性。从结构上看,IIR滤波器必须采用递归结构,极点位置必须在单位圆内,否则系统将不稳定。另外在这种结构中,由于运算过程中对序列的舍入处理,这种有限字长效应有时会引起寄生振荡。相反,FIR滤波器主要采用非递归结构,不论在理论上还是在实际的有限精度运算中都不存在稳定性的问题,运算误差较小。FIR滤波器采用快速傅立叶变换算法,在相同阶数的条件下,运算速度快的多。从设计工具看,IIR滤波器可以借助与模拟滤波器的成果,计算工作量比较小,对计算工具的要求不高。FIR滤波器的设计只有计算程序可循,对计算工具要求不高。从
38、上面简单比较看出IIR与FIR滤波器各有所长,在实际应用中应从多方面来加以选择。在相位要求不敏感的场合,用IIR较为合适,可以充分发挥其经济高效的特点。对于图象信号处理,数据传输等以波形携带信息的饿系统,则对线性相位要求高,采用FIR滤波器较好。2有限冲击响应(FIR)滤波器的特点:.系统的单位冲击响应h(n)在有限个n值处不为零。.系统函数H(z)在0处收敛,极点全部在z处(稳定系统)。结构上主要是非递归结构,没有输出到输入的反馈,但有些结构中(例如频率抽样结构)也包含有反馈的递归部分。3有限冲击响应(FIR)滤波器的优点:.既有严格的线性相位又具有任意的幅度.FIR滤波器的单位抽样响应是有
39、限长的,因而滤波器性能稳定.只要经过一定的延时,任何非因果有限长序列都能变成因果的有限长序列,因而能用因果系统来实现4.FIR滤波器用于单位冲击响应是有限长的因而可用快速傅立叶变换(FFT)算法来实现过滤信号,可大大提高运算效率。4 滤波器设计方法有两种:一类是频谱法,即逼近所需要的频率特性;另一类是时域法,既逼近所需要的时间特性。2.3 FIR数字滤波器原理1单位冲击响应h(n)的特点FIR滤波器单位脉冲响应h(n)长度N(0nN-1),其Z变换为:H(z)= 在有限Z平面有(N-1)个零点,而它的(N-1)个极点均位于原点z=0处。因此H(z)永远稳定。稳定和线性相位特性是FIR滤波器突出
40、的优点。2 线性相位条件对于长度为N的h(n),传输函数为H()= 2.3.1H()=H() 2.3.2式中,H()称为幅度特性,称为相位特性。H()线性相位是指是的线性函数,即=-,为常数 2.3.3=- , 是起始相位 2.3.4一般称满足(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)为实数,且满足以下任一条件:偶对称
41、h(n)=h(N-1-n)奇对称h(n)=-h(N-1-n)其对称中心在n=(N-1)/2处,则滤波器具有准确的线性相位。3线性相位特点及幅度函数的特点第一类线性相位条件即h(n)偶对称时,幅度函数H()和相位函数分别为H()= 2.3.5=-(N-1) 2.3.6第二类线性相位条件即h(n)奇对称时,幅度函数H()和相位函数分别为H()=- 2.3.7=-()- 2.3.8由于h(n)的长度N取奇数还是偶数,对H()的特性有影响,因此,对于两类线性相位,下面我们分四种情况讨论其幅度特性的特点。1) h(n)=h(N-n-1),N=奇数按照2.3.5式,幅度函数H()为H()= 式中h(n)对
42、(N-1)/2偶对称,余弦项也对(N-1)/2偶对称,可以以(N-1)/2为中心把两两相等的项进行合并,由于N是奇数,故余下中间项n=(N-1)/2。则H()=h()+令m=(N-1)/2-n,则有H()=h()+ 2.3.9H()=式中a(0)=h() a(n)=2h(-n),n=1,2,3,按照2.3.9式,由于式中cos项对=0,皆为偶对称,因此幅度特性的特点是对=0,是偶对称的。同理可知: 2) h(n)=h(N-n-1),N=偶数H()= 2.3.10式中b(n)=2h(-n),n=1,2,按照2.3.10式,=时,由于余弦项为零,且对=奇对称,因此这种情况下的幅度特性的特点是对=奇
43、对称,且在=处有一零点,使H()=0,这样,对于高通和带阻不适合采用这种情况。3) h(n)=-h(N-n-1),N=奇数H()= 2.3.11式中c(n)=2h(-n),N=1,2,.,由于在=0,时,正弦项为零,因此幅度特性H()在=0,处为零,即在z=处是零点,且H()对=0,呈奇对称形式。4) h(n)=-h(N-n-1),N=偶数H()= 2.3.12式中d(n)=2h(-n),n=1,2,3,由2.3.12式,因为正弦项在=0,处为零,因此幅度特性H()在=0,处为零,即在z=处有一个零点,且H()对=0,奇对称形式,对=呈偶对称。结论:(1)h(n)偶对称H()= 2.3.5=-
44、(N-1) 2.3.6幅度函数H()包括正负值,相位函数是严格线性相位,说明滤波器有(N-1)/2个抽样的延时,它等于单位抽样响应h(n)长度的一半。图1中,线性相位无附加相移,幅度函数在处存在零点,且对=呈奇对称,因此不适合作高通滤波器。图2中,线性相位无附加相移,幅度函数在=0呈偶对称,因此适合做低通、高通滤波器。(2)h(n)奇对称H()=- 2.3.7=-()- 2.3.8相位函数仍是线性,但在零频率(=0)处有/2的截距。不仅有(N-1)个抽样的延时,还产生一个/2的相移。图3中,线性相位有附加相移,幅度函数在0、2处为零点,且对=0、2呈奇对称,对=呈偶对称。图4中,线性相位有附加
45、相移,幅度函数在0处为零,且对=0呈奇对称。图3、图4所示的滤波器均适合在微分器和移相器中应用。4线性相位FIR滤波器零点位置由H(z)=H()可以得出,如果z=是H(z)的零点,则z=1/也一定是H(z)的零点,当h(n)是实数时,H(z)的零点必成共轭对出现,所以1/也一定是H(z)的零点。因而线性相位FIR滤波器的零点必是互为倒数的共轭对。2.4 利用窗函数法设计FIR滤波器1设计思路设希望设计的滤波器传输函数为(),(n)是与其对应的单位脉冲响应,(n)= 首先给定所要求的理想滤波器频率响应(),由()导出(n),但它是无限长序列,且是非因果序列。而要设计的FIR滤波器,其h(n)是有限长,所以要用一个有限长h(n)来逼近函数:(n)=,有效方法是截取(n)或取窗函数(有限长度),一般表示为h(n)=(n)(n),这里(n)就是窗口函数。常用的窗口函数有矩形窗、三角形窗、升余弦窗(汉宁窗)、改进的升余弦窗(海明窗)、二阶升余弦窗(布拉克曼窗)、凯塞窗。对窗函数一般有两个方面的要求:(1)主瓣尽可能窄,以使设计出的滤波器具有较陡的过渡带。(2)旁瓣尽可能少,即应使其能量集中在主瓣内,使设计出的滤波器肩峰和余振较小,阻带衰减较