dポイントプレゼントキャンペーン実施中!

IIRフィルタで、BPF(バンドパスフィルタ)を作りたいのですが、
どうすればよいでしょうか?
インターネットとかで検索してみても、バンドパスについてはぜんぜん発見できませんし、
本を読んでもほぼ同様。式がいきなりバンっと出てきてお終い。おいおい、そんで
係数はどうすればいいんだよ?どう使うんだよ?って感じです。
詳しいIIRフィルタの作り方の解説orプログラム&係数の設定方法、お待ちしてます。

A 回答 (1件)

IIRだとフィルタの設計(係数を決めるということ)は一つ間違えると発振したり不安定になるので、具体的には一つの専門書になるほどの代物だそうです。


私も詳しくはありませんが、帯域フィルタであれば、とりあえずつかえそうな式がありますのでお知らせします。
下限遮断周波数Fa、上限遮断周波数Fbとします。

フィルタの式を、
Yn=SUM(k=0,M){Ck * Xn-k} + SUM(j=1,N){ Dj * Yn-j }
とします。
このとき、
C0 = - b /{(1+a)(1+b)}
C1 = 0
C2 = b / {(1+a)(1+b)}
D1 = {(1+a)(1-b)+(1-a)(1+b)}/{(1+a)(1+b)}
D2 = - {(1-a)(1-b)}/{(1+a)(1+b)}

a = i * [(1-Za)/(1+Za)]
b = i * [(1-Zb)/(1+Zb)]
i は虚数。

Za = Exp[ 2 * π * i * Fa * Δ ]
Zb = Exp[ 2 * π * i * Fb * Δ ]

ここで、Δは標本化間隔です。
なお、a, bは実数になります。

詳しくは Numerical Recipes in C という本を参照ください。
    • good
    • 0
この回答へのお礼

ありがとうございました

お礼日時:2002/08/29 16:43

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!