示波器波形參數測量和FFT分析



孫燈亮博客<示波器波形參數測量和FFT分析>        http://blog.sina.com.cn/s/blog_5d713e7a0100ka7o.html


FFT瞭解

FFT是離散傅立葉變換的快速算法,可以將一個信號變換到頻域。有些信號在時域上是很難看出什麼特徵的,但是如果變換到頻域之後,就很容易看出特徵了。這就是很多信號分析採用FFT變換的原因。另外,FFT可以將一個信號的頻譜提取出來,這在頻譜分析方面也是經常用的。

 現在圈圈就根據實際經驗來說說FFT結果的具體物理意義。一個模擬信號,經過ADC採樣之後,就變成了數字信號。採樣定理告訴我們,採樣頻率要大於信號頻率的兩倍採樣得到的數字信號,就可以做FFT變換了。N個採樣點,經過FFT之後,就可以得到N個點的FFT結果。爲了方便進行FFT運算,通常N取2的整數次方。

假設採樣頻率爲Fs,信號頻率F,採樣點數爲N。那麼FFT之後結果就是一個爲N點的複數。每一個點就對應着一個頻率點。這個點的模值,就是該頻率值下的幅度特性。具體跟原始信號的幅度有什麼關係呢?假設原始信號的峯值爲A,那麼FFT的結果的每個點(除了第一個點直流分量之外)的模值就是A的N/2倍。而第一個點就是直流分量,它的模值就是直流分量的N倍。而每個點的相位呢,就是在該頻率下的信號的相位。第一個點表示直流分量(即0Hz),而最後一個點N的再下一個點(實際上這個點是不存在的,這裏是假設的第N+1個點,也可以看做是將第一個點分做兩半分,另一半移到最後)則表示採樣頻率Fs,這中間被N-1個點平均分成N等份,每個點的頻率依次增加。例如某點n所表示的頻率爲:Fn=(n-1)*Fs/N。由上面的公式可以看出,Fn所能分辨到頻率爲爲Fs/N,如果採樣頻率Fs爲1024Hz,採樣點數爲1024點,則可以分辨到1Hz。1024Hz的採樣率採樣1024點,剛好是1秒,也就是說,採樣1秒時間的信號並做FFT,則結果可以分析到1Hz,如果採樣2秒時間的信號並做FFT,則結果可以分析到0.5Hz。如果要提高頻率分辨力,則必須增加採樣點數,也即採樣時間。頻率分辨率和採樣時間是倒數關係。

假設FFT之後某點n用複數a+bi表示,那麼這個複數的模就是An=根號a*a+b*b,相位就是Pn=atan2(b,a)。根據以上的結果,就可以計算出n點(n≠1,且n<=N/2)對應的信號的表達式爲:An/(N/2)*cos(2*pi*Fn*t+Pn),即2*An/N*cos(2*pi*Fn*t+Pn)。
對於n=1點的信號,是直流分量,幅度即爲A1/N。  由於FFT結果的對稱性,通常我們只使用前半部分的結果,即小於採樣頻率一半的結果。

總結:假設採樣頻率爲Fs,採樣點數爲N,做FFT之後,一點n(n從1開始)表示的頻率爲:Fn=(n-1)*Fs/N;該點的模值除以N/2就是對應該頻率下的信號的幅度(對於直流信號是除以N);該點的相位即是對應該頻率下的信號的相位。相位的計算可用函數atan2(b,a)計算。atan2(b,a)是求座標爲(a,b)點的角度值,範圍從-pi到pi。要精確到xHz,則需要採樣長度爲1/x秒的信號,並做FFT。要提高頻率分辨率,就需要增加採樣點數,這在一些實際的應用中是不現實的,需要在較短的時間內完成分析。解決這個問題的方法有頻率細分法,比較簡單的方法是採樣比較短時間的信號,然後在後面補充一定數量的0,使其長度達到需要的點數,再做FFT,這在一定程度上能夠提高頻率分辨力。


數字示波器的FFT分析功能

FFT是一項很強大的分析功能,在數字示波器中普遍存在,基於先進的FFT分析,設計人員可以準確瞭解信號中引入的干擾信號頻點,信號功率譜,信號頻率構成,濾波電路截頻特性等。爲了更好的理解示波器FFT,下面我們不妨先來簡單地回顧一下FFT中幾個重要的參數和關係表達式。

 

採樣率:示波器的採樣頻率,用Fs表示。爲了讓講解內容更易於理解,下面不妨就以1GS/S這個值代替Fs作爲示波器的採樣率用來描述相關問題;

 

FFT點數:示波器用於FFT變換的樣本數據個數,用N表示。假如示波器可執行4M點的實時FFT運算(以致遠電子ZDS2022示波器爲例)。顯然用4M點做FFT變換,勢必需要驚人的運算能力和運算效率;

 

頻率分辨率:用△f 表示示波器能分辨的最小頻率。假設頻率分辨率爲10Hz,則可分辨10Hz、20Hz、30Hz……等10Hz整數倍的頻率點,但不能分辨出15Hz、25Hz、37Hz等非整數倍的頻率點。

 

如果被測信號中存在15Hz這樣的信號,顯然經過FFT變換後,頻譜上不會出現15Hz這個頻率點,即無法分析出來。但該頻點的能量並不會消失,而是將泄露到與之相近的10Hz 和20Hz 頻點上,不僅造成15Hz的信號分辨不出來,更是連10Hz和20Hz頻點的幅值也變得有錯誤,因爲15Hz頻點的能量泄露到這兩個頻點上去了。因此唯有進一步提高FFT的頻率分辨率,比如,提高到5Hz或1Hz或更高(△f值越小越好),才能準確分辨信號頻率成分。在採樣率一定時,若想提高頻率分辨率,則只能通過增加FFT點數來實現,但有個前提,那就是示波器必須具備足夠強的運算能力和足夠大的存儲深度,且兩者缺一不可。當然,還有另一種方法去提高頻率分辨率,那就是降低信號採樣率,但勢必會導致無法分析高頻信號,同時也面臨一個現實的問題,幾乎所有的示波器都是無法手動設置示波器的採樣頻率。

 

採樣時間:在採樣率Fs下,採集N個點所需要的時間,用T表示,顯然T=N / Fs。注意該採樣時間對應於FFT變換所用的N個點,而非整個示波器的捕獲時間。而示波器捕獲時間對應於整個存儲深度,當做FFT變換時,並不一定需要使用全部的存儲深度,因此兩者不等價。

 

事實上,上述的參數構成了一個重要關係式,將貫穿整個關於FFT的闡述之中。

 

△f = Fs / N (1)

 

頻率分辨率等於採樣率除以FFT點數。將上述公式稍作變換:

 

△f = Fs / N =1 / (N / Fs) = 1 / T (2)

 

即頻率分辨率等於採樣時間的倒數。實際上公式(1)和(2)是等價的,只是從不同的角度來說明問題而已。

 

爲什麼示波器必須做到4M個點的實時FFT呢?常見的一些示波器,FFT最大隻支持8K個點,甚至有些示波器只有1K個點。根據上面的關係表達式可以看出,在1GS/S採樣率下,最高頻率分辨率只有

 

Fs/N=1GS/S/ 8K點 = 125KHz

 

也就意味着,如果被測信號不是125K的整數倍,則根本無法判斷信號頻譜。真實世界又能有多少個被測信號正好是125KHz的整數倍呢? 因此這種示波器的FFT沒有任何實用價值。這也是爲什麼普遍的示波器宣傳資料中,幾乎見不到關於FFT性能宣傳的根本原因。

 

有少量的示波器廠商對FFT做了深度優化,使得其示波器最大可支持數百萬點的FFT甚至更多,但高性能FFT一般都在高端示波器上,下面以周立功的ZDS2022爲例來介紹(4M FFT點,售價9999元,性價比是很高的)。根據上述的關係表達式,在1GS/S採樣率下,FFT的頻率分辨率仍能達到1GS/S / 4M點 = 250Hz。顯然,在1GS/S採樣率下能夠達到這樣的頻率分辨率,也就是說只要被測信號頻率是250Hz的整數倍,ZDS2022就能準確無誤地分辨出來。即便被測信號不是250Hz的整數倍,即便存在頻譜泄露,但在250Hz這麼小的頻率分辨率下,也能較準確地分析出被測信號的大致頻點。

 

假設被測信號中包含100KHz和150KHz兩種頻率分量,以及其它的一些更高頻率的信號,對於普通示波器來說,由於最大隻支持8K點FFT,即頻率分辨率只有125KHz,顯然無法分辨出100KHz和150KHz頻點信號。爲了證明這一點,我們不妨做一些測試。爲了避免真實信號中本身的干擾影響到分析的準確性,則採用MATLAB構建一個純正的信號來從數學原理上進行分析。下面設計一個信號:

 

y =0.7*sin(2*pi*100000*t) + 1.2*sin(2*pi*150000*t)

 

這是一個包含100KHz和150KHz兩種頻率分量的信號,幅值分別爲0.7和1.2,此信號詳見下圖:


原始信號(包含100KHz和150KHz兩種頻率分量)

下面分別以1GS/S採樣率對該信號採樣,做8K點和4M點的FFT變換,直接給出結果,其相應的代碼詳見程序清單。

程序清單 MATLAB代碼

按理說FFT可以直接分析出100KHz和150KHz頻率信號,真的是這樣?如下圖所示爲8K點FFT結果,爲何沒有看到100KHz和150KHz這兩個信號呢?而屏幕上只有一個125KHz的信號,且幅值既不是0.7,也不是1.2,卻是毫不相干的1.464。因爲在8K點時,頻率分辨率只有Fs/N=1GS/S / 8K = 125KHz,導致無法分辨100KHz和150KHz頻點,又由於頻譜泄露,250KHz頻點處都能看到幅值爲0.2249,直流分量(0Hz)也有幅值0.2062,顯然給出的信號中並無這兩個分量。那麼8K點FFT給了用戶正確結果嗎?顯然沒有。不單是幅值不正確,就連那些最基本的頻率分量都是錯的,這樣的FFT有何意義?


下面我們再來看一下4M點FFT得出的結果將會是怎樣,詳見下圖。由於4M點FFT時頻率分辨率高達250Hz,因此可以準確無誤地分辨出100KHz和150KHz頻點信號,且無頻譜泄露,100KHz信號幅值爲0.7,150KHz信號幅值爲1.2,準確無誤地給出了最真實的結果,4M點相對8K點的FFT優勢就在於此,可準確有效地分析出信號頻譜成分,爲用戶提供真正有用的頻譜結果。


假設要經常分析電路中存在的噪聲,又遇上示波器頻率分辨率不夠好,則無論如何都不能準確定位出噪聲來源。若採用帶4M點FFT分析的示波器(例如ZDS2022示波器)進行分析則會截然不同,因爲有4M點FFT,即使在1GS/S採樣率下,頻率分辨率仍能達到250Hz,所以在FFT變換後能準確發現20KHz的噪聲。聯想到所用的DC-DC電源,其開關頻率正好是20KHz,於是迅速定位到了噪聲來源。

 

ZLG ZDS2022示波器-最強FFT分析功能

綜上所述,客戶遇到的問題就是我們的機會所在,當在200MHz帶寬示波器上實現了4M點的FFT運算時,就可以在1GS/s採樣率下保證FFT的頻率分辨率達到250Hz水平,讓示波器真正成爲信號分析利器。


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章