【经验模态分解】3.EMD模态分解算法设计与准备工作

news2024/11/26 2:29:58
/**
 * @poject          经验模态分解及其衍生算法的研究及其在语音信号处理中的应用
 * @file            EMD模态分解算法设计与准备工作
 * @author			jUicE_g2R(qq:3406291309)
 * 
 * @language        MATLAB
 * @EDA				Base on matlabR2022b
 * @editor			Obsidian(黑曜石笔记软件)
 * 
 * @copyright		2023
 * @COPYRIGHT	    原创学习笔记:转载需获得博主本人同意,且需标明转载源
 */

设计原理遵循上一节的3个基本概念

  • 链接直通车:【经验模态分解】2.EMD的3个基本概念

1 处理极限

  • 首先,需要对实际处理过程中 上下包络均值无法为0(无法达到极限) 的问题进行 逼近(取一个阈值作为条件)

一个 逼近值 a n 逼近值a_n 逼近值an 越接近 极限(理论)值 a ∞ 极限(理论)值a_∞ 极限(理论)值a,它与 上一个逼近值 a n − 1 a_{n-1} an1 的差值越小

2 E M D EMD EMD 分解算法 流程

2-1 步骤

2-2 流程图

3 MATLAB代码实现

3-1 定义采样周期与采样频率

  • f = 1 T f=\frac{1}{T} f=T1
SampFreq = 512;			% 采样频率,每秒钟 采集 512个样本
SampPeri = 1/512;		% 采样周期,采集 1个样本 需要 1/512s
t = 0:SampPeri:1;		% 定义时间向量t(这个向量表示了信号的时间点),步长为 1/512 ,范围0~1

3-2 生成源信号

  • 1. x ( t ) = c o s ( w t ) x(t)=cos(wt) x(t)=cos(wt)
  • 2. w = 2 π f w=2\pi f w=2πf
  • 得出: x ( t ) = c o s ( 2 π f t ) x(t)=cos(2\pi ft) x(t)=cos(2πft)
%% 输入的源信号由 wave1与wave2 叠加
AWave1 = 0.5;			% 定义 wave1 的 幅值
AWave2 = 1;				% 定义 wave2 的 幅值
fWave1 = 20;			% 定义 wave1 的 频率
fWave2 = 30;			% 定义 wave2 的 频率
wave1 = AWave1*cos(2*pi*fWave1*t);			% 定义 第一个余弦波分量
wave2 = AWave2*cos(2*pi*fWave2*t);			% 定义 第二个余弦波分量
input = wave1 + wave2;						% 分量合并
x = input;									% 设置初始值

3-3 绘制源信号

figure					% 调出 figure 绘图 图形化窗口
plot(t,x);				% 绘制坐标图:横坐标为 t,纵坐标为 x=x(t)
grid on					% 添加网格线,使得绘图更加方便和准确
xlabel('t');			% 标记 横坐标为 t
ylabel('x');			% 标记 纵坐标为 x=x(t)
title('源输入信号');		% 说明坐标图的含义
legend('x(t)=0.5cos(40πt)+cos(60πt)')		% 说明源输入信号的组成
  • 运行后 f i g u r e figure figure 窗口弹出,编号为1
    在这里插入图片描述

3-4 模态分解

3-4-1 下载相关工具箱

两个软件: E M D EMD EMD 工具箱时频分析工具箱

  • 时频分析工具箱下载链接源
    如下是添加 时频分析工具箱* 的步骤(注:添加最顶的文件夹tftb-0.2即可包含下面所有子文件夹)
    在这里插入图片描述

  • EMD工具箱下载链接源
    同上操作

  • 详细使用教程链接源
    在这里插入图片描述

  • 检查一下工具箱是否正常添加:调用 e m d ( ) emd() emd() 函数执行 I M F IMF IMF 的计算(模态分解)

%% 仅用于调试
imf = emd(x);
emd_visu(x,t,imf);

这样就说明添加成功了
在这里插入图片描述

3-4-2 调用函数

%% Get IMF
[imf,residual] = emd(x);	% imf为一个矩阵,每列为一个模态函数,residual为残差向量
[M,N]=size(imf);			% M:模态数,N:模态长度

参考文献:EMD算法研究及其在信号去噪中的应用_王婷.caj(第二章)
附加:emd.ppt

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

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

相关文章

Day25力扣打卡

打卡记录 寻找旋转排序数组中的最小值(二分) 链接 由于是旋转排序数组,所以整个数组有两部分是递增的,选取右侧最后元素,即可将整个数组分为大于该元素和小于该元素,碰头地段即为最小值。 class Solutio…

Effective C++ 系列和 C++ Core Guidelines 如何选择?

Effective C 系列和 C Core Guidelines 如何选择? 如果一定要二选一,我会选择C Core Guidelines。因为它是开源的,有300多个贡献者,而且还在不断更新,意味着它归纳总结了最新的C实践经验。最近很多小伙伴找我&#xff…

系列二、Shiro的核心组件

一、核心组件 # 1、UsernamePasswordToken 封装了用户的登录信息,使用用户的登录信息来创建Token # 2、SecurityManager Shiro的核心组件,负责安全认证和授权 # 3、Subject Shiro的一个抽象概念,包含了用户信息 # 4、Realm 开发者自定义的模块…

AcWing99. 激光炸弹

题目 地图上有 N N N 个目标,用整数 X i , Y i X_i,Y_i Xi​,Yi​ 表示目标在地图上的位置,每个目标都有一个价值 W i W_i Wi​。 注意:不同目标可能在同一位置。 现在有一种新型的激光炸弹,可以摧毁一个包含 R R RR RR 个…

SpringBoot自动配置的原理篇,剖析自动配置原理;实现自定义启动类!附有代码及截图详细讲解

SpringBoot 自动配置 Condition Condition 是在Spring 4.0 增加的条件判断功能,通过这个可以功能可以实现选择性的创建 Bean 操作 思考:SpringBoot是如何知道要创建哪个Bean的?比如SpringBoot是如何知道要创建RedisTemplate的?…

前端-第一部分-HTML

一.初识HTML 1.1 HTML 简介 HTML 全称为 HyperText Mark-up Language,翻译为超文本标签语言,标签也称作标记或者元素。HTML 是目前网络上应用最为广泛的技术之一,也是构成网页文档的主要基石之一。HTML文本是由 HTML 标签组成的描述性文本&a…

在Rust中使用多线程并发运行代码

1.Rust线程实现理念 在大部分现代操作系统中,已执行程序的代码在一个 进程(process)中运行,操作系统则会负责管理多个进程。在程序内部,也可以拥有多个同时运行的独立部分。这些运行这些独立部分的功能被称为 线程&am…

【js逆向实战】某sakura动漫视频逆向

写在前面 再写一个逆向实战,后面写点爬虫程序来实现一下。 网站简介与逆向目标 经典的一个视频网站,大多数视频网站走的是M3U8协议,就是一个分段传输,其实这里就有两个分支。 通过传统的m3u8协议,我们可以直接进行分…

千万别对女项目经理抱有幻想

大家好,我是老原。 前段时间,有一个粉丝朋友来咨询我一个问题,多少是有点把老原我问蒙圈 现在职场上女PM并不少见,也有很多优秀的女PM。 我也有不少和女PM合作的经历,不得不说,和她们沟通/合作可以说是很…

详解卷积神经网络结构

前言 卷积神经网络是以卷积层为主的深度网路结构,网络结构包括有卷积层、激活层、BN层、池化层、FC层、损失层等。卷积操作是对图像和滤波矩阵做内积(元素相乘再求和)的操作。 1. 卷积层 常见的卷积操作如下: 卷积操作解释图解…

能谈一下 CAS 机制吗

(本文摘自mic老师面试文档) 一个小伙伴私信我,他说遇到了一个关于 CAS 机制的问题,他以为面试官问的是 CAS 实现单点登录。 心想,这个问题我熟啊,然后就按照单点登录的思路去回答,结果面试官一…

Azure - 机器学习:自动化机器学习中计算机视觉任务的超参数

Azure Machine Learning借助对计算机视觉任务的支持,可以控制模型算法和扫描超参数。 这些模型算法和超参数将作为参数空间传入以进行扫描。 关注TechLead,分享AI全维度知识。作者拥有10年互联网服务架构、AI产品研发经验、团队管理经验,同济…

美国Embarcadero公司正式发布2023 RAD Studio Delphi C++ Builder 12 Athens

Embarcadero 非常高兴地宣布发布 RAD Studio 12 Athens 以及 Delphi 12 和 CBuilder 12。RAD Studio 12 Athens 版本包含令人兴奋的新功能,为该产品的未来奠定了基础。 目录 主要新功能 C 的奇妙之处Delphi 的一些不错的补充FireMonkey 和 Skia 作为新基金会采用 MD…

设计模式(3)-结构型模式

结构型模式 结构型模式描述如何将类或对象按某种布局组成更大的结构。它分为类结构型模式和对象结构型模式,前者采用继承机制来组织接口和类,后者釆用组合或聚合来组合对象。 由于组合关系或聚合关系比继承关系耦合度低,满足“合成复用原则…

从浏览器输入一个URL到最终展示出页面,中间会发送哪些事儿?

文章目录 前言一. DNS域名解析二. 进行封装三. 进行传输四. 到达服务器后层层分用五. 服务器把响应数据重新封装六. 响应数据进行传输七. 到达客户端层层分用八. 将网页渲染到浏览器上 前言 当你输入一个网址:www.baidu.com时,浏览器究竟做了哪些工作才…

C++ Qt 学习(四):自定义控件与 qss 应用

1. qss 简介 Qt style sheet(qss,Qt 样式表),不需要用 C 代码控件进行重载,就可以修改控件外观,类似于前端的 css 2. qss 选择器 2.1 通配符选择器 /* 设置后控件窗口背景色都被修改为黄色 */ * {backg…

如何在Android平板上远程连接Ubuntu服务器code-server进行代码开发?

文章目录 1.ubuntu本地安装code-server2. 安装cpolar内网穿透3. 创建隧道映射本地端口4. 安卓平板测试访问5.固定域名公网地址6.结语 1.ubuntu本地安装code-server 准备一台虚拟机,Ubuntu或者centos都可以,这里以VMwhere ubuntu系统为例 下载code serve…

Vue3使用vue-print-nb插件打印功能

插件官网地址https://www.npmjs.com/package/vue-print-nb 效果展示: 打印效果 根据不同的Vue版本安装插件 //Vue2.0版本安装方法 npm install vue-print-nb --save pnpm install vue-print-nb --save yarn add vue-print-nb//Vue3.0版本安装方法: npm install vue3…

CentOS Linux 系统镜像

CentOS Linux具有以下特点: 稳定性:CentOS Linux旨在提供一个稳定、可靠的服务器环境,适合用于关键业务应用和生产环境。高效性:CentOS Linux经过优化和调整,可以充分发挥硬件的性能,提高系统的整体效率。…

2023 年最新腾讯官方 QQ 机器人(QQ 群机器人 / QQ 频道机器人)超详细开发教程

注册 QQ 开放平台账号 QQ 开放平台是腾讯应用综合开放类平台,包含 QQ 机器人、QQ 小程序、QQ 小游戏 等集成化管理,也就是说你注册了QQ 开放平台,你开发 QQ 机器人还是 QQ 小程序都是在这个平台进行部署上线和管理。 如何注册 QQ 开放平台账…