首页 > 其他分享 >时序信号高低频分析——EMD和EEMD对比

时序信号高低频分析——EMD和EEMD对比

时间:2024-03-28 09:01:10浏览次数:14  
标签:EMD plt 包络线 时序 信号 np EEMD

时序信号高低频分析——EMD和EEMD对比

介绍

时序信号高低频分析是信号处理领域中的一个重要任务,用于分解信号中的高频和低频成分,从而更好地理解信号的特性和行为。在高低频分析中,经验模态分解(Empirical Mode Decomposition,EMD)和改进的经验模态分解(Enhanced Empirical Mode Decomposition,EEMD)是两种常用的方法。本文将介绍这两种方法的原理和公式,并对它们进行比较。

EMD的原理和公式

EMD是一种自适应的数据驱动信号分解方法,其基本思想是通过挑选信号中的局部极值点来构造包络线,并利用包络线来提取信号中的各种振动成分。具体步骤如下:

  1. 提取局部极值点:找到信号中的局部最大值和局部最小值点。
  2. 连接局部极值点:连接相邻的局部极值点,得到上包络线和下包络线。
  3. 计算均值包络线:将上包络线和下包络线的均值作为信号的均值包络线。
  4. 计算细化的包络线:用原始信号减去均值包络线得到细化的包络线。
  5. 重复迭代:将细化的包络线作为新的信号进行迭代,直到满足停止条件(如提取的 IMFs 符合某种特定的物理条件)。
  6. 提取IMF:最终得到的信号即为一组固有模态函数(IMFs),它们是信号中包含的各种振动模式。

EMD的公式详见之前的文章。

EEMD的原理和公式

EEMD是对EMD的改进,主要是为了解决EMD在处理非平稳信号时可能出现的模态混叠问题。EEMD的主要思想是引入噪声,通过多次重复添加随机噪声并进行分解,最后将结果取平均来消除噪声,从而得到更稳定的结果。

两者的区别

  1. EMD的缺点:EMD在处理非平稳信号时可能出现的模态混叠问题,导致分解结果不稳定。
  2. EEMD的改进:EEMD引入了随机噪声,通过多次分解并取平均来消除噪声,从而得到更稳定和可靠的结果。

Python实现

下面是使用PyEMD库分别实现EMD和EEMD的示例代码:

import numpy as np
import matplotlib.pyplot as plt
from PyEMD import EMD, EEMD

# 生成示例信号
t = np.linspace(0, 1, 1000)
s = np.sin(2 * np.pi * 5 * t) + np.sin(2 * np.pi * 10 * t) + np.sin(2 * np.pi * 20 * t)

# 创建EMD对象
emd = EMD()

# 进行EMD分解
IMFs_emd = emd(s)

# 创建EEMD对象
eemd = EEMD()

# 进行EEMD分解
IMFs_eemd = eemd(s)

# 绘制IMF图
plt.figure(figsize=(12, 8))

# 绘制EMD的IMF图
plt.subplot(2, 1, 1)
for i, imf in enumerate(IMFs_emd):
    plt.plot(t, imf, label=f'IMF {i+1}')
plt.title('EMD')
plt.legend()

# 绘制EEMD的IMF图
plt.subplot(2, 1, 2)
for i, imf in enumerate(IMFs_eemd):
    plt.plot(t, imf, label=f'IMF {i+1}')
plt.title('EEMD')
plt.legend()

plt.tight_layout()
plt.show()

在这里插入图片描述

以上代码将生成一个示例信号,然后分别利用PyEMD库进行EMD和EEMD分解,并绘制每个IMF的图像。可以通过比较两者的结果来观察其区别。

总结

EMD和EEMD是两种常用的时序信号分解方法,它们在信号处理和特征提取中具有重要的应用价值。EMD是一种自适应的分解方法,但在处理非平稳信号时可能出现模态混叠问题,而EEMD通过引入随机噪声的方法解决了这个问题,得到了更稳定和可靠的结果。因此,在实际应用中,可以根据信号的特性和要求选择合适的分解方法。

标签:EMD,plt,包络线,时序,信号,np,EEMD
From: https://blog.csdn.net/weixin_39753819/article/details/136230599

相关文章

  • Xilinx ZYNQ 7000+Vivado2015.2系列(七)软硬件联合Debug观察AXI总线读、写时各信号的时
    前面一节我们学会了创建基于AXI总线的IP,但是对于AXI协议各信号的时序还不太了解。这个实验就是通过SDK和Vivado联合调试观察AXI总线的信号。由于我们创建的接口是基于AXI_Lite协议的,所以我们实际观察到是AXI_Lite协议的信号时序。具体做法是创建一个基于AXI总线的加法器模块,在......
  • 痞子衡嵌入式:给i.MXRT1xxx系列GPIO提早供电会影响DCDC_PSWITCH上电时序导致内部DCDC启
    大家好,我是痞子衡,是正经搞技术的痞子。今天痞子衡给大家介绍的是给i.MXRT1xxx系列GPIO提早供电会影响DCDC_PSWITCH上电时序导致内部DCDC启动失败。最近有一个RW612产品线的同事在设计一个双MCU系统Demo时发现,当RW612板卡和RT1060板卡通过UART对接时,如果RW6......
  • 使用systemd部署r-nacos
    1、前言r-nacos是一个用rust实现的nacos服务。相较于javanacos来说,是一个提供相同功能,启动更快、占用系统资源更小(初始内存小于10M)、性能更高、运行更稳定的服务。r-nacos设计上完全兼容最新版本nacos面向clientsdk的协议(包含1.x的httpOpenApi,和2.x的grpc协议),支持使用nac......
  • 时序知识图谱嵌入
    时序知识图谱嵌入(TemporalKnowledgeGraphEmbedding)是一种将时间信息结合到知识图谱嵌入中的技术。知识图谱是一种用图形结构来表示实体之间关系的数据模型,而知识图谱嵌入则是将这种图形结构映射到低维向量空间中,以便于机器学习算法进行处理。时序知识图谱嵌入与传统知......
  • python实现时序平滑算法SG滤波器
    ......
  • 时序分析:基础知识整理(三)差分转单端的约束等
    之后的都只有我个人能看,想看的请支持单刀大佬。主时钟约束主时钟约束,就是我们对主时钟(PrimaryClock)的时钟周期进行约束(告诉综合工具布局布线的标准),这个约束是我们用的最多的约束了,也是最重要的约束。主时钟必须与一个网表对象相连,该对象代表了所有时钟边沿的开始点,并且在时钟......
  • 时序分析:基础知识整理(二)
    搬运自:孤独的单刀;大佬后面的是付费项目,所以涉及付费项目的我不会公开,本博客纯方便自己看做笔记。输出延时时间Tco由clk触发到输出数据有效之间最大延迟时间,对应图1的Tco(clockoutputdelay)组合逻辑与时序逻辑组合逻辑电路数字电路根据逻辑功能的不同特点,可以分成两......
  • 时序分析:基础知识整理(一)
    好的时序是设计出来的,不是约束出来的。搬运自:孤独的单刀;大佬后面的是付费项目,所以涉及付费项目的我不会公开,本博客纯方便自己看做笔记。时钟抖动ClockJitter理想的时钟信号是完美的方波,但是实际的方波是存在一些时钟抖动的。那么什么是时钟抖动呢? 时钟抖动,ClockJitt......
  • GEE高阶应用——如何绘制2000-2022年土地利用变化轨迹时序图
    简介土地利用变化是指在一定时间范围内,土地利用类型和结构发生的变化。时序变化是指这种变化随时间的推移而发生的序列变化。土地利用变化轨迹的时序变化具体介绍如下:首先,土地利用变化轨迹的时序变化体现在土地利用类型的演变上。在过去的几十年里,随着人口的增加、经济的发展......
  • (116)综合时序路径有哪些?
     1本节目录1.1本节目录1.2综合介绍1.3FPGA介绍1.4Verilog介绍1.5 综合时序路径有哪些?1.6结束语2综合介绍综合就是把行为级的RTL代码在工艺、面积、时序等约束下转换成对应的门级网表。综合是使用软件的方法来设计硬件,然后将门级电路实现与优化的工作留给综合......