西西软件园多重安全检测下载网站、值得信赖的软件下载站!
西西首页 常用软件 软件下载 安卓软件 游戏下载 安卓游戏 MAC应用 驱动下载 安卓电视
系统工具网络工具媒体工具图形图像聊天工具应用软件编程开发手机软件安卓应用电脑安全字体素材

Matlab-EMD工具箱

官方版
  • Matlab-EMD工具箱官方版
  • 软件大小:100KB
  • 更新时间:2015-05-14 11:09
  • 软件语言:英文
  • 软件厂商:
  • 软件类别:国产软件 / 免费软件 / 编程辅助
  • 软件等级:4级
  • 应用平台:WinAll, WinXP
  • 官方网站:http://www.cr173.com
好评:50%
坏评:50%

装机必备软件

软件介绍

EMD工具箱,在MATLAB中实现EMD的各种功能所必须的工具箱。

工具箱的安装

运行install_emd.m文件可以实现此工具箱的安装,uninstall_emd.m实现卸载。

1、首先下载emd工具箱,50楼网址里面可以下。下载后解压放在matlab的work工作路径下package_emd文件夹。

2、打开matlab,选择File- Set Path- Add with Subfolders-你刚才下载的工具箱(package_emd)点进去- Save- Close。

3、此时选择work下package_emd文件夹作为工作路径,即是C:\Program Files\MATLAB\R2010a\toolbox\package_emd。

4、在Command Window里面输入mex -setup回车,问是否选择已有的编译器你选y回车,再问选择哪个编译器,你可以选择C++的那个选择相应的编号(如 2)回车,然后让你核对是否选择对了编译器等等,你输入y回车。就安装成功了

>> mex -setup

Please choose your compiler for building external interface (MEX) files: 

Would you like mex to locate installed compilers [y]/n? y

Select a compiler: 

[1] Lcc-win32 C 2.4.1 in C:\PROGRA~1\MATLAB\R2010a\sys\lcc 

[2] Microsoft Visual C++ 6.0 in C:\Program Files\Microsoft Visual Studio 

[0] None 

Compiler: 2

Please verify your choices: 

Compiler: Microsoft Visual C++ 6.0 

Location: C:\Program Files\Microsoft Visual Studio 

Are these correct [y]/n? y

Trying to update options file: C:\Users\Administrator\AppData\Roaming\MathWorks\MATLAB\R2010a\mexopts.bat 

From template: C:\PROGRA~1\MATLAB\R2010a\bin\win32\mexopts\msvc60opts.bat 

Done . . . 

************************************************************************** 

  Warning: The MATLAB C and Fortran API has changed to support MATLAB 

           variables with more than 2^32-1 elements. In the near future 

           you will be required to update your code to utilize the new 

           API. You can find more information about this at: 

           http://www.mathworks.com/support/solutions/en/data/1-5C27B9/?solution=1-5C27B9 

           Building with the -largeArrayDims option enables the new API. 

************************************************************************** 

MATLAB的emd的工具箱  可是不知道怎么用  也不知道怎么用它来处理txt中的数据

安装中的问题

    但是安装的时候,如果使用的是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环境中运行,算法的主要功能函数并不受影响。

工具箱的使用

工具箱函数

   运行help index_emd可以查看工具箱提供的函数,如下

index_emd.M list of functions in the EMD package
 
 type help function_name for more information on a specific function
 
 Empirical Mode Decomposition
 
   emd         - computes EMD and bivariate/complex EMD with various options
   emd_local   - computes local EMD variation
   emd_online  - computes on-line EMD variation. Note that it does not truly
                  apply on-line: the function is only a demonstration.
   emdc        - fast implementation for EMD with Cauchy-like stopping criterion
                  (requires compilation, see make_emdc function)
   emdc_fix    - fast implementation for EMD with predefined number of iterations
                  (requires compilation, see make_emdc function)
   cemdc       - fast implementation for bivariate/complex EMD (first algorithm)
                  with Cauchy-like stopping criterion (requires compilation,
                  see make_emdc function)
   cemdc_fix   - fast implementation for bivariate/complex EMD (first algorithm)
                  with predefined number of iterations (requires compilation,
                  see make_emdc function)
   cemdc2      - fast implementation for bivariate/complex EMD (second algorithm)
                  with Cauchy-like stopping criterion (requires compilation,
                  see make_emdc function)
   cemdc2_fix  - fast implementation for bivariate/complex EMD (second algorithm)
                  with predefined number of iterations (requires compilation,
                  see make_emdc function)
 
 Utilities
 
   install_emd  - setup Matlab's path and compile the C codes.
   uninstall_emd - revert the modifications made by install_emd and remove the
                   files (optional).
   make_emdc    - compile all C codes
   emd_visu     - visualization of EMD
   cemd_visu    - visualization of bivariate/complex EMD (automatically called
                   by emd_visu when the input is complex)
   cenvelope    - compute envelope curves for bivariate/complex EMD
   cemd_disp    - visualization of envelope curves and tube envelope
   plot3c       - plot a complex vector in 3 dimensions
   plotc        - plot the projection of a complex vector on a variable direction
   dirstretch   - directional stretching of a complex vector
   hhspectrum   - compute Hilbert-Huang spectrum (need the Time-Frequency Toolbox
                   http://tftb.nongnu.org)
   toimage      - transform a spectrum made of 1D functions (e.g., output of
                   "hhspectrum") in an 2D image
   disp_hhs     - display the image output of "toimage" as a Hilbert-Huang spectrum
   addtag       - add a tag to a graphic object (uses the Tag property as a list
                   of keywords or "tags")
   rmtag        - remove a tag from a graphic object (uses the Tag property as
                   a list of keywords or "tags")
   hastag       - test whether a graphic object has a specific tag (uses the Tag
                   property as a list of keywords or "tags")
   findtag      - find objects having a specific tag (uses the Tag property as
                   a list of keywords or "tags")
   
 Examples from G. Rilling, P. Flandrin and P. Gon鏰lves,
   "On Empirical Mode Decomposition and its algorithms"
   IEEE-EURASIP Workshop on Nonlinear Signal and Image Processing
   NSIP-03, Grado (I), June 2003
   
   emd_fmsin        - Fig. 1: a 3-component example (need the Time-Frequency
                       Toolbox http://tftb.nongnu.org)
   emd_triang       - Fig. 2: another 3-component example
   emd_sampling     - Fig. 3: effect of sampling on 1 tone
   emd_separation   - Fig. 4: separation of 2 tones
   ex_online        - Sect 3.4: the way emd_online.m works
   triangular_signal - subroutine called by emd_triang (formerly triang.m)
   
 Examples from G. Rilling, P. Flandrin, P. Gon鏰lves and J. M. Lilly,
   "Bivariate Empirical Mode Decomposition",
   Signal Processing Letters (submitted)
 
   bivariate_EMD_principle       - Fig. 1: principle of the bivariate/complex EMD
   bivariate_EMD_mean_definitions - Fig. 2: definition of the mean for each algorithm.
                                    Also allows to test other signals and parameter sets.
   bivariate_EMD_illustration    - Fig. 3: illustration of the bivariate EMD
                                    on an oceanographic float position record

   稍做整理如下:

EMD分解函数

函数功能
emd计算EMD、双变量/复数EMD
emd_local计算local EMD
emd_online计算在线EMD(不是真正在线应用,此函数只是一个示范)
emdc使用Cauchy-like停止准则的快速EMD实现,需编译
emdc_fix使用预定义迭代次数的快速EMD实现,需编译
cemdc使用Cauchy-like停止准则的快速双变量/复数EMD实现(方法1),需编译
cemdc_fix使用预定义迭代次数的快速双变量/复数EMD实现(方法1),需编译
cemdc2使用Cauchy-like停止准则的快速双变量/复数EMD实现(方法2),需编译
cemdc2_fix使用预定义迭代次数的快速双变量/复数EMD实现(方法2),需编译

工具函数

函数功能
install_emd设置Matlab路径,编译c代码
uninstall_emd回复install_emd做的修改,移除文件
make_emdc编译c代码
emd_visuEMD可视化
cemd_visu双变量/复数EMD可视化(emd_visu的输入是双变量或复数时自动改为调用cemd_visu)
cenvelope计算双变量EMD的包络曲线
cemd_disp显示复数包络曲线
plot3c三维中绘制复数向量
plotc绘制复数向量在一个可变方向上的投影
dirstretch复数向量的方向拉伸
hhspectrum计算Hilbert-Huang谱(需要时频工具箱http://tftb.nongnu.org)
toimage将一个一维函数谱转化为图像
disp_hhs以Hilbert-Huang谱的形式显示toimage函数的输出
addtag添加标签到一个图形对象
rmtag移除标签从一个图形对象
hastag测试一个图形对象是否有指定的标签
findtag找有指定标签的图形对象

来自《On Empirical Mode Decomposition and its algorithms》的Examples

函数功能
emd_fmsin一个包含3组分的例子(需要时频工具箱)
emd_triang另一个包含3组分的例子
emd_samplingeffect of sampling on 1 tone
emd_separationseparation of 2 tones
ex_onlinethe way emd_online.m works
triangular_signalemd_triang文件调用的子程序

来自《Bivariate Empirical Mode Decomposition》的Examples

函数功能
bivariate_EMD_principle双变量/复数EMD原则
bivariate_EMD_mean_definitions各种方法的平均值的定义
bivariate_EMD_illustration双变量EMD在海洋漂流位置的应用图解

工具箱使用示例

EMD

clc

clear all

close all

% 原始数据

fs = 1000;

ts = 1/fs;

t=0:ts:0.3;

z=2*sin(2*pi*10*t) + 5.*sin(2*pi*100*t);

figure

plot(t, z)

title('原始信号')

% EMD

imf=emd(z);

emd_visu(z,t,imf)

[A,f,tt]=hhspectrum(imf);

[im,tt]=toimage(A,f);

disp_hhs(im);

边际谱

clc

clear all

close all

% 原始数据

fs = 1000;

ts = 1/fs;

t=0:ts:0.3;

y=2*sin(2*pi*10*t);% + 5.*sin(2*pi*100*t);

figure

plot(t, y)

title('原始信号')

% 求Hilbert-Huang谱

[A,fh,th] = hhspectrum(y);

figure

subplot(211)

plot(th*ts, A)

title('瞬时幅值') % 就是包络

subplot(212)

plot(th*ts, fh*fs)

title('瞬时频率')

% 显示结果

[im,tt,ff] = toimage(A,fh,th);

disp_hhs(im,tt)

colormap(flipud(gray))

% 编程实现显示

figure

imagesc(tt*ts,[0,0.5*fs],im);

ylabel('frequency/Hz')

set(gca,'YDir','normal')

xlabel('time/s')

title('Hilbert-Huang spectrum')

例子程序

更详细的使用说明可以参见例子程序,如emd_fmsin.m程序,运行结果如下

EMD分解如下

可以看到,EMD实现的3个组分的分离(即分别分解到了IMF1~3中),可见EMD的强大功能。

软件标签: EMD工具箱 Matlab

软件截图

    其他版本下载

    热门评论

    最新评论

    第 1 楼 重庆电信 网友 客人 发表于: 2017/5/27 11:51:24
    我安装之后一直出现这个问题

    支持( 0 ) 盖楼(回复)

    发表评论 查看所有评论(1)

    昵称:
    表情: 高兴 可 汗 我不要 害羞 好 下下下 送花 屎 亲亲
    字数: 0/500 (您的评论需要经过审核才能显示)

    下载帮助下载帮助西西破解版软件均来自互联网, 如有侵犯您的版权, 请与我们联系。

    TOP
    软件下载