2011-06-14 51 views
2

我想用單個IFFT計算兩個實函數的傅里葉逆變換。到目前爲止,我已經找到了最好的,最簡單的解釋是here,在那裏說:兩個實函數的同時逆快速傅里葉變換

使用的事實,FFT是線性的,形成的總和第一變換加上第二次我。 您有兩個矢量x1和x2,分別爲 離散傅立葉變換X1和X2 。然後

X1 =重新[IDFT [X1 + I X2]]

X2 = IM [IDFT [X1 + I X2]。

問題是我沒有得到'我'參數來自哪裏。 任何暗示,將不勝感激。

在此先感謝。

編輯:

做一些實驗,我終於做到了工作以後,但現在我比以前更糊塗了,因爲如我所料,只好用一些想象力找出正確的公式沒有工作。

我只是做了一個新的複雜陣列,其中:

Re[n] = X1Re[n] - X2Im[n] 
Im[n] = X2Re[n] + X1Im[n] 

它X1 = Re和X2 = Im做一個IFFT後,因此不會是正確的表達像這樣?

x1 = Re[ IDFT[ X1 - i X2 ] ] 
x2 = Im[ IDFT[ X2 + i X1 ] ]. 
+1

出於興趣,對真實數據進行IFFT的用例是什麼?雖然實值時域信號當然很常見,但我從來沒有見過純粹的真實頻域信號? – 2011-06-14 22:50:54

+0

IFFT是在一個單一的FFT輸出端產生的,該FFT輸入兩個實際信號。對不起,我想我沒有讓自己清楚:) – Trap 2011-06-14 23:18:44

+0

@eryksun你說得對,我把它寫錯了,謝謝 – Trap 2011-06-15 07:25:04

回答

4

你想知道'我'代表什麼嗎?在這種情況下,我相信'i'是指sqrt(-1),虛數單位向量。

然後:

Re[ IDFT[ X1 + i X2 ] ] 

將是變換的 '真正的' 部分(任何未經一個 'i')和

Im[ IDFT[ X1 + i X2 ] ] 

將是該變換 '虛' 部(任何乘以'我')。

這可能是我誤解了你的問題,這個答案太簡單了;如果是這樣,沒有侮辱是你的智慧,我只是誤解了你。

+0

「加上我第二次」的部分是讓我想知道的。我不是數學大師,也不是我假裝的,我只是想將這個功能添加到我的FFT庫中,同時對它的真實功能有一點了解。) – Trap 2011-06-14 22:26:11

+2

這是因爲FFT的線性,這意味着它尊重加法和標量乘法。 (即F(a + bc)= F(a)+ cF(b)。你可以利用這個將你的2個變換寫成1.所以,不要先做F(a)然後再做F(b) (a + bi),然後F(a)=任何沒有i的東西,F(b)=任何帶有i的東西,'i'在這種情況下就像任何常量一樣工作。重寫(x - 2x + 2)爲(x - 2x + 1)+ 1的方式,這樣你就可以寫(x-1)^ 2 +1。它們都是一樣的東西,它更容易與其中一個他們。 – uscere90 2011-06-14 22:31:09

1

如果您想忽略複數變量的數學,乘以i只是您如何交換和縮放一對矢量以產生另一對矢量的符號。並且複數向量X1和X2可以分別被認爲是實值向量對(在感興趣的變換下具有「複雜」關係)。交換和縮放使得兩個分量矢量在經過一些算術和變換之後可以更容易地分離成感興趣的實值矢量。