Главная страница


ru.algorithms

 
 - RU.ALGORITHMS ----------------------------------------------------------------
 From : Sergey Andrianov                     2:5020/1507.400 28 Mar 2002  22:25:40
 To : voodoochile
 Subject : Re: Получение огибающей звуковой волны
 -------------------------------------------------------------------------------- 
 
 
 Однажды 28-Mar-02  в 15:28   voodoochile (via gate)
 написал       All    по поводу
 -=-   Получение огибающей звуковой волны  -=-
 
 v> Я пытаюсь написать  WAV->MIDI преобразователь(преобразует аудио не
 v> только в последовательность стартов-стопов, но и генерирует функции для
 v> volume, pitch)
 
 v> Задачу построения огибающей я решил примитивно(имитация аналогового
 v> пик-детектора):
 
 v>   if(envelope[Chan] < ps[ii]) {
 v>    ps[ii] = (short)(ps[ii] + ga * (envelope[Chan] - ps[ii]));
 v>    envelope[Chan] = ps[ii];
 
 v>   } else {
 v>    ps[ii] = (short)(ps[ii] + gr * (envelope[Chan] - ps[ii]));
 v>    envelope[Chan] = ps[ii];
 v>   }
 v> Это одна итерация цикла.
 v> Здесь
 v> envelope[Chan]  -- значение огибающей,
 v> ps[ii] - то, что приходит из входного буфера.
 
    Вообще-то пиковый детектор он на то и пиковый детектор, чтобы давать не
 огибающую, а что-то совсем другое. Думаю, для огибающей все-таки нужен
 выпрямитель с ФHЧ. То есть вместо pp[ii] берешь abs(pp[ii]), и ga=gr, а раз так,
 то условие можно убрать:
    envelope[ii] := envelope[ii-1]*(1-k) + abs(ps[ii])*k,
    где k << 1.
 
 v> ВОПРОС:
 v>    существуют ли иные алгоритмы получения огибающей и частоты тона,
 v> работающие в режиме реального времени?
 
 v> Частоту тона мерить здесь оч. сложно, поскольку цепляются не только пики
 v> основного тона :((
 
    Можно произвести Фурье-анализ, можно пропустить сигнал через ФHЧ, можно
 пытаться разделить сигнал на несколько частотных полос и искать в наинизшей
 области, в которой амплитуда не менее определенного процента от максимальной
 (т.е. набор полосовых фильтров и детекторов огибающей + сравнение/выбор полосы +
 измерение периода отфильтрованного узкополосного сигнала в выбранной полосе).
 Kстати, приготовься к тому, что алгоритм все равно при некоторых сигналах будет 
 работать неправильно. Тебе,наверное, интересно будет узнать, что некоторые
 инструменты вообще не содержат в спектре основного тона. В этом случае перед
 обработкой можно применить нельнейное преобразование, например, численный аналог
 триггера Шмитта. 
 
 v> Я нашел в Сети статью каких-то японцев
 v> http://www.icspat.com/papers/30mfi.pdf  .
 v> Они пытаются получать эти пики при помощи нейронной сети.  Все вроде
 v> понятно, но не ясно , KАKИМ ОБРАЗОМ рассчитываются значения весов
 v> нейронов!
 
    Они не рассчитываются, они "обучаются". 
 
 v> Hайти в сети исходные тексты программ по этой тематике мне пока не
 v> удалось.
 
    Hеудивительно.
                   До свидания,  в  21:09 MSK
                                  Sergey
 
 ---
  * Origin: Sergiev Posad (2:5020/1507.400)
 
 

Вернуться к списку тем, сортированных по: возрастание даты  уменьшение даты  тема  автор 

 Тема:    Автор:    Дата:  
 Получение огибающей звуковой волны   voodoochile   28 Mar 2002 16:28:21 
 Полyчение огибающей звyковой волны   Alexander Grischuk   04 Apr 2002 23:01:54 
 Получение огибающей звуковой волны   Evgenij Masherov   29 Mar 2002 00:00:18 
 Re: Получение огибающей звуковой волны   voodoochile   29 Mar 2002 14:22:45 
 Re: Получение огибающей звуковой волны   Sergei Katkovsky   02 Apr 2002 10:37:06 
 Re: Получение огибающей звуковой волны   Evgenij Masherov   30 Mar 2002 00:15:50 
 Получение огибающей звуковой волны   Alexander V. Lushnikov   30 Mar 2002 14:36:36 
 Получение огибающей звуковой волны   Evgenij Masherov   30 Mar 2002 20:32:32 
 Re: Получение огибающей звуковой волны   voodoochile   31 Mar 2002 11:12:39 
 Re: Получение огибающей звуковой волны   Evgenij Masherov   01 Apr 2002 09:38:15 
 Re: Получение огибающей звуковой волны   Sergey Andrianov   28 Mar 2002 22:25:40 
Архивное /ru.algorithms/52053CA38A55.html, оценка 1 из 5, голосов 10
Яндекс.Метрика
Valid HTML 4.01 Transitional