アナログ・フィルタ設計の謎を解き明かす

アナログ・フィルタ設計の謎を解き明かす

著者の連絡先情報

要約

本稿では、アナログ・フィルタの設計方法について解説します。まずフィルタの基本を押さえた上で、バターワース、チェビシェフ、ベッセルといった基本的なフィルタの種類について説明します。続いて、ローパス・フィルタとハイパス・フィルタの設計手順を示します。その中で、式の導出方法や回路の実装方法などについても詳しく解説します。

はじめに

そこはジャングルです。

鬱蒼とした原野に住む人たちは、周囲の平原からやってきたヘッド・ハンターたちから引っ張りだこになっています。その人たちは「アナログ技術者」と呼ばれており、その秘伝の専門知識が持つ力は知れわたっています。彼らは、「ラプラス」という名のジャングルを抜けた最果ての地「左半平面」に住んでいます。

アナログ技術者たちの中でも、「アナログ・フィルタの設計者」は教祖のごとくあがめられています。その人は、彼の王国の玉座に座し、人々に様々な知恵を授けています。彼のことは「先生」と呼ばなければなりません。また、仮に約束を取り付けていても、彼に会うことはできないかもしれません。

フィルタの設計に関する多くの書籍には、多くのページにわたってたくさんの数式が書かれています。それらが初心者やデジタル技術者たちを怯えさせてしまうのは想像に難くありません。本稿では、そうした技術者に対して、その茂みを通り抜ける道を示し、フィルタ設計の謎を解き明かします。本稿を活用すれば、連続時間の信号を扱うアナログ・フィルタを最小限の数学を使うだけで素早く設計できるようになります。

アナログ電子回路の理論

アナログ電子回路に対する理解を深めるということについては、2 つの異なる側面があります。1 つは、学校の教育で教えるように理論を押さえるというものです。その場合、回路の安定性に関する方程式や、位相シフトの計算方法などについて学ぶことになるでしょう。もう1 つは、多くの技術者にとってなじみ深い実践的なものです。つまり、コンデンサでゲインを微調整して発振を防止するといった具合です。フィルタの設計ついては、古くから存在する数々の方程式や、理論を裏づける実験結果、計算から得られた数値の表など、既にしっかりとした基礎が築かれています。ただ、理論式に基づくフィルタの設計は非常に骨の折れる作業です。そこで、本稿では数学を使用するケースを最小限に抑えることにします。理論値を実際の部品の値(実用性のある値)に変換する際や、汎用のフィルタの応答を導き出す際などに限り、数式を使うようにします。

フィルタの基本

最も単純なアナログ・フィルタとしては、抵抗とコンデンサを組み合わせたローパス・フィルタが挙げられます。その伝達関数は次のようになります。

数式1

これに基づくフィルタをカスケード接続すると、伝達関数の分母が2 次式になります。つまり、分母がas2 + bs + c の形になり、より応答が複雑な2 次のローパス・フィルタの伝達関数が導き出されます。a、b、c に具体的な値を代入すれば、周波数に対するフィルタの応答が決まります。高校の数学を覚えていれば、上の式は、次式で与えられる特定のs の値に対してゼロになることに気付くでしょう。

数式2

この2 次方程式がゼロになるs の値では、理論的には伝達関数のゲインが無限大になります。それらのs の値は、周波数に対する各種フィルタの性能を規定するものであり、2 次方程式の「極」と呼ばれています。通常、極はペアとして存在します。つまり、複素数(a + jb)とその複素共役(a - jb)のペアです。なお、jb の項の値はゼロであることがあります。

ゲインが無限大の伝達関数について考えるのは現実的ではないように思えるかもしれません。ただ、極の実数部であるa は、過渡的な現象に対するフィルタの応答を表しており、虚数部のjb は周波数に対する応答を表しています。そして、実数部が負である限り、システムは安定です。後ほど、多くの教科書に書かれている極の値(表として示されます)を、回路設計に適した部品の値に変換する方法について説明することにします。

フィルタの種類

フィルタには様々な応答のものがあります。非常に一般的なものとしては、バターワース、チェビシェフ、ベッセルといった種類のフィルタが挙げられます。それ以外にも多くの種類がありますが、恐らく9 割程度のアプリケーションでは、これら3 種類のうちいずれかを使用することになるはずです。なかでも、バターワース・フィルタは、通過帯域の応答が平坦で、なおかつ適度に急峻なロールオフ性能が得られます。万能型かつ特性の優れたバターワース・フィルタは理解しやすいものでもあり、オーディオ処理などのアプリケーションによく使われます。一方、チェビシェフ・フィルタでは、バターワースと比べてはるかに急峻なロールオフ性能が得られます。但し、通過帯域にリップルが生じるのでオーディオ・システムには向いていません。チェビシェフ・フィルタは、通過帯域内に、対象とする周波数が1 つしか含まれないアプリケーションに適しています。そうしたアプリケーションの例としては、高調波をフィルタリングして方形波から正弦波を抽出したいといったケースが挙げられます。

ベッセル・フィルタは、入力周波数帯の全体にわたって一定の伝搬遅延を示します。そのため、方形波(基本波と多くの高調波で構成されている)をベッセル・フィルタの入力に印加すると、オーバーシュートのない方形波が出力されます(すべての周波数成分に同じ大きさの遅延が生じる)。他のフィルタでは、各高調波の遅延の大きさが異なるため、出力波形にオーバーシュートが現れます。一般的なフィルタとしては、もう1 つ楕円(エリプティック)フィルタも挙げられます。ただ、このフィルタは上記の3 種に比べてはるかに複雑なので、本稿では扱いません。楕円フィルタは、チェビシェフの応答と同様に通過帯域にリップルが生じますが、非常に急峻なロールオフ性能が得られます。その代償として阻止帯域にリップルが生じます。

標準的なフィルタ構造

図1(a)は、汎用的なフィルタの構造を表したものです。図中の部品G1~G4 を抵抗やコンデンサで置き換えれば、ハイパス・フィルタやローパス・フィルタを構成することができます。ただ、これらの部品はオペアンプのフィードバック回路に影響を及ぼします。そのことを考慮しつつローパス・フィルタを構成したい場合には、G1、G3 として抵抗を使用し、G2、G4 としてコンデンサを使用すればよいでしょう。それにより、必要なフィルタ回路を簡単に構成できます。なお、コンデンサと抵抗を逆にすれば、ハイパス・フィルタを構成することが可能です。

図1. 汎用のフィルタ構造(a)。G1~G4 として抵抗とコンデンサを使用することにより、ローパス・フィルタ(b)やハイパス・フィルタ(c)を実装することができます。

図1. 汎用のフィルタ構造(a)。G1~G4 として抵抗とコンデンサを使用することにより、ローパス・フィルタ(b)やハイパス・フィルタ(c)を実装することができます。

図1(b)に示したのがローパス・フィルタの構成例です。その伝達関数は次式で表されます。

数式3

この式は、コンダクタンスを使うことでより単純な形に変換できます。つまり、コンデンサをコンダクタンスsC に置き換え、抵抗をコンダクタンスG に置き換えます。その結果が複雑に感じられる場合には、式を正規化するとよいでしょう。すなわち、抵抗を1Ω にするか、またはコンデンサを1F に設定し、周りの部品の値を応答に応じて変更するということです。すべての抵抗値が1Ω であるとした場合、伝達関数は次式にようになります。

数式4

この伝達関数は、一般的な2 次ローパス・フィルタの応答を表しています。以下では、3 種の主要なフィルタの応答に対応する極の理論値表を使用します。その表に示されている値を実際の部品の値に変換する方法も明らかにすることにします。

設計手順の詳細

上述したとおり、必要なフィルタの種類を決めるためには通過帯域の特性について検討する必要があります。なお、高次のフィルタを構成する最も簡単な方法は、2 次のフィルタ段を設計し、必要に応じてカスケード接続によって段数を増やすというものになります。その結果、目標とする阻止帯域の減衰量を達成できるかどうかを確認すると共に、稿末の付録に示した表を参照して極の位置(値)の確認も行います。極の位置が決まったら、実際の部品の値をすぐに計算することができます。以下、そこまでの手順について詳しく説明していきます。

まず、それぞれの極の位置を、2 次フィルタの伝達関数の分母と同様の2 次式に変換します。例えば、2 次方程式が(a±jb)という極を持つ場合、(s - a - jb)と(s - a + jb)という因数を持つことになります。これらの因数を掛け合わせると、その結果として得られる2 次式はs2 - 2as + a2 + b2 となります。

極の表では、a は常に負の値であることを前提としています。そこで、便宜上、上の2 次式をs2 + 2as+ a2 + b2 と表し、符号にかかわらずa の大きさを使用することにします。ここでは、実例として4 次のバターワース・フィルタを取り上げます。極と、各極の位置に対応する2 次式は以下のようになります。

極(a±jb) 2 次式
-0.9239 ± j0.3827 s2 + 1.8478s + 1
-0.3827 ± j0.9239 s2 + 0.7654s + 1

この情報を使えば、ローパス応答を示す4 次のバターワース・フィルタを設計することができます。具体的には、上記の2 次式の値を式4 の分母に代入するだけです。そうすると、1 つ目のフィルタではC2C4 = 1、2C4 = 1.8478 であるということになります。そのため、C4 = 0.9239F、C2 = 1.08Fという値が得られます。2 つ目のフィルタでは、C2C4 = 1、2C4 = 0.7654 となります。その結果、C4 = 0.3827F、C2 = 2.61F という値が得られます。ここで2 つのフィルタの抵抗値はすべて1Ω です。これら2 つの2 次フィルタをカスケード接続すると、ロールオフ周波数が1rad/s の4 次のバターワース応答が得られます。しかし、現実には上記のような値の部品を見つけるのは不可能です。以下、この問題についての対処法と周波数の値を変更する方法について説明します。

回路の応答は、リアクタンスと抵抗の比を維持していれば変化しません。例えば抵抗の値を1kΩ に変更したとしても、問題なく対処できます。その場合、リアクタンスが抵抗と同じ割合で増加するようにするためには、コンデンサの値を1000 で割ればよいということです。

上記のような変更を加えても、完全なバターワース応答が得られます。しかし、ロールオフ周波数は1rad/s のままです。回路の周波数応答を変えるには、異なる周波数においてもリアクタンスと抵抗の比を維持しなければなりません。例えば、ロールオフ周波数を1rad/s から1kHz に変更したい場合には、コンデンサの値を更に2π×1000 で割る必要があります。そうすると、コンデンサのリアクタンスは、より高い周波数になるまで元の(正規化された)値には達しません。結果として、1kHz のロールオフ周波数を備える4 次のバターワース・フィルタは図2 のように構成できます。

図2. 4 次のバターワース・フィルタ。2 つの異なる2 次フィルタを組み合わせることで構成しています。

図2. 4 次のバターワース・フィルタ。2 つの異なる2 次フィルタを組み合わせることで構成しています。

上記の手法を使えば、2 次のフィルタをカスケード接続することによって、偶数次のどのようなフィルタ応答でも実現することが可能です。但し、4 次のバターワース・フィルタは、2 次フィルタの部品の値を計算し、それを単純にカスケード接続するだけでは実現できないことに注意してください。2 次の2 つのフィルタは、それぞれが異なる極の位置を持つように設計しなければなりません。また奇数次のフィルタが必要な場合には、2 次のフィルタを単にカスケード接続し、RC 回路を追加して異なる極を持つようにすれば実現できます。例えば、リップルが1dB の5 次のチェビシェフ・フィルタは、以下のような極を備えたものになります。

2 次式
-0.2265 ± j0.5918 s2 + 0.453s + 0.402 2.488s2 + 1.127s + 1
-0.08652 ± j0.9575 s2 + 0.173s + 0.924 1.08s2 + 0.187s + 1
-0.2800 本文参照

先ほど、式4 として一般的なフィルタの伝達関数を示しました。それに合わせて、上の式では、最後の項が1 になるように最初の2 つの2 次式に定数を掛けています。その結果、1 つ目のフィルタではC2C4 = 2.488、2C4 = 1.127 となりました。そのため、C4 = 0.5635F、C2 = 4.41F という値が得られます。一方、2 つ目のフィルタではC2C4 = 1.08、2C4 = 0.187 となっています。このことから、C4 = 0.0935F、C2 = 11.55F という値が得られます。

先述したように、RC 回路は1 + sCR = 0、つまりs = -1/CR という条件で極を持ちます。R = 1 の場合、最終的にs = -0.28 で極を持つようにするためには、 C = 3.57F とする必要があります。1kΩ の抵抗を使用する場合、1kHz のロールオフ周波数が得られるように正規化すると図3 のような回路が得られます。つまり、どのような周波数でも、どのような次数のローパス・フィルタでも、自信を持って設計を進めることができるということです。

図3. リップルが1dB のローパス・フィルタ(5 次のチェビシェフ・フィルタ)。異なる2 つの2 次フィルタと出力部のRC 回路で構成されています。

図3. リップルが1dB のローパス・フィルタ(5 次のチェビシェフ・フィルタ)。異なる2 つの2 次フィルタと出力部のRC 回路で構成されています。

ここまでに説明した理論は、ハイパス・フィルタの設計にも適用することが可能です。式1 として示したように、単純なRC ローパス・フィルタの伝達関数は次のようになります。

数式5

同様に、単純なRC ハイパス・フィルタの伝達関数は次の式で表せます。

数式6

正規化された極の数値表に対応できるようにするために、これらの関数を正規化します。すると、ローパス応答に対してはTF = 1/(1 + s)、ハイパス応答に対してはTF = 1/(1 + 1/s)という式が得られます。

なお、ハイパス応答の極の位置s は、ローパス応答の極の位置を反転させることによって得ることができます。それらの値をハイパス・フィルタ構造に適用すると、適切な周波数応答が実現されます。ハイパス・フィルタ構造の伝達関数を求めるには、ローパス・フィルタ構造の伝達関数に戻る必要があります。そこで次式に注目します。

数式7

コンデンサと抵抗を入れ替えると、次式が得られます。

数式8

これにより、ハイパス・フィルタ構造の伝達関数を求めることができます。ここで、抵抗ではなくコンデンサを正規化すると、次のようなシンプルな式が得られます。

数式9

上の式は、ハイパス・フィルタ構造の伝達関数を表しています。ここでは、コンデンサの値ではなく抵抗の値を計算します。一般的なハイパス・フィルタの応答について言えば、ローパス応答の極の位置を反転させ、ここまでに示したのと同様の作業を行うことによりハイパスの極の位置を導出することができます。しかし、複素数の極の位置を反転させるというのは、実際にはそれほど簡単ではありません。ここでは、先ほど例にとったリップルが1dB の5 次のチェビシェフ・フィルタについて考えてみます。その2 つの極の位置は、(-0.2265±j0.5918)にあります。

複素数を反転させる最も簡単な方法は、複素共役を掛けて割ることです。このようにすると、分子が実数になります(以下参照)。

数式10

そして、分母と分子を逆にすると逆数が求められます。それにより極の位置が得られ、それに対応する2 次式に変換することができます。その結果は以下のようになります。

数式11

2 次式
-0.564 ± j1.474 s2 + 1.128s + 2.490 0.401s2 + 0.453s + 1

これにより、各フィルタで使用する部品の値を計算することができます。まず、1 つ目のフィルタについてはR2R4 = 0.401、2R2 = 0.453 となります。そのため、R2 = 0.227Ω、R4 = 1.77Ω という値が得られます。他の極の位置についても同じ手順を適用することで値を得ることができます。

s = -1/CR であることから、より簡単な方法も考えられます。それは、適切なローパス応答の極を使ってローパス・フィルタを設計し、次にそのフィルタのすべての極を単一のRC 回路として扱うというものです。この方法であれば、ローパス応答の各極を反転させてハイパスの極を簡単に得ることができます。単にCR の値を反転させるだけでよいからです。ハイパスの極の位置が得られたら、コンデンサと抵抗の値を算出することで適切な周波数応答が得られます。

ローパス・フィルタの設計では、R = 1Ω として正規化を行い、コンデンサの値を計算しました。そのため、CR の値はC の値に等しく、C の値の逆数をとることでハイパス応答の極を求めることができます。この極をR の新たな値とすれば、ハイパス・フィルタ用の部品の適切な値が得られます。

再びリップルが1dB の5 次のチェビシェフ・フィルタについて考えてみましょう。その場合、計算によるコンデンサの値はC4 = 0.5635F、C2 = 4.41F となります。ハイパス・フィルタの抵抗の値を求めるには、C の値の逆数をとり(ハイパスの極の位置を求めるため)、それらの極を正規化された新たな抵抗値とします。すると、R4 = 1.77、R2 = 0.227 という値が得られます。この方法でも、先述した方法で求めた場合と同じ結果が得られます。

このようにすれば、図3 に示した回路を、ロールオフ周波数が1kHz のハイパス・フィルタ回路に変換することができます。そのためには、正規化されたコンデンサの値を反転し、実際の抵抗とコンデンサに応じて値をスケーリングします。前の例では、2πfR で割ることにより、ローパス・フィルタ向けに値を正規化しました。ここで取り上げている例では、スケーリング・ファクタとして2πfC を使用します。ここで、C はコンデンサの値、f は周波数(単位はHz)です。このようにして計算を行うと、図4の回路が得られます。最後に、ローパス・フィルタとハイパス・フィルタの応答をシミュレーションによって確認しておきましょう。図5 に示したのがSPICE によって各フィルタの出力をシミュレーションした結果です。

図4. リップルが1dB のハイパス・フィルタ(5 次のチェビシェフ・フィルタ)。図3 の回路の抵抗とコンデンサを入れ替えることで構成しています。

図4. リップルが1dB のハイパス・フィルタ(5 次のチェビシェフ・フィルタ)。図3 の回路の抵抗とコンデンサを入れ替えることで構成しています。

図5. ローパス・フィルタとハイパス・フィルタの応答(いずれもチェビシェフ・フィルタ)。SPICE によるシミュレーション結果を示しました。

図5. ローパス・フィルタとハイパス・フィルタの応答(いずれもチェビシェフ・フィルタ)。SPICE によるシミュレーション結果を示しました。

まとめ

本稿で説明した方法を使用すれば、任意の周波数応答を示すローパス・フィルタとハイパス・フィルタを設計することができます。本稿では触れませんでしたが、同様の手法によって単一のオペアンプを使用するバンドパス・フィルタやバンドストップ・フィルタを実装することも可能です。なお、それらのフィルタは、ローパス・フィルタとハイパス・フィルタをカスケード接続することでも実現できます。アナログ・デバイセズのオペアンプ製品については、https://www.analog.com/jp/productcategory/amplifiers.html をご覧ください。

付録

バターワース・フィルタの極の位置
次数 実数部 虚数部
-a ±jb
2 0.7071 0.7071
3 0.5000 0.8660
1.0000
4 0.9239 0.3827
0.3827 0.9239
5 0.8090 0.5878
0.3090 0.9511
1.0000
6 0.9659 0.2588
0.7071 0.7071
0.2588 0.9659
7 0.9010 0.4339
0.6235 0.7818
0.2225 0.9749
1.0000
8 0.9808 0.1951
0.8315 0.5556
0.5556 0.8315
0.1951 0.9808
9 0.9397 0.3420
0.7660 0.6428
0.5000 0.8660
0.1737 0.9848
1.0000
10 0.9877 0.1564
0.8910 0.4540
0.7071 0.7071