Gilbert Sine Shaper (3)

前回求めた式に
\qquad\qquad \beta = \frac{E}{2 V_t}
\qquad\qquad x = \frac{V_a}{E}
を代入して、文献のような回路の実際の電圧の入った式にすると下のようになります。
\qquad\qquad I_1 - I_2 = I_0 \sum_{m=-\infty}^{\infty}\left( -1 \right) ^m \tanh\left( \frac{V_a + m \cdot E}{2 \cdot V_t} \right)
\qquad\qquad \begin{eqnarray}I_1 - I_2 &=& I_0 \sum_{n=0}^{\infty}\eta(2n+1) \cdot \sin \left((2n+1)\pi \cdot (V_a/E) \right) \\ \vspace{10pt}\\ \eta(n) &=& \pi \cdot \frac{2 V_t}{E} \cdot \,{\rm cosech}\left(n  \pi^2 \cdot (V_t / E)  \right) \end{eqnarray}
実際に tanh 関数の級数 (項数は 200) を計算し、FFT をかけてスペクトルの成分を求めるプログラムを作り、上の式の結果とともにグラフにプロットしてみました。

E/Vt、つまり、隣合う差動ペア間に与えるオフセット電圧 E と、熱電圧 V_t (絶対温度 300K で約 26 mV) との比を横軸にとってあります。
赤い線が上の計算式による結果で、上から順にそれぞれ、基本波、3倍波、5倍波、7倍波、9倍波の振幅を dB 単位で示したものです。
-350 dB 付近で「クシャクシャ」している青い線が tanh 関数の級数を計算して FFT をかけた結果です。 それ以外の場所では、計算式の赤い線と重なっています。
これは、単に図の上で重なって見えるだけではなく、有効数字 6 桁で両者の数値は一致しています。
FFT の結果が -350 dB 付近で「破綻」しているのは、tanh 関数の級数の計算および FFT の計算を倍精度実数で行っているために生じた現象です。
倍精度実数では 10 進 16 桁程度の精度なので、dB に換算すると、16 * 20 = 320 [dB] 程度のダイナミック・レンジとなり、-30 dB 程度の基本波のレベルから 320 dB 下がった -350 dB 程度の値は打ち切り誤差にまぎれて正しく表現されなくなります。