hzfs字體:頻譜分析中的小插曲1——頻率分辨率-字體教程免费ppt模版下载-道格办公

頻譜分析中的小插曲1——頻率分辨率

提到分辨率,我們自然會想到圖像的分辨率。分辨率越高,顯示的圖像越清晰,細節越逼真。

圖1 不同分辨率圖像

在頻譜分析裡面,也有“分辨率-Resolution”的概念!

分辨率(resolution)是信號處理中的基本概念,它包括頻率分辨率時間分辨率

形像地說,頻率分辨率是通過一個頻域的窗函數來觀察頻譜時所看到的頻率的寬度;時間分辨率是通過一個時域的窗函數來觀察信號時所看到的時間的寬度。顯然,這樣的窗函數越窄,相應的分辨率就越好。

圖2 加菲貓透過窗“函數”

其實這樣的說法,並不形象!

所以這裡我們先不去談分辨率的概念,而是先看一個經典實例。

先看一個實例

存在一個時間信號x(t),其最高頻率為fc,不超過3Hz。

現在用fs=10Hz的採樣率,即Ts=0.1s對其抽樣。由抽樣定理可知,不應發生混疊問題。

設信號x(t)的持續時間為TT=25.6s。那麼抽樣點數為T/Ts=256,也即抽樣得到的x(n)的點數為256。

好了,上面的是一些基本條件。

現在信號x(t)由三個正弦組成,其頻率是f1=2Hz,f2=2.02Hz,f3=2.07Hz,即

xt=sin(2*π*f1*t)+sin(2*π*f2*t)+sin(2*π*f3*t);

畫出xt的波形圖為:

圖3 信號x(t)的波形,持續時間25.6s

x(t)由三個頻率f1\f2\f3組成,所以觀察其頻譜時,應該可以看到三個頻率分量。

現在我們對x(t)求DFT,得到其x(t)的頻譜如下:

圖4 信號x(t)的頻譜,N=256

由於x(n)有256個點,所以做N=256個點的DFT運算。

根據圖4,我們發現在f3=2.07Hz是有頻率分量的,但是已經無法分辨f1和f2頻率分量!

| 看起來f1和f2被“融合”在一起了 |

同時,在f1=2Hz,f2=2.02Hz有了“顯著”的峰值,2個頻率分量難道丟失了?

現在我們增大x(t)的持續時間T,使其等於102.4s。

圖5 信號x(t)的波形,持續時間102.4s

保持採樣率fs不變,那麼共有N=1024個點,其他參量保持變,此時再次計算信號x(t)的頻譜

圖6 信號x(t)的頻譜,N-1024

現在的波形符合我的預期了,在f1=2Hz,f2=2.02Hz,f3=2.07Hz處有顯著的“波峰”。


為什麼我們增大了信號x(t)的持續時間T,擴大了FFT點數N,頻譜圖更加精細,可以“分辨”出3個分量了呢?

今天的主題——分辨率

分辨率是信號處理課程中一個基本的概念,它包括頻率分辨率和時間分辨率,這裡我們重點來研究前者。

頻率分辨率可從兩個方面來定義:

  1. 某個算法(如譜分析方法、功率譜估計方法等)將原信號中兩個靠的很近的譜峰仍然能保持分開的能力,即物理分辨率;
  2. 在進行DFT時,頻率軸上所能得到的最小頻率間隔,即通常所說的計算分辨率。一般說的頻率分辨率是指物理分辨率。

首先,需要明確的是DTFT和DFT的關係。 DTFT是離散時間序列的傅里葉變換,把序列映射到連續歸一化頻率域;

DFT是離散時間序列的離散傅里葉變換,把序列映射成離散的頻率序列。

DTFT是具有物理意義的變換,DFT則是用於近似計算DTFT的工具,而FFT只是DFT的快速算法。

最終我們看到的DFT結果是由兩部分合成出來的,一部分是具有物理意義的信號的DTFT結果,另一部分是分析手段(加窗,補零等)所帶來的誤差信號。

物理分辨率是指兩個靠的很近的頻譜峰值能夠分辨的能力,可用F0來表示。一般來說,在時域抽樣率fs一定的情況下,信號長度T越長,即抽樣點N越多,則物理分辨率越高。有這樣的關係:

其中Ts是時域抽樣間隔。

需要注意的是,這個是指真正實際的信號長度,抽樣點數也是指這個長度上的抽樣點數,而不是補零以後的長度或抽樣點數。

| 也就是說物理分辨率F0只取決於時域信號的長度 |

計算分辨率是指對於一個點序列做點DFT,所得到的每兩根譜線間的距離,就是F0'

而這裡的不再是實際的點數,而是計算DFT時候的點,如果經過補零的話,將是補零以後的點數。

在MATLAB程序中,物理分辨率是實際的分辨率,可是我們看到的都是DFT之後的結果,也就是計算分辨率。

圖7 不同分辨率的頻譜

所以,當物理分辨率足夠高的時候,我們可以適當提高計算分辨率,這樣看不到的譜分量就能看到了。但是當時域信號長度不足時,物理分辨率低,即使再怎麼提高計算分辨率,也是無濟於事的。

再回到期初的實例

當信號x(t)的長度T確定為25.6s,且採樣頻率fs=10Hz時,此時物理分辨率以及固定,為

F0=1/T=fs/N=0.0391Hz

而信號x(t)有三個頻率分量,且f2-f1=0.02<F0,所以此時不能分辨出由f2產生的正弦分量;又由於f3-f1>F0,所以能分辨由f3產生的正弦分量。

根據上述的結論,物理分辨率只取決於時域信號的長度,所以擴大時間T為102.4s,採樣頻率不變,就是就增大了點數N=1024。

此時物理分辨率

F0=1/T=fs/N=0.0098Hz

此時可以分辨出f1,f2,f3三個頻率分量。

現在物理分辨率符合要求了,且和計算分辨率相等。

DFT/FFT參數選擇的步驟與方法:

若已知信號的最高頻率fc,為防止混疊,選定抽樣頻率fs滿足

fs≥2fc

再根據實際需要,選定頻率分辨率F0,一旦F0選定,就可以確定做DFT所需的點數N,即

N=fs/F0

我們希望F0越小越好,但F0越小,N越大,是計算量、存儲量也隨之增大。

而且我們希望N取2的整次冪,若N點數據已給定,且不能再增加,可用補零的辦法使N為2的整數冪。

fs和N確定以後,就可確定所需相應模擬信號x(t)的長度,即有

T=N/fs=NTs

圖8 信號x(t)的波形,持續時間102.4s,採樣點2048

前已指出,分辨率F0反比於T,而不是N,因此在給定T的情況下,靠減小Ts來增加N是不能提高分辨率的。

這是因為T=NTs為一常數,若把Ts減小m倍,N也增加m倍,這時

F0=mfs/mN=fs/N=1/NTs=1/T

即F0保持不變。

圖9 信號x(t)的波形,N=2048

我們在圖8中,增大採樣頻率fs,使得採樣點為2048個。

根據上述結論,頻譜分辨率不會發生變化。圖9可以明顯的看出,頻譜相對於圖6沒有變化。

結論

綜上所述,我們注意到:在Matlab中,使用fft函數進行頻譜分析,一定要搞清楚你所需要的頻譜分辨率,然後再選擇合適的時間持續時長與採樣率。否則,糊里糊塗的進行頻譜分析,得出的頻譜圖像可能錯過了很多信息。

歡迎點贊,在評論區留言交流。

更多精彩通信/信號處理內容,歡迎加入“班長通信學院”

文章為用戶上傳,僅供非商業瀏覽。發布者:Lomu,轉轉請註明出處: https://www.daogebangong.com/zh-Hant/articles/detail/Episode%201%20in%20Spectrum%20Analysis%20%20Frequency%20Resolution.html

(810)
打賞 支付宝扫一扫 支付宝扫一扫
single-end

相關推薦