Interested Article - Алгоритм Карплуса — Стронга

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

Эту технику можно рассматривать как субтрактивно-гранулярный синтез с применением линии обратной связи , аналогично гребенчатому фильтру для анализа методом z-преобразования . Её также можно рассматривать в качестве простейшего случая волнового синтеза , поскольку линия задержки выступает как хранилище одного периода сигнала.

изобрёл алгоритм, а первым произвёл анализ его работы. Вместе они разработали программную и аппаратную реализации алгоритма, в том числе и реализацию на СБИС . Они назвали алгоритм «Digitar» ( игра слов от англ. digital guitar — цифровая гитара).

Принцип работы

  1. Генерируется короткий сигнал (длиной L отсчетов). В оригинальном алгоритме использовался короткий сигнал белого шума , однако может использоваться любой широкополосный сигнал, например ЛЧМ , период пилообразной или прямоугольной волны.
  2. Сигнал одновременно подается на выход и на вход линии задержки длиной L отсчетов.
  3. Выход линии задержки пропускается через . Для поддержания стабильной положительной обратной связи коэффициент передачи фильтра должен быть строго меньше 1 для всех частот. В качестве фильтра может использоваться однополюсной фильтр низких частот (как на картинке). В оригинальном алгоритме фильтр состоял из усреднителя двух смежных отсчетов, поскольку такой фильтр позволяет обойтись без умножителя и использовать только операции сложения и битового сдвига . Характеристики фильтра являются определяющими для гармонической структуры затухающего сигнала.
  4. Выход фильтра одновременно микшируется с выходом и подается на вход линии задержки.

Настройка струны

Основная частота (точнее, самая низкая ненулевая гармоника) полученного сигнала — самая низкая частота, при которой развернутый отклик фазы запаздывания и фильтра в каскаде равен . Требуемое D для данного основного тона F 0 вычисляется по формуле D = F s / F 0 , где F s — частота семплирования .

Длина любой цифровой линии задержки является целым множителем периода семплирования. Для получения дробного запаздывания используются интерполирующие фильтры с параметрами, соответствующими запаздыванию фазы при выбранной основной частоте. Могут быть использованы БИХ - или КИХ -фильтры, однако КИХ-фильтр обладает тем преимуществом, что импульсные помехи подавляются, если дробное запаздывание изменяется с течением времени. Простейшим дробным способом вычисления дробного запаздывания является линейная интерполяция двух отсчётов (например, s (4.2) = 0.8 s (4) + 0.2 s (5)). Если фазовая задержка изменяется с частотой, гармоники могут быть усилены или ослаблены по сравнению с основной частотой. Оригинальный алгоритм использовал среднее значение двух последовательных отсчётов, что позволило реализовать фильтр с использованием только сложения и битового сдвига, делая реализацию весьма эффективной.

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

Результат работы алгоритма Карплуса-Стронга можно прослушать в прилагающемся аудиофайле. Алгоритм использует коэффициент передачи 0.98 с последовательным смягчением частот низкочастотным фильтром первого порядка. Звучит нота ля второй октавы, 220 Гц .

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

Усовершенствования алгоритма

и поняли, что алгоритм в физическом смысле аналогичен записи отклонений струны в фиксированной точке с течением времени, а фильтр характеризует потерю струной энергии за один период. Джулиус О. Смит и другие исследователи обобщили идею алгоритма до метода цифрового волновода , который также можно применять для синтеза духовых и мембранных инструментов. Первый набор расширений и обобщений был представлен в работе 1982 года на международной конференции компьютерной музыки в Венеции, а также опубликован с дополнениями в 1983 году в журнале компьютерной музыке, в статье «Extensions of the Karplus Strong Plucked String Algorithm», за авторством Дэвида Яффе и Джулиуса О. Смита .

создал более совершенную модификацию с использованием для синтеза щипковых инструментов, опубликованную в виде патента.

Примечания

  1. .

Литература

Ссылки

Источник —

Same as Алгоритм Карплуса — Стронга