Блог Metlivi

Как создать широтно-импульсную модуляцию, складывая пилообразные волны противоположной полярности

Чтобы создать широтно-импульсную модуляцию (ШИМ), сложите два одинаковых пилообразных сигнала с равными уровнями, инвертируйте полярность одного из них и изменяйте их взаимную фазу. Их противоположные наклоны взаимно компенсируются между сбросами, оставляя импульсный сигнал, ширина которого зависит от расстояния между сбросами. New Systems Instruments прямо описывает этот метод для своего фазоуправляемого пилообразного осциллятора. Triphase Oscillator

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

29 октября 2026 г.8 мин чтенияАвтор: Metlivi Editorial Team
Раздел 1

Какие параметры двух пилообразных сигналов должны совпадать, чтобы получить импульс?

Вам нужны два пилообразных сигнала с одинаковой формой, равными амплитудами, противоположной полярностью и регулируемым взаимным фазовым соотношением. Для точного статичного импульса их частоты также должны совпадать. Один сигнал растёт между сбросами, а другой падает; при сложении их наклоны взаимно компенсируются.

Для такой схемы понадобится источник пилообразного сигнала с независимо регулируемыми фазовыми выходами, микшер, способный вычитать один сигнал из другого, и низкочастотный осциллятор (LFO) для модуляции. Можно также использовать два осциллятора и отдельный инвертор полярности. Triphase Oscillator — один из документированных аппаратных вариантов: он выдаёт пилообразные сигналы одинаковой высоты тона с независимым управлением фазой и оснащён биполярным микшером. Triphase Oscillator

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

Поэтому регулятор начальной фазы синтезатора полезен, только если он задаёт нужное вам соотношение. Для непрерывной ШИМ нужен параметр, изменяющий взаимную фазу во время звучания ноты, либо разница частот, из-за которой фаза будет дрейфовать.

Раздел 2

Почему при вычитании пилообразных сигналов меняется ширина импульса?

Представьте две одинаковые восходящие пилы, сдвинутые друг относительно друга на часть цикла. Вычтите одну из другой. Между сбросами обе растут с одинаковой скоростью, поэтому их разность остаётся постоянной. При сбросе любой из них разность скачком переходит на другой уровень. Расстояние между двумя сбросами определяет длительность пребывания выходного сигнала на каждом уровне. Этот метод вычитания задержанной пилы описан в заметке Стеффана Дидрихсена по синтезу. Широтно-импульсная модуляция

Для предсказания результата используем явное математическое соглашение. Пусть p — текущая фаза от 0 включительно до 1 не включительно. Определим нормированную восходящую пилу как r(p) = 2 × frac(p) − 1, где frac приводит аргумент к этому интервалу. Для желаемой скважности положительного импульса D от 0 до 1 сформируем y = r(p − D) − r(p).

При таком соглашении выход равен 2(1 − D) в течение первой части цикла длительностью D, а в оставшееся время равен −2D. Таким образом, положительная часть длится ровно D каждого цикла. Значения ниже — иллюстративный расчёт для идеальных пил, меняющихся от −1 до +1, а не измерения конкретного устройства.

Скважность положительного импульса Относительная задержка Высокий уровень Низкий уровень
25% Четверть цикла, или 90° +1.5 −0.5
50% Половина цикла, или 180° +1.0 −1.0
75% Три четверти цикла, или 270° +0.5 −1.5

Неравные положительный и отрицательный уровни при 25% и 75% ожидаемы: в этой конструкции среднее значение каждого сигнала равно нулю. Я проверил эти три случая численно на 1 000 равномерно распределённых фазах. Перестановка порядка вычитания меняет полярность выходного сигнала, поэтому отображаемое устройством направление изменения фазы может соответствовать дополнительной скважности положительного импульса.

При нулевом относительном сдвиге одинаковые сигналы противоположной полярности полностью компенсируются. Эта конечная точка полезна для калибровки, но устойчивого импульсного тона она не даёт.

Раздел 3

Как настроить стабильный импульс до добавления модуляции?

Следуйте этой процедуре, если ваш инструмент выдаёт одинаковые пилообразные сигналы с регулируемой взаимной фазой. В руководстве New Systems Instruments описана та же основная схема: один положительный вклад в микшер, один отрицательный и регулировка фазы для задания ширины импульса. Triphase Oscillator — руководство пользователя, редакция 1.01

  1. Выберите два одинаковых пилообразных сигнала. Используйте общий осцилляторный блок или структуру программного осциллятора, которая поддерживает соотношение их частот.
  2. Временно отключите модуляцию. Выключите случайное изменение фазы и дополнительные голоса, чтобы оценить одну пару сигналов.
  3. Направьте оба сигнала на суммирующий микшер. При настройке компенсации сохраните линейность их трактов.
  4. Инвертируйте один из сигналов. Используйте отрицательное усиление микшера или отдельный инвертор. Другой сигнал оставьте положительным.
  5. Уравняйте амплитуды при нулевом сдвиге фазы. Настройте уровни так, чтобы выходной сигнал при сложении стал почти неслышен.
  6. Сдвиньте относительную фазу на полцикла. Идеальный результат — прямоугольная волна с одинаковой длительностью высокого и низкого уровней.
  7. Перейдите к сдвигу на четверть цикла. Убедитесь, что одна часть становится короче, а другая длиннее.

Если есть осциллограф, просмотрите на нём сумму. При фиксированном сдвиге ищите два приблизительно горизонтальных участка, разделённых переходами. Так вы сможете проверить результат, прежде чем оценивать звук через фильтры или эффекты.

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

Раздел 4

Как превратить фиксированный импульс в управляемую ШИМ?

Подайте LFO на регулятор взаимной фазы. Для начала, например, установите фазовое соотношение около половины цикла и выберите медленную частоту модуляции, например 0,3 Гц. Постепенно увеличивайте глубину, пока импульс не начнёт меняться от широкого к узкому, не доходя до полной компенсации. Это начальные настройки, которые следует подбирать на слух, а не характеристики устройства.

Для заданного диапазона модуляции предыдущее соглашение можно записать как D(t) = 0.5 + 0.2 × sin(2π × 0.3 × t), где время t измеряется в секундах. Скважность положительного импульса меняется от 30% до 70%, а один цикл модуляции длится приблизительно 3,33 секунды. Переведите этот диапазон в единицы фазы вашего инструмента: не предполагайте, что каждый фазовый вход использует одинаковый масштаб напряжения.

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

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

Раздел 5

Могут ли немного расстроенные осцилляторы обеспечить такое же движение?

Да. Взаимная фаза двух пилообразных сигналов противоположной полярности и немного различающейся частоты непрерывно меняется. В примере ШИМ Пакетта используется именно этот подход. Он пригодится, если у синтезатора есть настройка частоты осцилляторов и инверсия полярности, но нет непрерывного управления фазой. Сложение пилообразных волн

Фазовое соотношение продвигается на один полный цикл за каждый цикл разницы частот. Например, разница между иллюстративными частотами 100 Гц и 100,2 Гц составляет 0,2 Гц, поэтому взаимная фаза повторяется каждые 1 ÷ 0.2 = 5 секунды. Таким образом, фиксированная разница частот задаёт предсказуемый период развёртки.

Есть небольшое математическое отличие от конструкции с равными частотами. Для нормированных пил наклоны пропорциональны частоте. При вычитании пил с разными частотами между переходами остаётся остаточный наклон; при небольшой разнице частот результат приближается к импульсу с плоскими вершинами. Это прямо следует из дифференцирования участков пилообразных сигналов с линейным нарастанием.

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

Раздел 6

Что делать, если у осциллятора нет регулируемого фазового выхода?

Проверьте, может ли ваша система получить сдвинутую пилу из уже имеющегося сигнала. Doepfer описывает алгебраический метод: сравните входящую пилу с управляющим напряжением, затем добавьте полученный прямоугольный сигнал обратно на нужном уровне, чтобы получить сдвинутую пилу. Управляющее напряжение задаёт эффективный сдвиг. A-137-2 Wave Multiplier II

Если подходящий процессор выдаёт эту сдвинутую пилу отдельно, её можно объединить с исходной пилой противоположной полярности описанным выше способом. Сначала проверьте доступные выходы. В описании Doepfer A-137-2 суммированный выход отличается от отдельных сигналов, доступных внутри устройства; не следует считать, что суммарный выход на передней панели даёт отдельный доступ к сдвинутой пиле. A-137-2 Wave Multiplier II

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

Раздел 7

Как диагностировать неожиданный результат?

Начните с простейшего статичного патча и проверяйте его по шагам. Эти проверки основаны на модели компенсации и помогают отличить ошибки маршрутизации от намеренной модуляции.

Что вы наблюдаете Что проверить Следующее действие
При нулевом сдвиге остаётся сильная пила Полярность и равенство амплитуд Убедитесь, что один сигнал подаётся с отрицательной полярностью, затем настройте уровни для компенсации
При фиксированной ширине видны наклонные участки Частоты, усиление и одинаковость формы волн Уберите расстройку и сравните исходные сигналы
Ширина меняется только в момент нажатия ноты Поведение начальной фазы Найдите способ непрерывной фазовой модуляции или используйте небольшую расстройку
Звук периодически почти исчезает Модуляция доходит до совпадения фаз Уменьшите глубину или сместите центральную фазу
При добавлении второй пилы кажущаяся высота тона повышается Возможно, оба сигнала подаются в микшер с одинаковой полярностью Прежде чем менять фазу, проверьте инверсию

В цифровых реализациях также различайте построение формы волны и качество воспроизведения звука. Математически точная пила содержит разрывы. SciPy прямо указывает, что функция sawtooth не ограничивает полосу и что её гармоники создают алиасинг; оцифровка двух таких сигналов с последующим вычитанием не обеспечивает защиту от алиасинга. Документация SciPy о пилообразном сигнале

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

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

Раздел 8

Источники

Материалы по теме

Продолжить изучение темы