DIY编程器网

标题: 基于Matlab GUI的模拟带通滤波器的设计 [打印本页]

作者: liyf    时间: 2012-1-16 17:28
标题: 基于Matlab GUI的模拟带通滤波器的设计

                      0? 引? 言
  模拟带通滤波器在信号的检测和传输过程中起着很重要的作用,但在传统模拟带通滤波器的设计过程中需要大量繁琐的数值计算,如果手工计算则费时费力。也有许多公司开发了相关的滤波器设计软件,如AnsoftDesigner,Filterlab等,但是它们大多数使用起来不容易上手,而且价格比较昂贵。Matlab中的图形界面编程环境GUIDE为用户开发软件界面提供了强有力的工具。在图形界面编程环境GUIDE下,设计好滤波器的设计工具界面后,对界面上各个控件的回调函数进行编写就能设计出交互式滤波器的分析设计软件。
  本文在Matlab GUI基础上设计了针对Chebyshev型模拟带通滤波器的设计分析软件。用户在使用时只需输入要设计的滤波器设计指标值,选择要设计的滤波器类型,即可在分析滤波器特性时只需选择相应菜单就能得出对应的特性。该工具解决了用户在设计Chebyshev型模拟带通滤波器时大量繁琐的数值计算,不仅可以作为研究设计Chebyshev型模拟带通滤波器的辅助工具,还可以作为设计滤波器等相关课程的辅助教学软件。
  1 模拟带通滤波器的设计理论
  目前,模拟高通滤波器、带通滤波器和带阻滤波器的设计方法都是先将要设计的滤波器技术指标通过某种频率转换关系转换成模拟低通滤波器的技术指标,并依据这些技术指标设计出低通滤波器的转移函数,然后再依据频率转换关系变成所要设计的滤波器的转移函数。工程实际中,设计高通、带通、带阻滤波器的常用方法是借助低通原型滤波器,经频率变换和元件变换得到。
  对于模拟带通滤波器的设计,首先是将要设计的模拟带通滤波器的技术指标通过频率变换关系,转换成模拟低通滤波器的技术指标,其次根据这些技术指标设计出低通切比雪夫滤波器转移函数,最后再依据频率转换关系变成模拟低通切比雪夫滤波器,其具体设计流程如图1所示。






  其中,设计的分析菜单包括滤波器的幅频特性、相频特性、阶跃响应、脉冲相应和零极点子菜单,计算菜单包括阶数、零点、极点、增益、转移函数(分子)和转移函数(分母)子菜单。
  4应用程序M文件的设计
  GUI包含许多可以使软件终端与用户界面进行交互的用户界面组件,GUI实现的任务之一就是控制组件如何响应用户的行为。Matlab通过创建应用程序M文件为GUI控制程序提供一个框架。所有代码(包括回调函数)都包含在应用程序M文件中,即完成了图形界面的设计后,应用程序设计的主要工作是控件回调函数的设计。下面讨论程序设计流程及控件回调函数的设计。
  4.1? 程序设计流程
  软件运行时,系统首先初始化。接着判断输入的滤波器参数及其类型是否正确,不正确重新输入,正确即可选择相应的功能菜单,实现相应的功能。程序具体流程图如图3所示。








  “阶数”、“零点”、“极点”、“增益”、“转移函数分子系数”、“转移函数分母系数”子菜单中回调函数的程序设计基本一样,只是在输出值时参数名称不同。将阶数子菜单程序中set语句的“n”换成相应菜单对应的变量名即可实现相应的功能。在完成了各个控件的回调函数编写后,对软件的功能进行逐一调试,以保证每项功能都能正确响应用户的操作。
  4.3? 代码优化
  在调试完软件的各项功能后,应对所设计的软件代码进行优化。打开软件中使用次数比较多的程序段,利用Matlab中的程序执行耗时剖析功能函数profile指令对程序中执行耗时情况进行分析,之后进行改进,以提高执行效率。打开设计出的软件主程序M文件,对已经优化过且使用次数较多的程序段,应另外编写成函数形式,供需要的控件回调函数调用,在需要调用的相关控件回调函数下只需要填写相应的函数名称就能实现其相应的功能。
  对于在界面设计时没有用到的控件,对应生成的代码可以直截删去。最后在Matlab环境下,运行该程序,即可实现模拟带通滤波器的设计和性能分析。利用该软件对模拟带通滤波器进行了分析,其部分结果如图4、图5所示。





  5? 结? 语
  该文在分析模拟滤波器设计理论的基础上,设计了基于Matlab GUI的模拟带通滤波器设计软件。利用该软件可以分析滤波器的幅频特性、相频特性和零,极点分布特性等。如何将该课题的研究与实际的模拟滤波器设计整合在一起,将是下一步面临的重要工作。同时也可利用该设计方法设计功能更大的滤波器分析设计软件,使该软件具有更大的实用价值。
            




欢迎光临 DIY编程器网 (http://diybcq.com/) Powered by Discuz! X3.2