B. バタワースフィルタ

B.1 バタワースフィルタの伝達関数

やらない夫
IIRフィルタの間接設計の例として,バタワースフィルタというアナログフィルタをプロトタイプとしたものを紹介したんだが,バタワースフィルタ自体は完全に天下りで与えてしまったのがちょっと心残りだ.

やる夫
正直,あの式 (16.19) も,その極の配置も,さっぱり意味がわからんお.

やらない夫
まあ,アナログフィルタは本題じゃないとはいえ,さすがにひどかった気がするので,一応フォローしておこうと思う.

やる夫
手短にお願いしますお.

やらない夫
話の出発点は,$ N$ 次バタワースフィルタの振幅特性

$\displaystyle \vert H_\textnormal{bw}(j\Omega)\vert$ $\displaystyle = \frac{1}{\sqrt{1 + \left(\frac{\Omega}{\Omega_\textnormal{c}}\right)^{2N}}}$ (16.20)

だ.こういう振幅特性を実現するような伝達関数が,どうして式 (16.19) のような形で表されるのかを知りたい.

やる夫
んー, $ s = j\Omega$ を代入して $ H_\textnormal{bw}(s)$ を求める,とかじゃダメなのかお?

やらない夫
それじゃ $ \vert H_\textnormal{bw}(s)\vert$ が得られるだけだからな.伝達関数の振幅は決まるが,位相が手に入らない.

やる夫
あー,そういうことかお.

やらない夫
というわけで,もう少し遠回りが必要だ.

まず前提として, $ H_\textnormal{bw}(s)$ のインパルス応答 $ h_\textnormal{bw}(t)$ は実信号だとする.すると,それをフーリエ変換した $ H_\textnormal{bw}(j\Omega)$ は振幅が偶関数,位相が奇関数になる.これはわかるな?

やる夫
あ,えーと, フーリエ級数の話のときとか, フィルタの線形位相特性の話のときとか,ちょくちょく出てきた話だったお.正の周波数と負の周波数成分どうしで虚数部分を打ち消し合う必要があるから,そうなるんだったお.

やらない夫
振幅が偶関数で位相が奇関数ということは, $ H_\textnormal{bw}(j\Omega)$$ \Omega$ の符号を変えると複素共役になるということだ.

$\displaystyle H_\textnormal{bw}(-j\Omega)$ $\displaystyle = H_\textnormal{bw}(j\Omega)^*$ (B.1)

やる夫
振幅が同じで,位相が逆になるんだから,まあそうなるお.

やらない夫
このことを利用してやる.ちょっと唐突だが,伝達関数が $ G(s) = H_\textnormal{bw}(s)H_\textnormal{bw}(-s)$ であるような別のシステムを考える.そうすると今の関係から,このシステムの周波数応答,つまり $ G(j\Omega)$ は,

$\displaystyle G(j\Omega)$ $\displaystyle = H_\textnormal{bw}(j\Omega)H_\textnormal{bw}(-j\Omega)$ (B.2)
  $\displaystyle = H_\textnormal{bw}(j\Omega)H_\textnormal{bw}(j\Omega)^*$ (B.3)
  $\displaystyle = \vert H_\textnormal{bw}(j\Omega)\vert^2$ (B.4)

と変形できるので, $ H_\textnormal{bw}(s)$ の振幅特性の2乗に一致する.

やる夫
なるほど,共役な複素数をかけると絶対値になることをうまく使ってるんだお.

やらない夫
$ \vert H_\textnormal{bw}(j\Omega)\vert$ は与えられているので, $ G(j\Omega)$

$\displaystyle G(j\Omega)$ $\displaystyle = \vert H_\textnormal{bw}(j\Omega)\vert^2$ (B.5)
  $\displaystyle = \frac{1}{1 + (\Omega / \Omega_\textnormal{c})^{2N}}$ (B.6)
  $\displaystyle = \frac{\Omega_\textnormal{c}^{2N}}{\Omega_\textnormal{c}^{2N} + \Omega^{2N}}$ (B.7)

と求まる.以下,ここから $ G(s)$ の形を定め,さらに $ H_\textnormal{bw}(s)$ を定めようという話だ.

やる夫
ちっとも手短じゃなさそうだお…

やらない夫
まあそう言うな.まず $ G(s)$ だが, $ G(j\Omega)$ $ j\Omega = s$ を代入してやればいい.

やる夫
えーと,つまり $ \Omega = s/j$ だから,

$\displaystyle G(s)$ $\displaystyle = \frac{\Omega_\textnormal{c}^{2N}}{\Omega_\textnormal{c}^{2N} + \frac{s^{2N}}{j^{2N}}}$ (B.8)
  $\displaystyle = \frac{\Omega_\textnormal{c}^{2N}}{\Omega_\textnormal{c}^{2N} + (-1)^N s^{2N}}$ (B.9)

ってことになるかお.

やらない夫
いいだろう.分子が定数,分母が $ s$$ 2N$ 次式だから,零点は無く,極が $ 2N$ 個あるはずだな.極がどういう配置になっているか調べてみよう.

やる夫
えーと,分母 = 0 を解けばいいんだから $ \Omega_\textnormal{c}^{2N} + (-1)^N s^{2N}
= 0$ を解いて…,あれ? どうすればいいんだお?

やらない夫
そうだな,極座標で表示してみるのが手っ取り早いかな.実数 $ r \geq 0$$ \theta$ を使って $ s = r e^{j\theta}$ と表してみたらどうなる?

やる夫
そのまま代入してみるお.

$\displaystyle \Omega_\textnormal{c}^{2N}$ $\displaystyle = - (-1)^N r^{2N} e^{j2N\theta}$ (B.10)

うー,まだややこしいお.

やらない夫
$ \theta$ が複素指数関数の中にしかないので,両辺の絶対値を取れば $ r$ だけの方程式になるな.

やる夫
あー,なるほど,絶対値を取ると,$ r$ $ \Omega_\textnormal{c}$ も正だから

$\displaystyle r^{2N}$ $\displaystyle = \Omega_\textnormal{c}^{2N}$ (B.11)
$\displaystyle r$ $\displaystyle = \Omega_\textnormal{c}$ (B.12)

となって $ r$ は定まるわけだお.残りは $ \theta$ だけど,元の式に $ r =
\Omega_\textnormal{c}$ を代入して

$\displaystyle e^{j2N\theta}$ $\displaystyle = - (-1)^N$ (B.13)

を満たせばいいわけだお.

やらない夫
そうだな.$ (-1)^N$ があるので,$ N$ が奇数のときと偶数のときで場合分けしよう.

やる夫
$ N$ が奇数のときは $ e^{j2N\theta} = 1$ だから, $ 2N\theta$$ 2\pi$ の整数倍ならいいんだお.だから, $ n$ を任意の整数として

$\displaystyle \theta$ $\displaystyle = \frac{n \pi}{N}$ (B.14)

になるわけだお.

で,$ N$ が偶数のときは $ e^{j2N\theta} = -1$ だから,えーと,$ 2N\theta$$ \pi$ の奇数倍ってことかお.つまり $ 2N\theta = (2n + 1)\pi$ だから,

$\displaystyle \theta$ $\displaystyle = \frac{(2n + 1)\pi}{2N}$ (B.15)

になると思うお.

やらない夫
いずれにせよ,極は半径 $ \Omega_\textnormal{c}$ の単位円上に等間隔に並ぶわけだな.例として $ N = 3$$ N = 4$ の場合はこうなる.


\includegraphics[scale=0.5]{fig_butterworth/G_poles.eps}

やる夫
おー,なんかどこかで見たような配置に似てるお.

やらない夫
ああ,もう一息だ.ここまでで得られたのはあくまで $ G(s)$ の極であって, $ G(s) = H_\textnormal{bw}(s)H_\textnormal{bw}(-s)$ だったから,これらの $ 2N$ 個の極を $ H_\textnormal{bw}(s)$ $ H_\textnormal{bw}(-s)$ に分配したい.そうすれば $ H_\textnormal{bw}(s)$ が定まる.

やる夫
んー,じゃあ好きなように $ N$ 個ずつに分ければいいのかお?

やらない夫
そういうわけにはいかんな.まず $ H_\textnormal{bw}(s)$ $ H_\textnormal{bw}(-s)$ は,片方を決めればもう一方も自動的に決まってしまうような関係だ.具体的には, $ H_\textnormal{bw}(s)$$ s$ のところに $ -s$ を代入すれば $ H_\textnormal{bw}(-s)$ になるわけなので,極の配置もこの関係を満たさなくてはならない.

やる夫
えーと,じゃあ例えばある $ s = s_1$ $ H_\textnormal{bw}(s)$ の極だったとしたら, $ H_\textnormal{bw}(-s)$ の極には $ s = -s_1$ が含まれていなくちゃならないってことかお.あ,つまり,原点に対して対称になるペアを 1 個ずつ $ H_\textnormal{bw}(s)$ $ H_\textnormal{bw}(-s)$ に分配してやればいいってことだお.

やらない夫
そういうことになる.もう一つの条件は,今フィルタとして使いたい $ H_\textnormal{bw}(s)$ の方は,安定でなくてはならないということだ.

やる夫
そうか, $ H_\textnormal{bw}(s)$ の極はすべて実部が負 じゃないといけないんだったお.

やらない夫
そこまでわかればもう答えは一通りしかない.$ G(s)$ の極のうち,左半平面にあるもの全部を $ H_\textnormal{bw}(s)$ の極として選ぶことになる.

やる夫
$ H_\textnormal{bw}(-s)$ の極との原点対称性も問題ないお.

やらない夫
というわけで,$ N$ 次バタワースフィルタの極配置は 既に見たような配置になる.この伝達関数を式で表すと,ちょっとややこしいが式 (16.19) のようになるわけだ.


B.2 バタワースフィルタの次数の決定

やらない夫
せっかくなのでもう一つ,要求仕様から次数 $ N$ を決める方法についても説明しておこう.

やる夫
あー,そういえばプロトタイプフィルタに使うようなアナログフィルタは,次数を一発で求められるものが多いって 言ってたお.バタワースフィルタもそうなのかお?

やらない夫
もちろんだ.実際に計算式を導出してみよう.

要求仕様を次のように与えることにする.阻止域に入る最小の周波数を $ \Omega_\textnormal{L}$ として,そのときの振幅を $ A$ とする.

やる夫
えーと,つまり阻止域では最大でもこのくらいの振幅までに押さえてくれっていう値 $ A$ を決めて,ある周波数 $ \Omega_\textnormal{L}$ 以上ではそれが守られるようにするってことかお.…あれ? それって遮断周波数とは違うのかお?

やらない夫
違うぞ.もう一度フィルタ仕様に関する 用語を確認して欲しいんだが,遮断周波数 $ \Omega_\textnormal{c}$ ってのは振幅が $ 1/\sqrt{2}$ 倍になるところだ.そこよりさらに周波数を大きくしたときに,どれくらい急激に振幅が小さくなるかを決めるのが,今考えているパラメータだ.

やる夫
あ,そうか,遮断周波数が同じでも,遮断特性がどのくらい急かの違いがあるんだったお.

やらない夫
つまり与えられた要求仕様は $ \vert H_\textnormal{bw}(j\Omega_\textnormal{L})\vert = A$ だということだ.式 (16.20) の振幅特性をこれに代入して

$\displaystyle \frac{1}{1 + (\Omega_\textnormal{L}/\Omega_\textnormal{c})^{2N}}$ $\displaystyle = A^2$ (B.16)

が得られる.後はこれを $ N$ について解けばいい.

$\displaystyle (\Omega_\textnormal{L}/\Omega_\textnormal{c})^{2N}$ $\displaystyle = \frac{1}{A^2} - 1$ (B.17)
$\displaystyle 2N \log \frac{\Omega_\textnormal{L}}{\Omega_\textnormal{c}}$ $\displaystyle = \log(\frac{1}{A^2} - 1)$ (B.18)
$\displaystyle N$ $\displaystyle = \frac{\log(\frac{1}{A^2} - 1)}{2 \log\frac{\Omega_\textnormal{L}}{\Omega_\textnormal{c}}}$ (B.19)

実際の次数は,こうやって得られた $ N$ を切り上げた最小の整数にする.

やる夫
なるほど,試行錯誤しなくても必要な次数が決まるわけだお.

swk(at)ic.is.tohoku.ac.jp
2016.01.08