MATLAB与VC++混合编程实现一维小波多尺度分解
2009-06-11 20:07:24 来源:WEB开发网(1)在MATLAB环境下编写所需M函数文件gzqfenjie.m、myplot.m、myprocess.m、mysave.m,并利用COMBuilder工具创建COM组件[1] [2],再对生成的COM组件打包,以保持开发软件的可移植性。
(2)VC中调用上述由MATLAB产生组件,形成一个可脱离MATLAB环境运行的可执行文件(*.exe),过程如下[1] [2]:
○1建立一个名为COMwavelet 基于对话框的MFC(exe)工程。添加相应控件。现在需对Precompiled Headers 进行设置: 工程→设置→C/C++→Y分类中选择Precompiled Headers, 接着选择M自动使用与补偿页眉, 在其中填写stdafx.h, 最后确定。
○2将上面在MATLAB界面生成的Myproject_idl.h、Myproject_idl_i.c以及<MATLAB安装位置>externinclude 下的mwcomtypes.h和mwcomutil.h文件拷贝到COMwavelet工程目录下,再加入到VC 工程中:选择工程->添加工程->文件,选择刚才拷贝到COMwavelet目录下的四个文件。此时发现工程中出现一个类Imyclass,这就是我们要操作的类。
○3在COMwaveletdlg.cpp中添加如下的头文件。
#include "component_idl.h"
#include "mwcomtypes.h"
#include "mwcomutil.h"
#include "comdef.h" //用于CString 向VARIANT数据类型的转换
○4为界面添加所需控件和相应代码,调试程序,最后形成可脱离MATLAB环境运行的可执行文件(*.exe),界面如图2示。
3、应用实例
小波分析是近年来兴起的一种新的数学分支,它在信噪分离、信号特征提取、信号频率分析、信号奇异性检测、故障诊断 、BIT虚警抑制以及语音信号处理等许多科学领域内获得了巨大的突破,得到广泛的应用。由于篇幅有限,现仅以信号奇异性检测为原理的汽轮发电机转子匝间短路故障检测为例说明VC和MATLAB混合编程实现一维小波多尺度分解的实用性,方便性。
更多精彩
赞助商链接