Metlivi 博客

如何通过叠加极性相反的锯齿波创建脉宽调制

要创建脉宽调制(PWM),将两个匹配的锯齿波以相同电平混合,反转其中一个的极性,并改变它们之间的相对相位。在重置之间,它们相反的斜坡会相互抵消,留下一个脉冲波形,其宽度随重置间隔而变化。New Systems Instruments 明确记录了其相位控制锯齿波振荡器的这一技巧。Triphase Oscillator

本指南面向希望通过振荡器和混音功能构建这种声音的合成器用户。先生成固定脉冲,确认抵消效果正常,再加入变化。实际选择在于直接控制相位,还是让两个频率略有差异的波形持续改变相位关系。

2026年10月29日阅读约需 8 分钟作者:Metlivi Editorial Team
第 1 节

两个锯齿波要满足哪些条件才能产生脉冲?

你需要两个基本形状相同、振幅相等、极性相反且相位关系可调的锯齿波信号。若要得到精确的静态脉冲,它们的频率也必须相同。一个信号在重置之间上升,另一个则下降;两者相加时,斜率会相互抵消。

一种实用的配置包括:一个带有可独立调节相位输出的锯齿波信号源、一个可以将一个信号从另一个信号中相减的混音器,以及一个用于调制的低频振荡器(LFO)。也可以使用两个振荡器信号源和一个单独的极性反转器。Triphase Oscillator 是有相关文档说明的一种硬件实现:它提供音高相同、相位可独立控制的锯齿波输出,以及一个双极性混音器。Triphase Oscillator

极性反转和相位偏移是两种不同的操作。极性反转会将每个采样值或电压乘以 −1。相位偏移则会改变波形在周期内的位置。将锯齿波移相半个周期,本身并不会反转其斜率。Puckette 的波形分析表明,相减两个相隔半个周期的锯齿波会产生方波,而将它们相加则会产生频率加倍的锯齿波。锯齿波与对称性

因此,合成器的起始相位控制只有在能建立所需关系时才有用。要实现连续的 PWM,需要能在音符持续期间改变相对相位的参数,或者利用频率差让相位持续漂移。

第 2 节

为什么锯齿波相减会改变脉冲宽度?

设想两个形状相同、彼此错开部分周期的上升锯齿波。将其中一个从另一个中相减。在它们重置之间,两者以相同速率上升,因此差值保持不变。任一波形重置时,差值便跳到另一个电平。两个重置之间的间隔决定输出在每个电平上持续多久。这就是 Steffan Diedrichsen 合成说明中介绍的延迟锯齿波相减法。脉宽调制

以下给出一种明确的数学约定,用于预测结果。令 p 表示当前相位,取值从 0 到小于 1。将归一化上升锯齿波定义为 r(p) = 2 × frac(p) − 1,其中 frac 会将其参数折回到该区间。对于介于 0 和 1 之间的目标正脉冲占空比 D,构造 y = r(p − D) − r(p)。

根据此约定,输出在周期的前 D 部分为 2(1 − 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 节

如何将固定脉冲变为可控的 PWM?

将 LFO 应用到相对相位控制。作为一个起始示例,将相位关系的中心设为半个周期,并使用较慢的调制速率,例如 0.3 Hz。逐渐增加调制深度,直到脉冲从宽变窄,同时避免达到完全抵消。这些只是供你凭耳调整的起始设置,并非产品规格。

如果要设定明确的调制范围,可以按 D(t) = 0.5 + 0.2 × sin(2π × 0.3 × t) 表示前述约定,其中时间 t 的单位为秒。这样会让正脉冲占空比在 30% 至 70% 之间变化,并约每 3.33 秒完成一个调制周期。请将这个范围换算为你的设备所用的相位单位;不要假设所有相位输入采用相同的电压比例。

只移动一个锯齿波的相位,也会让一个脉冲边沿相对于另一个边沿移动。如果这样造成的音高变化超出预期,可以尝试让两个相位以相同幅度朝相反方向移动。Triphase 手册特别建议将同一个控制信号应用到两个相位输入,并为两者设置相反的衰减器极性,以减少基音音高的变化。Triphase Oscillator — 用户手册

在加入更多声音塑形之前,先设定脉冲宽度的变化范围。这样更容易判断音调变弱是因为接近抵消,还是由信号链后续环节造成。

第 5 节

略微失谐的振荡器能产生同样的变化吗?

可以。两个极性相反、频率略有差异的锯齿波,其相对相位会持续变化。Puckette 的 PWM 示例正是采用这种方法。如果合成器提供振荡器调音和极性反转,却没有连续相位控制,这种方法就很有用。组合锯齿波

每当频率差累积一个完整周期,相位关系就会推进一个完整周期。例如,示例中的两个频率为 100 Hz 和 100.2 Hz,频差为 0.2 Hz,因此它们的相对相位每隔 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 锯齿波文档

对于音频速率的软件实现,请使用合适的带限振荡器方法,或使用带有降采样前滤波的过采样结构。Puckette 记录了生成锯齿波时采用过采样和拼接过渡段两种方法。请在目标音符和调制范围内检查结果,不要只依赖低音区的波形检查。锯齿波带限处理策略

分三个阶段构建声音:确认零偏移时能够抵消,在半周期相隔时形成方波,然后再让相对相位变化。按这个顺序操作,可以在每个阶段获得可靠的参照,让最终的 PWM 配置更容易控制。

第 8 节

来源

相关阅读

继续探索这个主题