matlab使用经验模式分解emd 对信号进行去噪

简介: matlab使用经验模式分解emd 对信号进行去噪

 

对于这个例子,考虑由具有明显频率变化的正弦波组成的非平稳连续信号。手提钻的振动或烟花声是非平稳连续信号的例子。

以采样频率加载非平稳信号数据fs,并可视化混合正弦信号。

load('sinusoidalSignalExampleData.mat','X','fs');


xlabel('Time(s)');

观察到混合信号包含具有不同幅度和频率值的正弦波。

为了创建希尔伯特谱图,您需要信号的IMF。执行经验模式分解以计算信号的固有模式函数和残差。由于信号不平滑,请指定' pchip'作为Interpolation方法。


[imf,residual,info] = emd(X,'Interpolation','pchip');
目前的IMF | #Sift Iter | 相对Tol | 停止标准命中
1 | 2 | 0.026352 | SiftMaxRelativeTolerance
2 | 2 | 0.0039573 | SiftMaxRelativeTolerance
3 | 1 | 0.024838 | SiftMaxRelativeTolerance
4 | 2 | 0.05929 | SiftMaxRelativeTolerance
5 | 2 | 0.11317 | SiftMaxRelativeTolerance
6 | 2 | 0.12599 | SiftMaxRelativeTolerance
7 | 2 | 0.13802 | SiftMaxRelativeTolerance
8 | 3 | 0.15937 | SiftMaxRelativeTolerance
9 | 2 | 0.15923 | SiftMaxRelativeTolerance
分解停止是因为残留信号的极值数小于'MaxNumExtrema'。

在命令窗口中生成的表指示每个生成的IMF的筛选迭代次数,相对容差和筛选停止标准。此信息也包含在info。您可以通过指定Display为隐藏表0

HHT(IMF,FS);

频率对时间图是一个稀疏图,其中垂直颜色条表示IMF中每个点的瞬时能量。该图表示从原始混合信号分解的每个分量的瞬时频谱。从该图中可以观察到三个IMF,其频率在1s处有明显变化。

可视化信号的残余和内在模式功能

 

对于这个例子,考虑由具有明显频率变化的正弦波组成的非平稳连续信号。手提钻的振动或烟花声是非平稳连续信号的例子。

加载非平稳信号数据,并可视化混合正弦信号。


load('sinusoidalSignalExampleData.mat','X','fs'); 

观察到混合信号包含具有不同幅度和频率值的正弦波。

执行经验模式分解以绘制固有模式函数和信号残差。由于信号不平滑,请指定' pchip'作为Interpolation方法。


emd(X,'Interpolation','pchip');
目前的IMF | #Sift Iter | 相对Tol | 停止标准命中
1 | 2 | 0.026352 | SiftMaxRelativeTolerance
2 | 2 | 0.0039573 | SiftMaxRelativeTolerance
3 | 1 | 0.024838 | SiftMaxRelativeTolerance
4 | 2 | 0.05929 | SiftMaxRelativeTolerance
5 | 2 | 0.11317 | SiftMaxRelativeTolerance
6 | 2 | 0.12599 | SiftMaxRelativeTolerance
7 | 2 | 0.13802 | SiftMaxRelativeTolerance
8 | 3 | 0.15937 | SiftMaxRelativeTolerance
9 | 2 | 0.15923 | SiftMaxRelativeTolerance
分解停止是因为残留信号的极值数小于'MaxNumExtrema'。

生成具有原始信号,前3个IMF和残差的交互式图。在命令窗口中生成的表指示每个生成的IMF的筛选迭代次数,相对容差和筛选停止标准。您可以通过指定Display为隐藏表0

右键单击图中的空白区域以打开IMF选择器窗口。使用IMF选择器选择地查看生成的IMF,原始信号和残差。

 

 

从列表中选择要显示的IMF。选择是否在图上显示原始信号和残差。

 

 

选定的IMF现在显示在图上。

 

 

使用该图可视化从原始信号中分解的各个组件以及残差。请注意,残差是根据IMF总数计算的,并且不会根据IMF选择窗口中选择的IMF进行更改。

非常感谢您阅读本文,有任何问题请在下方留言!

 


相关文章
|
11天前
|
运维 算法
基于Lipschitz李式指数的随机信号特征识别和故障检测matlab仿真
本程序基于Lipschitz李式指数进行随机信号特征识别和故障检测。使用MATLAB2013B版本运行,核心功能包括计算Lipschitz指数、绘制指数曲线、检测故障信号并标记异常区域。Lipschitz指数能够反映信号的局部动态行为,适用于机械振动分析等领域的故障诊断。
|
2月前
|
机器学习/深度学习 算法
基于心电信号时空特征的QRS波检测算法matlab仿真
本课题旨在通过提取ECG信号的时空特征并应用QRS波检测算法识别心电信号中的峰值。使用MATLAB 2022a版本实现系统仿真,涵盖信号预处理、特征提取、特征选择、阈值设定及QRS波检测等关键步骤,以提高心脏疾病诊断准确性。预处理阶段采用滤波技术去除噪声,检测算法则结合了一阶导数和二阶导数计算确定QRS波峰值。
|
3月前
【光波电子学】MATLAB绘制光纤中线性偏振模式LP之单模光纤的电场分布(光斑)
该文章介绍了如何使用MATLAB绘制单模光纤中线性偏振模式LP₀₁的电场分布,并提供了相关的数学公式和参数用于模拟光纤中的光斑分布。
39 0
基于高通滤波器的ECG信号滤波及心率统计matlab仿真
**摘要:** 使用MATLAB2022a,实施高通滤波对ECG信号预处理,消除基线漂移,随后分析心率。系统仿真展示效果,核心代码涉及IIR HPF设计,如二阶滤波器的差分方程。通过滤波后的信号,检测R波计算RR间期,从而得到心率。滤波与R波检测是心电生理研究的关键步骤,平衡滤波性能与计算资源是设计挑战。
|
5月前
|
机器学习/深度学习 算法 语音技术
基于语音信号MFCC特征提取和GRNN神经网络的人员身份检测算法matlab仿真
**语音识别算法概览** MATLAB2022a中实现,结合MFCC与GRNN技术进行说话人身份检测。MFCC利用人耳感知特性提取语音频谱特征,GRNN作为非线性映射工具,擅长序列学习,确保高效识别。预加重、分帧、加窗、FFT、滤波器组、IDCT构成MFCC步骤,GRNN以其快速学习与鲁棒性处理不稳定数据。适用于多种领域。
基于广义Benders分解法的综合能源系统优化规划(matlab程序)
基于广义Benders分解法的综合能源系统优化规划(matlab程序)
交直流系统潮流计算(含5种控制模式)matlab代码
交直流系统潮流计算(含5种控制模式)matlab代码
|
6月前
|
机器学习/深度学习 算法 数据安全/隐私保护
基于DCT变换和位平面分解的数字水印嵌入提取算法matlab仿真
这是一个关于数字水印算法的摘要:使用MATLAB2022a实现,结合DCT和位平面分解技术。算法先通过DCT变换将图像转至频域,随后利用位平面分解嵌入水印,确保在图像处理后仍能提取。核心程序包括水印嵌入和提取,以及性能分析部分,通过PSNR和NC指标评估水印在不同噪声条件下的鲁棒性。
|
6月前
|
数据可视化 数据库
matlab中使用VMD(变分模态分解)对信号去噪
matlab中使用VMD(变分模态分解)对信号去噪
matlab中使用VMD(变分模态分解)对信号去噪
|
6月前
|
供应链 算法
市场模式下光伏用户群的电能共享与需求响应模型(matlab代码)
市场模式下光伏用户群的电能共享与需求响应模型(matlab代码)