版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、基于Matlab GUI的模拟带通滤波器的设计电路设计 2011-03-02 10:29:32 阅读189 评论0 字号:大中小 订阅 技术分类:EDA工具与服务 |2010-07-23陕西理工学院 贾建科 韩团军 朱宁洲0 引 言模拟带通滤波器在信号的检测和传输过程中起着很重要的作用,但在传统模拟带通滤波器的设计过程中需要大量繁琐的数值计算,如果手工计算则费时费力。也有许多公司开发了相关的滤波器设计软件,如 AnsoftDesigner,Filterlab等,但是它们大多数使用起来不容易上手,而且价格比较昂贵。Matlab中的图形界面编程环境 GUIDE为用户开发软件界面提供了强有力的工具。
2、在图形界面编程环境GUIDE下,设计好滤波器的设计工具界面后,对界面上各个控件的回调函数进行编写就能设计出交互式滤波器的分析设计软件。本文在Matlab GUI基础上设计了针对Chebyshev型模拟带通滤波器的设计分析软件。用户在使用时只需输入要设计的滤波器设计指标值,选择要设计的滤波器类型,即可在分析滤波器特性时只需选择相应菜单就能得出对应的特性。该工具解决了用户在设计Chebyshev型模拟带通滤波器时大量繁琐的数值计算,不仅可以作为研究设计Chebyshev型模拟带通滤波器的辅助工具,还可以作为设计滤波器等相关课程的辅助教学软件。1 模拟带通滤波器的设计理论目前,模拟高通滤波器、带通滤
3、波器和带阻滤波器的设计方法都是先将要设计的滤波器技术指标通过某种频率转换关系转换成模拟低通滤波器的技术指标,并依据这些技术指标设计出低通滤波器的转移函数,然后再依据频率转换关系变成所要设计的滤波器的转移函数。工程实际中,设计高通、带通、带阻滤波器的常用方法是借助低通原型滤波器,经频率变换和元件变换得到。对于模拟带通滤波器的设计,首先是将要设计的模拟带通滤波器的技术指标通过频率变换关系,转换成模拟低通滤波器的技术指标,其次根据这些技术指标设计出低通切比雪夫滤波器转移函数,最后再依据频率转换关系变成模拟低通切比雪夫滤波器,其具体设计流程如图1所示。2 Matlab GUI设计工具简介在Matlab
4、中,图形用户界面(graphical user interface,GUI)是Matlab中一个专用于GUI程序设计的向导设计器,而GUI是由各种图形对象,如图形窗口、图轴、菜单、按钮、文本框等构建的用户界面,是人机交互的有效工具和方法。通过GUIDE可以很方便地设计出各种符合要求的图形用户界面。用户通过一定的方法(如鼠标或键盘)选择、激活这些图形对象,使计算机产生某种动作或变化,比如实现计算、绘图等。GUI设计既能以基本的Matlab程序设计为主,也能以鼠标为主,利用GUIDE工具进行设计,也可综合以上两种方法进行设计。GUIDE主要是一个界面设计工具集。Matlab将所有GUl支持的用户控
5、件都集成在这个环境中并提供界面外观、属性和行为相应方式的设置方法。GUIDE将用户保存设计好的图形用户界面保存在一个FIG资源文件中,同时自动生成包含图形用户界面初始化和组件界面布局控制代码的M文件,这个M文件为实现回调函数的编写提供了一个参考框架。FIG文件是一个二进制文件,包含系列化的图形窗口对象。所有对象的属性都是用户创建图形窗口时保存的属性。该文件最主要的功能是对象句柄的保存。M文件包含GUI设计、控制函数及控件的回调函数,主要用来控制 GUI展开时的各种特征。该文件基本上可以分为GUI初始化和回调函数2个部分,控件的回调函数可根据用户与GUI的具体交互行为分别调用。3 软件界面设计在
6、软件设计时,通过文本编辑框控件来接收用户输入的滤波器设计指标值,考虑到分析滤波器时输出的参数较多,如果用一一对应的文本框来接收输出的参数值,则使软件界面在设计中难以布局,并影响了界面的美观,所以只用一个文本编辑框控件来实现多个参数的输出。在滤波器类型选择控件方面,因为只用2种滤波器来进行选择设计,所以使用两个单选按钮,以实现滤波器类型的选择;在滤波器特性曲线分析和参数计算方面,利用图形界面设计工具GUIDE提供的菜单编辑器来设计出分析、计算菜单,并加入相应的功能子菜单。绘制输出滤波器的特性曲线时使用一个坐标轴来实现各个特性曲线的绘制,这样可以使软件界面简洁明了。最后对参数输入和参数输出区进行功
7、能区域划分,利用控件工具箱中的框架按钮,将参数的输入与输出区划分,利用控件工具箱中文本标签对上面相应控件的功能命名。将设计好的界面文件保存运行,就可以看到软件在运行时显示出的实际效果。设计的界面如图2所示,设计出的软件界面由4个部分组成:菜单栏、参数输入区、参数输出区、绘图区。其中,设计的分析菜单包括滤波器的幅频特性、相频特性、阶跃响应、脉冲相应和零极点子菜单,计算菜单包括阶数、零点、极点、增益、转移函数(分子)和转移函数(分母)子菜单。4应用程序M文件的设计 GUI 包含许多可以使软件终端与用户界面进行交互的用户界面组件,GUI实现的任务之一就是控制组件如何响应用户的行为。Matlab通过创
8、建应用程序M文件为 GUI控制程序提供一个框架。所有代码(包括回调函数)都包含在应用程序M文件中,即完成了图形界面的设计后,应用程序设计的主要工作是控件回调函数的设计。下面讨论程序设计流程及控件回调函数的设计。4.1 程序设计流程软件运行时,系统首先初始化。接着判断输入的滤波器参数及其类型是否正确,不正确重新输入,正确即可选择相应的功能菜单,实现相应的功能。程序具体流程图如图3所示。4.2 控件回调函数设计该软件的控件回调函数包括“确定”按钮控件回调函数、“清除”按钮控件回调函数、滤波器类型选择控件回调函数、“分析”菜单下各子菜单功能回调函数和“计算”菜单下各子菜单功能控回调函数的设计。限于篇
9、幅,仅讨论“分析”菜单下各个菜单功能回调函数和“计算”菜单下各功能回调函数的设计。4.2.1 “分析”菜单下的各子菜单功能回调函数设计在“分析”菜单下应包含“幅频特性”、“相频特性”、“阶跃响应”、“脉冲响应”、“零极点图”子菜单,分别用来实现幅频特性曲线、相频特性曲线、阶跃响应、脉冲响应、零极点图的绘制。其中,“幅频特性”菜单用来绘制给定参数的滤波器的幅频特性曲线,在程序设计过程中首先使用Matlab中的axes函数,得到坐标轴控件的句柄,以便绘制特性曲线。在得到用户输入的设计指标值后,利用if else语句来判断用户所选择的是哪一种滤波器类型,在阶数和截止频率的计算中,利用信号处理工具箱中
10、的cheblord和cheb2ord函数来计算,再用chebyl和theby2函数来计算转移函数的分子、分母,设计出用户所要求的滤波器。在计算滤波器幅值时,利用freqs函数计算出转移函数的响应。在绘制滤波器幅频特性曲线时,利用plot函数来完成,即在plot函数的参数中设置相关值,以完成幅频特性曲线的绘制。为了更好地观察到滤波器的设计是否达到相关的设计要求,利用line函数在坐标上标识出通带最大损耗、阻带最小损耗等点,这样可以直观地观察到所设计出的滤波器是否符合用户提出的要求,其具体程序如下:在“分析”菜单下“相频特性”子菜单用来绘制给定参数的滤波器的相频特性曲线。相频特性曲线的在程序设计过
11、程与幅频特性曲线的程序设计比较相似,只是在求得幅值后加一相位计算函数angle来求相位角。在plot函数中将纵坐标参数换为求出的相位角变量即可完成相频特性曲线的绘制。对于“阶跃响应”回调函数的程序设计,要将计算出的阶跃响应绘制在坐标轴控件界面上,不能利用信号处理工具箱中step函数直接求得。因为若用该函数会使绘制出的阶跃响应曲线在一个新打开的窗口上,而软件在界面设计时,所求滤波器的所有特性曲线都共用一个坐标轴来绘制;在程序设计时利用tf函数将计算出的滤波器转移函数的分子、分母系数生成转移函数,再利用阶跃响应函数step对求出的转移函数变量求解出阶跃响应值;最后利用plot函数绘制出所求滤波器的
12、阶跃响应曲线,这样即可完成阶跃响应曲线在坐标轴上的绘制。“脉冲响应”回调函数的程序设计与“阶跃响应”回调函数的程序设计十分相近,只是将上述程序中的阶跃响应函数step换成脉冲响应函数impluse,并在对应的时间做相应的调整即可完成脉冲响应回调函数的编写。“零极点图”回调函数的程序设计与以上两个子菜单的回调函数设计大致相同,程序的设计结构与前面几个菜单的回调函数的设计基本一致。在求得转移函数的分子、分母系数后,利用tf2zp函数求出所设计出的滤波器的零点、极点、增益,再用 real函数和imag函数求出零点、极点的实部和虚部,最后利用绘图函数plot绘制出系统的零极点图。4.2.2 “计算”菜
13、单下各功能回调函数的编写“计算”菜单下包含了“阶数”、“零点”、“极点”、“增益”、“转移函数分子系数”。其中,“转移函数分母系数”菜单分别用来计算所设计的滤波器阶数、零点、极点、增益、转移函数分子系数、转移函数分母系数;“阶数”菜单用来计算所输入参数滤波器的阶数,并将它输出到输出参数框。在程序的设计中,首先判断用户所选择滤波器的类型,然后将计算出的参数用set函数输出到输出文本区。因为极点、零点值可能为复数,而文本编辑框的数据类型为数值型,所以在输出时,利用num2str函数将得到的值进行格式转化,以防止出现复数值只能显示出实部来。“阶数”菜单程序如下:“阶数”、“零点”、“极点”、“增益”
14、、“转移函数分子系数”、“转移函数分母系数”子菜单中回调函数的程序设计基本一样,只是在输出值时参数名称不同。将阶数子菜单程序中set语句的“n”换成相应菜单对应的变量名即可实现相应的功能。在完成了各个控件的回调函数编写后,对软件的功能进行逐一调试,以保证每项功能都能正确响应用户的操作。4.3 代码优化在调试完软件的各项功能后,应对所设计的软件代码进行优化。打开软件中使用次数比较多的程序段,利用Matlab中 的程序执行耗时剖析功能函数 profile指令对程序中执行耗时情况进行分析,之后进行改进,以提高执行效率。打开设计出的软件主程序M文件,对已经优化过且使用次数较多的程序段,应另外编写成函数形式,供需要的控件回调函数调用,在需要调用的相关控件回调函数下只需要填写相应的函数名称就能实现其相应的功能。对于在界面设计时没有用到的控件,对应生成的代码可以直截删去。最后在Matlab环境下,运行该程序,即可实现模拟带通滤波器的设计和性能分析。利用该软件对模拟带通滤波器进行了分析,其部分结果如图4、图5所示。图4为切比雪夫2型模拟带通滤波器的幅频特
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年粤教版七年级历史上册阶段测试试卷含答案
- 健身器材行业财务分析与投资决策考核试卷
- 塑料在办公家具制造中的应用考核试卷
- 二零二五年度物流运输行业劳动合同模板2篇
- 荀子的天子观
- 基于FIS的汽车零部件BS公司抗风险性供应商评价研究
- 服务贸易协定条款深度对出口效率的影响研究
- 重叠隧道侧穿高铁桥桩施工影响机理及控制技术研究
- 保理合同的效力及责任承担问题研究
- 车身振动噪声分析及有限元软件二次开发
- 国民经济行业分类和代码表(电子版)
- ICU患者外出检查的护理
- 公司收购设备合同范例
- 广东省潮州市2023-2024学年高二上学期语文期末考试试卷(含答案)
- 2024年光伏发电项目EPC总包合同
- 试卷(完整版)python考试复习题库复习知识点试卷试题
- 海外资管机构赴上海投资指南(2024版)
- GB/T 44679-2024叉车禁用与报废技术规范
- 抖音直播带货协议书模板
- 2024义务教育体育与健康课程标准(2022年版)必考题库及答案
- 工业机器人控制器:FANUC R-30iB:机器人实时监控与数据采集技术教程
评论
0/150
提交评论