TNJ-003:TWO TONE 5次歪はどんなふうに上昇するのか
2013年7月19日 公開
はじめに
とある日、私のところに社内のFAEがやってきて切り出しました。
「お客様からTwo Tone 5次歪はどんなふうに上昇するのか?と聞かれたんだ。3次歪はdB比で1対3の比で上昇していくのは良く出ているけれども」
「そうですね。3次の計算式は良く出ていますけれども、5次は見たことないですね。3次がA3の項での計算ですから、5次はA5の項になるから、やっぱりdB比で1対5ではないですかね?でも三角関数で計算すると、いったいどれだけ時間がかかるやら…。その前に手計算できるんでしょうかね??」
「うーん」
「じゃあ、シミュレーションでやってみましょう!」
という訳でした。
この技術ノートでやってみること
ここでは5次歪みのようすをNI Multisim Ver.10(古いバージョン)(※)でのArbitrary SPICE Block(任意SPICEブロック)という特殊機能(特殊というより超スペシャル!な機能)を用いた例を示してみます。このモジュールはVer. 10ではBASIC_VERTUALというカテゴリに入っていました。
なお最新のNI Multisim Ver. 12(※)では、このArbitrary SPICE BlockはADI Editionでは削除されています。その代わりにSourceグループのCONTROL_FUNCTION_BLOCKファミリの中にある、NONLINEAR_DEPENDENTというコンポーネントで代替えが可能です。また以下の説明で使用している仮想測定器「スペアナ機能」もADI Editionでは削除されていますので、フーリエ解析機能で代替えをお願いします。
NI Multisimの製品版では、これらの機能はそれぞれ用意されていますので、製品版ではそのままご活用いただけます。
この技術ノートでは、NI Multisimの使い方というよりも「Two Tone 5次歪はどんなふうに上昇するのか?」という話題に特化したいと思います。
理論的に考えてみると
アンプは入力をVin(電流でも同じですが)とすると、出力Voutは
Vout = A Vin
であるべきです。ここでAは増幅度です。しかし非線形性ですとか、飽和により、Aというきちんとした増幅度だけではなく、歪の要素が出てきます。
それを式で考えれば、一般的には以下のように表すことができ
Vout = A Vin + B(Vin)2 + C(Vin)3 + D(Vin)4 + E(Vin)5 …
係数A~Eはそれぞれの成分の増幅度(歪の度合い)です。Aしかなければ上のリニアな式とまったく同じになるわけですね。
また実際のB~Eの係数は、増幅度が飽和してくる方向になりますから「マイナス係数」になります。とはいえ以降の計算としては、係数がプラスでもマイナスでも、同じ結果が得られます。
3次歪みは
3次歪と呼ばれているものは、このCの項、すなわち
Vout = A Vin + C(Vin)3
このようにAとCがあるかたちになります。
5次歪みは
5次歪は
Vout = A Vin + E(Vin)5
となります。実際のアンプではこのA~E、さらにはもっと高い項もあると思いますが、それらがそれぞれ大きさ(係数)をもって、実際の増幅度が形成されていることになります。
Arbitrary SPICE Blockというものを使ってみる
Arbitrary SPICE Blockを使うと、この計算式がSPICE上で実現できます。セットアップを図1に示します。

Two Toneを入れるために、図1の左側に見えるように、発振器を2つ用意し、VOLTAGE_SUMMERで足し算(合成)しています。電圧源の大きさを小さくしていますが、これは「Arbitrary SPICE Blockの特性(式)」に対して、ある程度リニアリティが得られる大きさということで、この大きさにしてあります。
抵抗R2は何もつながっていないように見えますが、このArbitrary SPICE Block内部の記述と「ネット」(配線)としてつながっています。
R1も同じくです。
出力はスペアナ仮想測定器で
出力はスペアナ(先に説明しましたように最新のNI Multisim Ver. 12ではサポートされておりません)で測定しますが、このスペアナがおもしろく、600Ω終端で1mW = 0dBmとなっています。電話回線の終端抵抗の規格のようです(正しいかどうかは、自信なし…)。普通使う50Ω系の電力に変換する場合には換算するか、入力に電圧倍率できるマクロ部品を挿入するとよいでしょう。
Arbitrary SPICE Blockの記述方法
Arbitrary SPICE Blockをダブルクリックしてみます。中身はテキストで以下の記述にしています。
EPOL 3 0 POLY(1) (2,0) 0 1 0 0 0 0.1
これは、
- E●●●という電圧制御モジュールを表し、POLという名前
- 3 0 はモジュールPOLの出力(R1につながるネット。Vout)が、ネット3と0(グラウンド)として出ている
- POLY(1)は1次元のPolynomial(多項式)ということ
- (2,0)はモジュールPOLの入力(R2につながるネット。Vin)が、ネット2と0(グラウンド)となる
- 0 1 0 0 0 0.1 は、最初のゼロがDCオフセット、次の1が本来の増幅率A、0.1が5次の増幅率Eに相当し
Vout = A Vin + B(Vin)2 + C(Vin)3 + D(Vin)4 + E(Vin)5 …
で考えれば、
Vout = 0 + 1 Vin + 0(Vin)2 + 0(Vin)3 + 0(Vin)4 + 0.1(Vin)5
となります。ここではNI MultisimのArbitrary SPICE Blockを使った例として示しましたが、「E●●●という電圧制御モジュール」は、どのSPICEツールにも用意されていますので、同様に活用することができます。
詳しいSPICE文法の記述については、
http://www.ecircuitcenter.com/SPICEsummary.htm
が参考になります。
実際にシミュレーションを始めてみる
まずは歪なし、つまりVout = A Vinでやってみます。このときは、
EPOL 3 0 POLY(1) (2,0) 0 1 0 0 0 0
で、最後をゼロ(5次をゼロ)にしています。図2にこのときのスペアナ表示を示します。電圧源V1で与えた9kHzとV2で与えた11kHzの2つの波形だけが見えます。

定番の3次歪のようすを見てみる
次に定番の3次歪、つまりVout = A Vin + C (Vin)3でやってみます。このときは、
EPOL 3 0 POLY(1) (2,0) 0 1 0 0.1 0 0
で、3次の部分を0.1にしてみました。入力信号レベルはそれぞれ0.1V peakです。
図3にこのときのスペアナ表示を示します。本来9kHzと11kHzの2つの波形だけのはずなのですが、7kHzと13kHzに余計な波形が見えます。
このように、本来の信号の近傍(差分)の周波数のところに、余計な信号(というより歪成分)が出てくるのが3次歪の特徴です。

3次歪で入力レベルを10dB下げてみる
次に同じ3次歪の条件で、入力レベルをそれぞれ10dB下げて、0.0136Vを入力してみます。-10dB = 20×log(0.0316/0.1)です。
図4にこのときのスペアナ表示を示します。1div.が20dBであり、信号レベルが0.5div. = 10dB下がっています。一方で7kHzと13kHzの歪は1.5div. = 30dB低下していることがわかります。
これが先の弊社FAEが話しを切り出した「3次歪はdB比で1対3の比で上昇していく」ということなわけです(ここでは-10dBと -30dBで下降していく例を示している)。

5次歪を設定してみる
次に
EPOL 3 0 POLY(1) (2,0) 0 1 0 0 0 0.1
として
Vout = 1 Vin + 0.1(Vin)5
でシミュレーションしてみました。図5にこのときのスペアナ表示を示します。入力は0.1V peakに戻してあります。おもしろいです!3次歪と同じ成分、7kHzと13kHzも出ており、なおかつ5次でしか出ない成分、5kHzと15kHzが出ています。先のFAEと二人で「ふーん…」と見ていました。

5次歪で入力レベルを10dB上げてみる
こんどは信号をプラス10dB増加させてみて、0.316V peakにしてみます。先ほどの3次歪の例では、信号を低下させてみましたが、こんどは信号を大きくする方向でやってみました(信号がクリップしない範囲であれば、上げても下げても信号と歪の関係は同じ)。
図6にこのときのスペアナ表示を示します。1div.が20dBであり、信号レベルは0.5div. = 10dB上がっています。一方で5, 7kHzと13, 15kHzの歪は2.5div. = 50dB上昇していることがわかります。
やはりdB比で1対5になっているんですね…。

まとめ
まとめると5次のTwo Tone歪は、信号から(f_low-f_high)の差分量の1倍、2倍離れたところに発生し、信号の変化に対してdBの比率として、1対5で変化する、ということです。
なお、ここではTwo Tone歪を考えましたが、シングルトーンの場合には、2次歪は2fのところで1:2、3次歪みは3fのところで1:3、 5次は1:5で高調波が出てきます。NI Multisimなどで追試していただけると良いと思います。
また実際のA~Eの係数は、増幅度が飽和してくる方向になりますから、「マイナス係数」になります。とはいえここまでの計算としては、係数がプラスでもマイナスでも、同じ結果が得られます。
※ NI Multisim Analog Devices Editionの提供は終了しております。この資料ではNI Multisimを用いていますが、本内容はADIsimPEなど他のSPICEシミュレータでも同様にご活用いただけます。
著者について
デジタル回路(FPGAやASIC)からアナログ、高周波回路まで多...
この記事に関して
{{modalTitle}}
{{modalDescription}}
{{dropdownTitle}}
- {{defaultSelectedText}} {{#each projectNames}}
- {{name}} {{/each}} {{#if newProjectText}}
-
{{newProjectText}}
{{/if}}
{{newProjectTitle}}
{{projectNameErrorText}}