資源描述:
《Hilbert變換及譜分析》由會員上傳分享,免費在線閱讀,更多相關內容在行業(yè)資料-天天文庫。
1、Hilbert變換及譜分析?(2012-03-2418:37:21)轉載▼標簽:?hilbert?希爾伯特變換?包絡分析分類:?學科知識Hilbert變換是一個很有用的變換,用它來做包絡分析更是一種有效的數(shù)據(jù)處理方法?,F(xiàn)用代碼測試其變換效果第一個程序效果如下%Hilbert變換測試clcclearallcloseallts=0.001;fs=1/ts;N=200;f=50;k=0:N-1;t=k*ts;%信號變換%結論:sin信號Hilbert變換后為cos信號y=sin(2*pi*f*t);yh=hilbert(y);????%matlab函數(shù)得到信號是合成的復信號yi=imag(
2、yh);??????%虛部為書上定義的Hilbert變換figuresubplot(211)plot(t,y)title('原始sin信號')subplot(212)plot(t,yi)title('Hilbert變換信號')%檢驗兩次Hilbert變換的結果(理論上為原信號的負值)%結論:兩次Hilbert變換的結果為原信號的負值yih=hilbert(yi);yii=imag(yih);max(y+yii)%信號與其Hilbert變換的正交性%結論:Hilbert變換后的信號與原信號正交sum(y.*yi)%譜分析%結論:Hilbert變換后合成的復信號的譜沒有大于奈氏頻率的頻譜
3、,即其譜為單邊的NFFT=2^nextpow2(N);f=fs*linspace(0,1,NFFT);Y=fft(y,NFFT)/N;YH=fft(yh,NFFT)/N;figuresubplot(211)plot(f,abs(Y))title('原信號的雙邊譜')xlabel('頻率f(Hz)')ylabel('
4、Y(f)
5、')subplot(212)plot(f,abs(YH))title('信號Hilbert變換后組成的復信號的雙邊譜')xlabel('頻率f(Hz)')ylabel('
6、YH(f)
7、')?第二個效果如下第一個包絡測試可以看到,此包絡分析得到的包絡信號頻率為20
8、Hz,包絡信號的波形為余弦信號的絕對值信號,這是因為計算包絡時是取絕對值得到的,從而使信號頻率加倍。解決方法是把包絡提升,遠離0,如下第二個包絡。第二個包絡測試可以看到Hilbert包絡分析可以有效提取包絡和調制信號頻率,和檢波有一樣的效果,而且更實用。第三個包絡測試這是嘗試一個任意形狀的包絡,可以看到除在邊緣處有誤差外,整體效果很好。?%包絡分析(高中心頻率的窄帶信號分析)%基于:兩個信號乘積的Hilbert變換取決于高頻信號的Hilbert變換clcclearallcloseallts=0.001;fs=1/ts;N=200;k=0:N-1;t=k*ts;%原始信號f1=10;f
9、2=70;%a=cos(2*pi*f1*t);???????%包絡1a=2+cos(2*pi*f1*t);?????%包絡2%a=1./(1+t.^2*50);???????%包絡3m=sin(2*pi*f2*t);?????????%調制信號y=a.*m;??%信號調制figuresubplot(241)plot(t,a)title('包絡')subplot(242)plot(t,m)title('調制信號')subplot(243)plot(t,y)title('調制結果')%包絡分析%結論:Hilbert變換可以有效提取包絡、高頻調制信號的頻率等yh=hilbert(y);aa
10、bs=abs(yh);?????????????????%包絡的絕對值aangle=unwrap(angle(yh));?????%包絡的相位af=diff(aangle)/2/pi;?????????%包絡的瞬時頻率,差分代替微分計算%NFFT=2^nextpow2(N);NFFT=2^nextpow2(1024*4);??????%改善柵欄效應f=fs*linspace(0,1,NFFT);YH=fft(yh,NFFT)/N;???????????%Hilbert變換復信號的頻譜A=fft(aabs,NFFT)/N;??????????%包絡的頻譜subplot(245)plot
11、(t,aabs,t,a,'.')title('包絡的絕對值')legend('包絡分析結果','真實包絡')subplot(246)plot(t,aangle)title('調制信號的相位')subplot(247)plot(t(1:end-1),af*fs)title('調制信號的瞬時頻率')subplot(244)plot(f,abs(YH))title('原始信號的Hilbert譜')xlabel('頻率f(Hz)')ylabel('
12、YH(f)
13、'