アナログシンセの VCO ブロック (58) --定番アンチログ回路の直列エミッタ抵抗誤差補償

Minimoog の VCO の「高域補償」は、後期型回路では「Franco の補償」を使っていますが、前期型回路ではアンチログ出力電流を検出して CV サミング・アンプにフィードバックする方式になっています。
この方式の回路を LTspice でシミュレーションして、アンチログ出力トランジスタのエミッタ直列抵抗分による誤差が補正される様子を見てみました。
まず、Minimoog 回路の位相補償などの付加的な部分を省略して基本部分だけを残した回路を下に示します。

アンチログ差動ペアのテイル電流、つまり共通エミッタ電流を制御するトランジスタのエミッタと電源との間に抵抗 (R79、 1 kΩ) を挿入し、その電圧降下としてテイル電流を検出しています。
アンチログ出力電流とリファレンス電流 (約 100 μA) とを合わせたものがテイル電流であり、アンチログ出力電流そのものは求まっていません。
しかし、高域補償が問題となるのはアンチログ出力電流が大きくなる領域であり、リファレンス電流に比べて十分に大きいので、補償量を決める「ものさし」としてはテイル電流で十分にその機能を果たすことができます。
アンチログ出力トランジスタのエミッタ直列抵抗分による誤差 (に比例する成分) を電圧として取り出し、直列抵抗に「喰われ」ている分の電圧を CV サミング・アンプに (ポジティブ) フィードバックして、あらかじめ「上乗せ」しておけば、結果的には正しい出力が得られることになります。
また、前の記事でリセット型 VCO でのリセット時間に起因する誤差とエミッタ直列抵抗による誤差とは 2 次以上の項の影響を無視するなら同じに扱えることを示しました。
したがって、テイル電流を検出してフィードバックする方法でリセット時間誤差の補償もできます。
Minimoog の回路定数から計算すると、エミッタ直列抵抗に換算して 5.7 Ω 程度に相当する補償量となり、1 Ω 程度のトランジスタの RE に比べて大きいので、補償量の大部分はリセット時間誤差の補償に使われているものと思われます。
下に 2N3904 トランジスタを使った LTspice シミュレーション用の回路を示します。

同様の回路で、計 2 種のトランジスタ (2N3904、BCW60B) についてシミュレーションしてあります。
まず、電圧制御電圧源 (E エレメント) E1 は実回路の IC3 に相当し、アンチログ差動ペアの片割れに一定のリファレンス電流を流すように作用します。
E エレメント E2 は実回路の IC1 に相当し、1 [V/oct] の CV を約 -18 [mV/oct] に変換して差動ペアのベース間に加える「サミング・アンプ」部です。
その変換係数は、トランジスタの違いにより 5 桁目以降が微妙に異なっています。
E エレメント E3 はテイル電流のフィードバックのための回路で、実回路ではサミング・アンプ経由で作用しますが、このシミュレーションでは独立したパスとして、エミッタ直列抵抗の値が表れるようにしてあります。 (パラメタ「Re_comp」の値が直列抵抗換算値)
電流の範囲は 1 μA 〜 1 mA の約 10 オクターブとし、その相乗平均の 31.6 μA に近い 32 μA をリファレンス電流値としてあります。
CV = 0 V でアンチログ出力電流がリファレンス電流 32 μA と等しくなるようにし、CV = -5 V から CV = 5 V まで spice の DC 解析を行ってグラフを描きます。
E3 のフィードバックの係数を調整し、最も誤差が少ない状態と補償なしで最も誤差が大きい状態を重ねてプロットしてあります。
LTspice 付属の 2N3904 のモデルを使った結果のグラフを下に示します。

横軸が CV の電圧値、縦軸がアンチログ出力電流の理想値からの誤差をセント単位で示したものです。
青い線が補償なし (誤差最大) の場合で、赤い線が誤差最小になるように補償量を調整した場合です。
CV = 0 で誤差 0 セントとする表示になっています。
補償なしでは、CV がマイナスの範囲では (CV = 0 V で誤差 0 と定義したために) 誤差は正の値を取り、CV 増加に従って誤差がマイナス方向に振れていきます。
CV = 5 V で誤差は約 -15 セントです。
赤い線の最小誤差の線は、このグラフのスケールでは、ほぼ直線に見えています。
その時のエミッタ直列抵抗換算値 (Re_comp) は約 0.23 Ω です。
2N3904 の spice パラメタ (BF=300, RB=10 ,RE=0.2) からエミッタ直列抵抗換算値 RE′ を計算すると、
RE′ = RE + RB/(1 + BF) = 0.2 + (10/301) = 0.233 [Ω]
となり、シミュレーション上の「実測値」とほぼ一致します。

下に差動ペアをLTspice 付属の BCW60B に変更した場合の回路を示します。

トランジスタ以外の変更点としては、E2 のゲインと、パラメタ Re_comp の値です。
結果のグラフを下に示します。

補償なしの場合、CV = 5 V で誤差が 1/2 半音を超える -70 セント程度となっています。
赤い線の最小誤差の線は、このグラフのスケールでも、直線からのズレが分かります。
その時のエミッタ直列抵抗換算値 (Re_comp) は約 1.05 Ω です。
BCW60B の spice パラメタ (BF=240, RB=10 ,RE=1) からエミッタ直列抵抗換算値 RE′ を計算すると、
RE′ = RE + RB/(1 + BF) = 1 + (10/241) = 1.04 [Ω]
となり、こちらもシミュレーション上の「実測値」とほぼ一致します。