CEEMDAN算法及其应用
目录
前言
一、CEEMDAN 算法
1 算法原理
2 MATLAB程序
二、CEEMDAN 算法的应用
1 CEEMDAN—小波阈值联合去噪
2 CEEMDAN—小波包分析降噪
3 CEEMDAN—时频峰值滤波
结束语
参考文献
前言
针对EMD算法分解信号存在模态混叠的问题,EEMD和CEEMD分解算法通过在待分解信号中加入成对正负高斯白噪声来减轻EMD分解的模态混叠。但是这两种算法分解信号得到的本征模态分量中总会残留一定的白噪声,影响后续信号的分析和处理。
为了解决这些问题,TORRES 等提出了一种改进算法——完全自适应噪声集合经验模态分解(Complete EEMD with Adaptive Noise,CEEMDAN),又称完全集合经验模态分解。
CEEMDAN 分解从两个方面解决了上述问题:1)加入经 EMD 分解后含辅助噪声的 IMF 分量,而不是将高斯白噪声信号直接添加在原始信号中;2) EEMD 分解和 CEEMD 分解是将经验模态分解后得到的模态分量进行总体平均,CEEMDAN 分解则在得到的第一阶 IMF分量后就进行总体平均计算,得到最终的第一阶 IMF分量,然后对残余部分重复进行如上操作,这样便有效地解决了白噪声从高频到低频的转移传递问题。
一、CEEMDAN 算法
1 算法原理
设为经过 EMD 分解后得到的第 个本征模态分量,CEEMDAN 分解得到的第 个本征模态分量为,为满足标准正态分布的高斯白噪声信号,为加入白噪声的次数,为白噪声的标准表,为待分解信号。CEEMDAN 分解步骤如下:
1)将高斯白噪声加入到待分解信号得到新信号,其中q=1,2. 对新信号进行EMD分解,得到第一阶本征模态分量。
2)对产生的 N 个模态分量进行总体平均就得到CEEMDAN 分解的第 1个本征模态分量:
3)计算去除第一个模态分量后的残差:
4)在 中加入正负成对高斯白噪声得到新信号,以新信号为载体进行 EMD 分解,得到第一阶模态分量,由此可以得到 CEEMDAN 分解的第 2个本征模态分量:
5)计算去除第二个模态分量后的残差:
6)重复上述步骤,直到获得的残差信号为单调函数,不能继续分解,算法结束。此时得到的本征模态分量数量为 K,则原始信号被分解为:
2 MATLAB程序
clc;
clear;
close all;fs=4000; % 采样频率为4000Hz
t=(0:1/fs:(2-1/fs))';
N=length(t);
x1=0.25*cos(0.875*pi*50*t);
x2=0.3*sin(2*pi*50*t).*(1+1.5*sin(0.5*pi*40*t));
x3=0.15*exp(-15*t).*sin(200*pi*t);
x=x1+x2+x3;
nt=0.2*randn(N,1);
y=x+nt;%% CEEMDAN分解
Nstd = 0.2; % 高斯白噪声标准差,一般选择0-1
NR = 100; % 加入噪声的次数,一般选择50-100
MaxIter = 500; % 最大迭代次数
[imf, its]=ceemdan(y,Nstd,NR,MaxIter);
[m, n]=size(imf);
CC=zeros(1,m); % 相关系数
figure;
for i=1:msubplot(m/2,2,i);plot(imf(i,:));ylabel(['IMF',num2str(i)]);CC(i)=corr(imf(i,:)',y,'type','Pearson'); % 相关系数
end
IMF1 | IMF2 | IMF3 | IMF4 | IMF5 | IMF6 | IMF7 |
0.3702 | 0.2354 |
0.2431 |
0.2012 |
0.1793 | 0.7528 | 0.7492 |
IMF8 | IMF9 | IMF10 | IMF11 | IMF12 | IMF13 | IMF14 |
0.4566 | 0.0687 | 0.0287 | 0.0174 | -0.0029 | 0.0111 | 0.0028 |
二、CEEMDAN 算法的应用
利用CEEMDAN算法分解含噪声信号时,若将含噪声较多的 IMF分量直接舍弃,容易造成有效信息的缺失,因此,需要采用其他去噪方法对含噪声较多的高频 IMF分量进行去噪处理,最后将去噪后的 IMF分量和未去噪处理的 IMF分量进行重构,从而得到去噪后的信号。
1 CEEMDAN—小波阈值联合去噪
论文复现:CEEMDAN-小波阈值联合的球磨机筒体振动信号去噪方法研究。
首先运用 CEEMDAN 算法将信号分解成一系列 IMF 分量; 其次采用连续均方误差准则确定含噪声较多的高频 IMF 分量; 然后采用小波阈值去噪方法对含噪声较多的高频 IMF 分量进行去噪处理; 最后将去噪处理的 IMF 分量和未去噪处理的 IMF 分量进行重构,获得联合去噪方法去噪后的信号。
MATLAB代码链接:CEEMDAN—小波阈值联合去噪
2 CEEMDAN—小波包分析降噪
论文复现:基于 CEEMDAN -小波包分析的隧道爆破信号去噪方法。
首先,通过 CEEMDAN 分解得到多个本征模态分量,利用相关系数筛选出包含噪声的模态分量,并通过模态分量的频谱图及方差贡献率进行校核。然后,利用小波包阈值降噪方法对含有噪声的模态分量进行处理。最后,将未经处理的模态分量与去噪完成的模态分量进行重构,得到最终纯净的爆破振动信号。同时,通过小波包能量谱分析验证此降噪方法的可行性。
MATLAB代码链接:CEEMDAN—小波包分析降噪
3 CEEMDAN—时频峰值滤波
论文复现:基于 CEEMDAN 的时频峰值滤波微地震随机噪声压制方法。
原始微地震数据经 CEEMDAN 分解为若干个本征模态分量 IMF;通过计算 IMF 的样本熵将 IMF 划分为需滤波和存留的两个组分,对需 TFPF 滤波的 IMF 分量逐一选择时窗长度进行滤波;将处理后的 IMF 与不需处理的 IMF 重构即可得到最终的滤波信号。
MATLAB代码链接:
结束语
大家的点赞和关注是博主最大的动力,博主所有博文中的代码文件都可分享给您(除了少量付费资源),如果您想要获取博文中的完整代码文件,可通过C币或积分下载,没有C币或积分的朋友可在关注、点赞和评论博文后,私信发送您的邮箱,我会在第一时间发送给您。博主后面会有更多的分享,敬请关注哦!
参考文献
[1] TORRES M E, COLOMINAS M A, SCHLOTTHAUER G, et al. A complete ensemble empirical mode decomposition with adaptive noise[C] // IEEE International Conference on Acoustics, Speech and Signal Processing, IEEE, 2011 :4144-4147.
[2] 蔡改贫, 赵小涛, 胡显能, 等. CEEMDAN-小波阈值联合的球磨机筒体振动信号去噪方法研究[J]. 机械科学与技术, 2020, 39(7) : 1077-1085.
[3] 王海龙,赵岩,王海军,彭婵媛,仝潇.基于 CEEMDAN -小波包分析的隧道爆破信号去噪方法.爆炸与冲击.(网络首发)
[4] 陈毅军,程 浩,巩恩普,等. 基于 CEEMDAN 的时频峰值滤波微地震随机噪声压制方法[J]. 石油地球物理勘探,2021,56(2):234-241.
CEEMDAN算法及其应用相关推荐
- 【心电检测】基于 EMD、CEEMDAN 算法实现呼吸心跳信号检测实例(去除呼吸旁瓣干扰,测量心跳频率)附matlab代码
✅作者简介:热爱科研的Matlab仿真开发者,修心和技术同步精进,matlab项目合作可私信.
- 【信号去噪】基于EMD、EEMD和CEEMDAN算法实现ECG信号去噪附matlab源码
✅作者简介:热爱科研的Matlab仿真开发者,修心和技术同步精进,matlab项目合作可私信.
- CEEMDAN:完全噪声辅助聚合经验模态分解(matlab)——学习笔记3
CEEMDAN:完全噪声辅助聚合经验模态分解--学习笔记3 从EMD到CEEMDAN 1.EMD EMD算法将基于原始信号的局部特征时间尺度,将原始信号分解为特征模态函数,即将其分解为从高频到低频的一 ...
- 1个神经元 传两个神经元_硅神经元
1个神经元 传两个神经元 INTRODUCTION 介绍 Consciousness is only made possible by virtue of the brain, and the bra ...
- 转移神经网络_神经体系结构转移
转移神经网络 机器学习 (Machine Learning) Neural network topology describes how neurons are connected to form a ...
- 【滤波专题-第6篇】小波阈值去噪方法看这一篇就明白了~(附MATLAB实现)
小波阈值去噪的算法是近些年比较流行的一种滤波方法,由于其阈值函数有着众多的改进方式和改进空间,改进阈值函数也往往可以作为创新点和亮点写到论文中,所以对于正在搞相关研究的同学们写论文是比较友好的(轻松水 ...
- 机器学习之MATLAB代码--CEEMDAN+EEMD+EMD+VMD+IMF重构络(十八)
机器学习之MATLAB代码--CEEMDAN+EEMD+EMD+VMD+IMF重构络(十八) 压缩分量的EEMD代码 压缩分量的EEMD数据 压缩分量的EEMD结果 CEEMDAN代码 CEEMDAN ...
- 经验模态分解和各种进化及变种 EMD,EEMD,CEEMD,CEEMDAN,ESMD等简要介绍
EMD是时频分析常用的一种信号处理方式,EMD经过发展到现在也有很多不同的发展,本文总结了已知的各种优化和变种. 分类: EMD(经验模态分解):基本模态分解 EEMD(集合经验模态分解):EMD+白 ...
- “类EMD”算法分解后要怎样使用(1)——内涵模态分量IMF的方差贡献率、平均周期、相关系数的计算及MATLAB代码实现
之前我们有了十几篇文章讲述了EMD算法的基础理论.IMF的含义.EMD的MATLAB实现方法,EEMD.CEEMD.CEEMDAN.VMD.ICEEMDAN.LMD.EWT的理论及代码实现,还讲到了H ...
- golang通过RSA算法生成token,go从配置文件中注入密钥文件,go从文件中读取密钥文件,go RSA算法下token生成与解析;go java token共用
RSA算法 token生成与解析 本文演示两种方式,一种是把密钥文件放在配置文件中,一种是把密钥文件本身放入项目或者容器中. 下面两种的区别在于私钥公钥的初始化, init方法,需要哪种取哪种. 通过 ...
最新文章
- boost::geometry::concepts::check用法的测试程序
- 一个数的二进制中有多少个1
- 洛谷P1073 最优贸易
- TDtree冲刺第四天
- Oracle-数据库的备份与恢复
- 中国本土八大会计师事务所简介
- 制造业变革中的“三国杀
- LR性能测试Web Page Breakdown分析篇
- AI生命科学绘图(2):基因结构可变剪切的绘制
- 首次「机器学习」挑战赛下周开始,内含知识点剧透
- vtk 曲线 样式_VTK笔记——拟合样条曲线(Parametric Spline)-Go语言中文社区
- 扩散模型与生成模型详解
- 软件测试之动态测试与静态测试
- github加速下载
- postman 接口测试
- java springboot借助qq邮箱发送验证码
- 大乐透历史中奖号码分析
- 《经典诗文诵读的实践与研究》开题报告
- Excel如何批量在数字后面添加单位
- 一张表的多个字段关联另外一张的同一个字段(获取不同操作人名称)
热门文章
- 爱看小说网源码全站带数据打包ThinkPHP内核小说网站源码
- 搜狗输入法界面简化设置
- 软件测试中学生选课用例表,软件测试选课系统测试用例(新).xls
- java 将map转List对象
- codeblock 设置背景颜色
- sharp s2 android 9,夏普s2第三方ROM AOSP(Android P)v105
- 计算机版本过低怎么办,浏览器版本过低嗡嗡叫怎么办_电脑显示浏览器版本过低嗡嗡叫如何处理-win7之家...
- spring实战(第四版)读书笔记 附电子书网盘链接
- Java系统程序员修炼之道
- 正态性检验方法——K-S检验和S-W检验