Interested Article - Алгоритм Карплуса — Стронга
- 2020-06-13
- 1
Алгоритм Карплуса-Стронга для синтеза струны — способ синтеза звука , заключающийся в пропускании короткого сигнала через линию задержки с фильтром. В зависимости от параметров, полученный звук может быть похож на звук струны, извлекаемый медиатором или тэппингом , либо на звуки некоторых ударных инструментов .
Эту технику можно рассматривать как субтрактивно-гранулярный синтез с применением линии обратной связи , аналогично гребенчатому фильтру для анализа методом z-преобразования . Её также можно рассматривать в качестве простейшего случая волнового синтеза , поскольку линия задержки выступает как хранилище одного периода сигнала.
изобрёл алгоритм, а первым произвёл анализ его работы. Вместе они разработали программную и аппаратную реализации алгоритма, в том числе и реализацию на СБИС . Они назвали алгоритм «Digitar» ( игра слов от англ. digital guitar — цифровая гитара).
Принцип работы
- Генерируется короткий сигнал (длиной L отсчетов). В оригинальном алгоритме использовался короткий сигнал белого шума , однако может использоваться любой широкополосный сигнал, например ЛЧМ , период пилообразной или прямоугольной волны.
- Сигнал одновременно подается на выход и на вход линии задержки длиной L отсчетов.
- Выход линии задержки пропускается через . Для поддержания стабильной положительной обратной связи коэффициент передачи фильтра должен быть строго меньше 1 для всех частот. В качестве фильтра может использоваться однополюсной фильтр низких частот (как на картинке). В оригинальном алгоритме фильтр состоял из усреднителя двух смежных отсчетов, поскольку такой фильтр позволяет обойтись без умножителя и использовать только операции сложения и битового сдвига . Характеристики фильтра являются определяющими для гармонической структуры затухающего сигнала.
- Выход фильтра одновременно микшируется с выходом и подается на вход линии задержки.
Настройка струны
Основная частота (точнее, самая низкая ненулевая гармоника) полученного сигнала — самая низкая частота, при которой развернутый отклик фазы запаздывания и фильтра в каскаде равен . Требуемое 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», за авторством Дэвида Яффе и Джулиуса О. Смита .
создал более совершенную модификацию с использованием для синтеза щипковых инструментов, опубликованную в виде патента.
Примечания
- .
Литература
- Karplus, Kevin; Strong, Alex. (англ.) // Computer Music Journal : journal. — MIT Press, 1983. — Vol. 7 , no. 2 . — P. 43—55 . — doi : . — .
- Jaffe, David A.; Smith, Julius O. (англ.) // Computer Music Journal : journal. — MIT Press, 1983. — Vol. 7 , no. 2 . — P. 56—69 . — doi : . — .
- Патент США № 4 649 783. . на сайте Ведомства по патентам и товарным знакам США .
- Патент США № 4 622 877. . на сайте Ведомства по патентам и товарным знакам США .
- Moore, F. Richard. (англ.) . — Upper Saddle River: Prentice-Hall , 1990. — ISBN 0-13-252552-6 .
Ссылки
- 2020-06-13
- 1