滤波器设计软件.ppt_第1页
滤波器设计软件.ppt_第2页
滤波器设计软件.ppt_第3页
滤波器设计软件.ppt_第4页
滤波器设计软件.ppt_第5页
已阅读5页,还剩15页未读 继续免费阅读

下载本文档

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

文档简介

“滤波器设计软件”设计,基于MATLABGUI设计滤波器软件设计,一MATALBGUI介绍,MATALB可以创建图形用户界面GUI(GraphicalUserInterface),它是用户和计算机之间交流的工具。MATLAB将所有GUl支持的用户控件都集成在这个环境中并提供界面外观、属性和行为响应方式的设置方法,随着版本的提高,这种能力还会不断加强。而且具有强大的绘图功能,可以轻松的获得更高质量的曲线图。,1、IIR滤波器设计原理滤波器的设计质上是寻找一个既能物理实现,又能满足给定频率特性指标要求的系统传输函数。IIR滤波器一般采用递归型的结构,系统的输入与输出服从N阶差分方程:相应的传输函数为:,二、IIR滤波器设计原理,2、IIR滤波器设计思想,将设计指标归一化处理,根据归一化频率,确定最小阶数N和频率参数Wn。可供选用的阶数选择函数有:buttord,cheblord,cheb2ord,ellipord等,运用最小阶数N设计模拟低通滤波器原型。根据最小阶数直接设计模拟低通滤波器原型,用到的函数有:butter,chebyl,cheby2,ellip和bessel,再用freqz函数验证设计结果,3、IIR滤波器设计编程实现,Fs=22050;Fp1=3400;Fs1=5000;Rp=3;Rs=20;%设计指标,wp1=2*Fp1/Fs;ws1=2*Fs1/Fs;%求归一化频率,%确定butterworth的最小阶数N和频率参数Wnn,Wn=buttord(wp1,ws1,Rp,Rs);,w=blackman(n+1);%确定窗口值,b=fir1(n,wn,w);%确定传递函数的分母系数,plot(f,20*log(abs(h)%画幅频响应图plot(f,angle(h);%画相频响应图,h,f=freqz(b,1);%生成频率响应参数,软件效果显示,三、FIR滤波器设计原理,1、FIR滤波器设计原理,寻找一个FIR滤波器,使其频率响应H(ej)逼近理想FIR滤波器的频率响应Hd(ej).,w(n):窗函数序列,要选择合适的形状和长度,2、FIR滤波器设计思想,将设计指标归一化处理,根据归一化频率,选择函数buttord确定最小阶数N和频率参数Wn,确定窗口值。Windows指定窗函数类型,默认为Hamming窗;可选Hanning、Hamming、Blackman、triangle、bartlett等窗,确定传递函数的分母系数。函数fir1的调用格式为B=fir1(n,Wn,ftype,Windows),同时选择在此函数中选择要设计的滤波器的类型。,再用freqz函数验证设计结果,3、FIR滤波器设计编程实现,Fs=22050;Fp1=3400;Fs1=5000;Rp=3;Rs=20;N=75%设计指标,wp1=2*Fp1/Fs;ws1=2*Fs1/Fs;%求归一化频率,%确定butterworth的最小阶数N和频率参数Wnn,Wn=buttord(wp1,ws1,Rp,Rs);,B,A=butter(N,Wn);%确定传递函数的分子、分母系数,h,f=freqz(b,a,Nn,Fs_value);%生成频率响应参数,plot(f,20*log(abs(h)%画幅频响应图plot(f,angle(h);%画相频响应图,软件效果显示,四、基于MatlabGUI的数字滤波器设计思路及实现,MATLAB提供了编写图形用户界面的功能。所谓图形用户界面,简称为GUI,GUI设计面板是GUI设计工具应用的平面,面板上部提供了菜单和常用工具按钮,左边提供了多种如命令按钮、单选按钮、可编辑文本框、静态文本框、弹出式菜单等,GUI设计面板是GUI设计工具应用的平面,面板上部提供了菜单和常用工具按钮,左边提供了多种如命令按钮、单选按钮、可编辑文本框、静态文本框、弹出式菜单等,选择IIR或者FIRFilter设计,Butterworth等Filter选择,窗口选择,1、滤波器设计总框图,2、“滤波器设计软件”设计的GUI界面设计,MATLABGUI设计界面,“滤波器设计软件”GUI界面设计,2、设计界面功能显示,选择IIR或者FIRFilter,选择Butterworth、Chebyshev、Chebyshev、Ellipse滤波器,选择Boxar、Bartlett、Blackman、Hanning、Hamming、Kaiser窗口,选择Lowpass、Highpass、Bandpass、Bandstop四种类型,选择图形显示Linear、Logarithmic两种类型,最小阶数设计滤波器,显示最小阶数,选择自定义阶数,阶数输入框,抽样频率Fs,通带临界频率Fp1、Fp2,滤波器阻带临界频率Fst1、Fst2,最大衰减Rp,最小衰减Rs,幅频响应显示,相频响应显示,退出设计界面,手动运行,自动运行,(1)DigitalFilter下拉菜单functionDigitalFilter_Callback(hObject,eventdata,handles)%读取此时选择的滤波器选择,“IIR、FIR”DigitalFilter_value=get(handles.DigitalFilter,Value);%当选择了IIR时,使窗口选项屏蔽if(DigitalFilter_value=1)set(handles.FilterDesign,enable,on);set(handles.Windows,enable,off)%当选择了FIR时,使IIR的滤波器(Butterworth、Chebyshev等)选项屏蔽elseset(handles.FilterDesign,enable,off);set(handles.Windows,enable,on)end,3、按钮实现编程,选择IIR屏蔽Windows选择,选择FIR屏蔽FilterDesign选择,(2)FilterType下拉菜单functionFilterType_Callback(hObject,eventdata,handles)%读取此时设计的滤波器的类型,“Lowpass、Highpass、Bandpass、Bandstop”FilterType_value=get(handles.FilterType,Value);%当选择Lowpass或者Highpass,屏蔽相应的临界频率的显示if(FilterType_value=1)|(FilterType_value=2)set(handles.Fp2,visible,off);set(handles.Fs2,visible,off)set(handles.text17,visible,off);set(handles.text19,visible,off);set(handles.text6,visible,off);set(handles.text10,visible,off);else%当选择Bandpass或者Bandstop,使相应的临界频率的显示,使参数能够输入if(FilterType_value=3)|(FilterType_value=4)set(handles.Fp2,visible,on);set(handles.Fs2,visible,on);set(handles.text17,visible,on);set(handles.text19,visible,on);set(handles.text6,visible,on);set(handles.text10,visible,on);endend,选择低通或者高通滤波器时,隐藏相应的带通和带阻的第二个临界频率,选择带通或者带阻滤波器时,显示相应的带通和带阻的第二个临界频率,(3)MinOrder和CustomOrde按钮选择使用最小阶数设置时,屏蔽自定义阶数的输functionMinOrder_Callback(hObject,eventdata,handles)MinOrder_value=get(handles.MinOrder,Value);if(MinOrder_value=1)set(handles.Order,visible,off);elseset(handles.Order,visible,on);end选择自定义阶数时,显示阶数输入框functionCustomOrderButton_Callback(hObject,eventdata,handles)CustomOrderButton_value=get(handles.CustomOrderButton,Value);if(CustomOrderButton_value=0)set(handles.Order,visible,off);elseset(handles.Order,visible,on);end,(4)Fp1、Fp2、Fst1、Fst2文本编辑框参数输入时,在输入抽样频率Fs的前提下,判断滤波器通带临界频率(Fp1、Fp2)、滤波器阻带临界频率(Fst1、Fst2)的归一化频率wp1、wp2、ws1、ws1是否在0,1之间,如不正确显示错误对话框functionFp1_Callback(hObject,eventdata,handles)%检查输入的通带临界频率Fp1的归一化频率是否在0,1之间Fs_value=str2double(get(handles.Fs,String);Fp1_value=str2double(get(handles.Fp1,String);wp1=2*Fp1_value/Fs_value;%如果不在0,1之间,显示输入错误对话框if(wp1=1)errordlg(wp1=2*Fp1/Fs,归一化频率不在【0,1】之间,请输入正确的参数,错误信息)end,(5)Run按钮根据输入的参数显示设计的滤波器的幅频特性和相频特性图,其程序如下:functionRun_Callback(hObject,eventdata,handles)%点击Run立即运行AutoChoose,m文件,实现滤波器设计程序AutoChoose(handles)(6)AutoRun按钮当选择了AutoRun按钮时,能够根据所选的IIR的滤波器(Butterworth、Chebyshev等)、FIR的窗口选项、图形显示类型(Linear、Logarithmic)立即显示滤波器的幅频特性和相频特性图,其中IIR的滤波器(Butterworth、Chebyshev等)的回调函数程序如下:functionFilterDesign_Callback(hObject,eventdata,handles)AutoRun_value=get(handles.AutoRun,Value);%当选择了Filter(Butterworth、Chebyshev等)中一种Filter运行AutoChoose,m文件if(AutoRun_value=1)AutoChoose(handles)end,(7)Quit按钮退出滤波器设计窗口,其程序如下:functionQuit_Callback(hObject,eventdata,handles)%点击Quti按钮退出Close,4、运行和结果显示在图形界面下,按“运行”

温馨提示

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

评论

0/150

提交评论