Я пытаюсь реализовать БПФ, и я хотел бы спросить, кажется ли то, что я делаю, правильным. Я использую GSL (GNU Science Library) для функции FFT. Я читал учебники по БПФ, но я все же хотел бы попросить кого-нибудь проверить, что я иду в правильном направлении.
Вот метод, который я придумал через веб-материал:
The input is a list of the amplitudes of a sin wave generated
in audacity at 440Hz (A).
The sample rate is 44100
# FFT points: 1024
Может кто-нибудь объяснить, как выбрать количество точек FFT? Или имеет ли это значение вообще. Возможно, я упустил это из виду, но не могу найти способ выбрать это число.
Редактировать: я думаю, что более уместно назвать это окно FFT, так как вы перемещаете окно 1024 точек по семплам, чтобы найти частоту.
bin size = 44100 / 1024 = 43.066
после запуска БПФ у меня есть еще один список амплитуд и в зависимости от того, в какой ячейке они находятся, то есть частота, которая определяется, верно? Итак, чтобы найти частоту генерируемого сигнала, я хочу найти самый высокий пик?
A bin is defined as a peak if and only if the bin has an amplitude greater than
2 bins to the left and 2 bins to the right.
Находится ли этот метод на правильном пути для получения частоты входного сигнала?