iir滤波器的设计与实现毕业设计(编辑修改稿)内容摘要:

Static Text) 2.编辑框( Edit Text)控件 3.列表框( Listbox)控件 4.滚动条( Slider)控件 5.按钮( Push Button)控件 6.开关按钮( Toggle Button)控件 7.单选按钮( Radio Button)控件 8.按钮组( Button Group)控件 9.检查框( Check Box)控件 10.列表框( Listbox)控件 11.弹出式菜单( Popup Menu)控件 12.坐标轴( Axes)控件 13.面板( Panel)控件 [3] 你可以使用属性编辑器来设置属性 ,如图 图 设置图 写回调函数 CallBack 每个控件都有几种回调函数,右键选中的控件一般会有如下 图 菜单 ,然 后就可以跳转到相应的 Editor 中编辑代码, GUIDE 会自动生成相应的函数体 、 函数名 、 名称一般是控件 Tag+ Call 类型名参数有三个 ( hObject, eventdata, handles), 其中 hObject 为发生事件的源控件, eventdata 为事件数据结构, handles 为传入的对象句柄 长沙学院毕业设计 (论文 ) 10 CreateF 是在控 件对象创建的时候发生 (一般为初始化样式,颜色,初始值等 )DeleteF 实在空间对象被清除的时候发生 ButtonDownF 和 KeyPressF 分别为鼠标点击和按键事件 Callback, CallBack 为一般回调函数,因不同的控件而已异。 例如按钮被按下时发生,下拉框改变值时发生, sliderbar 拖动时发生等等。 完成控件的布局,即完成了整个图形界面的结构设计, MATLAB 把图形界面保存于 *.fig 中,并自动生成 *.m 文件。 用于保存程序代码。 现在所 要做的工作就是在 M 文件框架下定义某些特殊要求的状态并补充完整回调函数 (Callback).使单击控件时激活回调程序完成一定的功能。 图 回调函数 callback菜单 句柄图形之间的层次关系 可以创建图形句柄的常见函数 : 1. figure 函数:创建一个新的图形对象。 2. newplot 函数:做好开始画新图形对象的准备。 3. axes 函数:创建坐标轴图形对象。 4. line 函数:画线。 长沙学院毕业设计 (论文 ) 11 5. patch 函数:填充多边形。 6. surface 函数:绘制三维曲面。 7. image 函数:显示图片对象。 8. uicontrol 函数:生成用户 控制图形对象。 9. uimenu 函数:生成图形窗口的菜单中层次菜单与下一级子菜单。 长沙学院毕业设计 (论文 ) 12 第 3 章 IIR 滤波器的设计 过程 IIR 数字滤波器的设计方法有两类,一类是借助于模拟滤波器的设计方法设计出模拟滤波器,利用冲激响应不变法或双线性变换法转换成数字滤波器,再用硬件或软件实现;另一类是直接在频域或时域中进行设计,设计时需要计算机作辅助工具。 随着 MATLAB软件尤其是 MATLAB 的信号处理工作箱的不断完善,不仅数字滤波器的计算机辅助设计有了可能,而且还可以使设计达到最优化。 IIR 数字滤波器的设计实际上是求解 滤波器系统函数 H(z)的分子分母多项式系数 bz和 az,它是数学上的一种逼近问题。 即在规定意义上去逼近系统的特性,如果在 S平面上去逼近,就得到模拟滤波 器;如果在 z 平面逼近 ,就得到数字滤波器。 Ⅱ R数字滤波器设计的步骤如下: (1)将给定的数字滤波器的性能指标进行转换,转换后的频率指标作为模拟滤波器原型设计指标; (2)估计模拟滤波器的最小阶次和边界频率; (3)设计 butterworth 模拟低通滤波器原型; (4)由模拟原型经频率变换得到实际的模拟 (低通、高通、带通、带阻 )滤波器; (5)将模拟滤波器转换为 IIR数字滤波器,可利用脉冲响应不变法 或双线性变换法。 对设计的各个步骤, MATLAB 提供了相应的工具箱函数,使 IIR数字滤波器的设计变得非常简单。 本章先下面将从两个例子分别介绍 IIR滤波器的设计方法。 然后用 MATLAB 设计一个巴特沃斯 IIR 低通滤波器,最后用 GUI 设计一个界面。 两种常用的设计 IIR 低通滤波器方法 数字滤波器实际上是一个采用有限精度算法实现的线性非时变离散系统,滤波器的功能实现实际上是通过大量的加法运算和乘法运算完成的。 常用的两种方法是脉冲响应不变法和双线性变换法。 脉 冲响应不变法 举例说明此方法:要设计一个数字滤波器去仿真一个模拟滤波器有脉冲响应不变法和双线性变换法。 其设计过程都是由给定的模拟滤波器的系统函数 Ha(s)去变换出相应的数字滤波器的系统函数 H(z)。 脉冲响应不变法的设计过程如下: ⑴ 已知一模拟滤波器系统函数: 长沙学院毕业设计 (论文 ) 13  NiiMiiNiiiMiiiapsqsAsbsasH1100)()()( ( ) ⑵ 为方便求出其时域单位脉冲响应,将上式化为部分分式之和的形式:   Ni iia ps AsH 1)( ( ) ⑶ 由拉氏反变换得模拟滤波器在时域的单位脉冲响应:   Ni tpiaa tueAsHLth i11 )()]([)( ( ) ⑷由时域的数字仿真的条件(即脉冲响应不变准则)可得相应的数字滤波器的脉冲响应:  Ni nTpi nTueATnThTnh i1 )()()( ( ) 5. 再对 两边进行 Z 变换,即可得到数字滤波器的系统函数: ||||1|:|1)()()()(1111 011TpTpNiTpiNi nnTpinnNinTpinniiiiiezzeR O CzeATzeATznTueATznhzH   ( ) 用脉冲响应不变法来设计数字滤波器,只需将给出的模拟滤波器的系统函数 Ha(s)化为部分分式之和的形式,找出极点 pi 和系数 Ai ,带入数字滤波器传函当中即可。 由  Ni iia ps AsH1)( ( ) 得到:  Ni nTpi nTueATnThTnh i1 )()()( ( ) 长沙学院毕业设计 (论文 ) 14 双 线 性变换法 双线性变换法的设计过程如下: 由积分器构成的模拟滤波器的系统函数形式; ) NM( 1)(1000 以方便说明设 NjjjNjjjNiiiMiiiasdscAsbsasH ( ) 2. 由传递函数得信流图 : 图 满足指标要求的低通 IIR数字滤波器的 幅度特性, 如果与 Butterworth模拟原形低通滤波器相比较可知,采用脉冲响应不变法转换成的数字 滤波器的幅度特性与原形低通滤波器幅度特性有差别,且频率愈高差别愈大,这是由于频率混叠现象起的。 而采用双线性变换法设计的 IIR数字滤波器由于该转换法的频率压缩作用,使 1/ w 处的幅度降为零,而且曲线的形状偏离原低通滤波器幅度特性曲线的形状较大 , 这是因为该转换法的非线性造成的。 这 充分显示了两种设计方法的特点, 形象直观。 利用 MATLAB设计巴特沃斯 IIR低通滤波器 实例:设计一个 butterworth低通 (或高通等 )Ⅱ R数字滤波器,通带边沿频率为 100 Hz,阻带 边沿频率为 300 Hz,通带波纹为 1 dB,阻带衰减大于 15 dB,采样频率为 1000 Hz, 拟设计一款滤波器: 长沙学院毕业设计 (论文 ) 15 (1)能在 GUI上提供方便的边沿频率给定途径; (2)当选择“ butterworth”滤波器时,能在图轴上画出设计的模拟原型滤波器的频率响应曲线以及它在 S平面的零极点分布,从而判断系统的稳定性; (3)在下拉菜单里选择滤波器类型时,能根据类型 自动出现相应滤波器的截止频率或带阻滤波器阻带上下起始频率 Wsl、 Ws2的数值输入框 (而在初始运行 GUI时,对应的静态文本框和编辑输入框都是不 可见的 ); (4)输入数值后,按“确定”按钮时能出现相应的数字滤波器幅频响应曲线; (5)同时在整个图形界面的下边能显示滤波器阶数 N,原型滤波器的分子分母多项式系数 b, a及设计的数字滤波器的分子分母多项式系数 bz, az。 [9] 实现程序如下: clear。 close all。 fp=40。 fs=150。 Fs=1000。 Rp=3。 Rs=60。 T=1/Fs。 W1p=2*tan(2*pi*fp*T/2)/pi。 W1s=2*tan(2*pi*fs*T/2)/pi。 %求归一化频率 [N,Wn]=buttord(W1p,W1s,Rp,Rs)。 %确定最小阶数和频率参数 [z,p,k]=buttap(N)。 %设定模拟低通原型的零极点增益参数 [bp,ap]=zp2tf(z,p,k)。 %将零极点增益转换成分子分母参数 [bp,ap]=butter(N,1,39。 s39。 )。 %直接获取归一化低通原型 [bs,as]=lp2lp(bp,ap,Wn*pi*Fs)。 %将低通原型转换为模拟低通 [bz,az]=bilinear(bs,as,Fs)。 sys=tf(bz,az,T)。 %给出传输函数 [H,W]=freqz(bz,az,512,Fs)。 plot(W,20*log10(abs(H)))。 figure(2) n=0:100。 % s=sin(2*pi*500*T)+sin(2*pi*7000*T)。 %含不同频率余弦信号 % subplot(2,1,1)。 plot(T,s) %混频信号波形 s=sin(2*pi*500*n*T)+sin(2*pi*7000*n*T)。 %含不同频率余弦信号 subplot(2,1,1)。 plot(n*T,s) %混频信号波形 % subplot(2,1,1)。 plot(n*T,y) %通过数字滤波器滤波后输出信号波形 title(39。 输入信号 39。 ) xlabel(39。 t39。 )。 ylabel(39。 s39。 )。 s1=fft(s,100)。 mag1=abs(s1)。 f1=(0:length(s1)1)39。 *fs/length(s1)。 subplot(2,1,2)。 plot(f1,mag1) %混频信号频谱波形 title(39。 输入信号频谱 39。 ) 长沙学院毕业设计 (论文 ) 16 xlabel(39。 w39。 )。 ylabel(39。 db39。 )。 axis([0,0,40])。 figure(3) y=filter(bz,az,s)。 %数字滤波函数输出 subplot(2,1,1)。 plot(T,y) %通过数字滤波器滤波后输出信号波形 title(39。 输出信号 39。 ) xlabel(39。 t39。 )。 ylabel(39。 s39。 )。 y1=fft(y,100)。 mag2=abs(y1)。 f2=(0:length(y1)1)39。 *fs/length(y1)。 subplot(2,1,2)。 plot(f2,mag2) %输出信号频谱波形 title(39。 输出信号频谱 39。 ) xlabel(39。 w39。 )。 ylabel(39。 db39。 )。 axis([0,0,40])。 用 GUI 设计用户界面 MATLAB提供了编写图形用户界面的功能。 所谓图形用户界面。 简称为 GUI(Graphics User In。
阅读剩余 0%
本站所有文章资讯、展示的图片素材等内容均为注册用户上传(部分报媒/平媒内容转载自网络合作媒体),仅供学习参考。 用户通过本站上传、发布的任何内容的知识产权归属用户或原始著作权人所有。如有侵犯您的版权,请联系我们反馈本站将在三个工作日内改正。