首頁>
1
回覆列表
  • 1 # 用戶3284952041922603

    fft運算的結果是一個包含實部和虛部的複數,如:x[n]=x[n].real+x[n].img;各分量的功率計算為: p[n]=(x[n].real*x[n].real+x[n].img*x[n].img)/n;總功率為:各分量功率和。

    分量頻率為:分辨率*序列號,分辨率=採樣頻率/n。

  • 2 # 用戶59014396402

    二維FFT相當於對行和列分別進行一維FFT運算。具體的實現辦法如下:

    先對各行逐一進行一維FFT,然後再對變換後的新矩陣的各列逐一進行一維FFT。相應的偽代碼如下所示:

    for (int i=0; i<M; i++)

    FFT_1D(ROW[i],N);

    for (int j=0; j<N; j++)

    FFT_1D(COL[j],M);

    其中,ROW[i]表示矩陣的第i行。注意這只是一個簡單的記法,並不能完全照抄。還需要通過一些語句來生成各行的數據。同理,COL[i]是對矩陣的第i列的一種簡單表示方法。

    所以,關鍵是一維FFT算法的實現。下面討論一維FFT的算法原理。

    【1D-FFT的算法實現】

    設序列h(n)長度為N,將其按下標的奇偶性分成兩組,即he和ho序列,它們的長度都是N/2。這樣,可以將h(n)的FFT計算公式改寫如下 :

    (A)

    由於

    所以,(A)式可以改寫成下面的形式:

    按照FFT的定義,上面的式子實際上是:

    其中,k的取值範圍是 0~N-1。

    我們注意到He(k)和Ho(k)是N/2點的DFT,其週期是N/2。因此,H(k)DFT的前N/2點和後N/2點都可以用He(k)和Ho(k)來表示