analog Linear FM
1: FM基本原理 2: analog FM 3: FMとPhaseModulation 4: FMと倍音 5: Linear FMとEXP FM 6: FMとphase modulationの違い
exponential FM変調は変調波で変調をかけると元のピッチが変化してしまう ので、ピッチを変化させないで音色のみ変化させたい場合は linear FM変調という方法を用います。 これは VCOの Hz/V入力に変調波を入力することで実現でき、基本的には Digital 音源の FMと同じ原理で動作します。 すなわち変調波で変調をかけてもピッチを変化させず波形を変化させることが可能です。 変調をかければVCOのピッチが動くのがあたりまえで変化しないのはへんと思われるかも知れません。 その原理は後で説明するとして、いわんとしていることは変調される側の発振器(キャリア)と変調用の発振器(モジュレータ)の発振周波数を同じ(か整数倍)にして、両者の発振器には周波数の初期設定用 CVの他に Key CVをつなぎます。 そして変調用の発振器でキャリアに対して変調をかけます。 この場合 key CVで音程情報を両発振器に与えてもちゃんと両発振器はトラッキングして動くということです。 変調が原因で両者のピッチがずれると言うことは基本的にありません。 但しこのように動作させるためには特定条件が満足されなければなりません。 特定条件とは 変調波がキャリアの整数倍にあって変調波の振幅変化(波形振幅の微分値)の+と- の和が0であればキャリアピッチは変化しません。 これは通常の搬送波に変調信号を重畳させ信号伝達させるというFM変調の本来の使い方からすれば特異な使用方なのですが 音源としてのFMでは基本的な使い方です。 本格的なFM変調の音源としてはやはりdigital方式に軍配があがるのは当然なのですが、analog方式のFMというのは波形、倍音、周波数、発振といったいろいろな基本テーマを含んでいるので取り上げて見ました。 FM音源関係の情報は多々あると思いますが意外というか、大前提である項目、たとえば FM とphase modulationの違い、exponential FMと linear FMの違いとか、FMでは変調波でキャリアを変調してもピッチが変動しない使用法ができること等の項目に対して、納得できる原理説明がなかなか見つけられなかったのもここでこのテーマを取り上げたきっかけです。 そもそもこのpageを書くきっかけになったのはどうして analog FM変調においては self feedbackを行うとpitchが変動してしまうのかという疑問点でした。
いくつかの実例波形
上記の波形は analog modeling synth IONでののLinear FM modeでの波形ですがanalog synthをシミュレートしているのでphase modulationではなくFMなのでキャリア、モジュレータの周波数、位相を合わせるのがなかなか大変です。
FM変調の式とanalog VCOの対応 E(t)=SIN{ 2πFcl*t + (ΔF/fm)*SIN(2πfm*t) }
* fm ......モジュレータVCOの発振周波数。
出力の発振周波数は FM音源の場合、モジュレータの周波数がキャリア周波数の整数倍にある時(かつ変調波振幅の微分値の+,-の和が0の時) はキャリアの発振周波数と同じになってしまうのでちょっとこの表現はおかしいともとれますがこの式はFM変調の一般式なのでこう表現されます。 結局モジュレータの振幅(p-p)の 1/2の直流電圧でどのくらいキャリアVCOの発振周波数が変化するかという値と考えていいのではないかと思います。 要はモジュレータのアマウントレベルに相当するわけですが、上記の式は analog synthのFMの式というわけでなくFM変調の一般式なのでこのレベルを変調振幅でどのくらい周波数が変化するかという値(周波数偏差)として定義しています。 またΔF/fmをmodulation INDEX と呼び後の方で示すベッセル関数を使った倍音の強度を計算するための値となります。 1/fmはモジュレータ(変調波)の積分要素によって出現する項でFM変調がモジュレータの周波数でアマウントレベルが変化してしまうことなどを示していますが詳細は後で示します。
2π(ラジアン)は360度で 円周一周だからそれに周波数と時間をかけた値はやはり角度となります。 つまり経過時間tの角度の累積値で上記のように円周は360度なのでそれで割ったあまりがその時間の円周1周に対する位相角になります。 キャリアのみで変調がかかっていない場合は単純な等速円運動なのでSIN{ 2πFcl*t}ですがSIN波で変調をかければ等速ではなくなるのでいわばSIN波形のテーブルの読み出しに周期的な進み、遅れが出、それの原因を変調波側のSIN波がになっている。 キャリアに対して周波数の大変低い変調波であればビブラートとなりこの場合、周期的な進み遅れが長時間続く形となるのでそれがはっきりとした音程の変化として表れますが上記のようにモジュレータの周波数もAUDIO帯域の場合はキャリアの1周期の間での位相の進み、遅れとなるため波形の変形として現れる。
たとえば この項が 0.5であれば (0.5/2π)*360度=29度で無変調時のリニアな位相進行時間に対してリニアに位相角が増加に対して最大 位相角が29度進むということです。 それの意味するところは角速度が上がることと同じなので同じ時間経過でもその時の振幅は位相が進んだ位置の振幅を反映することになります。 逆に位相が最大-29度遅れる期間では角速度が下がることになるので同じ経過時点で前にある位相位置の振幅が反映されます。 ここで重要なのはこのプラスマイナスされる位相分は一定値ではなく時間的に変化していることです。 一定値であれば単に進行波形に対してオフセットがつくだけで大元の波形進行そのものはオリジナルと変化しません。 時間的に変化しているので進んだり、遅れたりが生じてそれが時間軸が圧縮、伸長したと同じ効果を与えています。 さらにこの変化量が 1周期の範囲では+/- =0になる場合は 1周期を通せばピッチの変化はないのです。
fm が Fcl の整数倍にあれば Fclの1周期内で位相が進んでもあとで位相が遅れるので+,- = 0で全体では Fcl の周波数変動はなしです。 これが整数倍でない時の使用法が本来のFM変調、つまり搬送波に変調波としての audio信号を重畳する使いかたなんでしょうが、FM音源ではそれは非整数倍音を発生させる時の使い方となります。 また 変調波がキャリアの1/2であったような場合 Fcl の 1サイクルでつじつまあわせが完結しなくなるため Fcl の 1サイクルより多い時間つまり fmのもう一サイクルで +,- = 0の動作が完結することになります。 この場合整数倍ではないですが比例関係にはあるため一応 ピッチはキャリアの周波数で聞こえます。(詳細は後述)
fmに関してはanalog synthとの対応ではちょっと釈然としませんが 直流であれば0Hzなのでこの式上では 0 だけれども直流要素は単にキャリアVCOの発振周波数を決める要素になってしまうのでこの式とは関係ない要素なのでしょうか。 analog synthにおける直流CVは一定値であってもそれが積分される形で発振周波数に影響するわけですがここではそれはキャリアを発振させるためのパラメータになってしまうと言うことでしょうか。 0Hzにはならないが低速なLFOの場合は有効でFclよりfmがはるかに小さければキャリアの1周期に対してある瞬間は変調波はある振幅で止まっているようなものなのでその振幅分がキャリアの読み出し角に追加されてキャリアの周波数が変化することになるのでしょう。
(等速円運動)位相の進行と変調波の関係
それに対して正弦波の変調波を加えると 0..90度の範囲では上昇角がおおむねあがり、90度で無変調と同じ、90度..270度間では傾きが下がっています。 270度..360度間になると再び角度が上がるような進行になります。 ですから大枠0..90度間は位相角の進行が早くに進みキャリア正弦波の0,..90度分よりもあとの角度位置に対応する振幅が生じ、90..180度間は位相角の進行が遅くなってキャリア正弦波ののこりの角度に対する振幅が発生することになります。 正弦波で変調をかけることは単純に考えれば変化量は +, +, - , -のような気もしますが位相の進行度は正弦波そのままの +, +, -, -,つまり 0..180度までは無変調時にくらべてトータルでは進んでいて 180度で同じになり 180..360度まではトータルでは遅れていて360度で同じになる。 進行具合の速さの変化は COS波の変化で+,-,-,+となります。 つまり上記の変調がかかった直線の傾きと同じになりそれは変調SIN波を微分した形ということです。 図からキャリアの1周期内で、変調波の変化が早い(周波数が高い)方が変調波の上昇、下降に際して傾きが大きくなることがわかります。 すなわち変調度が高いということです。 直流の場合は傾きがキャリアの傾きと同じになるので変調度は0ということになります。
変調波の微分波形が0度から90度までの範囲では位相が進みますがその変化は一定値に近い値から序所に落ちてきて直線下降に近くなるのでキャリアの波形もそれに応じた変化をして、始めは進行が早いがだんだん進行が落ちてきます。 変調波の微分波形が90度から180度までの範囲ではこんどは位相が遅れ、それに対するキャリア波形の読み出し位置は140度前後の所にきているので元々が直線下降の波形になっているので変調波で変調を受けた波形は変調波の微分波形の形を受けついた形に変化しています。 変調波の微分波形が180度にきたところで、キャリアの進みも遅れもなくなります。
Frequency modulation と phase modulationの違い
digital FMでは発振器に相等する部分に VCOをシミュレートした構成のものと、単純に始めに示した 直線上昇のグラフに変調波をプラスするような構成にしたもの(いわゆる phase modulation)とが考えられます。 digital VCOの構成例を以下に示します。 これは最終的には ROM メモリーに格納された SIN波データをφで読み出す構成のVCOですが、この場合 位相の進行は Z^-1の digital遅延素子と加算器と帰還ループで構成された積分器です。これが phase accumulator として機能します。 変調波CVもキャリア CVと同じ加算器を利用しているため、この積分器の影響を analog VCOと同様に受 けてしまいます。
この digital VCOで 自分の出力で変調をかける self modulationをかけたときの出力波形と、積分作用を受けたあとの変調波の一例を示します。
出力波形は時間軸方向に非対称な正弦波?といった感じの波形でかつ周期が大元のキャリア信号に対して のびています。 つまりピッチが下がっています。 また積分器 通過後の変調波形(交流成分のみ)は-COS波の間延びした波形になっています。 これを 微分した波形がキャリアVCO(この場合はキャリア、モジュレータが同一だが) に作用するわけですがこの波形は 出力波形と同じ形になるわけです。(当然振幅は小さいです) この為 正弦波の+振幅部分では位相が早く進み、-振幅部分では位相が遅く進むのでこのような出力波形が生成 されるわけです。 では残りの周期が伸びて、ピッチが下がる原因はどうしてかということでこんだは積分器通過後の全部の CV情報(キャリアの初期発振周波数設定用直流CVを含む)の変化を以下に示します。
傾きの大きい方の直線上昇は変調をかけていない時の変化、 傾きの小さい方は変調をかけた時の変化です。 後者の場合は直線上昇(直流CV)に上記の変調波が重畳された形になっていてかつ直線の傾きが低下しています。 すなわちこれがピッチ低下の原因というわけです。(マイナス DC成分が積分されてオリジナルの積分増加を 押さえる) 上記の非対称変調波(出力波形)ではマイナス部分の面積の方が大きいので +, -がバランスする ためには(ACカップリングするには)マイナスの直流分がなくなればいいのでそれがキャリアの直流CV に加算され結果が上記の直線上昇の角度に反映されるわけです。
< 積分について > つまり直流成分と周期波形成分が独立に積分された結果を足したものが最終結果となるわけです。 上記の例では変調波が単独で積分されれば、周期運動をしながらマイナス方向に発散するわけです。
phase modulation これに対して キャリアCV入力と変調CV入力が別系統で入力される構成にすれば、変調波は積分器の影 響を受けなくなります。 もう少し正確に言うと上記の phase accumulator部分にはキャリアCVのみ をいれることにして以下のようにすると言うことです。
こうすることにより変調波は積分の影響を受けません。 つまり基本的にはピッチを生み出す要素は キャリアCV+phase accumulator部分なのです。 変調入力に直流を加えた場合を考えるとこの場合は 上記のVCOの場合と異なり積分されないので値は一定値を保つので単に初期位相がずれるという意味 合いになって直流でピッチが変化することはなくなります。 つまり、この章の一番初めの位相進行の直線上昇の図で直流信号に相等する変調波や、+と-で面積の異 なる変調波を重畳した場合と同じになるわけであり、 E(t)=SIN{ 2πFcl*t + (ΔF/fm)*SIN(2πfm*t) } この式と変調入力の加算方法が同じというわけです。 上記FMの積分要素をなくした方式が phase modulationといわれるようです。 つまり E(t)=SIN{ 2πFcl*t + a*SIN(2πfm*t) } ということです(aは定数(変調の深さ))。 単純にモジュレータの変調を加算した形。
FMと PMについてもう少し考えてみます。 FM変調でキャリアとモジュレータの周波数を同じくして、両者の周波数をシンクロさせながら周波数を 落としていくと周波数が低いほど変調度が増して複雑な波形になります。 積分経路を通った変調波は周波数が下がれば単位時間あたり充電される時間が増えるので振幅が増える ことになります。(周期が止まってしまえば直流になるわけですね。) ですから変調度は上がるわけです。
これはこの章の始めの方で疑問点としてあげた FM変調の動作が上記の式に変換できるということですね。 よく見ればこの式は FMとは変調入力の加算位置がことなる異なる phase modulationの動作をそのまま具象化した式であるわけです。 つまり変調波の変調度パラメータとしての(ΔF/fm)を取り去るというか定数にすれば上式は phase modulationそのままの動作になり 1/fm で変調波の周波数で変調度をスケーリング することで FM変調と等価になるということです。
ここで a:=ΔF/fmを代入すると上記式は FMと同じになります。 但しこれらの式はfm=0となる直流の場合については動作をうまく表現できませんということです。 上記のように FMとPMでは 変調波が COSと SINと異なっています。 よって PMで生成されるキャリア と FMで生成されるキャリアを同じ波形にしたい場合は FMの場合 COSで変調する必要があります。 以下に FMで COSと SINで変調した場合の波形の違いを示します。
* FM音源と倍音 E(t)=SIN{ 2πFcl*t + (ΔF/fm)*SIN(2πfm*t) } の式から生成波形のキャリア周波数を基音とした場合の倍音構成を表す式を導きだすことができます。 この式を side band(側波帯)の各項の展開式として表すと
E(t)= J0(m)*sin(2πFcl*t)
* Jn(m) ... ベッセル関数。 となります。(式の生成過程)
上図からわかるようにΔF/fmの値が大きいほど m は大きくなりますので基音に対する倍音の 含み方の割合が増えますし、それが進行していけば倍音群の振幅の和の方が基音より大きく なるので結果周波数は基音のピッチを保てなくなります。 これはキャリアの周波数と変調波の周波数が整数倍の関係にあってもmがおおきければピッチ は変化するということです。 これだとちょっと話が矛盾してしまいますね。 そのような状態になっている時は変調波の マイナス側の振幅がピークになる以前で Fcl-fmがマイナスになる、つまり変調波のマイナス成分 と同じ振幅のマイナスの直流をかけた結果が 0Hz以下になってしまうような状態で結局、変調波形 が振幅方向に非対称になっていると考えればつじつまが合うように思います。
いくつかの例を考えます。
キャリアと変調波の周波数が同じ時たとえば 440Hzの時。
* 440+440=880 ............ 440*2 ( Fcl- fm) ....(Fcl-2fm).......の項)
* 440-440=0 ................... 440*0 となってキャリア周波数に対して 2,3,4,5.....倍音のならびになります。 キャリアより小さい周波数のside band項( Fcl- fm) ....(Fcl-2fm).......の項) も存在しているので 各倍音に見立てた要素を足した結果プラス、この小さい周波数の要素を足した結果が合成波形です。 ( 0Hzよりマイナス側に周波数がきた場合はプラス位置の要素と加算します。 ΔF/fmのΔFの項を440Hzとした時のside band の各項 ( partial )の振幅をベッセル関数から求めた表を 以下に示します。
* Fcl= 440Hz
* 再合成波形(上記構成で) 上図は E(t)=SIN{ 2πFcl*t + (ΔF/fm)*SIN(2πfm*t) } の式に値をいれて波形を表示した例と、ベッセル関数から求めた振幅で、倍音加算によって再構築した波形です。 倍音の数を限定していますので完全に同じ波形にはなっていませんが、大体同じ波形であることから上記の計算、解釈が間違っていないことになります。
変調度を倍にした場合
* Fcl= 440Hz
* 再合成波形(上記構成で) この場合は変調波のマイナス部分で過変調になっているような状態でしょうか。 結果変調波が上下対称にならず DCオフセットがプラスになりピッチはキャリア周波数を保っていない。 でも生成されるキャリア波形は元のキャリア波形の整数倍になっていますね。 なにか秘密がありそうです。
キャリアの周波数 440Hzで変調波の周波数が880Hzの時は、キャリアより大きい周波数の side bandに対して
* 440+880=1320 ....... 440*3
* 440-880=-440=440 ...... 440*1 となってキャリア周波数に対して 3,5,7,.....の奇数倍音の並びになります。 同様に( Fcl- fm) ....(Fcl-2fm).......の項)の項を足しますが、値が -440Hz, -1320Hz, -2200となるので符号反転してやるとやはり奇数倍音のならびになります。
* Fcl= 440Hz
* 再合成波形(上記構成で)
再合成時の倍音数が少ないのでシミュレーション波形と全く同じにはなっていません。
変調波がキャリアの周波数の 1/2の場合はどうでしょうか。 キャリア440Hz、変調波 220Hzの場合を考えると Fcl+fm=660Hz, Fcl-fm=220Hzになります。 たとえば変調度 ΔF=220Hzとした場合、
* Fcl= 440Hz
図から一応ピッチ440Hzになっているのがわかります。 但し波形には変調がかかっている形になって基音の2周期で同じ波形が繰り替えす形になっています。 変調によって周波数が変わればまさに本来のFM変調なのですがこの場合周波数は変わらずPWMのように位相 が変化していますので位相変調というのでしょうか。 では660Hzと220Hzの要素はどこに消えたかということで上記の要素からまず 440Hzと660Hzを加えた時の グラフを以下に示します。
両者が整数倍の関係にないので基音の2周期で同じ波形が出現する形となりまた位相変調と振幅変調が かかっていますが周波数は440Hzです。 440Hzと220Hzの場合はどうでしょうか以下にそのようすを示します。
この場合も同様に周波数は440Hzですが振幅変調と位相変調がかかっています。 結局両波形の周波数関係が割り切れる値にある時は合成結果は振幅の大きい方の周波数になるようです。
Linear FM と exponential FM
一方 exponential FM つまり多くの analog synthで標準的に使われている oct/V の CV 仕様では、 oct/V のキャリア発振器を変調する場合、キャリアとモジュレータの発振周波数が整数倍の関係があってもピッチは変調波で変調した時とする前では変化してしまいます。 これは結局上記の条件中の振幅変化の微分波形の + と - の和が0にならないからです。 つまり oct/VのCV入力に入れる前までは +,-の振幅波形が同じ変調波であっても antilog ampを通せば、リニアな変化が音階の変化に追従させるべく等比の関係に変換されるわけなので +, - 1Vの変調波が たとえば -1V時 220Hz, 0Vで 440Hz, 2Vで880Hzというピッチ変化をもたらすわけで入力された変調波の微分波形の+ , -の面積が異なることになってしまうのでピッチが変化してしまうわけです。
これは別の角度からみるとこの非対称正弦波のDC分をとりのぞくべくオフセットが発生してその結果直流レベルが変動してその直流がキャリアVCOの CVに加算されピッチが変わるともいえるでしょう。 要は周波数のリニアな変化に対して音階は等比変化なわけであって、それ発生させるための oct/V VCOはリニアな変化ではないという理由であるわけです。
FMとphase modulationの違い 次に再度、 side band(側波帯)の各項の展開式に注目してみます。
E(t)= J0(m)*sin(2πFcl*t)
上式から 変調波fmの周波数が0になれば倍音の発生する項がなくなり、またΔF/fmの項が∞になるのでm が∞になり各paratialの振幅は0になる為、無変調になります。 phase modulationで直流ではピッチ 変化がないということの理由にもなるわけです。 一方、純粋FMの場合もこの式から倍音はないわけですが、FMは変調にかかわる要素が積分要素を通過するの で変調波が直流になれば位相角の進行は2π(Fcl+fm)*t となり、変調波が周期をもつ場合はそれが積分され るのでたとえばCOS波を入れればSIN波になるわけでこれが両者の違いです。
* phase modulation ---> 各倍音のレベルは変わらない。
FMの場合は 1/fmの項が mに作用するのでそれに対応したベッセル関数の値が変化するので、 各partialに対する振幅は変化します。 おおむね mが2以下の範囲では周波数が低いほど倍音の振幅は高くなります。 音源としてではなくて本来のFM変調ではこのような使い方はしないのだと思いますが、音源としての使用では、 スペクトルの時間変化のない固定波形として使う用途ではないかと思われます。 この場合FMでは変調周波数で スケーリングされてしまうので波形を一定に保ちたい場合は、アマウントレベルを Key CVでトラッキングする 必要があります。 これがHz/V analog syth CS30のLinear FM機能においてmodulator levelに対してVCAを介してKey CVによる Key trackingをしている理由かと思われます。
*2: キャリア周波数固定で変調波の周波数を変化させた場合は、
* phase modulation ---> 各partialの振幅を合計した値は変わらない。
これは別の見方では side bandの幅というか広がり (total bandwidth... これを変調度という?) が FMでは大幅には変化しないが phase modulationでは変調波の周波数が低くなると狭まるということです。 ですから phase modulationでは 変調周波数が0つまり直流の時 side bandの幅は0で 振幅は有限値 ( 時間に関係なく一定値 )なので直流では変調されないのであり、FMの場合は side bandの幅が狭まる につれて各 partialの値が上がるのでside bandの広がりはあまり変化しない。 変調周波数が0になれば振幅値は最大( 時間∞で振幅も∞ )になるのです。 つまり直流が意味を持って発振に関与してしまうということです..... 積分器の発散だから filterのpoleと本質的な意味は同じですね。 加えて当然ながら変調波の周波数が変化すると(Fcl+fm)の値が変化するので各partialの幅が変化して キャリアを基音にみたてた場合の倍音の構成が変化します。
<2019/08/11 rev0.2> |