Я использую библиотеку NE10 для выполнения одномерного БПФ для некоторых аудиоданных для проекта. Тем не менее, результаты, которые я получаю от моего аудиовхода, довольно странные.
Я использую FFT-версию float32, и в примере кода я заметил, что входные значения умножены на 50. Это довольно странно для меня. По моему опыту, при работе в float аудио данные ограничены (-1, 1).
Углубившись дальше в документацию, я заметил, что входные данные для тестового кода масштабируются в соответствии с 16-разрядным целым числом, что еще больше смутило меня.
Фрагмент моего кода, для справки:
mFftConfig = ne10_fft_alloc_r2c_float32(size);
mFftDestination = new ne10_fft_cpx_float32_t[mSize/2 + 1];
mWindow = MakeWindow();
...
for(int i = 0; i < mSize; i++)
{
mInputBuffer[i] *= mWindow[i];
}
ne10_fft_r2c_1d_float32(mFftDestination, mInputBuffer, mFftConfig);
Короче говоря, я передаю данные с плавающей запятой функции FFT между (-1, 1) и получаю странные результаты, и я не могу найти никакой информации о входном диапазоне FFT.