新規記事投稿 フォロー記事投稿 記事のキャンセル
From: Akitaka HOSOMI <hosomi@ga2.so-net.ne.jp>
Subject: Re: デジタルフィルタ( IIR 篇 )
Date: 1998/08/29 00:37:55
Reference: junge/00159

一般に、IIR フィルタの伝達関数は、N 次の有理式で与えられる。これを、1 次と 2 次
の有理式にまで分解し、その各々をまとめて、一つのフィルタとして実装するわけだ。
( 高次のままでも、実装可能だが、先に書いたように、計算誤差の問題があるのさ )

有理式の分解方法には、分母分子を因数分解して、低次の項の 積 として表現する方法と、
部分分数へ分解し、低次の項の 和 として表現する方法がある。


伝達関数が

   積の形で表されたフィルタの構成方法は、縦続構成
   ( 低次のフィルタを、直列に配置するってことだ )、

   和の形で表されたフィルタの構成方法は、並列構成
   ( これは、並列に配置するってことだね )

と呼ばれる。



縦続構成では、通過域・阻止域とも、応答特性の劣化が少ないので、この構成方法が、よ
く用いられる( 並列構成だと、阻止域で、多少、特性が荒れるのだ )。

# 今回のプログラムは、これに倣って、縦続構成で使うことにしよう、っと。


縦続構成でも、その中には、1D 、2D 、3D などの各種別があり、それぞれで、フィルタ
の実装方法が少し異なる。一般的に利用されるのは、実際の構成が簡単な 1D や 2D の
タイプだ。

 1D タイプは、出力雑音のピークを抑えられるので、広帯域フィルタなどに向いている。

また、

 2D タイプは、雑音の全平均電力を低くできるので、計測用途に用いられる。

# ということなら、まぁ、今回は、2D タイプでいくかな。



デジタルフィルタは、計算でフィルタ動作を実現するので、その演算誤差は雑音(ノイズ)
として現れる( IIR フィルタの場合なら、なおさら、そうだね )。

縦続構成の場合、伝達関数が積の形なので、本来は、分母分子の組み合わせを変更したり
( ペアリング )、それらの計算順序を入替えたり( オーダリング )しても、計算結果は変
わらない筈だが、PC で計算を行う場合には、丸め誤差の問題などもあって、しっかりと、
結果が変わってくる。

そのため、オーダリングやペアリングを行って、出力雑音を低減することも可能であり、
これらの組合わせを求める際の大まかな指針を与える Jackson ルールなどが存在する。
( 演算ビットが少ない場合には、この方法で 10 dB 程度改善されることもあるそうな )

# わしの場合は、PC の浮動小数点演算なので、たぶん、そこまでやる必要はないだろう。


ちなみに、並列構成の場合には、それぞれの和の形で雑音が現れるため、このような雑音
低減方法は提供されない。しかしながら、特にこれを試みずとも、縦続構成と同等か、そ
れよりも低い値に抑えられるので、出力雑音については、ワリと良好な結果が得られる。



よっしゃ、これで大体の方針は決まった。後は、散歩でもしながら、細かく構想を練ろう。

# こういうプログラムは、一度書いてしまえば、いろいろと自分で遊べるので、面白いぞ。