Gilbert Sine Shaper (11)

前回求めた、誤差関数による GSS の式を再掲すると、
\qquad\qquad f(x) \,=\,  \sum_{n=0}^{\infty} \left{ \eta_{\mathrm erf}(2n+1) \,\cdot\,\sin \left( (2n+1)\pi x \right\) \right}
\qquad\qquad \eta_{\mathrm erf}(n)\, =\, \frac{\large 4}{\large n \pi} \, \exp\left[ -4\pi \left( \frac{n V_t}{E}\right)^2\right]
となります。 「誤差関数」バージョンであることを示すために、高調波のレベルを決める因子の \eta(n) に「erf」サフィックスを付けました。
tanh バージョンと同様に、プログラムで級数の計算を行って FFT をかけて高調波の振幅を求めたグラフに、上の理論式での結果を合わせてプロットしたものを下に示します。

-350 dB 付近でクシャクシャしている青い線が FFT 結果で、倍精度実数演算の精度の限界による「ノイズフロア」を示しています。 それより振幅の大きい部分では、赤い線の理論式の結果と重なっています。
赤い線の上から順に、基本波、3倍波、5倍波、7倍波、9倍波です。 9倍波では、E/Vt = 5 でも振幅は「ノイズフロア」以下のレベルになっています。
tanh バージョンでの高調波の振幅を指数関数で近似したものを示すと、
\qquad\qquad \eta_{\mathrm tanh}(n) = \pi \cdot \frac{4 V_t}{E} \cdot \exp\left(-n  \pi^2 \cdot (V_t / E)  \right)
となり、nV_t/E の項は指数関数の肩に1次で乗っているのに対し、erf バージョンでは nV_t/E の項は指数関数の肩に2次で乗っているのが大きな違いです。
これが erf バージョンでの高調波レベルが極めて低くなる理由です。
下に、3項および5項で半周期の近似をした場合の高調波レベルのグラフを示します。

青の線が3項で、赤い線が5項の場合です。 誤差関数特性を持つ回路素子は存在していないので、実際的な意味はありませんが、3項の場合でも高調波レベルは十分に低くなっています。
3倍波から 19 倍波までの奇数次高調波の和をひずみ成分とみなして、高調波ひずみ率を計算した結果のグラフを下に示します。

青の線が3項・半周期、緑の線が5項・1周期、赤の線が5項・半周期の場合です。 縦軸はログ・スケールにしてあります。
それぞれの最小ひずみ率を与える E/Vt の値は次のようになります。

  • 3項・半周期の場合 E/V_t が 3.7 程度でひずみ率最小値約 0.05 %
  • 5項・1周期の場合 E/V_t が 3.3 程度でひずみ率最小値約 0.005 %
  • 5項・半周期の場合 E/V_t が 3.0 程度でひずみ率最小値約 0.0003 %