华北科技学院毕业设计样本内容摘要:

计过程的重中之重。 (3)硬件或软件实现。 上两步的结果是得到以差分或系统函数或冲激响应描述的滤波器 ,根据这个描述就可以用硬件或在计算机上用软件来实现它。 下面阐述 如何用 MATLAB 设计、实现、分析数字滤波器。 IIR 滤波器的设计及 MATLAB 实现 设计 IIR 数字滤波器有两大类方法:一是模拟 数字转换法,先设计符合要求的模拟滤波器,然后转换成数字滤波器,这种方法简单、方便、准确,但它大多只能用来设计低通、高通等选频滤波器;二是直接设计法,这是一种最优化设计方法,它先确定一个最佳准则,然后求得在该准则下的滤波器的系统函数的系数。 数字高通、带通及带阻滤波器的设计概述 实际中通常要求的滤波器是低通、高通、带通、带阻数字滤波器,这些滤波器可以通过模 拟的原型滤波器或数字的原型滤波器频率转换得到,所有的数字滤波器都可以通过直接法进行设计,也可以通过优化的方法得到。 概括来说,数字高通、带通、带阻以及低通滤波器的设计方法有 3 种,它们分别是:IIR 数字滤波器的原型转换法、 IIR 数字滤波器的直接设计法、 IIR 的优化设计法。 由于这些方法的具体设计、实现有点繁琐复杂,这里不作详细讨论,仅概述其原理及转换方法。 (1)IIR 数字滤波器的原型转换法。 所谓原型滤波器是指归一化的低通滤波器。 如果数字滤波器由模拟低通滤波器转换得到,则可能有 3 种方法:一是首先由模拟低 通滤波器转换成数字滤波器,然后再用变量代换转换成所需的滤波器;二是由模拟低通滤波器转化成所需的模拟滤波器,然后再把它转换成数字滤波器;三是由模拟低通滤波器直接基于 MATLAB数字滤波器系统的设计 转换成所需的数字滤波器。 (2)IIR 数字滤波器的直接设计法。 利用直接法设计 IIR 数字滤波器可以在时域或频域上进行。 在频域进行直接设计,目前有 3 种方法: Z 平面的简单零极点法、幅度平方函数法、频域优化设计法。 在时域进行直接设计,目前有 2 种方法:博德逼近法和最小平方逆优化法。 利用 MATLAB 直接设计 IIR 数字滤波器 通常可以利用 MATLAB 很方 便地设计出所需的滤波器,总体来说, MATLAB 一共有 4 种设计 IIR 滤波器的方法,它们是模拟原型法、直接法、参数模型法和通用巴特沃斯法。 在这一节中将介绍和分析 MATLAB 中模拟原型法中的 butterworth、 chebycheby ellip 等方法以及 yulewalk 法。 一 . 巴特沃斯数字滤波器设计 在 MATLAB 中,可以利用 butter 函数设计各种形式的数字滤波器(也可以设计模拟滤波器),它的语法为: [b,a]=butter(n,Wn) [b,a]=butter(n,Wn,’ftype’) [z,p,k]=butter(n,Wn) [z,p,k]=butter(n,Wn,’ftype’) [A,B,C,D]=butter(n,Wn) [A,B,C,D]=butter(n,Wn,’ftype’) butter 函数可以设计低通、高通、带通和带阻等各种形式的滤波器, butterworth 滤波器的幅度特性是通带平坦、阻带单调下降。 但是 chebyshev 滤波器和椭圆滤波器在满足相同的设计要求下,滤波器的阶数一般比 butterworth 低。 利用 [b,a]=butter(n,Wn)方式可以设计 一个阶数为 n、截止频率为 Wn 的低 通滤波器。 其返回值 a 和 b 为系统函数的分子和分母的系数。 系统函数可以表示为: H(z)=B(z)/A(z)=         nnznaza znbzbb   121 121 11  截止频率 wn是指滤波器的半功率点,它的取值范围在 0 到 1 之间,其中 1 对应为采样频率的一半。 如果 wn是一个含有两个元素的向量 [w1 w2],则返回的 [a b]所构成的滤波器是阶数为 2n 的带通滤波器,通带范围为 w1ww2。 利用 [b,a]=butter(n,Wn,’ftype’)方式可以设计高通、带阻滤波器,其中参数 ftype 的形式确定了滤波器的形式。 当它为‘ high’时,得到的滤波器是 n 阶的、截止频率为 Wn 的华北科技学院毕业设计 高通滤波器;当它为 ’stop’ 时,得到的滤波器是阶数为 2n、阻带范围为 w1ww2 的带阻滤波器。 利用返回值数目的不同可以得到滤波器的其他表达形式,例如,如果返回 值的数目是 3 个,得到的返回值分别是滤波器的零点、极点和增益。 函数的参数和前面的形式相同,具体的语法形式为: [z,p,k]=butter(n,Wn) 或 [z,p,k]=butter(n,Wn,’ftype’) 如果返回值的数目有 4 个,就可以得到滤波器的状态空间表达式,具体的 语法形式如下: [A,B,C,D]=butter(n,Wn) 或 [A,B,C,D]=butter(n,Wn,’ftype’) 可以利用返回值 A, B, C, D 构造滤波器的状态方程: x(n+1)=Ax(n)+Bu(n) y(n)=Cx(n)+Du(n) 其中 U 是输入信号, X 是状态变量, Y 是输出信号。 Eg1. 对于采样频率为 1000Hz 的采样信号,设计一 个阶数为 9 阶、截止频率为300Hz 的高通 butterworth 数字滤波器。 解:程序如下: [b,a]=butter(9,300/500,39。 high39。 )。 freqz(b,a,128,1000)。 由 MATLAB 程序执行:得到数字滤波器分子和分母的系数,从而可以得到滤波器的幅频和相频响应,如下图所示。 b = a = 此滤波器的系统函数为: H(z)=B(z)/A(z)=         nnznaza znbzbb   121 121 11  代入即可。 基于 MATLAB数字滤波器系统的设计 图 8. 高通滤波器的频率特性 特性分析:由上图可看出,所设计的滤波器符合要求的指标,且在通带范围内,滤波 器有非常平坦的幅频特性,相频特性虽然是非线性的,但也较平滑,这点和模拟巴特沃斯滤波器的特性类似。 Eg2. 设计一个 10 阶的带通 butterworth 滤波器,它的通带范围是 100 到 200Hz,并画出它的冲激响应。 解:程序如下: n=5。 wn=[100 200]/500。 [b,a]=butter(n,wn)。 freqz(b,a,128,1000)。 [y,t]=impz(b,a,101)。 stem(t,y)。 它的频率响应和冲激响应如下图所示 华北科技学院毕业设计 图 9. 幅 、相频响 由程序执行直接可得: b = 0 0 0 0 0 a = 其系统函数为: H(z)=B(z)/A(z)=         nnznaza znbzbb   121 121 11  代入数据即可 基于 MATLAB数字滤波器系统的设计 图 10. 冲激响应 特性分析:上面的冲激响应图可以体现了 IIR 滤波器的特征,即它的单位取样响应是时宽无限的,而且可看出此系统是稳定的,这点也可通过如下的零、极点分布得到证明。 MATLAB 程序如下: n=5。 wn=[100 200]/500。 [z,p,k]=butter(n,wn) 由此可直接得到返回值:可见其极点都是位于单位圆内,符合稳定的条件,因而此系统是 稳定的。 z =1 1 1 1 1 1 1 1 1 1 p = + + + + + k = 二 . 椭圆法滤波器设计 在 MATLAB 中,可以利用 ellip 函数直接设计各种形式的数字滤波器(也可以设计模拟滤波器),它的语法为: [b,a]=ellip(n,Rp,Rs,wn) [b,a]=ellip(n,Rp,Rs,wn,’ftype’) 华北科技学院毕业设计 [z,p,k]=ellip(n,Rp,Rs,wn) [z,p,k]= ellip(n,Rp,Rs,wn,’ftype’) [A,B,C,D]= ellip(n,Rp,Rs,wn) [A,B,C,D]= ellip(n,Rp,Rs,wn,’ftype’) 实际上, ellip 函数是先采用椭圆法设计出低通的模拟滤波器,然后采用变换的方法得到数字的高通、低通、带通和带阻滤波器,所以称之为 ellip 函数。 在模拟滤波器的设计中,椭圆滤波器的设计是几种滤波器设计方法中最为复杂的一种,但是它设计出来的滤波器阶数最低,同时它对参数的量化灵敏度最敏感。 可以利用 [b,a]=ellip(n,Rp,Rs,wn)方式设计出阶数为 n、截止频率为 wn、通带波纹最大衰 减为 Rp、阻带波纹最小衰减为 Rs 的数字低通滤波器,它的返回 值 a、 b 分别是阶数为 n+1 的向量,表示数字低通滤波器的系统函数的分子和分母的多项式的系数。 滤波器的系统函数可以表示为: H(z)=B(z)/A(z)=         nnznaza znbzbb   121 121 11  函数的截止频率 wn 是指通带的边缘,其取值范围为 0 到 1,其中 1 表示采样频率的一半,在那儿滤波器的幅度响应为 RpdB。 滤波器的过渡带宽取决于 3 个参数 n、 Rp、 Rs,当 n 不变时, Rp 越小, Rs 越大,过渡带就越宽。 如果 wn 是一个含有两个元素的向量 [w1 w2], 则 ellip 函数返回值是阶数为 2n 的带通滤波器的系统函数有理多项式的系数,滤波器的通带范围是 w1ww2。 可以利用 [b,a]=ellip(n,Rp,Rs,wn,’ftype’)方式设计高通和带阻滤波器,其中参数 ftype的形式确定了滤波器的形式。 当它为‘ high’时,得到的滤波器为 n 阶的、截止频率为wn的高通滤波器;当它为‘ stop’时,得到的滤波器是阶数为 2n的、阻带范围为 w1ww2的带通滤波器。 利用返回值数目的不同可以得到滤波器的其他表达形式,例如,如果返回值是数目是 3 个, 得到的返回值分别是滤波器的零点、极点和增益,函数的参数和前面的形式相同,具体的语法形式为: [z,p,k]=ellip(n,Rp,Rs,wn) 或 [z,p,k]= ellip(n,Rp,Rs,wn,’ftype’) 如果返回值的数目为 4 个,就可以得到滤波器的状态空间表达式,具体的语法方式为: [A,B,C,D]= ellip(n,Rp,Rs,wn) [A,B,C,D]= ellip(n,Rp,Rs,wn,’ftype’) 可以利用返回值 A, B, C, D 构造滤波器的状态方程: x(n+1)=Ax(n)+Bu(n) 基于 MATLAB数字滤波器系统的设计 y(n)=Cx(n)+Du(n) 其中 U是输入信号, X 是状态变量, Y 是输出信号。 Eg3. 对于采样频率为 1000Hz的采样信号,设计一个阶数为 6 阶、截止频率为 300Hz的低通 ellip 滤波器,其中滤波器在通带的波纹为 3dB,在阻带的波纹为 50dB。 解:程序如下: [b,a]=ellip(6,3,50,300/500)。 freqz(b,a,512,1000)。 从而得到滤波器的幅频和相频特性如下图。 图 11. b= a = 其系统函数为: H(z)=B(z)/A(z)=         nnznaza znbzbb   121 121 11  代入数据即可 特性分析:由上图可见,此。
阅读剩余 0%
本站所有文章资讯、展示的图片素材等内容均为注册用户上传(部分报媒/平媒内容转载自网络合作媒体),仅供学习参考。 用户通过本站上传、发布的任何内容的知识产权归属用户或原始著作权人所有。如有侵犯您的版权,请联系我们反馈本站将在三个工作日内改正。