我正在尋找一種從WAV文件中提取數據的方法,這對於我試圖實現的FFT算法很有用。到目前爲止,我所擁有的是左右音頻通道的一組十六進制值,但我在如何將其轉換爲FFT的時間和頻率域方面有些遺憾。如何從FFT文件中提取數據以用於FFT
這就是我需要的,例如:
3.6 2.6
2.9 6.3
5.6 4.0
4.8 9.1
3.3 0.4
5.9 4.8
5.0 2.6
4.3 4.1
這是考慮到數據的FFT函數的原型:
void fft(int N, double (*x)[2], double (*y)[2])
其中N是點的數量爲FFT,x是指向時域樣本的指針,y是指向頻域樣本的指針。
謝謝!
您是否已經使用以下指定的WAVE格式確定了數據的頻率:https://ccrma.stanford.edu/courses/422/projects/WaveFormat/?此鏈接從這個SO問題就來了:http://stackoverflow.com/questions/9499270/reading-wav-file-in-matlab-coder – macduff 2012-02-29 19:33:02
除非你寫你自己的FFT學術原因,檢查出的http:// www.fftw.org/。對於閱讀波形文件:http://www.mega-nerd.com/libsndfile/ – 2012-02-29 19:42:02
@oexcz - 要清楚,時域採樣是您的輸入(解碼wav文件)和頻域採樣你的輸出。這就是FFT所做的 - 從時域轉換到頻域 - 對嗎? – hooleyhoop 2012-02-29 20:12:25