《Matlab与VC++混合编程实现黑匣子声谱分析.pdf》由会员分享,可在线阅读,更多相关《Matlab与VC++混合编程实现黑匣子声谱分析.pdf(4页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、软件天地中文核心期刊(测控自动化)2 0 0 8 年第2 4 卷第3-1 期文章编号:1 0 0 8-0 5 7 0(2 0 0 8)0 3-1-0 3 0 0-0 2Ma t lab 与V C+混合编程实现黑匣子声谱分析B l a c k-b o xs o u n ds p e c t r u ma n a l y s i sb a s e do n 慨+a n dM AT L A BM i x e d-P r o g r a m m i n g(1 青岛理工大学;2 上海理工大学)郭海荣l 程道来2 梁祖峰2 林海波1 刘志红1G U OH A I R O N GC H E N GD A
2、O L A IL I A N GZ U F E N GL I NH A I B OL I UZ H I H O N G摘要:M A T L A B 作为一个功能强大的数值计算和可视化软件,被v c+、V B 及其它语言编制的程序调用将大大提高编程效率、保证程序的准确性,并且继承v C+等软件良好的用户界面本文介绍了通过利用M a t h T o o l s 公司的M a t c o m,实现在v c+环境下通过调用工具箱函数及自编m 函数,完成对工程信号实时、可视化分析功能,并以舱音背景声中超速音频警告声为例实现在专用音频分析软件A d o b eA u d i t i o n 界面下实时分析
3、。为提取舱音背景声特征提供了很大的方便关键词:M a t c o m 编译器;舱音记录器;黑匣子;谱分析中图分类号:T P 3 1 1文献标识码:AA b s t r a c t:M A T L A Bi Bap o w e r f u lv i s u a ls o f t w a r ef o rn u m e r i c a lv a l u ec a l c u l a t i o n I tw i l ls i g n i f i c a n t l yr a i s et h ep r o g r a m m i n ge f f i c i e n c ya n de n s u
4、 r ep r o g r a ma c c u r a c yw h e nM A T L A Bp r o g r a mi sc a l l e db yo t h e rl a n g u a g e s,s u c ha 8V C+,V B 1 K sa r t i c l ei n t r o d u c e sh o wt oc a l lt h et o o l b o xf u n c t i o n sa n ds e l f p r o g r a m m e dmf u n c t i o n so fM A T L A Bi nV C+c o m p i l e rp
5、 l a t f o r mt h r o u g hM a t c o mc o m p i l e rf r o mM a t h T o o l s,w h i c hs u c c e s s f u l l ya p p l i e si nz o o m i n ga n a l y s i so fo v e rs p e e dw a r n i n g 8a u d i oc h a r a c t e r sR e c o r d e db yA i r p l a n eC o c k p i tV o i c eR e c o r d e r T h i sp r o
6、v i d e se n o r m o u sc o n v e n i e n c ef o rs p e c i a l p u r p o s ea u d i of r e q u e n c ya n a l y s i ss o f t w a r eA d o b eA u d i t i o nt or e a l t i m ea n a l y z ea n dw i t h d r e wt h ec a b i nb a c k g r o u n da u d i oC h a r a c t e r i s t i c s K e yw o r d s:M a t
7、 c o mc o m p i l e r。C o c k p i tv o i c er e c o r d e r(C V R),b l a c k-b o x-s p e c t r u ma n a l y s i s1 前言M A T L A B 作为一个强大的数学分析应用工具它简洁而丰富的函数资源,为用户提供了很多的现代信号处理工具包,同时给用户带来最直观的开发环境,但仍存在一些不足:M A T L A B 在执行效率和对程序编写的一些局限,使得采用M A T L A B 语言编制的应用程序不能直接为音频分析软件A d o b eA u d i t i o n 所利用V i s u
8、 a lc+是M i c r o s o f t 公司推出的可视化编程语言,是目前最强大的综合性软件开发工具之一应用极为广泛如果把M A T L A B 与V i s u a lC+“艮好地结合起来将大大提高编程工作的效率因此基于混合编程思想开发出一种具有多种信号分析功能又能适应嵌入到A d o b eA u d i t i o n 音频分析软件的信号分析软件对于实现实时音频特征分析具有重要的应用价值。本文就是为了完善A d o b eA u d i t i o n 的音频信号分析模块而提出的在充分掌握适用于舱音背景声谱特征细化分析方法的基础上采用混合编程方法扩展信号分析功能,既利用V C 实
9、现动态的、交互式的、高效率的用户界面,又充分利用M A T L A B强大的信号分析功能和图形处理功能,将使原系统软件部分更加完善,达到功能模块化、软件智能化、接口开放化的目的该研究结果将会在专门的音频分析软件A d o b eA u d i t i o n 中有很方便的应用。2V C+下利用M A T L A B 工具箱进行信号处理的方法M A T L A B 的信号处理工具箱是信号算法文件的集合,处理郭海荣:硕士研究生基金项目:国家自然科学基金项 (6 0 5 7 2 1 8 2);中国民航总局科技项 (C A A C 6 0 1 9 8)的基本对象是信号与系统,信号处理工具箱位于目录M
10、A l L A B T o o l b o x S i g n a l 下。利用工具箱中的文件可以实现信号的变换、滤波、谱估计、滤波器设计等如果能在其它的环境,如V c+下调用M A T L A B 工具箱中的文件。则会大大地加快一些算法的实现,同时其可靠性也很高2 1 几种混合编程方法的比较混合编程有几种结合方法:首先在M a t l a b 下编写m 文件后通过M a t l a b 自身的编译连接器把m 文件转换成c+代码并嵌入到v c+程序中;通过客户一服务器方式,在V C+中使用M a t l a b 服务引擎,通过引擎调用M a t l a b 中的函数;在V C+中包含M a t
11、 l a b 中的数学函数库,使用数学函数库中的特定函数;利用M a t e o m 实现M a t l a b 与V i s u a lc+混合编程其中方法、都不能脱离M a t l a b 环境,方法则需要用l i b d e f 命令导出l i b m x 1 i b,l i b e n g 1 i b 以及l i b m e e m x 1 i b 等静态连接文件。且这3 种方法都不能有效地提高程序的执行效率方法可将M a t l a b 的源代码译成同等功能的c+源代码,既保持了M a t l a b 的优良算法,又保持了c+的高执行效率。本文也是采用了方法2 2M a t c o
12、m 的应用(1)利用M a t c o m 生成独立执行的e x e 文件在M A T L A B 中虽然可以由M 文件生成执行程序,但是它无法脱离M A T L A B环境的支持。利用M a t c o m 则可以生成不需要M A T L A B 环境支持的e x e 文件在运行M a t c o m 后,打开你所需要编译的M 文件,在胁菜单下有c o m p i l et oe x e,M a t c o m 便自动完成e x e 文件的编译与连接。编译完成以后,可以在m a t e o m 4 5 k t e b u g 目录下找到与M 文件同名的e x e 文件。(2)利用M a t
13、c o m 生成动态链接库(D u)文件这一项功能针对一3 0 0 3 6 0 元,年邮局订阅号:8 2-9 4 6 万方数据愿的论文得到两院院士关注I软件天地V C 开发,生成的方式如同e x e 文件生成的方式。生成D L L 文件的征细化分析为例)同时也生成C P P 文件,但是D L L 文件使用不方便。这里直接使用在菜单中,选择p r o j e c t a d dt op r o j e c v f i l e s。将上述恐c p p 和c P P 文件,该c P P 文件同样在m a t e o m 4 5 k l e b u g 目录下。盟h 加入工程中,并且将相应的文件加入s
14、 t d a f x h 中,并添加链2 3 修改V i s u a lc+源文件接库文件:在l s、o p I i o n、d i r e c t o r y 中选i n c l u d e,加入e:、l m a t 一(1)在V i s u a lc+源文件的头文件处应包含m a t l i b h。c o m 4 5 1 i b(包含m a t e o m-h),选l i b r a r y 选项,加入e:、l:n a t 一(2)在调用到由M 文件转换成V C+的代码时需在V i s u c o m 4 5 1 i b a l C+源文件中加入如下语句:在菜单中,选择p r o j e
15、 c t a d dt op r o j e c t F r i e s。在文件类型选i n i t M(M A T C O MV E R S I O N)溯始化m a t c o m 库项,选(1 i b),将e:h n a t e o m 4 5 1 i bv 4 5 0 1 1 i b 加入工程中编译运行旃专换成功的c+的代码添加相应实现代码如下:e x i t M 0;煺出m a t c o m 库的调用(1)将各舱音分析方法添加到列表中,方便用户通过选择不r e t u r n;同的分析方法,对舱音样本进行相关的分析。以上两点都是必须的,当然也可以在“转换成功的c+的代B O O L
16、C M e t h o d D l g:O n I n i t D i a l 0 9 0码”处加入c+的程序,以增强m a f l a b 对复杂数据处理的能力。3 应用举例:;:盏i 芝:i 兰拦:i 幽刎。nk 坤下面仅以实现超音速警告声频谱的细化分析的函数为例,m _ l s t N a m e A d d S t r i n“”8 i g 时频分析);说明如何利用M a t c o m 实现M a f l a b 和V c+混合编程。3 1 在M A T L A B 环境下编写n l 功能函数m _ l s t N a m e A d d S t r i n g(”线性调频z 变换频
17、谱特征细化”);调该函数利用z 变换是实现对超音速警告声频谱的细化分试执行结果显示如图l 所示。析具体代码如下:f u n c t i o n5 0用线性调频z 变换(C Z D 细化频率M=1 0 0 0变换长度一输出点数t 9=2 5 0 0;起始频率D E L f=I;频率步长A=e x p(j*2*p i*t O f s)确定变换起点W=e x p(-j*2*p i*D E L f f s)确定变换的步长Y 3=c z t(s i g,M,W,A);调用C Z T 变换n 2=f O:D E L f:f 0+(M 一1)*D E L l;实际计算长度调用C Z T 变换s u b p
18、l o t(3 1 3);p l o t(n 2,a b s(Y 3);g r i do n;x l a b e l(7f H z 7);y l a b e l(7I X(e j,o)1 7);Y 3=a b s(Y 3);Y 3=Y 3;3 2 利用M i d e v a 来生成可被V C 调用的信号处理程序M a t c o m 编译M 文件时,先将M 文件按照与M a t c o m 的c p p 库的对应关系翻译为c p p 源代码然后将对应版本的c 编译器将c p p 文件编译成相应的e x e 或d l l 文件。所以第一次运行要指定c 编译器的路径。否则无法编译,指定好的编译信息
19、就写在M a t c o m、b i n L n a t e o m i n i 文件中m a t c o m 4 5 版中使用T e e C h a n 3 0O C X 控件。因而支持图形操作依然用上述的t e s t w i n I n 文件,不要将图形函数注释掉,运行M i d e v a,在主界面上打开M 文件,在菜单中选择r u n,输入盟i n 在M a t c o m d e b u g 目录下可以找到盟C,毖h,盟c p p,髓1 i b,强d l l,珏e x p 等,可见利用M a t c o m 进行M 文件转换非常容易,生成的代码可读性很好,以上的转换同时生成了可供V
20、 C 调用的动态链接库,其使用方法和一般的动态库一样同时需指明M a t c o m 不仅可转换独立的不依赖于其它M 文件的M 文件同时可转换调用其它M文件的M 文件嵌套,条件是这些M 文件在同一个目录下面。3 3V C+环境下对功能函数的调用(以线性Z 变换频谱特图1(2)添加消息响应函数代码:(略)选择“显示分析结果”按钮,并添加对应的响应函数,可以得到如下分析结果,如图2、图3 所示:样本长度N,争图2(波形图)p 地图3(g 始谱图(a)和放大谱图)4 结语利用M a t c o m 进行转换代码非常方便。并且生成的代码可读性很好,支持图形函数,且代码执行的速度比不转换平均提高1 5
21、倍以上。丌转第2 7 9 页)啾一邮局订阅号:8 2 9 4 63 6 0 9 6-3 0 1 1r一甥孽荦,皿 万方数据艘的论文得到两院院士关澍软件天地缘及目标所占的像素数已经非常圆滑的逼近原始目标,对于较机信息2 0 0 7,1 3:2 7 4-2 7 5小的目标如图5 中原图(a),本文设计的算法检测得到的目标非作者简介:刘海燕(1 9 8 0 年,女,硕士研究生f 汉),主要研究常逼近原始目标,克服了标量小波破坏目标形状的缺陷。方向:实时数字图像处理;薛模根(1 9 6 4 年),男。硕士生导师(汉),现担任解放军炮兵学院信息工程系主任。(a)原图(1)目标局部放大1 0 倍图(c)矢
22、量小波变换(b)图(d)、标量小波变换m)图(a)原图(2)目标局部放大1 0 倍图(c)矢量小波变换(b)图(d)标量小波变换f b)图图5 矢量小波与标量小波检测精度对比图设M 为图像的高,N 图像的宽,由第4 小节所述算法可知其时间复杂度为8 x O(M N)。而基于标量小波的时间复杂度约为4 x O(M x),算法在时间复杂度提高了1 倍。但与背景预测等基于模板的弱小目标检测算法(时间复杂度为n x O(M x N)n 为模板大小,一般大于等于2 5)相比时间复杂度较小能满足实时处理要求。6 结束语红外弱小目标的检测技术是红外成像系统中的核心技术之一,小目标检测算法的性能对红外成像系统
23、的作用距离和智能化程度十分关键。论文在分析了红外弱小目标图像的目标、背景和噪声特性及红外弱小目标分解图像的特征的基础上设计并实现了一种基于矢量小波变换的弱小目标检测算法,给出了算法的基本思想和算法流程,并对算法进行了描述;最后。对设计的算法进行了实验验证和理论分析,结果表明算法具有速度快、检测率高、噪声抑制能力强和检测精度高的特点。论文对标量小波和矢量小波用于红外弱小目标检测进行了研究。对提升小波还未设及。将提升小波用于弱小目标检测,并比较分析这三种小波在红外弱小目标检测中的优劣,是进一步研究的方向。本文作者创新点:将矢量小波变换运用在红外弱小目标检测方面。参考文献【l k h e n gF,
24、V e n e t s a n o p o u l o sAN A nA d a p t i v eM o r p h o l o g i c a lF i l t e rf o rI m a g eP r o c e s s i n g I E E ET r a n s a c t i o n so nI m a g eP r o c e s s i n g O c t1 9 9 2 1(4):5 3 3-5 3 9【2】徐军,红外图像中弱小目标检测技术研究,西安电子科技大学博士论文2 0 0 1,0 5【3 I s M a l l a t,W L H w a n g S i n g u l
25、 a r i t yd e t e c t i o na n dp r o c e s s i n gw i t hw a v e l e t s J I E E ET r a n so n1 T。1 9 9 2,3,3 8(2):6 1 7 6 4 3 4 C A S A S E N TDP,S M O K E L I NJS,Y EA W a v e l e ta n d 幽rt r a n s f o m sf o rd e t e c t i o n J O P t E n g,1 9 9 2 3 l(4):1 8 9 3 1 8 9 8 5 s z uHH。S H E N GY C
26、H E NJ W a v e l e tt r a n s f o r ma sab a n ko ft h em a t c h e df i l t e r s J A p p l O P t 1 9 9 2,3 1(6):3 2 6 7 3 2 7 7【6】陈武凡小波分析及其在图像处理中的应用北京:科学出版社2 0 0 2 年f 7】曾怡达C L 多小波预处理方法在故障数据压缩中的应用电网技术,2 0 0 4,(2 8)【8】许林林王国宇基于小波多尺度分析的图像匹配明微计算B i o g r a p h y:L i uH a i y a n(1 9 8 0 一),w o m a n,S
27、u-Z h o uc i t yo fA n H u iP r o v i n c e,T h ef i f t hd e p a r t m e n to fA r t i l l e r yA e a d e m yo fP L A m a s t e r,m o s t l ys t u d yo nr e a lt i m ep r o c e s s i n gt h ei m a g e;X u eM og e n 一(1 9 6 4 一),n l a n,p r e s e n t l ya s s n l n e st h ed i r e c t o ro ft h eI n
28、 f o r-m a t i o nE n g i n e e r i n gd e p a r t m e n to fA r t i l l e r yA e a d e m yo fP L A(2 3 0 0 3 1 安徽合肥解放军炮兵学院五系)刘海燕(2 3 0 0 3 1 安徽合肥解放军炮兵学院军用光电工程教研室)薛模根黄勤超(2 3 0 0 3 1 安徽合肥解放军炮兵学院计算机教研室)袁广林通讯地址:(2 3 0 0 3 1 合肥合肥市黄山路4 5 1 号解放军炮兵学院五系4 l 队)刘海燕畋稿日期:2 0 0 7 1 2 0 6)(修稿日期:2 0 0 8 2 0 4)(上接第3
29、 0 1 页)文中所列出的程序在V i s u a lC+6 0,M A T L A B 6 5,M a t c o m 4 5下面调试通过。以上方法在工程实践中已得到了很好的运用并为以后在专用声音音频分析软件A d o b eA u d i t i o n 界面下实现对舱音样本的实时分析、提取舱音背景声特征。提供了极大的方便。本文作者创新点:通过上面的介绍成功的应用M a t c o m 进行转换代码,实现了在V C+环境中对M a t L a b 下的利用z 变换实现对超音速警告声频谱的细化分析函数进行调用为在专用声音音频分析软件A d o b eA u d i t i o n 界面下。对
30、舱音样本的实时分析、提取舱音背景声特征提供了极大的方便一参考文献【1 M i e h a e IJ Y o u n g 著,邱仲潘等译V i s u a lC+6 从入门到精通 M】北京:中国电子工业出版社,1 9 9 9【2】丁洲,苏兰兰V i s u a l C+与M A T L A B 混合编程在数字信号处理中的应用,机电设备,2 0 0 4 年(6)【3】王正祥,刘载文,杨斌,薛福霞M A T L A B 6 5 与V B 混合编程中的接口技术研究【J】微计算机信息,2 0 0 6,1 0 1:1 8 7 1 8 9作者简介:郭海荣,女,硕士研究生主要研究方向:计算机软件开发和信号分析
31、;程道来男,高级工程师主要研究方向:振动信号和声信号的计算机分析和处理;梁祖峰男,博士研究生。主要研究方向:机电一体化;林海波男,硕士,主要从事计算机系统开发;刘志红女,硕士,主要从事振动与噪声研究。B i o g r a p h y:G u oH a i r o n g,b e mi n1 9 8 1,M a r s t e rc a n d i d a t e,Q i n g d a oT e c h n o l o g i c a lU n i v e r s i t y,M a j o ri nm e c h a n i c a ld e s i g na n dt h e o r y
32、 R e c e a r c ho ns o f t w a r ed e v e l o p i n ga n ds i g n a la n a l y s i s(2 6 6 0 3 3 山东青岛青岛理工大学)郭海荣林海波刘志红(2 0 0 0 9 3 上海上海理工大学动力工程学院)程道来梁祖峰通讯地址:(2 6 6 0 3 3 山东山东青岛市抚顺路l l 号2 5 6 信箱)郭海荣(收稿1 3 期:2 0 0 7 1 2 0 6)(修稿日期:2 0 0 8 2 0 4)_ 嘲邮局订阅号:8 2 铷3 6 0g#-一2 7 9 万方数据Matlab与VC+混合编程实现黑匣子声谱分析Mat
33、lab与VC+混合编程实现黑匣子声谱分析作者:郭海荣,程道来,梁祖峰,林海波,刘志红,GUO HAIRONG,CHENG DAOLAI,LIANGZUFENG,LIN HAIBO,LIU ZHIHONG作者单位:郭海荣,GUO HAIRONG(青岛理工大学,山东青岛市抚顺路11号,山东青岛,266033),程道来,梁祖峰,CHENG DAOLAI,LIANG ZUFENG(上海理工大学动力工程学院,上海,200093),林海波,刘志红,LIN HAIBO,LIU ZHIHONG(青岛理工大学,山东青岛,266033)刊名:微计算机信息英文刊名:CONTROL&AUTOMATION年,卷(期):2008,24(7)参考文献(3条)参考文献(3条)1.王正祥;刘载文;杨斌;薛福霞 5与VB混合编程中的接口技术研究期刊论文-微计算机信息 2006(28)2.丁洲;苏兰兰 VisualC+与MATLAB混合编程在数字信号处理中的应用期刊论文-机电设备 2004(06)3.Michael J.Young;邱仲潘 Visual C+6从入门到精通 1999 本文链接:http:/