【MATLAB 】 CEEMD 信号分解+模糊熵(近似熵)算法
微信公众号由于改变了推送规则,为了每次新的推送可以在第一时间出现在您的订阅列表中,记得将本公众号设为星标或置顶哦~
有意向获取代码,请转文末观看代码获取方式~
1 CEEMD信号分解算法
CEEMD 分解又叫互补集合经验模态分解,英文全称为 Complementary Ensemble Empirical Mode Decomposition。
CEEMD是对EEMD的改进,它在EEMD的基础上引入了一个自适应的扩展方法,可以更好地解决EMD/EEMD中存在的模态混叠问题。CEEMD的主要步骤如下:
- 对原始信号进行若干次随机噪声扰动,得到多个噪声扰动数据集。
- 对每个噪声扰动数据集进行EMD分解,得到多个EMD分解集合。
- 对于每个EMD分解集合,通过一个自适应的扩展方法,将每个局部模态函数分配到它所属的固有模态函数上,消除模态混叠的影响。
- 将每个扩展后的 EMD 分解集合的对应分量进行平均,得到最终的 CEEMD 分解结果。 CEEMD 分解具有良好的局部性和自适应性,能够更准确地分解信号,同时避免了 EEMD 中的模态混叠问题。因此,CEEMD 在信号处理、图像处理和模式识别等领域也得到了广泛的应用。
要想在 MATLAB 中使用 EMD 分解首先要安装 EMD 分解的 MATLAB 工具包。
关于简短的代码视频教程均可关注B站、小红书、知乎同名账号(Lwcah)观看教程~
EMD 工具包的安装:在 MATLAB 打开 package_emd 文件夹,运行 install_emd. M 以及 index_emd. M 两个函数如下图所示即可完成工具包的安装。
MATLAB 信号分解第三期-CEEMD:
https://mbd.pub/o/bread/ZJWZmplv
信号分解全家桶详情请参见:
https://mbd.pub/o/author-aWWWnHBsYw==/work
2 模糊熵算法
模糊熵算法是一种用于衡量序列复杂度的方法。它基于模糊数学理论,计算一个随机变量的模糊熵。模糊熵的定义是:设X为一个取值范围为[0,1]的随机变量,它的概率密度函数为f(x),则模糊熵H(X)定义为:H(X) = -∫_0^1〖f(x)lnf(x)dx 〗 其中ln为自然对数。
模糊熵算法与近似熵和样本熵类似,模糊熵也用于衡量新模式产生的概率大小。较大的模糊熵表示新模式产生的概率越大,即序列复杂度越大。
在实际应用中,为了计算一个随机变量的模糊熵,需要先确定它的概率密度函数f(x)。当变量的概率密度函数已知时,可以通过上述公式来计算模糊熵。如果一个随机变量只有有限个取值,则可以使用频率分布来估计概率密度函数。
3 近似熵算法
近似熵算法是一种用于衡量序列复杂度的方法。它基于样本数据集中的近似概率分布,计算出近似熵。近似熵的定义是:设X为一个取值范围为[0,1]的随机变量,它的样本集合为{x1,x2,...,xn},则近似熵ApEn(X)定义为:
ApEn(X) = -sum_{i=1}^{m}(p(i|m)log_2 p(i|m))
其中,m是样本集合中的子序列数目,p(i|m)是长度为m的子序列中第i个序列出现的概率。
近似熵算法适用于样本数据集较小的情况,因为它只需要样本集合中的子序列数目和每个子序列的近似概率分布来计算近似熵。在计算过程中,可以根据需要调整子序列的长度m和样本集合的大小n,以获得更准确的结果。
4 代码获取
如下为简短的视频操作教程。
算法代码获取:
https://mbd.pub/o/bread/ZJyTlp9r
关于代码有任何疑问,可以一起探讨科研,写作,代码等诸多学术问题,我们一起进步~
1、感谢关注 Lwcah 的个人公众号,有关资源获取,请公众号后台发送推文末的关键词,自助获取。
2、若要添加个人微信号,请后台发送关键词:微信号。
3、若要进微信群:Lwcah 科研技巧群 3。请添加个人微信号后进群(大家沉浸式科研,广告勿扰),不定时更新科研技巧类推文。可以一起探讨科研,写作,文献,代码等诸多学术问题,我们一起进步。
记得关注公众号,并设为星标哦~谢谢啦~