万方数据
华侨大学学报(自然科学版) 2007年
{ fprInt“buffer,“\nCan’tstaftMatlabengine!\n”);
returnExIT—FAILuRE;}//不成功返回值ExITFAILURE
A—mxCreateDoubleMatrix(1,10,mxREAL);//构造1×10的双精度矩阵
mxsetName(A,“A”)}//矩阵命名,这个名字是在Matlab环境中使用的
memcpy((void。)mxGetPr(A),(void。)a,sizeof(a))I//为矩阵的实部赋值ta已定义
e“gPutArray(ep,A);/,将已定义的变量输人Matlab环境 ’
engEvalstri“g(ep,“Y一3*sin(A);”);//使用Matlab的计算函数求解Y=3sin(x)
B—engGetArray(ep,“Y”);//从Matlab中获得矩阵值,并赋给结构体指针变量B
engcIose(ep)}//关闭引擎,对Matlab的调用就此结束
returnO;)
1.2 CVI提供的Activex服务控件
此方法和引擎调用技术的实现方法类似,同样是通过创建功能函数,并在环境下利用这些数进行混
合编程,实现与Matlab的数据交换和命令传输但不同的是,这些功能函数是由cVlActivex服务控
件提供的.为方便实现cVI环境中与MatIab的混合编程.NI公司配置了一个较为友好、易操作的的接
口函数文件.该文件在samples—Activex—Matlab目录下,名称为Matlabutil.c.常用函数有:MLAp—
pNewcIMLApp,启动Matlab函数;sendMatrlx,向Matlab工作空问发送矩阵RunMatlabCommand,
运行Matlab命令;GetMat“x,从Matlab工作空间中获得矩阵等.
1.3编译器
编译器(MatlabCompller)是随着Matlab而自动安装的t它可以通过设置mcc命令的选项.将m文
件转化成c/cH或p等各种类型的源代码,根据需要生成可执行文件、lib文件,dll文件等一系列文
件.最后,由其c/c¨代码完成调用.将m文件编译成c/c¨源代码或mex文件的工作由编译器命令
自动完成,但是初始环境的配置却是很重要的.安装环境配置完毕,即可利用mcc或mex命令并根据需
要选择相关命令参数,实现对目标m文件的编译,其编译结果(文件类型)是由命令和参数决定的.
通过对以上两种软接口技术的比较可以知道,在易用性方面:方法1最佳,方法2次之,方法3最
差}在数据处理的灵活性方面:方法3最佳,方法1次之.方法2较差,但方法3调用接口及环境配置较
复杂,需要编程人员有很高的c¨水平}在数据交流的可靠性方面:方法3最优.方法1,2次之,但随着
计算机配置的不断提高,方法1已逐渐显示其巨大的应用潜力.
2引擎调用技术的应用
2.1光电色选信号的小波消噪
设计
领导形象设计圆作业设计ao工艺污水处理厂设计附属工程施工组织设计清扫机器人结构设计
应用小波分析进行消噪主要涉及小波的分解与重构,其过程可分为以下3个步骤.(1)信号的小渡
分解.选定一种小波,对信号进行N层分解.(2)高频系数的阚值量化.对分解得到的各层系数选择
一个闻值,并对细节系数作软阈值处理.(3)信号的小波重构.降噪处理后的系数通过小波重构原始信
号.这3个步骤中,关键是如何选取阈值并进行阈值的量化,它直接关系到信号消噪的质量.
首先利用NI公司的Pcl622l卡采集实时数据(光电色选信号),通过Internet将其传输并显示在
cVI的虚拟仪器平台.在仪器面板中设置小波消噪的相关参数.将参数通过引擎调用技术传递给Mat—
lab小渡工具箱,并完成信号小波消噪处理.最后,将处理结果回传给cVI进行显示.
2.2在Matlab环境下编译小波分析函数
首先,使用函数wnoiset获取噪声方差,然后使用函数wbmpen获取小波消噪阈值.最后,使用函数
wdencmp实现信号消噪.关键程序代码如下:
[c,1]一wavedec(nx,3t’db67);%用小波函数’db6’对nx信号进行3层分解
si窖ma—wnoiset(c,l,1);蹦估计尺度l的噪声
标准
excel标准偏差excel标准偏差函数exl标准差函数国标检验抽样标准表免费下载红头文件格式标准下载
偏差
alpha=2;
thr置wbmpen(c,1,sigma,alpha);%获取消噪过程中的阈值
ke。papp:l●
万方数据
万方数据