互信息识别emd中虚假分量
使用互信息去识别emd中的虚假分量,怎么出现互信息大于1?代码如下:
fs=500;
N=1000;
n=0:N-1;
t=n/fs;
x=sin(2*pi*3*t)+0.4*sin(2*pi*11*t)+0.9*sin(2*pi*25*t);
imf=emd(x);
=size(imf);
for i=1:m
subplot(m,1,i);
plot(t,imf(i,:));
end
%求各分量的相关系数与互信息
for i=1:m;
R=corrcoef(imf(i,:),x);
xg(i)=abs(R(1,2));
end
for i=1:m
mi(i,:)=mutinf(imf(i,:), x);
end
楼主那个mutinf函数有吗 麻烦发一下chaikai0805@163.com 这是互信息的 但是我运行的时候matlab找不到这个函数啊 我也在学习互信息··有没有高手给讲讲 应该把所有的IMF分量和原信号进行归一化处理,这样各个IMF分量和原信号的相关系数最大为1 % 选择本征模分量
R=size(Imf,1);
=size(Imf);
xCor=[];
norm_Sig=(Sig-mean(Sig))/std(Sig);
for r=1:R
norm_Imf=(Imf(r,:)-mean(Imf(r,:)))/std(Imf(r,:));
Coef=xcorr(norm_Sig,norm_Imf)/SigLen;
xCor=;
end
k=find(xCor>max(xCor)/2);
Imfs=zeros(length(k),SigLen);
for t=1:length(k)
Imfs(t,:)=Imf(k(t),:);
end 怎么看不懂呢 非常感谢,谢谢分享
页:
[1]