先产生了一个正弦信号便于分解,显示其波形和频谱图便于对照。

clear;clc;
%% 产生原始信号
f1=5;                             % 信号1的频率
f2=2;                              % 信号2的频率
f3=10;                            % 信号3的频率
fs=30;                             % 采样率
N=fs*60;
t = 0 : 1/fs : (N-1)/fs;
y1=5*sin(2*pi*f1*t)+10*sin(2*pi*f2*t)+8*sin(2*pi*f3*t);
figure(1);subplot(2,1,1);plot(y1,'r');
%% 画出原信号的频率谱
n=0:N-1;
f=n*fs/N;
y=fft(y1,N);
mag=abs(y)*2/N;
subplot(2,1,2);
plot(f(1:N/2),mag(1:N/2));
%% 画出EMD分解的IMF值的图像
% [imf,residual,info] = emd(y1,'Interpolation','pchip');
emd(y1,'Interpolation','pchip');

原始信号的波形及频谱图如图所示:

EMD函数画出的图像如图所示:(只自动显示了3个IMF图像)


在空白位置单击右键可以选择显示剩下的IMF值。


按OK后即可同时显示所有IMF的图像。

同时显示波形和频谱图
对上面的代码需要简单的修改,该方法需要知道每个IMF分解出的值,并通过FFT变换为频域中画图。

[imf,residual,info] = emd(y1,'Interpolation','pchip');
for i= 1:size(imf,2)subplot(size(imf,2),2,2*i-1);plot(imf(:,i));subplot(size(imf,2),2,2*i);y1=fft(imf(:,i),N);  mag=abs(y1)*2/N;    f=n*fs/N;    plot(f(1:N/2),mag(1:N/2));
end

运行结果如下图所示:

[imf,residual,info] =emd(y1,‘Interpolation’,‘pchip’);该式子可获取到EMD分解的结果,即IMF值及残差值等参数,在后续可以通过for循环画出对应的波形和频谱图。

可以通过matlab右侧的变量区看分解出来的IMF是横着的还是竖着的格式。

在EMD函数中可以通过添加参数来增多分解的IMF值,在matlab的输入参数部分可以找到详细介绍,同时也推荐一位up主的学习视频。

可以通过[imf,residual,info] = emd(y1,‘Interpolation’,‘pchip’,“SiftRelativeTolerance”,0.02);个人理解的是修改后面的参数值会分解得更细致,本来默认的0.2可能会使幅度相近的两个信号在一个IMF中,改小可以识别到这样的情况会减小混叠情况。

推荐学习视频https://www.bilibili.com/video/BV1Tk4y1r7h1

Matlab使用EMD相关推荐

  1. hilbert谱 matlab,MATLAB实现EMD分解及希尔伯特谱分析

    MATLAB实现EMD分解及希尔伯特谱分析 希尔伯特-黄变换 传统的傅里叶变化只能得到信号在采样周期内的全局频率信息,处理频率随时间变化的非平稳信号具有很大的局限性,希尔伯特-黄变换(Hilbert- ...

  2. java emd,MATLAB实现EMD分解及希尔伯特谱分析

    MATLAB实现EMD分解及希尔伯特谱分析 希尔伯特-黄变换 传统的傅里叶变化只能得到信号在采样周期内的全局频率信息,处理频率随时间变化的非平稳信号具有很大的局限性,希尔伯特-黄变换(Hilbert- ...

  3. MATLAB实现EMD分解及希尔伯特谱分析

    MATLAB实现EMD分解及希尔伯特谱分析 希尔伯特-黄变换 传统的傅里叶变化只能得到信号在采样周期内的全局频率信息,处理频率随时间变化的非平稳信号具有很大的局限性,希尔伯特-黄变换(Hilbert- ...

  4. Matlab中EMD工具箱的下载安装和使用

    Matlab中EMD工具箱的下载安装和使用 Matlab中EMD工具箱的下载安装和使用 电脑环境 下载指南 安装步骤 使用示例 Matlab中EMD工具箱的下载安装和使用 电脑环境 笔者的电脑环境为( ...

  5. matlab中emd函数,EMD算法的matlab程序介绍解析

    <EMD算法的matlab程序介绍解析>由会员分享,可在线阅读,更多相关<EMD算法的matlab程序介绍解析(6页珍藏版)>请在人人文库网上搜索. 1.此版本为 ALAN 版 ...

  6. MATLAB hilbert谱 纵坐标由归一化频率改为正常频率的方法

    调用disp_hhs函数绘制hht谱时,这样调用: disp_hhs(E,tt1/fs,[],fs);即把时间除以采样频率,这样时间轴就是真实时间. 把disp_hhs函数里的这一行代码 : imag ...

  7. 【Python】这篇文章能让你明白经验模态分解(EMD)——EMD在python中的实现方法

    暂时打断一下滤波专题,插播一条EMD在python中实现方法的文章. 本篇是Mr.看海:这篇文章能让你明白经验模态分解(EMD)--EMD在MATLAB中的实现方法的姊妹篇,也就是要在python中实 ...

  8. matlab 提取最小值,MATLAB中取最小值的代码

    matlab 最小二乘法 平面拟合的代码 p=[xyones(length(x),1)]\z这样得到的就是平面z=p(1)*x+p(2)*y+p(3)祝你学习快乐!再问:xyz轴中如何显示所拟合的平面 ...

  9. Matlab emd工具箱、时频分析工具箱下载以及安装方法

    Matlab工具箱通用安装方法 ####更新于2017年1.10### 从写完这篇文章到现在,访问量很大,影响也就比较大.虽然自己的工作已经与这方面没有多大的关系了,但本想为读者负责的态度,今天更新这 ...

  10. matlab怎么求imf图,MATLAB中提取EMD分解后的每个IMF图像,并导出每个IMF数据

    题目: MATLAB中提取EMD分解后的每个IMF图像,并导出每个IMF数据 EMD分解程序我就不给了,网上都是一样的. 例: M = length(imf); N = length(x); c = ...

最新文章

  1. 0-1背包动态规划c语言,动态规划解决0-1背包问题程序看不懂,请大家看看帮忙解决下...
  2. 元神一直显示连接服务器失败,原神连接服务器失败是什么情况-提示连接服务器失败处理办法-去秀手游网...
  3. 在eclipse中安装properties插件PropertiesEditor及设置(附图),ASCII码转换成中文
  4. Linux性能优化全景指南
  5. PHP在线二维码生成源码
  6. 华为云GuassDB(for Redis)发布全新版本推出:Lua脚本和SSL连接加密
  7. R语言使用merge函数合并数据,如何保持原始数据顺序
  8. 【深度学习】使用预训练模型
  9. python中in,not in,比较运算符,格式化输出,编码
  10. J1939 入门教程
  11. 存储容量(空间)换算公式
  12. 【运筹学】线性规划数学模型 ( 求解基矩阵示例 | 矩阵的可逆性 | 线性规划表示为 基矩阵 基向量 非基矩阵 非基向量 形式 )
  13. Attributes as Operators
  14. 广义瑞利商_LDA里的瑞利商和广义瑞利商
  15. Virtual Machine Monitors——VMM总结
  16. python hook pc微信_一起来用python玩一波微信呀 | 防撤回, 好友分析, 聊天机器人~...
  17. python将横转为竖_如何将视频从横屏转为竖屏?
  18. ArcGIS Pro数据加载学习总结
  19. canvas动态风车
  20. 如何回答三次握手问题

热门文章

  1. 常见的Markdownpad2运行破解以及This view has crashed!报错和Awesomium1.6.6SDK安装使用
  2. 学习微积分60年有感(III)
  3. MMKV_高性能MMKV数据交互分析-MMKV初始化
  4. 软件测试周刊(第68期):解决棘手问题的最上乘方法是:静观其变,顺水推舟。
  5. 如何免费下载付费音乐
  6. iOS 常见的六种 手势
  7. svn如何退回软件版本_SVN版本控制工具的使用
  8. CANoe——CAPL
  9. 开发人员必学!java工程师个人简历模板下载
  10. 人工智能 一种现代方法 第3章 用搜索树对问题求解