LTspiceを使った回路設計手法2: 歪率の評価方法について
 
基本的な使い方が分かったところで、オーディオ関連の設計で気になる、歪率を測定してみましょう。

●既存のツールを使う方法 :LTspiceでは、歪率の評価手段として、2種類のツールがあります。
 
1、波形を選んで、FFTで周波数分析する

トランジェント解析で正弦波出力を出させ、そのVoutの波形を見ます。
波形のウィンドウ(.raw)をクリックしてから、メニューのVewからFFTを選んで周波数成分を分析したのが緑のグラフです。

1kHzの信号成分が21Vですから+26dB、3kHzの3次高調波成分が -86dB位ですのでその差は112dB(率では0.00025%程度)と読み取れます。

FFT画面では、歪の周波数成分を広範囲に見渡せますが、合計のTHDが何%なのかが分からないのが欠点。


2、コマンド .Four を使ってLogの結果を見る

解析を走らせる前に、回路図中に .Fourコマンドでフーリエ解析を指示できます。
ここでは「.Four 1k v(vout) v(vin)」とコマンドを入れて、2か所のFFTを計算させています。(何か所でも指定できる)
結果は"Control+L"のキー操作で表示されるログファイル中にあります。

右上の数字が並んでいるのがこのログファイルのFFT結果の部分で、THD=0.000411%と表示されています。
この値は、アイドリングを最適値(R15=215Ω)にして得られる最良値であり、hfeが完全にリニアな理想トランジスタでもクロスオーバー歪がこの程度あることを示しています。(試作して実測した値もこの程度)


・陥りやすいエラーと回避方法

LTspice標準のFFT機能を使う上での注意点は、右の回路図中にも記入してあるオプションのコマンドです。
0.01%以下の歪成分を観測するには".option plotwinsize=0"は必須のコマンドで、これがないと分解能が大幅に低下します。

また、分析する時間(Transient解析のStop Time)が正弦波10サイクル分(1kHzでは10ms)を超えると
"Maximum Timestep"の指定も追加しないと、やはり分解能が低下します。
信号周波数1サイクルの1/1000(1kHzでは1us)を指定すれば十分。これより小さくしても.rawファイルの容量が無駄に増えるだけです。
これで、歪率で0.000001%までなら、直接評価することが可能。

ただ、値は計算できても、歪波形がどうなっているのか、波形のどの部分で歪が出ているのか、FFT解析からはわかりません。何とか波形で見たいところです。


●ツールを自作して歪波形を観測する方法

単純には出力信号から正弦波を引き算すれば歪波形が残るのですが、入力に対して出力はわずかに位相がずれるので、Sinだけ単純に引き算してもCos成分が必ず残り、歪波形だけにはなりません。
Sin/Cos成分の両方を丁寧に合わせこめば消すことは可能ですが、調整は非常に面倒。とても手動ではやってられません。
確実な方法は、回路の中に歪率計も作ってしまい、同時にシミュレーションすることです。


右の回路図(半分は省略)で、新たに付け加えた部分が簡易的な歪率計の回路。

CとRの値を.paramsで指定して1kHzを除去するツインTのノッチフィルタを構成し、さらにE1による正帰還でQを裸の0.25から2.5に上げています。
(Q=2.5では2次高調波が3%強減衰するが、気にしないことにする)

ツインTの1段では基本波除去能力が不足するので、信号を入れる前にV=Vout-21*Vinで基本波成分を引き算します。


その結果、得られた波形(dist_out)を8Ω負荷電流I(R14)と同時に表示したのが右のグラフ。(電圧波形だと直接Voutと比較しにくいので、グラフの軸を電圧と電流で分け、同時に表示)

予想通り、出力のゼロクロス付近のクロスオーバー歪が大きく尖っているのが見えます。(この尖った部分がFFT解析で櫛の歯状に高周波成分が沢山出ている成分を表す)

クロスオーバー歪以外にも、Q6(PNP)のVbe変化が原因の2次歪も少し出ているのが分かります。

・アンプの低域時定数の問題

上の説明では特に触れませんでしたが、右の回路図で、従来と違う点があります。
それは、NFBの100Ωに100uFのCを入れて、ACアンプになっている点です。

アンプにこのような低域時定数があると、Sin波を入力した瞬間にDC的な電位変動が発生し、定常状態に戻るまでの間は歪の測定ができなくなるという問題が発生します。

右の波形は、それを回避するためにトランジェント解析を80msまで実施し、最後の2msのみ(78ms-80ms)を表示しています。NFB回路の時定数が100u*100=10msなので、DC変動の暴れが落ち着くまでその8倍の時間は待つ必要があるのです。

これを待たないとどうなるかが、下の図。

青のグラフは1kHz成分を除去した出力ですが、最初に300mV程度のDC成分が出て、10msの時定数で指数関数的に減衰しているのが分かります。

この時のアンプ出力電圧(Vout)をFFT解析したのが緑のグラフで、DC変動によって-60dB以下はマスクされてしまい、全く歪成分を検出することが出来ません。
例に示した回路では低域時定数が10msだったので、待ち時間は80msで済みましたが、これがもっと大きいとDC変動が落ち着くのにさらに長い時間がかかるようになります。

DC変動を減らすアイデアとして、波形の頭にDC成分を持つSin波の代わりにDC成分を持たないCos波を使う手もあります。

単にSinをCosに変える(信号源の位相を90°ずらす)のでは、解析スタートのDC動作点が波形ピーク位置にずれてしまうのでNG。
正弦波の信号源に振幅変調を掛けるテクニック(この回路で最初にAC解析を走らせたときの回路図でV2の値=vdcを0から1usで1Vに立ち上がるように設定:PWL(0 0 1u 1)し、正弦波:SIN(0 1 1k)の入力=vinをBVを使ってV=v(vin)*v(vdc)で掛けてからアンプへ入力する)を使って、解析スタート時の直流動作点のずれを解決します。

これでトランジェント解析立ち上がり時のDC変動は1/1000まで小さくできます
それでも0.001%以下の歪を見るには低域時定数の3倍以上は待つ必要があります。

・アンプの低域時定数の問題を回避する方法

上の図のツインTのノッチフィルタを使う手段では、DC成分はそのまま通過するので、アンプの出力にわずかなDCオフセットがあると観測する歪波形にも直流がそのまま残り、電圧値が読みにくい問題が生じます。
これを解消するには、歪率計の回路にDC成分をカットする機能を付ける必要があります。

24bit分解能を得るための低ノイズツインTフィルタの検討の「5-3、もっと画期的な手法」で解説している、2次HPF補正タイプのツインTフィルタを構成すれば、ノッチ周波数以下は急峻にカットし、しかも2次高調波は全く減衰のない周波数特性が実現できます。

実際の回路図は省きますが、1kHzの信号をトランジェント解析でMaximum Timestep=1usで計算した場合は、基本波は110dBまで除去でき、減衰量を補うために、ツインTに入れる前の減算で基本波を50dB除去すれば歪率-160dBまでは歪成分を直視可能。さらに分解能を上げるにはMaximum Timestepの値を小さくする。(歪波形を観測するだけなら、".option plotwinsize=0"の指定は不要です。)

低域カットのフィルタの効果で、トランジェント解析の時間は5msからで十分に基本波やDC変動分が除去されます。

なお、周波数が上がってアンプのNFBが小さくなると、単純な引き算での基本波除去がうまくいかず、ツインTの1段では基本波除去が不完全な傾向が出ます。その場合はTwin-Tユニットをさらに1個つなげます。
(実際の歪率計のノッチフィルタも、何段かのTwin-Tを重ねた構成になっています。)

この場合は、基本波成分が消えるのに8サイクル程度の時間がかかるので、1kHzの場合は10ms以降の部分を表示するようにします。


ところで、解析する回路図の中に歪率計の回路をその都度作りこむのはとても面倒です。
歪率計だけの回路図を用意しておき、「複製」コマンドを使って必要な時にコピーすると便利。
(LTspiceでは、コピーは同じウインドー内に限定されるので"OPEN"コマンドで開いて使う。)

次は、回路ブロックを1個の部品として登録する方法を解説します。


    前の項目に戻る     次に進む     アンプ設計のTOPに戻る