中英文对照翻译
基于VB和Matlab的数字滤波器的设计
摘要
数字信号处理的核心是数字滤波器的设计。目前,大多数数字滤波器是基于Matlab这种高性能的数值计算并提供强大的图形显示功能的软件。 MATLAB广泛应用于工程计算,数值分析等多个领域,但它不善于开发接口。在本文中,将用VB与Matlab混合编程的方法引入到设计数字滤波器中。集成的软件可以利用VB和Matlab的最大优势,实现过程表明,该方法简单,方便。 关键词:数字滤波器,Visual Basic,MATLAB,组件对象模型。
1.引言
如今,滤波器在相关的电子系统中很重要,因为他们存在于几乎所有的电子系统。例如,通信系统中广泛利用滤波器的将噪声和所需信号区分开来。电源供应器使用滤波器来滤除纹波和改善直流信号的质量。音频均衡器使用过滤器来放大或衰减频段的音频范围,音频质量的提高取决于房间的声学特性。数字视频由于编码和传输,需要将数字滤波器接入噪声信道,以减少噪声,依此类推。然而,滤波器的设计是一个密集的计算任务,需要一个大量数值计算得到的滤波器传递函数的任一参数或为一个滤波电路实现的元素的值。另外,在日常生活中,电脑的使用已经很普及。因此,计算机软件开发已经成为技术发展的一个重要组成部分。教育很大部分受这个发展的影响。今天,大量的软件包可用于设计滤波器, Matlab便是其中之一。 Matlab是由Mathworks公司开发,是一款高性能的数值计算软件,并提供图形显示的强大功能,它被广泛应用于工程计算,数值分析等领域。现在任何一所大学或工业都在使用Matlab,并且在电路和系统的设计等许多其它事情都会用到。其中,Matlab的主要特点是,它的一套工具箱在滤波器的设计中都可以使用。不足的是,使用这些工具箱,需要相当长的时间去掌握它们,新手才能使用它们。更重要的是,Matlab不善于开发接口。相反,VB中有一个友好的设计用户界面和开发应用程序,但它不能够计算,尤其是在数字滤波器的设计中。因此,如果我们能够在开发的过程中,利用Matlab做计算和数据图形显示的工作,并用VB写的Windows应用程序和分析计算结果,集成VB和Matlab
1
各自的优点,将很大的提高开发效率。本文的结构如下:在第二节中,我们将用VB和Matlab引入混合编程,这是基于COM(组件对象模型)的方法;在第三节中我们将展示使用的方法,设计几种不同类型的滤波器,如巴特沃斯滤波器,切比雪夫I型和II型滤波器等;在第四节中,我们将使用信号来检验设计的滤波器的效果。
2. 混合编程的实现方法
在如何解决与其他应用程序交互的问题,2002年, Mathworks公司带来了MATLAB 6.5,其中的COM生成器模块增加了,在COM Builder提供了一个易于使用的图形用户界面,帮助用户将M文件自动快速转换成独立的COM组件。COM组件保存为. DLL(ActiveX DLL )的形式,并且可以使用支持COM组件的应用程序,例如,Visual Basic 、 Microsoft Excel、 C / C + +等。它的优点是在VB调用COM组件时,可以以最快的速度得到,因为它没有必要进行环境切换。一个项目包含了所有必要的元素使用COM来构建一个可部署的应用程序.COM Builder组件是通过Visual Basic ,C + + ,或任何支持COM的其他语言对COM对象的访问。COM是组件对象模型的一个缩写,它是微软的对象互操作性二进制标准。每个COM对象公开一个或多个类的Visual Basic编程环境。每个类都包含了一组函数调用的方法,对应于包括在该组件项目的MATLAB函数。创建一个组件时,你必须另外提供一个或多个类名。组件名称表示要创建的DLL文件的名称。类名表示,在运行时执行一个特定的方法时调用的类的名称。组件名和类名,以及各种方法(MATLAB函数)之间的关系进入一个特定的类,是纯粹的组织。作为一般规则,编制许多MATLAB函数时,它有助于确定函数类的方案,并创建一个单独的类。每个类的名称应该是描述性的类功能。
2.1. 在Matlab中创建COM组件
因为不是所有的编译器都能产生微软兼容的COM对象,COM生成器仅支持这些编译器的选择: Borland C+ + Builder 4, Borland C+ + Builder 5, Borland C+ + Builder 6,微软的Visual Studio5.0,微软的Visual
Studio6.0,微软的Visual Studio.net。选择安装上述六个编译器之一后,您必须运行matlab编译MyWibes支持工具以及设置参数。利用Matlab的COM Builder创建一个COM组件是一个需要四个简单步骤的过程.
2
创建项目:
要开始创建项目,在命令行中输入MATLAB命令comtool。出现了Matlab生成器窗口。选择:文件>新建项目,在这个窗口来查看新的项目设置对话框。组件名称表示以后在构建过程中创建的DLL名称。当您输入组件名称时,图形用户界面会自动进入一个类名相同的组件。你可以改变类的名称更具说明性。虽然组件名和类名可以相同,但该组件添加到项目中的名称不能与任一M或MEX文件的名称相同。将类添加到您的组件时,请在类名称字段中的类名单击添加。新增加的类别现在出现在类列表中。一旦你通过单击确定新建项目设置对话框的这些设置,他们将成为你项目工作区的一部分,并与M或MEX文件保存到一起,添加到项目名称项目文件中。
管理的m文件和MEX文件:
当你创建一个项目,建立Matlab的组件菜单选项生成器窗口。添加M文件和或MEX文件到项目中,通过单击添加文件按钮或选择Project - >添加文件菜单。你可以一次添加一个文件到项目中。
建设项目:
在定义项目设置并添加所需的M-函数和MEX函数,你可以建立一个可部署的DLL。选择建立 - > COM对象调用matlab编译,写中间的源文件,
包装和分发组件:
一旦你已经成功编译模型和测试的COM对象,您就可以在组件包分发给最终用户。选择组件 - >包装组件来创建包含这些文件的自解压可执行文件。
文件 Purpose 3
表1 由COM Builder创建的文件
2.2. 应用COM组件在VB
当发布应用程序时,成功创建组件应登记到使用该应用程序的目标计算机。从
3. 滤波器的设计
现在我们将采用上述方法来开发一种软件,该软件将过滤采样数据,并与滤波后的采样数据的波形比较。该软件的用户界面是由VB设计,并且滤波器的设计和数据图形显示的函数利用Matlab完成。对于IIR数字滤波器的设计最有名的和最
4