短版我的問題:FFT算法 - 如何將樣本轉換爲複雜結構?
如何從音頻採樣的陣列去(如的Int16)通過共同的FFT庫,如AForge使用複雜的結構?
我的問題的長版:
我是新來的音頻處理,我期待來分析音樂音頻(定位節拍,節奏等)。經過幾天的閱讀,快速傅立葉變換(FFT)算法似乎是朝着正確方向邁出的一步。
得到持續而不必從頭開始實現的算法,我已經下載了幾個開源庫,Exocortex和AForge.net的。
我解碼音頻到內存緩衝區。在我的16位48kHz音頻立體聲音軌的每個週期,我得到48000字節或24000個採樣。這些目前被複制到一個短陣列(Int16)中。我現在需要將我的數組轉換爲複雜結構(在AForge的情況下)。這反過來用「真實」和「虛構」雙重值初始化。但究竟是什麼,以及我如何從我的陣列中走向這兩個雙重值?另外,在傳遞之前是否需要分離左/右聲道?
不幸的是,我在讀的數學公式,只要它不表現爲代碼可怕。在我到目前爲止訪問過的幾乎所有網站上,快速出現了快速符號和複雜的數學公式以幫助解釋算法。結果,我馬上迷失在翻譯中。相信我,我努力找到了「傻瓜式FFT算法」。 ;)
致主持人的注意事項:即使問題類似,這不是Convert Audio samples from bytes to complex numbers?的重複。
謝謝您的回答。將嘗試。出於好奇,爲什麼我必須將虛數設置爲0.它是什麼,它爲什麼在那裏? – BlueVoodoo 2012-08-01 16:20:07
這將必須進入所有那些你說你不希望有鑽研公式 - 複雜的數學運算是一個相當顯著而複雜的話題,其有沒有足夠的空間,甚至開始在這裏解釋。如果你真的想知道,找一本教科書或一些複雜的數學;在目前情況下,雖然,我認爲「這是它的工作方式」是最好的答案 - 如果你使用其他什麼比0,你會得到錯誤的答案。 – twalberg 2012-08-01 16:34:43
夠公平的。它現在似乎工作,所以我會接受這個答案。 – BlueVoodoo 2012-08-01 16:35:11