Как стать автором
Обновить

Обработка сложных событий с помощью цепочек

Программирование *Алгоритмы *
В статье описывается метод обработки сложных событий с помощью цепочек. В качестве практического приложения была выбрана относительно простая задача — прогнозирование движения валютного курса.

При построении цепочек использовалась методология, описанная в статье “Автоматический анализ текстов без модераторов” и в комментариях к ней. После описания алгоритма будут предложена стратегия с положительным математическим ожиданием прибыли.
Читать дальше →
Всего голосов 19: ↑17 и ↓2 +15
Просмотры 5.7K
Комментарии 18

Предварительная обработка речевых сигналов с помощью Matlab

Алгоритмы *Математика *Matlab *
Из песочницы
Tutorial
Результатом предварительной обработки речевых сигналов является получение множества спектральных векторов, характеризующих этот сигнал и используются для дальнейшего распознавания.

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

Типичная величина одного интервала — 25,6 мс. Соседние интервалы берутся со смещением относительно предыдущего интервала. Применяемая величина перекрытия интервалов равна 10 мс. В результате предварительной проработки каждого из указанных интервалов получаем вектор из нескольких десятков спектральных значений.
Читать дальше →
Всего голосов 11: ↑11 и ↓0 +11
Просмотры 24K
Комментарии 6

Поиск часто встречающихся элементов в массиве

Высокая производительность *Data Mining *Алгоритмы *
Задача: в массиве длиной N найти элемент, который повторяется больше N/2 раз.

Казалось бы, чего тут думать? Возьмём Dictionary<значение элемента, число появлений>, за один проход по массиву сосчитаем появления каждого элемента, потом выберем из словаря искомый элемент. Решение за O(N), куда может быть ещё быстрее?

Есть один нюанс: для словаря нам потребуется O(N) дополнительной памяти — в несколько раз больше размера исходного массива, и это при реализации словаря хоть хэш-таблицей, хоть деревом. Что будем делать, если наша цель — обработка сигнала неким устройством с маленькой памятью? Массив — замеры уровня сигнала, из которых один — «настоящий» передаваемый уровень, а остальные — шум и помехи. Неужели придётся для определения «настоящего» уровня возиться с хэш-таблицами и деревьями?

К счастью, нет: достаточно O(1) дополнительной памяти, и по-прежнему одного прохода по массиву.
Читать дальше →
Всего голосов 105: ↑98 и ↓7 +91
Просмотры 108K
Комментарии 38

Простыми словами о преобразовании Фурье

Математика *Визуализация данных
Из песочницы
Я полагаю что все в общих чертах знают о существовании такого замечательного математического инструмента как преобразование Фурье. Однако в ВУЗах его почему-то преподают настолько плохо, что понимают как это преобразование работает и как им правильно следует пользоваться сравнительно немного людей. Между тем математика данного преобразования на удивление красива, проста и изящна. Я предлагаю всем желающим узнать немного больше о преобразовании Фурье и близкой ему теме того как аналоговые сигналы удается эффективно превращать для вычислительной обработки в цифровые.

image (с) xkcd

Без использования сложных формул и матлаба я постараюсь ответить на следующие вопросы:
  • FT, DTF, DTFT — в чем отличия и как совершенно разные казалось бы формулы дают столь концептуально похожие результаты?
  • Как правильно интерпретировать результаты быстрого преобразования Фурье (FFT)
  • Что делать если дан сигнал из 179 сэмплов а БПФ требует на вход последовательность по длине равную степени двойки
  • Почему при попытке получить с помощью Фурье спектр синусоиды вместо ожидаемой одиночной “палки” на графике вылезает странная загогулина и что с этим можно сделать
  • Зачем перед АЦП и после ЦАП ставят аналоговые фильтры
  • Можно ли оцифровать АЦП сигнал с частотой выше половины частоты дискретизации (школьный ответ неверен, правильный ответ — можно)
  • Как по цифровой последовательности восстанавливают исходный сигнал


Я буду исходить из предположения что читатель понимает что такое интеграл, комплексное число (а так же его модуль и аргумент), свертка функций, плюс хотя бы “на пальцах” представляет себе что такое дельта-функция Дирака. Не знаете — не беда, прочитайте вышеприведенные ссылки. Под “произведением функций” в данном тексте я везде буду понимать “поточечное умножение”

Итак, приступим?
Всего голосов 203: ↑192 и ↓11 +181
Просмотры 926K
Комментарии 188

Задача изменения голоса. Часть 1. Что такое голос?

Блог компании i-Free Group Звук
Этим постом мы хотели бы начать цикл статей, посвященных задаче изменения голоса. В зарубежной литературе данную задачу часто именуют термином voice morphing, в отечественной литературе данная задача ещё не получила достаточного освещения как в научных, так и в инженерных кругах. Тема является достаточно обширной и во многом творческой. В результате работы в данном направлении у нас накопился определенный опыт, который мы планируем систематизировать и изложить, а также передать основную суть некоторых алгоритмов.

image

Изменение голоса может преследовать разную цель. Два основных направления, которые тут однозначно можно выделить – это получение реалистичного звучания измененного голоса и получение некоторого причудливо-фантастичного звучания. Неплохих результатов во втором случае вполне можно добиться, обрабатывая речевой сигнал как обычный звук, не заостряя внимание на его особенностях и делая многие допущения. Например, индустрия электронной музыки породила колоссальное количество разнообразных аудио-эффектов и результат их применения к речевому сигналу помогает создать самый невероятный образ говорящего.
В задаче реалистичного изменения голоса применение «музыкальных» (назовем их так) аудио-эффектов может привнести искажения, не характерные для натуралистичного звучания речи. В подобном случае необходимо более точно понимать, из каких звуков состоит речь, как они образуются и какие их свойства являются критическими для восприятия. Проще говоря — необходимо производить анализ сигнала перед его обработкой. При автоматизированной обработке речевого сигнала в реальном времени этот анализ усложняется многократно, т.к. умножается количество неопределенностей, которые надо как-то попытаться разрешить, и сокращается количество применимых алгоритмов.
В ближайших статьях мы рассмотрим варианты простейшей реализации таких эффектов, как изменение пола говорящего и изменение возраста говорящего. Чтобы читатель лучше понимал, какие параметры сигнала будут изменяться, в первых статьях будут затронуты основные вопросы образования звуков речи и способы формального описания речевого сигнала. После этого уже будут обсуждаться конкретные предлагаемые алгоритмы изменения голоса, их сильные и слабые стороны.

P.S.
Добавил дополнительные ссылки на первоисточники

Читать дальше →
Всего голосов 94: ↑93 и ↓1 +92
Просмотры 52K
Комментарии 31

Задача изменения голоса. Часть 2. Физический/акустический подход к представлению речевого сигнала

Блог компании i-Free Group Звук
Данным постом мы продолжаем цикл статей, посвященных задаче анализа и изменения голоса человека. Напомним кратко о содержании предыдущей статьи:

— было кратко рассказано о звуковом составе речи
— были описаны такие важные процессы как фонация и артикуляция
— была дана нестрогая классификация звуков человеческой речи и описаны характерные особенности классов звуков
— кратко были обозначены проблемы, возникающие при обработке речевых сигналов

Также мы немного обозначили задачи, которые фактически решает наше подразделение в компании i-Free. Закончена предыдущая статья была «громким» обещанием описать модели представления речевого сигнала и показать, как данные модели возможно использовать для изменения голоса диктора.

Тут сразу сделаем небольшую оговорку. Термин «речевой сигнал» может восприниматься по-разному и нередко значение зависит от контекста. В контексте нашей работы нас интересуют лишь звуковые-акустические свойства речевого сигнала, его смысловая и эмоциональная нагрузка в данной и ближайших статьях рассматриваться не будут.

При творческом подходе к задаче изменения голоса большинство известных моделей представления речевого сигнала являются весьма мощным инструментом, позволяющим сделать очень и очень многое. Как-то классифицировать подобные начинания не видится целесообразным, а на демонстрацию «всего подряд» уйдет масса времени. В данной и следующей статьях мы ограничимся лишь кратким описанием наиболее часто применяемых моделей и как-то попытаемся объяснить их физический/практический смысл. Примеры применения данных моделей будут показаны несколько позже — в следующих статьях мы опишем простейшую реализацию таких эффектов, как изменения пола и возраста диктора.

WARNING!



Эта статья ставит своей целью совсем чуть-чуть описать физику формирования звука в речевом тракте с помощью упрощенной модели. Как следствие, статья содержит некоторое количество формул и, возможно, не вполне очевидных переходов. Первоисточники указаны в тексте и при желании можно более подробно ознакомиться с данным материалом самостоятельно. Описанные в данной статье модели редко применяются для практических задач обработки записанной речи, скорее для исследовательских. Читатель, заинтересованный лишь в прикладных моделях представления речевого сигнала, сможет подчерпнуть для себя информацию в нашей следующей статье.

Читать дальше →
Всего голосов 27: ↑27 и ↓0 +27
Просмотры 17K
Комментарии 1

Гармонические колебания

Математика *Визуализация данных
На хабре было несколько статей по преобразованию Фурье и о всяких красивостях типа Цифровой Обработки Сигналов (ЦОС), но неискушённому пользователю совершенно не понятно, зачем всё это нужно и где, а главное как это применить.


АЧХ шума.

Лично мне после прочтения этих статей (например, этой ) не стало понятно, что это и зачем оно нужно в реальной жизни, хотя было интересно и красиво.
Хочется не просто поглядеть красивые картинки, а так сказать, ощутить нутром, что и как работает. И я приведу конкретный пример с генерацией и обработкой звуковых файлов. Можно будет и послушать звук, и поглядеть его спектр, и понять, почему это так.
Статья не будет интересна тем, кто владеет теорией функций комплексной переменной, ЦОС и прочими страшными темами. Она скорее для любопытствующих, школьников, студентов и им сочувствующих :).
Читать дальше →
Всего голосов 116: ↑111 и ↓5 +106
Просмотры 241K
Комментарии 48

Синусоидальное моделирование и опечатки в Калтехе

Алгоритмы *Математика *
Tutorial


Этот пост про относительно новый метод обработки сигналов, описанный в статье Adaptive data analysis via sparse time-frequency representation, а также про крохотную, но сбившую лично меня с толку, ошибку. Сию статью опубликовали в 2011 году профессора прикладной математики Калифорнийского Технологического института Томас И. Хоу и Ши Цзоцян, и, вероятно, к моменту, как вы это читаете, они уже её поправили.
На эту статью я наткнулся в поиске различных методов частотно-временного анализа нелинейных и нестационарных сигналов — в моем случае ультразвуковых сигналов от передвигающихся форменных элементов крови в сосудах человека. Суть такого анализа состоит в отслеживании изменений характеристик сигнала, иначе говоря, мы хотим знать зависимость составляющих сигнал частот от времени. За исключением широко распространенных методов — спектрального и вейвлет-анализа, были найдены такие методы как EMD (разложение на эмпирические моды) и синусоидальное моделирование, о котором далее пойдет здесь речь.
Метод эмпирических мод довольно прост в применении, однако не особо развит с точки зрения обоснованности полученных результатов. Томас Хоу и Ши Цзоцян пошли дальше в развитии математического аппарата и предложили свой метод синусоидального моделирования сигнала. Его идея заключается в разреженной декомпозиции сигнала на гармоники с гладкими амплитудами. Какой результат мы ожидаем получить — на картинке выше. В данном случае раскладывался сигнал, полученный функцией f(t) = 6t + cos(8πt) + 0.5 cos(40πt). Разложение сигнала, естественно, не уникально, поэтому был введен критерий минимума составляющих гармоник, и задача сформировалась следующим образом:
Читать дальше →
Всего голосов 46: ↑42 и ↓4 +38
Просмотры 10K
Комментарии 4

Задача изменения голоса. Часть 3. Прикладные модели представления речевого сигнала: LPC

Блог компании i-Free Group Звук
image

Продолжаем цикл статей, посвященных задаче изменения человеческого голоса, над решением которой мы работаем в компании i-Free. В предыдущей статье я попытался кратко рассказать о математическом аппарате, применяемом для описания сложных физических процессов, происходящих в речевом тракте человека при произнесении звуков. Были затронуты вопросы, связанные с моделированием акустики речевого тракта. Были описаны допустимые во многих случаях упрощения и аппроксимации. Итогом статьи было приведение физической модели распространения звука в речевом тракте к простому дискретному фильтру.

В данной статье хочется с одной стороны продолжить предыдущие начинания, а с другой — немного отойти от фундаментальной теории и поговорить о более практических (более «инженерных») вещах. Кратко будет рассмотрена одна из прикладных моделей, часто применяемая при работе с речевым сигналом. Математическая база этого подхода, как это часто бывает, изначально была заложена в рамках исследований совершенно другой направленности. Тем не менее физические особенности речевого сигнала позволили применить данные идеи именно для его эффективного анализа и модификации.

Предыдущая статья, в силу специфики рассматриваемого вопроса, была перенасыщена научными терминами и формулами. В данной — мы постараемся вместо детального описания математических построений сделать акцент на идеологическую концепцию и качественные характеристики описываемой модели.

Далее будет более подробно рассмотрена теория модели LPC (Linear Prediction Coding) – замечательный стройных подход к описанию речевого сигнала, в прошлом определивший направление развития речевых технологий на несколько десятилетий и до сих пор часто применяемый, как один из базовых инструментов при анализе и описании речевого сигнала.

Читать дальше →
Всего голосов 25: ↑25 и ↓0 +25
Просмотры 15K
Комментарии 15

Практическое применение преобразования Фурье для анализа сигналов. Введение для начинающих

Математика *Визуализация данных
Recovery mode
Из песочницы

1. Преобразование Фурье и спектр сигнала


Во многих случаях задача получения (вычисления) спектра сигнала выглядит следующим образом. Имеется АЦП, который с частотой дискретизации Fd преобразует непрерывный сигнал, поступающий на его вход в течение времени Т, в цифровые отсчеты — N штук. Далее массив отсчетов подается в некую программку, которая выдает N/2 каких-то числовых значений (программист, который утянул из инета написал программку, уверяет, что она делает преобразование Фурье).

Чтобы проверить, правильно ли работает программа, сформируем массив отсчетов как сумму двух синусоид sin(10*2*pi*x)+0,5*sin(5*2*pi*x) и подсунем программке. Программа нарисовала следующее:

image
рис.1 График временной функции сигнала

image
рис.2 График спектра сигнала

На графике спектра имеется две палки (гармоники) 5 Гц с амплитудой 0.5 В и 10 Гц — с амплитудой 1 В, все как в формуле исходного сигнала. Все отлично, программист молодец! Программа работает правильно.

Это значит, что если мы подадим на вход АЦП реальный сигнал из смеси двух синусоид, то мы получим аналогичный спектр, состоящий из двух гармоник.

Итого, наш реальный измеренный сигнал, длительностью 5 сек, оцифрованный АЦП, то есть представленный дискретными отсчетами, имеет дискретный непериодический спектр.
С математической точки зрения — сколько ошибок в этой фразе?

Теперь начальство решило мы решили, что 5 секунд — это слишком долго, давай измерять сигнал за 0.5 сек.
Читать дальше →
Всего голосов 51: ↑46 и ↓5 +41
Просмотры 229K
Комментарии 66

Об одном забавном подходе к фильтрации унимодальных сигналов

Блог компании Smart Engines Программирование *Алгоритмы *Обработка изображений *Математика *
В этой статье наши инженеры хотели бы поделиться с Хабром достаточно интересным инструментом, который можно эффективно применять для фильтрации зашумленных сигналов, пользуясь априорным знанием об унимодальности сигнала.

Задача оффлайновой фильтрации сигналов в случае, когда ожидаемая форма сигнала известна с точностью до нескольких неизвестных параметров, сводится к задаче аппроксимации. Например, если известно, что сигнал линейно растет на рассматриваемом промежутке, задача сведётся к линейной регрессии, а если можно предположить, что шум — нормален, то правильным методом будет МНК. Но однажды мы столкнулись с задачей оценки формы профиля рентгеновского микрозонда (пучка), про которую априори было достоверно известно только одно: профиль унимодален, а именно имеет ровно один максимум. Оказывается, и в этом случае можно наилучшим (в смысле, например, L2 метрики) образом приблизить экспериментальный сигнал функцией, принадлежащей известному множеству (множеству унимодальных функций). Причём — с приемлемой ассимптотикой вычислительной сложности.

===> ===>
Читать дальше →
Всего голосов 15: ↑14 и ↓1 +13
Просмотры 6.6K
Комментарии 3

Практическое применение преобразования Фурье для обработки сигналов

Программирование *Математика *Программирование микроконтроллеров *
Из песочницы
Введение

Книги и публикации по цифровой обработке сигналов пишут авторы зачастую не догадывающиеся и не понимающие задач, стоящих перед разработчиками. Особенно это касается систем, работающих в реальном времени. Эти авторы отводят себе скромную роль бога, существующего вне времени и пространства, что вызывает некоторое недоумение у читателей подобной литературы. Данная публикация имеет целью развеять недоумения, возникающие у большинства разработчиков, и помочь им преодолеть «порог вхождения», для этих целей в тексте сознательно используется аналогии и терминология сферы программирования.

Данный опус не претендует на полноту и связность изложения.
Читать дальше →
Всего голосов 30: ↑22 и ↓8 +14
Просмотры 44K
Комментарии 51

Слухи об отмене теоремы Котельникова сильно преувеличены

Алгоритмы *Математика *Разработка систем связи *
Перевод

tl;dr:


Учёные из Колумбийского университета во главе с Кеном Шепардом и Рафой Юсте заявили, что обошли столетнюю теорему отсчётов (теорема Найквиста — Шеннона, теорема дискретизации, в русскоязычной литературе — теорема Котельникова): 1, 2. Теперь фильтры защиты от наложения стали необязательными, ведь шум от наложения спектров можно восстановить после дискретизации. Звучит безумно? Да. Я предлагаю $1000 первому, кто докажет, что это не безумие. Чтобы получить награду, обязательно прочтите до конца.

«Фильтруй перед дискретизацией!»


Эта мантра насмерть вбита в головы поколений студентов-инженеров. Здесь под «дискретизацией» подразумевается преобразование непрерывной функции времени в серию дискретных значений. Такой процесс происходит везде, где компьютер оцифровывает сигнал из реального аналогового мира. «Фильтровать» — значит удалять из сигнала высокочастотные составляющие. Поскольку этот процесс происходит в аналоговом мире, то требует реального аналогового оборудования: цепей из резисторов, конденсаторов и усилителей. Создание такой цепи может стать утомительным и трудоёмким процессом, например, если на электронных микросхемах не хватает места. Научная группа Шепарда рассмотрела это ограничение в контексте устройства для записи сигналов от нервных клеток.

Теперь авторы заявляют, что изобрели «парадигму сбора данных, которая не требует фильтров для защиты от наложения для каждого канала, тем самым преодолевая ограничения масштабирования существующих систем». По сути они говорят, что вместо аппаратных цепей можно использовать программное обеспечение, которое работает на цифровой стороне уже после дискретизации. «Ещё одним преимуществом такого подхода к сбору данных является то, что все шаги обработки сигнала (разделение каналов и удаление) реализованы в цифровом виде», сказано в научной работе.
Читать дальше →
Всего голосов 62: ↑60 и ↓2 +58
Просмотры 32K
Комментарии 38

Новая система обработки сигналов удваивает дальность передачи данных по оптоволокну

Сетевое оборудование
image

Исследователи из университетского колледжа Лондона продемонстрировали новую технологию обработки сигналов, передаваемых по оптическому кабелю. Благодаря ей, сигнал может пройти вдвое большее расстояние без ошибок. Технология позволит исключить необходимость в установке промежуточных усилителей, что особенно важно, например, в случае подводных кабелей.
Читать дальше →
Всего голосов 13: ↑12 и ↓1 +11
Просмотры 7.7K
Комментарии 3

Амплитудная модуляция на пальцах

Алгоритмы *Математика *Звук
В недавней статье «Амплитудная модуляция произвольного сигнала» её автор довольно сумбурно попытался представить своё понимание формирования спектра при амплитудной модуляции. Но отсутствие иллюстраций и избыток математики с привлечением интегральных преобразований помешало сообществу понять мысли автора и оценить статью по достоинству; в то время как тема это достаточно простая — и рассмотреть которую мы попробуем ещё раз, на этот раз с картинками и привлечением Wolfram Mathematica.

Итак, идея амплитудной модуляции состоит в том, чтобы передавать низкочастотный сигнал — голос или музыку — модулируя высокочастотный (несущий) сигнал, многократно превышающий слышимый диапазон и занимающий узкую полосу частот в радиоэфире. Сама модуляция осуществляется простым умножением сигнала на несущий:



Читать дальше →
Всего голосов 26: ↑26 и ↓0 +26
Просмотры 36K
Комментарии 4

Проектирование оконных функций, суммирующихся в единицу с заданным уровнем перекрытия

Математика *Звук
Tutorial
Существует ряд задач, в которых длительный по времени сигнал разбивается на сегменты, каждый из которых обрабатывается по отдельности. В частности, такой подход используется для анализа сигнала с помощью оконного преобразования Фурье, или наоборот, при синтезе; а также при спектральной обработке типа удаления шума, изменения темпа, нелинейной фильтрации, сжатии аудиоданных и других.

Сам процесс разбиения математически представляется умножением на некоторую весовую (оконную) функцию со смещением. Для самого простого окна — прямоугольного — это может выглядеть так:

Исходный сигнал:



Разбиения:


Читать дальше →
Всего голосов 28: ↑27 и ↓1 +26
Просмотры 9.2K
Комментарии 21

Разбираем протокол пейджерных сообщений POCSAG, ч1

Мессенджеры *Python *Гаджеты Старое железо Инженерные системы
Привет, Habr!

Давным-давно, когда мобильный телефон стоил 2000$ и минута звонка стоила 50 центов, была такая популярная штука как пейджинговая связь. Затем связь стала дешевле, и пейджер сначала превратился из престижного атрибута делового человека в непрестижный атрибут курьера или секретаря, а затем эта технология практически и вовсе сошла на нет.


Для тех, кто помнит шутку «читал пейджер, много думал», и хочет разобраться, как это работает, продолжение под катом. Для тех, кто хочет разобраться еще более подробно, доступна вторая часть.
Читать дальше →
Всего голосов 52: ↑50 и ↓2 +48
Просмотры 15K
Комментарии 18

Разбираем протокол пейджерных сообщений POCSAG, ч2

Мессенджеры *Python *Стандарты связи Гаджеты Старое железо
Привет, Habr!

В первой части был рассмотрен протокол обмена пейджерными сообщениями POCSAG. Были рассмотрены цифровые сообщения, перейдем теперь к более «полноценным» сообщениям в формате ASCII. Тем более, что декодировать их интереснее, т.к. на выходе будет читаемый текст.


Для тех кому интересно, как это работает, продолжение под катом.
Читать дальше →
Всего голосов 33: ↑33 и ↓0 +33
Просмотры 5.6K
Комментарии 12

Audio AI: выделяем вокал из музыки с помощью свёрточных нейросетей

Обработка изображений *Машинное обучение *Звук
Перевод
Взлом музыки для демократизации производного контента

Отказ от ответственности: вся интеллектуальная собственность, проекты и методы, описанные в этой статье, раскрыты в патентах US10014002B2 и US9842609B2.

Вот бы вернуться в 1965 год, постучать в парадную дверь студии «Эбби-Роуд» с пропуском, зайти внутрь — и услышать настоящие голоса Леннона и Маккартни… Что ж, давайте попробуем. Входные данные: MP3 среднего качества песни «Битлз» We Can Work it Out. Верхняя дорожка — входной микс, нижняя дорожка — изолированный вокал, который выделила наша нейросеть.

Читать дальше →
Всего голосов 69: ↑68 и ↓1 +67
Просмотры 39K
Комментарии 27

Software Defined Radio — как это работает? Часть 2

Программирование *Разработка систем связи *Гаджеты Научно-популярное Электроника для начинающих
Привет, Хабр.

В первой части были описаны основные виды SDR-устройств и кратко были приведены их характеристики. Во второй части я расскажу подробнее о плюсах и минусах SDR, также будут приведены примеры использования этой технологии.



Продолжение под катом (осторожно, траффик).

Если кто пропустил первую часть, желательно начать с нее, чтобы лучше понимать о чем речь.
Читать дальше →
Всего голосов 38: ↑37 и ↓1 +36
Просмотры 30K
Комментарии 91
1