Амплитуда диапазона частоты БПФ изменяется даже при применении постоянного тона - PullRequest
0 голосов
/ 26 апреля 2018

Я пытаюсь использовать БПФ для декодирования азбуки Морзе, но обнаруживаю, что когда я изучаю результирующий частотный блок / блок, который меня интересует, абсолютное значение довольно значительно меняется, даже когда отображается постоянный тон. Это делает для меня невозможным использование подъема и спада вокруг порога и, следовательно, декодирование звука Морзе. Я даже попробовал простой пример, который, кажется, копируется везде, но он также варьируется ... Я не могу понять, что я делаю неправильно, и моя математика недостаточно умна, чтобы понимать все формулы, связанные с БПФ. Теперь это возможно, но я не могу понять, как ... кто-нибудь может помочь, пожалуйста?

1 Ответ

0 голосов
/ 28 апреля 2018

Убедитесь, что вы используете величину результата БПФ, а не только действительную или мнимую составляющую сложного результата.

Как правило, когда синусоида с более длинной постоянной амплитудой подается на серию более коротких БПФ (STFT с окнами), результат величины будет постоянным, только если период синусоиды является точно целым периодическим по длине БПФ. например,

f_tone modulo (f_sampling_rate / FFT_length) == 0

Если вас интересует только величина одной выбранной частоты тона, алгоритм Гертцеля будет служить более эффективным фильтром, чем полное БПФ. И, в зависимости от настроек и ограничений длины, требуемых выбранной вами библиотекой FFT, может быть проще изменить длину Goertzel в соответствии с требованиями для вашей целевой частоты тона, а также необходимого компромисса между временным и частотным разрешением.

...