Страница 2 из 2
Re: Подскажите демо разложение звука
Добавлено: 26 июл 2010, 15:51
Димас
fima писал(а):
Задачу можно упростить сгенерировав тестовый сигнал, скажем из 10 синусоид одинаковой амплитуды из разных частотных диапазонов. Потом еквалайзером по очереди давить эти диапазоны.
Пожалуй я так и сделаю, это наверное наиболее наглядный способ.
Я тут подумал, разложение Фурье, как бы сказать,является очень artifisial. Я имею в виду, что получаемые частоты могут не иметь ничего общего с оригиналом. Например,если мы возьмем сигнал, состоящий из синусоид 1000 и 1300 Hz, то Фурье преобразование даст частоты типа 1000, 2000,3000 и т.д. (гармоники). А изначально таких частот, 2000 и более, не было. Так что, я отказываюсь от Фурье.

Re: Подскажите демо разложение звука
Добавлено: 26 июл 2010, 16:22
Waterbyte
Димас писал(а):Так что, я отказываюсь от Фурье.

компрадорская буржуазия! 
Re: Подскажите демо разложение звука
Добавлено: 26 июл 2010, 16:27
Правильные пацаны
Димас писал(а):Правильные пацаны писал(а):Подсказываю - mp3.
IDCT и т.д. т.п
Не-е. Хотелось бы использовать готовое ПО, а не писать все самому.
ну - как я уже говорил - mp3 - почитайте как сделано.
Re: Подскажите демо разложение звука
Добавлено: 11 авг 2010, 20:17
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 такое было).
Re: Подскажите демо разложение звука
Добавлено: 11 авг 2010, 20:46
crook
Кстати, если очень не хочется писать самому, то можно использовать Adobe Audition (бывший CoolEdit) - в нем есть графический эквалайзер и поддержка всех основных типов аудио файлов. Ну а если и этого мало, то можно попробовать выбрать готовый вариант на
http://www.freedownloadscenter.com/Sear ... lizer.html
Но честно говоря , вместо того чтобы пробовать какая конкретная программа из этой сотни подойдет для демонстрации, я уверен, что было бы быстрее написать ее самому.
Re: Подскажите демо разложение звука
Добавлено: 13 авг 2010, 00:21
aissp
ежели вы разложите данную функцию в ряд на отрезке от 0 до 13000 сек вы получите ровно две гармоники.
Re: Подскажите демо разложение звука
Добавлено: 13 авг 2010, 06:18
Правильные пацаны
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.
Re: Подскажите демо разложение звука
Добавлено: 17 авг 2010, 01:41
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 частотных коэффициентов, а есть еще и переходные. Не вдаваясь в подробности можно сказать, что при использовании этого подхода ( только "амплитуду меняй" ) эффект конечно будет заметен, только большинство бы слушателей предпочло, чтобы его не было.