采用VB与MATLAB混合编程的数字滤波器设计.pdf

上传人:qwe****56 文档编号:70010757 上传时间:2023-01-14 格式:PDF 页数:4 大小:290.61KB
返回 下载 相关 举报
采用VB与MATLAB混合编程的数字滤波器设计.pdf_第1页
第1页 / 共4页
采用VB与MATLAB混合编程的数字滤波器设计.pdf_第2页
第2页 / 共4页
点击查看更多>>
资源描述

《采用VB与MATLAB混合编程的数字滤波器设计.pdf》由会员分享,可在线阅读,更多相关《采用VB与MATLAB混合编程的数字滤波器设计.pdf(4页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、第2 7 卷第1 8 期计算机工程与设计2 0 0 6 年9 月V 0 1 2 7N o 18C o m p u t e rE n g i n e e r i n ga n dD e s i g nS e p t 2 0 0 6采用V B 与M A T L A B 混合编程的数字滤波器设计李善姬,芦成刚(延边大学电子信息工程系,吉林延吉1 3 3 0 0 2)摘要:结合V B 编程简单、界面友好的特点及M A T L A B 强大的计算,图形表达功能,采用V B 与M A T L A B 的混合编程,-q-以开发出效率高、使用方便的应用程序。利用A c t i v e X 技术和文件传递参数,

2、解决了V B 与M A T L A B 的混合编程并应用于数字滤波器的设计上,利用该方法设计了F I R 数字滤波器。关键词:A c t i v e X 技术;文件传递参数;V B 与M A T L A B 混合编程;数字滤波器设计中图法分类号:T P 3 1 1 1 1;T N 7 1 3 7文献标识码:A文章编号:1 0 0 0-7 0 2 4(2 0 0 6)1 8-3 4 8 6-0 2D e s i g no fd i g i t a lf i l t e rw i t hm i x e dp r o g r a mo fV Ba n dM A T L A BL IS h a n-j

3、 i,L UC h e n g-g a n g(D e p a r t m e n to fE l e c t r o n i cI n f o r m a t i o na n dE n g i n e e r i n g,Y a n b i a nU n i v e r s i t y,Y a n j i13 3 0 0 2,C h i n a)A b s t r a c t:C o m b i n e ds a m p l ep r o g r a ma n df r i e n d l yi n t e r f a c eo f V Bw i t hh i g h-p o w e r

4、e dc a l c u l a t i o na n dg r a p h i ce x p r e s s i o no f M A T L A B,t h ea p p l i e dp r o g r a mt ob ed e v e l o p i n gb ya d o p t i n gt h em i x e dp r o g r a mo f V Ba n dM A T L A Bi se f f i c i e n ta n da c c e s s i b l et ou s e U s i n ga c t i v eXt e c h n o l o g ya n dd

5、 o c u m e n t 仃i m s f e rr e f e r e n c e i ti ss o l v e dt ot h em i x e dp r o g r a mo f V Ba n dM A T L A B M o r e o v e r,i ti su s e dt od e s i g nt h ed i g i t a lf i l t e r,a n dd i g i t a lf i l t e rF I Ri sd e s i g n e db yt h ew a y K e yw o r d s:a c t i v eXt e c h n o l o g

6、y;d o c u m e n tt r a n s f e rr e f e r e n c e;m i x e dp r o g r a mo f V Ba n dM A T L A B;d i g i t a lf i l t e r0 引言V B 是一种简单实用且功能丰富的可视化编程语言,可用于开发W i n d o w s 环境下的各类应用程序。它使用W i n d o w s 内部的应用程序接口函数,以及动态数据交换、动态链接库、对象的链接和嵌入等技术,可以高效、快速地开发出W i n d o w s 环境下功能强大、具有丰富图形界面的应用软件系统。但是V B在数值计算方面却远不如

7、M A T L A B。M A T L A B 是一种以矩阵计算为基础的功能强大的程序设计语言,它不仅编程效率高、扩展性强,而且在数值计算和图形表达功能方面具有其它类似软件难以匹敌的优势,然而它在数据可视化方面又远不如V B。如果将两个软件的功能结合在一起,利用V B 和M A T L A B各自的优点,则可以开发出具有更友好的界面、功能更强大的应用程序,这在实际的科研中具有广泛的意义。本文中将利用这一思想设计F I R 数字滤波器。1F I R 数字滤波器设计基本思想数字滤波器设计是数字信号处理的核心问题,利用数字滤波器可以在复杂的信号中提取所需要的信号,抑制不需要的信号。有关数字滤波器的设

8、计研究广泛被各界学者进行“捌。由于有限脉冲响应(f i n i t ei m p u l s er e s p o n s e,F I R)数字滤波器具有无限脉冲响应(i n f i n i t e i m p u l s er e s p o n s e,I I R)数字滤波器难以实现的严格线性相位特性,在图像处理及数据传输时不会发生明显的相位失真,而且F I R 数字滤波器同时可具有任意的幅度特性,因而F I R 数字滤波器在工程实际中得到广泛的应用。F I R 数字滤波器的设计方法常用3 种:窗函数法、频率抽样法和等波纹逼近法。其中,窗函数法是一种常用的设计方法。其基本设计步骤为:步骤1

9、 根据技术要求,来确定待求滤波器的单位抽样响应 d(栉);步骤2 根据对过渡带及阻带衰减的要求,选择窗函数的形式,并估计窗口长度步骤3 计算滤波器的单位抽样响应(”)h(n)=h d(n)“n)式中:w(n 卜_ 上面选择好的窗函数。步骤4 验算技术指标是否满足要求,如果不满足要求,根据具体情况重复步骤2 步骤4,直到满足要求为止。窗函数的形式有多种,如矩形窗、三角形窗、汉宁窗、哈明窗、布莱克曼窗和凯泽窗。根据阻带最小衰减,目前使用最广泛的是凯泽窗。利用M A T L A B 提供的F I R 滤波器设计函数可以快速地设计出所需数字滤波器,并用图形显示滤波器的幅频和相频特性蓝线,可以知道设计结

10、果是否满足指标要求。2V I I 与M A T L A B 混合编程的实现方法2 1 利用A c f i v e X 自动化A c t i v e X 自动化是A c t i v e X 的一个协议,它允许应用程序收稿日期:2 0 0 5 0 7-2 8。作者简介:李善姬(1 9 5 9-),女(朝鲜族),吉林延吉人,硕士,副教授,研究方向为计算机应用;芦成刚,男,硕士研究生。-3 4 8 6-万方数据或组件控制另一个应用程序或组件的运行,它包括自动化服务器或控制器。M A T L A B 可以作为自动化服务器,可以由其它应用程序编程驱动。M A T L A B 支持C O M 技术,它提供了

11、一个自动化对象,其外部名称是M a t l a b A p p l i c a t i o n,其它程序通过C O M 技术提供的函数得到自动化对象支持的接口指针,通过调用接口函数便可控制和使用自动化对象了,利用这一特性用户可以非常方便地在应用程序中调用M A T L A B 命令,向M A T L A B 输入数据,使用M A T L A B 功能丰富的工具箱,完成所需要的设计,获取数据图形结果。在V B 应用程序中创建A c t i v e X 对象的具体步骤如下D i mm a t l a bA sO b j e c tS e tm a t l a b=C r e a t e O b j

12、 e c t(”M a t l a b A p p l i c a t i o n”)在V B 应用程序中创建了M a t l a b 的A e t i v e X 对象后,就可以使用这个对象所包含的各种方法来实现对M a t l a b 的调用。M a t l a b A p p l i c a t i o n 对象含有3 种方法,它们是:E x e c u t e、G e t F u l l-M a t r i x 和P u t F u l l M a t r i x。对以上3 种方法简单说明如下:E x e c u t e 用于执行一个合法的M A T L A B 命令。E x e c

13、u t e 方法的输入参数为一个字符串类型的变量,它可以包含任何合法的M A T L A B 命令,并以结果字符串的形式输出,同时命令所产生的任何图形都将被直接显示在屏幕上。G e t F u l l M a t r i x 用于从M A T L A B 工作空间中获取数据。通过该方法应用程序可以从指定的M A T L A B工作空间中获取指定名字的m x A r r a y 结构体数据。P u t F u l l M a t r i x 用于向M A T L A B 工作空间中输出一个指定名字的m x A r r a y 结构体。通过该方法,应用程序可向指定的M A T L A B工作空间输

14、出一个指定名字的m x A r r a y 结构体。2 2 利用D D E 技术动态数据交换(简称D D E)是一种开放的、与语言无关的、基于消息的协议,它是应用程序通过共享内存进行进程间通信的一种形式。服务器程序与客户程序之间的数据交换被称为“会话”,其中客户程序是初始化链接和发送数据请求的应用程序,而服务器程序则是通过执行自身的命令或发送数据来响应客户程序的应用程序。D D E 协议将通过通信对象划分为服务名、主题名和项目名。每次D D E 会话由服务名和主题名惟一确定。客户应用程序可以通过D D E 协议和服务器应用程序的一个或多个项目建立数据链路。V B 为用户提供的支持D D E 通

15、信的控件有:窗体F o r m、多文档窗体M D I F o r m、标签L a b e l、文本框T e x t B o x 和图片框P i c t u r e B o x。相对于D D E 协议,这些控件提供了完成一次D D E 链接需要的属性和事件,及设置必要的参数。V B 通过D D E 调用M A T L A B 涉及到的主要属性有:L i n k M o d e、L i n k T o p i c、L i n k l t e m。2 3 采用动态链接库D L L 方法M a t c o m 是一个从M A T L A B 到C+的编译器,它可以节省用户的运算时间和内存要求。M a

16、t h t o o l s 公司利用M a t e o m 4 技术编写了M i d e v a 工具软件,它可以借用C+编译器将M A T L A B 下的M 文件转换为可被V B 调用的D L L 动态链接库。要将一个M 文件编译成D L L,可进行如下操作:启动M a t c o m 4 下的M i d e v a,点击菜单F i l e C o m p i l e,选择要转换的M 文件,应该是能作为函数被其它集成环境调用的M 文件(假设文件名为m y f i l e m)。编译完成后,在对应的D e b u g 或R e l e a s e 目录下可找到一些编译生成的文件。V B 需要

17、用到的文件有两个,m y-f i l e d l l(D L L 文件),m y f i l e b a s(在V B 中声明D L L 的模块文件)。为在V B 中能调用这类D L L,要求将m y f i l e b a s 和m a t l i b 4 2 d l l 拷贝到工程所在目录下。编译后,在V B 中的函数名为m y f i l e i n o u t,其中i n 和o u t 分别为函数的输入参数和输出参数的个数。2 4 利用文件实现V I i 与M A T L A B 的数据交换利用V B 和M A T L A B 的混合编程,主要是想利用V B 方便、简洁的功能来设计美观

18、的应用程序界面和M A T L A B 强大的计算、图形表达能力来完成所需的系统功能设计。如在设计数字滤波器时,可以将通带频率等参数由文本框输入后,由V B 程序传递到M A T L A B 中进行相应的设计。这时可采用如下文件操作来完成:在V B 中利用文件操作语句将需要传递到M A T L A B 中的参数存到文件中(如d:d a t t x t),在M A T L A B 中再利用文件操作语句将所需参数读入后进行相关的设计(具体操作见设计示例)。3 设计示例下面以一个简单示例说明采用V B 与M A T L A B 混合编程的F I R 数字滤波器的设计。在这里采用A e t i v e

19、 X 技术,并利用文件来传递数据。3 1V B 程序在工程模块创建一个M A T L A B 类型韵对象D i mM a t l a bA sO b j e c tV B 通过A c t i v e X 协议启动M A T L A B 自动化服务器,激活M A T L A B 并打开其命令窗口S e tm a t l a b=C r e a t e O b j e c t(”M a t l a b A p p l i c a t i o n”)将V B 文本框中的字符串数据直接写到文件中保存下来f l=F r e e F i l eO p e n”d:d a t t x t”F o rO u

20、t p u tA s#f lP r i n t#f 1 T e x t l T b x tC l o s e#f l执行设计数字低通滤波器程序m a t l a b e x e c u t e(”d P)在P i c t u r e B o x 中显示低通数字滤波器的幅频特性曲线P i c t u r e l P i c t u r e=L o a d P i c t u r e(”d:g r h b m p”)3 2M A T L A B 程序读入保存在文件中的通带频率数据f l=f o p e n(d:d a t 戗f);a,c o u n t =f s c a n f(f l,f,1);

21、用窗函数法设计数字低通滤波器捕获图形并保存到文件g r h b m p 中f=-g e t f r a m e(g c f);x,m a p =f i a m e 2 i m(f);i m w r i t e(x,m a p ,d:g r h b m p);上述程序,即在V B 文本框中输入通带频率0 4 后,V B 中调用M A T L A B 程序d f m 设计数字低通滤波器后,把滤波器的幅频特性曲线显示在图片框中的程序运行结果如图1 所示。(下转笫3 4 9 0 页)一3 4 8 7 万方数据拷贝屏幕的内容复制到一个位图。P r i n t 0 函数将位图图像送打印机打印。C r e

22、a t e D I B(i n t*p b m D a t a)将一个设备相关的位图转变到一个设备无关的位图。流程图如图1 所示。单击打印或打印预览时,调用C M y B i t m a p 的C a p t u r e 0IC a p t u r e()得到客户区大小,并复制到位图I调用O n P r i n t 函数中C M y B i t m a p 的p r i n tIC r e a t e D I B 0 转化为与设备无关的位图,放到打印纸上图1 抓屏打印流程2 4 报警实现实时报警,并把报警时间、房间编号等信息写入日志文档中。其它厂家提供监控火灾报警情况的硬件设备,其将检测到的火

23、情点的信息写入到一个文本文件中,本系统利用工作者线程监控该文件。当文件中有报警信息时,向主线程传递消息,触发报警。关键代码如下v o i dC M y D e s i g n V i e w:O n l n i t i a l U p d a t e 0 A f x B e g i n T h r e a d(M y T h r e a d P r o c,t h i s);)U I N TC T e s t 0 1 D l g:M y T h r e a d P r o c(L P V O I Dp P a r a m)i f s t r e a mf l(“e:监控文件”);i n tb

24、i a o j i=l;w h i l e(b i a o j i)i 玎!f 1 e o f 0)b i a o j i=0;:P o s t M e s s a g e(H W N D)p P a r a m,W M _ D A T A,0,o);向主线程传递用户消息,触发读数据及报警);3 结束语报警器布线系统的设计与开发,不仅为设计者创造良好的设计环境,而且方便了用户对报警的管理,提高了人员的工作效率。该系统有较强的适用性,能够使用在类似的监控及布线系统中。参考文献:1】廖维川,万涛一个绘图工具的面向对象设计 J】计算机工程与设计,2 0 0 5,2 6(5):1 3 7 3-1 3

25、7 6 2】D a v i dJ K r u g l i n s kI V i s u a lc+6:O 技术内幕【M 北京:北京希望电子出版社,2 0 0 1 3】K a t eG r e g o r y V i s u a lC+6 0 开发使用手册 M】北京:机械工业出版社,1 9 9 9【4】李明柱,单肃V i s u a lc+最新编程实践与技巧D 嘲北京:北京航空航天大学出版社,2 0 0 1 5】张力V i s u a lC+高级编程 M】北京:人民邮电出版社,2 0 0 3 6】伊岷,王兴东V i s u a lC+软件项目开发【M】北京:电子工业出版社,2 0 0 4 7】王

26、宏V i s u a lC+实战演练 M】一B 京:人民邮电出版社,2 0 0 1 8】陈建春M i c r o s o f tV i s u a lC+图形系统开发技术基础 M】北京:电子工业出版社,1 9 9 8 9】王宏,李玉东V i s u a lc+实战演练刖北京:人民邮电出版署,2 0 0 0(上接第3 4 8 7 页)实现了V B 与M A T L A B 之间的动态数据交换,并利用这一技术采用窗函数法设计了数字低通滤波器。参考文献:1】张葛祥,金炜东,胡来招,等基于频率采样技术的F I R 数字滤波器的优化设计 J 电路与系统学报,2 0 0 4,9(4):1 1 1-1 1

27、4 2】赵刚,黄建民,隋燕基于数字滤波器设计的讨论【J】南开大学学报,2 0 0 3,3 6(9):1 0 1-1 0 3 图1 数字低通滤波器设计结果 3】张宏立,陈华,李拮实现V B 与M A T L A B 数据交换的新方法4 结束语M 呈嚣怒嚣篓搽北榈采用V B 与M A T L A B 混合编程,可以充分利用V B 编程出版社,2 0 0 4 简单、界面友好的特点及M A T L A B 丰富的工具箱功能设计出 5】5程佩青数字信号处理教程【M】北京:清华大学出版社,1 9 9 5 效率高、使用方便的应用程序。V B 与M A T L A B 混合编程的【6】蒋方帅V i s u a

28、 lB a s i c6 0 全攻略宝典【M】北京:中国水利水电实现方法有多种,本文中利用A c t i v e X 技术和文件传递数据来出版社,2 0 0 0-3 4 9 0 万方数据采用VB与MATLAB混合编程的数字滤波器设计采用VB与MATLAB混合编程的数字滤波器设计作者:李善姬,芦成刚,LI Shan-ji,LU Cheng-gang作者单位:延边大学,电子信息工程系,吉林,延吉,133002刊名:计算机工程与设计英文刊名:COMPUTER ENGINEERING AND DESIGN年,卷(期):2006,27(18)被引用次数:1次 参考文献(6条)参考文献(6条)1.张葛祥.

29、金炜东.胡来招 基于频率采样技术的FIR数字滤波器的优化设计期刊论文-电路与系统学报 2004(04)2.赵刚.黄建民.隋燕 基于数字滤波器设计的讨论期刊论文-南开大学学报 2003(09)3.张宏立.陈华.李喆 实现VB与MATLAB数据交换的新方法期刊论文-计算机应用与软件 2004(12)4.魏巍 MATLAB信息工程工具箱技术手册 20045.黄希庭 心理学实验指导 19956.蒋方帅 Visual Basic 6.0全攻略宝典 2000 引证文献(1条)引证文献(1条)1.熊智新.胡慕伊.陈朝霞.胡明 离散小波变换算法剖析及其通用程序实现期刊论文-计算机工程与设计 2007(20)本文链接:http:/

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 技术资料 > 其他杂项

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁