Страница 1 из 1
Графический эквалайзер
Добавлено: 28 дек 2006, 20:53
Navigator
Народ, подскажите, как в с++ считывать частоты звука для их послед.вывода, как в большинстве проигрывателей или, как в частотной диаграмме Windows Media Player?
Re: Графический эквалайзер
Добавлено: 28 дек 2006, 21:05
Romeo
Вопрос не касается С++ на прямую, это вопрос по алгоритмам. Как имея аналоговый сигнал, измерянный с определённым шагом и сохранённый в файл (это и есть wave файл), получить частотные характеристики этого сигнала? Так что с вашего позволения, Navigator, перемещаю вопрос в Алгоритмы, оставляя в С++ ссылку.
Касательно ответа могу посоветовать использовать БПФ (быстрое преобразование Фурье) для получения гармоник неком "окне". Ширина окна должа быть выбрана эмпирически. Окно нужно двигать по файлу, каждый раз вычисляя гармоники (они же частотные характеристики) и показывая их пользователю в виде набора столбцов. Формулы БПФ на память не помню, но их без проблем можно найти во всемирной сети.
Re: Графический эквалайзер
Добавлено: 28 дек 2006, 21:12
Absurd
В MP3/OGG/etc частотный спектр и так уже есть нахаляву, никакого Фурье не нужно.
Re: Графический эквалайзер
Добавлено: 29 дек 2006, 13:01
DeeJayC
Делать вручную не советую. Рекомендую использовать готовые sdk - google research. Если так охота самому, то действительно FFT.
Re: Графический эквалайзер
Добавлено: 29 дек 2006, 18:56
Navigator
DeeJayC писал(а):Делать вручную не советую. Рекомендую использовать готовые sdk - google research. Если так охота самому, то действительно FFT.
Можно поподробнее?
Re: Графический эквалайзер
Добавлено: 02 янв 2007, 12:04
DeeJayC
Подробнее про FFT :
http://www.fftw.org/