1、课程设计任务书 学生姓名:专业班级:电信 0902 班 指导教师:工作单位:信息工程学院 题 目:FIR 高通滤波器的设计 初始条件:具备数字信号处理的理论知识;具备 Matlab 编程能力;熟悉高通滤波器的设计原理;提供编程所需要的计算机一台 要求完成的主要任务:(包括课程设计工作量及其技术要求,以及说明书撰写等具体要求)1、设计阻带截止频率为 200Hz 的 FIR 数字高通滤波器 2、独立编写程序实现 3、完成符合学校要求的设计说明书 时间安排:一周,其中 3 天程序设计,2 天程序调试 指导教师签名:年 月 日 系主任(或责任教师)签名:年 月 日 目 录 摘 要.I 1 MA TLA
2、B基础知识的介绍.1 1.1 MATLAB的介绍.1 1.2 基本功能.1 2 FIR滤波器简介.2 3 高通滤波器及其应用.3 3.1 高通滤波器的定义.3 3.2 高通滤波器的应用.3 3.3 高通滤波的时域分析.3 3.4 高通滤波器频域分析.4 4 窗函数的相关知识.错误!未定义书签。4.1 窗函数的基本概念.错误!未定义书签。4.2 窗函数的设计原理.错误!未定义书签。4.3 窗函数的设计步骤.错误!未定义书签。5 FIR数字滤波器程序设计与仿真.错误!未定义书签。5.1 窗函数程序设计.错误!未定义书签。5.2 仿真结果图.错误!未定义书签。6 心得体会.错误!未定义书签。参考文献
3、.错误!未定义书签。摘 要 数字滤波器是一个离散时间系统(按预定的算法,将输入离散时间信号转换为所要求的输出离散时间信号的特定功能装置)。应用数字滤波器处理模拟信号时,首先须对输入模拟信号进行限带、抽样和模数转换。数字滤波器有低通、高通、带通、带阻和全通等类型。它可以是时不变的或时变的、因果的或非因果的、线性的或非线性的。应用最广的是线性、时不变数字滤波器,以及 FIR 滤波器。数字滤波器具有高精度、高可靠性、可程控改变特性或复用、便于集成等优点。数字滤波器在语言信号处理、图像信号处理、医学生物信号处理以及其他应用领域都得到了广泛应用。关键字:FIR、高通、滤波器 1 MATLAB基础知识的介
4、绍 1.1 MATLAB的介绍 MATLAB 是矩阵实验室(Matrix Laboratory)的简称,是美国 MathWorks公司出品的商业数学软件,用于算法开发、数据可视化、数据分析以及数值计算的高级技术计算语言和交互式环境,主要包括 MATLAB 和 Simulink两大部分。1.2 基本功能 MATLAB 是由美国 mathworks 公司发布的主要面对科学计算、可视化以及交互式程序设计的高科技计算环境。它将数值分析、矩阵计算、科学数据可视化以及非线性动态系统的建模和仿真等诸多强大功能集成在一个易于使用的视窗环境中,为科学研究、工程设计以及必须进行有效数值计算的众多科学领域提供了一种
5、全面的解决方案,并在很大程度上摆脱了传统非交互式程序设计语言(如 C、Fortran)的编辑模式。MATLAB 和 Mathematica、Maple 并称为三大数学软件。它在数学类科技应用软件中在数值计算方面首屈一指。MATLAB 可以进行矩阵运算、绘制函数和数据、实现算法、创建用户界面、连 接其他编程语言的程序等,主要应用于工程计算、控制设计、信号处理与通讯、图像处理、信号检测、金融建模设计与分析等领域。MATLAB 的基本数据单位是矩阵,它的指令表达式与数学、工程中常用的形式十分相似,故用 MATLAB 来解算问题要比用 C,FORTRAN 等语言完成相同的事情简捷得多,并且 MATLA
6、B 也吸收了像 Maple 等软件的优点,使MATLAB 成为一个强大的数学软件。在新的版本中也加入了对 C,FORTRAN,C+,JAVA 的支持。可以直接调用,用户也可以将自己编写的实用程序导入到 MATLAB 函数库中方便自己以后调用。2 FIR 滤波器简介 FIR 滤波器:有限长单位冲激响应滤波器,是数字信号处理系统中最基本的元件,它可以在保证任意幅频特性的同时具有严格的线性相频特性,同时其单位抽样响应是有限长的,因而滤波器是稳定的系统。因此,FIR 滤波器在通信、图像处理、模式识别等领域都有着广泛的应用。有限长单位冲激响应(FIR)滤波器有以下特点:(1)系统的单位冲激响应 h(n)
7、在有限个 n 值处不为零;(2)系统函数 H(z)在|z|0 处收敛,极点全部在 z=0 处(因果系统);(3)结构上主要是非递归结构,没有输出到输入的反馈,但有些结构中(例如频率抽样结构)也包含有反馈的递归部分。目前,FIR 滤波器的硬件实现有以下几种方式:(1)数字集成电路 FIR 滤波器 一种是使用单片通用数字滤波器集成电路,这种电路使用简单,但是由于字长和阶数的规格较少,不易完全满足实际需要。虽然可采用多片扩展来满足要求,但会增加体积和功耗,因而在实际应用中受到限制。(2)DSP 芯片 FIR 滤波器 另一种是使用 DSP 芯片。DSP 芯片有专用的数字信号处理函数可调用,实现 FIR
8、 滤波器相对简单,但是由于程序顺序执行,速度受到限制。而且,就是同一公司的不同系统的 DSP 芯片,其编程指令也会有所不同,开发周期较长。(3)可编程 FIR 滤波器 还有一种是使用可编程逻辑器件,FPGACPLD。FPGA 有着规整的内部逻辑块整列和丰富的连线资源,特别适合用于细粒度和高并行度结构的 FIR滤波器的实现,相对于串行运算主导的通用 DSP 芯片来说,并行性和可扩展性都更好。3 高通滤波器及其应用 3.1 高通滤波器的定义 高通滤波器是容许高频信号通过、但减弱(或减少)频率低于截止频率信号通过的滤波器。对于不同滤波器而言,每个频率的信号的减弱程度不同。它有时被称为低频剪切滤波器;
9、在音频应用中也使用低音消除滤波器或者噪声滤波器。高通滤波器与低通滤波器特性恰恰相反。3.2 高通滤波器的应用 这样的滤波器能够把高频率的声音引导至专用高音喇叭(tweeter),并阻止可能干擾或者损害喇叭的低音信号。使用线圈而不是电容的低通滤波器也可以同时把低频信号引导至低音喇叭(woofer)。参见音频桥(en:audio crossover)。高通和低通滤波器也用于数字图像处理中在频域中进行变换。3.3 高通滤波的时域分析 在时域,信号经过系统的响应 y(n)体现为激励 x(n)跟系统单位抽样响应 h(n)的卷积和 y(n)=(n)h(n)=N1m=0h(m)x(n-m)223。对于长度为
10、 N 的 FIR 系统,h(n)可以看成一个长度为 N 点的固定窗口,而 x(n)则看成一个队列以齐步走的方式穿过 h(n)窗口,每走一步,位于窗口中的 x(n)部分的点跟 h(n)的对应点的值相乘(即加权)再求和,所得结果构成此时系统的响应值 y(n),x(n)队列每走一步就得到一个响应值 y(n),即 y(n)是 h(n)对位于其窗口中的 x(n)的加权求和。高通滤波要求 h(n)窗口具有波形锐化作用,即利用 h(n)窗口加权和使得变化快的(即高频)正弦分量保留(理想高通)或衰减幅度小(实际高通),而变化缓慢(即低频)的正弦分量正负抵消(理想高通)或衰减幅度大(实际高通)。设 其中 N 必
11、须取奇数,)/10002sin(2.0)/1002sin(8.0)()()(21ssfnfnnxnxnx2.1.1 其中:fs=11kHz,n 为整数,即 x(n)由 100Hz 的 x1(n)和 1kHz 的 x2(n)两种频率的信号组成。高通滤波的目的就是要尽可能地去掉 x(n)中的低频分量 x1(n),同时尽可能地保留 x(n)中的高频分量 x2(n)。x(n)跟 h(n)卷积结果如图 1 所示,从图 1 可看出,响 应 y(n)中几乎只剩下右移了(N-1)/2=5 个样值点的 1kHz 的信号 x2(n)。3.4 高通滤波器频域分析 在频域,信号经过系统的响应 y(n)的频谱 Y(ej
12、)体现为激励 x(n)的频谱 X(ej)跟系统单位抽样响应 h(n)的频谱 H(ej)(即系统的频谱)的乘积 Y(ej)=|H(ej)|X(ej)|ejH+x,即响应的频谱 Y(ej)的幅值由系统频谱 H(ej)的幅值对激励频谱 X(ej)的幅值相乘(加权)得到,响应的频谱 Y(ej)的幅角由系统的频谱 H(ej)的幅角跟激励频谱 X(ej)的幅角相加(移相)得到122。高通滤波要求系统幅度函数|H(jf)|对需要保留的高频信号频谱加权权重较大(理想时为 1),对需要滤除的低频信号频谱加权权重较小(理想时为 0)。4 窗函数的相关知识 4.1 窗函数的基本概念 在实际进行数字信号处理时,往往需
13、要把信号的观察时间限制在一定的时间间隔内,只需要选择一段时间信号对其进行分析。这样,取用有限个数据,即将信号数据截断的过程,就等于将信号进行加窗函数操作。而这样操作以后,常常会发生频谱分量从其正常频谱扩展开来的现象,即所谓的“频谱泄漏”。当进行离散傅立叶变换时,时域中的截断是必需的,因此泄漏效应也是离散傅立叶变换所固有的,必须进行抑制。而要对频谱泄漏进行抑制,可以通过窗函数加权抑制DFT 的等效滤波器的振幅特性的副瓣,或用窗函数加权使有限长度的输入信号周期延拓后在边界上尽量减少不连续程度的方法实现。而在后面的 FIR 滤波器的设计中,为获得有限长单位取样响应,需要用窗函数截断无限长单位取样响应
14、序列。另外,在功率谱估计中也要遇到窗函数加权问题。窗函数的基本概念。设x(n)是一个长序列,w(n)是长度为N的窗函数,用w(n)截断x(n),得到N点序列xn(n),即xn(n)=x(n)w(n)在频域上则有 由此可见,窗函数w(n)不仅仅会影响原信号x(n)在时域上的波形,而且也会影响到频域内的形状。4.2 窗函数的设计原理 jjjde21eWeXXN窗函数设计法的基本原理是用有限长单位脉冲响应序列 nh逼近 nhd。由于 nhd往往是无限长序列,而且是非因果的,所以用窗函数 n将 nhd截断,并进行加权处理,得到:nh就作为实际设计的 FIR 数字滤波器的单位脉冲响应序列,其频率响应函数
15、jeH为 式中,N为所选窗函数 n的长度。用窗函数法设计的滤波器性能取决于窗函数 n的类型及窗口长度N的取值。设计过程中,要根据对阻带最小衰减和过渡带宽度的要求选择合适的窗函数类型和窗口长度N。4.3 窗函数的设计步骤 窗函数法设计线性相位FIR 滤波器可以按如下步骤:1.确定数字滤波器的性质要求,确定各临界频率K和滤波器单位脉冲响应长度 N。2.根据性能要求和 N 值,合理地选择单位脉冲响应 h(n)有奇偶对称性,从而确定理想频率响应 hd(ej)的幅频特性和相位特性。3.用傅里叶反变换公式,求得理想单位脉冲响应 Hd(n)。4.选择适当的窗函数 W(n),求得所设计的 FIR 滤波器单位脉
16、冲响应。5.用傅里叶变换求得其频率响应 H(ej),分析他的频率特性,若不满足要求,可适当改变窗函数形式或长度 N,重复上述过程,直至得到满意结果。nnhnhd njNnjenheH105 FIR 数字滤波器程序设计与仿真 5.1 窗函数程序设计 f1=100;f2=700;%待滤波正弦信号频率 fs=2000;%采样频率 m=(0.3*f1)/(fs/2);%定义过度带宽 M=round(8/m);%定义窗函数的长度 N=M-1;%定义滤波器的阶数 window=hanning(M);b=fir1(N,0.2,high,window);%使用 fir1 函数设计滤波器%输入的参数分别是滤波器
17、的阶数和截止频率 figure(1)h,f=freqz(b,1,512);%滤波器的幅频特性图%H,W=freqz(B,A,N)当 N 是一个整数时函数返回 N 点的频率向量和幅频响应向量 plot(f*fs/(2*pi),20*log10(abs(h)%参数分别是频率与幅值 xlabel(频率/赫兹);ylabel(增益/分贝);title(滤波器的增益响应);figure(2)subplot(211)t=0:1/fs:0.25;%定义时间范围和步长 s=sin(2*pi*f1*t)+sin(2*pi*f2*t);%滤波前信号 plot(t,s);%滤波前的信号图像 xlabel(时间/秒)
18、;ylabel(幅度);title(信号滤波前时域图);subplot(212)Fs=fft(s,512);%将信号变换到频域 AFs=abs(Fs);%信号频域图的幅值 f=(0:255)*fs/512;%频率采样 plot(f,AFs(1:256);%滤波前的信号频域图 xlabel(频率/赫兹);ylabel(幅度);title(信号滤波前频域图);figure(3)sf=filter(b,1,s);%使用 filter 函数对信号进行滤波%输入的参数分别为滤波器系统函数的分子和分母多项式系数向量和待滤波信号输入 subplot(211)plot(t,sf)%滤波后的信号图像 xlabe
19、l(时间/秒);ylabel(幅度);title(信号滤波后时域图);axis(0.2 0.25-2 2);%限定图像坐标范围 subplot(212)Fsf=fft(sf,512);%滤波后的信号频域图 AFsf=abs(Fsf);%信号频域图的幅值 f=(0:255)*fs/512;%频率采样 plot(f,AFsf(1:256)%滤波后的信号频域图 xlabel(频率/赫兹);ylabel(幅度);title(信号滤波后频域图);5.2 仿真结果图 6 心得体会 本次课程设计通过一个设计实例,向我们介绍了利用 MATLAB 实现 FIR滤波器设计与滤波的三种方法,从仿真结果可以看出它们均
20、可以达到技术指标要求,而且方法简单、快捷,大大减轻了工作量。我在滤波器的设计工作完成后,借助了 MATLAB 的 export 操作导出所设计滤波器的系统函数H(z)。并且由于 MATLAB 具有强大的接口功能,仿真后的结果可以很方便的移植到 DSP、CPLD 或 FPGA 等器件中。但是在实际应用中,只需按要求修改滤波器参数,并对程序作较少的改动,即可实现不同截止频率的 FIR 滤波器,实用性较强。我在编写程序过程中犯了不少低级错误,这很不应该。还有一些重大错误在同学的帮助下,我都找了出来并且改正正确了。这次课程设计让我获益颇多。参考文献 1 程佩青.数字信号处理(第 2 版)M.北京:清华大学出版社,2003 2 林彦杰.基于 MATLAB 的 FIR 数字滤波器的设计J.南京邮电学院电子工程系,江苏省南京市 2003 3 楼顺天,李博菡.基于 MATLAB 的系统分析与设计信号处理M.西安:西安电子科技大学出版社,2001 4 陈怀琛.MATLAB 及在电子信息课程中的应用M.北京:电子工业出版社,2002 5 潘永才,王子旭,游治.数字 FIR 滤波器的 Matlab 设计J.半导体技术,2001