(57)【特許請求の範囲】
【請求項１】
入力された値を記憶し遅延して出力する遅延手段と、
前記遅延手段から出力された出力値ｗ（ｎ−１）と外部から入力された入力値ｘ（ｎ）との一次結合ｗ（ｎ）＝Ａ（ｎ）ｘ（ｎ）＋Ｂ（ｎ）ｗ（ｎ−１）を算出し、算出された一次結合ｗ（ｎ）を前記遅延手段に入力する演算手段と、
前記演算手段を制御し、前記一次結合における前記出力値ｗ（ｎ−１）の係数Ｂ（ｎ）と前記一次結合における前記入力値ｘ（ｎ）の係数Ａ（ｎ）とを演算回数に応じて変化させる係数制御手段とを備え、
前記係数制御手段は、０≦ｎ＜ｍのとき、前記演算手段が前記外部から入力された入力値｛ｘ（０）、ｘ（１）、・・・、ｘ（ｎ）｝の平均値又は近似的な平均値を算出するよう前記係数Ａ（ｎ）及びＢ（ｎ）を変化させ、ｎ≧ｍのとき、前記演算手段に特定のフィルタ動作を実行させるための値に前記係数Ａ（ｎ）及びＢ（ｎ）を設定することを特徴とするフィルタ装置。
【請求項２】
前記演算手段は、前記入力値ｘ（ｎ）に第１の係数γ（ｎ）を乗じ、第１の積γ（ｎ）ｘ（ｎ）を出力する第１の乗算手段と、前記出力値ｗ（ｎ−１）に第２の係数α（ｎ）を乗じ、第２の積α（ｎ）ｗ（ｎ−１）を出力する第２の乗算手段と、前記第１の積γ（ｎ）ｘ（ｎ）と前記第２の積α（ｎ）ｗ（ｎ−１）とを加算し、和ｗ（ｎ）＝γ（ｎ）ｘ（ｎ）＋α（ｎ）ｗ（ｎ−１）を出力する加算手段とを含み、Ａ（ｎ）＝γ（ｎ）及びＢ（ｎ）＝α（ｎ）として、前記一次結合ｗ（ｎ）＝Ａ（ｎ）ｘ（ｎ）＋Ｂ（ｎ）ｗ（ｎ−１）を前記遅延手段に入力する、ことを特徴とする請求項１に記載のフィルタ装置。
【請求項３】
前記和ｗ（ｎ）に第３の係数β（ｎ）を乗じ、第３の積β（ｎ）ｗ（ｎ）を出力する第３の乗算手段を更に備え、
前記係数制御手段は、前記第１、第２、及び第３の乗算手段を制御し、前記第１、第２、及び第３の係数γ（ｎ）、α（ｎ）、及びβ（ｎ）を設定することを特徴とする請求項２に記載のフィルタ装置。
【請求項４】
前記演算手段は、前記入力値ｘ（ｎ）から前記出力値ｗ（ｎ−１）を減算し、差｛ｘ（ｎ）−ｗ（ｎ−１）｝を出力する減算手段と、前記差｛ｘ（ｎ）−ｗ（ｎ−１）｝に係数｛１−α（ｎ）｝を乗じ、積｛１−α（ｎ）｝｛ｘ（ｎ）−ｗ（ｎ−１）｝を出力する乗算手段と、前記積｛１−α（ｎ）｝｛ｘ（ｎ）−ｗ（ｎ−１）｝と前記出力値ｗ（ｎ−１）とを加算し、和ｗ（ｎ）＝｛１−α（ｎ）｝｛ｘ（ｎ）−ｗ（ｎ−１）｝＋ｗ（ｎ−１）を出力する加算手段とを含み、Ａ（ｎ）＝１−α（ｎ）及びＢ（ｎ）＝α（ｎ）として、前記一次結合ｗ（ｎ）＝Ａ（ｎ）ｘ（ｎ）＋Ｂ（ｎ）ｗ（ｎ−１）を前記遅延手段に入力する、ことを特徴とする請求項１に記載のフィルタ装置。
【請求項５】
前記係数制御手段は、前記乗算手段を制御し、前記係数｛１−α（ｎ）｝を設定することを特徴とする請求項４に記載のフィルタ装置。
【請求項６】
前記演算手段は、前記入力値ｘ（ｎ）に第１の係数β（ｎ）を乗じ、第１の積β（ｎ）ｘ（ｎ）を出力する第１の乗算手段と、前記出力値ｗ（ｎ−１）と前記第１の積β（ｎ）ｘ（ｎ）とを加算し、和｛β（ｎ）ｘ（ｎ）＋ｗ（ｎ−１）｝を出力する加算手段と、前記和｛β（ｎ）ｘ（ｎ）＋ｗ（ｎ−１）｝に第２の係数α（ｎ）を乗じ、第２の積ｗ（ｎ）＝α（ｎ）｛β（ｎ）ｘ（ｎ）＋ｗ（ｎ−１）｝を出力する第２の乗算手段とを含み、Ａ（ｎ）＝α（ｎ）β（ｎ）及びＢ（ｎ）＝α（ｎ）として、前記一次結合ｗ（ｎ）＝Ａ（ｎ）ｘ（ｎ）＋Ｂ（ｎ）ｗ（ｎ−１）を前記遅延手段に入力する、ことを特徴とする請求項１に記載のフィルタ装置。
【請求項７】
前記係数制御手段は、前記第１及び第２の乗算手段を制御し、前記第１及び第２の係数β（ｎ）及びα（ｎ）を設定することを特徴とする請求項６に記載のフィルタ装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明はフィルタ装置、特にＩＩＲフィルタに関する。
【背景技術】
【０００２】
データからノイズや不要な高周波成分を含む情報を取り除く手段として、フィルタ装置が広く用いられている。フィルタ装置としては、ＦＩＲ（Finite Impulse Response）フィルタやＩＩＲ（Infinite Impulse Response）フィルタなどの構成が一般的に知られている。何れのフィルタ装置にもそれぞれ特徴があるが、ＩＩＲフィルタは、フィルタを構成する遅延手段などの規模を小さくできることから、特に小型化および低消費電力化を目指す装置において多く用いられている。しかし、一般的に、ＩＩＲフィルタは、ノイズ除去性能を向上させると、遅延手段に記憶される値を入力データの平均値程度に収束させるために必要な時間が長くなり、動作開始から所望のフィルタ特性が得られるまでにかかる時間が長くなってしまう。
【０００３】
遅延手段に記憶される値を入力データの平均値程度に収束させるために必要な時間を短縮することが可能なＩＩＲフィルタとして、図８に示す特許文献１に記載のフィルタ回路８００が知られている。このフィルタ回路８００の動作について、図８を参照しながら説明する。
【０００４】
図８に示したフィルタ回路８００は、加算手段８０３、遅延手段８０５、および、乗算手段８０７からなるフィードバック回路を備えている。当該フィードバック回路は、時刻ｔ（ｎ）において、遅延手段８０１により遅延された入力値ｘ（ｎ−１）と、遅延手段８０５に記憶されている値ｗ（ｎ−１）とから、他の値ｗ（ｎ）＝ｘ（ｎ−１）＋αｗ（ｎ−１）を演算し、遅延手段８０５に記憶されている値ｗ（ｎ−１）を、演算により得られた値ｗ（ｎ）に更新する。演算により得られた値ｗ（ｎ）は、さらに乗算手段８０６により係数（１−α）を乗ぜられ、出力値ｙ（ｎ）として出力される。フィルタ回路８００は、この動作を繰り返し実行することにより、入力値ｘ（ｎ）を出力値ｙ（ｎ）に変換するフィルタとして動作する。
【０００５】
時刻ｔ（０）においてフィルタ動作を開始したとすると、時刻ｔ（０）における最初の演算では、予め遅延手段８０５に記憶されていた値ｗ（−１）が初期値として参照され、上述した演算が実行されることになる。ここで、遅延手段８０５に予め記憶されている値ｗ（−１）は、一般には入力データと無関係な値である。すなわち、例えば、入力データが０以上１以下の変動範囲をもつにもかかわらず、予め遅延手段８０５に予め記憶されていた値ｗ（−１）が１０であるという事態が起こり得る。このため、動作開始時に予め遅延手段８０５に記憶されていた値ｗ（−１）の影響が十分小さくなり、遅延手段８０５に記憶される値ｗ（ｎ）が、入力値｛ｘ（０）、ｘ（１）、・・・、ｘ（ｎ）｝の平均値程度に収束するまでには相当の時間がかかる。特に、フィルタ回路８００のノイズ除去性能を上げるためにαの値を大きく設定した場合、この時間はさらに長くなる。
【０００６】
この問題を解決するために、図８に示したフィルタ回路８００は、セレクタ８０４を備えている。図８に示したように、セレクタ８０４は２つの入力を備えており、一方は上記フィードバック回路の加算手段８０３に、他方は乗算手段８０２を介して遅延手段８０１に接続されている。セレクタ８０４の切り替え制御は、セレクタ８０４にコントロール信号を供給する初期化／通常動作コントロール手段８０８により行われる。
【０００７】
このコントロール信号は２値信号であり、セレクタ８０４は、コントロール信号０を与えられたときは、上記フィードバック回路の加算手段８０３から入力された信号を出力し、コントロール信号１が与えられたときには、乗算手段８０２を介して遅延手段８０１から与えられた入力値を出力する。従って、フィルタ回路８００は、初期化／通常動作コントロール手段８０８によりセレクタ８０４の入力を切り替えることで、上述した演算を繰り返し実行する通常のフィルタ動作（通常動作）と、入力値（遅延手段８０１により遅延され、乗算手段８０２により係数を乗ぜられた入力値）を遅延手段８０５に取り込む初期化動作とを切り替えて実行することができる。
【０００８】
このため、フィルタ回路８００を用いれば、予め遅延手段８０５に記憶されていた値の代わりに、初期化動作により取り込まれた入力値を初期値として、上記繰り返し演算を実行することにより、遅延手段８０５に記憶される値ｗ（ｎ）が入力値の平均値程度に収束するまでにかかる時間を短縮することができる。
【０００９】
特許文献１においては、上記フィルタ回路８００を用いた画像データのボケマスク生成に関して、周辺画素の画像データを遅延手段８０５に取り込む初期化動作を実行することにより、品質の良いボケマスクを生成する方法が開示されている。
【特許文献１】特開平１０−３５４０号公報（公開日：平成１０年１月６日）
【発明の開示】
【発明が解決しようとする課題】
【００１０】
しかしながら、従来のフィルタ回路においても、入力値の分散（ゆらぎ）が大きい場合には、遅延手段に記憶される値を入力データの平均値程度に収束させるために必要な時間を短縮することが困難であるという問題があった。
【００１１】
この問題について、図８に示したフィルタ装置８００に即して、さらに詳しく説明すれば以下の通りである。
【００１２】
従来のフィルタ回路８００は、初期化動作または通常動作のいずれか一方で動作する。従って、例えば、時刻ｔ（ｎ＋１）において通常動作を開始したとすると、時刻ｔ（ｎ）には初期化動作が実行される。すなわち、通常動作の初期値となる、時刻ｔ（ｎ＋１）において遅延手段８０５に記憶されている値ｗ（ｎ）は、遅延手段８０１により遅延され、乗算手段８０２により係数を乗ぜられた時刻ｔ（ｎ−１）における入力値となる。
【００１３】
ここで注目すべきは、どの時点で通常動作を開始したとしても、通常動作における初期値となる値ｗ（ｎ）が、一時刻における入力値ｘ（ｎ−１）だけから決定される点である。すなわち、フィルタ回路８００においては、通常動作における初期値ｗ（ｎ）に、入力値の履歴｛ｘ（０）、ｘ（１）、・・・、ｘ（ｎ）｝を反映させることはできない。
【００１４】
入力値の分散（ゆらぎ）が大きい場合、通常動作の初期値を決定するために用いられる１つの入力値ｘ（ｎ−１）は、高い確率で他の入力値に対して大きな偏差を持つ。このため、初期化動作により取り込まれた初期値ｗ（ｎ）は、高い確率で、入力データの平均値に対して大きな誤差を持つ。従って、入力値として与えられるデータが分散の大きなデータである場合、上述の初期化動作によっても、遅延手段８０５に記憶される値ｗ（ｎ）を入力値に応じた値に収束させるために必要な時間を短縮することは困難であった。
【００１５】
本発明は、上記の問題に鑑みてなされたものであり、その目的は、分散（ゆらぎ）の大きい入力データに対しても、高速に遅延手段に記憶される値を入力データの平均値程度に収束させることが可能なフィルタ装置を提供することである。
【課題を解決するための手段】
【００１６】
本発明に係るフィルタ装置は、上記課題を解決するために、入力された値を記憶し遅延して出力する遅延手段と、前記遅延手段から出力された出力値と外部から入力された入力値との一次結合を算出し、算出された一次結合を前記遅延手段に入力する演算手段と、前記演算手段を制御し、前記一次結合における前記出力値の係数と前記一次結合における前記入力値の係数とを演算回数に応じて変化させる係数制御手段とを備え、前記係数制御手段は、前記演算手段が前記外部から入力された入力値の近似的な平均値を算出するよう前記係数を変化させた後、前記演算手段に特定のフィルタ動作を実行させるための値に前記係数を設定することを特徴としている。
【００１７】
上記構成によれば、上記演算手段は、上記特定のフィルタ動作を開始するまで、外部から入力された入力値の近似的な平均値を算出するよう動作する。また、上記構成によれば、上記遅延手段に記憶される値は、上記演算手段により算出された上記平均値に、順次更新されていく。従って、上記演算手段が上記特定のフィルタ動作を開始する時点では、上記遅延手段には入力値の近似的な平均値が記憶されていることになる。従って、上記構成によれば、分散（揺らぎ）の大きいデータを入力値として与えられた場合でも、上記特定のフィルタ動作により遅延手段に記憶されている値を平均値程度に収束させるのに必要な時間を短縮するという効果を奏する。
【００１８】
本発明に係るフィルタ装置においては、前記演算手段は係数可変な乗算手段を含み、前記係数制御手段は、前記乗算手段の係数を制御し、前記一次結合における前記出力値の係数と前記一次結合における前記入力値の係数とを設定することが好ましい。
【００１９】
上記構成によれば、複数のスイッチ素子などを設けることなく、上記係数制御手段による上記係数の設定を実現することができる。すなわち、上記構成によれば、上記フィルタ装置を構成する電気回路における部品点数の削減し、また半導体集積回路における回路規模およびチップサイズの削減し、さらには上記フィルタ装置の消費電力を削減するという更なる効果を奏する。
【００２０】
本発明に係るフィルタ装置においては、前記演算手段は、前記出力値に係数を乗じ、積を出力する乗算手段と、前記積と前記入力値を加算し、和を前記遅延手段に入力する加算手段とを含むことが好ましい。
【００２１】
上記構成によれば、少ない部品点数で容易にフィルタ装置を構成することが可能であり、部品コストおよび製造コストの削減ができるという更なる効果を奏する。
【００２２】
本発明に係るフィルタ装置においては、前記演算手段は、前記入力値から前記出力値を減算し、差を出力する減算手段と、前記差に係数を乗じ、積を出力する乗算手段と、前記積と前記入力値とを加算し、和を前記遅延手段に入力する加算手段とを含むことが好ましい。
【００２３】
上記構成によれば、ひとつの乗算手段によりフィルタ装置を構成することが可能であり、装置の小型化を実現できるという更なる効果を奏する。
【００２４】
本発明に係るフィルタ装置においては、前記演算手段は、前記入力値に第１の係数を乗じ、第１の積を出力する第１の乗算手段と、前記入力値と前記第１の積とを加算し、和を出力する加算手段と、前記和に第２の係数を乗じ、第２の積を前記遅延手段に入力する第２の乗算手段とを含むことが好ましい。
【００２５】
上記構成によれば、上記係数制御手段により上記第１の係数をゼロに制御することで、遅延手段の値をゼロに設定することができる。従って、上記構成によれば、例えば揮発性メモリのような値を入力することにより記憶内容をクリアできない記憶手段であっても、上記遅延手段として用いることが可能になるという更なる効果を奏する。
【発明の効果】
【００２６】
本発明に係るフィルタ装置は、以上のように、入力された値を記憶し遅延して出力する遅延手段と、前記遅延手段から出力された出力値と外部から入力された入力値との一次結合を算出し、算出された一次結合を前記遅延手段に入力する演算手段と、前記演算手段を制御し、前記一次結合における前記出力値の係数と前記一次結合における前記入力値の係数とを演算回数に応じて変化させる係数制御手段とを備え、前記係数制御手段は、前記演算手段が前記外部から入力された入力値の平均値を算出するよう前記係数を変化させた後、前記演算手段に特定のフィルタ動作を実行させるための値に前記係数を設定する。
【００２７】
従って、上記演算手段が上記特定のフィルタ動作を開始する時点では、上記遅延手段には入力値の平均値が記憶される。このため、上記構成によれば、分散（揺らぎ）の大きいデータを入力値として与えられた場合でも、上記特定のフィルタ動作により遅延手段に記憶されている値を平均値程度に収束させるのに必要な時間を短縮することができる。
【発明を実施するための最良の形態】
【００２８】
以下、本発明の一実施形態について、図面を参照しながら説明する。
【００２９】
はじめに、図１に基づいて、本実施形態に係るフィルタ装置１の骨子について説明する。図１は、本実施形態に係るフィルタ装置１００の概略構成を説明するための回路図である。
【００３０】
図１に示したように、フィルタ装置１００は、少なくとも、遅延手段１０１と演算手段１０２と係数制御手段１０３とを備えている。
【００３１】
遅延手段１０１は、入力された値を記憶し、単位時間（１クロック）遅延して出力する。すなわち、遅延手段１０１は、時刻ｔ（ｎ−１）おいて入力された値ｗ（ｎ−１）を記憶し、時刻ｔ（ｎ）において記憶している値ｗ（ｎ−１）を出力する。
【００３２】
演算手段１０２は、時刻ｔ（ｎ）において、外部から与えられた入力値ｘ（ｎ）と、遅延手段が出力する出力値ｗ（ｎ−１）とから、値ｗ（ｎ）を算出する。そして、演算手段１０２は、算出された値ｗ（ｎ）を遅延手段１０１に入力し、遅延手段１０１は、入力あれた値ｗ（ｎ）を記憶する。換言すれば、演算手段１０２は、遅延手段１０１に記憶された値ｗ（ｎ−１）を、演算の結果得られた値ｗ（ｎ）に更新する。また、演算された値ｗ（ｎ）は、出力値ｙ（ｎ）として外部へ出力される。
【００３３】
フィルタ装置１００は、上述した時刻ｔ（ｎ）における処理を、単位時間毎に繰り返し実行する。これにより、フィルタ装置１００は、データ｛ｘ（０）、ｘ（１）、・・・、ｘ（ｎ）、・・・｝を順に取得し、遅延手段１０１に記憶される値｛ｗ（０）、ｗ（１）、・・・、ｗ（ｎ）、・・・｝を順に演算し、データ｛ｙ（０）、ｙ（１）、・・・、ｙ（ｎ）、・・・｝を順に出力するフィルタとして機能する。
【００３４】
なお、時刻ｔ（０）において実行される演算においては、遅延手段１０１に予め記憶されていた値ｗ（−１）が参照される。すなわち、演算手段１０２は、時刻ｔ（０）において、遅延手段１０１に予め記憶されていた値ｗ（−１）と、外部から入力された入力値ｘ（０）とから、値ｗ（０）を算出して遅延手段１０１に記憶する。
【００３５】
次に、この演算手段１０２が行う演算の内容について説明する。演算手段１０２は、時刻ｔ（ｎ）において、入力値ｘ（ｎ）と、時刻ｔ（ｎ−１）に遅延手段１０１に記憶された値ｗ（ｎ−１）とから、与えられた入力値ｘ（ｎ）と遅延手段１０１の出力値ｗ（ｎ−１）との一次結合
ｗ（ｎ）＝Ａ（ｎ）ｘ（ｎ）＋Ｂ（ｎ）ｗ（ｎ−１）
を算出する。ここで、各時刻に演算される一次結合において、入力値ｘ（ｎ）に乗ぜられる係数Ａ（ｎ）、および、遅延手段１０１の出力値ｗ（ｎ−１）に乗ぜられる係数Ｂ（ｎ）は可変であり、後述する係数制御手段１０３によりその値を制御されている。
【００３６】
なお、上記表式は、演算手段１０２が行う演算が、遅延手段１０１から出力された出力値ｗ（ｎ）と外部から入力された入力値ｘ（ｎ）の一次結合を結果的に算出することを特定しているに過ぎず、その具体的な算出方法について何ら限定を加えるものではない。すなわち、演算手段１０２は、入力値ｘ（ｎ）に係数Ａを乗じ第１の積を演算し、遅延手段１０１に記憶された値ｗ（ｎ−１）に係数Ｂを乗じ第２の積を演算し、これに引き続き上記第１の積と第２の積とを加算して和を求める手段であって良いのはもちろんのこと、加算、減算、乗算、除算の全部または一部を他の順序で行い、上記一次結合を算出する手段であっても良い。このような演算手段１０２は、与えられた２つの値を加算して和を出力する加算手段、与えられた値に特定の係数を乗じて積を出力する乗算手段、与えられた第１の値から第２の値を減算して差を出力する減算手段、の一部または全部を含む演算回路として実現することができる。演算手段１０２が実行する演算の具体的な方法、すなわち、演算手段１０２の具体的な回路構成については、実施例として後述する。
【００３７】
次に、係数制御手段１０３について説明する。係数制御手段１０３は、演算手段１０２を制御し、演算手段１０２の演算回数に応じて、演算手段１０２が出力する一次結合において入力値ｘ（ｎ）の係数Ａ（ｎ）と、遅延手段１０１が出力する出力値ｗ（ｎ−１）の係数Ｂ（ｎ）とを変化させる。
【００３８】
具体的には、係数制御手段１０３は、演算手段１０２に含まれる係数可変な乗算手段を制御し、当該乗算手段が乗ずる係数を変化させる。ここで、係数可変な乗算手段としては、ビットシフト回路を用いることが好ましい。また、このとき、係数制御手段１０３は、当該ビットシフト回路のシフト量を制御し、ビットシフト回路が入力値に乗ずる係数を変化させることが好ましい。このように、演算手段１０２は乗算手段としてビットシフト回路を含み、係数制御手段１０３は当該ビットシフト回路のシフト量を制御する構成とすることで、小型かつ低消費電力なフィルタ装置１００を実現することができる。
【００３９】
次に、フィルタ装置１００の動作に関して説明する。フィルタ装置１００は、時刻ｔ（０）において初期化動作を行って、時刻ｔ（１）から通常のフィルタ動作（通常動作）を行うことも可能であるし、あるいは、時刻ｔ（０）〜ｔ（ｍ−１）まで後述する平均化動作を行って、時刻ｔ（ｍ）から通常動作を開始しても良い。
【００４０】
はじめに、平均化動作について説明する。
【００４１】
時刻ｔ（０）から時刻ｔ（ｍ−１）までの各時刻ｔ（ｎ）において（ここで、ｎは０以上ｍ−１以下の自然数）、演算手段１０２は、遅延手段１０１に記憶されている値ｗ（ｎ−１）を、当該時刻ｔ（ｎ）までに入力された入力値｛ｘ（０）、ｘ（１）、・・・、ｘ（ｎ）｝の平均値に書き換える動作を行う。ここで、係数制御手段１０３は、各時刻ｔ（ｎ）において、演算手段１０２が当該時刻ｔ（ｎ）までに入力された入力値の平均値を出力するよう、当該時刻ｔ（ｎ）における係数Ａ（ｎ）と係数Ｂ（ｎ）とを設定する。
【００４２】
具体的には、例えば、係数制御手段１０３は、時刻ｔ（ｎ）において係数Ａ（ｎ）を１／（ｎ＋１）に設定し、係数Ｂ（ｎ）をｎ／（ｎ＋１）に設定する。このように係数を設定することで、時刻ｔ（０）においては、
ｗ（０）＝ｘ（０）
が算出され、時刻ｔ（１）においては、
ｗ（１）＝１／２・ｘ（１）＋１／２・ｗ（０）
＝｛ｘ（１）＋ｘ（０）｝／２
が算出され、時刻ｔ（２）においては、
ｗ（２）＝１／３・ｘ（２）＋２／３・ｗ（１）
＝｛ｘ（２）＋ｘ（１）＋ｘ（０）｝／３
が算出される。一般に、時刻ｔ（ｎ）において（ここで、ｎは１以上ｍ−１以下）は、
ｗ（ｎ）＝１／（ｎ＋１）・ｘ（ｎ）＋ｎ／（ｎ＋１）・ｗ（ｎ−１）
＝｛ｘ（ｎ）＋ｘ（ｎ−１）＋・・・＋ｘ（０）｝／（ｎ＋１）
すなわち、時刻ｔ（ｎ）までに入力された入力値｛ｘ（０）、ｘ（１）、・・・、ｘ（ｎ）｝の平均値が算出される。ここで、時刻ｔ（０）における平均化動作は、演算手段１０２が、遅延手段１０１に予め記憶されていた値ｗ（−１）を、入力値ｘ（０）に書き換える初期化動作に相当する。
【００４３】
なお、ここでは、演算手段１０２が入力値の厳密な平均値を算出するよう、係数制御手段１０３が係数Ａ（ｎ）と係数Ｂ（ｎ）とを設定する場合について説明したが、本発明はこれに限定されるものではない。すなわち、係数制御手段１０３は、演算手段１０２が当該時刻ｔ（ｎ）までに入力された入力値の近似的な平均値を算出するよう、係数Ａ（ｎ）と係数Ｂ（ｎ）とを設定するものであっても良い。ここで、近似的な平均値とは、入力値の真の平均値との差が、入力値の分散の大きさ（ゆらぎ）と比べ小さくなる値を意味する。係数Ａ（ｎ）および係数Ｂ（ｎ）は、この範囲のなかで、演算手段１０２の実装に応じて、要求されるフィルタ特性に応じて、あるいは、想定される入力されるデータの特性に応じて、他の値に設定されても良い。
【００４４】
時刻ｔ（ｍ）における平均化動作を完了した時点で、遅延手段１０２には時刻ｔ（ｍ）までに入力された入力値｛ｘ（０）、ｘ（１）、・・・、ｘ（ｍ）｝の平均値（あるいは、近似的な平均値）が記憶される。そして、平均化動作が完了すると、通常のフィルタ動作（通常動作）が実行される。
【００４５】
すなわち、時刻ｔ（ｍ）において、係数制御手段１０３は、係数Ａ（ｍ）と係数Ｂ（ｍ）とを、予め定められた特定の値に設定する。この値は、フィルタ装置１００に要求される性能に応じて設計時に定められた値である。そして、演算手段１０２は、時刻ｔ（ｍ）以後、所定のフィルタ動作を実現するべく、時刻ｔ（ｍ）において設定された係数による演算を繰り返し実行する。
【００４６】
平均化動作を完了した時点で、すなわち通常動作を開始する時点で、遅延手段１０１には時刻ｔ（ｍ）までに入力された入力値｛ｘ（０）、ｘ（１）、・・・、ｘ（ｍ）｝の平均値（あるいは、近似的な平均値）が記憶されている。従って、フィルタ装置１００は、通常動作開始直後から、所定のフィルタ特性を実現することができる。しかも、フィルタ装置１００においては、上記平均化動作が、通常動作とは独立に、通常動作に先立って行われる。従って、フィルタ装置１００においては、通常動作における係数Ａ（ｍ）とＢ（ｍ）との設定によらずに、通常動作開始直後から、所定のフィルタ特性を得ることができる。すなわち、フィルタ装置１００においては、フィルタ特性の設定の自由度を阻害することなく、所定のフィルタ特性を得るまでに必要な時間を短縮することができる。
【実施例１】
【００４７】
次に図２に基づいて、本実施形態に係るフィルタ装置の具体的な回路構成について説明する。図２は、本実施形態に係るフィルタ装置の一実施例であるフィルタ装置２００の回路図である。
【００４８】
図２に示したように、フィルタ装置２００は、遅延手段２０１、演算手段２０２、演算手段２０２の後段に配された乗算手段２０３、および、係数制御手段２０４を備えている。
【００４９】
遅延手段２０１は、与えられた値を記憶し単位時間（１クロック）遅延して出力する。すなわち、遅延手段２０１は、時刻ｔ（ｎ−１）おいて与えられた値ｗ（ｎ−１）を記憶し、時刻ｔ（ｎ）において記憶している値ｗ（ｎ−１）を出力する。
【００５０】
演算手段２０２は、時刻ｔ（ｎ）において、与えられた入力値ｘ（ｎ）と、遅延手段が出力する出力値ｗ（ｎ−１）とから、他の値ｗ（ｎ）を演算し、得られた値を遅延手段２０１に記憶させる。
【００５１】
図２に示したように、フィルタ装置２００における演算手段２０２は、第１の乗算手段２０２ａと第２の乗算手段２０２ｂと加算手段２０２ｃとを備えている。演算手段２０２に与えられた入力値ｘ（ｎ）は、乗算手段２０２ａに入力される。乗算手段２０２ａは、与えられた入力値ｘ（ｎ）に係数γ（ｎ）を乗じ、積γ（ｎ）ｘ（ｎ）を加算手段２０２ｃに出力する。一方、乗算手段２０２ｂは、遅延手段２０１から与えられた値ｗ（ｎ−１）に係数α（ｎ）を乗じ、積α（ｎ）ｗ（ｎ−１）を加算手段２０２ｃ出力する。加算手段２０２ｃは、乗算手段２０２ａから与えられた値γ（ｎ）ｘ（ｎ）と乗算手段２０２ａから与えられた値α（ｎ）ｗ（ｎ−１）とを加算し、和
ｗ（ｎ）＝γ（ｎ）ｘ（ｎ）＋α（ｎ）ｗ（ｎ−１）
を出力する。加算手段２０２ｃは、上記加算により得られた値ｗ（ｎ）を遅延手段２０１に記憶させる。すなわち、演算手段２０２は、与えられた入力値ｘ（ｎ）と、遅延手段が出力する出力値ｗ（ｎ−１）との一次結合ｗ（ｎ）を算出し、算出された値を遅延手段２０１に記憶させる。
【００５２】
また、図２に示したように、演算手段２０２から出力された値ｗ（ｎ）は、乗算手段２０３に渡される。乗算手段２０３は、演算手段２０２から出力された値ｗ（ｎ）に係数β（ｎ）を乗じ、積β（ｎ）ｗ（ｎ）を出力ｙ（ｎ）として外部に出力する。
【００５３】
上述した乗算手段２０２ａ、乗算手段２０２ｂ、および、乗算手段２０３は、例えばビットシフト回路により構成される係数可変な乗算手段であり、各乗算手段が乗ずる係数は係数制御手段２０４により制御可能になっている。ここで、係数制御手段２０４は、少なくとも通常のフィルタ動作時（通常動作時）においては、乗算手段２０２ｂの係数がα（ｎ）であるとき、乗算手段２０２ａの係数γ（ｎ）を１／｛１−α（ｎ）｝に一致するように制御し、乗算手段２０３の係数β（ｎ）を｛１−α（ｎ）｝に一致するように制御する。係数γ（ｎ）および係数β（ｎ）をこのように制御することにより、フィルタ装置２００への入力強度と出力強度とを等しくすることができる。
【００５４】
フィルタ装置２００は、通常のフィルタ動作（通常動作）時に、例えば、α（ｎ）＝０．９５、β（ｎ）＝｛１−α（ｎ）｝＝０．０５、γ（ｎ）＝１／｛１−α（ｎ）｝＝２０と設定され、ノイズ除去フィルタとして機能する。
【００５５】
係数制御手段２０４による係数設定の具体例を図３、および、図４に示した。
【００５６】
図３は、係数制御手段２０４により設定される係数α（ｎ）の値の変化の一例を示すグラフである。図３に示した例においては、時刻ｔ（０）において初期化動作が実行され、直後の時刻ｔ（１）から通常のフィルタ動作（通常動作）が実行される。すなわち、初期化手段２０５から初期化を指示する初期化信号を受信すると、係数制御手段２０４は、乗算手段２０２ｂの係数α（０）を０に設定し、乗算手段２０３の係数β（０）を｛１−α（０）｝＝１に設定し、乗算手段２０２ａの係数γ（０）を１／｛１−α（０）｝＝１に設定する。そして、時刻ｔ（０）において上記係数による演算が終了した後、係数制御手段２０４は、乗算手段２０２ｂの係数α（１）を０．９５に設定し、乗算手段２０３の係数β（１）を｛１−α（１）｝＝０．０５に設定し、乗算手段２０２ａの係数γ（１）を１／｛１−α（１）｝＝２０に設定する。これにより、演算手段２０２は、時刻ｔ（０）において、遅延手段２０１に予め記憶されていた値ｗ（−１）を、入力値ｘ（０）に書き換え、その後、時刻ｔ（１）において、遅延手段２０１にｘ（０）が初期値として記憶された状態で、通常のフィルタ動作を開始することができる。
【００５７】
図４は、係数制御手段２０４により設定される係数α（ｎ）の値の変化の他の例を示すグラフである。図４に示した例においては、時刻ｔ（０）〜時刻ｔ（ｍ−１）において平均化動作が実行され、その後の時刻ｔ（ｍ）から通常のフィルタ動作（通常動作）が実行される。すなわち、時刻ｔ（０）から時刻ｔ（ｍ−１）までの各時刻ｔ（ｎ）において（ここで、ｎは０以上ｍ−１以下の自然数）、演算手段２０２は、遅延手段２０１に記憶された値ｗ（ｎ−１）を、当該時刻ｔ（ｎ）までに入力された入力値｛ｘ（０）、ｘ（１）、・・・、ｘ（ｎ）｝の近似的な平均値に書き換える動作を行う。これにより、演算手段２０２は、遅延手段２０１に記憶された入力値｛ｘ（０）、ｘ（１）、・・・、ｘ（ｍ−１）｝の近似的な平均値を初期値として、時刻ｔ（ｍ）において通常のフィルタ動作を開始することができる。
【００５８】
この方法によれば、時刻ｔ（ｍ）において遅延手段２０１に記憶されている通常動作の初期値は、複数の入力値｛ｘ（０）、ｘ（１）、・・・、ｘ（ｍ−１）｝を参照して決定される。従って、入力信号（入力値）の分散（ゆらぎ）が大きく、遅延手段２０１に記憶される値を通常動作によって平均値近傍に収束させるのに時間を要することが予測される入力データに対しても、通常動作に先立って実行される平均化動作によって、遅延手段２０１に記憶される値を平均値近傍に短時間で収束させることができる。
【実施例２】
【００５９】
次に図５に基づいて、本実施形態に係るフィルタ装置の他の実施例について説明する。図５は、本実施形態に係るフィルタ装置の他の実施例であるフィルタ装置５００の回路構成を示す回路図である。フィルタ装置５００は、図２に示したフィルタ装置２００と比べ、乗算手段を１個に減らし、フィルタ装置を小型化したことを特徴としている。
【００６０】
図５に示したように、フィルタ装置５００は、遅延手段５０１、演算手段５０２、および係数制御手段５０３を備えている。
【００６１】
遅延手段５０１は、与えられた値を記憶し単位時間（１クロック）遅延して出力する。すなわち、遅延手段２０１は、時刻ｔ（ｎ−１）おいて与えられた値ｗ（ｎ−１）を記憶し、時刻ｔ（ｎ）において記憶している値ｗ（ｎ−１）を出力する。
【００６２】
演算手段５０２は、時刻ｔ（ｎ）において、与えられた入力値ｘ（ｎ）と、遅延手段が出力する出力値ｗ（ｎ−１）とから、他の値ｗ（ｎ）を演算し、得られた値を遅延手段５０１に記憶させる。
【００６３】
図５に示したように、フィルタ装置５００における演算手段５０２は、減算手段５０２ａ、乗算手段５０２ｂ、および、加算手段５０２ｃを備えている。演算手段５０２に与えられた入力値ｘ（ｎ）は、減算手段５０２ａに入力される。減算手段５０２ａは、与えられた入力値ｘ（ｎ）から遅延手段５０１により出力された値ｗ（ｎ−１）を減算し、差ｘ（ｎ）−ｗ（ｎ−１）を、乗算手段５０２ｂに出力する。乗算手段５０２ｂは、減算手段５０２ａにより出力された値に係数｛１−α（ｎ）｝を乗じ、積｛１−α（ｎ）｝｛ｘ（ｎ）−ｗ（ｎ−１）｝を加算手段５０２ｃに出力する。加算手段５０２ｃは、遅延手段５０１により出力された値ｗ（ｎ−１）と乗算手段５０２ｂにより出力された積｛１−α（ｎ）｝｛ｘ（ｎ）−ｗ（ｎ−１）｝とを加算し、和
ｗ（ｎ）＝｛１−α（ｎ）｝｛ｘ（ｎ）−ｗ（ｎ−１）｝＋ｗ（ｎ−１）
すなわち、
ｗ（ｎ）＝｛１−α（ｎ）｝ｘ（ｎ）＋α（ｎ）ｗ（ｎ−１）
を出力する。加算手段５０２ｃは、得られた値ｗ（ｎ）を遅延手段５０１に記憶させる。すなわち、演算手段５０２は、与えられた入力値ｘ（ｎ）と、遅延手段５０１が出力する出力値ｗ（ｎ−１）との一次結合を算出し、得られた値を遅延手段５０１に記憶させる。また、演算手段５０２は、得られた一次結合を、出力ｙ（ｎ）として外部に出力する。
【００６４】
上述した乗算手段５０２ｂは、例えばビットシフト回路により構成される係数可変な乗算手段であり、乗算手段５０２ｂが乗ずる係数は係数制御手段５０３により制御可能になっている。係数制御手段５０３は、初期化手段５０４から初期化を指示する初期化信号を受信すると、乗算手段５０２ｂが乗ずる係数｛１−α（ｎ）｝を１に設定する。これにより、演算手段５０２が遅延手段５０１に記憶させる値はｗ（０）＝ｘ（ｎ）となる。すなわち、遅延手段５０１に動作開始以前に記憶されていた値はクリアされ、新たに入力値ｘ（０）が遅延手段５０１に記憶される。
【００６５】
係数制御手段５０３は、初期化動作終了後、演算手段５０２に直ちに通常動作を開始させるべく、乗算手段５０２ｂが乗ずる係数｛１−α（ｎ）｝をフィルタ動作のための所定の値に設定しても良いし、あるいは、演算手段５０２に入力値の平均値を演算する平均化動作を実行させるべく、演算回数に応じて係数｛１−α（ｎ）｝を順次変化させていっても良い。
【００６６】
平均化動作を実行する場合、係数制御手段５０３は、例えば、時刻ｔ（ｎ）における係数｛１−α（ｎ）｝を、１／（ｎ＋１）に設定する。これにより、演算手段５０２は、各時刻ｔ（ｎ）において、それまでに入力された入力値｛ｘ（０）、ｘ（１）、・・・、ｘ（ｎ）｝の平均値を算出し、遅延手段５０１に記憶させることができる。また、係数制御手段５０３は、例えば、時刻ｔ（ｎ）における係数｛１−α（ｎ）｝を、α（ｎ）が図４に示したグラフを満足するように設定しても良い。れにより、演算手段５０２は、各時刻ｔ（ｎ）において、それまでに入力された入力値｛ｘ（０）、ｘ（１）、・・・、ｘ（ｎ）｝の近似的な平均値を算出し、遅延手段５０１に記憶させることができる。
【００６７】
なお、本実施例で示したフィルタ装置５００は、図２に示したフィルタ装置２００と比べ、乗算手段を１個に減らしている。このため、加減算手段に比べて乗算手段の規模が大きい場合にも、装置の小型化を達成することが可能である。
【実施例３】
【００６８】
次に図６に基づいて、本実施形態に係るフィルタ装置のさらに他の実施例について説明する。図６は、本実施形態に係るフィルタ装置のさらに他の実施例であるフィルタ装置６００の回路構成を示す回路図である。
【００６９】
図６に示したように、フィルタ装置６００は、遅延手段６０１、演算手段６０２、および係数制御手段６０３を備えている。
【００７０】
遅延手段６０１は、与えられた値を記憶し単位時間（１クロック）遅延して出力する。すなわち、遅延手段６０１は、時刻ｔ（ｎ−１）おいて与えられた値ｗ（ｎ−１）を記憶し、時刻ｔ（ｎ）において記憶している値ｗ（ｎ−１）を出力する。
【００７１】
演算手段６０２は、時刻ｔ（ｎ）において、与えられた入力値ｘ（ｎ）と、遅延手段が出力する出力値ｗ（ｎ−１）とから、他の値ｗ（ｎ）を演算し、得られた値を遅延手段６０１に記憶させる。
【００７２】
図６に示したように、フィルタ装置６００における演算手段６０２は、乗算手段６０２ａ（第１の乗算手段）、加算手段６０２ｂ、および、乗算手段６０２ｃ（第２の乗算手段）を備えている。演算手段６０２に与えられた入力値ｘ（ｎ）は、乗算手段６０２ａに入力される。乗算手段６０２ａは、与えられた入力値ｘ（ｎ）に係数β（ｎ）（第１の係数）を乗じ、積β（ｎ）ｘ（ｎ）（第１の積）を加算手段６０２ｂに出力する。加算手段６０２ｂは、乗算手段６０２ａにより与えられた積β（ｎ）ｘ（ｎ）と、遅延手段６０１により出力された出力値ｗ（ｎ−１）とを加算し、和β（ｎ）ｘ（ｎ）＋ｗ（ｎ−１）を乗算手段６０２ｃに出力する。乗算手段６０２ｃは、加算手段６０２ｂにより出力された値に係数α（ｎ）（第２の係数）を乗じ、積（第２の積）
ｗ（ｎ）＝α（ｎ）｛β（ｎ）ｘ（ｎ）＋ｗ（ｎ−１）｝
すなわち、
ｗ（ｎ）＝α（ｎ）β（ｎ）ｘ（ｎ）＋α（ｎ）ｗ（ｎ−１）
を算出する。乗算手段６０２ｃは、得られた値ｗ（ｎ）を遅延手段６０１に記憶させる。すなわち、演算手段６０２は、与えられた入力値ｘ（ｎ）と、遅延手段６０１が出力する出力値ｗ（ｎ−１）との一次結合ｗ（ｎ）を算出し、得られた値を遅延手段６０１に記憶させる。また、演算手段６０２は、得られた一次結合ｗ（ｎ）を、出力ｙ（ｎ）として外部に出力する。
【００７３】
上述した乗算手段６０２ａおよび乗算手段６０２ｃは、例えばビットシフト回路により構成される係数可変な乗算手段であり、各乗算手段が乗ずる係数は係数制御手段６０３により制御可能になっている。ここで、係数制御手段６０３は、少なくとも通常のフィルタ動作実行時には、乗算手段６０２ｃの係数がα（ｎ）であるとき、乗算手段６０２ａの係数β（ｎ）を｛１−α（ｎ）｝／α（ｎ）に一致するように制御する。これにより、フィルタ装置２００への入力強度と出力強度とを等しくすることができる。
【００７４】
係数制御手段６０３は、時刻ｔ（−１）において、初期化手段６０４から初期化を指示する初期化信号を受信すると、乗算手段６０２ｃが乗ずる係数α（−１）を０に設定する。これにより、演算手段６０２が遅延手段６０１に記憶させる値はｗ（０）＝０となる。すなわち、遅延手段６０１に動作開始以前に記憶されていた値はゼロクリアされる。
【００７５】
係数制御手段６０３は、初期化動作終了後、演算手段６０２に直ちに通常動作を開始させるべく、各乗算手段が乗ずる係数をフィルタ動作のための所定の値に設定しても良いし、あるいは、演算手段６０２に入力値の平均値を演算する平均化動作を実行させるべく、演算回数に応じて係数α（ｎ）およびβ（ｎ）を順次変化させていっても良い。
【００７６】
平均化動作を実行する場合、係数制御手段６０３は、例えば、時刻ｔ（ｎ）における係数α（ｎ）を図７に示したグラフに従って制御し、時刻ｔ（ｎ）における係数β（ｎ）を図７に示したグラフに従って制御すれば良い。れにより、演算手段６０２は、各時刻ｔ（ｎ）において、それまでに入力された入力値｛ｘ（０）、ｘ（１）、・・・、ｘ（ｎ）｝の近似的な平均値を算出し、遅延手段６０２に記憶させることができる。
【００７７】
なお、本実施例で示したフィルタ装置６００では、例えば揮発性メモリのような初期化入力ではクリアが出来ない記憶手段を遅延手段６０１に使用した場合でも、係数制御手段６０３により乗算手段６０２ｃの乗ずる係数を制御することにより、遅延手段６０１に記憶されていた値をクリアすることができる。
【００７８】
本発明は上述した各実施形態に限定されるものではなく、請求項に示した範囲で種々の変更が可能であり、異なる実施形態にそれぞれ開示された技術的手段を適宜組み合わせて得られる実施形態についても本発明の技術的範囲に含まれる。
【産業上の利用可能性】
【００７９】
本発明は、ＩＩＲフィルタ装置に適用することが可能であり、特にノイズ除去フィルタ装置等に好適に利用することが可能である。
【図面の簡単な説明】
【００８０】
【図１】本発明の実施形態を示すものであり、フィルタ装置の概略構成を示す回路図である。
【図２】本発明の一実施例を示すものであり、フィルタ装置の回路図である。
【図３】本発明の一実施例を示すものであり、図５に示したフィルタ装置における乗算手段の係数の変化を表すグラフである。
【図４】本発明の一実施例を示すものであり、図５に示したフィルタ装置における乗算手段の他の係数変化を表すグラフである。
【図５】本発明の一実施例を示すものであり、他のフィルタ装置の回路図である。
【図６】本発明の一実施例を示すものであり、他のフィルタ装置の回路図である。
【図７】本発明の一実施例を示すものであり、図６に示したフィルタ装置における乗算手段の係数変化を表すグラフである。
【図８】従来技術を示すものであり、初期化動作が可能なフィルタ装置の回路図である。
【符号の説明】
【００８１】
１００、２００、５００、６００      フィルタ装置
１０１、２０１、５０１、６０１      遅延手段
１０２、２０２、５０２、６０２      演算手段
１０３、３０４、５０３、６０３      係数制御手段
２０５、５０４、６０４              初期化手段
２０２ａ、２０２ｂ、２０３          乗算手段
２０２ｃ                            加算手段
５０２ａ                            減算手段
５０２ｂ                            乗算手段
５０２ｃ                            加算手段
６０２ａ                            乗算手段（第１の乗算手段）
６０２ｂ                            加算手段
６０２ｃ                            乗算手段（第２の乗算手段）
【図１】
0004745032.tif 000002
【図２】
0004745032.tif 000003
【図３】
0004745032.tif 000004
【図４】
0004745032.tif 000005
【図５】
0004745032.tif 000006
【図６】
0004745032.tif 000007
【図７】
0004745032.tif 000008
【図８】
0004745032.tif 000009