要計算FFT(快速傅立葉變換),只需聽聽。人耳自動且不由自主地執(zhí)行一項計算,這需要多年的數(shù)學(xué)教育才能完成。耳朵通過將聲音(隨時間傳播和穿過大氣的壓力波)轉(zhuǎn)換為頻譜來制定轉(zhuǎn)換,將聲音描述為一系列不同音高的體積。然后,大腦將這些信息轉(zhuǎn)化為感知的聲音。
類似的轉(zhuǎn)換可以在相同的聲波或幾乎任何其他隨時間變化的波動信號上使用數(shù)學(xué)方法完成。傅里葉變換是用于進行此轉(zhuǎn)換的數(shù)學(xué)工具。簡單地說,傅里葉變換將時域中的波形數(shù)據(jù)轉(zhuǎn)換為頻域。傅里葉變換通過將原始基于時間的波形分解為一系列正弦項來實現(xiàn)這一點,每個項都有獨特的幅度、頻率和相位。實際上,這個過程將時域中難以用數(shù)學(xué)描述的波形轉(zhuǎn)換為一系列更易于管理的正弦函數(shù),當(dāng)它們加在一起時,可以精確地再現(xiàn)原始波形。繪制每個正弦項的幅度與其頻率的關(guān)系圖可以創(chuàng)建一個功率譜,這是頻域中原始波形的響應(yīng)。圖1說明了這種時域轉(zhuǎn)換概念。
傅里葉變換已成為不同科學(xué)領(lǐng)域的強大分析工具。在某些情況下,傅里葉變換可以提供一種求解描述對電、熱或光的動態(tài)響應(yīng)的笨拙方程的方法。在其他情況下,它可以識別對波動信號的常規(guī)貢獻,從而有助于理解天文學(xué),醫(yī)學(xué)和化學(xué)中的觀測結(jié)果。也許是因為它的有用性,傅里葉變換已被改編用于個人計算機。已經(jīng)開發(fā)出算法,將個人計算機及其評估大量數(shù)字的能力與傅里葉變換聯(lián)系起來,為頻域中波形數(shù)據(jù)的表示提供基于個人計算機的解決方案。但是您應(yīng)該在傅里葉分析軟件中尋找什么?是什么讓一個軟件包在功能、靈活性和準(zhǔn)確性方面優(yōu)于另一個軟件包?本應(yīng)用筆記將介紹并解釋此類軟件包的一些元素,試圖消除圍繞這個強大分析工具的神秘面紗。
圖 1 — 圖示傅里葉變換
DATAQ Instruments的WinDaq波形瀏覽器(WWB)回放軟件包含一個傅里葉變換算法,該算法是本應(yīng)用筆記的模型,包括本文討論的傅里葉變換的所有元素。本說明中介紹的所有圖形和概念也派生自 WWB 傅里葉變換實用程序。
變形三重奏
在計算機出現(xiàn)之前,傅里葉變換的數(shù)值計算是一項非常勞動密集型的任務(wù),因為如此大量的算術(shù)必須用紙和鉛筆進行。隨著計算機和程序的開發(fā),這些計算變得更加實用,以實現(xiàn)傅里葉分析的新方法。其中一種方法是由James W. Cooley和John W.Tukey 1于1965年開發(fā)的,他們的工作導(dǎo)致了一種稱為快速傅里葉變換的程序的開發(fā)??焖俑道锶~變換 (FFT) 是一種生成傅里葉變換的計算效率高的方法。FFT的主要優(yōu)點是速度,它通過減少分析波形所需的計算次數(shù)來實現(xiàn)速度。與FFT相關(guān)的缺點是可以轉(zhuǎn)換的波形數(shù)據(jù)范圍有限,并且需要對波形應(yīng)用窗口加權(quán)函數(shù)(待定義)以補償頻譜泄漏(也有待定義)。
FFT的替代方案是離散傅里葉變換(DFT)。DFT 允許您精確定義計算轉(zhuǎn)換的范圍,從而消除了窗口的需要。不利的一面是,DFT的計算速度比FFT慢。
從時域到頻域的轉(zhuǎn)換是可逆的。一旦功率譜由前面提到的兩個變換之一顯示,就可以通過計算傅里葉逆變換(IFT)將原始信號重建為時間的函數(shù)。這些變換中的每一個都將在以下段落中單獨討論,以填補缺失的背景,并為市場上各種傅里葉分析軟件包之間的比較提供標(biāo)準(zhǔn)。
使用 FFT 生成功率譜
FFT只是DFT的更快實現(xiàn)。FFT 算法將 n 點傅里葉變換減少到大約
(不適用) 日志2(n)
復(fù)雜的乘法。例如,直接計算,1,024(即210)數(shù)據(jù)點的DFT將需要
n 2= 1,024 × 1,024 = 220= 1,048,576
乘法。FFT 算法將其減少到大約
(n/2) log2(n) = 512 × 10 = 5,120
乘法,提高 200 倍。
但速度的提高是以犧牲多功能性為代價的。FFT函數(shù)自動對要評估的時間序列施加一些限制,以產(chǎn)生有意義、準(zhǔn)確的頻率響應(yīng)。由于 FFT 函數(shù)根據(jù)定義使用以 2 為底的對數(shù),因此它要求要評估的時間序列的范圍或長度包含精確等于 2 次方到 n 次方數(shù)的數(shù)據(jù)點總數(shù)(例如,512、1024、2048 等)。因此,使用 FFT,您只能評估包含 512 個點、1024 個點或 2048 個點等的固定長度波形。例如,如果時間序列包含 1096 個數(shù)據(jù)點,則使用 FFT 一次只能評估其中的 1024 個數(shù)據(jù)點,因為 1024 是小于 1096 的最高 2 次方 n 次方。
由于這種 2 次方到 n 次方的限制,出現(xiàn)了另一個問題。當(dāng)FFT評估波形時,波形的一部分被包圍為512點,或1024點,依此類推。這些邊界之一還在波形上建立一個起點或參考點,該起點或參考點在確定的間隔后重復(fù),從而定義波形的一個完整周期或周期。任意數(shù)量的波形周期,更重要的是,在這些邊界之間可以存在部分波形周期。這就是問題發(fā)展的地方。FFT函數(shù)還要求要評估的時間序列是相應(yīng)的周期函數(shù),或者換句話說,時間序列必須包含圖2a所示的整數(shù)個周期,以產(chǎn)生準(zhǔn)確的頻率響應(yīng)。顯然,波形包含的點數(shù)等于 2 的 n 次方數(shù)并以整數(shù)個周期結(jié)束的可能性充其量是微乎其微的,因此必須采取措施來確保頻域中的準(zhǔn)確表示。在我們研究確保頻域精度的方法之前,讓我們仔細(xì)看看全部/部分周期數(shù)困境。
如果在不包含圖2b所示整數(shù)周期的波形上執(zhí)行FFT,會發(fā)生什么情況?
圖 2— 波形連續(xù)性與不連續(xù)性的示例,避免了復(fù)雜的數(shù)學(xué)解釋。(a) 顯示最佳情況,百萬分之一的波形,其中 FFT 的范圍正好包含整數(shù)個周期,從波形平均值開始。該波形具有終點連續(xù)性,如(c)所示,這意味著得到的功率譜將是準(zhǔn)確的,不需要應(yīng)用窗口。更典型的遭遇如(b)所示,其中FFT的范圍不包含整數(shù)個周期。該波形端點的不連續(xù)性(d)意味著產(chǎn)生的功率譜將包含輸入中不存在的高頻分量,需要應(yīng)用一個窗口來衰減不連續(xù)性并提高精度。
將要評估的波形長度視為已展開的環(huán)。如果將未卷繞環(huán)的兩端重新連接在一起以再次形成一個環(huán),則由整數(shù)周期組成的波形將完美地連接在一起,如圖2c所示。然而,如圖2d所示,由分?jǐn)?shù)點數(shù)組成的波形不會完美地連接在一起,兩端之間沒有間隙或重疊。因此,F(xiàn)FT將使用端點誤差評估該波形,并生成包含代表端點失配的虛假頻率分量的功率譜。考慮圖3所示的光譜。該圖顯示了振幅和頻率相等的兩個正弦波的功率譜。然而,正確功率譜的峰值似乎有些“分散”。這種不準(zhǔn)確性是對不包含整數(shù)周期的波形執(zhí)行FFT的結(jié)果。正確功率譜的擴散或“泄漏”效應(yīng)是由于波形端點的不連續(xù)性人為產(chǎn)生的能量。
幸運的是,有一種解決方案可以最大限度地減少這種泄漏效應(yīng)誤差并確保頻域精度。除了DFT(待定義)之外,唯一的解決方案是在執(zhí)行FFT之前將時間序列乘以窗口加權(quán)函數(shù)。大多數(shù)窗口加權(quán)函數(shù)(通常稱為“窗口”)通過將窗口兩端的信號逐漸變細(xì)至零來衰減不連續(xù)性,如圖5d所示。但是,如果您的波形在窗口的末端出現(xiàn)重要信息,它將被錐形破壞。在這種情況下,必須尋求窗口以外的解決方案。通過窗口方法,F(xiàn)FT處理的周期性錯誤信號將在端點處平滑過渡,從而產(chǎn)生更準(zhǔn)確的功率譜表示。存在許多窗口。每個窗口都有不同的特性,使一個窗口在分離頻率上彼此靠近的頻譜分量,或隔離一個比另一個小得多的頻譜分量,或任何任務(wù)方面比其他窗口更好。一些流行的窗戶(以其發(fā)明者的名字命名)是漢明,巴特利特,漢寧和布萊克曼。漢明窗口提供熟悉的鐘形加權(quán)功能,但不會使窗口邊緣的信號歸零。漢明窗口產(chǎn)生了非常好的光譜峰值,但只能減少公平的光譜泄漏。Bartlett窗口提供三角形加權(quán)功能,使窗口邊緣的信號歸零。該窗口產(chǎn)生良好、尖銳的光譜峰值,并且還擅長減少光譜泄漏。漢寧窗口提供了一個類似的鐘形窗口(如圖5d所示,與漢寧窗口的形狀非常近似),這也使窗口邊緣的信號為零。漢寧窗口產(chǎn)生了良好的光譜峰值清晰度(與巴特利特窗口一樣好),但漢寧提供了非常好的光譜泄漏減少(優(yōu)于巴特利特)。布萊克曼窗口提供類似于漢寧的加權(quán)功能,但形狀更窄。由于形狀較窄,Blackman窗口在減少光譜泄漏方面效果最好,但權(quán)衡只是公平的光譜峰值清晰度。如圖4所示,窗口函數(shù)的選擇是一門藝術(shù)。這取決于您操縱各種窗口約束之間的權(quán)衡的技能,以及您希望從功率譜或其逆中得到什么。顯然,提供多個窗口選擇的傅里葉分析軟件包對于消除FFT固有的頻譜泄漏失真是可取的。
簡而言之,F(xiàn)FT是一種計算快速的方法,可以根據(jù)波形的2到n次方數(shù)據(jù)點部分生成功率譜。這意味著在功率譜中繪制的點數(shù)不一定像最初預(yù)期的那么多。FFT還使用一個窗口來最小化由于端點不連續(xù)性引起的功率譜失真。然而,這個窗口可能會衰減出現(xiàn)在待評估時間序列邊緣的重要信息,并扭曲IFT操作(待定義)的結(jié)果,如圖5d所示。由于FFT固有的這些限制,您正在考慮的傅里葉分析軟件包是否提供FFT以外的解決方案?
另一種解決方案放棄了窗口化,轉(zhuǎn)而允許用戶精確定義計算傅里葉變換的范圍。這種方法取消了 2 到 n 次方的限制,稱為 DFT。
使用DFT生成功率譜
如果需要以比FFT允許的精度更高的精度變換部分波形,或者當(dāng)需要非窗口變換時,DFT生成就是答案。例如,如果您正在處理瞬態(tài)信號,則邊緣包含重要信息,這些信息在應(yīng)用窗口解決方案時會失真,這是不可接受的。在這種情況下,您別無選擇,只能使用 DFT。如前所述,DFT允許您調(diào)整定義要變換的波形范圍的端點,從而消除了對窗口的需要。這種方法允許評估包含任意數(shù)量點的波形,這比固定長度、2 次方到 n 次方 FFT 提供了更大的靈活性。然而,為了防止與非窗口FFT相同的泄漏效應(yīng),DFT必須在從波形平均電平交叉開始的整數(shù)周期內(nèi)產(chǎn)生。換句話說,必須調(diào)整定義將計算DFT的波形范圍的終點,以包含或定義整數(shù)個周期,最好從波形與其平均值交叉的點開始或附近開始。
DFT比FFT具有更多的多功能性和精度。但是,多功能性和精度是以算法增加的計算時間和增加端點定位所花費的時間為代價的。例如,表1比較了使用DATAQ Instruments的WWB傅里葉變換實用程序在相同波形上生成FFT和DFT所需的計算時間差異。顯示的時間以秒為單位,是從沒有數(shù)學(xué)協(xié)處理器的基于 386 的 25 兆赫 PC 獲得的。由于 WWB 傅里葉變換算法使用整數(shù)算術(shù),因此數(shù)學(xué)協(xié)處理器對提高性能的作用很小,因此此軟件包不需要。某些軟件包要么需要數(shù)學(xué)協(xié)處理器才能運行,要么強烈建議使用數(shù)學(xué)協(xié)處理器以獲得最佳性能。請注意,DFT 計算時間僅比 FFT 慢大約四倍。這是因為 WWB 實用程序使用與 FFT 非常相似的計算技術(shù)來計算 DFT。結(jié)果是計算速度比DFT通常需要的標(biāo)準(zhǔn)n2乘法數(shù)快得多。
圖 3— 正弦波的頻譜在單個頻率處達到峰值,如上圖頂部所示,當(dāng)對包含整數(shù)周期的波形部分執(zhí)行 FFT 時。如果FFT是在小數(shù)個周期上進行的,頻譜會給出一個非常不同的圖像,如上圖底部所示 - 一個寬峰值導(dǎo)致頻率確定不良和幅度不準(zhǔn)確。這些波形是由廉價的函數(shù)發(fā)生器產(chǎn)生的,它解釋了頻譜中存在的噪聲。
圖 4— 兩個頻率接近但幅度差異很大的正弦波的傅里葉變換很好地說明了窗口選擇的重要性。(a) 顯示了最佳匹配端點變換,其中明確定義了構(gòu)成原始波形的兩個信號頻率,一個在 90 dB 時為 2.2 Hz,另一個在 46 dB 時為 10.9 Hz。更典型的是,(b)僅顯示端點不匹配的相同波形的變換。請注意,在這個光譜中甚至看不到第二個峰值。顯然需要一個窗口。其余變換說明了各種窗口在抑制頻譜泄漏和恢復(fù)丟失頻率分量方面取得的成功程度。每個窗口都應(yīng)用于原始波形,結(jié)果說明了峰值銳度和旁瓣衰減之間的權(quán)衡。(c) 顯示漢明窗口。請注意,此窗口永遠不會將信號歸零。(d) 顯示巴特利特窗口,(e) 顯示漢寧窗口,(f) 顯示布萊克曼窗口。對于這個光譜分離的例子,布萊克曼窗口最擅長將較弱的項作為明確定義的峰。
變換 類型點數(shù)
512102420484096819216384
FFT0.30.60.91.42.67.3
DFT1.32.03.35.612.6--
表 1 — 各種點變換的計算時間(以秒為單位)。應(yīng)該提到的是,DFT是根據(jù)一系列數(shù)據(jù)點計算的,該數(shù)據(jù)點比所示數(shù)字少一個。這樣做是為了確保軟件將生成DFT。如果它運行在 2 到 n 次方的數(shù)據(jù)點數(shù)(例如,1024 個),則軟件足夠“智能”,可以識別可以從此數(shù)量的數(shù)據(jù)點生成 FFT 或 DFT。由于DFT意味著更多不必要的計算,因此軟件將采用最少計算的路徑,從而產(chǎn)生FFT。WinDaq能夠使用 FFT 轉(zhuǎn)換最多 16,384 個數(shù)據(jù)點,使用 DFT 轉(zhuǎn)換 8,191 個數(shù)據(jù)點。
使用IFT生成時間序列
與其他雙邊變換(例如矩形到極坐標(biāo))一樣,傅里葉變換在兩個方向上都起作用。如果功率譜(作為頻率的函數(shù))要“向后運行”,則原始信號原則上將被重建為時間的函數(shù)。這被稱為傅里葉逆變換(IFT)。你可能會質(zhì)疑IFT的目的,如果它所做的只是讓你回到你開始的地方。IFT的美妙之處在于它能夠在頻域中編輯功率譜后讓您回到時域。此功能在功率譜濾波應(yīng)用中非常有用。例如,在許多情況下,需要檢查沒有任何“噪聲”的波形,以扭曲信號的真實性質(zhì)。這可以通過在執(zhí)行IFT之前對功率譜應(yīng)用高通、低通、帶通和陷波濾波器功能來完成。高通濾波器將去除功率譜上小于指定點的所有不需要的頻率分量,低通濾波器將去除所有大于指定點的不需要的頻率分量。帶通濾波器是高通和低通濾波器的組合,用于隔離功率譜上的目標(biāo)窄帶。陷波濾波器可去除指定點處不需要的頻率分量。圖5顯示了頻域中可能的功率譜編輯類型。濾波操作可以是傅里葉分析軟件包中的一項強大功能。
其他傅里葉分析軟件問題
任何傅里葉分析應(yīng)用的需求都可以通過基于圖形的軟件包得到最好的滿足,該軟件包允許快速功率譜編輯。除了基本的FFT、DFT和IFT操作外,傅里葉分析軟件包的價值還可以通過附帶的額外“花里胡哨”進一步增強。
支持波形傅里葉分析的軟件包應(yīng)該能夠以工程單位或相對幅度(分貝)顯示頻率分量的強度,因為轉(zhuǎn)換功率譜幅度單位可能是一項耗時的任務(wù)。
另一個問題是功率譜分辨率。除了速度之外,分辨率是 512 點變換和 16,384 點變換之間的唯一區(qū)別。功率譜的范圍始終從直流電平 (0 Hz) 到被變換波形采樣率的一半,因此變換中的點數(shù)定義了功率譜分辨率(512 點傅里葉變換的功率譜中有 256 個點,1024 點的傅里葉變換的功率譜中有 512 個點, 等等)。例如,如果要在復(fù)雜波形的功率譜中看到單獨的 20 和 21 Hz 頻率分量,則 512 點傅里葉變換可能無法清楚地顯示這些單獨的分量,因為它的整個功率譜僅分為 256 個等間距點,并且所需頻率非常接近。但是,如果變換包含更多點,它將能夠?qū)⒏帱c用于定義緊密間隔的頻率分量。變換中的點數(shù)越多,頻率分辨率越好。
(a) 原始波形
(b) (a)的功率譜
(c) 濾波功率譜
(d) 旅游學(xué)院成績
編輯在頻域中進行。(a)所示的波形是包含不良的60 Hz噪聲的20 Hz信號。使用512點FFT生成(b)所示的功率譜。在頻域中,所有大于40 Hz轉(zhuǎn)折頻率的不良頻率分量(包括60 Hz噪聲)都被編輯掉,或者通過應(yīng)用低通濾波器(c)將其降低到零。然后從該濾波功率譜生成IFT,產(chǎn)生(d)所示的純20 Hz波形。注意波形的鐘形外觀。這是由于漢寧窗口的應(yīng)用,這是FFT固有的光譜泄漏困境的解決方案。另請注意漢寧窗口如何將窗口邊緣的信號衰減到零。如果應(yīng)用了DFT,這種衰減將被消除,20 Hz信號將從頭到尾以全振幅顯示。
一個相關(guān)的問題是功率譜放大。所考慮的軟件應(yīng)該能夠在一個屏幕寬度上顯示整個功率譜,而不管變換中的點數(shù)如何。這對于發(fā)現(xiàn)頻譜的整體趨勢很有用。通過放大倍率,該軟件還應(yīng)該允許您選擇功率譜圖的一部分,并使用多個放大倍率因子更仔細(xì)地檢查它。1024 × 768 的視頻標(biāo)準(zhǔn)提供 1024 個水平分辨率的圖像元素(像素)。如果執(zhí)行 512 點傅里葉變換,則變換生成的 256 個點非常適合 1024 像素寬的屏幕。1024 點轉(zhuǎn)換也是如此,其中 1024 像素寬的屏幕足以包含轉(zhuǎn)換生成的 512 點。執(zhí)行大于 2048 個點的變換時會出現(xiàn)此問題。假設(shè)執(zhí)行了 8192 點傅里葉變換。變換生成的 4096 個點比屏幕的 1024 像素寬度寬得多。為了在一個屏幕寬度上獲得整個功率譜,必須應(yīng)用壓縮系數(shù)(在本例中為4倍)。然后必須應(yīng)用放大倍率以檢查8192點變換全分辨率下的光譜。此外,當(dāng)應(yīng)用禁止在單個屏幕寬度上顯示整個功率譜的放大系數(shù)時,軟件應(yīng)允許您一次平移一個屏幕寬度的整個繪圖。
另一個需要考慮的功能是出口設(shè)施。是否可以使用您正在考慮的軟件將定義 FFT 圖的坐標(biāo)導(dǎo)出到 ASCII 文件?此功能允許您復(fù)制頻譜以用于其他程序。
您正在考慮的軟件是否允許您在同一波形上快速查看每個窗口的結(jié)果?在試驗不同類型的窗口以及每個窗口提供的結(jié)果時,這可能是一個方便且節(jié)省時間的功能。
最后,軟件包應(yīng)該能夠進行功率譜平滑。這最好由移動平均實用程序?qū)崿F(xiàn)。移動平均線是通過從頻譜中獲取兩個或多個數(shù)據(jù)點,將它們相加,將它們的總和除以添加的數(shù)據(jù)點總數(shù),將第一個數(shù)據(jù)點替換為剛剛計算的平均值,然后用第二個、第三個數(shù)據(jù)點重復(fù)這些步驟來實現(xiàn)的,依此類推,直到到達數(shù)據(jù)末尾。這種簡單的平均技術(shù)用于衰減功率譜圖中經(jīng)常遇到的隨機、小幅度頻率尖峰。
審核編輯:郭婷
-
計算機
+關(guān)注
關(guān)注
19文章
7494瀏覽量
87961 -
FFT
+關(guān)注
關(guān)注
15文章
434瀏覽量
59384
發(fā)布評論請先 登錄
相關(guān)推薦
評論