Gilbert Sine Shaper (8)

(10/28 使用したプログラムにバグがあり、結果のグラフが誤っていたので差し替え、記事を修正しました)
(10/29 さらに、プログラムに与えるパラメタに誤りがあり、再度差し替えました)
前回求めた、サイン波の高調波成分の振幅の近似式を利用すると、出力のサイン波のひずみ率を簡単に求めることができます。
基本波の振幅は
\qquad\qquad \exp\left(-  \pi^2 \cdot (V_t / E)  \right)
に比例し、3倍波の振幅は
\qquad\qquad \exp\left(-3  \pi^2 \cdot (V_t / E)  \right)
に比例するので、基本波の振幅に対する3倍波の振幅の割合は、
\qquad\qquad \frac{\large exp{-3 \pi^2 \cdot (V_t / E)}} {\large exp{- \pi^2 \cdot (V_t / E)}} = \exp\left(-2  \pi^2 \cdot (V_t / E)  \right)
となります。 
3倍波の振幅に対する5倍波の振幅の割合も同じ値となるので、この値が十分小さければ、「ひずみ率」としては3倍波の割合だけを考えればいいことになります。
E を小さくすればするほど、この「ひずみ率」は小さくなっていくので、前にも述べたように、ひずみ率が最小になるような特定の「E」は存在しません。
一方、現実の回路で、 tanh 関数3項分とか5項分程度の「実用的」な範囲での構成では、最適な E の値が存在します。
それは、E の値が小さくて、本来は誤差が小さくなる部分では、tanh 関数の項数が「足りない」ための影響が強く現れて、かえって誤差が増えるからです。
この「打ち切り誤差」の影響を調べるのは、項数が3とか5とか少ないので、実際に tanh 関数の級数数値計算し、FFT をかけて高調波成分の振幅を求めるのが簡単です。
以前のプログラムを利用し、項数を3および5に制限した場合の結果を下に示します。

青色の線が3項の場合で、赤色の線が5項の場合です。
tanh 関数の項数が少ないので、入力電圧 V_a が 0 から離れるほど近似が悪くなります。
通常は、サイン波1周期を出力する場合には、位相で言うと -\pi から \pi に相当する値を入力します。 連続したサイン波が必要な場合には、 -\pi から \pi まで変化する「のこぎり波」を入力することになります。
しかし、このような項数の少ない場合には、入力位相は -\pi/2 から \pi/2 にとどめ、出力はサイン波の半周期分とします。 連続したサイン波が必要な場合には、 -\pi/2 から \pi/2 までの往復を繰り返す「三角波」を入力することになります。
使用した計算プログラムでも、この「三角波」入力に相当する処理を行っています。
当初、この「折り返し」部分にバグがあり、結果的にはノイズが混入した形となり、最初に掲載した結果では、ひずみが多くなっていたのを修正し、差し替えました。
(10/29 追記:項数を制限するためにプログラムに与えるパラメタに誤りがあったので修正し、再度差し替えました。)
基本波のレベルは、ほぼ理論通りの変化ですが、高調波の成分は E/V_t が小さくなっても減少せずに、かえって増大する傾向が見られます。
基本波と高調波の振幅の比が最も大きくなるのは、E/V_t が3項の場合に 3.5 程度、5項の場合に 3 程度の部分です。
その傾向をもっと良く見るために、3倍波から 19 倍波までの奇数次高調波の和をひずみ成分として、ひずみ率をプロットしたものを次に示します。

このグラフでは、5項で1周期分出力する場合の結果も '5 terms full' と表示してある緑色の線で示してあります。
3項、5項ともに E/V_t が 4 程度までは同様なひずみ率ですが、

  • 3項・半周期の場合 E/V_t が 3.5 程度でひずみ率最小値約 0.7 %
  • 5項・1周期の場合 E/V_t が 3.3 程度でひずみ率最小値約 0.4 %
  • 5項・半周期の場合 E/V_t が 2.8 程度でひずみ率最小値約 0.04 %

となっています。
以前、LTspice で差動ペア5対の Gilbert Sine Shaper のシミュレーションをしたときに、E の値は適当に 100 mV に選んだのですが、最適値からは外れていました。