2014-02-25 31 views
0

我具有周期性術語離散傅立葉變換在Matlab - 理論混亂

v(x) = sum over K of [exp(iKx) V(K) ] 

其中K = 2 * PI * N/A,其中A是術語,且n = 0,1,2的週期性, 3 ....

現在我想找到傅立葉係數V(K)對應於特定K.假設我有(x)的具有10000點v的矢量線爲

x = 0,0.01a,0.02a,...a,1.01a,....2a....100a 

使得我的格子的大小是100a。此矢量上的FFT給出10000個傅立葉係數。對應於這些傅里葉係數的K值是2 * pi * n /(10000 * 0.01),其中n = 0,1,2,3,... 9999。

但由於格子的週期性,我的K的形式爲2 * pi * n/a。我錯過了什麼?

+2

你的符號很難遵循。此外,這可能會脫離主題(因爲它似乎是一個信號處理/數學理論問題 - 也許更適合http://dsp.stackexchange.com)。 –

+0

dsp.stackexchage.com在我的位置是不起作用的,它似乎只是在它上面打開一個只有stackexchange的頁面。 – cleanplay

+0

Ooops,錯字。它是http://dsp.stackexchange.com/。 –

回答

1

您的功能可能並不複雜,因此您需要在複數傅立葉級數表達式中使用負頻率。在FFT期間,這並不重要,因爲負頻率被混疊到較高的正頻率,但在作爲連續函數的表達式中,這可能產生奇怪的結果。

這意味着如果N是採樣的大小,則n的範圍從-N/2到N/2-1。

請注意,如果您從0a開始並以0.01a爲步長並以100a結束,則您給出的點數爲10001。所以N = 10000點的最後一點應該是100a-0.01a = 99.99a。

您的採樣頻率是採樣步驟的倒數,Fs = 1 /(0.01a)。然後,FFT的頻率爲2 * pi * n/N * Fs = 2 * pi * n /(10000 * 0.01a)= 2 * pi * n /(100 * a)你的K.

這並不令人驚訝,因爲採樣超過了100個週期的函數,更長的週期會導致基本頻率更低。如果信號v(x)是真正的週期性的,除了可以被100整除的那些信號之外的所有幅度將爲零。如果信號由於噪聲和測量誤差而不完全是週期性的,則峯值將泄漏到相鄰頻率。對於原始任務的正確結果,您必須將峯值的振幅積分。

+0

所以頻率將從2 * pi * n/a(其中n = -N/2)擴展到N/2-1並且第100個將是我需要的形式?是的,這是有道理的,但你能確認嗎?我的意思是,如果我需要一個負頻率的傅里葉係數,那麼我必須看一個更高的正頻率,讓我們假設我必須看-4 * pi/a。那麼我會看哪個正頻率 - 將-2 * N * pi/a視爲新的零點,或者在正頻率的一半之後繼續負頻率。一旦我的疑問清楚,我會接受你的回答。提前致謝。 – cleanplay

+1

不完全。在N = 10000並且超過100個週期的FFT之後,你可以得到一些數組,例如amp [k],k = 0,...,9999。 amp [k]是頻率2 * pi * k /(100 * a)的幅度。如果k = 100 * n,則這減少到某個K = 2 * pi * n/a。但是如果在100個週期內有噪聲,那麼當k = -5,...,5左右時,放大器[100 * n + k]可能包含最初來自頻率K的可觀貢獻。 – LutzL