在网上下载了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分量的数据 有办法吗