PWM
PWM(Pulse Width Modulation、パルス幅変調)は、パルス波のPulse widthを時間的に変化させる変調方式である。
シンセサイザーでは、パルス波のDuty cycleをLFOやエンベロープなどで変化させ、倍音構成を時間的に動かす手法を指すことが多い。1基のオシレーターだけでも厚みや動きを感じる音色を作れるため、アナログシンセサイザーの代表的な波形変調手法となっている。
PWMという語は電子工学全般でも使用され、スイッチング電源、モーター制御、LED調光、Class Dアンプなどでは別の目的でPulse Widthを制御する。この記事では主に音響・シンセシス用途を扱う。
基本原理
一定周波数のPulse waveで、High区間とLow区間の比率を時間的に変化させる。
たとえば、
50% → 40% → 30% → 40% → 50% → 60% → 70% → ...
のようにDuty cycleを動かす。
基本周波数が一定なら音高の周期そのものは保たれる一方、各倍音の振幅が変化するため音色が変化する。
Pulse widthとの違い
Pulse widthはある瞬間のパルス幅またはDuty cycleを表すパラメーターである。
PWMは、そのPulse widthを時間的に変化させる操作である。
したがって、
- PW = 波形形状の静的パラメーター
- PWM = PWへ時間変化を与える変調
と整理できる。
ただしシンセサイザーのパネルでは「PWM」ノブが変調量を示す場合と、Pulse Widthそのものを示す場合があり、メーカーごとの表記を確認する必要がある。
音響的効果
50% DutyのSquare waveは奇数次倍音のみを持つ。
Duty cycleを50%から外すと偶数次倍音も現れ、各倍音の強さがPulse widthに応じて変化する。
PWMではこのスペクトル変化が連続的に起こる。
その結果、
- 音色の揺らぎ
- 厚み
- コーラス的な動き
- ストリングス的な広がり
- 鼻にかかったような周期変化
などを作ることができる。
Moog Werkstatt-01の解説でも、Pulse widthによってPulse波の形状と倍音バランスが変わり、VCO MOD SOURCEをPulse Widthへ送ることで時間変調できることが説明されている。[1]
LFOによるPWM
最も典型的なPWMはLFOをPulse Widthへ入力する方法である。
サイン波や三角波LFOを使うと、Pulse Widthが一定周期で狭くなったり広くなったりする。
たとえば中心50%、変調幅±20%なら、
30% ↔ 70%
の範囲で周期的に変化する。
LFO Rateは音色変化の速度、Amount/DepthはPulse Widthの変化幅を決める。
EnvelopeによるPWM
エンベロープをPulse Widthへ送ると、ノート開始から時間に沿ってDuty cycleを変化させられる。
たとえば、
- AttackでPulseを広げる
- Decayで50%へ戻す
- Releaseで狭くする
といった時間変化が可能である。
LFOが周期変調を作るのに対し、Envelopeは演奏イベントに同期した一方向または多段階の波形変化を作る。
手動PWM
Pulse Widthノブを演奏中に動かすことも広義にはPulse Width modulationである。
また、Mod wheel、Aftertouch、Velocity、Macro control、MIDI CCなどをPulse Widthへ割り当てれば、演奏表現としてPWMを制御できる。
PWMとデチューン
PWMの厚みは、複数オシレーターをデチューンして得る厚みとは原理が異なる。
デチューンでは複数の近接周波数が干渉してビートを生む。
PWMでは単一オシレーターでも波形の倍音振幅が時間的に変化するため、基本周波数を増やさずに動きを作れる。
ただし実際のパッチではPWMと複数オシレーター、ユニゾン、コーラスを併用することも多い。
PWMとフィルター変調
PWMとフィルターカットオフ変調はいずれも音色を時間変化させるが、作用点が異なる。
PWMはオシレーター波形そのもののスペクトルを変える。
フィルター変調は、オシレーターから出た既存スペクトルを周波数選択的に減衰させる。
そのため同じLFOを両方へ送っても異なる結果になる。
変調中心
PWMでは中心Pulse Widthが重要である。
50%を中心に対称変調する場合、
50% ± 20%
なら30〜70%を往復する。
中心を25%にすると、
25% ± 15%
なら10〜40%を往復し、50% Squareとは異なるスペクトル領域を動く。
音色は「変調量」だけでなく、中心値によって大きく変わる。
変調範囲と極端値
Pulse widthが0%または100%へ近づくと交流成分が小さくなり、実装によっては音量が落ちたり無音に近づく。
そのためシンセサイザーでは変調範囲を内部的に制限することがある。
また、LFO Depthを大きく設定するとPulse widthが許容範囲を超える可能性があり、
- clamp
- wrap
- fold
- saturation
などの処理を行う実装もある。
アナログシンセサイザー
アナログVCOでは、三角波またはノコギリ波と比較閾値からPulse waveを作る方式がよく用いられる。
比較閾値をCVで動かすと、Pulseの切り替わり位置が変化し、Duty cycleが変わる。
LFOやEnvelopeをそのCVへ送ればPWMとなる。
この方式ではPulse Widthが連続的な制御電圧で直接変調できるため、アナログモジュレーションとの親和性が高い。
デジタルシンセサイザー
デジタルではPulse Widthの変調によって時変スペクトルが生じるため、静的なPulse waveよりanti-alias処理が複雑になる場合がある。
代表的な実装には、
- band-limited wavetable interpolation
- BLEP / PolyBLEP
- BLIT
- oversampling
- minBLEP
- wavetable phase warp
などがある。
単にサンプル列のHigh/Low切り替え位置を動かすだけでは、不連続点から高周波成分が発生しaliasingを生じやすい。
Ableton Liveでの例
Ableton LiveのAnalogではRectangular oscillatorのPulse WidthをLFOで変調できる。
またWavetableではClassic oscillator effectのPWによって波形のPulse Widthを変形でき、通常のPulse/Square以外のwavetableにも類似の時間軸変形を適用できる。[2]
これは「PWM」という言葉が、現代のデジタルシンセサイザーでは古典的Pulse oscillator以外のwaveshapingへ拡張される場合がある例でもある。
LFO速度
PWMのLFOが低周波なら、耳は主に周期的な音色変化として知覚する。
変調速度をオーディオ帯域まで上げると、単純な「ゆっくりしたPulse Width変化」ではなく、新しい側帯波を含む複雑な変調として振る舞う。
この領域ではPWMはwaveshapingやphase modulationに近いスペクトル変化を生じ得る。
ステレオPWM
左右チャンネルや複数VoiceでPWMの位相、Rate、Depthをずらすと、ステレオ方向にも動きを持たせられる。
ただしステレオ化そのものはPulse Width modulationの必須要素ではなく、複数VoiceやPan modulationを組み合わせた実装である。
Class DアンプにおけるPWM
Class Dアンプでは、オーディオ信号を高周波スイッチング波形のDuty cycleへ変換するPWM方式が用いられることがある。
この用途では、Pulse Widthの変化は音色を作るためのオシレーター波形変調ではなく、アナログ振幅情報を高効率なスイッチング信号へ符号化するために使われる。
したがって、シンセサイザーのPWMとClass DのPWMは数学的に共通する部分を持つが、目的と動作周波数が大きく異なる。
その他の電子工学用途
PWMは、
- モーター速度制御
- LED調光
- スイッチング電源
- DC-DCコンバーター
- サーボ制御
- ヒーター制御
などでも使用される。
これらでは平均電力や平均電圧を制御することが主目的であり、オーディオシンセシスとは用途が異なる。