Я довольно новичок в обработке сигналов, поэтому простите меня, если я немного рассержусь. Я загрузил и установил FFTW для окон. Документация в порядке, но у меня все еще есть запросы.Вычисление дискретного преобразования Фурье аудиоданных с помощью FFTW
Моя общая цель - захватить необработанные аудиоданные, отснятые со звуковой карты на компьютере со скоростью 44100 часов/с (эта задача уже реализована с использованием библиотек и моего кода), а затем выполнить DFT на блоках этих аудиоданных ,
Меня интересует только поиск ряда частотных компонентов в аудио, и я не буду выполнять обратный ДПФ. В этом случае, является реальным для реального преобразования все, что необходимо, следовательно, функция fftw_plan_r2r_1d()
?
Мои блоки данных, которые необходимо преобразовать, составляют 11025 образцов. Моя функция вызывается, как показано ниже. Это приведет к созданию массива спектра из 11025 бункеров. Как узнать максимальный частотный компонент в результате?
Я считаю, что интервал между ячейками равен Fs/n, 44100/11025, поэтому 4. Это означает, что у меня будет спектр частот в массиве от 0 Гц до 44100 Гц с шагом 4 или до половины частоты nyquist 22200?
Это было бы проблемой для меня, так как я хотел только искать частоты от 60 Гц до 3000 Гц. Есть ли способ ограничить диапазон преобразования?
Я не вижу никаких аргументов для функции, или, может быть, есть другой способ?
Большое спасибо за любую помощь в этом.
p = fftw_plan_r2r_1d(11025, audioData, spectrum, FFTW_REDFT00, FFTW_ESTIMATE);
Один вопрос на вопрос пожалуйста. –