(57)【要約】【課題】  ＩＩＲフィルタに用いるフィルタ係数を精度よく算出することができるＩＩＲフィルタ設計方法を得る。【解決手段】  フィルタ係数の最適解を設定するステップと、最適解に基づいて最小二乗演算法によるフィルタ係数を算出するステップと、上記によって算出されたフィルタ係数が所望するフィルタ特性を発揮するフィルタ係数であるか否かを判定するステップと、上記判定において、所望するフィルタ特性ではないとき、上記算出されたフィルタ係数を変更して上記判定ステップに再帰させるステップと、を有するデジタル信号処理に用いるＩＩＲフィルタの設計方法による。【選択図】図１
2010154111.tif 000002
【特許請求の範囲】
【請求項１】
デジタル信号処理に用いるＩＩＲフィルタの設計方法であって、
フィルタ係数の最適解を設定するステップと、
上記最適解に基づいて最小二乗演算法によるフィルタ係数を算出するステップと、
上記によって算出されたフィルタ係数が所望するフィルタ特性を発揮するフィルタ係数であるか否かを判定するステップと、
上記判定において所望するフィルタ特性ではないとき、上記算出されたフィルタ係数を変更して上記判定ステップに再帰させるステップと、を有するＩＩＲフィルタ設計方法。
【請求項２】
デジタル信号処理に用いるＩＩＲフィルタの設計方法であって、
デジタル信号処理を行うデータの帯域幅を指定するステップと、
上記データのうち、フィルタを適用したい帯域幅を指定するステップと、
上記データの帯域幅と上記フィルタを適用したい帯域幅を用いて重み関数の最大値を算出するステップと、
上記算出した値を最大値とする重み関数を用いた最小二乗演算によってフィルタ係数を算出するステップと、
算出されたフィルタ係数を用いたＩＩＲフィルタは所望するフィルタ特性を有するか否かを判定するステップと、
上記判定において所望するフィルタ特性ではないとき、上記算出されたフィルタ係数を変更して上記判定ステップに再帰させるステップと、を有するＩＩＲフィルタ設計方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、デジタルフィルタの設計方法に関するもので、より詳しくは、ＩＩＲフィルタに用いるフィルタ係数を精度よく算出することができるＩＩＲフィルタ設計方法に関するものである。
【背景技術】
【０００２】
デジタルフィルタは、デジタル信号処理装置（ＤＳＰ）において実行されるプログラムであって、所望するフィルタ特性を、フィルタ係数を用いた所定の演算処理によって実現するものである。デジタルフィルタには、主に有限インパルス応答フィルタ（ＦＩＲフィルタ）と、無限インパルス応答フィルタ（ＩＩＲフィルタ）がある。ＦＩＲフィルタは、入力されるデジタルデータのうち、ある決められた有限な期間のデータのみを入力データとして演算処理をし、期間が経過した後のデータは当該演算処理に用いないものであって、フィルタ位相応答が重要なシステムに好適なデジタルフィルタである。ＩＩＲフィルタは、入力されるデータを期間で区切ることなく無限にフィードバックする演算処理を行うものであって、ＦＩＲフィルタよりも少ない演算（タップ数）で特定の所望するフィルタ特性を実現することができる（例えば、特許文献１参照）。
【特許文献１】特開平１０−３０８６５０号公報
【０００３】
ＩＩＲフィルタは、ＦＩＲフィルタに比較すると演算時間が短く処理速度が高速であるのでリアルタイム処理に適している。しかし、フィードバックパスを有することから係数感度が高く、音響システムに用いる狭帯域フィルタとしては不適である。つまり、ＩＩＲフィルタは演算処理の速度としては、リアルタイム処理を必要とするシステムに適しているが、ＦＩＲフィルタに比べてフィルタ精度が劣るので、リアルタイム処理が求められるが、特に出力の品質が重要な要素となる音響システムにおいては、ＩＩＲフィルタのようにフィルタ係数感度が高いものは不適となる。よって従来は、高速なフィルタ処理が求められるノイズキャンセルシステムなどであっても、ＩＩＲフィルタを用いずにＦＩＲフィルタを用いていた。
【０００４】
一般に、ＩＩＲフィルタの伝達関数は（ｂ０＋ｂ１ｚ−１＋ｂ２ｚ−２＋・・・＋ｂＮｚ−Ｎ）／（１＋ａ１ｚ−１＋ａ２ｚ−２＋・・・＋ａＭｚ−Ｍ）で表される。ＩＩＲフィルタの設計とは、所望するフィルタ特性を発揮する最適なフィルタ係数（ａＭ、ｂＮ）を算出することである。
フィルタ係数の算出方法として、逐次演算法が知られている。逐次演算法は、まず各係数の初期値を設定し、この初期値をフィルタ係数とするデジタルフィルタの特性が所望するフィルタ特性に合致するかどうかを判定し、合致しなければフィルタ係数を変更して、再度デジタルフィルタの特性を判定する方法である。
【０００５】
例えば、分母項の係数をａ０＝１、ａ１＝１、ａ２＝１と仮定し、分子項のフィルタ係数をｂ０＝１、ｂ１＝１、ｂ２＝１とするＩＩＲフィルタと仮定したフィルタの特性が、所望するフィルタ特性であるか否かを判断して、所望しているフィルタ特性が発揮されていなければ、仮に設定した上記の係数を変えて、再度、フィルタ特性を判定する。ここで、所望するフィルタ特性の例として「特定の周波数帯域のゲインを−１０ｄＢにする」などがある。
このように、フィルタ特性を確認しながら、フィルタ係数を変えながら最適解となるフィルタ係数を算出する方法が逐次演算法である。このようにして求めた最適解は精度が高いものとなる。
【０００６】
しかしながら、逐次演算方法は初期値を設定するところから始まるので、この初期値が目的値（最適解）とかけ離れているときは、最適解に収束するまで演算処理に時間がかかる。また、初期値と目的値との乖離が非常に大きいときは、最適解に到達することはなく発散（解が得られない）してしまうことがある。
【発明の開示】
【発明が解決しようとする課題】
【０００７】
本発明は、上記課題を鑑みてなされたものであって、ＩＩＲフィルタの設計方法において、精度よく効果的なフィルタ特性を発揮することができるフィルタ係数を確実に算出することで、係数感度の高い音響システムにも適用することができるＩＩＲフィルタを得ることができるＩＩＲフィルタ設計方法を提供することを目的とする。
【課題を解決するための手段】
【０００８】
本発明は、デジタル信号処理に用いるＩＩＲフィルタの設計方法であって、フィルタ係数の最適解を設定するステップと、上記最適解に基づいて最小二乗演算法によるフィルタ係数を算出するステップと、上記によって算出されたフィルタ係数が所望するフィルタ特性を発揮するフィルタ係数であるか否かを判定するステップと、上記判定において、所望するフィルタ特性ではないとき、上記算出されたフィルタ係数を変更して上記判定ステップに再帰させるステップと、を有することを特徴とする。
【０００９】
また本発明は、デジタル信号処理に用いるＩＩＲフィルタの設計方法であって、デジタル信号処理を行うデータの帯域幅を指定するステップと、上記データのうち、フィルタを適用したい帯域幅を指定するステップと、上記データの帯域幅と上記フィルタを適用したい帯域幅を用いて重み関数の最大値を算出するステップと、上記算出した値を最大値とする重み関数を用いた最小二乗演算によってフィルタ係数を算出するステップと、算出されたフィルタ係数を用いたＩＩＲフィルタは所望するフィルタ特性を有するか否かを判定するステップと、上記判定において所望するフィルタ特性ではないとき、上記算出されたフィルタ係数を変更して上記判定ステップに再帰させるステップと、を有することを特徴とする。
【発明の効果】
【００１０】
本発明によれば、音響システムにも適用可能なＩＩＲフィルタの最適なフィルタ係数を短時間で精度よく、かつ、確実に算出することができるようになる。
【発明を実施するための最良の形態】
【００１１】
以下、本発明に係るＩＩＲフィルタ設計方法の実施例について説明をする。本発明はコンピュータプログラムを用いて実施されるものである。図１は、本発明に係るＩＩＲフィルタ設計方法を実施するコンピュータプログラムの処理の流れの例示すフローチャートである。図１において、各処理ステップはＳ１０、Ｓ１１、・・・のように表記する。
【００１２】
まず、最適解とするフィルタ係数を設定する（Ｓ１０）。次に、設定されたフィルタ係数に基づいて、最小二乗演算を用いて、初期値とするフィルタ係数を算出する（Ｓ１１）。例えばフィルタ係数ａ０、ａ１、ａ２、ｂ０、ｂ１、ｂ２の最適解をそれぞれａ０’、ａ１’、ａ２’、ｂ０’、ｂ１’、ｂ２’としたとき、最小二乗演算によって、ａ０＝ａ０’＋ε００、ａ１＝ａ１’＋ε０１、ａ２＝ａ２’＋ε０２、ｂ０＝ｂ０’＋ε１０、ｂ１＝ｂ１’＋ε１１、ｂ２＝ｂ２’＋ε１２、を｜εｙ｜＜＜１の条件において算出する。
【００１３】
次に、算出された上記のフィルタ係数の初期値によるＩＩＲフィルタが、最適なフィルタ特性を発揮するものであるか否かを判定する（Ｓ１２）。最適なフィルタ特性を発揮するものであれば（Ｓ１２のＹ）、このフィルタ係数を当該ＩＩＲフィルタのフィルタ係数として設定する（Ｓ１３）。最適なフィルタ特性を発揮するものでなければ（Ｓ１２のＮ）、フィルタ係数を変更して（Ｓ１４）、再度、最適なフィルタ特性を発揮するものであるか否かを判定する（Ｓ１２）。最適なフィルタ特性でなければ、処理を再帰してフィルタ特性を変更する（Ｓ１４）。このように、最適なフィルタ特性を得るまで、逐次演算法によってフィルタ係数の算出を続ける。
【００１４】
最小二乗演算では、最適解に対して７０％以上の精度をもつ。また、逐次演算法は、最適解の５０％の精度の初期値が与えられれば、必ず収束する。従って、本発明に係るＩＩＲフィルタ設計方法によれば、逐次演算法を用いたフィルタ係数の算出において、予め設定した最適なフィルタ係数を用いて、最小二乗法によって初期値を算出し、この算出された初期値を基に逐次演算法によるフィルタ係数算出演算を行うことで、短時間で精度のよい最適なフィルタ係数を求めることができ、所望するフィルタ特性を有するＩＩＲフィルタを精度よく、かつ、確実に設計することができるようになる。
【００１５】
次に、本発明に係るＩＩＲフィルタ設計方法の別の実施形例について説明する。図２は、既に説明をした第一の実施例に係るＩＩＲフィルタ設計方法において使用する最小二乗法の課題を解決し、さらに精度よく、かつ、確実に最適なフィルタ特性を発揮するＩＩＲフィルタの設計方法を実現するコンピュータプログラムの流れを示すフローチャートである。
【００１６】
まず、最小二乗法の課題について説明をする。最小二乗演算法は、窓関数を重み関数として用いる演算方法であるが重み関数の最大値が「１」である。つまり、入力データ（フィルタを適用するデータ）に対してフィルタを精度よく適用したい帯域幅における重み関数の値が「１」である。従って、フィルタを適用したい帯域幅に有効なフィルタ係数を算出することに向いている。
しかし、入力データの帯域幅に対して、フィルタを適用したい帯域幅（計算帯域）が狭いとき、全帯域の計算値に対して指定帯域の計算値が極めて小さくなり、結果に反映されなくなる。例えば、全帯域が２０ｋＨｚである入力データにおいて、計算帯域が１ｋＨｚであるとき、（１ｋ／２０ｋ）×１＝０．０５（５％）となり指定帯域での計算値が小さくなりすぎる。
【００１７】
仮に帯域が１ｋＨｚであって、計算帯域が０．４ｋＨｚであるならば、（０．４ｋ／１ｋ）×１＝０．４（４０％）となって、指定帯域の計算値が小さくなりすぎることはない。このように、最小二乗法を用いてフィルタ係数の初期値を算出すると、その値が小さくなりすぎることがある。この課題を解決した最小二乗演算法を用いることで、ＩＩＲフィルタの係数を精度よく、かつ、確実に得ることができるようになる。
【００１８】
図２において、各処理ステップはＳ２０、Ｓ２１、・・・のように表記する。まず、デジタル処理を行うデータ（入力データ）の全帯域（ｗｓ）を入力する（Ｓ２０）。次に、フィルタを適用したい帯域幅（計算帯域）の下限値（ｗ１）と上限値（ｗ２）を入力する（Ｓ２２）。次に、重み関数の最大値（重み係数）をｗｓ／（ｗ２−ｗ１）によって算出する（Ｓ２３）。算出した重み係数を最大値とする重み関数を用いた最小二乗演算を行い、フィルタ係数を算出する（Ｓ２４）。
【００１９】
次に算出したフィルタ係数を用いたＩＩＲフィルタによって得られるフィルタ特性が、所望するフィルタ特性であるか否かを判定する（Ｓ２５）。例えば、ローパスフィルタであれば遮断周波数以上の周波数領域におけるゲインが−１０ｄＢに成っているか否かを判定する。判定の結果、所望するフィルタ特性であれば（Ｓ２５のＹ）、フィルタ係数の算出は終了する。
【００２０】
上記判定の結果が所望するフィルタ特性でなければ（Ｓ２５のＮ）、Ｓ２４において算出したフィルタ係数を初期値として逐次演算を行いフィルタ係数の算出をする（Ｓ２６）。所望するフィルタ特性を発揮するフィルタ係数を得るまで上記を繰り返す（Ｓ２５、Ｓ２６）。
【００２１】
このように、本発明に係るＩＩＲフィルタ設計方法によれば、まず最小二乗演算によって所望するフィルタ特性のフィルタ係数を算出し、これを初期値として逐次演算法を行うことで、最適解が発散することを防ぎ、また、最適解を得るまでの演算時間を短縮するこができるようになる。
【産業上の利用可能性】
【００２２】
本発明に係るＩＩＲフィルタ設計方法は、デジタルノイズキャンセルシステムに用いるＩＩＲフィルタの設計に適用できる。
【図面の簡単な説明】
【００２３】
【図１】本発明に係るＩＩＲフィルタ設計方法を実行するコンピュータプログラムの処理の流れの例を示すフローチャートである。
【図２】上記コンピュータプログラムの処理の流れの別の例を示すフローチャートである。
【符号の説明】
【００２４】
Ｓ１１  初期値算出処理
Ｓ２２  重み関数最大値算出処理
Ｓ２５  フィルタ特性判定処理
【図１】
2010154111.tif 000003
【図２】
2010154111.tif 000004