用希爾伯特黃變換HHT求時頻譜和邊際譜_第1頁
用希爾伯特黃變換HHT求時頻譜和邊際譜_第2頁
用希爾伯特黃變換HHT求時頻譜和邊際譜_第3頁
用希爾伯特黃變換HHT求時頻譜和邊際譜_第4頁
用希爾伯特黃變換HHT求時頻譜和邊際譜_第5頁
已閱讀5頁,還剩12頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

1、用希爾伯特黃變換(HHT )求時頻譜和邊際譜 1.什么是HHT?HHT就是先將信號進行經(jīng)驗模態(tài)分解(EMD分解),然后將分解后的每個IMF分量進行 Hilbert變換,得到信號的時頻屬性的一種時頻分析方法。2.EMD分解的步驟。EMD分解Cl)找出信號中所有局部極大值井用三次樣條函數(shù)連接成上包絡(luò);Cl)同理,利用三次樣條插值函數(shù)連接所有局部極小值構(gòu)成下包絡(luò);C2)如果咿足IMFC2)如果咿足IMF的條件,那么圖就是求得的第一個IMF分量;C3)否則棚作為原始信號進行Cl) C2)的步驟,直到第k次迭代后差值 成為一個IMF,記為:q (t)=E)Matlab論壇iLoveMEMD分解的流程圖如

2、下:Matlab論壇iLoveMatlab-cii3.實例演示。給定頻率分別為10Hz和35Hz的兩個正弦信號相疊加的復合信號,采樣頻率fs=2048Hz的 信號,表達式如下:y=5sin(2*pi*10t)+5*sin(2*pi*35t)為了對比,先用fft對求上述信號的幅頻和相頻曲線代碼:function fftfenxi clear;clc;N=2048;%fft默認計算的信號是從0開始的 t=linspace(1,2,N);deta=t(2)-t(1);1/detax=5*sin(2*pi*10*t)+5*sin(2*pi*35*t);% N1=256;N2=512;w1=0.2*2*

3、pi;w2=0.3*2*pi;w3=0.4*2*pi;%x=(t=-200&t-200+N1*deta&t-200+N2*deta&t=200).*sin(w3*t);y = x;m=0:N-1;f=1./(N*deta)*m;%可以查看課本就是這樣定義橫坐標頻率范圍的%下面計算的Y就是x(t)的傅里葉變換數(shù)值%Y=exp(i*4*pi*f).*fft(y)%將計算出來的頻譜乘以exp(i*4*pi*f)得到頻移后-2,2 之間的頻譜值Y=fft(y);z=sqrt(Y.*conj(Y);plot(f(1:100),z(1:100);title(幅頻曲線)xiangwei=angle(Y);f

4、igure(2)plot(f,xiangwei)title(相頻曲線)figure(3)plot(t,y,r)%axis(-2,2,0,1.2)title(原始信號)原始信號14糧曲巍eoffli11111Matlab論坷iLoveMMatlab論坷iLoveM用Hilbert變換直接求該信號的瞬時頻率代碼:clear;clc;clf;%假設(shè)待分析的函數(shù)是z=t”3 N=2048;%fft默認計算的信號是從0開始的 t=linspace(1,2,N);deta=t(2)-t(1);fs=1/deta;x=5*sin(2*pi*10*t)+5*sin(2*pi*35*t);z=x;hx=hilb

5、ert(z);xr=real(hx);xi=imag(hx);%計算瞬時振幅sz二sqrt(xr.”2+xi.”2);%計算瞬時相位sx=angle(hx);%計算瞬時頻率dt=diff(t);dx=diff(sx);sp二dx./dt;plot(t(1:N-1),sp)title(瞬時頻率)Matlab論壇iLoveM小結(jié):傅里葉變換不能得到瞬時頻率,即不能得到某個時刻的頻率值。Hilbert變換是求取 瞬時頻率的方法,但如果只用Hilbert變換求出來的瞬時頻率也不準確。(出現(xiàn)負頻,實際上 負頻沒有意義!)(3)用HHT求取信號的時頻譜與邊際譜代碼:function HHT clear;c

6、lc;clf;N=2048;%fft默認計算的信號是從0開始的t=linspace(1,2,N);deta=t(2)-t(1);fs=1/deta;x=5*sin(2*pi*10*t)+5*sin(2*pi*35*t);z=x;c=emd(z);%計算每個IMF分量及最后一個剩余分量residual與原始信號的相關(guān)性 m,n=size(c);for i=1:m;a=corrcoef(c(i,:),z);xg(i)=a(1,2);endxg;for i=1:m-1%計算各IMF的方差貢獻率%定義:方差為平方的均值減去均值的平方%均值的平方%imfp2二mean(c(i,:),2).”2%平方的均

7、值%imf2p=mean(c(i,:).”2,2)%各個IMF的方差mse(i)=mean(c(i,:).”2,2)-mean(c(i,:),2).”2;end;mmse=sum(mse);for i=1:m-1mse(i)=mean(c(i,:).”2,2)-mean(c(i,:),2).”2;%方差百分比,也就是方差貢獻率mseb(i)=mse(i)/mmse*100;%顯示各個IMF的方差和貢獻率end;%畫出每個IMF分量及最后一個剩余分量residual的圖形figure(1)for i=1:m-1disp(imf,int2str(i) ;disp(mse(i) mseb(i);en

8、d;subplot(m+1,1,1)plot(t,z)set(gca,fontname,times New Roman)set(gca,fontsize,14.0)ylabel(signal,Amplitude)for i=1:m-1subplot(m+1,1,i+1);set(gcf,color,w)plot(t,c(i,:),k)set(gca,fontname,times New Roman)set(gca,fontsize,14.0)ylabel(imf,int2str(i)endsubplot(m+1,1,m+1);set(gcf,color,w)plot(t,c(m,:),k)se

9、t(gca,fontname,times New Roman)set(gca,fontsize,14.0)ylabel(r,int2str(m-1)%畫出每個IMF分量及剩余分量residual的幅頻曲線figure(2)subplot(m+1,1,1)set(gcf,color,w)f,z=fftfenxi(t,z);plot(f,z,k)set(gca,fontname,times New Roman)set(gca,fontsize,14.0)ylabel(initial signal,int2str(m-1),Amplitude)for i=1:m-1subplot(m+1,1,i+1

10、);set(gcf,color,w)f,z=fftfenxi(t,c(i,:);plot(f,z,k)set(gca,fontname,times New Roman)set(gca,fontsize,14.0)ylabel(imf,int2str(i),Amplitude)endsubplot(m+1,1,m+1);set(gcf,color,w)f,z=fftfenxi(t,c(m,:);plot(f,z,k)set(gca,fontname,times New Roman)set(gca,fontsize,14.0)ylabel(r,int2str(m-1),Amplitude)hx=h

11、ilbert(z);xr=real(hx);xi=imag(hx);%計算瞬時振幅sz二sqrt(xr.”2+xi.”2);%計算瞬時相位sx=angle(hx);%計算瞬時頻率dt=diff(t);dx=diff(sx);sp二dx./dt;figure(6)plot(t(1:N-1),sp)title(瞬時頻率)%計算HHT時頻譜和邊際譜A,fa,tt=hhspectrum(c);E,tt1=toimage(A,fa,tt,length(tt);figure(3)disp_hhs(E,tt1) %二維圖顯示HHT時頻譜,E是求得的HHT譜pausefigure(4)for i=1:size

12、(c,1)faa=fa(i,:);FA,TT1=meshgrid(faa,tt1);%三維圖顯示 HHT 時頻圖surf(FA,TT1,E)title(HHT時頻譜三維顯示)hold onendhold offE=flipud(E);for k=1:size(E,1)bjp(k)=sum(E(k,:)*1/fs;endf=(1:N-2)/N*(fs/2);figure(5)plot(f,bjp);xlabel(頻率 / Hz);ylabel(信號幅值);title(信號邊際譜)要求邊際譜必須先對信號進行EMD分解function A,f,tt = hhspectrum(x,t,l,aff)er

13、ror(nargchk(1,4,nargin);if nargin 2t=1:size(x,2);endif nargin 31=1;endif nargin 4aff = 0;endif min(size(x) = 1if size(x,2) = 1 x = x;if nargin = 0error(inf doit etre 0)endM=max(max(im);im = log10(im/M+1e-300);inf=inf/10;imagesc(t,fliplr(1:size(im,1)/(2*size(im,1),im,inf,0);set(gca,YDir,normal)xlabel

14、(time)ylabel(normalized frequency)title(Hilbert-Huang spectrum)function f,z=fftfenxi(t,y)L=length(t);N=2nextpow2(L);%fft默認計算的信號是從0開始的t=linspace(t(1),t(L),N);deta=t(2)-t(1);m=0:N-1;f=1./(N*deta)*m;%下面計算的Y就是x(t)的傅里葉變換數(shù)值%Y=exp(i*4*pi*f).*fft(y)%將計算出來的頻譜乘以exp(i*4*pi*f)得到頻移后-2,2 之間的頻譜值Y=fft(y);z=sqrt(Y.*

15、conj(Y);vpnl vpnl 一-tlulvffluMIff11.11.21311.11.2131.4L51.61.71.51.92三Matlab犯壇iLoveM)5001000150020002500-1 -1-1 -1-1 -1-1 -J)5001000150020002500111l111)5001000150020002500-1 -1 -1 -)50010001500200025001 -1 -1 J)50010001500200025001 1 1 _L_)50010001500200025000000000000000000000000000000 005000505010

16、520104 2IIJIiLoveMHilbert Huang spectrum200400600800 1000 1200 1400 1600 1800 20WtimeAoll 當b03po)z=eeouMatlabHilbert Huang spectrum200400600800 1000 1200 1400 1600 1800 20WtimeAoll 當b03po)z=eeouiLoveM50WO150200250300頻率/由350400Matlab論壇iLoveM4.總結(jié)。邊際譜與傅里葉譜的比較:意義不同:邊際譜從統(tǒng)計意義上表征了整組數(shù)據(jù)每個頻率點的累積幅值分布,而傅里 葉頻譜的某一點頻率上的幅值表示在整個信號里有一個含有此頻率的三角函數(shù)組分。作用不同

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論