Vc 下如何利用Matlab工具箱进行数字信号处理 .docVIP

Vc 下如何利用Matlab工具箱进行数字信号处理 .doc

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
Vc 下如何利用Matlab工具箱进行数字信号处理 摘要:本文详述了在Vc环环境下如何利用Matlabb工具箱进行数字信号处理,,全文以Matlab工具箱箱中功率谱密度分析函数为例例,介绍了通过Matlabb自带的引擎、Matlabb自身的编译器以及利用MaathTools公司的Maatcom进行对工具箱函数数的调用。关键词:Matllab M-文件 引擎 编编译器 Matcom Vcc Matlab的信号号处理工具箱是信号算法文件件的集合,它处理的基本对象象是信号与系统,信号处理工工具箱位于目录、Toolbbox\Signal下,利利用工具箱中的文件可以实现现信号的变换、滤波、谱估计计、滤波器设计等。在其它的的环境如Vc下如果能调用MMatlab工具箱中的文件件,会大大地加快一些算法的的实现,同时其可靠性也很高高。 Matlab引擎擎 Matlab引擎采用客客户和服务器计算方式,在运运用中,Vc的C语言或C 语言的程序作为前端客户户机,它向Matlab引擎擎传递命令和数据信息,并从从Matlab引擎接收数据据信息,它提供了下列几个函函数: engOpen, engGetArray,, engPutArrayy, engEvaStriing, engOutpputBuffer ,enngClose与客户机进行行交互。 Vcc下建一个基于对话框的应用用程序,在对话框中设置一个个Button控件OnMaatlabEngine.,,在对话框 .cpp文件中中加入”” 和“” 头文件件,下面给出部分程序清单。。 Void CtestmmatlabDlg::OnnMatlabEnginee(){ Engine **ep; mxArray** T=NULL,*ressult=NULL,*mFFs=NULL,*mnffft= NULL; douuble datax[10024]; char buuffer[1024]; for(int j=0;;j{ double saamt=(double)((/1024); dattax[j]=sin(***samt* *); } double *pPxx,,*pFxx; if(!((ep=engOpen(““ \0”))){//打开开Matlab引擎,建立与与本地Matlab的连接 fprintf(stdeerr,”\n Can’tt start MATLAAB engine\n”)); exit(-1); } double Fss[1]={1024};///因为Matlab所有参参与运算的参数都是矩阵的形形式,因而下列几行将参数转转变 double nffft[1]={1024};;//成Matlab可接受受的矩阵形式。 T=mxCCreateDoubleMMatrix(1,10244,mxREAL); mnnfft=mxCreateeDoubleMatrixx(1,1,mxREAL)); mFs=mxCreaateDoubleMatrrix(1,1,mxREAAL); mxSetNamme(T,”T”); mxxSetName(mnffft,”mnfft”); mxSetName(mFss,”mFs”); memmcpy((char*)mmxGetPr(T),(cchar*)datax, 1024*sizeof((double)); meemcpy((char*))mxGetPr(mnffft),(char*)nffft, sizeof(ddouble)); memmcpy((char*)mmxGetPr(mFs),,(char*)Fs,1**sizeof(doublle)); engPutAArray(ep,T); //将转化的参数放入引擎擎中,此时可在Matlabb command窗口下查查看此参数 engPutAArray(ep,mnffft); engPutAArray(ep,mFs)); engEvalStrring(ep,”[pxxx,fo]=psd(T,mmnfft,mFs);”)); //利用引擎执行工具具箱中文件 engOutpputBuffer(ep,,buffer,512);; //如只想看显示图形,,可将返回参数去掉,psdd无返回参数缺省情况下会自自动画图形 result==engGetArray((ep,”pxx”);///取出引擎中的数据放在所指指的区域中供后续处理 pPPxx=mxGetPr(rresult); ressult=engGetArrray(ep,”fo”)); pFxx=mxGettPr(result); engEvalStrinng(ep,”plot(ffo,10*log10(ppxx));”);//利用用

文档评论(0)

supaweiji + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档