大家来帮我看看我这个程序的hilbert谱和瞬时频率
本帖最后由 longyi2003 于 2013-5-8 21:17 编辑这几个图的效果都好差啊,,各位大牛们,,能告诉我这是什么原因造成的吗?
程序如下:clear;
N=3200;
t=linspace(0,1,N);
delta=t(2)-t(1); % 采样周期
fs=1/delta; % 采样频率
x=50*sin(2*pi*50*t);
y=15*sin(2*pi*150*t);
y1=8*sin(2*pi*250*t);
y2=5*sin(2*pi*350*t);
y3=2*sin(2*pi*450*t);
y4=1.8*sin(2*pi*550*t);
z=x+y+y1+y2+y3+y4;
% plot(t,z);
imf=emd1(z);
cemd_visu(z,1:length(z),imf);
=hhspectrum(imf);
=toimage(B,f);
disp_hhs(im,[],fs);
colormap(flipud(gray)) %绘出Hilbert谱
%画出边际谱
%N=length(Cenf);%设置频率点数 %完全从理论公式出发。网格化后中心频率很重要,大家从连续数据变为离散的角度去思考,相信应该很容易理解
for k=1:size(im,1)
bjp(k)=sum(im(k,:))*1/fs;
end
figure;
plot(Cenf(1,:)*fs,bjp); % 作边际谱图 进行求取Hilbert谱时频率已经被抽样成具有一定窗长的离散频率,所以此时的频率轴已经是中心频率
xlabel('频率 / Hz');
ylabel('幅值');
s = size(imf);
k = s(1);
% figure
%imf分量幅度
for j=1:k
%imf1的Hilbert变换
xn(j,:)=hilbert(imf(j,:));
xr(j,:)=real(xn(j,:));
xi(j,:)=imag(xn(j,:));
A(j,:)=sqrt(xr(j,:).^2+xi(j,:).^2);
% subplot(k,1,j);plot(t,A(j,:));
% plot(t,xn(j,:));
% title(['imf',int2str(j)]);
% hold on;
end
% hold off;
%imf1的瞬时相位
% figure,
for j=1:k
P(j,:)=atan2(xi(j,:),xr(j,:));
% subplot(k,1,j);plot(t,P(j,:));
% title('imf瞬时相位')
end
%imf1瞬时频率
figure,
for j=1:k;
xh(j,:)=unwrap(P(j,:));
% fs=6400;
xhd(j,:)=fs*diff(xh(j,:))/(2*pi);
% subplot(k,1,j);
plot(t(1:N-1),xhd(j,:));title('imf瞬时频率')
hold on;
end
hold off 模态混叠,产生的原因:1、信号中混有间断信号会导致EMD模态混叠,间断(间歇)信号是指高频小幅值信号;2、噪声(1和2可以看成一种情况);3、几个频率共存的混合信号中,不能将某几个频率信号正确分离。显然你的问题是由第3种情况造成的。第3种情况要满足下述条件:
shuihai707 发表于 2013-5-8 17:08 static/image/common/back.gif
模态混叠,产生的原因:1、信号中混有间断信号会导致EMD模态混叠,间断(间歇)信号是指高频小幅值信号;2、 ...
那楼主的这个问题需要怎么解决呀? 照这么说,HHT变换不能用在谐波检测上了?
还有个问题,下图我对信号直接做FFT变换后的频谱图,效果比HHT的频谱好多了,,基本上没误差。
longyi2003 发表于 2013-5-8 21:12 static/image/common/back.gif
照这么说,HHT变换不能用在谐波检测上了?
还有个问题,下图我对信号直接做FFT变换后的频谱图,效果比HHT的 ...
说明你的信号是平稳信号,HHT主要是针对非平稳信号,如果是平稳信号就用FFT,效果还好,何必用HHT呢?不同方法具有不同的对象。 星星心 发表于 2013-5-8 20:36 static/image/common/back.gif
那楼主的这个问题需要怎么解决呀?
暂时没有很好的解决办法,Gring提出用掩膜信号办法,EMD程序里有提到这个问题,论坛也有这方面的帖子,你可以找找,具体效果怎么样,自己试试吧,对于这类频率比较接近的信号,EMD不能很好的解决。 longyi2003 发表于 2013-5-8 21:12 static/image/common/back.gif
照这么说,HHT变换不能用在谐波检测上了?
还有个问题,下图我对信号直接做FFT变换后的频谱图,效果比HHT的 ...
网上有些论文是用HHT用于谐波检测,你可以看看,他们是怎么解决的,我不做这方面,不是很了解。 shuihai707 发表于 2013-5-8 23:47 static/image/common/back.gif
暂时没有很好的解决办法,Gring提出用掩膜信号办法,EMD程序里有提到这个问题,论坛也有这方面的帖子,你 ...
能不能用频带滤波把信号的频率分成几段,然后对各段进行emd分解。 longyi2003 发表于 2013-5-10 14:21 static/image/common/back.gif
能不能用频带滤波把信号的频率分成几段,然后对各段进行emd分解。
试试吧,可能不行,分段越多,端点效应就越明显了,个人理解,可以尝试。 学习学习 学习学习
页:
[1]