如何从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); 和我的光谱数组有问题,因为这个函数想要双精度数组,我给她的浮点数组。我尝试覆盖参数来漂浮,但它仍然不起作用 –