У меня есть одноканальная волна, поступающая с частотой дискретизации 8000 Гц.
Мне нужно анализировать частоты в диапазоне от 5 Гц до 300 Гц в режиме реального времени с акцентом на сигналы от 10 до60 Гц.
Сначала я подумал о том, чтобы запустить образец 8000 Гц в буфер, собрав около 32000 образцов.Затем запустите на нем преобразование Фурье размером в 32000 окон.
Причина в том, что для низкочастотных сигналов вам нужен больший размер окна (верно?)
Однако, если я пытаюсь отобразить этот сигнал в режиме реального времени, онПохоже, что AudioAnalyserNode не может быть хорошим выбором здесь.Я знаю, что API WebAudio позволил бы мне получать необработанные данные, но в идеале AudioAnalyserNode мог бы запустить новый fft на основе предыдущих 32000 выборок, даже если меньшее количество выборок стало вновь доступным.В этот момент кажется, что данные fft обновляются только раз в четыре секунды.
Нужно ли создавать специальный «рабочий лоток», чтобы дисплей обновлялся чаще, чем раз в 4 секунды?Или какой наименьший размер окна я могу использовать для получения разумных значений в этом диапазоне?32000 достаточно большой размер окна?
Я использую узел анализатора API WebAudio в javascript, но если мне нужно получить необработанные данные, я также хочу заменить библиотеки на другие в javascript.