![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
信号
文章平均质量分 90
Mr.看海
好好学习,天天向上!
展开
-
【Python】类EMD的“信号分解方法”横向对比详解,EMD,EEMD,CEEMD,CEEMDAN,ICEEMDAN,EWT,VMD优劣对比。附一行代码实现所有分解方法,7合1的python代码!
目前网上没有iceemdan的python版本代码,本篇中将该方法予以补全。另外vmd分解使用的vmdpy工具包在分解奇数数量的信号时,其分解结果的数据长度会缩短1,对于此bug,在本文的代码中也予以修复。原创 2024-07-31 21:04:52 · 778 阅读 · 0 评论 -
类EMD的“信号分解方法”横向对比详解,EMD,EEMD,CEEMD,CEEMDAN,ICEEMDAN,EWT,VMD优劣对比。附一行代码实现所有分解方法,7合1的MATLAB代码!
在之前的一系列文章中,我介绍了包括EMD,EEMD,CEEMD,CEEMDAN,ICEEMDAN,EWT,VMD在内的一系列所谓“类EMD”的分解方法。同学们在使用过程中经常会需要对比这些算法的优劣,并在论文中加以呈现;也有一些同学想直接知道结论,究竟哪个方法最好呢?这篇文章就来回答这个问题,并且给出一系列的评价方法,方便大家使用,并且同样封装了极其易用的函数。原创 2024-06-29 17:57:31 · 1531 阅读 · 2 评论 -
【熵与特征提取】从近似熵,到样本熵,到模糊熵,再到排列熵,包络熵,散布熵,究竟实现了什么?(第六篇)——“散布熵”及其MATLAB实现
Rostaghi 和 Azami于 2016 年提出了散布熵。该算法克服近似熵、样本熵与排列熵的部分缺陷,具有计算速度快、受突变信号影响较小等优点,在滚动轴承、齿轮箱等旋转机械特征提取及故障诊断中得到较好应用。原创 2024-04-24 23:02:59 · 1436 阅读 · 0 评论 -
【熵与特征提取】从近似熵,到样本熵,到模糊熵,再到排列熵,包络熵,散布熵,究竟实现了什么?(第五篇)——“包络熵”及其MATLAB实现
今天要讲的包络熵,是比较简单和直观的,不过很多论文里都有用到,尤其是在做寻优算法时,包络熵经常被用来作为适应度函数。原创 2024-04-24 22:59:18 · 1531 阅读 · 0 评论 -
【优化算法】VMD分解算法的16种优化,对K和alpha参数寻优,附MATLAB代码
在实际的研究中,适应度函数往往要复杂得多。本篇我们就以VMD算法的优化为例,讲一讲这种较为复杂的算法的寻优该怎么做,此外我还提供了修改好的VMD寻优代码,供大家参考使用!原创 2024-04-02 00:22:35 · 3079 阅读 · 1 评论 -
【优化算法综述】一行代码实现16种优化算法,常用寻优算法合集及MATLAB快速实现,写好1个就等于写好了16个~
欢迎来到动物园!在已有的众多的优化算法里,生物的行为是研究者们最常模仿的对象,所以你就会经常看到狼啊、麻雀啊、鲸鱼啊,甚至还有小龙虾。当然这些算法的解决思路都很优秀,而对优化算法的应用和改进,也是写论文中极佳的创新点——能研究出新的优化算法固然最好;就算没有,单是将参数寻优加到你的主算法流程中,也可以算是可以说道说道的创新点之一了,在我们乏善可陈(并不)的论文中,也可以提一点亮色~然而此时同学们可能就纠结了,究竟哪一种优化算法更好呢?又该怎样实现“无痛”编程呢?原创 2024-03-17 21:15:02 · 2711 阅读 · 0 评论 -
【滤波专题-第8篇】ICA降噪方法——类EMD联合ICA降噪及MATLAB代码实现(以VMD-ICA为例)
今天来介绍一种效果颇为不错的降噪方法。(针对高频白噪声)。在现实世界的许多情况下,噪声往往接近高斯分布,而有用的信号(如语音、图像特征等)往往表现出非高斯的特性。FastICA通过最大化输出信号的非高斯性来恢复这些有用的信号,从而有效地从噪声中分离出信号。下面将详细解释这种结合的算法流程、优势以及MATLAB代码实现。原创 2024-03-13 01:03:49 · 1549 阅读 · 0 评论 -
【盲源分离】快速理解FastICA算法(附MATLAB绘图程序)
今天讲一个在信号分析领域较为常用的一个方法,即盲源分离算法中的FastICA。我们先从一个经典的问题引入。原创 2024-02-27 23:55:02 · 5081 阅读 · 1 评论 -
【复合多尺度熵与特征提取】一文看懂“复合多尺度熵”——复合多尺度样本熵、模糊熵、排列熵、包络熵、功率谱熵、能量熵、奇异谱熵及其MATLAB实现
本篇要讲的是多尺度熵的一个改进特征提取方法——复合多尺度熵(Composite Multiscale Entropy, CMSE)。复合多尺度熵方法不仅继承了多尺度熵在揭示时间序列多尺度复杂性方面的优势,而且还通过改进的计算方式,提高了熵值的稳定性和准确性,尤其是在处理短时间序列或噪声较大的信号时。原创 2024-02-17 20:52:23 · 2562 阅读 · 0 评论 -
从傅里叶变换,到短时傅里叶变换,再到小波分析(CWT),看这一篇就够了(附MATLAB傻瓜式实现代码)
本专栏中讲了很多时频域分析的知识,不过似乎还没有讲过时频域分析是怎样引出的。所以本篇将回归本源,讲一讲从傅里叶变换→短时傅里叶变换→小波分析的过程。为了让大家更直观得理解算法原理和推导过程,这篇文章将主要使用图片案例。原创 2023-11-18 00:24:40 · 5575 阅读 · 1 评论 -
类EMD的“信号分解方法”及MATLAB实现(第九篇)——小波包变换(WPT)/小波包分解(WPD)
通过将小波包分解的原理与传统的小波分解方法相对比,我们可以明显看到其在精细度和适用性方面的优势。WPD提供的全面频率分析工具不仅增强了我们对信号的理解,而且在实际应用中扩大了小波理论的边界。随着分解级别的加深,WPD赋予了分析师在时间-频率域内进行更加细致探查的能力,这是在传统的小波分解中所无法实现的。我将这篇也归到“类EMD”分解方法的分类中了,主要是取其“分解信号以便分析”的相似目的,但是从底层方法和结果形式上,两者都是有较大区别的,故在此特地说明。原创 2023-11-08 00:26:47 · 1969 阅读 · 0 评论 -
【滤波专题-第7篇】“类EMD”算法分解后要怎样使用(3)——EMD降噪方法及MATLAB代码实现
使用EMD分解(以及其他“类EMD”分解方法,以下为了简便统称EMD)做信号降噪,是EMD的一个比较重要的应用方向。EMD可以将复杂的信号分解为一系列的固有模态函数(IMFs),每一个IMF都包含了信号的一部分频率信息。在信号降噪的过程中,如何选择和筛选IMFs是关键步骤之一。在本文中,我将介绍EMD降噪的基本步骤以及几种常见的IMFs筛选策略。原创 2023-05-17 22:15:55 · 5809 阅读 · 1 评论 -
【数据降维-第4篇】多维尺度变换(MDS)快速理解,及MATLAB实现
这篇是继和三种降维方法后的第4篇。在大数据时代,我们不断面临高维度数据的挑战。为了更好地理解这些数据,MDS算法应运而生。本文将详细介绍MDS算法的原理、步骤及其应用场景,帮助你深入了解这个强大的降维工具。原创 2023-04-05 12:39:03 · 3386 阅读 · 2 评论 -
【数据降维-第3篇】t分布-随机邻近嵌入(t-SNE)快速理解,及MATLAB实现
这篇是继和两种降维方法后的第三篇。当我们处理高维数据时,很难直观地理解和发现数据中的结构和关联。t-SNE是一种强大的降维技术,能够揭示高维数据背后的秘密。本文将主要介绍t-SNE的原理和应用。原创 2023-03-27 23:46:29 · 3445 阅读 · 1 评论 -
【数据降维-第2篇】核主成分分析(KPCA)快速理解,及MATLAB实现
本文介绍了KPCA(Kernel Principal Component Analysis)的基本概念和应用。与PCA相比,KPCA使用核函数对数据进行映射,从而处理非线性问题,并能够更好地构造复杂的非线性分类器。本文通过两个例子,介绍了KPCA在图像分类和异常检测中的应用。本文还解释了KPCA和PCA在参数设置上的不同之处,帮助读者更好地理解和应用KPCA算法。原创 2023-03-13 00:05:43 · 12567 阅读 · 5 评论 -
【数据降维-第1篇】主成分分析(PCA)快速理解,及MATLAB实现
据降维是机器学习领域经常使用到的数据处理方法,所以在本专栏在正式开始深度学习专题之前,先介绍几种常用的降维方法(PCA、KPCA、t-SNE、MDS等)和MATLAB实现。原创 2023-03-03 00:17:13 · 4198 阅读 · 0 评论 -
如何优雅地导出MATLAB数据——一行代码实现表格数据写入文件
将MATLAB计算出的数据进行导出和存储,也是在MATLAB编程中经常用到的功能之一,在MATLAB中有几个常用的方法,比如writetable、xlswrite、writematrix、writecell等,综合来看writetable功能比较全面,所以这里准备采用writetable方法进行实现。而且在很多数据处理过程中,我们得到的是一个二维矩阵,如果再像上述代码中那样把每一列都拆分出来单独赋值,是很累赘的一种做法。原创 2023-02-05 20:30:34 · 2012 阅读 · 0 评论 -
【Python】这篇文章能让你明白经验模态分解(EMD)——EMD在python中的实现方法
暂时打断一下滤波专题,插播一条EMD在python中实现方法的文章。本篇是的姊妹篇,也就是要在python中实现EMD分解并画图。原创 2022-11-09 22:53:56 · 11737 阅读 · 5 评论 -
【滤波专题-第5篇】FIR、IIR滤波器设计及MATLAB实现
之前的两篇文章分别介绍了和的基础理论,这一篇我们将介绍其在MATLAB中的具体实现方法。原创 2022-10-28 00:24:19 · 6369 阅读 · 2 评论 -
【滤波专题-第4篇】滤波器滤波效果的评价指标(信噪比SNR、均方误差MSE、波形相似参数NCC)
之前两篇文章讲了滤波算法的两大最基本理论和。本篇将讲一下滤波效果的评价指标与用法。评价指标主要用于对滤波效果的量化评价,在论文里经常会用到。原创 2022-10-13 11:42:30 · 8097 阅读 · 7 评论 -
【滤波专题-第3篇】IIR无限冲激响应和FIR有限冲激响应数字滤波器有什么区别?
那么问题来了,IIR和FIR数字滤波器有什么区别?原创 2022-10-13 11:43:59 · 1385 阅读 · 0 评论 -
【滤波专题-第2篇】数字滤波器15分钟入门——IIR无限冲激响应滤波讲解
在上一篇文章中我们讲了FIR有限冲激响应的概念,今天就轮到无限冲激响应IIR了。原创 2022-10-09 23:56:24 · 1694 阅读 · 0 评论 -
【滤波专题-第1篇】数字滤波器快速入门——FIR有限冲激响应滤波讲解
今天开始,本专栏将开通一个关于滤波的新专题。原创 2022-09-16 23:35:55 · 13256 阅读 · 15 评论 -
这篇文章能让你明白卷积
形象图解卷积的含义原创 2022-06-10 00:06:06 · 2398 阅读 · 3 评论 -
【熵与特征提取】从近似熵,到样本熵,到模糊熵,再到排列熵,究竟实现了什么?(第四篇)——“排列熵”及其MATLAB实现
今天讲排列熵,之前用了三篇文章分别讲述了近似熵、样本熵和模糊熵:Mr.看海:【熵与特征提取】从近似熵,到样本熵,到模糊熵,再到排列熵,究竟实现了什么?(第一篇)——“近似熵”及其MATLAB实现原创 2022-05-28 14:17:21 · 4427 阅读 · 1 评论 -
【熵与特征提取】从近似熵,到样本熵,到模糊熵,再到排列熵,究竟实现了什么?(第三篇)——“模糊熵”及其MATLAB实现
之前两篇文章分别介绍了近似熵和样本熵:Mr.看海:【熵与特征提取】从近似熵,到样本熵,到模糊熵,再到排列熵,究竟实现了什么?(第一篇)——“近似熵”及其MATLAB实现Mr.看海:【熵与特征提取】从近似熵,到样本熵,到模糊熵,再到排列熵,究竟实现了什么?(第二篇)——“样本熵”及其MATLAB实现近似熵和样本熵都是衡量时间序列的复杂性的方法,但是二者的定义中两个向量的相似性都是基于单位阶跃函数而定义的,单位阶跃函数具备二态分类器的性质,如果输入样本满足一定特性,则被判定属于一给定类,否则属于另一原创 2022-05-27 14:49:11 · 4176 阅读 · 0 评论 -
【熵与特征提取】从近似熵,到样本熵,到模糊熵,再到排列熵,究竟实现了什么?(第二篇)——“样本熵”及其MATLAB实现
上一篇文章中介绍了近似熵的概念和代码实现,同时也指出了近似熵的缺陷。样本熵是对近似熵算法的改进,也是当前运用比较广泛的一种熵特征值计算方法。 样本熵也是时间序列复杂度的 一种度量,样本熵越小,时间序列复杂度越小,自相似性越高。通常用于故障诊断和生物时间序列分析当中。一、样本熵样本熵(Sample Entropy)是Richman等人提出的一种与近似熵不同的不计数自身匹配的统计量[1]。样本熵是在近似熵基础上做的一种改进方法,所以在理论上存在继承关系。这里推荐同学们先读一下上一篇文章:【熵原创 2022-05-26 11:34:17 · 3558 阅读 · 0 评论 -
【熵与特征提取】从近似熵,到样本熵,到模糊熵,再到排列熵,究竟实现了什么?(第一篇)——近似熵及其MATLAB实现
在特征提取领域,近似熵、样本熵、排列熵和模糊熵是比较经常出现的概念。首先一句话总结一下:这几个熵值都是用来表征信号序列复杂程度的无量纲指标,熵值越大代表信号复杂度越大。信号复杂程度的表征在机械设备状态监测、故障诊断以及心率、血压信号检测中都十分有用;能够抵抗环境干扰的影响,广泛应用于特征提取的领域当中。从本篇开始,将依次介绍上述几个熵特征的概念和靠谱的MATLAB代码实现。今天从近似熵开始。一、近似熵近似熵(Approximate Entropy,ApEn)概念最早是由 Steven M原创 2022-05-26 10:05:57 · 6037 阅读 · 1 评论 -
“类EMD”算法分解后要怎样使用(2)——高频、低频、趋势项分量判别与重构,及MATLAB代码实现
之前我们有了十几篇文章讲述了EMD算法的基础理论、IMF的含义、EMD的MATLAB实现方法,EEMD、CEEMD、CEEMDAN、VMD、ICEEMDAN、LMD、EWT、SWT的理论及代码实现,还讲到了HHT算法理论及其代码实现。上一篇介绍了IMF分量的方差贡献率、平均周期、相关系数,今天这篇讲一下也很常用和好用的IMF处理方法。一、关于IMF的重构有很多同学问IMF的重构要怎么做,信号重构确实是EMD方法后处理的重要方法。重构通常面临着两个问题:(1)重构这个操作要怎样实现?(2)原创 2022-03-21 21:45:20 · 10486 阅读 · 1 评论 -
“类EMD”算法分解后要怎样使用(1)——内涵模态分量IMF的方差贡献率、平均周期、相关系数的计算及MATLAB代码实现
之前我们有了十几篇文章讲述了EMD算法的基础理论、IMF的含义、EMD的MATLAB实现方法,EEMD、CEEMD、CEEMDAN、VMD、ICEEMDAN、LMD、EWT的理论及代码实现,还讲到了HHT算法理论及其代码实现。下面我们将正式进入下一个环节:分解完成之后要怎样处理?今天介绍几个指标,可以作为辅助筛选分量或开展分析的依据 。一、方差贡献率(方差比)方差贡献率即IMF方差与原序列方差的比值。在一些金融分析论文中,会使用方差贡献率描述各个IMF分量对原序列波动的贡献率,以表征不同周期原创 2022-03-21 21:12:15 · 11762 阅读 · 4 评论 -
如何使用优雅地处理时间数据——使用MATLAB以日期为横坐标画图
我们在处理某些数据时是带有时间轴的,比如像年降水量、乘客流量,在画图的时候会希望以年份、月份或者日期作为横坐标,这个时候要怎么处理呢?首先是导入数据,这里先略过不提,后边专篇介绍。数据导入之后可能得到的是cell类型:双击变量名称,可以看到每个元胞都是字符串形式的日期数据。处理起来很简单第一步,使用datenum函数将date变量转变为日期序列值datenn = datenum(date);第二步,调用plot画图,并使用datetick设置时间轴格式。plot(原创 2022-03-06 13:36:00 · 22456 阅读 · 8 评论 -
类EMD的“信号分解方法”及MATLAB实现(第七篇)——EWT
这是“类EMD”方法系列的第7篇,前几篇分别是EEMD、CEEMD、CEEMDAN、VMD、ICEEMDAN、LMD,想要看前几种方法的点击链接可以跳转。经验小波变换(empirical wavelet transform,EWT)是2013年由Gilles提出[1]。这个方法是EMD方法和小波变换的结合,综合了EMD的自适应性和小波方法理论完备、计算简单快捷等特点。1. EWT的概念经验小波变换的核心思想其实并不难理解。我们在做所谓的模态分解时,很多时候目的就是将不同频率段的信号单独提取出原创 2022-03-03 22:21:49 · 7960 阅读 · 5 评论 -
如何优雅地进行频谱分析—— 一行代码实现绘制MATLAB频谱、功率谱图
之前的文章里讲了关于信号频谱、能量谱的相关理论和MATLAB编程实现方法:Mr.看海:信号频域分析方法的理解(频谱、能量谱、功率谱、倒频谱、小波分析)Mr.看海:频域特征值提取的MATLAB代码实现(频谱、功率谱、倒频谱)不过对于刚刚开始进行这方面研究,或者对MATLAB不甚熟悉,抑或者不想花太多时间用在编程这件事上的同学,目前缺少一种足够便捷、高效、可靠的代码。所以笔者想做这样一件事:编写一个函数,同学们只需要导入自己要分析的数据,并按照自己的需求设置部分选项,调用一行代码就可以实现绘制频原创 2021-12-21 23:52:40 · 20948 阅读 · 3 评论 -
类EMD的“信号分解方法”及MATLAB实现(第六篇)——LMD
继续完善“类EMD”方法系列,本篇是继EEMD、CEEMD、CEEMDAN、VMD、ICEEMDAN后的第6篇,想要看前几种方法的点击链接可以跳转。LMD(local mean decomposition,局部均值分解)方法是2005年由Smith等人[1]提出的,本质上是根据信号的包络特征自适应地将一个非线性、非平稳信号按频率递减的顺序逐级分离。LMD的提出也是用来解决EMD分解的端点效应和模态混叠问题,最开始是用来处理脑电数据的。1. LMD的概念与EMD衍生的一系列方法不同,经过LMD分解原创 2021-12-19 23:48:21 · 4840 阅读 · 5 评论 -
类EMD的“信号分解方法”及MATLAB实现(第五篇)——ICEEMDAN
继续完善“类EMD”方法系列,本篇是继EEMD、CEEMD、CEEMDAN、VMD后的第5篇,想要看前几种方法的点击链接可以跳转。原创 2021-11-23 22:03:30 · 9219 阅读 · 9 评论 -
【熵与特征提取】基于“信息熵”的特征指标及其MATLAB代码实现(功率谱熵、奇异谱熵、能量熵)
《三体》中对监听员的日常工作有这样一段描述:...1379 号监听站已经存在了上千年,像这样的监听站,在三体世界中有⼏千个,它们全神贯注地聆听着宇宙间可能存在的智慧⽂明的信息...... 1379 号监听员最不愿意看的,就是显⽰器上缓缓移动的那条曲线,那是监听系统接收到的宇宙电波的波形,⽆意义的噪声......但今天,当监听员扫了一眼示波器后,发现有些异样。即使是专业人员,也很难仅凭肉眼看出波形是否携带信息,但监听员对宇宙噪声的波形太熟悉了,眼前移动的波形,似乎多了某种说不出来的东西原创 2021-11-06 13:35:39 · 20425 阅读 · 8 评论 -
频域特征指标及其MATLAB代码实现(重心频率、均方频率、均方根频率、频率方差、频率标准差)
以前我们梳理过常用的有量纲时域特征指标和无量纲时域特征指标,其实特征提取方法中,一些频谱特征指标也是十分有用的。下述频域特征指标是根据信号的功率谱求得的。在故障诊断或者其他应用场景下,可以与时域指标以及其他指标一同作为特征向量的一部分,丰富特征量种类,提升诊断正确率。1.理论介绍1.0.功率谱功率谱的相关介绍在之前讲到过:Mr.看海:信号频域分析方法的理解(频谱、能量谱、功率谱、倒频谱、小波分析)下述频域特征都是在功率谱基础上计算求得的,但是为什么不用频谱呢?个人认为是因为功率谱原创 2021-10-31 14:03:13 · 28340 阅读 · 12 评论 -
类EMD的“信号分解方法”及MATLAB实现(第四篇)——VMD
重头戏来了。在以往的应用经验里,VMD方法在众多模态分解方法中可以说是非常好的。从催更力度上看,这个方法也是格外受关注。笔者决定加快进度快一些写完这个方法,十月份了有些同学要开始做毕设,希望这篇文能帮上忙。1. VMD(变分模态分解)的概念VMD(Variational Mode Decomposition)即变分模态分解,与2014年由Dragomiretskiy[1]等人提出,虽然它也叫模态分解,但是和之前介绍过的EMD、EEMD、CEEMD、CEEMDAN这些模态分解方法在原理上有本质区别原创 2021-10-03 02:11:24 · 26583 阅读 · 8 评论 -
类EMD的“信号分解方法”及MATLAB实现(第三篇)——CEEMDAN
来帮忙填坑了。今天接着之前讲过的EEMD和CEEMD,来介绍一下“类EMD”分解方法的第三篇。1. CEEMDAN(自适应噪声完备集合经验模态分解)的概念CEEMDAN[1](Complete Ensemble Empirical Mode Decomposition with Adaptive Noise)的中文名称是自适应噪声完备集合经验模态分解,要注意这个方法并不是在CEEMD方法上改进而来的,而是从EMD的基础上加以改进,同时借用了EEMD方法中加入高斯噪声和通过多次叠加并平均以抵消噪声原创 2021-08-10 00:24:03 · 12456 阅读 · 5 评论 -
类EMD的“信号分解方法”及MATLAB实现(第二篇)——CEEMD
缩写为CEEMD的方法其实不止一种,包括互补集合经验模态分解方法[1](Complementary Ensemble Empirical Mode Decomposition,2010)和完全集合经验模态分解方法[2](Complete Ensemble Empirical Mode Decomposition,2011)。本文中所探讨的是上述第一种方法。1. CEEMD(互补集合经验模态分解)的概念上一篇我们介绍了EMD的一种最常见的衍生方法EEMD,这次要讲到的CEEMD是从EEMD方法进一步优原创 2021-02-01 00:03:48 · 16294 阅读 · 6 评论