基于DSP的FIR滤波器设计_第1页
基于DSP的FIR滤波器设计_第2页
基于DSP的FIR滤波器设计_第3页
基于DSP的FIR滤波器设计_第4页
基于DSP的FIR滤波器设计_第5页
已阅读5页,还剩60页未读 继续免费阅读

下载本文档

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

文档简介

1、摘要 本文阐述了数字滤波器的特点和设计方法,对FIR和IIR滤波器进行了比较,对数字滤波器的应用范围、应用前景和发展历程作了详细的说明。介绍了利用MATLAB设计FIR滤波器的各种方法(包含窗函数设计法、频率样本设计法、等波动法和最小二乘法)以及如何用MATLAB中的滤波器设计工具fdatool设计各种类型的滤波器。 选用TMS320LF2407A作为处理芯片进行硬件电路设计,根据最小系统的设计要点和注意事项设计了外围电路,包括时钟信号产生电路、DSP芯片供电电源电路、A/D数据采集、D/A数据恢复、前置放大电路及SPI串行通信接口电路、SPI接口寄存器配置等基本内容,结合外围电路原理完成系统

2、原理图硬件电路设计。 软件设计中通过MATLAB/SIMULINK环境中图形化的方式建立数字信号处理的模型进行DSP的设计和仿真验证,将设计的图形文件.mdl直接转换成C语言程序在CCS中运行。软件通过添加A/D, D/A接口程序,调试、编译后就可以下载到DSP目标板中。利用MATLAB软件开发产品加速了开发周期,比直接在CCs中编程方便快捷了很多,对于任何复杂功能的DSP系统,只需要进行少量的添加和修改就能完成功能正确的C语言程序设计。 以一个FIR数字带阻滤波器的实现为例对TMS320LF2407A硬件接口电路及DSP程序进行调试,使之达到设计指标。设计的电路通过软件进行了验证并进行了环境

3、实验,多次实验证明了电路工作稳定,满足设计要求。同时验证了FIR数字滤波器的线性相位,从该滤波器的相频响应曲线可以看出,滤波器输入和输出波形只有时间上的延迟,没有波形畸变。该FIR滤波器的相位响应可为严格的线性,因此它不存在延迟失真,只有固定的时间延迟,适用于图像信号处理、数据传输等以波形携带信息的系统。关键词:MATLAB, DSP, FIR,数字滤波器ABSTRACT This article tells us the characteristics and design methods of digital filter, Itcompared FIR with IIR digital

4、filter and detailedly narrated the application area、application foreground and development of digital filter. It particularly introducesthe design method of FIR digital filter based on the software MATLAB and how todesign digital filters with fdatool which is the filter designing tool of MATLAB. Cho

5、ose the TMS320LF2407A as the processing chip to design the hardwarecircuit, on the basis of the designing point, design the peripheral circuit, such asclock signal circuit, power supply circuit, A/D conversion, D/A conversion, dataamplifying circuit, SPI communication connection circuit and SPI regi

6、stersconfiguration. Combining the peripheral circuit finish the system hardware circuit. In the software designing, using MATLAB/Simulink set up the model of datasignal processing and going along the imitating. The figure file can be made into theC language program which is downed into the DSP aimin

7、g board. This programneeded appending A/D and D/A meeting program, debugging and editing. It candesign and realize many functions using these models and other digital signalprocessing models under the condition of Simulink. The program can be modifiedand edited in the development environment CCS. MA

8、TLAB accelerate developingperiod and be more convenient than CCS. This article give the hardware interface circuit designing and a C languageprogram of digital bandstop filter, choosing the TMS320LF2407A and imitating themodule of digital filtering processing in the MATLAB/Simulink. The program hasa

9、lready been applied in the hardware circuit. Many tests has proved that theprogram works stably and meets the designing needs. At the same time, the linearphase of FIR digital filter is proved, that is, the input and output wave has nodistortion but time delay.Key Words: MATLAB,DSP,FIR, Digital filt

10、errr目录第1章绪论.1 1.1课题研究的目的及意义.1 1.2课题研究的现状.3 1.3本课题研究的内容.5第2章系统设计的理论基础.6 2.1系统设计的理论依据. 6 2.1.1数字滤波器的概述.,.6 2.1.2 FIR和IIR滤波器的比较.8 2.1.3 FIR滤波器的设计方法.9 2.1.4 FIR滤波器设计的一些深入问题.15 2.2开发工具及环境.17 2.2.1 MATLAB中的滤波器设计工具.17 2.2.2 DSP芯片开发工具.19 2.3本章小结.,.,.23第3章硬件设计.24 3.1滤波器设计指标.24 3.2 DSP芯片的选择.24 3.3硬件设计过程.27 3.

11、3.1电源设计及外部时钟信号输入.,.27 3.3.2 A/D与DSP芯片的连接.27 3.3.3 D/A与DSP芯片的连接.31 3.4本章小结.,.,.,.,.,二34第4章软件设计.35 4.1用MATLAB建立滤波模型.,.35 4.2程序设计,.,.,.,.38 4.2.1初始化设置.38 4.2.2程序流程.,.40 4.2.3程序清单.,.,.,.,.46 4.3设计结果.一 4.4本章小结.第5章总结与展望. 5.1全文总结.、. 5.2心得体会., 5.3进一步工作展望.附录1:接口程序.附录2:原理图.参考文献.致谢.,.第1章绪论1.1课题研究的目的及意义 数字信号处理器

12、(DSP)已经发展了20多年,最初仅在信号处理领域内应用,近年来随着半导体技术的发展,其高速运算能力使很多复杂的控制算法和功能得以实现,同时将实时处理能力和控制器的外设功能集于一身,在控制领域内也得到很好的应用。数字控制系统克服了模拟控制系统电路功能单一、控制精度不高的缺点,它抗干扰能力强,可靠性高,可实现复杂控制,增强了控制的灵活性。所谓信号处理是指对信号进行滤波、变换、分析、加工、提取特征参数等的过程川。在电子仪器和测量中,最典型的是用频谱分析仪对信号进行频谱分析,从而了解和取得信号的频率(或频谱)特性。在现代计算机和相关的技术发展起来以前,这一过程只能用传统频谱分析仪实现。众所周知,这种

13、传统的频谱分析仪,无论在设计制造还是所采用的元器件方面,都要求较高的水平。尤其是频率范围宽、指标高的,设计制造的难度就更高,而其价格也非常昂贵。自从计算机及随之而兴起的数字信号处理技术发展和日趋成熟起来以后,信号频谱分析的途径,正在逐步由D SP所取代2。随着信息时代和数字世界的到来,数字信号处理己成为一门极其重要的学科和技术领域,它在通信、语音、图像、自动控制、雷达、军事、航空航天、医疗和家用电器等众多领域得到了广泛的应用。在数字信号处理应用中,数字滤波器十分重要并以获得广泛应用。 作为信号处理,和频谱分析最直接相关的是傅立叶(傅立叶)变换即 FFTo人们已经熟知,离散傅立叶变换(即DFT)

14、和数字滤波是数字信号处理器的基本内容。目前,DFT已有许多实用有效的快速DFT算法即FFT算法和软件,其性能主要决定于采样(实际上还包括模/数转换)率和处理器的运算速度。将任意信号(主要是反映客观物理世界的各种变化量,而且多半是连续变化的模拟量)转换为能够由处理器处理的数字数据这一过程称为”数字化”,它包括采样和量化两个步骤,量化即通常所说的模/数转换。采样的速率和被处理的信号有关。为了保证数字化后的信号数据不丧失原信号的特性,采样频率应大于或至少等于信号截止频率的2倍。这就是著名的奈奎斯特伽yquist)采样定理,或称奈奎斯特采样率。奈奎斯特采样定理是很容易证明的。至于处理器的运算速度,众所

15、周知,现在的微机己达数百甚至上千兆赫的水平。为了提高或实现主要是FFT等运算的高速化,美国德州仪器公司(TI)很早开始就一直致力于专用的数字信号处理器芯片的研制和生产。著名TMS320系列芯片已为科技界所熟知。据最近报道,新的TM320C64 x的运行速度己高达600MHz,其内核的8个功能单元能在每个周期同时执行4组16位MAC运算或8组8位MAC运算。单个C 64x DSP芯片能同时完成一个信道的MPEG4视频编码,一个信道的MPEG4视频解码和一个MPEG2视频解码,并仍有50%的余量留给多通道语音和数据编码,自然,还有其他一些厂商也研制生产了不少品种专用或通用的数字信号处理器芯片。 数

16、字滤波作为数字信号处理的重要组成部分有着十分广泛的应用前景,可作为应用系统对信号的前置处理。同时用DSP芯片实现数字滤波除了具有稳定性好、精确度高、不受外界影响等优点外,还具有灵活性好的特点,可对DSP芯片编程来实现数字滤波的参数修改,进而十分方便地修改滤波器的特性。因此基于DSP的数字滤波被广泛应用于语音、图像、软件无线电等领域,具有广阔的发展空间。 在数字信号处理中,数字滤波占有极其重要的地位。数字滤波是语音和图象处理、模式识别、谱分析等应用中的一个基本处理算法。在许多信号处理应用中使用数字滤波器代替模拟滤波器是有利的。数字滤波器容易实现不同的幅度和相位频率特性指标,克服与模拟滤波器器件性

17、能相关的电压漂移、温度漂移和噪声问题。用DSP芯片实现数字滤波除了具有稳定性好、精确度高、不受环境影响外,还具有灵活性好的特点。用可编程DSP芯片实现数字滤波可通过修改滤波器的参数十分方便的改变滤波器的特性。几乎每一科学和工程领域例如声学、物理学、通信、数据通信、控制系统和雷达都涉及信号。在许多应用中都希望根据期望的指标把一个信号的频谱加以修改、整形或运算。这些过程都可能包含衰减一个频率范围阻止或隔离一些频率成分。数字滤波器扩展了应用范围,例如数字图象处理、模式识别、谱分析等。 数字滤波在数字信号处理中占有重要的地位,数字滤波器又分为无限冲激响应滤波器(IIR)和有限冲激响应滤波器(FIR).

18、 FIR滤波器具有不含反馈环路、结构简单以及可以实现的严格线性相位等优点,因而在对相位要求比较严格的条件下,易采用FIR数字滤波器。同时,由于在许多场合下,需要对信号进行实时处理,因而对于单片机的性能要求也越来越高。普通的单片机例如MCS 51难以满足这一要求。由于DSP控制器具有许多独特的结构,例如采用多组总线结构实现并行处理,独立的累加器和乘法器以及丰富的寻址方式,采用DSP控制器就可以提高数字信号处理运算的能力,可以对数字信号做到实时处理。 用可编程DSP芯片实现数字滤波可通过修改滤波器的参数十分方便的改变滤波器的特性。几乎每一科学和工程领域例如声学、物理学、通信、数据通信、控制系统和雷

19、达都涉及信号。在许多应用中都希望根据期望的指标把一个信号的频谱加以修改、整形或运算。这些过程都可能包含衰减一个频率范围阻止或隔离一些频率成分。数字滤波器扩展了应用范围,例如数字图象处理、模式识别、谱分析等。一个带宽受限的连续时间信号能够通过采样的方法变换成离散时间信号,经过处理后离散时间信号能够转换回连续时间信号。有限长单位冲激响应(FIR)数字滤波器,与传统的通过硬件电路实现的模拟滤波器相比有以下几大优点, (1)简化了硬件电路的设计,提高了硬件电路的集成度和可靠性。 (2)对干扰信号的抑制能力有了明显提高,这对系统的控制精度和稳定性的提高起到了促进作用。 (3)数字滤波器的参数调节比起模拟

20、滤波器来更加方便、灵活。 数字信号处理(Digital Signal Processing)是利用专用处理器或计算机,以数字的形式对信号进行采样、变换、滤波、增强、压缩、识别等处理,以得到符合人们要求的信号形式。数字信号处理器(Digital Signal Processor,简称DSP)是一种处理数字信号的专用微处理器,主要应用于实时快速地实现各种信号的数字处理算法。它在结构上针对数字信号处理的特点进行了改进和优化,并且增加了特殊的指令专门用于数字处理,因而处理速度更快,效率更高。1.2课题研究的现状 凡是有能力进行信号处理的装置都可以称为滤波器。在近代电信设备和各类控制系统中,滤波器应用极

21、为广泛;在所有的电子部件中,使用最多,技术最为复杂的要算滤波器了。滤波器的优劣直接决定产品的优劣,器的研究和生产历来为各国所重视。 1917年美国和德国科学家分别发明了LC滤波器,次年导致了美国第一个多路复用系统的出现。20世纪50年代无源滤波器日趋成熟。自60年代起由于计算机技术、集成工艺和材料工业的发展,滤波器发展上了一个新台阶,并且朝着低功耗、高精度、小体积、多功能、稳定可靠和价廉方向努力,其中小体积、多功能、高精度、稳定可靠成为70年代以后的主攻方向。导致RC有源滤波器、数字滤波器、开关电容滤波器和电荷转移器等各种滤波器的飞速发展,到70年代后期,上述几种滤波器的单片集成已被研制出来并

22、得到应用。80年代,致力于各类新型滤波器的研究,努力提高性能并逐渐扩大应用范围。90年代至现在主要致力于把各类滤波器应用于各类产品的开发和研制。当然,对滤波器本身的研究仍在不断进行。 我国广泛使用滤波器是50年代后期的事,当时主要用于话路滤波和报路滤波。经过半个世纪的发展,我国滤波器在研制、生产和应用等方面已纳入国际发展步伐,但由于缺少专门研制机构,集成工艺和材料工业跟不上来,使得我国许多新型滤波器的研制应用与国际发展有一段距离。我国现有滤波器的种类和所覆盖的频率己基本上满足现有各种电信设备。从整体而言,我国有源滤波器发展比无源滤波器缓慢,尚未大量生产和应用。从下面的生产应用比例可以看出我国各

23、类滤波器的应用情况:LC滤波器占50%;晶体滤波器占20%:机械滤波器占15%;陶瓷和声表面滤波器各占1%;其余各类滤波器共占13%。从这些应用比例来看,我国电子产品要想实现大规模集成,滤波器集成化仍然是个重要课题。 在上一个世纪中,电滤波器的发展经历了从无源到有源和从模拟到数字两个过程。高精度无源滤波器从设计到制造都是难度非常高的技术。有源滤波器虽然很大地改进了滤波器的性能,也降低了一些制造工艺的难度,但从其性能的大幅度改进,与其它信号处理技术的结合,实现的手段之便捷,还是要数数字滤波器后来居上。随着电子工业的发展,对滤波器的性能要求越来越高,功能也越来越多,并且要求它们向集成方向发展。我国

24、滤波器研制和生产与上述要求相差甚远,为缩短这个差距,电子工程和科技人员负有重大的历史责任阴。所以,对滤波器的研究和生产历来为各国所重视。 1917年美国和德国科学家分别发明了LC滤波器,次年导致了美国第一个多路复用系统的出现。20世纪50年代无源滤波器日趋成熟。自60年代起由于计算机技术、集成工艺和材料工业的发展,滤波器发展上了一个新台阶,并且朝着低功耗、高精度、小体积、多功能、稳定可靠和价廉方向努力,其中小体积、多功能、高精度、稳定可靠成为70年代以后的主攻方向。导致RC有源滤波器、数字滤波器、开关电容滤波器和电荷转移器等各种滤波器的飞速发展,到70年代后期,上述几种滤波器的单片集成已被研制

25、出来并得到应用。80年代,致力于各类新型滤波器的研究,努力提高性能并逐渐扩大应用范围。90年代至现在主要致力于把各类滤波器应用于各类产品的开发和研制。当然,对滤波器本身的研究仍在不断进行。 我国广泛使用滤波器是50年代后期的事,当时主要用于话路滤波和报路滤波。经过半个世纪的发展,我国滤波器在研制、生产和应用等方面已纳入国际发展步伐,但由于缺少专门研制机构,集成工艺和材料工业跟不上来,使得我国许多新型滤波器的研制应用与国际发展有一段距离。我国现有滤波器的种类和所覆盖的频率己基本上满足现有各种电信设备。从整体而言,我国有源滤波器发展比无源滤波器缓慢,尚未大量生产和应用。从下面的生产应用比例可以看出

26、我国各类滤波器的应用情况:LC滤波器占50%;晶体滤波器占20%:机械滤波器占15%;陶瓷和声表面滤波器各占1%;其余各类滤波器共占13%0从这些应用比例来看,我国电子产品要想实现大规模集成,滤波器集成化仍然是个重要课题。 在上一个世纪中,电滤波器的发展经历了从无源到有源和从模拟到数字两个过程。高精度无源滤波器从设计到制造都是难度非常高的技术。有源滤波器虽然很大地改进了滤波器的性能,也降低了一些制造工艺的难度,但从其性能的大幅度改进,与其它信号处理技术的结合,实现的手段之便捷,还是要数数字滤波器后来居上。随着电子工业的发展,对滤波器的性能要求越来越高,功能也越来越多,并且要求它们向集成方向发展

27、。我国滤波器研制和生产与上述要求相差甚远,为缩短这个差距,电子工程和科技人员负有重大的历史责任。武汉理工大学硕士学位论文1.3本课题研究的内容 本课题主要研究的是利用MATLAB/SIMULINK功能实现数字滤波系统的原理和算法,通过MATLAB软件编译成为特定规范的C语言,这种C语言能够再编译成为特定的DSP芯片的汇编语言,在DSP芯片集成开发环境CCs中调试后将可执行程序烧写到硬件电路中运行,实现数字滤波功能。武汉理工大学硕士学位论文第2章系统设计的理论基础2 .1系统设计的理论依据2.1 .1数字滤波器概述 所谓数字滤波器,是指输入输出均为数字信号,通过一定的运算关系改变输入信号中所含的

28、频率成分的相对比例,或者滤除某些频率成分的器件。若其系统函数为H (z),其脉冲响应为h(n),对输入时间序列为x(n),若输出时间序列为y(n),则它们在时域内有如下关系: y(n) -h(n)* x(n) (2-1)在z域内有如下关系: y(z) -h(z)* x(z) (2-2)式中x(z), y(z)分别是x(n), y(n)的z变换。在频域内有如下关系: Y(jw)=h(jw)*x(jw) (2-3)式中how)是数字滤波器的频率特性;xOw), yOw)分别是x(n), y(n)的频谱,而w是数字角频率。 数字滤波器总体可以分为两大类,一类称为经典滤波器,输入信号中的有用成分和希望

29、滤除的成分占用不同的频带,通过适当的选频滤波器可实现滤波;另一类称为现代滤波器,如维纳滤波器、卡尔曼滤波器等,其输入信号中有用信号和希望滤除的乘法频带交叠。对于经典滤波器,从频域上还可以分为低通、高通、带通、带阻滤波器。从时域特性上来看,数字滤波器还可以分为有限冲激响应数字滤波器(FIR)和无限冲激响应数字滤波器(IIR )。对于有限冲激响应数字滤波器(FIR)其输出y(n)只取决于有限个过去和现在的输入x(n),x(n-1). x(n-m);对于无限冲激响应数字滤波器(IIR ),它的输出不仅取决于过去和现在的输入,还跟过去的输出有关。FIR和IIR滤波器不论是在性能还是在设计方法上都有着很

30、大的区别,FIR滤波器可以根据给定的频率特性直接设和IIR,其设计步骤如下: (1)确定指标:在设计一个滤波器前必须有一些指标,这些指标需要根据应用确定。 (2)模型逼近:一旦确定了指标就可以利用一些基本原理和关系式提出一个滤波器模型来逼近给定的指标体系。这是滤波器设计所要研究的主要问题。 (3)实现:上面两步结果得到的滤波器通常是以差分方程系统函数或脉冲响应来描述的。根据这个描述用硬件和计算机软件来实现。 对于许多应用来说,数字滤波器一般具有如下差分方程: y(n)=kx(n-k)+bky(n-k) (2-4)式中,x(n)为输入序列,y(n)为输出序列,ak和bk为滤波器系数,若bk=0,

31、则有:y(n)=I:akx(n-k) (2-5)式(2-5)就是FIR滤波器的差分方程,不失一般性,下面我们用 y(n)=j:h(k)x(n-k) (2-6)来表示FIR滤波器的差分方程,对式(2-6)进行z变换,整理后可得到FIR滤波器的传递函数: H (z)=lh(k)z-k在数字滤波器中,FIR滤波器具有如下几个优点: (1)可以在幅度特性随意设计的同时保证精确严格的线性相位; (2)由于FIR滤波器的单位脉冲h(n)是有限长序列,因此FIR滤波器没有不稳定的问题; (3)由于FIR滤波器一般为非递归结构,因此在有限精度运算下,不会出现递归型结构中的极限震荡等不稳定现象,误差较小; (4

32、) FIR滤波器可采用FFT算法实现,从而提高运算效率。 设数字滤波器的传递函数H (e)用下式表示: H(已w)=!H(e W)e,qW (2-8) H (e)为幅频特性,0w为相频特性。幅频特性表示信号通过滤波器后频率成分的衰减情况,相频特性则反应各频率成分通过滤波器后在时间上的延时情况。通常,选频滤波器的指标要求都以幅频特性给出,对相频特性不作要求,如果需要对输出波形有严格要求,如语音合成、波形传输等,则要求设计线性相位数字滤波器。 数字滤波器的参数指标与模拟滤波器类似,它们是wp, ws,助.Rs.其意义与模拟滤波器的参数意义相同,这里不再说明。2.1.2 FIR和IIR数字滤波器的比

33、较 在很多实际应用中如语音和音频信号处理中,数字滤波器来实现选频功能。因此,指标的形式应为频域中的幅度和相位响应。在通带中,通常希望具有线性相位响应。在FIR滤波器中可以得到精确的线性相位。在IIR滤波器中通带的相位是不可能得到的,因此主要考虑幅度指标。IIR数字滤波器的设计和模拟滤波器的设计有着紧密的联系,通常要设计出适当地模拟滤波器,再通过一定的频带变换把它转换成为所需要的数字IIR滤波器。此外,任何数字信号处理系统中也还不可避免地用到模拟滤波器,比如A/D变换器前的抗混叠滤波器及D/A转换后的平缓滤波器,因此模拟滤波器设计也是数字信号处理中应当掌握的技术。 从性能上来说,IIR数字滤波器

34、传递函数包括零点和极点两组可调因素,对极点的唯一限制是在单位圆内。因此可用较低的阶数获得高的选择性,所用的存储单元少、计算量小、效率高。但是这个高效率是以相位的非线性为代价的。选择性越好,则相位非线性越严重。FIR滤波器传递函数的极点是固定在原点,是不能动的,它只能靠改变零点位置来改变它的性能,所以要达到高的选择性,必须用高的阶数,对于同样的滤波器设计指标,FIR滤波器所要求的阶数可能比IIR滤波器高5-10倍,结果成本高信号延时也较大,如果按线性相位要求来说,则IIR滤波器就必须加全通网络进行相位校正,同样大大增加了滤波器的阶数和复杂性。而FIR滤波器却可以得到严格的线性相位。 从结构上看,

35、IIR滤波器必须采用递归结构来配置极点,并保证极点位置在单位圆内。由于有限字长效应,运算过程中将对系数进行舍入处理,引起极点的偏移,这种情况有时会造成稳定性问题,甚至造成寄生振荡。相反,FIR滤波器只要采用非递归结构,不论在理论上还是实际的有限精度运算中都不存在稳定性问题,因此造成的频率特性误差也较小。此外FIR滤波器可以采用快速傅立叶变换算法,在相同的阶数条件下运算速度可以快的多。 从设计工具看,IIR滤波器可以借助模拟滤波器的成果,因此一般都有有效的封闭形式的设计公式可供参考,计算工作量比较小,而且对计算工具的要求不高;FIR滤波器一般没有封闭形式的设计公式。窗函数法设计FIR滤波器也仅给

36、出了窗函数的计算公式,但是在计算通带阻带衰减时无显示表达式。一般FIR滤波器的设计只有计算程序可循,因此它对计算工具要求较高。 在设计和实现上FIR滤波器具有如下优越性: (1)相位响应可为严格的线性,因此它不存在延迟失真,只有固定的时间延迟。 (2)由于不存在稳定性问题,所以设计相对简单。 (3)只包含实数算法,不涉及复数算法,不需要递推运算,长度为M的滤波器(阶数为M-1),它的计算值约为M/2 。另外,也应看到,IIR滤波器虽然设计简单,但主要是用于设计具有分段常数特性的滤波器,如低通、高通、带通和带阻等,往往脱离不了模拟滤波器的格局。而FIR滤波器则要灵活的多,尤其是他易于适应某些特殊

37、应用,如构成数字微分器或希尔伯特变换器等,因而有更大的适应性和广阔的应用领域。从上面的简单比较可以看到IIR与FIR滤波器各有所长,所以在实际应用时应该从多方面考虑来加以选择。从使用要求来看,在对相位要求不敏感的场合,如语言通信等选用IIR较为合适,这样可以充分发挥其经济高效的特点;对于图像信号处理,数据传输等以波形携带信息的系统,则对线性相位要求较高。如果有条件,采用FIR滤波器较好。当然在实际应用中可能还要考虑更多方面的因素。2.1.3 FIR滤波器的设计方法 FIR滤波器的设计方法主要有窗函数设计法和频率抽样设计法,其中窗函数设计法是最基本的设计方法,=III。在设计FIR滤波器中,一个

38、最重要的计算就是加窗,采用矩形窗是最直接和简便的方法,但采用矩形窗存在较大的Gibbis效应,且矩形窗的第一旁瓣与主瓣相比仅衰减13 dB,因此实际设计中一般采用其他窗函数,比较常用的窗函数有Hanning窗、Hamming窗、Blackman窗、Kaiser窗等,采用Hanning窗能使能量集中在主瓣内,第一旁瓣的衰减为31dB,但是主瓣的宽度增加了一倍,采用Hamming窗使99.9%以上的能量集中在主瓣,第一旁瓣的衰减达到43 dB,主瓣的宽度也是矩形窗的2倍。Blackman窗进一步抑制旁瓣,使第一旁瓣的衰减达到58 dB,但主瓣的宽度是矩形窗的3倍,以上三种窗函数都是以增加主瓣宽度为

39、代价换取一定程度的旁瓣抑制。而Kaise:窗可以通过调整参数值来折中选择主瓣宽度和旁瓣衰减,采用Kaise:窗设计FIR滤波器具有很大的灵活性。武汉理工大学硕士学位论文 MATLAB是美国Mathworks公司与1967年推出的软件包,它是一个功能强、效率高、便于进行科学计算和工程计算的交互式软件包,其中包括:一般数值分析、矩阵运算、数字信号处理、建模和系统控制、优化等应用程序。MATLAB中的工具箱(Toolbox)包含了许多实用程序。滤波器设计包含在Toolbox下的Signal中I9I。目前,新版本的MATLAB软件(MATLAB7.1)已经集成了TI公司的C2000, C5000, C

40、6000系列DSP的开发工具包,可在MATLAB/SIMULINK环境中用图形化的方式进行DSP的设计和仿真验证,并能将设计的图形文件.mdl直接转换成C语言程序,其中C2000系列的开发工具是Embedded Target for TI C2000 DSP。该工具包是TI公司与Mathmorks公司共同开发的产品,在MATLAB/SIMULINK环境中嵌入了eXpressDSP工具箱,支持C24X及C28X系列的DSP处理器。在C24X系列DSP工具箱中包含了DSP处理器中的模/数转换ADC, CAN发送及接收、PWM控制等模块。用户可以在MATLAB中调用这些图形化的功能模块及S IMUL

41、INK环境中的其他模块建立数字信号处理的模型,并可以对模块进行仿真验证,然后生成DSP的C语言代码及CCS的工程项目文件,在CCS中修改、编译后就可以下载到DSP目标板中运行。 MATLAB提供了相应的子程序来实现窗函数,例如: wd=boxcar(N)数组wd中返回N点矩形窗函数 wd=triang(N)%数组wd中返回N点三角窗函数 wd=hanning(N)%数组wd中返回N点汉宁窗函数 wd=hamming(N)%数组wd中返回N点哈明窗函数 wd=blackman(N)%数组wd中返回N点布莱克曼窗函数 wd=kaiser(N, beta)%数组wd中返回给定beta值时N点凯泽窗函

42、数 这些函数的输入一般只要窗函数的长度N就够了,只有凯泽窗还需要规定beta值。输出变元就是中心值归一化为1的窗函数序列wd,它是列向量。MATLAB是用颜色区分并标注各条曲线的,在黑白印刷时无法表示。用户可以在计算机上得到相似的以不同颜色区分的图形。用窗函数设计FIR滤波器的步骤为: (1)根据对过渡带宽及阻带衰减要求,选择窗函数的类型并估计窗口长度N。窗函数类型可根据其阻带最小衰减As的条件独立选择,因为其长度N对阻带最小衰减没有影响。在确定窗函数类型后,就可以根据过渡带宽小于给定指标的条件,确定所拟用的窗函数长度N,设待求滤波器的过渡带为w,它近似与窗口长度N成反比。窗函数类型确定后,其

43、计算公式也确定了,不过这些公式是近似的,得出的长度还要在计算中逐步修正。原则是在保证阻带最小衰减满足要求的情况下尽量选择较小的N。在N和窗函数类型确定后即可用MATLAB中的窗函数求出wd。 (2)根据待求滤波器的理想频率响应求出单位脉冲响应hd(n)。如果给出待求滤波器的频率响应为 hd(eW),那么其单位脉冲响应用傅立叶反变换求出。在一般情况下,hd(n)是不能用封闭公式表示的,需要采用数值方法,从w=0到w=2pi采样N点,靠IDFT求出。对于分段为常数的理想幅频特性,可以利用MATLAB编出一个计算理想低通滤波器频率特性的子程序。其他选频滤波器特性都可以由低通特性合成。因此可以调用这个

44、子程序进行代数运算得到其理想特性。其子程序如下: function hd=ideallp(wc, N); % hd=点0到N-1之间的理想脉冲响应 %wc=截止频率(弧度) %N=理想滤波器的长度 tao=(N-1)/2; n=(0: (N-1); m=n-tao+epa;%加一个小数以避免零作除数 hd=sin(wc*m)./(pi*m); 对于高通、带通、带阻以及多段滤波特性而言,只要其理想频率特性是矩形的,都可以表为几个理想低通滤波器的叠加。 (3)计算滤波器的单位脉冲响应h(n)。它是理想脉冲响应和窗函数的乘积h(n)=hd(n)*wd(n),在MATLAB中用点乘命令表示为h=hd.

45、 *wd. hd在第二步中求得它是一个行向量,wd在步骤1中求得,它也必须是一个同样长度的行向量,但是在MATLAB中调用的窗函数都是列向量,这时需要把它转置一次,窗函数wd对(N-1)/2点是偶对称的,因此产生的h(n)的对称性完全取决于理想脉冲响应hd(n)的对称性,与窗函数无关。 (4)验算技术指标是否满足要求。为了计算数字滤波器在频域中的特性,可以用freqz子程序。为了方便检查有关滤波器设计的所有指标,利用这个子程序,开发一个扩展版本叫做myfreqz,它同时给出绝对的和相对的dB值幅度响应,相位响应以及群延迟响应。 Function db, mag, pha, grd, w=myf

46、reqz(b, a),- %子程序的改进版本 %-一 % dB,mag, pha, grd, w=myfreqz(b,a); % dB=0到pi弧度区间内的相对振幅 % mag=0到pi弧度区间内的绝对振幅 % pha=0到pi弧度区间内的相位响应 % grd=0到pi弧度区间内的群延迟 % b=Ha(z)的分子多项式系数(对FIR, b=h) % a=Ha(z)的分母多项式系数(对FIR, a=1) H, w=freqz(b,a, 1000, whole); H=(H(1:1:501); w=(w(1:1:501); mag=abs(H); %计算绝对幅值 dB=20*log 10(mag+

47、eps)/max(mag); %计算相对振幅dB pha=angle(H); %计算相位响应 grd=grpdelay(b, a, w); %计算群延迟 将设计出的滤波器系数向量代入,调用这个子程序,就可以得到它的频率响应的所有指标。 (5)如果不满足要求,可根据具体情况,调整窗函数类型和长度,重复前面步骤,直到满足要求为止。 窗函数法是从时域出发的一种设计方法。它从理想频率特性出发用该特性的傅立叶反变换作为滤波器系数,由于要使它可以实现,并改善它的特性而加窗截断,使实际滤波器的频率响应偏离理想值,产生了通带波动阻带衰减和过渡带。自然会产生一个问题,是不是可以不绕弯先在频率修改滤波器的预期频率

48、特性,使它不要太理想,接近于实际的需要和可能,然后直接用它的傅立叶反变换作为滤波器系数?答案是肯定的,因为这种设计方法要用IDFT,预期频率特性不是以连续函数的形式,而是在一组离散的频点上给出它的样本值,所以这种设计方法称为频率样本法。由于希望把预期频率特性的傅立叶反变换作为滤波器系数,在设定预期频率特性时就必须根据以下几条基本原则: (1)预期频率特性的样本数应等于滤波器的长度N,并在单位圆上等间隔分布; (2)作为复数序列的预期频率特性应具有共扼对称性,以保证其傅立叶反变换所得系数为实序列;因此其幅频特性应为偶函数,相特性应为奇函数; (3)预期频率特性的相位特性应该与频率成线性关系;这意

49、味着其幅频特性及其反变换所得序列应该具有对称或反对称的特点。频率样本法的特点是: (1)在采样频率上的逼近误差为零,也就是理想和实际响应的差为零; (2)其余频率上的逼近误差取决于理想响应的形状:理想响应的轮廓越陡,则逼近误差越大; (3)靠近带的边缘的误差大,在带内的误差小。 频率样本法目前有两种设计方法,第一种直接用上面的基本思想,对逼近误差不加任何限制;也就是说无论设计所得的误差有多大我们都接受,这种方法口q朴素设计法。第二种方法则通过改变过渡带的样本值,努力使阻带中的误差极小化,以便产生一个较好的设计,这种方法叫最优设计法。 频率样本法设计滤波器最大的优点是直接从频率域进行设计,比较直

50、观,也适合于设计具有任意幅度特性的滤波器。缺点是边缘频率不易控制。如果增加采样点数N,对确定边缘频率有好处,但N加大会增加滤波器的成本。因此它适合于窄带滤波器的设计。MATLAB信号处理工具箱提供了一个频率样本法的设计函数fir2,它的典型调用方法为:h=fir2(M, f, A)。其中M是FIR滤波器的阶数(滤波器的长度为N=M+1),长度为N的数组h为滤波器系数(或脉冲响应)。数组f中包含各边缘频率,其单位为pi, 0.0_f_1.Oo f-1对应于采样频率的一半,即奈奎斯特频率。这些频率必须以递增顺序排列,从0开始,到1结束。数组A为各指定频率上预期的幅度响应,f与A长度必须相等,plo

51、t(f,A)应该给出预期的滤波器幅频特性。 窗函数设计和频率样本设计技术都易于理解和实现。但是他们存在一些不足: (1)在设计中不能精确指定通带和阻带频率Ws, wp,只能接受设计所得的大体合用值, (2)不管是窗函数设计方法中使I=A2,还是在频率样本法中只优化2,均不能同时控制波动系数1及2; (3)理想响应和实际响应之间的逼近误差,在全频带区间上不是均匀分布的。靠近边缘频率处误差较高而远离边缘频率处较小。 可以设想,如果使误差均匀分布,就可以在满足相同技术指标的条件下得到一个较低阶滤波器。最优化就是一种能克服上述三个问题的数学方法。相对来讲这种方法用的数学较深,不过现在可以依靠计算机中编

52、好的子程序。最优化的思想实际上在窗函数中就有反映,它用窗函数直接截取理想滤波器脉冲响应hd(n)中的一段,作为滤波器的h(n),这是一种时域逼近法。用E(w)表示理想滤波器Hd(w)和所设计滤波器之间的幅频特性误差 E(w)= Hd(w)-H(w) (2-9) 如果这个误差平方的连续积分eze作为最优化的目标函数,则可以证明采用矩形窗时均方误差是最小的,也就是说,矩形窗是连续最小均方误差的最优设计法。注意:这里最小是指在整个频带上积分最小,它保证了误差平方所包的面积最小,但不能保证误差幅度最小。由于吉布斯效应,使过渡带附近的通带内有较大的上冲,阻带旁瓣也不小。换句话说,频域的连续最小均方误差设

53、计法的结果并不理想,所以实际上很少使用矩形窗。可见这种连续最小均方误差设计法没有得到应用。最优化方法的第一种是离散最小二乘法。它的思路是使在给定的一些离散频点上,使实际幅频特性和理想幅频特性之间的误差平方和为最小;第二种是最小最大波动法,也称等波动法。具有这种性质的滤波器幅频特性在通带和阻带上的误差峰值是均匀分布的。也就是说,其误差具有等波动特性,因而可把波动的幅度控制到最小,或在同等指标下减小它的阶次。第一种方法是连续最小平方积分法的推广,容易理解,但它的指标没有和滤波器的指标挂钩,误差平方积分小的滤波器不能保证没有窄而大的波动出现,像吉布斯效应那样。而第二种方法则直接控制了通带波动和阻带衰

54、减,所以具有针对性,滤波器的最优设计主要是指的这种方法。MATLAB信号处理工具箱中提供了这些函数,不用数学推导即可使用这种设计方法。 离散最小二乘法是对滤波器幅特性而言的。从频率样本法出发,先分析实际幅频特性与给定的(理想的)幅特性之间的误差,求出他们的平方和。这里用的是有限个指定样本点上误差平方和,而不是连续积分。然后和滤波器的设计参数建立数学关系,最后找到能使指标达到最小的参数的公式。离散最小二乘法设计方法还具有两方面的潜力:一是它在阻带内的最大波动在阻带边缘处最大,随频率的增加逐次减小,如果把阻带边缘处的波动削减一些补到高频区去,使这些波动变成一样大,那就可能使阻带衰减加大;二是在计算

55、误差平方时,它把通带内的波动和阻带内的波动同等看待进行最小化。实际上,大部分滤波器对通带内的波动容差比较大,幅特性为1与1.01的误差一般对系统的影响不大,而对于阻带幅特性0.011与0.001之差,虽然同是0.01,泄漏进来的干扰信号却大了10倍,所以对它的要求相当严格。如果我们放宽一些对通带中波动的要求,就可能在同样的滤波器阶数条件下进一步降低阻带的最大波动指标。最小最大波动法的思想就是使全频段上的最大波动达到最小,而且通过加权使通带波动和阻带波动控制到规定的比例。有些地方也将最小最大波动法称为切比雪夫逼近法,有些称雷米兹法。要构成完整的最优等波动滤波器设计程序,除了用最小最大波动公式外还

56、有许多实际问题需要思考: (1)滤波器长度N或阶数M=N-1如何确定? (2)极值数目的确定。 (3)如何建立进行频率修正的算法?Parks-McClellan算法是利用Remez交换算法导出的迭代算法,在MATLAB中实现该算法的函数为:emez,它最常用的句法为:h=remez(M, f, A, weights, ftype)。它有几种调用形式: (1)h=remez(M, f, A) 设计一个M阶FIR数字滤波器,它的频率响应在数组f及A中给定,长度为N的数组h是返回的滤波器系数(或脉冲响应) (2)h=remez(M, f, A, weights) 与上述情况相似,数组weights的

57、长度是f的一半,它是每个关心频带(通带或阻带)的权函数。 (3)fh=remez(M, f, A, ftype) 与第一种情况相似,不过增加了一个滤波器类型ftype作为输入变元,当变元是字符串Hilbert,或differentiator时,此函数相应的设计数字希尔伯特变换器或数字微分器。 (4)h=remez(M, f, A, weights, ftype) 与上一种情况相似,只是由数组weights指定每个频带的加权函数。2.1.4 FIR滤波器设计的一些深入问题 到现在为止,我们所设计的滤波器都属于选频滤波器1,i,包括低通、高通、带通和带阻。它们的预期幅频特性由逐段为常数的直线组成,

58、并对零频率成偶对称。可以证明,这些滤波器的脉冲响应必然具有偶对称的特性。除了以上的高通、低通、带通、带阻滤波器外实践中还有多波段滤波器,在0-pi范围内可能有多个通带和阻带,而且其预期幅特性也不一定只是0和1,可以有其他中间值。这些情况下的设计可以用MATLAB信号处理工具箱中的函数fir2直接进行设计。其结果必定是偶对称的线性相位滤波器。 MATLAB信号处理工具箱中的函数fir l在设计带阻和高通滤波器得到的滤波器的阶数总是偶数阶的,这是因为如果滤波器的阶数为奇数,它的频率响应在w=pi(对应于采样频率的二分之一处)的值总是。,显然不能满足高通和带阻滤波器的要求。如果设定的滤波器的阶数N为

59、奇数,fir 1函数将自动将滤波器的阶数增加为N+ l,即偶数。 FIR和IIR数字滤波器的一些特征使它们相互之间能够区分,同时它们在执行时需要进行一些专门考虑,包括相位特性、稳定性和系数量化影响。给定频率响应特性,典型高阶FIR滤波器需要转换成符合这些特性的IIR滤波器。但是,这并不意味着IIR滤波器可以应用到所有的情况。在一些应用中,把滤波器的线性相位特性作为重要考虑,此时应该采用FIR滤波器,因为只有FIR滤波器可以设计成线性相位。另一个重要考虑是滤波器的稳定性。因为FIR的单位脉冲响应是有限长度,所以FIR滤波器是固有稳定的,也就是说,一个有上下限的输入总是产生一个有上下限的输出,而I

60、IR滤波器可能稳定,也可能不稳定,主要依赖于滤波器的极点位置。 数字滤波器的设计总是假设在无限精度装置上执行的。但是,因为所有处理器都是有限精度的,所以滤波器系数实际上近似于理想。这种近似引入滤波器系数的量化误差,导致滤波器频率响应与理想情况有偏移。滤波器系数的量化误差最坏影响到极点位置移置单位圆外,导致不稳定。滤波器系数的量化误差对滤波器稳定性影响程度依赖于滤波器的结构和执行硬件的字长。因为滤波器的零点和极点位置与执行硬件的字长有关,它们与无限精度装置的差异影响到滤波器的性能。数字滤波器实现中一个主要问题是由于硬件有限字长造成的量化误差。随着下列有限字长的使用,误差源增加: 输入/输出信号量

温馨提示

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

评论

0/150

提交评论