2012-04-23 29 views
0

我有一個實數序列,我想計算它的FFT。 FFT函數需要複數。當源信號只是一個實數時對複數進行操作

那麼我可以將虛值設置爲0並計算FFT?

下一個問題是,當我得到的結果值(頻域值),他們是在複雜的格式。

如果我做這些複雜的值FFT的逆,我可以丟棄虛分量和使用結果的只是實部?

+1

輕微的替代方案是餘弦變換 – 2012-04-23 22:21:51

回答

2

您在複雜的輸入的實部設置爲信號採樣值和虛部爲零。或者,您可以使用實數到複數的FFT,這也可能比正常的複數到複數的FFT快一點。對於逆FFT - 只要您的頻域複數值具有複共軛對稱性(如果您的輸入純粹是真實的,那麼它們將具有這種對稱性),那麼IFFT將再次爲您提供純粹的實時時域信號。如果您在IFFT之前修改頻域值,請確保您保持複共軛對稱性。再一次,你也可以考慮使用複雜到真實的IFFT,這可能會更有效率,並將減輕你維持對稱性的工作。

+0

保羅,謝謝... ...隨訪(1)我在哪裏可以找到真正的複雜FFT和複雜的現實IFFT? (2)在我目前的用法中,我猜測由於我沒有修改FFT和iFFT之間的頻率,我可以高興地忽略iFFT結果中的虛部。 – user605957 2012-04-23 22:28:42

+0

如果您不修改頻域數據,那麼您只需返回原始時域信號(虛構分量爲零) - 但是這有點毫無意義 - 爲什麼要進入頻域並返回?對於實數到複數的FFT和複數到實數的IFFT - 大多數FFT包都具有這些,例如, FFTW,KissFFT,加速等 - 您使用的是哪種OS /平臺/編程語言/ FFT軟件包? – 2012-04-23 22:35:46

+0

我實際上在返回中看到了一些最小的虛構值......它們很小,但非零。我之所以這樣做的原因是我唯一的噪聲消除算法是在頻域操作的。我在MAC-OSx上使用Xcode – user605957 2012-04-23 22:45:17

1

對於這種類型的數學,一個實數只是用(假定或顯式)虛部等於零的複數。

如果饋給IFFT運算的頻率數據是共軛對稱,則在結果的虛數值將相對於真實值,從使用有限精度算術大多數值噪聲是很小的。如果你瞭解精度的有效位數,你會注意到這些值全部歸零爲任何合理或有用的精度。

相關問題