Показать сообщение отдельно
Старый 25.12.2013, 16:48   #22
Дирижер

 
Аватар для Васян
 
Регистрация: 24.01.2011
Адрес: Красноярский край, Саянский район
Сообщений: 247
Пол:
Вы сказали Спасибо: 52
Поблагодарили 102 раз(а) в 51 сообщениях
Отправить сообщение для Васян с помощью Skype™
По умолчанию

noname, Ты в курсе, про преобразование Фурье, кроме того что оно позволяет получить спектр сигнала из аудиоданных?
Как оно происходит, какие свойства, параметры, требования?
Для начала следует пояснить, что существует два основных алгоритма, реализующие преобразование Фурье это:
  1. Дискретное преобразование Фурье (DFT)
  2. Быстрое преобразование Фурье (FFT)
В применении к аудиоданным используется алгоритм FFT, использующий размер преобразований, представляющими из себя степень двойки (128, .., 1024, 2048 и т.д.).
Например, пусть, у нас есть аудио - данные, сэмплированные в 44.1 кГц, и мы, взяв 8 значений (отдельных отсчетов), хотим получить частотное разложение этого участка. В результате у нас получится 5 пар коэффициентов - 4 синусоиды с частотами 22.05 кГц, 16.5 кГц, 11.025 кГц, 5.51 кГц, и синусоида с частотой 0 кГц - то есть константа. Взяв 8 значений, мы можем разложить исходный сигнал на 4 гармоники (синусоиды, частоты). Про константу (нулевую гармонику) на время забудем - её надо просто прибавить при обратном преобразовании, а здесь она нас не интересует.

Взяв 16 отсчетов, мы получим 8 частот. Для 1024 - 512 частот. Шаг между ними, то есть частотное разрешение, составляет, в нашем примере с 44.1 кГц, (22.05 кГц)/ (N/2), или просто (44.1 кГц)/N. Частоты идут от нуля и выше, с этим шагом.

Вот поэтому при FFT используется такое понятие как размер окна, который может быть только степенью двойки (128, .., 1024, 2048 и т.д.),
чем больше размер окна, тем большее разрешение по частоте мы можем получить, но следует учесть, что размер окна совпадает с количеством анализируемых сэмплов, к примеру имеем размер окна 16384, это соответственно 16384 сэмплов, и при частоте дискретизации 44.1 кГц это будет кусок, длительностью 0,3715 сек., с шагом преобразования 2,69165 Гц.
Help к любой программе звукообработки скажет нам одну простую истину, которая звучит так: выигрывая в разрешении по времени, мы проигрываем в разрешении по частоте, и наоборот.

Далее есть такой момент, как оконные функции, необходимые для улучшения качества при FFT. Разные оконные функции приводят к разным результатам, и все они располагаются в некий спектр, от почти-ничего не делания, до сильного вмешательства в спектральное разложение.
Перечисляю этот спектр известных функций, от самых безобидных до ядреных: Triangular, Hanning, Hamming, Blackman, Welch (распределение Гаусса), Blackman-Harris.

Так что в проектируемой программе следует реализовать выбор размера окна и оконной функции, и найти оптимальное решение, результаты которого больше всего похожи на правду.

Далее необходимо сделать компоненты, позволяющие визуализировать спектр сигнала и осциллограмму.
Компонент, реализующий визуализацию спектра сигнала можно взять из хроматического тюнера программы FlutoMAX Flute Designer, переделав его для данной задачи:



Компонент для визуализации амплитудно-временной зависимости (осциллограммы) придётся разработать самому, также учесть те моменты, что потребуется масштабирование, и выделение фрагмента, по аналогии с Эдоб Аудишн.

Вот с этих моментов и следует начать реализацию проекта «Spectrum Expert».
__________________
Мастерская звука Stone Voices (Каменные голоса)
• Изготовление музыкальных инструментов
• Звукозаписывающая музыкальная студия
• Разработка программного обеспечения для работы со звуком и музыкой
• Исследования в области звука и музыки
• Online-консультации по вопросам звука, акустики, звукозаписи, сведения, аранжировки, музыкальной электроники и программного обеспечения
Васян вне форума   Ответить с цитированием