EMD算法的简单介绍,matlab安装包的安装以及其应用![通俗易懂]

EMD算法的简单介绍,matlab安装包的安装以及其应用![通俗易懂]EMD算法的简单介绍:从编程的角度来看,EMD是两个while循环。固有模特分量(内层while循环)满足的两个条件:(1)极值点的个数和过零点的个数相等或者最多相差为1个;(2)上下包络线的平均值为零。余项的满足条件:单调函数(部分论文上有其他的条件,外层while循环)。具体的步骤如下:1)首先使用三次样条曲线分别拟合信号…

大家好,又见面了,我是你们的朋友全栈君。

EMD(经验模态分解)是由美国NASA的黄锷博士提出的一种信号处理方法。EMD将信号分解为频率按照从高到低的一系列模态分量,并由于噪声占主导的分量主要是高频信号,有效信号占主导的分量主要是低频信号,因而它们之间存在着一个分界点,当找到这个分界点时即可实现对信号的降噪。

EMD的每一个固有模态分量均满足以下两个条件:其极值点和过零点的个数相等或者相差至多为1,任意一点的上下包络线均值为零。EMD进行“筛分”步骤总结如下:

1)使用三次样条曲线拟合信号的极大值点和极小值点,形成了上下包络线,其次计算出上下包络线的均值,然后令信号减去该均值后则可得到了一个新的信号;再次重复上述方法求取上下包络线和均值以及新的信号,直至最后得到信号满足固有模态分量的两个条件;

2)将原始信号减去所有的固有模态分量得到的残余信号代入步骤1)运算,直至最后的残余信号为满足一定的条件时,则停止分解,其即为余项。

EMD安装包的下载:https://download.csdn.net/download/qq_27806947/10366188 其安装过程如下:

1)找到matlab安装目录下的toolbox,并把安装包粘贴进去!

2)添加maltab的路径,设置路径-添加并包含子文件夹-选中toolbox下的package_emd-保存-关闭如下图所示:

EMD算法的简单介绍,matlab安装包的安装以及其应用![通俗易懂]

3)在命令行中运行命令:install_emd即可!

这里使用EMD分解一个加速度信号,程序和结果如下图所示:

modos=emd(s1); %已经知道结果是2个固有模态分量和一个余项了,否则应该用for循环和size(modos)
figure
plot(t1,s1)
xlabel('时间/s');
ylabel('位移/m');
title('原始信号')


figure
subplot(3,1,1)
plot(t1,modos(1,:))
title('EMD分解的信号')

ylabel('IMF1/m');


subplot(3,1,2)
plot(t1,modos(2,:))

ylabel('IMF2/m');


subplot(3,1,3)
plot(t1,modos(3,:))
xlabel('时间/s');
ylabel('余项/m');

 

EMD算法的简单介绍,matlab安装包的安装以及其应用![通俗易懂]

EMD算法的简单介绍,matlab安装包的安装以及其应用![通俗易懂]

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/134717.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • eclipse导入maven工程

    eclipse导入maven工程eclipse导入maven工程

    2022年5月31日
    34
  • 数据结构_十字链表(C语言)[通俗易懂]

    数据结构_十字链表(C语言)[通俗易懂]十字链表1.十字链表图文解析十字链表是有向图的一种存储结构在十字链表里我们称每一条有向边为:弧十字链表的存储结构主要包括:弧结点和顶点结点,如下图:由以上结构组成的有向图如下:红线:与邻接表一样,可以采用头插法插入弧结点绿线:指向同一个尾顶点的弧结点黑线:指向该顶点的绿线弧结点链表,例如顶点V2—>弧的链表(每个弧结点的头顶点都为V2)十字链表的构造方法:2.源代码及测试#include<stdio.h>#include<stdlib.h

    2022年6月18日
    29
  • 软件测试的基本理论知识(软件测试面试基础知识)

    01软件研发流程1.软件产品软件产品是指向用户提供的计算机软件、信息系统或设备中嵌入的软件或在提供计算机信息系统集成、应用服务等技术服务时提供的计算机软件。2.软件工程软件工程,英文名SoftwareEngineering,是一门研究用工程化方法构建和维护有效的、实用的和高质量的软件的学科。“软件工程是开发、运行、维护和修复软件的系统方法。”这个定义相当概括,它主要强调软件工程是系统方法而不是某种…

    2022年4月18日
    47
  • Java知多少(53)使用Java创建自己的异常子类

    Java知多少(53)使用Java创建自己的异常子类

    2021年9月6日
    63
  • mysql语句大全及例子_SQL语句大全实例教程.pdf[通俗易懂]

    mysql语句大全及例子_SQL语句大全实例教程.pdf[通俗易懂]SQL语句大全实例教程无论您是一位SQL的新手,或是一位只是需要对SQL复习一下的资料仓储业界老将,您就来对地方了。这个SQL教材网站列出常用的SQL指令,包含以下几个部分:♦SQL指令:SQL如何被用来储存、读取、以及处理数据库之中的资料。♦表格处理:SQL如何被用来处理数据库中的表格。♦进阶SQL:介绍SQL进阶概念,以…

    2022年5月20日
    36
  • Oracle ASMM和AMM

    Oracle ASMM和AMMASMM(AutomaticSharedMemoryManagement,自动共享内存管理)是Oracle10g引入的概念。通过使用ASMM,就不需要手工设置相关内存组件的大小,而只为SGA设置一个总的大小,Oracle的MMAN进程(MemoryManagerProcess,内存管理进程)会随着时间推移,根据系统负载的变化和内存需要,自动调整SGA中各个组件的内存大小。ASM…

    2022年6月7日
    51

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号