不确定是否完全正确,参考他人的博客,仅作为自己学习记录使用
function [modes its] = ICEEMDAN_analyse(x)
Nstd = 0.2
NR = 50
MaxIter = 5
SNRFlag = 6
输入参数及含义
- x:
- 待分解的信号数据
- Nstd = 0.2:
- 信噪比,作用为了抑制混叠效应;
- 噪声权重(范围:0-inf,一般选择0-1)。
- NR = 50:
- 噪声添加次数,进行50次的噪声添加;
- 一般选择50-100.
- MaxIter = 5:
- 对emd内部最大包络次数设定;
- 分解出分量的最大个数(假设ceemdan本来分解出10个分量,你将该值设置为5:那么最终就会获得5个分量。如果你将该值设置为20:最终还是会获得10个分量)
- 该值一般设置为inf或一个很大的数。
- 如果你要求CEEMDAN每次只获得一个分量,那么就可以将该参数设置为1。不过我们一般不会认为去阻止CEEMDAN的分解过程,所以将该参数设置为inf就行。
(该部分实验后有点小问题,可能解读不太准确,大家可以自行设置值进行实验)
- SNRFlag = 6:
- 当数值为1时,为ICEEMDAN分解;当数值为2时,为CEEMDAN分解。
输出参数
function [modes its] = ICEEMDAN_analyse(x)
modes:modes 为分解的IMF分量,排在前面的是相对高频的,频率依次降低,最后一个为残余剩量
its:its为内部包络迭代的次数,因此最大不会超过MaxIter(这里为5)