chinese直男口爆体育生外卖, 99久久er热在这里只有精品99, 又色又爽又黄18禁美女裸身无遮挡, gogogo高清免费观看日本电视,私密按摩师高清版在线,人妻视频毛茸茸,91论坛 兴趣闲谈,欧美 亚洲 精品 8区,国产精品久久久久精品免费

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

傅里葉變換補(bǔ)零到底有什么用,什么時(shí)候需要補(bǔ)零呢?

冬至子 ? 來源:老馬迷圖 ? 作者:彭真明 ? 2023-08-09 14:46 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

我們知道,快速傅里葉變換 (FFT) 是信號處理的重要數(shù)學(xué)工具。一般而言,n點(diǎn)信號的離散傅里葉變換 (DFT) 的變換結(jié)果(頻域)也是n個(gè)數(shù)據(jù)點(diǎn)。但在實(shí)際應(yīng)用中,對實(shí)際信號作FFT時(shí),常常涉及到變換前數(shù)據(jù)需要補(bǔ)零 (Zero padding) 的問題。

一些論壇里,曾看到某些專業(yè)人士從信息論的角度分析認(rèn)為:“Zero padding沒有增加時(shí)域信號的有效信息,因此,不會改變DFT/FFT的分辨率”。那么, 補(bǔ)零到底有什么用,什么時(shí)候需要補(bǔ)零呢? 對于一般的工程技術(shù)人員來說,基本就是調(diào)用現(xiàn)成代碼或模塊進(jìn)行計(jì)算,很少考慮這些問題。其實(shí),了解和搞清楚這個(gè)問題,對實(shí)際應(yīng)用還是很有幫助的。接下來,我們將從以下幾個(gè)方面來簡要闡述如何補(bǔ)零,以及它對頻譜分析結(jié)果的影響。

什么是補(bǔ)零 ( Zero Padding )?

簡單來說,補(bǔ)零 (Zero Padding) 就是對變換前的時(shí)域或空域信號的尾部添加若干個(gè)0,以增加數(shù)據(jù)長度。如圖1所示,為含有1.00MHz和1.05MHz兩個(gè)頻率成分合成的正弦波實(shí)信號。

圖片

(a)

圖片

(b)

圖1 時(shí)域信號的補(bǔ)零示意圖

圖1(a)中信號長度為1000個(gè)樣點(diǎn),采樣頻率為 fs =100MHz時(shí),信號的實(shí)際時(shí)長則為10us。在其尾部添加1000個(gè)0,即數(shù)據(jù)增加到了2000個(gè)點(diǎn)(時(shí)長為20us),則變?yōu)閳D1(b)所示的波形。

這個(gè)過程就是通常所說的補(bǔ)零(ZeroPadding)。

為什么要Zero Padding?

最直接的理由就是,如果時(shí)域波形的數(shù)據(jù)樣點(diǎn)為2的整數(shù)冪的話,F(xiàn)FT計(jì)算將是最高效的,硬件 (FPGAs) 計(jì)算FFT,就是采用了這樣的Padding工作模式。那么,我們所關(guān)心的補(bǔ)零會不會影響計(jì)算輸出的頻率分辨率呢?

關(guān)于FFT頻率分辨率

這里涉及到兩種意義下的分辨率問題,一種叫“波形頻率分辨率 (Waveform frequency resolution”) 或叫視覺頻率分辨率 (Visual frequency resolution);另一種則叫做“FFT分辨率”。雖然,這個(gè)分類和命名不一定是很專業(yè)的術(shù)語,但卻有助于對“頻率分辨率”概念的理解。在沒有補(bǔ)零的情況下,這兩個(gè)概念通常容易被混淆,因?yàn)樗鼈兪堑葍r(jià)的。

波形頻率分辨率是指可以被分辨的2個(gè)頻率的最小間隔 (Spacing);而FFT 分辨率則是頻譜中的數(shù)據(jù)點(diǎn)數(shù) (The number of points in the spectrum),它是與做FFT的點(diǎn)數(shù)直接相關(guān)的。

因此,波形頻率分辨率可定義為:

圖片

其中,T是實(shí)際信號的時(shí)間長度。

同樣,F(xiàn)FT分辨率可以定義為:

圖片

其中,fs為采樣頻率 (the sampling frequency),Nfft為FFT的點(diǎn)數(shù)。ΔRf代表了FFT頻率軸上的頻率取值的間隔 (Spacing)。

值得注意的是,可能有很好的FFT分辨率,但卻不一定能夠很好的把2個(gè)頻率成分簡單的分開。同樣,可能有很高的波形分辨率,但波形的能量峰值會通過整個(gè)頻譜而分散開(這是因?yàn)镕FT的頻率泄漏現(xiàn)象)。

我們知道,信號的離散傅里葉變換 (DFT) 或快速傅里葉變換 (FFT) 是對波形的任何一邊補(bǔ)零形成的無限序列進(jìn)行計(jì)算的。這就是,為什么FFT的每個(gè)頻率單元 (bin) 都具有明顯的sinc波的形狀。

波形頻率分辨率1/T與一個(gè)sinc函數(shù)空值間隔 (the space between nulls) 是一樣的。

例 析

下面以一個(gè)具有2種頻率成分的周期信號為例,說明Zero Padding與頻譜分辨率的關(guān)系:

圖片

其中,f1 = 1.00MHz,f2 = 1.05MHz,頻率間隔為0.05MHz。也就是說,在我們的頻譜分析曲線上能看到2個(gè)頻率點(diǎn)的峰,若2個(gè)正弦波的幅度為1伏 ( V),那么我們期望在1MHz和1.05MHz的頻率點(diǎn)處的功率為10dBm。

分以下幾種情況進(jìn)行分析:

1. 時(shí)域信號1000個(gè)點(diǎn)采樣,做相同樣點(diǎn)數(shù)的FFT。

圖片

圖2 原始信號的功率譜 (1000點(diǎn) FFT)

圖2中,我們并沒有看見期望的兩個(gè)脈沖,因?yàn)閳D中僅出現(xiàn)一個(gè)脈沖點(diǎn),其幅度約為11.4dBm。顯然,這個(gè)圖并不是我們想要的正確的頻譜圖。原因很簡單,沒有足夠的分辨率看見兩個(gè)峰值 (Peaks)。

2. 時(shí)域信號1000個(gè)點(diǎn)采樣,后端補(bǔ)6000個(gè)零,做7000點(diǎn)數(shù)的FFT。

我們自然想到,采用補(bǔ)零方式增加FFT點(diǎn)數(shù),以使頻率軸上能增加更多點(diǎn)數(shù)。如采用7000個(gè)點(diǎn)做FFT,即需要在原1000點(diǎn)信號尾部增加6000個(gè)零值(即60us時(shí)長),則原始信號變?yōu)閳D3(a)所示,其FFT結(jié)果如圖3(b)所示。

圖片

(a)

圖片

(b)

圖3 原始信號補(bǔ)零及功率譜 (7000點(diǎn) FFT)

圖3中,我們也并沒有看見期望的結(jié)果。仔細(xì)觀察一下,此圖到底告訴了我們什么呢?即通過增加更多FFT點(diǎn)數(shù)的做法,使得波形頻率分辨率公式中的sinc函數(shù)的定義更清晰。可以看出,sinc空值 (nulls) 間隔大約是0.1MHz。

由于給出信號的兩個(gè)正弦波的頻率間隔是按0.05MHz分隔的,因此,不管我們用多少FFT點(diǎn)數(shù) (Zero padding),都無法解決2個(gè)正弦波的問題。

再來看一下頻率分辨率ΔRf告訴了我們什么。盡管,F(xiàn)FT分辨率大約為14kHz(足夠的頻率分辨率),而波形頻率分辨率僅僅為100kHz。兩個(gè)信號的頻率間隔是50kHz,所以我們受限于波形頻率分辨率 ΔRw 。

3. 時(shí)域信號7000個(gè)點(diǎn)采樣,做7000點(diǎn)數(shù)的FFT。

為了合理地解決這個(gè)頻譜的問題,需要增加用于FFT的時(shí)域數(shù)據(jù)的長度(點(diǎn)數(shù))。因此,我們直接采集波形的7000點(diǎn)作為輸入信號,取代補(bǔ)零 (Zero Padding) 方式到70us (7000 點(diǎn)) 。時(shí)間域信號及對應(yīng)的功率譜分別如圖4a-4b所示。

圖片

(a)

圖片

(b)

圖4 按7000點(diǎn)采集的信號及其功率譜

通過時(shí)域數(shù)據(jù)的周期延拓,現(xiàn)在的波形頻率分辨率ΔRw也近似為14KHz。但從頻譜圖中,我們還是看不見2個(gè)正弦波。1MHz信號已按正確的10dBm功率值清晰地表征,而1.05MHz 信號變寬,且未以期望的10dBm 功率分布。這是為什么呢?

原因就是1.05MHz處并沒有FFT點(diǎn)的分布,此處的能量被多個(gè)FFT點(diǎn)分散(泄露)了。

給出的例子中,采樣頻率是100MHz,F(xiàn)FT點(diǎn)數(shù)為7000。頻譜圖中,點(diǎn)與點(diǎn)之間的間隔是14.28kHz。1MHz頻率剛好為頻率間隔的整數(shù)陪,而1.05MHz 卻不是。距1.05MHz最近的整數(shù)倍頻率為1.043MHz和1.057MHz,因此,能量被這2個(gè)FFT單元所分散。

4. 時(shí)域信號7000個(gè)點(diǎn)采樣,后端補(bǔ)1000個(gè)零,做8000點(diǎn)數(shù)的FFT。

為了解決這個(gè)問題,我們可以合理選擇FFT的點(diǎn)數(shù),以便這兩個(gè)點(diǎn)能在頻率軸上成為獨(dú)立分開的點(diǎn)。由于,我們并不需要更好的波形頻率分辨率,僅采用時(shí)域數(shù)據(jù)的零填充方式來調(diào)整FFT數(shù)據(jù)點(diǎn)的頻率間隔。

給時(shí)域信號增加1000零值 (10us),使得頻率間隔為12.5kHz,這樣,滿足了1 MHz and 1.05MHz兩個(gè)頻率都是這個(gè)間隔的整數(shù)倍。此時(shí),給出的功率譜如圖5所示??梢钥闯?,兩個(gè)頻率問題得到解決,而且功率均在期望的10dBm。

圖片

圖5 補(bǔ)零至8000點(diǎn)信號的功率譜

為了進(jìn)一步觀察過度補(bǔ)零的現(xiàn)象,通過時(shí)域補(bǔ)更多的零值 (10000點(diǎn)) 來完成更多點(diǎn)數(shù)的FFT(確保具有正確的波形頻率分辨率 ΔRw ),我們就可以清晰地看到FFT單元 (bins) 的sinc波形狀,如圖6所示。

圖片

圖6 補(bǔ)零至107000點(diǎn)信號的功率譜

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報(bào)投訴
  • FFT
    FFT
    +關(guān)注

    關(guān)注

    15

    文章

    458

    瀏覽量

    63080
  • 功率譜
    +關(guān)注

    關(guān)注

    0

    文章

    13

    瀏覽量

    8543
  • 信號處理器
    +關(guān)注

    關(guān)注

    1

    文章

    263

    瀏覽量

    26232
  • 時(shí)域分析
    +關(guān)注

    關(guān)注

    0

    文章

    44

    瀏覽量

    11379
  • DFT算法
    +關(guān)注

    關(guān)注

    0

    文章

    27

    瀏覽量

    7835
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關(guān)推薦
    熱點(diǎn)推薦

    24位或者說高分辨率的AD到底有什么用?

    的AD,如24位的AD,其分辨率達(dá)到很低的uV級別,我們?nèi)绾慰季科渚??而且AD的精度受到諸多因素的影響,其中參考源的穩(wěn)定度和供電電源的穩(wěn)定度對精度影響很大,參考源最低0.05%的精度,那么24位的分辨率所可以達(dá)到的精度卻是要大打折扣的,請問在這樣的情況下,24位或者說高分辨率的AD到底有
    發(fā)表于 01-07 06:49

    信號補(bǔ)零對信號頻譜的影響是什么

    離散傅里葉變換(DFT)點(diǎn)數(shù),從而在頻率軸上產(chǎn)生更多的插值點(diǎn)。然而,這并不意味著補(bǔ)零改善了頻率分辨率或精確性。 頻率分辨率由采樣率和FFT長度決定,而補(bǔ)零并不改變采樣率。補(bǔ)零只是對現(xiàn)有
    發(fā)表于 11-21 07:04

    BLE一次廣播的字節(jié)數(shù)一定是32個(gè)嗎,剩余自動補(bǔ)零?

    小白問2個(gè)問題:BLE一次廣播的字節(jié)數(shù)一定是32個(gè)嗎,剩余自動補(bǔ)零?廣播數(shù)據(jù)的位數(shù)對功耗有沒有影響。廣播數(shù)據(jù)的位數(shù)少,功耗會不會低一點(diǎn)?
    發(fā)表于 04-07 09:37

    _SlNonOsMainLoopTask() 函數(shù)什么用,什么時(shí)候調(diào)用?

    _SlNonOsMainLoopTask() 函數(shù)什么用,什么時(shí)候調(diào)用?
    發(fā)表于 06-23 02:00

    調(diào)用STM32的DSP庫做fft運(yùn)算補(bǔ)零是為了補(bǔ)充虛部嗎?

    在調(diào)用STM32的DSP庫做fft運(yùn)算的時(shí)候發(fā)現(xiàn),要進(jìn)行fft運(yùn)算的輸入數(shù)據(jù)在運(yùn)算之前,需要對數(shù)據(jù)一隔一個(gè)補(bǔ)零,比如實(shí)際要進(jìn)行fft運(yùn)算的數(shù)據(jù)為1,2,3,4.需要變?yōu)?,0,2,0,
    發(fā)表于 02-22 07:16

    反碼位是什么?到底有什么用?

    反碼位是什么?到底有什么用
    發(fā)表于 05-07 07:16

    筆記本固態(tài)硬盤到底有什么用

    如果現(xiàn)在您去購買電腦會發(fā)現(xiàn)很多筆記本是會帶有固態(tài)硬盤的,及時(shí)很多人購買的時(shí)候需要性能高的也會給主機(jī)加上固態(tài)硬盤,為什么很多人喜歡加上固態(tài)硬盤?筆記本固態(tài)硬盤到底有
    發(fā)表于 09-08 07:22

    模擬看門狗到底有什么用

    到底什么是模擬看門狗?模擬看門狗到底有什么用?
    發(fā)表于 01-17 07:33

    異常處理向量表的設(shè)置中DCD這些偽指令到底有什么用?

    在異常處理向量表的設(shè)置中,為什么不直接將異常向量的入口地址寫入 PC 中,為什么非要用什么 DCD 這些偽指令,到底有什么用
    發(fā)表于 02-28 14:53

    為什么要用傅里葉變換?FFT你不知道的細(xì)節(jié)

    分析 因?yàn)镕FT是基于復(fù)數(shù)的,在計(jì)算FFT的時(shí)候會出現(xiàn)兩種情況,輸入的數(shù)據(jù)為實(shí)數(shù)和復(fù)數(shù),實(shí)際當(dāng)中輸入信號x(n)一般都為實(shí)信號,即虛部為。 (1)輸入數(shù)據(jù)是實(shí)數(shù) 我們matlab產(chǎn)生一個(gè)實(shí)正弦
    發(fā)表于 06-20 16:07

    labview補(bǔ)零小功能

    labview補(bǔ)零小功能
    發(fā)表于 08-19 09:14

    到底有哪些原因會導(dǎo)致電樞絕緣阻值為

    對電機(jī)多大影響,現(xiàn)在這樣能安全使用多長時(shí)間,為什么電樞會是,到底有哪些原因會導(dǎo)致電樞絕緣阻值為
    發(fā)表于 12-14 08:30

    數(shù)據(jù)可視化到底有什么用?

    數(shù)據(jù)可視化到底有什么用?數(shù)據(jù)可視化是當(dāng)下火熱的大數(shù)據(jù)應(yīng)用技術(shù),很多新銳地大數(shù)據(jù)分析工具都注重開發(fā)數(shù)據(jù)可視化的功能模塊。數(shù)據(jù)可視化及其技術(shù)研究和應(yīng)用開發(fā),已經(jīng)從根本上改變了我們對數(shù)據(jù)和數(shù)據(jù)分析工具的理解,數(shù)據(jù)可視化對大數(shù)據(jù)發(fā)展的
    的頭像 發(fā)表于 02-05 14:03 ?2.7w次閱讀

    關(guān)于FFT的信號補(bǔ)零操作

    在做信號處理的過程中,常遇到將信號補(bǔ)零后再做FFT等操作,比如頻域脈沖壓縮算法中,一般距離維PRT數(shù)據(jù)和脈壓系數(shù)需要使長度相等且滿足2的N次方,但是填操作能做什么,不能做什么
    的頭像 發(fā)表于 07-04 10:41 ?5632次閱讀
    關(guān)于FFT的信號<b class='flag-5'>補(bǔ)零</b>操作

    代碼實(shí)戰(zhàn)!什么是傅里葉變換?什么用?Matlab實(shí)現(xiàn)FFT

    ▼關(guān)注公眾號:工程師看海▼ 上一節(jié)介紹了,我們采集的信號,實(shí)際上包含了各種各樣的子信號,實(shí)際情況中,這些字信號非常復(fù)雜,我們在時(shí)域看不出來都有哪些頻率成分,這時(shí)候傅里葉變換就排上用場了。 傅里葉變換
    的頭像 發(fā)表于 01-16 07:45 ?545次閱讀
    代碼實(shí)戰(zhàn)!什么是<b class='flag-5'>傅里葉變換</b>?<b class='flag-5'>有</b><b class='flag-5'>什么用</b>?Matlab實(shí)現(xiàn)FFT