關於DFT與FFT的細節備忘

2021-10-23 03:41:22 字數 1036 閱讀 7506

備忘內容:

dft是將離散非週期訊號,如

做週期延拓之後,認為它是週期訊號,再做傅利葉變換的乙個過程。做完傅利葉變換之後,得到的仍然是乙個週期離散訊號,取其主值序列即可:

所以,之前部落格裡的內容實際上有一點問題,因為做週期延拓的時候,如果原訊號是乙個週期訊號,但是截斷的位置並不是完整的週期,那麼實際上延拓出來的結果將跟原來的序列不同,比如,本來乙個週期的序列應該包括區間左端或者區間右端邊界的任意乙個即可,不能多也不能少,但是如果兩端都包含在內的話,再做週期延拓將不會是原來的那個訊號:

乍一看是兩個峰:

仔細看的話,還是有一點頻譜洩露的:

所以,對於現實中記錄得到的訊號(有可能是無限長的,比如無線電訊號),我們總是不能得到其準確的頻譜圖(實際上「準確的頻譜圖」這一概念似乎也沒有什麼意義),總是有一點頻譜洩露。不過,如果取樣頻率非常高,那麼得到訊號的誤差就很小,頻譜洩露實際上影響不大【這一點還不太明白】。隨著時間進行取樣,一幀2048個點,隨時間不斷進行fft,那麼實際上得到的頻譜就可以認為是當前訊號的頻譜。

還有一點比較重要的是,dft序列的橫座標的意義是什麼?

從傅利葉變換的角度出發可以想到,數字角頻率是ω=ωts,範圍是0~n-1,也就是說,我們只需要考慮左半邊的譜線,它們的橫座標表示該頻率分量相對於fs的比值,比如,fc=1khz的正弦訊號,fs=10khz,那麼譜線應該位於n=1處,總共有10根譜線。

FFT與DFT,以及DFT程式

由於dft演算法太慢,fft是更加快速的演算法。import numpy as np f0,f1 0.5,2 最高頻率為f1 t 1 f0 取樣時間為最低頻率對應的週期 fs m f1 取樣頻率為最高頻率的m倍 dt 1 fs 取樣間隔 生產取樣訊號 t np.arange 0,t,dt y 3 2...

對於FFT和DFT的理解

此篇文章是對 ministm32f103實現家庭普通電路中的電流諧波檢測 一文的補充 本文參考 快速傅利葉變換學習及c語言實現 形象的介紹 什麼是傅利葉變換?手把手教你理解 fft fft是最重要,也是最難懂的。簡單說下原理 fft 快速傅利葉變換 是dft 離散傅利葉變換 的改進演算法,其將dft...

DFT和FFT的一點思考

很多文章都側重於從理論理解傅利葉變換,從公式理解的比較少,我們都知道傅利葉變換的思想 於所有訊號都可以由整數倍的基頻正弦訊號組合而成 ofdm調製的原理 那麼其公式和實現是不是也要重點理解一下呢?dft 其中為什麼不同時刻的幅度值與某一頻率對應時刻的對數值卷積就是頻域資訊?卷積就到了頻域?對於每乙個...