MastHead

2種類の Sallen-Key 2次フィルタ

(注意: 以下の記事を掲載後 「7次までのフィルタの楽々設計」 の記事を書いており、 そこにあるエクセルの方が高性能です。)

セイレンキー(Sallen-Key) で2次のフィルタを作り、その回路で、変数を1つ動かしてフィルタ特性がどのように変化するか見てみましょう。 フィルタは2種類やってみます。

右の図は教科書にも載ってくる Sallen-Key の Low Pass フィルタです。 バッファに1よりやや大きい増幅をさせて、1段目のフィルタにブートストラップをかけ、肩の特性を持ち上げようとするものです。

バッファの増幅率を K として、これを少し動かして特性がどうなるか見てみます。 フィルタ段の R と C は全部 1 にします。 

まず、K=1.58578645953602 という特殊な値の時の相対ゲインと移相です。 (ゲイン 0dB は直流でのゲインとします)
    
ω(周波数)=1 で -3dB となり、通過域では上側への盛り上がりがありません。
実はこの K の値(1.586)は、盛り上がりがないぎりぎりで、最大の値なのです。  この(盛り上がりのなく、肩が一番持ち上がった)周波数特性を持ったフィルタを、 「バタワースフィルタ (Butterworth filter) 」と呼びます。  最平坦特性フィルタとも呼ばれます。

回路は2次のフィルタですので、ω=1 からずっと上ではオクターブ当たり -12dB の傾斜で下がります。  これは 1 decade 当たり -40dB です。 また、位相は 180 度遅れに近づきます。

それでは、重要なパラメータである K を動かして肩の特性がどうなるか見てみましょう。

K が大きくなると 0dB を超えるところがでてきます。
K=1.8 より少し大きい 1.842 では、盛り上がりの最高点で 0.5dB になります。  このような形のフィルタを 「リップルが 0.5dB のチェビシェフフィルタ (Chebyshev filter)」と呼びます。  肩を持ち上げて、ω=1 付近の切れをよくするときに使います。 もっとリップルを許すと、もう少し切れが良くなります。  K=1.842 では -3dB 点は ω=1.175 付近になります。

バタワースやチェビシェフのフィルタに方形波を入れますと、出力波形にはオーバシュートが現れます。  バタワースで 4.3%、0.5dB のチェビシェフで 10.7% になります。
K を小さくしてゆくとフィルタの肩の特性はゆるみますが、オーバシュートは少なくなります。
K=1.269 まで落とすとオーバシュートがほぼ無くなります(0.4%)。  この形のフィルタを 「ベッセルフィルタ (Bessel filter)」 と呼びます。  「トムソンフィルタ (Thomson filter)」 と呼ぶ人もいます。 このとき -3dB の ω は 0.786 になります。

ベッセルフィルタは通過帯域内の群遅延時間が比較的一定なのでオーディオで使われることがあります。

K が 3 以上になると発振しますが、エクセル上では見えません。 2.5 では ω=1 で 6dB の盛り上がりになります。  グラフを見ますと、K が少し変わるだけでカーブが大きく変わり、感度が高い様子が分かります。 


さて、上の回路例では、R=C=1 で計算し、C1 へのブートストラップを 1 より大きくしました。  同じ目的を達成するには、K を 1 として、C1 の値を大きくしても良いでしょう。

そこで、右の図の様な回路を考えます。 C1 を 1 より大きくして様子を見てみましょう。





左の図がそうです。
C1=2 のときにバタワースフィルタになります。 -3dB での ω は 0.707 になります。
C1 が動くと周波数も動きます。 最初の形とは違った様子ですから気を付けてください。

グラフから、C1 の感度はそれほど高くないことが伺われます。

ベッセルは C1=1.335 の辺りです。

こちらの方が部品点数は少ないですし、K=1 なのでエミッタフォロアでもやれますし、部品感度が低いですから実用性があるように感じます。





[補足]
R=C=1 という表現方法になれていない方は、以前の記事「RLC 回路の伝達関数、正規化の手法」をお読みください。

High pass フィルタに変えたいときは、
   R と C を入れ替える
   C1 を 2倍にしたところでは R に変えた後 R を半分にする
ことを行います。 グラフが ω=1 の軸で左右反転します。


上記の2つのフィルタとも、入出力伝達関数は次の通りですので、興味のある人は計算してみてください。

Eout       A * C
---- = -------------- * K
Ein    1 - K * B * C

       X1//D                  R1//D               X2
A = ------------ ,    B = ------------- ,   C = ------ ,   D = R2 + X2
     R1 + X1//D             X1 + R1//D            D

      1             1
X1 = ---- ,   X2 = ---- ,    S = jω
     S*C1          S*C2

それを少し変形して Low-pass/High-pass の計算をさせる Excel ファイルを作っておきました。 他の要素を動かしたときの様子が分かります。
からダウンロードできます。  赤いカラムに R1 R2 C1 C2 K の値を入れますとゲインと位相と group delay が表示されます。  K が 0 (帰還なし)になっても良い様に、出力は別の所から取っています。 2ページ目が high-pass の計算です。
(注意: この記事を最初に掲載以降に機能を追加していますので AutoFilCal2.htmAutoFilCal3.htm の記事も読んでください。)
group delay というのは日本語では「群遅延」と呼ばれますが、位相を周波数で微分したもの(を符号を反対にしたもの)です。 これに盛り上がりがなければオーバシュートがありません。

え? ω=1 で 3dB 落ちのバタワースと、ω=1 付近で 3dB 持ち上がるチェビシェフを従属接続するとどうなるかって?  そう、おもしろくなってきますね。 
そのエクセルシートで3ページ目を作って、1ページ目から丸ごとコピーして、後ろの方に1ページ目のゲインと3ページ目のゲインを足すカラムを加えると計算できますよ。 もちろん3ページ目の K は 2.235 などの値に変更します。 2.235 なら ω=0.83 辺りで 1.3dB 持ち上がり、ω=1 で 0.7dB 落ちぐらいでしょうかね。 上の方は -24dB/oct です。 いろいろ実験できます。


[参考/注意]
TI の Sallen-Key に関する解析文書です。  ==> これ
非常に高い周波数ではオペアンプが理想特性からはずれるため、C1 によって feed forward された信号が出力に現れる様子が述べられています。

一般的に言って、オペアンプの裸ゲインが下がってしまう領域においては計算したカーブからずれてしまいます。
注意が必要です。


[余談]
上の入出力伝達特性のグラフは下に行くほど減衰している方向に描いています。
しかし、フィルタを専門に設計/解析する方は減衰特性をみますので上方向に減衰量を取ることがあります。 最初見たとき面食らいますが、これを知っておくと驚かなくてすみます。