Matlab使用EMD
先产生了一个正弦信号便于分解,显示其波形和频谱图便于对照。
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相关推荐
- hilbert谱 matlab,MATLAB实现EMD分解及希尔伯特谱分析
MATLAB实现EMD分解及希尔伯特谱分析 希尔伯特-黄变换 传统的傅里叶变化只能得到信号在采样周期内的全局频率信息,处理频率随时间变化的非平稳信号具有很大的局限性,希尔伯特-黄变换(Hilbert- ...
- java emd,MATLAB实现EMD分解及希尔伯特谱分析
MATLAB实现EMD分解及希尔伯特谱分析 希尔伯特-黄变换 传统的傅里叶变化只能得到信号在采样周期内的全局频率信息,处理频率随时间变化的非平稳信号具有很大的局限性,希尔伯特-黄变换(Hilbert- ...
- MATLAB实现EMD分解及希尔伯特谱分析
MATLAB实现EMD分解及希尔伯特谱分析 希尔伯特-黄变换 传统的傅里叶变化只能得到信号在采样周期内的全局频率信息,处理频率随时间变化的非平稳信号具有很大的局限性,希尔伯特-黄变换(Hilbert- ...
- Matlab中EMD工具箱的下载安装和使用
Matlab中EMD工具箱的下载安装和使用 Matlab中EMD工具箱的下载安装和使用 电脑环境 下载指南 安装步骤 使用示例 Matlab中EMD工具箱的下载安装和使用 电脑环境 笔者的电脑环境为( ...
- matlab中emd函数,EMD算法的matlab程序介绍解析
<EMD算法的matlab程序介绍解析>由会员分享,可在线阅读,更多相关<EMD算法的matlab程序介绍解析(6页珍藏版)>请在人人文库网上搜索. 1.此版本为 ALAN 版 ...
- MATLAB hilbert谱 纵坐标由归一化频率改为正常频率的方法
调用disp_hhs函数绘制hht谱时,这样调用: disp_hhs(E,tt1/fs,[],fs);即把时间除以采样频率,这样时间轴就是真实时间. 把disp_hhs函数里的这一行代码 : imag ...
- 【Python】这篇文章能让你明白经验模态分解(EMD)——EMD在python中的实现方法
暂时打断一下滤波专题,插播一条EMD在python中实现方法的文章. 本篇是Mr.看海:这篇文章能让你明白经验模态分解(EMD)--EMD在MATLAB中的实现方法的姊妹篇,也就是要在python中实 ...
- matlab 提取最小值,MATLAB中取最小值的代码
matlab 最小二乘法 平面拟合的代码 p=[xyones(length(x),1)]\z这样得到的就是平面z=p(1)*x+p(2)*y+p(3)祝你学习快乐!再问:xyz轴中如何显示所拟合的平面 ...
- Matlab emd工具箱、时频分析工具箱下载以及安装方法
Matlab工具箱通用安装方法 ####更新于2017年1.10### 从写完这篇文章到现在,访问量很大,影响也就比较大.虽然自己的工作已经与这方面没有多大的关系了,但本想为读者负责的态度,今天更新这 ...
- matlab怎么求imf图,MATLAB中提取EMD分解后的每个IMF图像,并导出每个IMF数据
题目: MATLAB中提取EMD分解后的每个IMF图像,并导出每个IMF数据 EMD分解程序我就不给了,网上都是一样的. 例: M = length(imf); N = length(x); c = ...
最新文章
- 0-1背包动态规划c语言,动态规划解决0-1背包问题程序看不懂,请大家看看帮忙解决下...
- 元神一直显示连接服务器失败,原神连接服务器失败是什么情况-提示连接服务器失败处理办法-去秀手游网...
- 在eclipse中安装properties插件PropertiesEditor及设置(附图),ASCII码转换成中文
- Linux性能优化全景指南
- PHP在线二维码生成源码
- 华为云GuassDB(for Redis)发布全新版本推出:Lua脚本和SSL连接加密
- R语言使用merge函数合并数据,如何保持原始数据顺序
- 【深度学习】使用预训练模型
- python中in,not in,比较运算符,格式化输出,编码
- J1939 入门教程
- 存储容量(空间)换算公式
- 【运筹学】线性规划数学模型 ( 求解基矩阵示例 | 矩阵的可逆性 | 线性规划表示为 基矩阵 基向量 非基矩阵 非基向量 形式 )
- Attributes as Operators
- 广义瑞利商_LDA里的瑞利商和广义瑞利商
- Virtual Machine Monitors——VMM总结
- python hook pc微信_一起来用python玩一波微信呀 | 防撤回, 好友分析, 聊天机器人~...
- python将横转为竖_如何将视频从横屏转为竖屏?
- ArcGIS Pro数据加载学习总结
- canvas动态风车
- 如何回答三次握手问题