昨日のエントリーにも書いたオール・パス・フィルタの続きというか、より基本的な話です。もともとの定義に加えてほんの少しの知識しかなかったのですが、経験的に「こうすればオール・パス・フィルタが作れる」というところまで来ました。まず、(できれば全極でLTIの)IIRフィルタを作ります。その極係数の順番を逆にして、零係数として使います。それだけ。Matlabのコードで書くとこんな感じ。全極じゃないけど。
[b,a] = butter(3, 0.5); b = fliplr(a); freqz(b,a);
でもこの方法だと自分の欲しい位相応答が手に入りません。ちゃんと論文を探せば詳しく位相応答からフィルタをデザインする方法が書いてあるものが見つかるんでしょうが、探すのがめんどくさくて・・・。