基于窗函数法FIR数字滤波器的设计陈敏敏宁夏大学电子信息工程专业09级12009243656摘要简述了数字滤波器中的有限长单位冲激响应(FIR)滤波器的原理,对FIR滤波器的窗函数设计方法进行了研究。窗函数法在FIR数字滤波器的设计中有着广泛的应用。通过MATLAB的仿真实现。传统的数字滤波器设计方法繁琐且结果不直观,本文利用MATLAB具有强大的科学计算和图形显示这一优点,与窗函数法设计理论相结合共同设计FIR数字滤波器,不但使设计结果更加直观,而且提高了滤波器的设计精度,从而更好地达到预期效果。关键字FIR数字滤波器窗函数MATLAB仿真目录1引言----------------------------------------------------------------------------32FIR数字滤波器的介绍-------------------------------------------------------------42.1FIR数字滤波器的特点---------------------------------------------------------42.2线性相位FIR数字滤波器的特点-------------------------------------------------42.2.1单位冲激响应h(n)的特点-------------------------------------------------42.2.2线性相位的条件----------------------------------------------------------42.2.3线性相位特点和幅度函数的特点--------------------------------------------42.3FIR数字滤波器的设计原理-----------------------------------------------------62.4数字滤波器的性能指标---------------------------------------------------------73窗函数设计法---------------------------------------------------------------------83.1窗函数设计原理分析-----------------------------------------------------------83.2设计方法---------------------------------------------------------------------93.3窗函数介绍------------------------------------------------------------------113.4窗函数法设计步骤------------------------------------------------------------153.5设计实例--------------------------------------------------------------------153.6窗函数法计算中的主要问题-------------------------------------错误!未定义书签。4MATLAB简介与数字滤波器的MATLAB实现-----------------------------错误!未定义书签。4.1MATLAB简介--------------------------------------------------错误!未定义书签。4.2MATLAB程序--------------------------------------------------错误!未定义书签。结论--------------------------------------------------------------错误!未定义书签。谢辞--------------------------------------------------------------错误!未定义书签。参考文献----------------------------------------------------------错误!未定义书签。附录--------------------------------------------------------------错误!未定义书签。1引言数字信号处理(DSP,digitalsignalprocessing)是从20世纪60年代以来,随着信息学科和计算机的高速发展而迅速发展起来的一门新兴学科。数字信号处理是把信号用数字或符号表示的序列,通过计算机或通用(专用)信号处理设备,用数字的数值计算方法处理(例如滤波、变换、压缩、增强、估计、识别等),以达到提取有用信息便于应用的目的。数字滤波是数字信号处理的一部分。数字滤波器按照单位取样响应h(n)的时域特性可以分为无限脉冲响应(IIR)系统和有限脉冲响应(FIR)系统。FIR数字滤波器的优点在于它可以做成具有严格线性相位,而同时可以具有任意的幅度特性;它的传递函数没有极点;这保证了设计出的FIR数字滤波器一定是平稳的。所谓数字滤波器设计,简单地说,就是要找到一组能满足特定滤波要求的系数向量a和b。而滤波器设计完成后还需要进一步考虑如何将其实现,即选择什么样的滤波器结构来完成滤波运算。FIR数字滤波器的设计方法很多,其中较为常用的是窗函数设计法、频率采样设计法和最优化设计法。本文讨论利用窗函数法来实现各种FIR滤波器的设计。窗函数法设计的基本思想是把给定的频率响应通过IDTFT(InverseDiscreteTimeFourierTransform),求得脉冲响应,然后利用加窗函数对它进行截断和平滑,以实现一个物理可实现且具有线性相位的FIR数字滤波器的设计目的。其核心是从给定的频率特性,通过加窗确定有限长单位取样响应h(n)。MATLAB软件是由美国Mathworks公司推出的用于数值计算和图形处理的科学计算系统环境。MATLAB新的版本集中了日常数学处理中的各种功能,包括高效的数值计算、矩阵运算、信号处理和图形生成等功能。在MATLAB环境下,用户可以集成地进行程序设计、数值计算、图形绘制、输入输出、文件管理等各项操作。MATLAB提供了一个人机交互的数学系统环境,该系统的基本数据结构是矩阵,在生成矩陈对象时,不要求作明确的维数说明。与利用c语言或FORTRAN语言作数值计算的程序设计相比,利用MATLAB可以节省大量的编程时间。在工程技术界,MATLAB被用来解决一些实际课题和数学模型问题。典型的应用包括数值计算、算法预设计与验证,以及一些特殊的短阵计算应用,如自动控制理论、统计、数字信号处理(时间序列分拆)等。2FIR数字滤波器的介绍2.1FIR数字滤波器的特点数字信号处理主要是研究用数字或符号的序列来表示信号波形,并用数字的方式去处理这些序列,把它们改变成在某种意义上更为希望的形式,以便估计信号的特征参量,或削弱信号中的多余分量和增强信号中的有用分量。有限长单位冲激响应(FIR)数字滤波器可以做成具有严格的线性相位,同时又可以具有任意的幅度特性。此外,FIR滤波器的单位抽样响应是有限长的,因而滤波器一定是稳定的。再有,只要经过一定的延时,任何非因果有限长序列都能变成因果的有限长序列,因而总能用因果系统来实现。最后,FIR滤波器由于单位冲激响应是有限长的,可以用快速傅立叶变换(FFT)算法来实现过滤信号,从而可大大提高运算效率。但是,要取得很好的衰减特性,FIR滤波器H(z)的阶次比IIR滤波器的要高。2.2线性相位FIR数字滤波器的特点2.2.1单位冲激响应h(n)的特点FIR滤波器的单位冲激响应h(n)是有限长(0≤n≤N-1),其Z变换为:10)()(NmmznhzH在有限Z平面有(N-1)个零点,而它的(N-1)个极点均位于原点z=0处。2.2.2线性相位的条件如果FIR滤波器的单位抽样响应h(n)为实数而且满足以下任一条件:偶对称:h(n)=h(N-1-n)奇对称:h(n)=-h(N-1-n)其对称中心在n=(N-1)/2处,则滤波器具有准确的线性相位。2.2.3线性相位特点和幅度函数的特点(1)h(n)偶对称)21()(])21cos[()()(10NnNnhHkn幅度函数H(ω)包括正负值,相位函数是严格线性相位,说明滤波器有(N-1)/2个抽样的延时,它等于单位抽样响应h(n)长度的一半。图2-1中,线性相位无90°附加相移,幅度函数在π处存在零点,且对ω=π呈奇对称,因此不适合作高通滤波器。图2-2所示:线性相位无90°附加相移,幅度函数对在ω=0、π、2π呈偶对称,因此适合作低通、高通滤波器。(2)h(n)奇对称2)21()(])21sin[()()(10NnNnhHkn相位函数仍是线性,但在零频率(ω=0)处有π/2的截距。不仅有(N-1)个抽样的延时,还产生一个π/2的相移。图2-3中,线性相位有90°附加相移,幅度函数在0、2π处为零点,且对ω=0、2π呈奇对称,对ω=π呈偶对称。图2-4中,线性相位有90°附加相移,幅度函数在0、π、2π处为零,且对ω=0、π、2π呈奇对称。图2-3、图2-4所示的滤波器均适合在微分器和90°移相器中应用。图2-1长度N为偶数、偶对称时的相位函数、冲激响应、幅度函数波形图图2-2长度N为奇数、偶对称时的相位函数、冲激响应、幅度函数波形图图2-3长度N为偶数、奇对称时的相位函数、冲激响应、幅度函数波形图图2-4长度N为奇数、奇对称时的相位函数、冲激响应、幅度函数波形图四种线性相位FIR滤波器的特性可以总结如下:第一种情况,偶对称、奇数点,四种滤波器都可设计;第二种情况,偶对称、偶数点,可设计低、带通滤波器,不能设计高通和带阻;第三种情况,奇对称、奇数点,只能设计带通滤波器,其它滤波器都不能设计;第四种情况,奇对称、偶数点,可设计高、带通滤波器,不能设计低通和带阻。2.3FIR数字滤波器的设计原理一个截止频率为c(rad/s)的理想数字低通滤波器,其传递函数的表达式是:ccjjdeeH,0,)((式2.3.1)由式2.3.1可以看出,这个滤波器在物理上是不可实现的,因为冲激响应具有无限性和因果性。为了产生有限长度的冲激响应函数,我们取样响应为)(nh,长度为N,其系数函数为)(zH:10)()(NnnznhzH(式2.3.2)用)(nh表示截取)(nhd后冲激响应,即)()()(nhnnhd,式子中)(n为窗函数,长度为N。当τ=(N-1)/2时,截取的一段)(nh对(N-1)/2对称,可保证所设计的滤波器具有线性相位。一般来说,FIR数字滤波器输出)(ny的Z变换形式Y(z)与输入)(nx的Z变换形式之间的关系如下:)())()1()0(()()()(1zXznhzhhzXzHzYn(式2.3.3)从上面的Z变换和结构图可以很容易得出FIR滤波器的差分方程表示形式。对式2.3.3进行反Z变换,可得:)1()()1()2()()1()(xnhnxhnxhny(式2.3.4)图2-5卷积型滤波器式(2.3.4)为FIR数字滤波器的时域表示方法,其中)(nx是在时间n的滤波器的输入抽样值。根据式(2.3.4)即可对滤波器进行设计。从上面的公式我们可以看出,在对滤波器实际设计时,整个过程的运算量很大。设计完成后对已设计的滤波器的频率响应进行校核,运算量也很大。并且在数字滤波器设计的过程中,要根据设计要求和滤波效果不断地调整,以达到设计的最优化。在这种情况下,要进行大量复杂的运算,单纯靠公式计算和编制简单的程序很难在短时间内完成。