利用HHT變換分解信號以及求瞬時頻率等,但是為何不同IMF分量求出來的瞬時頻率是一樣的呢,搞不清楚。下面是matlab代碼求頻率的,高手看看是不是存在什么問題。
hx = hilbert(C);
xr=real(hx);xi=imag(hx);
sz=sqrt(xr.^2 + xi.^2);
sx=atan(xi./xr);
dt = diff(t);
dx = diff(sx);
sp = dx./dt;
figure
plot(t(1:N-1),sp)
title(['InstantFreq imf ' num2str(i)])
end
%計算HHT時頻譜和邊際譜
[A,infeq,tt] = hhspectrum(C,t,1,1);
[im,tt1,Cenf] = toimage(A,infeq,tt,length(tt));
disp_hhs(im,tt1) %二維圖顯示HHT時頻譜,E是求得的HHT譜
這里由兩種瞬時頻率,一種是根據(jù)HHT定義的根據(jù)相位時間導(dǎo)數(shù)求的(sp),還有下面的根據(jù)matlab內(nèi)部函數(shù)instfreq求的瞬時頻率(infeq)。sp有正有負(fù),infeq嚴(yán)格 在0-0.5之間。不知道哪種方法是合理的,本人不是學(xué)這專業(yè)的,最近用到這個工具,但是有些搞不懂,請高手指點。
另外,上面還有一個求解中心頻率的(Cenf),但是出來的結(jié)果是一個從0-0.5線性序列。而且出來只有一個序列,看EMD分解可看到有5個IMF分量?吹接形恼抡f,中心頻率就是每個IMF瞬時頻率的平均值,如果是這樣算的話倒是可以理解了。
下面三幅圖分別是EMD分解的結(jié)果,HHT頻譜圖,還有個邊際譜圖。雖然做了但是看不懂太深的東西。請大家?guī)兔Ψ治鲋更c。
![]()
marginal_sp.png
![]()
EMD.png
![]()
HHT_spectrum.png
[ Last edited by tony1230 on 2013-5-6 at 13:42 ] |