MastHead

三角波をサイン波に近づける (その1)


以前から困っていたのですが、 MAX038 で組んだ波形発生器のサイン波がずいぶん歪んでいるのです。  右の写真のように、三角波はまともに出ているのですが、サイン波は下側が丸く、上側がとがっています。

以前、インターシルの 3038 で作ったときはかなり良いサインが出ていました。  上限の周波数を伸ばしたくて MAX038 に変えたのですが、そのときからこの問題を抱えていました。  チップの問題かもしれないと思い 2 回ほど取り替えたのですが同じでした。
どうやら原因は、サイン波整形回路のバイアス基点が正側に振れてしまっていることにあるようです。 その調整は外部からできません。

そこで、外部にサイン波整形回路を用意してやることにします。

簡単な原理を使います。 右の図はバイアスをかけたダイオードで、入力電圧を分圧してやる原理を示しています。  バイアスとダイオードの順方向電圧降下分を超えた入力があると、R0 と R1 で分圧が発生し、出力がすこし減衰します。
単に(よく雑誌に出ているような)折れ線で近似するのではなく、ダイオードの立ち上がりのカーブの部分を使って、 できるだけなめらかにサインに近似することにします。

式で書くと、次の通りです。

  I = I0 * [exp{Vq/(λkT)} - 1]  ...(1)
  I = (Vin - Vb - V) / (R0 + R1)   ...(2)
  Vout = Vin - I * R0              ...(3)

各記号は一つ前の記事で書いたとおりです。
ここでまずいことは、(1) に温度の項が入ってしまうことです。 I0 の中と、exp の中に入ります。  これを補正するために、もう一つ補償のダイオードを入れてもよさそうですが、補償回路の電流が大きくなってうまくいきません。  そこで、トランジスタを使って次のような回路にしてやります。

PNP と NPN で逆方向に動きますので補償できます。  また、PNP のベースは低いインピーダンスで固定されますので、Vin によって振られることがなく、 前回の調査で分かっている特性がそのまま利用できます。


この回路は1段だけですので、サインに近似したカーブを出すには何段かをつないでやります。
最終的には4段をねらうことにします。

入力電圧ですが、この方法で高い部分を圧縮してサイン波にし、2Vp-p の出力を得るためには、三角波の p-p は 3.1416V である必要があります。  右の図のように、立ち上がりの傾斜をサイン波に合わせるためです。


1段だと簡単なのですが、複数になりますと相互に影響を及ぼし合うので複雑な解が求められます。
なので、とりあえず2段の場合について考察し、考慮に入れるべき事柄を調べます。 右の図です。

一つ目は、I2 を引き出すと、I1 は小さくなり、V1 がわずかに小さくなることです。  従って、ダイオード内部の等価直列抵抗 Rd1 (I で変動するけど)も考慮に入れます。  これが前回の記事で書いたエミッタ出力インピーダンスです。

2つ目はバイアス発生用の分圧器(Rpn)ですが、各 NPN のベース電流によって分圧電圧がわずかに低下します。  テブナンの定理を使って補正をかけます。

3つ目は PNP と NPN の対は VBE が同じでないので、正側の圧縮と負側の圧縮ではバイアス電圧が異なります。  VBE の差は、それぞれ9つのサンプルを測定しました。 その結果、前回記事ではサンプルが1つだったので、平均値に修正します。  I0 の値について、2SC2240 は 64E-15 にします。 2SA942 の方はたまたまそのサンプルが平均値に非常に近かったのでそのまま使用します。  VBE の差にすると、平均で 22.1mV になります。

要点が分かりましたので、4段のケースについて設計してみます。

正側 2SA942 でクリップ
ステージ Rn Bn
at 21'C
5.6kΩ -0.18V
1.58kΩ +0.16V
270Ω +0.39V
+0.43V
バイアス(Bn) と分圧抵抗(Rn) をカットアンドトライで調べ上げると、正側だけですが、右のような値になりました。  誤差のカーブができるだけ 0 に近づくように選んでいます。
信号をグラフで描くと、下のようになります。

1段で3次式のような誤差カーブが導入されますから、4段なら下に凸の場所が4カ所出てきても良さそうですが、 最終段のエミッタインピーダンスが0ではないため妥協が入り、3カ所になっています。



この赤いラインを使って波形を5波程度作り、離散フーリエ展開で歪みを調べてみると右のグラフのようになります。  すべて計算上の話です。 実際の回路測定ではありません。
最初なかなか3次と5次のハーモニクスが落ちなかったのですが、誤差のふれを上と下が均等になるようにするとうまく落とし込むことができました。  7次と 15 次は4段構成(と私の妥協方法)では避けることができません。

負側へも、そのまま適用して回路を描くと下のようになります。
最初の 1kΩ は前段の出力インピーダンスも入れた値です。 とくにクリチカルな常数は右端の電圧分割の抵抗群です。  mV まで合わせるといいでしょう。 一番端の電圧、1.038V と -1.082V が一番歪みに効きます。  歪み率を見ながらポットを調整してください。



PNP と NPN のペアを作るときは、できるだけ VBE の差が 22.1mV (設計値)に近くなるように選びます。 右の絵は私の場合です。

まあとりあえず作ってみました。
結果は次の通りです。
 
1kHz の波です。 スペクトルの絵は、縦軸が 10dB/div で、横軸は 25kHz のバンド幅です。  ずぼらをやって、下側の設計に手を抜いたせいか、偶数次の歪みが入り込んでしまいました。 残念。  Duty ratio と入力電圧はポットで調整してあります。 0.2% 程度の歪みになります。  皆さんはちゃんとチューニングをしてください。
7次と 15 次は予定通り出ています。

対策を取らなかったときよりははるかにましです。 右の写真が対策を取る前の歪みです。


この方法で問題となるのは高周波の応答です。 マトリクスが大きな図体になるので浮遊容量が大きくなります。  とくに、分圧用の抵抗(Rn) の右側にエミッタなどの容量が存在しますから、波が遅れます。  できるだけ小さい部品を使って浮遊容量を小さくするように配置し、オペアンプ(3.14Vppに変換する段と後段のバッファ) は高周波応答の良いものにします。

例によって、エミッタフォロアは寄生発振する場合があります。  その場合は昔の記事を見て、適当に処置してください。  たぶんペアの左側のトランジスタのベースに 10 Ω程度かフェライトビーズを入れると止まると思います。


[余談]
下側の設計に手を抜いた、と書きましたが、事情は次の通りです。
まず上側について 2SA942 の特性を正確に反映して Rn と Bn を決め、また Bn 供給用の 2SC2240 のバイアスも決めていきました。
それらを決定した後で下側の設計にかかったのですが、上側の鏡像を作り、22.1mV の VBE 差だけを反映し、 そのほかのたとえばλの差などは無視しています。  本来はVBE 差を見るのではなく、 I0 と λ の差までさかのぼって設計するべきでした。  また、VBE について平均値を採用しましたが、個体値を取るべきかもしれません。  歪みを追求するときは 0.5mV 程度までの正確性が求められるのに対し、VBE は 5mV 位ばらつくからです。
かなり大がかりな計算ですので、やり直すまでの気力はありません。


[関連記事]
その2、その3の記事もお読みください。