我目前正在使用FFT检测频率。我知道在进行FFT之前我需要应用一个窗口,但我不确定如何做到这一点。
应用窗口应该做些什么。
我malloc正在使用
float * hammingWindow = (float *) malloc(sizeof(float) * numberOfFrames);
vDSP_hamm_window(hammingWindow, n, 0);
但我不确定如何从这里开始。
当我用我的args打电话给vmul时
vDSP_vmul((COMPLEX*)outputBuffer, 1, hammingWindow, 1, (COMPLEX*)outputBuffer, 1, n);
即使我正在调用其他vDSP方法,也会出现vDSP_vmul不存在的错误。
我在FFT函数之后调用它
vDSP_zvmags((COMPLEX *)outputBuffer, 1, (COMPLEX *)outputBuffer, 1, bufferCapacity);
我得到同样的问题 - No matching function for call to vDSP_zvmags
我做错了什么?我的论点是不正确的。看起来(COMPLEX *)outputBuffer
不应传递给两个args。