集成经验模态分解 (EEMD) 及其在信号降噪中的应用

news2024/9/20 15:08:36

引言

在信号处理领域,处理非线性和非平稳信号是一个重要的挑战。经验模态分解 (EMD) 是一种有效的方法,但在处理带噪声的信号时,可能会出现模态混叠问题。集成经验模态分解 (Ensemble Empirical Mode Decomposition, EEMD) 作为EMD的改进方法,能够更好地处理带噪声的信号。本文将介绍EEMD的基本概念、工作原理,并展示其在信号降噪中的实际应用。

什么是集成经验模态分解 (EEMD)?

集成经验模态分解 (EEMD) 是EMD的一种改进方法,通过引入白噪声来避免模态混叠问题。EEMD的核心思想是将原始信号与不同幅度的白噪声多次叠加,通过对叠加后的信号进行EMD分解,再对结果进行平均,从而得到更稳定的固有模态函数 (IMFs)。

EEMD的工作原理

EEMD的分解过程可以通过以下步骤进行:

  1. 添加白噪声:将不同幅度的白噪声多次叠加到原始信号上,得到若干个带噪声的信号。
  2. 进行EMD分解:对每个带噪声的信号进行EMD分解,得到一组IMFs。
  3. 平均IMFs:对所有带噪声信号分解得到的IMFs进行平均,得到最终的IMFs。

通过这些步骤,EEMD能够有效地避免模态混叠问题,提高分解结果的稳定性。

在这里插入图片描述

EEMD在信号降噪中的应用

EEMD在信号降噪中的应用非常广泛。以下是一个具体的示例,通过EEMD将带噪声的信号进行降噪处理。

效果展示

在这里插入图片描述

降噪结果

在这里插入图片描述

IMFs分解结果

示例代码

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

# 生成原始信号 (例如,正弦波)
t = np.linspace(0, 1, 1000)
original_signal = np.sin(2 * np.pi * 5 * t)

# 添加噪声
noise = np.random.normal(0, 0.5, t.shape)
noisy_signal = original_signal + noise

# 使用EEMD进行分解
eemd = EEMD()
IMFs = eemd.eemd(noisy_signal, t)

# 选择要保留的IMFs进行重构,通常是去掉高频IMFs
# 在这个例子中,我们假设前两个IMFs主要是噪声
reconstructed_signal = np.sum(IMFs[2:], axis=0)

# 绘制结果
plt.figure(figsize=(14, 10))

# 原始信号
plt.subplot(4, 1, 1)
plt.plot(t, original_signal, 'b')
plt.title("Original Signal")
plt.xlabel("Time [s]")

# 带噪声的信号
plt.subplot(4, 1, 2)
plt.plot(t, noisy_signal, 'r')
plt.title("Noisy Signal")
plt.xlabel("Time [s]")

# 降噪后的信号
plt.subplot(4, 1, 3)
plt.plot(t, reconstructed_signal, 'k')
plt.title("Denoised Signal")
plt.xlabel("Time [s]")

plt.tight_layout()
plt.show()

# 单独绘制IMFs
plt.figure(figsize=(14, 10))
for i, imf in enumerate(IMFs):
    plt.subplot(len(IMFs), 1, i + 1)
    plt.plot(t, imf, 'g')
    plt.title("IMF "+str(i+1))
    plt.xlabel("Time [s]")

plt.tight_layout()
plt.show()

代码解释

  1. 生成原始信号:生成一个频率为5Hz的正弦波信号。
  2. 添加噪声:将随机噪声添加到原始信号中,形成带噪声的信号。
  3. 使用EEMD进行分解:将带噪声的信号进行EEMD分解,得到若干个IMFs。
  4. 选择IMFs进行重构:假设前两个IMFs主要是噪声,将其去除,保留剩下的IMFs进行信号重构。
  5. 绘制结果:首先绘制原始信号、带噪声的信号和降噪后的信号。然后在一个单独的图形中绘制所有IMFs。

通过这种方式,我们可以从带噪声的信号中提取出主要的信号成分,实现降噪效果。你可以根据具体情况调整去除IMFs的数量,以达到最佳的降噪效果。

结论

集成经验模态分解 (EEMD) 是一种强大的信号处理工具,特别适用于处理带噪声的非线性和非平稳信号。通过引入白噪声并进行多次分解,EEMD能够有效地避免模态混叠问题,提高分解结果的稳定性。希望本文能够帮助你更好地理解EEMD的原理及其在信号降噪中的应用。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1967660.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Go语言+Vue3零基础入门全栈班09 Go语言+MongoDB开发用户管理系统API实战_20240730 课程笔记

概述 如果您没有Golang的基础,应该学习如下前置课程。 Golang零基础入门Golang面向对象编程Go Web 基础Go语言开发REST API接口_20240728Go语言操作MySQL开发用户管理系统API教程_20240729Redis零基础快速入门_20231227GoRedis开发用户管理系统API实战_20240730Mo…

PG如何实现跨大版本升级

数据库进行升级,是一个再正常不过的功能,比如功能的需要,遇到BUG,安全漏洞等等,具体升级包含子版本升级,主版本升级。如果用过ORACLE的朋友,一定知道,在ORACLE中,如果要实…

dp:221. 最大正方形

221. 最大正方形 看到这个题目真能立马想到dp吗?貌似很难,即使知道是一个dp题也很难想到解法。 直观来看,使用bfs以一个点为中点进行遍历,需要的时间复杂度为 O ( n 2 m 2 ) O(n^2m^2) O(n2m2) 但是可以很容易发现,…

昂科烧录器支持MindMotion灵动微电子的32位微控制器MM32SPIN360C

芯片烧录行业领导者-昂科技术近日发布最新的烧录软件更新及新增支持的芯片型号列表,其中MindMotion灵动微电子的32位微控制器MM32SPIN360C已经被昂科的通用烧录平台AP8000所支持。 MM32SPIN360C使用高性能的ARM CortexM0为内核的32位微控制器,5V输出的L…

九大原则,轻松构建个人高效SOP

1、原则一、工作汇报SOP SCQA模型(升职加薪的关键!) 清晰定义问题和提出解决方案 类别 关键词 解读 S - Situation 情景 陈述项目背景,目标,愿景 C - Complication 冲突 讲卡点,讲冲突 Q - Question 疑问-问题 这些冲…

vue2 封装插槽组件

安装 element-ui npm install element-ui --save ---force main.js 导入 import Vue from vue; import ElementUI from element-ui; import element-ui/lib/theme-chalk/index.css; import App from ./App.vue; Vue.use(ElementUI); new Vue({ el: #app, render: h > h(Ap…

未来RPA财税的发展前景

近年来,全球数字化进程持续提速,越来越多企业受到效率及运营成本的压力,正努力寻求企业增长发展的新路径,而财务作为企业战略的“大脑”,成为企业数字化转型的重要突破口。RPA技术由于能够自动化各种重复性和繁琐的任务…

如何利用智能电子工牌提高酒店员工的服务技能和沟通效率?

智能电子语音工牌的基本功能 智能电子录音工牌通常集成了录音、语音识别、数据上传等功能,能够在员工与客户互动的过程中实时录制音频,并将数据上传到云端服务器。这些工牌还可能配备定位功能,以便追踪员工的位置和服务轨迹。通过语音识别技…

职场里有3个错觉,如果正好说中你,抓紧醒过来

1.没有我肯定不行。 其实大多数公司里的绝大多数人都可以被替代,无非是在个体层面替代的成本高一点、低一点罢了。 所以千万别高估自己,否则会造成极其严重的误判。 我之前的公司有一个部门,这里面有个员工,专业对口&#xff0…

vue-cli搭建项目笔记

1. 在指定位置打开终端 2. 运行 指令 vue create xtx选择 vue2 等待创建完成。。。。。 大概5.52s完成 3.启动项目 进入 项目 目录 cd xtx 启动 yarn run serve 4. 访问 浏览器 访问 localhost:8080 5. 项目开发 清空项目 App.vue 注意:每一个vue组件中的…

柯桥零基础学韩语韩语俗语韩语日常口语培训

반모반말모드 반말모드 非敬语模式 존모존댓말모드 존댓말모드 敬语模式 2 비담 비담비주얼담당 비주얼 담당, 意思就是颜值担当。 3 보배 보배보조배터리15857575376# 随身充、充电宝 如果单讲单词,是宝贝的意思。网络用语角度理解的话就是充电宝 4 삼귀다…

这4个思维导图软件剪辑就是整理思维的魔法工具。

思维导图作为一个能够帮助我们呈现可视化内容,激发创意以及提高我们记忆力的工具;正在被越来越多的人使用。然而选择一款适合自己的脑图软件,会为我们的学习、工作和生活带来很大的便利,如果你依旧还在寻找的话,不妨看…

SVM解决线性不可分问题

在一个棋盘上杂糅的摆放着黑白两种棋子,要求我们以最快的速度将它们各自分开,这时我们应该如何做呢?也许喜欢金庸武侠的小伙伴已经想到了答案。 假如你是一位拥有深厚内力的大侠,你直接可以拍盘而起,让棋子们飞起来&am…

secExample靶场之java反序列化漏洞复现

我是使用kali虚拟机搭建的靶场,具体搭建步骤可以看我之前的博客内容。 访问靶机地址,打开java反序列化的 点进去后是如图的页面,随便输入一信息。 可以看到敏感信息直接显示在了页面上。 访问192.168.189.141:8080/cors1,可以看到…

揭秘律师界的“超能力”:AI如何让繁琐工作变轻松?

律师朋友们,你们是否也曾为文书堆成山、法规更新追不上、案例分析耗时久而头疼?我懂你们的痛,毕竟,咱也是从那个“人肉检索机”时代走过来的。不过,今天我要分享一个秘密武器——AI工具,它们真的能帮咱们把…

由浅入深的了解进程(3)

进程状态 进程状态1、Linux中的进程状态1、1、进程状态R和S1、2、进程状态T/t1、3、进程状态D1、4、进程状态X和Z 2、僵尸进程3、孤儿进程4、bash概括5、进程的阻塞,挂起和运行5、1、运行5、2、阻塞5、3、挂起 进程状态 任何一个进程都要有自己的代码和数据一样&am…

CSS雷达光波效果(前端雷达光波效果)

前言 CSS雷达光波效果是一种视觉动画效果,常用于模仿雷达扫描或检测的视觉反馈。这种效果通常涉及到动态的圆形或弧形图案,它们从一个中心点向外扩散,类似于水面上的涟漪或雷达扫描线。以下是创建CSS雷达光波效果的一些关键技术和步骤&#…

[C++] 容器适配器:深入理解Stack与Queue的底层原理

文章目录 容器适配器简介deque的缺陷为什么使用deque作为stack和queue的底层默认容器 stack和queue的简单讲解Stack(栈)栈的操作图示栈的相关接口 Queue(队列) Stack和Queue的模拟实现Stack(栈)作为容器适配…

新时代的北斗时空智能:助力节能减排,共筑低碳未来

随着全球环境问题日益加剧,节能减排和低碳生活成为了全世界共同的目标。中国作为一个崛起中的大国,在这一领域肩负着重要的责任。近年来,中国的北斗卫星导航系统(BDS)异军突起,其时空智能技术在多个方面特别…

盘点国内ERP系统,看看你都用过哪一款?

在数字化转型的浪潮中,企业资源计划(ERP)系统已成为企业提升管理效率、优化资源配置的关键工具。国内市场上,众多优秀的ERP软件产品如雨后春笋般涌现,为企业提供了丰富多样的选择。 本文将为您深度盘点10款国产高端ERP软件,重点围绕公司背景、专业实力、产品核心能力、解…