Я не понимаю, почему громкость определяется частотой не так, как ожидалось.
Я посылаю звуки на свой микрофон с несколькими заданными частотами по очереди. Затем я выполняю БПФ буфера микрофона. При выходе из БПФ у меня есть массив комплексных чисел. Чтобы узнать громкость звука на заданной частоте, я смотрю на свой массив, номер элемента в этом массиве получаю так:
MyFrequency = n*SamplingRate/SizeOfArray.
Далее я получаю величину комплексного числа
(sqrt(Re^2+Im^2)
Если я прав, это показывает мне громкость звука на этой частоте. Но это значение сильно меняется в зависимости от частоты. Если я ошибаюсь, объясните мне, что мне нужно сделать, чтобы исправить мою ошибку. Если я прав, объясните мне, почему эти значения так сильно меняются.