Я программист, а не хороший математик, поэтому FFT для меня как черный ящик, я хотел бы добавить некоторые данные в некоторую библиотеку FFT и получить выводимые на график данные AFR (амплитудно-частотная характеристика), как некоторые программыкак и в случае с Rightmark audio:
http://www.ixbt.com/proaudio/behringer/3031a/fr-hf.png
Теперь у меня есть система, которая воспроизводит логарифмический скользящий синус (с короткими переходами / исчезновениями, чтобы избежать резких краев) и записываетответ от аудиосистемы.
Насколько я понимаю, мне нужно заполнить ввод нулями до 2 ^ n, использовать аудиосэмплы как вещественную часть комплексных чисел, установить мнимое = 0, и яЯ вернусь из БПФ к массиву частотных бинов с половиной длины входных данных.
Но если мне не нужно такое большое разрешение по частоте, как дает мне аудиобуфер в несколько секунд, то как правильно сделатьДопустим, окно FFT размером 1024, подает фрагменты аудио и возвращает 512 частотных точек, которые учитывают все данные, которые я передал?Или, может быть, это невозможно, и мне нужно подать сразу весь развернутый синус, чтобы получить все необходимые данные AFR?
Также требуется ли какое-либо сглаживание?Я видел, что необработанный вывод из БПФ может быть очень шумным.Как правильно избежать шума как можно раньше, поэтому я вижу шум только потому, что он исходит от самого AFR, а не от вычислений FFT (например, изображение в ссылке, которую я дал - кажется довольно плавным)?
Я программист на C ++ / C #.Я был бы признателен за любые примеры, которые показывают, как обрабатывать куски развернутого синуса и получить данные AFR.Пока я нашел только примеры, которые обрабатывают данные небольшими порциями в реальном времени, и это не то, что мне нужно.