请问CEEMDAN方法怎么进行数据降噪的呢,感觉看到的只是对数据进行了分解?

在网上下载了CRRMDAN的代码进行了试验,发现只是对数据进行了分解如第一个图所示,我把分解的IMF数据相加得到的和原始数据一模一样,感觉并没有降噪啊,求问各位大神这是怎么回事呢?(而且这个问题标签怎么选啊。。。)没办法随便选了一个。。。。

load ('ecg.mat');

Nstd = 0.2;
NR = 500;
MaxIter = 5000;


[modes its]=ceemdan(ecg,0.2,500,5000);
t=1:length(ecg);

[a b]=size(modes);

figure;
subplot(a+1,1,1);
plot(t,ecg);% the ECG signal is in the first row of the subplot
ylabel('ECG')
set(gca,'xtick',[])
axis tight;

for i=2:a
    subplot(a+1,1,i);
    plot(t,modes(i-1,:));
    ylabel (['IMF ' num2str(i-1)]);
    set(gca,'xtick',[])
    xlim([1 length(ecg)])
end;

subplot(a+1,1,a+1)
plot(t,modes(a,:))
ylabel(['IMF ' num2str(a)])
xlim([1 length(ecg)])

figure;
boxplot(its);

本来就是分解啊,你可以再加个滤波降噪

大佬,我想得到各个IMF分量的数据 有办法吗