MATLAB如何實現傅里葉變換FFT?有何物理意義?

MATLAB如何實現傅里葉變換FFT?有何物理意義?

爲何要進行傅立葉變換,究竟有何意義?如何用MATLAB實現快速傅立葉變換?本文從 FFT 的由來開始講起,而後在 MATLAB 中實現了 FFT 的計算,並給你們詳細地解讀了 FFT 的變換結果,最後還介紹了 FFT 的一個應用實例。html

工具/原料

 
  • MATLAB

準備傅里葉變換的基礎知識

 
  1. 1

    爲何要進行傅里葉變換?函數

    將時域的信號,變換到頻域的正弦信號工具

    正弦比原信號更簡單,且正弦函數很早就被充分地研究,處理正弦信號,比處理原信號更簡單spa

    正弦信號的頻率保持性:輸入爲正弦信號,輸出還是正弦信號,幅度和相位可能發生變化,但頻率與原信號保持一致;只有正弦信號才擁有這樣的性質3d

     
  2. 2

    傅里葉變換的類型orm

    非週期連續信號:傅里葉變換htm

    週期連續信號:傅里葉級數blog

    非週期離散信號:離散時間傅里葉變換ci

    週期離散信號:離散傅里葉級數get

     
     
  3. 3

    從離散傅里葉級數(DFS) 到離散傅里葉變換(DFT)

    從離散傅里葉變換(DFT) 到快速傅里葉變換(FFT)

    MATLAB如何實現傅里葉變換FFT?有何物理意義?
    MATLAB如何實現傅里葉變換FFT?有何物理意義?
    END

MATLAB中實現FFT的計算

 
  1.  

    Y = fft(x) % x 爲一個序列(向量),存放採集信號的數據

    Y = fft(x,n) % x 的定義同上,n 定義計算數據的個數

    若是n 大於x 的長度,在x 的末尾添加0,使得x 的長度等於n

    若是n 小於x 的長度,截取x 中的前n 個數來進行計算

    Y 返回fft 的結果,爲一個複數序列(向量)

    建議:採用第一種格式的用法,而且保證x 的個數爲偶數

    MATLAB如何實現傅里葉變換FFT?有何物理意義?
    MATLAB如何實現傅里葉變換FFT?有何物理意義?
  2.  

    頻譜關於中間位置對稱(序號位置0 和N/2 除外),MATLAB 的FFT 爲對稱譜

    看MATLAB 中FFT 的頻譜,只須要看一半

    幅值不受影響,可是實部或虛部的值,會出現0 的狀況

    看MATLAB 中FFT 的頻譜,應該看幅值

    MATLAB如何實現傅里葉變換FFT?有何物理意義?
    MATLAB如何實現傅里葉變換FFT?有何物理意義?
  3.  

    FFT結果的數據長度:時域N個點-->頻域爲N/2+1個點

    x軸頻率點的設置:採樣頻率爲Fs時,頻譜圖的最高頻率爲Fs/2(具體請參照採樣定理)

    綜合上述兩點:x軸的頻率點爲:(0:1:N/2)*Fs/N

    複數的幅值修正:複數序列Y的幅值,須要進行轉換,才能獲得與時域中對應信號的幅值。

    複數的相位:計算Y的相位,獲得與時域中對應信號的相位值

    MATLAB如何實現傅里葉變換FFT?有何物理意義?
    MATLAB如何實現傅里葉變換FFT?有何物理意義?
  4.  

    進行傅里葉變換FFT的兩個基本問題

    採樣頻率爲多少合適?

    -根據採樣定理:Fs≥2Fc,實際應用中須要更大的Fs

    須要採集多少個點?

    -頻譜圖中,頻率的座標間隔(頻率分辨率):Fs/N(Page13)

    -Fs=2000Hz,N=100,Fs/N=20

    -原信號含有60Hz,72Hz頻率成分,(72–60)<20x

    -N增大至1000,Fs/N=2,(72–60)>2√

    MATLAB如何實現傅里葉變換FFT?有何物理意義?
    END

注意事項

 
  • 傅里葉變換是信號處理的基礎內容
  • 推薦閱讀鄭君里老先生的《信號與系統》
相關文章
相關標籤/搜索