A. matlab装上EMD工具箱后怎么调用emd函数啊
下载的工具箱中的emd.m文件里的注释有详细的用法介绍。
工具箱的安装
运行install_emd.m文件可以实现此工具箱的安装,uninstall_emd.m实现卸载。
安装中的问题
但是安装的时候,如果使用的是VS的编译器(mbuild –setup、mex –setup设置),会报找不到complex.h的问题(用Linux下的Matlab不会出错),从而使cemdc2_fix.c等文件编译失败,这几个文件是为了快速实现计算EMD而用c编写的,所以即使编译失败,也不影响直接使用emd.m实现EMD功能。如果想编译成功,可如下修改:(摘自http://www.chinavib.com/thread-79866-1-1.html)
G. Rilling 07年3月份的程序,运行作者的install_emd.m,出现找不到complex.h的问题,以下是个人的理解和解决过程:(个人的运行环境为matlab6.5)
complex.h的问题
产生原因:采用matlab的C编译函数mex时,定义了C99_OK的宏(EMDS/make_emdc.m (28行)),利用的是ANSI C99标准如果个人的电脑中没有相关的支持,就会出现这个问题。
解决方法:EMDS/make_emdc.m中第28行中mex(’-DC99_OK‘,args(:))语句中的 '-DC99_OK' 即可。
注意:
改完之后,运行install_emd,会出现M_PI没有定义的问题,缺少了常数PI的宏定义,导致一些.c文件编译失败。
产生原因:去掉C99_OK之后,程序中使用的是作者提供的 emd_complex.h和emd_complex.c两个文件来支持复数运算,这两个文件中,并没有定义M_PI这个宏。
解决方法:M_PI这个宏,只在两个文件中(clocal_mean.c和clocal_mean2.c)使用,个人的解决方法是,在相应的头文件(clocal_mean.h和clocal_mean2.h)中加入M_PI的宏定义即可。
在两个.h文件中分别加入一下语句:
#define CLOCAL_MEAN_H
#ifndef M_PI
#define M_PI 3.1415926
#endif
安装完成后,编译输出的.dll文件会出现,重复后缀名的问题,及 xxx.dll 变成了 xxx.dll.dll自己去掉多余的.dll即可
最后,关于版本问题:作者推荐使用7.1+版本,但只是针对个别的函数有影响,主要是作者提供的例子程序,无法在matlab6.5环境中运行,算法的主要功能函数并不受影响。
B. 如何 在matlab中添加EMD工具箱
你在晚上找emd.m文件,然后添加到matlab的toolbox文件夹下就行
C. 我想要一个matlab的emd工具箱和emd.m的文件,[email protected],谢谢您了
1、首先下载抄emd工具箱,50楼网址里面可以下。下载后解压放在matlab的work工作路径下package_emd文件夹。
2、打开matlab,选择File- Set Path- Add with Subfolders-你刚才下载的工具箱(package_emd)点进去- Save- Close。
3、此时选择work下package_emd文件夹作为工作路径,即是D:\matlabR2006b\work\package_emd。
4、在Command Window里面输入mex -setup回车,问是否选择已有的编译器你选y回车,再问选择哪个编译器,你可以选择C++的那个选择相应的编号(如 2)回车,然后让你核对是否选择对了编译器等等,你输入y回车。。。就安装成功了了
D. 为什么我把EMD工具箱放在MATLAB\TOOLBOX\下,并且也设置了路径,但是在start---toolbox中却找不到呢,本人刚
你在命令床后输入“help
emd”就知道这个工具箱是否添加进来了,没有的话就是路径设置不成功,可能是没有保存
E. EMD HHT变换 在MATLAB中怎么弄啊
EMD-HHT变换的经典文献
以下为一般性带附件资料发贴选项:
【资料成文时间】:1998
【语言】:英语
【页数】:96
【何人(公司)所著】:E. Huang , Zheng Shen , Steven R. Long ,Proc. R. Soc. Lond. A (1998) 454, 903
【文件格式】:PDF
【文件原名】:The empirical mode decomposition and the Hilbert spectrum for nonlinear and
non-stationary time series analysis
你静心读完这篇文章一定有很大启发.
MATLAB应该足够了,我这么认为.
程序要自己写的,下的基本不合乎你的要求
F. 我在MATLAB中新添加的一个EMD工具箱,怎么界面上找不到 不知道怎么运行
不知道你添加成功没有,在File-set path中加
如果成功的话,点matlab左下角的Start,Toolboxes里面就有你加入的工具箱了
G. 在MATLAB中怎样运行新添加的工具箱
如果添加成功在Start-toolboxes中找
PS:不会者学一点也不幼稚,比起那些连问什么都不知道的人强百倍了,呵呵,祝你学的愉快:)
H. 信号通过EMD后产生IMF,求不同阶IMF的瞬时频率并输出图像
这个分解是基于希尔伯特-黄变换和希尔伯特变换而来,通过黄变换滤除信号里局域的直流成分,短时内是纯交流成分。而之所以不直接使用希尔伯特变换后利用复信号的d(phi)/dt=w (phi是角度)的方式来求信号的瞬时频率,是因为信号可能存在非频率波动的成分,也就是说可能信号的波动是因幅值引起,这样求得的频率可能是负值,而希尔伯特变换的信号频率不存在负的,所以才需要以上的黄变换这个分解imf的过程。但这个分解精度纯粹因信号本身而异,存在一定的风险。不过据我认为,信号在离散的情况下,黄变换并不是必须的,只需要在希尔伯特变换之前加一些简单处理即可,这种方式得到的瞬时频率与用了imf后得到的再matlab下得到的图像基本一样。楼主可自己编写程序,这个程序包不是必须
I. matlab emd工具箱使用
其实用起来也很简单的,举个例子:
clearall;
clf;
t=0:0.1:4*pi;
%构造一个信号
x=10.*sin(t)+5.*cos(2.*t);
%加点内噪容声
noise=normrnd(0,1,1,length(x));
y=x+noise;
%emd分解
imf=emd(x);
[mn]=size(imf);
emd_visu(x,t,imf);
J. matlab有emd函数吗
没有的,但是可以用matlab的时频工具箱,工具箱下载地址:http://tftb.nongnu.org/
matlab的工具箱的安装步骤:
1.解压专下载的文件包,属将tft/mfile复制到matlab的toolbox文件夹下
2.建立搜索路径,matlab->file->Set Path->Add Folder
->选择mfile文件夹复制到matlab的toolbox的路径->save->close
3.测试是否建立搜索路径成功,在matlab命令窗口打入:which fmsin
返回的结果是你放mfile的正确路径说明建立搜索路径成功,就完成了安装工具包的工作。
此时EMD的准备工作就完了。