為了當(dāng)干貨,本文不浪費(fèi)篇幅闡述FFT的原理和算法,這些信息非常多,我們假定客戶們已經(jīng)知曉,有了一些基礎(chǔ)。不過(guò)說(shuō)實(shí)話,工程師并不一定需要懂原理和會(huì)算法,我們大概知道它的意思就行,畢竟會(huì)用才是最關(guān)鍵的。 我們先提煉出幾個(gè)重要的問(wèn)題點(diǎn),一般的工程師們只要了解這幾點(diǎn)就夠用了。 問(wèn)題1:我們可以用示波器看到某個(gè)信號(hào)的時(shí)域波形,為什么還要用FFT看這個(gè)信號(hào)的頻域波形? 答案是,現(xiàn)實(shí)中很多信號(hào)的波形看起來(lái)長(zhǎng)得很復(fù)雜,用數(shù)學(xué)描述它極其困難,甚至人直觀的描述它都做不到,那就更談不上分析它和處理它了。這時(shí)候,我們只能換一個(gè)思路和方法,在頻域上拆解它,就更容易分析處理了。 舉個(gè)例子:
圖片1.png (54.84 KB, 下載次數(shù): 70)
下載附件
2020-6-30 15:15 上傳
上面這張圖,左側(cè)是時(shí)域波形,右側(cè)是它的頻域FFT波形。從時(shí)域波形來(lái)看,很簡(jiǎn)單,就是一個(gè)幅值100,頻率3赫茲的正弦波。這種情況下,根本沒(méi)有必要做FFT變換看頻域波形。任何關(guān)于這個(gè)信號(hào)的描述和表達(dá)都很清晰明了,有明確而簡(jiǎn)單的數(shù)學(xué)公式來(lái)表示這個(gè)信號(hào),要對(duì)這個(gè)信號(hào)做任何分析和處理都有一大堆經(jīng)典公式和大量的經(jīng)驗(yàn)方法。 那么來(lái)看下面這個(gè)圖:
圖片2.png (29.59 KB, 下載次數(shù): 74)
下載附件
2020-6-30 15:15 上傳
現(xiàn)實(shí)中,你可能遇到的是這樣的一個(gè)信號(hào),這是它的時(shí)域波形,時(shí)域波形也就是時(shí)間領(lǐng)域波形的意思,就是橫坐標(biāo)是時(shí)間的推移,跟我們的現(xiàn)實(shí)直覺(jué)認(rèn)知相符合。那么對(duì)面這樣一個(gè)時(shí)域波形,誰(shuí)能描述清楚它的特征,用簡(jiǎn)單的數(shù)學(xué)公式近似表述它,怎么分析和處理它? 這時(shí)候就要用到FFT的頻域分析,經(jīng)過(guò)分析,我們可以知道,其實(shí)它就是三個(gè)正弦波疊加而成的:
圖片3.png (103.23 KB, 下載次數(shù): 78)
下載附件
2020-6-30 15:15 上傳
這樣我們就能簡(jiǎn)單準(zhǔn)確的表述,分析和處理這個(gè)信號(hào)。 再看一個(gè)類(lèi)似的例子:
圖片4.png (89.03 KB, 下載次數(shù): 65)
下載附件
2020-6-30 15:15 上傳
圖片5.png (26.63 KB, 下載次數(shù): 58)
下載附件
2020-6-30 15:15 上傳
問(wèn)題2:用FFT做頻譜分析具有普適性嗎?什么樣的信號(hào)才能用FFT分析? 答案是肯定的,工程上,我們可以對(duì)你采集顯示的任何波形進(jìn)行FFT分析。 通過(guò)上面的例子,可能有人會(huì)有疑問(wèn),雖然上面看到復(fù)雜的波形其實(shí)是由三個(gè)標(biāo)準(zhǔn)的正弦波疊加起來(lái)產(chǎn)生的,這是不是故意找的特例?現(xiàn)實(shí)中的波形大部分不是這樣由三個(gè)標(biāo)準(zhǔn)正弦波疊加出來(lái)的怎么辦呢? 是的,上面的例子的確是找的特例,雖然是特例,但是能很直觀的說(shuō)明問(wèn)題。那么現(xiàn)實(shí)中其他的隨機(jī)的復(fù)雜波形怎么辦?沒(méi)關(guān)系,FFT厲害的地方就在這里,理論上,任意波形都可以通過(guò)FFT拆解成一系列幅值頻率相位不同的標(biāo)準(zhǔn)正弦波疊加而成。
圖片6.png (40.19 KB, 下載次數(shù): 81)
下載附件
2020-6-30 15:15 上傳
這就類(lèi)似于一束白光,其實(shí)可以拆解成頻率不同的色光疊加而成的。時(shí)域信號(hào)就是那束白光,棱鏡就是FFT,拆解出來(lái)的不同顏色的光,就是頻域波形的不同頻率點(diǎn)上的譜線。
圖片7.png (115.93 KB, 下載次數(shù): 69)
下載附件
2020-6-30 15:15 上傳
我們用LOTO虛擬USB示波器的OSCA02為例,先測(cè)一個(gè)標(biāo)準(zhǔn)正弦波的FFT頻譜,將時(shí)域波形與它對(duì)應(yīng)的頻域波形對(duì)比看看。
圖片8.png (203.38 KB, 下載次數(shù): 65)
下載附件
2020-6-30 15:15 上傳
可以看出,一個(gè)標(biāo)準(zhǔn)的正弦波,它的FFT頻譜就是在對(duì)應(yīng)的頻率上的一個(gè)高度為正弦波幅值的豎線。 然后我們?cè)贉y(cè)一下一個(gè)方波信號(hào)對(duì)應(yīng)的FFT頻譜的波形:
圖片9.png (93.85 KB, 下載次數(shù): 67)
下載附件
2020-6-30 15:15 上傳
可以看出方波信號(hào)可以拆解成一系列正弦波的疊加,這些正弦波就是頻譜波形上的那些小豎線。頻率與方波頻率相同的正弦波分量我們一般稱為基波,頻率為3倍的正弦波分量稱為3次諧波,然后5次,7次諧波等等一直到無(wú)限。
圖片10.png (24.42 KB, 下載次數(shù): 56)
下載附件
2020-6-30 15:15 上傳
理論上,這個(gè)方波是由無(wú)限個(gè)正弦波分量疊加而成的。工程上,我們其實(shí)不需要去處理無(wú)限多個(gè)分量,因?yàn)檫@樣工作量太大且沒(méi)有必要,一般只是取前多少個(gè)分量進(jìn)行分析處理就可以近似達(dá)成目標(biāo)了。下圖所示,一個(gè)方波,取前多少個(gè)正弦波分量疊加以后變成的不同的方波。可以看到,取的分量數(shù)(n)越多越接近原始方波,其他現(xiàn)實(shí)波形的道理是一樣的
圖片11.png (261.9 KB, 下載次數(shù): 83)
下載附件
2020-6-30 15:15 上傳
關(guān)于LOTO示波器使用FFT功能的視頻演示如下: 問(wèn)題3:FFT頻譜分析有什么用? 典型的應(yīng)用場(chǎng)景有很多。 比如說(shuō),當(dāng)你的信號(hào)上被噪聲干擾了,你想去掉這個(gè)噪聲。在時(shí)域波形上看,只能看出是一個(gè)密集的上躥下跳的噪聲,完全看不出其他有助于解決掉噪聲的信息。這時(shí)候用FFT分析,可以得知噪聲分布的頻率范圍,可以針對(duì)一些主要的噪聲頻點(diǎn)進(jìn)行有針對(duì)性的濾波處理。 再比如,音頻應(yīng)用中,通過(guò)人耳朵很難客觀和標(biāo)準(zhǔn)化分辨出來(lái)一些音頻處理單元的頻率范圍。使用FFT對(duì)音頻處理單元的信號(hào)進(jìn)行掃頻和分析,可以定量的得出音頻響應(yīng)的頻譜范圍,從而快速確定音頻單元是否合格。 關(guān)于FFT使用時(shí)候的誤差與頻譜泄漏: 工程中最容易出現(xiàn)的FFT誤差,是由于參與FFT計(jì)算的采樣點(diǎn)數(shù)相對(duì)于這些采樣點(diǎn)數(shù)覆蓋的信號(hào)信息量太少了。舉個(gè)簡(jiǎn)化的例子:
圖片12.png (85.25 KB, 下載次數(shù): 66)
下載附件
2020-6-30 15:15 上傳
上圖中的假如一個(gè)正弦波(上方)被采集到,如果在做FFT分析的時(shí)候由于參與FFT點(diǎn)數(shù)的設(shè)置,可能只取了黃色區(qū)域的局部波形數(shù)據(jù)進(jìn)行FFT計(jì)算。那么在FFT算法看來(lái),它會(huì)認(rèn)為FFT針對(duì)的信號(hào)是黃色部分的周期性延宕,如圖中下方的波形所示。 顯而易見(jiàn),這樣進(jìn)行FFT計(jì)算得出的結(jié)果肯定是錯(cuò)誤的。而且可以推理,使用的FFT點(diǎn)數(shù)越少,錯(cuò)誤越嚴(yán)重。 我們實(shí)測(cè)一下來(lái)看: 還有一種情況是,上面提到的FFT取點(diǎn)數(shù)的時(shí)候,點(diǎn)數(shù)足夠大,但是并沒(méi)有取到剛好整周期上,稍微偏差一點(diǎn),這樣進(jìn)行FFT分析并不會(huì)產(chǎn)生錯(cuò)誤,但是會(huì)有些誤差,這些誤差正是由于這些小偏差引起的,這是難以避免的,專(zhuān)業(yè)術(shù)語(yǔ)叫做頻譜泄漏,如下圖所示。
圖片13.png (109.42 KB, 下載次數(shù): 54)
下載附件
2020-6-30 15:15 上傳
在頻譜泄漏在頻譜上的表現(xiàn)為在正確的主頻譜旁邊出現(xiàn)不該出現(xiàn)的短小的頻譜。 我們用USB虛擬示波器實(shí)測(cè)一下頻譜泄漏:
圖片14.png (789.96 KB, 下載次數(shù): 70)
下載附件
2020-6-30 15:15 上傳
上圖是實(shí)測(cè)的1K頻率的正弦波的時(shí)域波形和FFT幅頻曲線。理論上,FFT曲線應(yīng)該是在1K頻率分量上的一根豎線,如A點(diǎn)所示,但是實(shí)際FFT結(jié)果并不是理想的在A處的一根豎直線,而會(huì)在臨近的B點(diǎn)和C點(diǎn)還有一定的頻譜值。B和C點(diǎn)不陡降到0是頻率泄漏導(dǎo)致的。 解決頻譜泄漏的最常見(jiàn)的方法是加窗函數(shù): 我們一般默認(rèn)用的是矩形窗,不同的窗函數(shù)能不同程度的改善譜線的圓潤(rùn)程度。以上面的頻譜泄漏圖為例,由于突然截?cái)嘣斐芍芷谘油貢r(shí)兩個(gè)周期相鄰處出現(xiàn)了信號(hào)突變,這種突變,代表的是信號(hào)包含了高次諧波。加上合適的窗函數(shù),可以把這個(gè)突變變得圓滑一些,從而抑制高次諧波。 但是,我們也可以這樣想,頻譜泄漏圖中的下方信號(hào)就是真實(shí)信號(hào),那么,加上這樣的窗函數(shù)反而得到了錯(cuò)誤的結(jié)果。
圖片15.png (75.61 KB, 下載次數(shù): 71)
下載附件
2020-6-30 15:15 上傳
上圖為不同窗函數(shù)的圓潤(rùn)效果,坦白講,一般是不太用窗函數(shù)的,除非非常了解自己的應(yīng)用情況,使用窗函數(shù)的時(shí)候計(jì)算負(fù)擔(dān)比較重也是我不太常用它們的原因之一。
|