【求助】瞬时频率和瞬时幅值
用法国人的那套EMD程序进行EMD分解后,求取瞬时频率和瞬时幅值。为什么瞬时频率会出现负值?程序如下所示:
clear;
fs=1000; %fs为采样频率;
N=1000; %采样点数
t=1/fs:1/fs:1;
y1=2*sin(60*pi*t);
y2=5*sin(200*pi*t);
x=y1+y2;
imf=emd(x);
len = size(imf,1);
for k = 1:len
amp(k,:) = abs(hilbert(imf(k,:)));%瞬时幅值
th = angle(hilbert(imf(k,:)));%Hilbert变换的相位
d(k,:) = diff(th)/(1/fs)/(2*pi);%求导,得到瞬时频率:f = (1/2*pi)*d(th)/dt
end 因为是求导得到的,如果相位不是递增的话 自然就会出现幅值了 EMD的一个固有缺陷就是会产生无法解释的负频率的 hi,因為你算瞬時頻率的時候使用的方法是hilbert所以才會出現負值, 老實說,這個問題,之前也相當困擾著我。
當時我是使用多點來差分的方式來解決diff後會出現負值的情形。
而最近,我看了
Huang, N. E., Z. Wu, S. R. Long, K. C. Arnold,X. Chen and K. Blank (2009), On instantaneous frequency, Advance in Adaptive Data Analysis . Vol.1, No.2. 177-229.
其實可以不用使用hilbert的方式就能求到瞬時頻率了。
回复 5 # shawnbon 的帖子
请教一下是什么方法啊,我这里下论文不方便啊。请赐教! 我这有一个是从那个中央大学数据中心下载的 还没来得急看呢http://rcada.ncu.edu.tw/AADA2009V1_2.htm 我现在也受到了该问题的影响,不知采用什么方法解决。。 我也想请教同样的问题。
页:
[1]