初心者のためのLTspice入門 フィルタ回路の再確認(9)サレン・キー型ローパス・フィルタをシミュレート
今回は、アナログ・デバイセズ社の「OPアンプによるフィルタ回路の設計」(OPアンプ大全、CQ出版)の第6章の各種フィルタの設計方法に従い、サレン・キー型ローパス・フィルタを設計・シミュレーションし、実際の回路でも試してみます。
回路は、図6-12(100頁)の回路を用い、各素子の値を決めていきます。OPアンプは手許にあるLT1006を利用します。
回路図の各素子の値を116頁の設計方法に従い決めていきます。抵抗の抵抗値、コンデンサの容量値を .paramディレクティブを使って変数で指定します。そのほかにフィルタのゲイン、Q、カットオフ周波数などについても .paramディレクティブを使って変数で定義します。
●各素子の値を変数にする
抵抗値は、R1の抵抗値の変数はra1とし{ra1}と書き換えます。その他の抵抗も、抵抗値を{ra2}、{ra3}、{ra4}と書き換えます。コンデンサの容量も、同様に{ca1}、{ca2}と変更します。電源のV1、V2は、それぞれ5VのDC電源に設定して±5Vの供給電源とします。
V3は、テスト回路の信号源としてAC解析のため1Vの正弦波を発生できるようにAC 1の設定をしています。過渡解析のために10kHz、1Vの正弦波(SINE波)が出力できるように設定しておきます。
●回路の各設定値を決めていく
(1) コンデンサC1、抵抗R3の値をまず決めます。ここではC1を0.1μF、R3を10kΩとします。
(2) フィルタのカットオフ周波数fo、フィルタのゲインha、Qの逆数となるダンピング・ファクタを決めます。ここではQを設定して .paramの計算式の中で逆数にしています。
ここまでの処理が、次の .paramディレクティブで示されます。
.param ca1=0.1u ra3=10k fo=10k ha=2 aa=1/0.707 |
0.707はQの値です。このQの値を .stepディレクティブで変化させピーキングとの関係を調べることができます。その他の設定値も同様に変化させることができます。
(3) 以上の条件で各素子の値を計算します。
設計手順の、
k=2πfoC1 m=α2/4+(H-1) |
は、次のように記述しました。
.param ka=2*pi*fo*ca1 ma=aa*aa/4+(ha-1) |
(4) R1、R2、R3、C2の値は、設計式に従い次のように設定します。
.param ra1=2/(aa*ka) ra2=aa/(2*ma*ka) ra4=ra3/(ha-1) ca2=ma*ca1 |
(5) AC解析でフィルタの周波数特性を確認します。
以上の結果をもとに、AC解析を次のように設定しシミュレーションを行います。
シミュレーション結果は次のようになります。
●任意のカットオフ周波数の設定値を変更する
.stepディレクティブで、fo(カットオフ周波数)を2.5kHz、5kHz 、10kHz、20kHzと変化させてみます。
新たに .stepディレクティブで変化させる変数にfoaを設定し、.paramディレクティブでfo=10kと設定してある10kの代わりに変数foaを設定し、ステップ動作をさせます。次に示す .step Statement Editorでディレクティブを設定します。
OKをクリックすると、回路図に次のディレクティブが設定されます。
.step oct param foa 2.5k 20k 1 |
シミュレーション結果は次のようになります。
グラフの画面を拡大すると、各ステップ波形がカットオフ周波数で3dBの減衰になっていることが確認できます。出力も6dBでゲインも設定どおりであることが確認できます。
●Qの値を変えてみる
設計式の中で、Qの値を変えてピーキングの様子を確認します。aa=1/0.707のQの値を変数qaに置き換えます。次のディレクティブで、変数の設定とステップ動作を設定します。
.step param qa list 0.5 0.707 2.0 5 |
シミュレーション結果を次に示します。
緑色のラインがQ=0.5のラインで減衰がなだらかになっています。青のラインはQ=0.707に設定してあります。この設定で10kHzのカットオフ周波数で3dBの減衰となっています。
●各素子の値を確認する
回路の抵抗の抵抗値、コンデンサの容量値が設計手順に従い求められています。.measディレクティブでエラー・ログに表示するようにします。その後、赤のラインはQ=2.0、青緑のラインはQ=5に設定してあります。Qの増加に応じてピーキングも増大しています。
●回路の抵抗、コンデンサの値を確認する
各設定値は、.paramで設定された変数に格納されています。変数の値を.measディレクティブで読み取ります。読み取られた結果はSpice Error logに記録されます。
View>Spice Error logで表示された結果を次に示します。ただし、AC解析では計算は複素数の演算で行います。そのため、記録されている値は10kΩの抵抗の設定値が80dB、0°などと表示されています。0.1μFのコンデンサの容量値が-140dBと表示されています。
dB表示を通常のリニアの表示にするにはdB表示を1/20して得た値を10の指数として計算することができます。少々面倒なので、過渡解析でシミュレーションすると複素数演算を行わないので、リニアな表示の結果が得られます。
カットオフ周波数前後の10kHzの信号を加えてシミュレーションした結果を次にします。
各素子の設定値は、次に示すようにわかりやすい値になっています。
カットオフ周波数10kHzのシミュレーションは、step3のシミュレーションで各素子の値は次のようになります。
R1 | 225Ω | R2 | 75Ω |
R3 | 10kΩ | R4 | 10kΩ |
C1 | 0.1μF | C2 | 0.15μF |
次回、ハイパス・フィルタ、バンドパス・フィルタなども、LTspiceで設計手順に従い設定値を決めてシミュレーションを続けます。
(2019/12/13 V1.0)
<神崎康宏>