如何從KissFFT設置頻帶到我的陣列?採樣頻率是44100,我需要將它設置爲我的陣列realPartFFT。我不知道,它是如何工作的。我需要繪製我的光譜圖,看看它是否正確。當我現在繪製它時,x軸上仍然只有513個數字,沒有指定的頻率。如何在fft之後設置陣列的頻帶
int windowCount = 1024;
float floatArray[windowCount], realPartFFT[(windowCount/2) + 1];
kiss_fftr_cfg cfg = kiss_fftr_alloc(windowCount, 0, NULL, NULL);
kiss_fft_cpx cpx[(windowCount/2) + 1];
kiss_fftr(cfg, floatArray, cpx);
for (int i = 0; i < (windowCount/2) + 1; ++)
realPartFFT[i] = sqrtf(powf(cpx[i].r, 2.0) + powf(cpx[i].i, 2.0));
因此,如果我運行此代碼,我可以告訴realPartFFT陣列有43 Hz - 22.05 KHz的頻率,或者我必須將它設置在某個位置? –
是的,43 Hz - 22.05 KHz是正確的解釋。我不知道你想在哪裏設置,除了繪製數據時在x軸的標籤處。 – craesh
那麼,所以我只用頻率來繪製數據..在這種情況下,我還有另一個問題。我想使用libmfcc庫來計算這些係數。 (int i = 0; i <26; i ++) getCoefficient(realPartFFT,44100,48,1024,i); 和我的光譜數組有問題,因爲這個函數想要雙精度數組,我給她的浮點數組。我嘗試覆蓋參數來漂浮,但它仍然不起作用 –