




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、“滤波器设计软件滤波器设计软件”设计设计 基于MATLAB GUI设计滤波器软件设计一 MATALB GUI介绍 MATALB 可以创建图形用户界面GUI ( GraphicalUser Interface) ,它是用户和计算机之间交流的工具。MATLAB 将所有GUl 支持的用户控件都集成在这个环境中并提供界面外观、属性和行为响应方式的设置方法,随着版本的提高,这种能力还会不断加强。而且具有强大的绘图功能,可以轻松的获得更高质量的曲线图。1、IIR滤波器设计原理 滤波器的设计质上是寻找一个既能物理实现,又能满足给定频率特性指标要求的系统传输函数。IIR滤波器一般采用递归型的结构,系统的输入与
2、输出服从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*Fp
3、1 /Fs;ws1=2*Fs1 /Fs;%求归一化频率 % 确定butterworth 的最小阶数N 和频率参数Wn n,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).10()(
4、)()Njj njdnH eh n eHe1( )2jj nddh nHeed( )( )( )dh nw n h nw(n):窗函数序列要选择合适的形状和长度2、FIR滤波器设计思想 将设计指标归一化处理 根据归一化频率,选择函数buttord确定最小阶数N 和频率参数Wn 确定窗口值。Windows指定窗函数类型,默认为Hamming窗;可选Hanning、Hamming、Blackman、triangle、bartlett等窗 确定传递函数的分母系数。函数fir1的调用格式为B= fir1(n, Wn, ftype, Windows),同时选择在此函数中选择要设计的滤波器的类型。 再用f
5、reqz 函数验证设计结果3、 FIR滤波器设计编程实现 Fs=22050;Fp1=3400;Fs1=5000;Rp=3;Rs=20;N=75%设计指标 wp1=2*Fp1 /Fs;ws1=2*Fs1 /Fs;%求归一化频率 % 确定butterworth 的最小阶数N 和频率参数Wn n,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); %画相频响应图软件
6、效果显示四、基于四、基于Matlab GUI的数字滤波器的数字滤波器设计思路及实现设计思路及实现 MATLAB提供了编写图形用户界面的功能。所谓图形用户界面, 简称为GUI GUI设计面板是GUI设计工具应用的平面,面板上部提供了菜单和常用工具按钮,左边提供了多种如命令按钮、单选按钮、可编辑文本框、静态文本框、弹出式菜单等 GUI设计面板是GUI设计工具应用的平面,面板上部提供了菜单和常用工具按钮,左边提供了多种如命令按钮、单选按钮、可编辑文本框、静态文本框、弹出式菜单等Filter DisignIIR滤波器FIR滤波器BoxcarBartlett Blackman Hanning Hammi
7、ng Kaiser Butterworth Chebyshev Chebyshev Ellipse 选择IIR或者FIRFilter设计Butterworth等Filter选择窗口选择1、滤波器设计总框图2、“滤波器设计软件”设计的GUI界面设计 MATLAB GUI设计界面 “滤波器设计软件” GUI界面设计 2、设计界面功能显示选择IIR或者FIRFilter选择Butterworth、 Chebyshev、 Chebyshev 、 Ellipse 滤波器选择Boxar、Bartlett、Blackman、Hanning、Hamming、Kaiser窗口 选择Lowpass、Highpas
8、s、Bandpass、Bandstop四种类型选择图形显示Linear、Logarithmic两种类型 最小阶数设计滤波器 显示最小阶数 选择自定义阶数 阶数输入框 抽样频率Fs 通带临界频率Fp1、Fp2滤波器阻带临界频率Fst1、Fst2最大衰减Rp 最小衰减Rs幅频响应显示相频响应显示 退出设计界面手动运行自动运行(1)Digital Filter下拉菜单 function DigitalFilter_Callback(hObject, eventdata, handles)%读取此时选择的滤波器选择,“IIR、FIR” DigitalFilter_value=get(handles.D
9、igitalFilter,Value); %当选择了IIR时,使窗口选项屏蔽 if(DigitalFilter_value=1) set(handles.FilterDesign,enable,on); set(handles.Windows,enable,off) %当选择了FIR时,使IIR的滤波器(Butterworth、 Chebyshev等)选项屏蔽 else set(handles.FilterDesign,enable,off); set(handles.Windows,enable,on) end 3、按钮实现编程 选择IIR屏蔽Windows选择选择FIR屏蔽Filter D
10、esign选择(2)Filter Type下拉菜单 function FilterType_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
11、.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(
12、handles.text17,visible,on);set(handles.text19,visible,on); set(handles.text6,visible,on);set(handles.text10,visible,on); end end选择低通或者高通滤波器时,隐藏相应的带通和带阻的第二个临界频率 选择带通或者带阻滤波器时,显示相应的带通和带阻的第二个临界频率 (3)Min Order和Custom Orde按钮 选择使用最小阶数设置时,屏蔽自定义阶数的输function MinOrder_Callback(hObject, eventdata, handles)MinOr
13、der_value=get(handles.MinOrder,Value); if(MinOrder_value=1) set(handles.Order,visible,off); else set(handles.Order,visible,on); end 选择自定义阶数时,显示阶数输入框 function CustomOrderButton_Callback(hObject, eventdata, handles) CustomOrderButton_value=get(handles.CustomOrderButton,Value); if(CustomOrderButton_val
14、ue=0) set(handles.Order,visible,off); else set(handles.Order,visible,on); end (4)Fp1、Fp2、Fst1、Fst2文本编辑框 参数输入时,在输入抽样频率Fs的前提下,判断滤波器通带临界频率(Fp1、Fp2)、滤波器阻带临界频率(Fst1、Fst2)的归一化频率wp1、 wp2、ws1、ws1是否在0,1之间,如不正确显示错误对话框 function Fp1_Callback(hObject, eventdata, handles)%检查输入的通带临界频率Fp1的归一化频率是否在0,1之间Fs_value=str2
15、double(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按钮根据输入的参数显示设计的滤波器的幅频特性和相频特性图,其程序如下:function Run_Callback(hObject, eventdata, handles)%点击Run立即运行AutoChoose,m文件
16、,实现滤波器设计程序AutoChoose(handles)(6)Auto Run按钮当选择了Auto Run按钮时,能够根据所选的IIR的滤波器(Butterworth、Chebyshev等)、FIR的窗口选项、图形显示类型(Linear、Logarithmic)立即显示滤波器的幅频特性和相频特性图,其中IIR的滤波器(Butterworth、 Chebyshev等)的回调函数程序如下:function FilterDesign_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按钮退出滤波器设计窗口,其程序如下:function Quit_Callback(hObject, eventdata, handles)%点击Quti按钮退出Close4、运
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年海事专业技术资格考试试卷及答案
- 2025年投资理财师职业资格考试试题及答案
- 2025年金融市场学考试试卷及答案
- 2025年翻译专业八级考试题及答案
- 互联网艺术品鉴定与价值评估服务协议
- 娱乐行业替身保险补充合同细则
- 高端私人游艇专属泊位租赁管理服务合同
- 智能家居产品体验店加盟品牌授权与区域保护合同
- 智能家居研发项目保密补充协议
- 网络广告内容审查规范补充协议
- 糖尿病足护理
- 三项制度改革培训
- T-CTTS 0019-2023 数字化实验室等级评价规范
- 动漫游戏IP衍生品开发策划书
- 晋祠完整分享
- 机器视觉系统应用(中级) 课件 5.4书签缺陷检测系统联调
- 事业单位代报名委托书
- 保温安全生产管理制度
- 大客户销售:谋攻之道
- 建设单位与施工单位安全生产协议书 标准版
- 6人小品《没有学习的人不伤心》台词完整版
评论
0/150
提交评论