Подскажите демо разложение звука

Все, что вы хотели знать о программизме, но боялись спросить.
Аватара пользователя
Димас
Житель
Сообщения: 593
Зарегистрирован: 22 июл 2005, 16:58
Откуда: Север->Торонто

Re: Подскажите демо разложение звука

Сообщение Димас »

fima писал(а): Задачу можно упростить сгенерировав тестовый сигнал, скажем из 10 синусоид одинаковой амплитуды из разных частотных диапазонов. Потом еквалайзером по очереди давить эти диапазоны.
Пожалуй я так и сделаю, это наверное наиболее наглядный способ.

Я тут подумал, разложение Фурье, как бы сказать,является очень artifisial. Я имею в виду, что получаемые частоты могут не иметь ничего общего с оригиналом. Например,если мы возьмем сигнал, состоящий из синусоид 1000 и 1300 Hz, то Фурье преобразование даст частоты типа 1000, 2000,3000 и т.д. (гармоники). А изначально таких частот, 2000 и более, не было. Так что, я отказываюсь от Фурье. :)
Аватара пользователя
Waterbyte
Графоман
Сообщения: 48035
Зарегистрирован: 10 авг 2007, 13:43

Re: Подскажите демо разложение звука

Сообщение Waterbyte »

Димас писал(а):Так что, я отказываюсь от Фурье. :)
компрадорская буржуазия! :D
Аватара пользователя
Правильные пацаны
Маньяк
Сообщения: 1776
Зарегистрирован: 29 апр 2009, 20:14

Re: Подскажите демо разложение звука

Сообщение Правильные пацаны »

Димас писал(а):
Правильные пацаны писал(а):Подсказываю - mp3.
IDCT и т.д. т.п
Не-е. Хотелось бы использовать готовое ПО, а не писать все самому.
ну - как я уже говорил - mp3 - почитайте как сделано.
crook
Зритель
Сообщения: 6
Зарегистрирован: 10 авг 2010, 20:49

Re: Подскажите демо разложение звука

Сообщение crook »

Аудио эквалайзет изменяет амплитуду сигнала в заданной полосе частот. Для этого проще всего использовать набор полосовых фильтров - сигнал фильтруется с помощью этих фильтров, полученные узкополосные сигналы усиливаются или ослабляются и затем складываются. MP3 и IDCT к эквалайзеру не имеют отношения. В частности MP3 использует гибридный банк фильтров (QMF полосовые фильтры + MDCT/IMDCT), при этом сигнал в каждом диапазоне инвертирован по отношению к соседнему. Изменение амплитуды сигнала после фильтрования приводит к возникновению дополнительного aliasing, который не будет подавляться стандатными средствами, что проявляется в металлическом звучании. Для демонстрации проще всего взять демо из Matlab или , если есть желание написать самому, то использовать STFT (Short Time Fourier Transform), которое реализуется элементарно. Кстати, правильно реализованное преобразование Фурье никаких новых гармоник с сигнал не вносит, а показывает то, что в нем действительно есть. Для этого нужно, чтобы сигнал наростал и убывал плавно и в нем не было разрывов (в силу периодичноcти преобразования начальная и конечная точки должны совпадать). Реализуется это элементарно в том же STFT путем умножения сигнала на оконную функцию, начальное и конечные значения которой равны нулю (Hann window, for example http://en.wikipedia.org/wiki/Window_function). Реализация STFT ( поиск в интернете) займет минут 10-20, в вот с UI, загрузкой аудио файлов и их проигрыванием прийдется немного повозиться. Для этого можно использовать JukeBox или PlayWnd из Players samples из DirectX SDK (по крайне мере в DX9 такое было).
crook
Зритель
Сообщения: 6
Зарегистрирован: 10 авг 2010, 20:49

Re: Подскажите демо разложение звука

Сообщение crook »

Кстати, если очень не хочется писать самому, то можно использовать Adobe Audition (бывший CoolEdit) - в нем есть графический эквалайзер и поддержка всех основных типов аудио файлов. Ну а если и этого мало, то можно попробовать выбрать готовый вариант на http://www.freedownloadscenter.com/Sear ... lizer.html
Но честно говоря , вместо того чтобы пробовать какая конкретная программа из этой сотни подойдет для демонстрации, я уверен, что было бы быстрее написать ее самому.
Аватара пользователя
aissp
Маньяк
Сообщения: 2710
Зарегистрирован: 07 ноя 2005, 09:51

Re: Подскажите демо разложение звука

Сообщение aissp »

ежели вы разложите данную функцию в ряд на отрезке от 0 до 13000 сек вы получите ровно две гармоники.
Аватара пользователя
Правильные пацаны
Маньяк
Сообщения: 1776
Зарегистрирован: 29 апр 2009, 20:14

Re: Подскажите демо разложение звука

Сообщение Правильные пацаны »

crook писал(а):Аудио эквалайзет изменяет амплитуду сигнала в заданной полосе частот. Для этого проще всего использовать набор полосовых фильтров - сигнал фильтруется с помощью этих фильтров, полученные узкополосные сигналы усиливаются или ослабляются и затем складываются. MP3 и IDCT к эквалайзеру не имеют отношения.
Ы? Там уже все отфильтровано и поделено на частоты, только "амплитуду меняй"

http://www.mp3-tech.org/programmer/docs/fpga_report.pdf
The first three, huffman decoding, requantize and reordering
convert the original MP3 bitstream into 576 frequency lines
divided into 32 subbands with 18 frequency lines in each. This
is the format which the last three blocks antialias, IMDCT
and filterbank use. These blocks transform the MP3 from
the frequency domain into the time domain.
crook
Зритель
Сообщения: 6
Зарегистрирован: 10 авг 2010, 20:49

Re: Подскажите демо разложение звука

Сообщение crook »

Правильные пацаны писал(а):
crook писал(а):Аудио эквалайзет изменяет амплитуду сигнала в заданной полосе частот. Для этого проще всего использовать набор полосовых фильтров - сигнал фильтруется с помощью этих фильтров, полученные узкополосные сигналы усиливаются или ослабляются и затем складываются. MP3 и IDCT к эквалайзеру не имеют отношения.
Ы? Там уже все отфильтровано и поделено на частоты, только "амплитуду меняй"

http://www.mp3-tech.org/programmer/docs/fpga_report.pdf
The first three, huffman decoding, requantize and reordering
convert the original MP3 bitstream into 576 frequency lines
divided into 32 subbands with 18 frequency lines in each. This
is the format which the last three blocks antialias, IMDCT
and filterbank use. These blocks transform the MP3 from
the frequency domain into the time domain.
Правильные пацаны писал(а): Ы? Там уже все отфильтровано и поделено на частоты, только "амплитуду меняй"
Это конечно по-пацанячему правильно - типа поделить ну и тд. Работать это конечно будет, только плохо.
Желательно документацию читать не по диагонали, опуская технические детали, а хотя бы через строку.
Ключевве слова здесь - IMDCT & antialias. Кроме того, никто не гарантирует, что MP3 поток всегда представлен в виде 576 спектральных коэффициентов. 576 (32х18) бывает только в случае длинных блоков, а есть еще и короткие блоки (transients), которые представлены в виде 192 частотных коэффициентов, а есть еще и переходные. Не вдаваясь в подробности можно сказать, что при использовании этого подхода ( только "амплитуду меняй" ) эффект конечно будет заметен, только большинство бы слушателей предпочло, чтобы его не было.
Ответить