Алгоритм Карплуса-Стронга для синтеза струны — способ синтеза звука, заключающийся в пропускании короткого сигнала через линию задержки с фильтром. В зависимости от параметров, полученный звук может быть похож на звук струны, извлекаемый медиатором или тэппингом, либо на звуки некоторых ударных инструментов.
Эту технику можно рассматривать как субтрактивно-гранулярный синтез с применением линии обратной связи, аналогично гребенчатому фильтру для анализа методом z-преобразования. Её также можно рассматривать в качестве простейшего случая волнового синтеза, поскольку линия задержки выступает как хранилище одного периода сигнала.
Александр Стронг изобрёл алгоритм, а Кевин Карплус первым произвёл анализ его работы. Вместе они разработали программную и аппаратную реализации алгоритма, в том числе и реализацию на СБИС. Они назвали алгоритм «Digitar» (игра слов от англ. digital guitar — цифровая гитара).
Основная частота (точнее, самая низкая ненулевая гармоника) полученного сигнала — самая низкая частота, при которой развернутый отклик фазы запаздывания и фильтра в каскаде равен . Требуемое запаздывание по фазе D для данного основного тона F0 вычисляется по формуле D = Fs/F0, где Fs — частота семплирования.
Длина любой цифровой линии задержки является целым множителем периода семплирования. Для получения дробного запаздывания используются интерполирующие фильтры с параметрами, соответствующими запаздыванию фазы при выбранной основной частоте. Могут быть использованы БИХ- или КИХ-фильтры, однако КИХ-фильтр обладает тем преимуществом, что импульсные помехи подавляются, если дробное запаздывание изменяется с течением времени. Простейшим дробным способом вычисления дробного запаздывания является линейная интерполяция двух отсчётов (например, s(4.2) = 0.8s(4) + 0.2s(5)). Если фазовая задержка изменяется с частотой, гармоники могут быть усилены или ослаблены по сравнению с основной частотой. Оригинальный алгоритм использовал среднее значение двух последовательных отсчётов, что позволило реализовать фильтр с использованием только сложения и битового сдвига, делая реализацию весьма эффективной.
В оригинальной работе 1983 года указывается, что анализ с использованием Z-преобразования позволяет получить частоты и времена затухания гармоник с более высокой точностью.
Результат работы алгоритма Карплуса-Стронга можно прослушать в прилагающемся аудиофайле. Алгоритм использует коэффициент передачи 0.98 с последовательным смягчением частот низкочастотным фильтром первого порядка. Звучит нота ля второй октавы, 220 Гц.
![]() | |
Карплус-Стронг №1 | |
Помощь по воспроизведению |
Постоянный период (то есть, длина линии задержки) дает звук, похожий на струнные или колокол. Резкое увеличение периода сразу после начала сигнала производит звуки, похожие на барабан.
Алекс Стронг и Кевин Карплус поняли, что алгоритм в физическом смысле аналогичен записи отклонений струны в фиксированной точке с течением времени, а фильтр характеризует потерю струной энергии за один период. Джулиус О. Смит и другие исследователи обобщили идею алгоритма до метода цифрового волновода, который также можно применять для синтеза духовых и мембранных инструментов. Первый набор расширений и обобщений был представлен в работе 1982 года на международной конференции компьютерной музыки в Венеции, а также опубликован с дополнениями в 1983 году в журнале компьютерной музыке, в статье «Extensions of the Karplus Strong Plucked String Algorithm», за авторством Дэвида Яффе и Джулиуса О. Смита[1].
Алекс Стронг создал более совершенную модификацию с использованием волновых таблиц для синтеза щипковых инструментов, опубликованную в виде патента.
Данная страница на сайте WikiSort.ru содержит текст со страницы сайта "Википедия".
Если Вы хотите её отредактировать, то можете сделать это на странице редактирования в Википедии.
Если сделанные Вами правки не будут кем-нибудь удалены, то через несколько дней они появятся на сайте WikiSort.ru .