(57)【要約】【課題】  デジタルフィルタにフィルタ処理の実行条件に見合った演算精度で演算を行わせ、無駄な電力消費を回避する。【解決手段】  係数記憶部２００内のフィルタ係数は、係数書き換え制御部４０１による制御の下、インタフェース３００を介して書き換え可能である。データパス部１００は、係数記憶部２００内のフィルタ係数を用いたフィルタ処理を入力オーディオサンプルｘ（ｎ）に施すための演算を行う。フィルタ処理制御部４０２は、データパス部１００による演算の制御を行う手段であり、係数記憶部２００に記憶されたフィルタ係数に基づいて、単精度演算を行わせるか倍精度演算を行わせるかを切り換える。【選択図】図１
2008085923.tif 000002
【特許請求の範囲】
【請求項１】
フィルタ処理の処理対象信号に乗算するフィルタ係数または前記フィルタ処理の処理過程において発生する信号に乗算するフィルタ係数を記憶する係数記憶手段と、
前記係数記憶手段に記憶されたフィルタ係数の書き換えを行う係数書き換え制御手段と、
前記係数記憶手段に記憶されたフィルタ係数を用いたフィルタ処理を処理対象信号に施すための演算を行う演算手段と、
前記演算手段による演算の制御を行う手段であり、前記フィルタ処理の実行条件を示すパラメータに基づいて、前記演算手段の使用態様を変えることにより前記演算手段による演算の演算精度の切り換え制御を行うフィルタ処理制御手段と
を具備することを特徴とするデジタルフィルタ。
【請求項２】
前記制御手段は、前記フィルタ処理の実行条件を示すパラメータとして、前記係数記憶手段に記憶されたフィルタ係数を用いて、前記演算精度の切り換え制御を行うことを特徴とする請求項１に記載のデジタルフィルタ。
【請求項３】
前記フィルタ処理制御手段は、前記パラメータが示すフィルタ処理の実行条件が最も高い演算精度を必要とするワーストケースである場合に、前記演算手段に倍精度演算を行わせ、前記パラメータが示すフィルタ処理の実行条件が非ワーストケースである場合に、前記演算手段に単精度演算を行わせることを特徴とする請求項１または２に記載のデジタルフィルタ。
【請求項４】
前記フィルタ処理はそれよりも小規模な複数のフィルタ処理により構成されており、前記フィルタ処理制御手段は、小規模なフィルタ処理単位で、各々が必要とする演算精度が確保されるように、個別的に演算精度の切り換え制御を行うことを特徴とする請求項１〜３のいずれか１の請求項に記載のデジタルフィルタ。
【請求項５】
前記フィルタ処理はそれよりも小規模な複数のフィルタ処理により構成されており、前記フィルタ処理制御手段は、前記複数の小規模なフィルタ処理が必要とする演算精度のうち最も高い演算精度が確保されるように、前記複数の小規模なフィルタ処理について一括して演算精度の切り換え制御を行うことを特徴とする請求項１〜３のいずれか１の請求項に記載のデジタルフィルタ。
【請求項６】
外部からの操作により設定可能なマニュアルモードと自動モードを有し、前記マニュアルモードでは、外部からの操作に応じて前記演算精度の切り換え制御を行い、前記自動モードでは、前記フィルタ処理の実行条件を示すパラメータに基づいて前記演算処理の精度の切り換え制御を行うことを特徴とする請求項１〜５のいずれか１の請求項に記載のデジタルフィルタ。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、オーディオ機器等に好適なデジタルフィルタに関する。
【背景技術】
【０００２】
デジタルフィルタは、集積回路化が可能であり、小型化、低価格化、高信頼化を実現できるとともに、フィルタ特性をソフトウェア処理によって容易に調整することができる等、アナログフィルタと比較して多くの利点を有している。このデジタルフィルタは、例えば所望のフィルタ処理を実行するようにプログラムされたＤＳＰ（Ｄｉｇｉｔａｌ  Ｓｉｇｎａｌ  Ｐｒｏｃｅｓｓｏｒ；デジタル信号処理装置）により実現される。そして、最近では、フィルタ処理に用いるフィルタ係数をユーザが自由に書き換えることができるような構成のデジタルフィルタが提供されている。
【０００３】
図１０は、この種のデジタルフィルタの機能構成を示すブロック図である。このデジタルフィルタは、この３バンドイコライザとして機能するようにプログラムされたＤＳＰにより構成されている。ここで、３バンドイコライザは、各々ＩＩＲ（Ｉｎｆｉｎｉｔｅ  Ｉｍｐｕｌｓｅ  Ｒｅｓｐｏｎｓｅ）フィルタにより構成されたイコライザＥＱ０、ＥＱ１およびＥＱ２をバイクワッド縦続接続してなるものであり、入力オーディオサンプルｘ（ｎ）に所望の周波数特性を与えて出力オーディオサンプルｙ（ｎ）として出力する。なお、このようなイコライザ用のＩＩＲフィルタに関しては例えば特許文献１に開示されている。そして、図１０に示すデジタルフィルタは、３バンドイコライザとしての機能を営むために、各サンプリング周期において、図示の遅延処理９０１〜９１２と、乗算処理９２１〜９３６と、加算処理９４１〜９４３とを実行する。
【０００４】
各サンプリング周期において、乗算処理９２１〜９３５では、遅延処理９０１〜９１１の出力信号値ｄＥＱ００等に対し、図示のフィルタ係数ｃＥＱ００等を各々乗算する。また、各サンプリング周期において、加算処理９４１では、乗算処理９２１〜９２５の各出力値を加算し、加算処理９４２では、乗算処理９２６〜９３０の各出力値を加算し、加算処理９４３では、乗算処理９３１〜９３５の各出力値を加算する。これにより加算処理９４１〜９４３の出力値として、下記式（１）〜（３）に示す信号値ｄＥＱ１０、ｄＥＱ２０およびｄＥＱ３０が算出され、次のサンプリング周期への切り換わりの際には、この算出結果に合わせて信号値の更新が行われる。
ｄＥＱ１０
＝ｃＥＱ００×ｄＥＱ００＋ｃＥＱ０１×ｄＥＱ０１＋ｃＥＱ０２×ｄＥＱ０２
＋ｃＥＱ０３×ｄＥＱ１０＋ｃＥＱ０４×ｄＥＱ１１      ……（１）
ｄＥＱ２０
＝ｃＥＱ１０×ｄＥＱ１０＋ｃＥＱ１１×ｄＥＱ１１＋ｃＥＱ１２×ｄＥＱ１２
＋ｃＥＱ１３×ｄＥＱ２０＋ｃＥＱ１４×ｄＥＱ２１      ……（２）
ｄＥＱ３０
＝ｃＥＱ２０×ｄＥＱ２０＋ｃＥＱ２１×ｄＥＱ２１＋ｃＥＱ２２×ｄＥＱ２２
＋ｃＥＱ２３×ｄＥＱ３０＋ｃＥＱ２４×ｄＥＱ３１      ……（３）
【０００５】
図１１は、図１０に示すイコライザＥＱｘ（ｘ＝０〜２）のうちの１個のフィルタ特性を模式的に示したものである。図１１に示すように、１個のイコライザＥＱｘのフィルタ特性は、通過させる信号のゲインが最大となるピーク周波数ｆ０、同ピーク周波数ｆ０におけるゲインＧ、周波数選択の鋭さを示すキューＱにより特定される。そして、第ｘバンド（ｘ＝０〜２）のイコライザＥＱｘの目標とするピーク周波数ｆ０、ゲインＧおよびキューＱが与えられた場合、同イコライザＥＱｘに用いるフィルタ係数ｃＥＱｘ０、ｃＥＱｘ１、ｃＥＱｘ２、ｃＥＱｘ３、ｃＥＱｘ４は、次式により演算される。
ｃＥＱｘ０＝（１＋α×Ａ）／β            ……（４）
ｃＥＱｘ１＝−２×（ｃｏｓω）／β        ……（５）
ｃＥＱｘ２＝（１−α×Ａ）／β            ……（６）
ｃＥＱｘ３＝２×（ｃｏｓω）／β          ……（７）
ｃＥＱｘ４＝−（１−α／Ａ）／β          ……（８）
【０００６】
ただし、Ａ、ω、α、βは、次の通りである。また、下記においてＦｓはサンプリング周波数である。
Ａ＝１０＾（Ｇ／４０）                    ……（９）
ω＝（２×π×ｆ０）／Ｆｓ                ……（１０）
α＝（ｓｉｎω）／（２Ｑ）                ……（１１）
β＝１＋（α／Ａ）                        ……（１２）
【０００７】
ユーザは、イコライザＥＱｘ（ｘ＝０〜２）の各々に関して、例えばパーソナルコンピュータ等を用いて、所望のピーク周波数ｆ０、ゲインＧおよびキューＱに基づいてフィルタ係数ｃＥＱｘ０、ｃＥＱｘ１、ｃＥＱｘ２、ｃＥＱｘ３およびｃＥＱｘ４を算出し、デジタルフィルタの係数記憶部に書き込むことができる。この係数書き込みが行われると、以後、デジタルフィルタは、係数記憶部に書き込まれたフィルタ係数を用いて上記式（１）〜（３）の演算を行う３バンドイコライザとして機能する。
【０００８】
さて、上記式（１）〜（３）に含まれる乗算処理、すなわち、図１０における乗算処理９２１〜９３６は、ＤＳＰ内の乗算器を時分割制御の下で用いることにより実行される。また、上記式（１）〜（３）に含まれる加算処理、すなわち、図１０における加算処理９４１〜９４３は、ＤＳＰ内の加算器を時分割制御の下で用いることにより実行される。ここで、ＤＳＰ内の乗算器や加算器は、有限のビット幅のデータを取り扱うものであるため、どうしても演算の際に誤差が発生する。この演算誤差が大きいと、３バンドイコライザの特性として、要求仕様（例えばピーク周波数ｆ０、ゲインＧおよびキューＱ）を満たすものが得られない可能性がある。また、特に図１０に示す３バンドイコライザのようなＩＩＲフィルタにより構成されたデジタルフィルタは、ＦＩＲ（Ｆｉｎｉｔｅ  Ｉｍｐｕｌｓｅ  Ｒｅｓｐｏｎｓｅ；有限インパルス応答）フィルタに比べて演算量が少ないという利点を有する一方、演算誤差が大きいと、リミットサイクルと呼ばれる発振現象を引き起こす場合がある。
【０００９】
ところが、要求仕様の不充足、リミットサイクルの発生等の不具合が発生するか否かの分かれ目となる演算精度は、一定ではなく、如何なるフィルタ処理を実行するかに依存する。例えば図１０に示されるようなＩＩＲフィルタの場合、通過帯域の中心となるピーク周波数ｆ０が高い場合には演算精度をそれ程高くしなくても不具合は発生しないが、ピーク周波数ｆ０が低い場合には演算精度を高くしないと不具合が発生する傾向がある。従って、様々な条件（例えばピーク周波数ｆ０）でＤＳＰにフィルタ処理を実行させる場合には、それらの各条件で実行されるフィルタ処理のうち、不具合を発生させないために必要とされる演算精度が最も高いもの、すなわち、ワーストケースでの演算精度を求め、その演算精度が確保されるようにする必要がある。
【００１０】
このようなワーストケースを考慮したデジタルフィルタの設計手法として、従来、２つの方法があった。第１の方法は、ＤＳＰの演算器のハードウェア本来の演算精度、より具体的には乗算器や加算器のビット幅をワーストケースにおいて必要とされるものに合わせる設計手法である。
【００１１】
第２の方法は、第１の方法のようにＤＳＰのハードウェアの構成をワーストケースに合わせて最適化するのではなく、ワーストケースでは倍精度演算を演算器に実行させ、ワーストケースにおいて必要な演算精度を確保する手法である。例えば前掲図１０の３バンドイコライザにおいて、ワーストケースを想定すると、ＤＳＰの乗算器や加算器の本来の演算精度では、必要な演算精度に満たない場合、この第２の方法では、ＤＳＰに下記式（１３）〜（１５）に示す倍精度演算を実行させ、必要な演算精度を得る。
ｄＥＱ１０
＝ｃＥＱ００×ｄＥＱ００Ｌ＋ｃＥＱ０１×ｄＥＱ０１Ｌ＋ｃＥＱ０２×ｄＥＱ０２Ｌ
＋ｃＥＱ０３×ｄＥＱ１０Ｌ＋ｃＥＱ０４×ｄＥＱ１１Ｌ
＋ｃＥＱ００×ｄＥＱ００Ｕ＋ｃＥＱ０１×ｄＥＱ０１Ｕ＋ｃＥＱ０２×ｄＥＱ０２Ｕ
＋ｃＥＱ０３×ｄＥＱ１０Ｕ＋ｃＥＱ０４×ｄＥＱ１１Ｕ      ……（１３）
ｄＥＱ２０
＝ｃＥＱ１０×ｄＥＱ１０Ｌ＋ｃＥＱ１１×ｄＥＱ１１Ｌ＋ｃＥＱ１２×ｄＥＱ１２Ｌ
＋ｃＥＱ１３×ｄＥＱ２０Ｌ＋ｃＥＱ１４×ｄＥＱ２１Ｌ
＋ｃＥＱ１０×ｄＥＱ１０Ｕ＋ｃＥＱ１１×ｄＥＱ１１Ｕ＋ｃＥＱ１２×ｄＥＱ１２Ｕ
＋ｃＥＱ１３×ｄＥＱ２０Ｕ＋ｃＥＱ１４×ｄＥＱ２１Ｕ      ……（１４）
ｄＥＱ３０
＝ｃＥＱ２０×ｄＥＱ２０Ｌ＋ｃＥＱ２１×ｄＥＱ２１Ｌ＋ｃＥＱ２２×ｄＥＱ２２Ｌ
＋ｃＥＱ２３×ｄＥＱ３０Ｌ＋ｃＥＱ２４×ｄＥＱ３１Ｌ
＋ｃＥＱ２０×ｄＥＱ２０Ｕ＋ｃＥＱ２１×ｄＥＱ２１Ｕ＋ｃＥＱ２２×ｄＥＱ２２Ｕ
＋ｃＥＱ２３×ｄＥＱ３０Ｕ＋ｃＥＱ２４×ｄＥＱ３１Ｕ      ……（１５）
【００１２】
上記式（１３）〜（１５）において、ｄＥＱｘｙＬ（ｘ＝０〜２、ｙ＝０〜４）は、信号値ｄＥＱｘｙ（ｘ＝０〜２、ｙ＝０〜４）の下位ビット、ｄＥＱｘｙＵ（ｘ＝０〜２、ｙ＝０〜４）は、信号値ｄＥＱｘｙ（ｘ＝０〜２、ｙ＝０〜４）の上位ビットである。
【特許文献１】特開２００３−１１０４０５号公報
【発明の開示】
【発明が解決しようとする課題】
【００１３】
ところで、上述した第１の方法は、ワーストケースに合わせて乗算器等の演算精度を決定するため、演算のためのハードウェアが大規模なものになるという問題がある。また、演算のためのハードウェアが大規模化するのに伴い、消費電力が大きくなるという問題がある。また、上述した第２の方法は、演算のためのハードウェアの規模を変えるものではないので、第１の方法に比べてハードウェアの規模を小さくすることができるが、ワーストケースに合わせた演算精度を得るために演算回数を増やして倍精度演算を行うので、消費電力が大きくなるという問題がある。また、第１および第２の方法のいずれにおいても、デジタルフィルタの演算精度は、ワーストケースでの使用に耐え得るような演算精度に固定される。しかし、ユーザがフィルタ係数を自由に書き換えることが可能なデジタルフィルタの場合、デジタルフィルタはワーストケースでない条件（例えばピーク周波数ｆ０を高くして動作させる等）でも使用されることがある。そのような場合でも、上記第１の方法または第２の方法により設計されたデジタルフィルタは、ワーストケースを考慮して決定された演算精度、すなわち、本来必要な演算精度よりも高い演算精度で演算を行うため、過剰な演算精度での演算により無駄に電力を消費する、という問題がある。
【００１４】
この発明は、以上のような事情に鑑みてなされたものであり、フィルタ処理の実行条件に見合った演算精度で演算を行うことができ、無駄な電力消費が低減されたデジタルフィルタを提供することを目的としている。
【課題を解決するための手段】
【００１５】
この発明は、フィルタ処理の処理対象信号に乗算するフィルタ係数または前記フィルタ処理の処理過程において発生する信号に乗算するフィルタ係数を記憶する係数記憶手段と、前記係数記憶手段に記憶されたフィルタ係数の書き換えを行う係数書き換え制御手段と、前記係数記憶手段に記憶されたフィルタ係数を用いたフィルタ処理を処理対象信号に施すための演算を行う演算手段と、前記演算手段による演算の制御を行う手段であり、前記フィルタ処理の実行条件を示すパラメータに基づいて、前記演算手段の使用態様を変えることにより前記演算手段による演算の演算精度の切り換え制御を行うフィルタ処理制御手段とを具備することを特徴とするデジタルフィルタを提供する。
かかる発明によれば、フィルタ処理の実行条件に基づいて、演算手段による演算の演算精度の切り換えが行われるので、様々な実行条件でフィルタ処理を行う場合に、実行条件に合った適切な演算精度でフィルタ処理のための演算が行われ、無駄な電力消費が回避される。
【発明を実施するための最良の形態】
【００１６】
以下、図面を参照し、この発明の実施の形態を説明する。
＜第１実施形態＞
図１はこの発明の第１実施形態であるデジタルフィルタの構成を示すブロック図である。このデジタルフィルタは、前掲図１０の３バンドイコライザとしてのフィルタ処理を入力オーディオサンプルｘ（ｎ）に施し、この結果得られるオーディオサンプルｙ（ｎ）を出力するようにプログラムされたＤＳＰであり、データパス部１００と、係数記憶部２００と、インタフェース３００と、制御部４００とを有している。
【００１７】
係数記憶部２００は、前掲図１０の３バンドイコライザとしてのフィルタ処理に用いるフィルタ係数ｃＥＱｘｙ（ｘ＝０〜２、ｙ＝０〜４）を記憶する手段であり、例えばＥＥＰＲＯＭなどの書き換え可能な不揮発性メモリにより構成されている。
【００１８】
データパス部１００は、前掲図１０の３バンドイコライザとしてのフィルタ処理のための演算を行う装置であり、乗算器１１１、加算器１１２およびレジスタ１１３からなる演算器１１０と、ワークＲＡＭ１２０と、乗算器１１１に与える入力情報の選択を行うセレクタ１３１および１３２を有している。
【００１９】
ここで、ワークＲＡＭ１２０は、前掲図１０の遅延処理９０１〜９１２等に用いられる記憶装置であり、前掲図１０の３バンドイコライザの各ノードの信号値ｄＥＱｘｙを示す２Ｎビット（Ｎは複数）のデータを記憶する。乗算器１１１は、前掲図１０の乗算処理９２１〜９３６等を行う装置であり、２個のＮビットの入力データの乗算を行って２Ｎビットのデータを出力する。セレクタ１３１は、係数記憶部２００内のフィルタ係数ｃＥＱｘｙ（ｘ＝０〜２、ｙ＝０〜４）のうち制御部４００から指示されたものを選択して乗算器１１１に供給する。セレクタ１３２は、制御部４００からの指示に従って、ワークＲＡＭ１２０から読み出される信号値ｄＥＱｘｙまたは入力オーディオサンプルｘ（ｎ）を選択して乗算器１１１に供給する。ここで、セレクタ１３２は、ワークＲＡＭ１２０から読み出される信号値ｄＥＱｘｙを乗算器１１１に供給する際には、制御部４００からの指示に従い、２Ｎビットの信号値ｄＥＱｘｙのうち上位Ｎビットまたは下位Ｎビットを選択して乗算器１１１に供給する。乗算器１１１から出力される２Ｎビットのデータは、加算器１１２に供給される過程において符号拡張され、符号ビットの後に整数部Ｍビットが追加された２Ｎ＋Ｍビットのデータとされる。加算器１１２およびレジスタ１１３は、この２Ｎ＋Ｍビットのデータの累算を行い、前掲式（１）〜（３）または前掲式（１３）〜（１５）の信号値ｄＥＱ１０、ｄＥＱ２０およびｄＥＱ３０を算出する累算器として機能する。以上のデータパス部１００内の各部の処理は、制御部４００から供給される所定周波数のクロックφに同期して行われる。
【００２０】
インタフェース３００は、デジタルフィルタの外部の装置との間で信号の授受を行う装置である。デジタルフィルタは、このインタフェース３００により、外部から入力オーディオサンプルｘ（ｎ）を取得し、３バンドイコライザとしてのフィルタ処理により得られる出力オーディオサンプルｙ（ｎ）を外部へ出力する。また、係数記憶部２００内のフィルタ係数の書き換え時、インタフェース３００は、パーソナルコンピュータ等の外部装置に接続され、書き換え用のフィルタ係数やフィルタ係数の書き換えコマンドを外部装置から受け取る役割を果たす。
【００２１】
制御部４００は、このデジタルフィルタ全体の制御を行う手段である。好ましい態様において、制御部４００は、ＣＰＵと、このＣＰＵにより実行されるプログラムを記憶するＲＯＭと、作業用のＲＡＭとにより構成されている。制御部４００は、係数書き換え制御部４０１とフィルタ処理制御部４０２とを有している。これらの実体は制御部４００のＣＰＵが実行するプログラムである。
【００２２】
係数書き換え制御部４０１は、パーソナルコンピュータ等の外部装置がインタフェース３００に接続された状態において、フィルタ係数とフィルタ係数の書き換えコマンドを外部装置からインタフェース３００を介して受け取ったとき、受け取ったフィルタ係数により係数記憶部２００内のフィルタ係数の書き換えを行う手段である。
【００２３】
フィルタ処理制御部４０２は、データパス部１００によって行われる３バンドイコライザとしてのフィルタ処理の制御を行う手段である。本実施形態の特徴は、このフィルタ処理制御部４０２によって行われるフィルタ処理の制御の態様にある。従来の技術の下では、フィルタ処理の種々の実行条件の中のワーストケースの実行条件に合わせてデジタルフィルタの演算処理の演算精度が決定され、デジタルフィルタは、如何なる実行条件でフィルタ処理を実行する場合でも、この決定された演算精度でフィルタ処理のための演算を行った。これに対し、本実施形態におけるフィルタ処理制御部４０２は、３バンドイコライザを構成するイコライザＥＱｘ（ｘ＝０〜２）の各々について、イコライザＥＱｘの実行条件がワーストケースであるか非ワーストケースであるかを判定し、この判定結果に従い、当該イコライザＥＱｘとしてのフィルタ処理の演算精度を決定し、そのような演算精度でフィルタ処理が行われるようにデータパス部１００の制御を行う。すなわち、実行条件が非ワーストケースである場合には、データパス部１００の演算器１１０に単精度演算を行わせ、実行条件がワーストケースである場合には、データパス部１００の演算器１１０に倍精度演算を行わせるのである。さらに詳述すると、次の通りである。
【００２４】
まず、前掲図１０の３バンドイコライザを構成する各イコライザＥＱｘ（ｘ＝０〜２）は、ピーク周波数ｆ０が低いほど、不具合（要求仕様不充足、リミットサイクルの発生等）を生じさせずにフィルタ処理を行うのに必要な演算精度が高くなる。すなわち、個々のイコライザＥＱｘに関して、実行条件が非ワーストケースかワーストケースかはピーク周波数ｆ０により決まり、ピーク周波数ｆ０がある閾値以上であれば単精度演算でも不具合は生じないが（非ワーストケース）、ピーク周波数ｆ０が同閾値を下回る場合には倍精度演算を行わないと不具合が発生し易くなる（ワーストケース）。そして、本実施形態において、単精度演算によるフィルタ処理を行っても不具合が生じないピーク周波数ｆ０の範囲である単精度演算ゾーンと、倍精度演算を行わないと不具合が生じるピーク周波数ｆ０の範囲である倍精度演算ゾーンとの境界は、５００Ｈｚ付近にある。
【００２５】
本実施形態では、非ワーストケース／ワーストケースの判定に役立つピーク周波数ｆ０がデジタルフィルタに直接与えられることはないが、このピーク周波数ｆ０を用いて演算されたフィルタ係数ｃＥＱｘｙ（ｘ＝０〜２、ｙ＝０〜４）がデジタルフィルタに与えられる。そして、このフィルタ係数ｃＥＱｘｙ（ｘ＝０〜２、ｙ＝０〜４）の中にはピーク周波数ｆ０に大きく依存するものがある。図２は、３バンドイコライザの第ｘバンドの処理を行うＩＩＲフィルタにおいて、ピーク中心周波数ｆ０を変化させたときのフィルタ係数ｃＥＱｘｙ（ｙ＝０〜４）の変化の様子を示すものである。なお、この図には、フィルタ係数ｃＥＱｘｙ（ｙ＝０〜４）とともに、単精度演算ゾーンと倍精度演算ゾーンが示されている。
【００２６】
図２に示すように、フィルタ係数ｃＥＱｘ１およびｃＥＱｘ３はピーク周波数ｆ０に大きく依存し、フィルタ係数ｃＥＱｘ１はピーク周波数ｆ０が低くなる程、−２．０に近くなり、フィルタ係数ｃＥＱｘ３はピーク周波数ｆ０が低くなる程、２．０に近くなる。従って、適切な閾値を設け、例えばフィルタ係数ｃＥＱ１が同閾値を下回ったら倍精度演算を行い、閾値以上であれば単精度演算を行うようにすれば、倍精度演算ゾーンと単精度演算ゾーンとで適切な演算精度を選択することができることが分かる。そこで、本実施形態では、フィルタ処理制御部４０２がフィルタ係数ｃＥＱｘ１を閾値−１．９９と比較し、ｃＥＱｘ１＜−１．９９であれば倍精度演算、ｃＥＱｘ１≧−１．９９であれば単精度演算をフィルタ処理のための演算精度として選択するようにしている。
【００２７】
図３は、この場合に用いる閾値−１．９９の妥当性を示すものであり、ピーク周波数ｆ０が１０００Ｈｚ以下の範囲において、キューＱとゲインＧの各種の組み合わせについてフィルタ係数ｃＥＱｘ１を演算した場合に、フィルタ係数ｃＥＱｘ１が−１．９９を下回る回数を示したものである。図３に示すように、ピーク周波数ｆ０が６５０Ｈｚよりも高い領域では、キューＱとゲインＧをどのような組み合わせにしても、フィルタ係数ｃＥＱｘ１が−１．９９を下回ることはない。そして、フィルタ係数ｃＥＱｘ１が−１．９９を下回り始めるのは、ピークｆ０が６５０Ｈｚ以下になったときである。従って、上述のようにフィルタ係数ｃＥＱｘ１が−１．９９を下回った場合に倍精度演算を行うようにすれば、ピーク周波数ｆ０が５００Ｈｚ以下の場合に必ず倍精度演算が行われることが保証される。
【００２８】
以上説明した機能の他、フィルタ処理制御部４０２は、１サンプリング周期内において実行すべき全てのフィルタ処理が終了した場合に、次のサンプリング周期が始まるまでの期間、データパス部１００に供給するクロックφを停止させ、無駄な電力消費を回避する機能を有している。
以上が本実施形態によるデジタルフィルタの構成の詳細である。
【００２９】
次に本実施形態の動作を説明する。図４は、本実施形態におけるフィルタ処理制御部４０２の動作を示す状態遷移図である。本実施形態において、フィルタ処理制御部４０２は、各サンプリング周期において、イコライザＥＱｘ（ｘ＝０〜２）としてのフィルタ処理をデータパス部１００に実行させ、１個のオーディオサンプルｙ（ｎ）を出力させる。
【００３０】
ＤＳＰ演算アイドルステートＤＳＰＩＤＬＥは、１サンプリング周期内において実行すべき全ての処理が終了し、次のサンプリング周期が始まるまで待機しているステートである。フィルタ処理制御部４０２は、ＤＳＰ演算アイドルステートＤＳＰＩＤＬＥでは、データパス部１００に対するクロックφの供給を停止する。このＤＳＰ演算アイドルステートＤＳＰＩＤＬＥにおいて、サンプリング周期の開始を示すＦＳフラグがアサートされると、フィルタ処理制御部４０２は、係数記憶部２００内のフィルタ係数ｃＥＱ０１を参照し、ｃＥＱ０１≧−１．９９である場合にはステートを単精度演算ステートＥＱ０に遷移させ、ｃＥＱ０１＜−１．９９である場合にはステートを倍精度演算ステートＢＩＥＱ０に遷移させる。そして、データパス部１００に対するクロックφの供給を開始する。
【００３１】
単精度演算ステートＥＱ０において、フィルタ処理制御部４０２は、前掲式（１）の単精度演算をデータパス部１００に実行させ、この結果得られるイコライザＥＱ０の出力信号値ｄＥＱ１０をワークＲＡＭ１２０内の第１の演算結果格納エリアに格納させる。また、倍精度演算ステートＢＩＥＱ０では、前掲式（１３）の倍精度演算をデータパス部１００に実行させ、この結果得られるイコライザＥＱ０の出力信号値ｄＥＱ１０をワークＲＡＭ１２０内の第１の演算結果格納エリアに格納させる。
【００３２】
単精度演算ステートＥＱ０または倍精度演算ステートＢＩＥＱ０が終了すると、フィルタ処理制御部４０２は、係数記憶部２００内のフィルタ係数ｃＥＱ１１を参照し、ｃＥＱ１１≧−１．９９である場合にはステートを単精度演算ステートＥＱ１に遷移させる。そして、前掲式（２）の単精度演算によりイコライザＥＱ１の出力信号値ｄＥＱ２０をデータパス部１００に算出させ、出力信号値ｄＥＱ２０をワークＲＡＭ１２０内の第２の演算結果格納エリアに格納させる。一方、ｃＥＱ１１＜−１．９９である場合にはステートを倍精度演算ステートＢＩＥＱ１に遷移させる。そして、前掲式（１４）の倍精度演算によりイコライザＥＱ１の出力信号値ｄＥＱ２０を算出させ、出力信号値ｄＥＱ２０をワークＲＡＭ１２０内の第２の演算結果格納エリアに格納させる。
【００３３】
単精度演算ステートＥＱ１または倍精度演算ステートＢＩＥＱ１が終了すると、フィルタ処理制御部４０２は、係数記憶部２００内のフィルタ係数ｃＥＱ２１を参照し、ｃＥＱ２１≧−１．９９である場合にはステートを単精度演算ステートＥＱ２に遷移させる。そして、前掲式（３）の単精度演算によりイコライザＥＱ２の出力信号値ｄＥＱ３０をデータパス部１００に算出させ、出力信号値ｄＥＱ３０をワークＲＡＭ１２０内の第３の演算結果格納エリアに格納させる。一方、ｃＥＱ２１＜−１．９９である場合にはステートを倍精度演算ステートＢＩＥＱ２に遷移させる。そして、前掲式（１５）の倍精度演算によりイコライザＥＱ２の信号値ｄＥＱ３０を算出させ、出力信号値ｄＥＱ３０をワークＲＡＭ１２０内の第３の演算結果格納エリアに格納させる。
【００３４】
単精度演算ステートＥＱ２または倍精度演算ステートＢＩＥＱ２が終了すると、フィルタ処理制御部４０２は、ステートをフェードアウト／フェードイン演算ステートＦＡＤＥに遷移させる。そして、前掲図１０の乗算処理９３６をデータパス部１００に実行させ、オーディオサンプルｙ（ｎ）をデジタルフィルタの外部に出力させる。また、前掲図１０の遅延処理９０１〜９１２を実行させるべく、ワークＲＡＭ１２０内において例えば信号値ｄＥＱ０１を信号値ｄＥＱ０２を格納するためのエリアに移動し、信号値ｄＥＱ００を信号値ｄＥＱ０１を格納するためのエリアに移動し、……、という具合に各信号値ｄＥＱｘｙの格納エリアの変更を行う。また、ワークＲＡＭ１２０内において第１〜第３の演算結果格納エリアに格納された信号値ｄＥＱ１０、ｄＥＱ２０およびｄＥＱ３０をそれぞれの信号値のために設けられたエリアに格納する。そして、セレクタ１３２に入力オーディオサンプルｘ（ｎ）を選択させ、ワークＲＡＭ１２０内の信号値ｄＥＱ００用のエリアに格納させる。次のサンプリング周期では、このように内容の更新が行われた各格納エリアの信号値ｄＥＱｘｙが前掲式（１）〜（３）または前掲式（１３）〜（１５）の演算に用いられる。このフェードアウト／フェードイン演算ステートＦＡＤＥが終了した場合、フィルタ処理制御部４０２は、ステートをＤＳＰ演算アイドルステートＤＳＰＩＤＬＥに遷移させる。
【００３５】
さて、本実施形態では、デジタルフィルタがフィルタ処理を実行している期間においても、インタフェース３００を介して係数記憶部２００内のフィルタ係数の更新が行われ、それによりイコライザＥＱｘ（ｘ＝０〜２）のいずれかのフィルタ処理について単精度演算／倍精度演算の切り換えが発生する場合がある。この場合、フィルタ処理制御部４０２は、フェードアウト／フェードイン演算ステートＦＡＤＥにおいて、フェードアウト処理をデータパス部１００に実行させる。このフェードアウト処理は、所定数のサンプリング周期を利用して、乗算処理９３６においてイコライザＥＱ２の出力信号値ｄＥＱ３０に乗じる乗算係数ＦＡＤＥを１から徐々に減少させて０に近づける処理である。
【００３６】
このフェードアウト処理が完了し、乗算係数ＦＡＤＥが０になると、その直後のサンプリング周期においてステートがＤＳＰ演算アイドルステートＤＳＰＩＤＬＥに遷移したときに、フィルタ処理制御部４０２は、ステートをワークＲＡＭ初期化ステートＭＥＭＣＬＲに遷移させる。このワークＲＡＭ初期化ステートＭＥＭＣＬＲにおいて、フィルタ処理制御部４０２は、データパス部１００のワークＲＡＭ１２０に記憶された前掲図１０の３バンドイコライザの各ノードの信号値ｄＥＱｘｙを初期化する。この初期化が終了すると、その直後のサンプリング周期においてステートがフェードアウト／フェードイン演算ステートＦＡＤＥになったとき、フィルタ処理制御部４０２は、フェードイン処理をデータパス部１００に実行させる。このフェードイン処理は、所定数のサンプリング周期を利用して、乗算処理９３６においてイコライザＥＱ２の出力信号値ｄＥＱ３０に乗じる乗算係数ＦＡＤＥを０から徐々に増加させて１に近づける処理である。
【００３７】
このように単精度演算／倍精度演算の切り換えが発生するときには、フェードアウト処理を行ってからワークＲＡＭ１２０内の信号値を初期化し、フェードイン処理を経て、３バンドイコライザとしてのフィルタ処理を再開するようにしているので、出力オーディオサンプルｙ（ｎ）に演算精度の切り換えに伴うノイズが発生するのを防止することができる。
【００３８】
図５および図６は本実施形態の具体的動作例を示すタイムチャートである。図５に示す例では、イコライザＥＱｘ（ｘ＝０〜２）の実行条件が全てワーストケースであり、フィルタ係数ｃＥＱｘ１（ｘ＝０〜２）がいずれも−１．９９未満であるため、１サンプリング周期の間に、倍精度演算ステートＢＩＥＱ０、ＢＩＥＱ１、ＢＩＥＱ２、フェードアウト／フェードイン演算ステートＦＡＤＥおよびＤＳＰ演算アイドルステートＤＳＰＩＤＬＥが発生する。これに対し、図６に示す例では、イコライザＥＱｘ（ｘ＝０〜２）の実行条件が全て非ワーストケースであり、フィルタ係数ｃＥＱｘ１（ｘ＝０〜２）がいずれも−１．９９以上であるため、１サンプリング周期の間に、単精度演算ステートＥＱ０、ＥＱ１、ＥＱ２、フェードアウト／フェードイン演算ステートＦＡＤＥおよびＤＳＰ演算アイドルステートＤＳＰＩＤＬＥが発生する。ここで、前掲式（１）〜（３）および前掲式（１３）〜（１５）にも示されているように、単精度演算ステートＥＱｘ（ｘ＝０〜２）において行われる乗算処理の回数は、倍精度演算ステートＢＩＥＱｘ（ｘ＝０〜２）において行われる乗算処理の回数の１／２である。従って、単精度演算ステートＥＱｘ（ｘ＝０〜２）の継続時間は、倍精度演算ステートＢＩＥＱｘ（ｘ＝０〜２）の継続時間の約１／２となる。このため、図示のように、イコライザＥＱｘ（ｘ＝０〜２）の実行条件が非ワーストケースである場合（図６）は、ワーストケースである場合（図５）に比べて、データパス部１００にクロックφが供給される期間が短くなり、消費電力が低減される。
【００３９】
次に図７を参照し、フィルタ処理制御部４０２による制御の下で行われるフィルタ係数ｃＥＱと信号値ｄＥＱとの乗加算処理の態様について説明する。図７において、ｃＥＱは図１０に示す３バンドイコライザの乗算処理９２１〜９３６に用いられるフィルタ係数ｃＥＱｘｙ（ｘ＝０〜２、ｙ＝０〜４）、ｄＥＱは同乗算処理９２１〜９３６に用いられる信号値ｄＥＱｘｙ（ｘ＝０〜２、ｙ＝０〜４）を表わしている。
【００４０】
フィルタ処理制御部４０２は、単精度演算ステートＥＱｘ（ｘ＝０〜２）では、図７に示された“上位計算”の処理のみをデータパス部１００に実行させる。例えば単精度演算ステートＥＱ０において前掲式（１）の信号値ｄＥＱ１０をデータパス部１００に算出させる場合、フィルタ処理制御部４０２は、レジスタ１１３に初期値０を書き込む。次にフィルタ処理制御部４０２は、係数記憶部２００内のフィルタ係数ｃＥＸ００およびワークＲＡＭ１２０内の信号値ｄＥＱ００の上位Ｎビットをセレクタ１３１および１３２を各々介して乗算器１１１に供給させ、両者の乗算処理を行わせる。これにより乗算器１１１は、乗算結果ｃＥＱ００×ｄＥＱ００を示す２Ｎビットのデータを出力する。フィルタ処理制御部４０２は、この２Ｎビットのデータを符号拡張して２Ｎ＋Ｍビットのデータとし、加算器１１２とレジスタ１１３にその累算を行わせる。
【００４１】
次にフィルタ処理制御部４０２は、係数記憶部２００内のフィルタ係数ｃＥＸ０１およびワークＲＡＭ１２０内の信号値ｄＥＱ０１の上位Ｎビットをセレクタ１３１および１３２を各々介して乗算器１１１に供給させ、両者の乗算処理を行わせ、この乗算結果ｃＥＱ０１×ｄＥＱ０１の累算を加算器１１２とレジスタ１１３に行わせる。フィルタ処理制御部４０２は、以下同様の手順により、前掲式（１）中の各乗算処理ｃＥＱ０２×ｄＥＱ０２、ｃＥＱ０３×ｄＥＱ１０およびｃＥＱ０４×ｄＥＱ１１とその累算をデータパス部１００に行わせる。この結果、前掲式（１）の信号値ｄＥＱ１０を示す２Ｎ＋Ｍビットのデータがレジスタ１１３内に得られる。フィルタ処理制御部４０２は、この２Ｎ＋Ｍビットのデータの上位Ｎビットとオール０である下位Ｎビットとからなるデータを信号値ｄＥＱ１０としてワークＲＡＭ１２０内の第１の演算結果格納エリアに格納させる。以上、単精度演算ステートＥＱ０における乗加算処理の態様を説明したが、単精度演算ステートＥＱ１およびＥＱ２においても、同様の態様で前掲式（２）および（３）の演算処理が実行される。
以上が非ワーストケースにおいて実行されるフィルタ処理の演算の態様である。
【００４２】
一方、フィルタ処理制御部４０２は、倍精度演算ステートＢＩＥＱｘ（ｘ＝０〜２）では、信号値ｄＥＱを上位Ｎビットと下位Ｎビット（いずれも符号ビットを含む）に分け、同一の乗算器１１１に、係数ｃＥＱと信号値ｄＥＱの下位ビットとの乗算処理（図７における“下位計算”）と、係数ｃＥＱと信号値ｄＥＱの上位ビットとの乗算処理（図７における“上位計算”）を順次実行させ、乗算器１１１のビット幅Ｎに対応した演算精度の倍の演算精度で乗算処理を行う。倍精度演算ステートＢＩＥＱ０の場合を例にその動作を説明すると次の通りである。
【００４３】
まず、フィルタ処理制御部４０２は、レジスタ１１３に初期値０を書き込む。次にフィルタ処理制御部４０２は、係数記憶部２００内のＮビットのフィルタ係数ｃＥＸ００をセレクタ１３１を介して乗算器１１１に供給させる。また、フィルタ処理制御部４０２は、ワークＲＡＭ１２０内の２Ｎビットの信号値ｄＥＱ００の下位Ｎビットのデータをセレクタ１３２を介して乗算器１１１に供給させる。そして、乗算器１１１にフィルタ係数ｃＥＸ００と信号値ｄＥＱ００の下位Ｎビットとの乗算処理を行わせる。これにより乗算器１１１は、乗算結果を示す２Ｎビットのデータを出力する。次にフィルタ処理制御部４０２は、この乗算結果の符号拡張を行わせて２Ｎ＋Ｍビットの信号値を発生させ、この２Ｎ＋Ｍビットの信号値を加算器１１２およびレジスタ１１３からなる累算器に与え、その累算を行わせる。この結果、レジスタ１１３にフィルタ係数ｃＥＸ００と信号値ｄＥＱ００の下位Ｎビットとの乗算結果を示す２Ｎ＋Ｍビットのデータが格納される。そして、“上位計算”の実行前に、このレジスタ１１３内のデータをＮ−１ビットだけ下位ビット側にシフトし、元の１／２Ｎ−１倍のデータとする。
【００４４】
次に、フィルタ処理制御部４０２は、以下のように“上位計算”をデータパス部１００に実行させる。まず、フィルタ処理制御部４０２は、係数記憶部２００内のＮビットのフィルタ係数ｃＥＸ００をセレクタ１３１を介して乗算器１１１に供給させる。また、フィルタ処理制御部４０２は、ワークＲＡＭ１２０内の２Ｎビットの信号値ｄＥＱ００の上位Ｎビットのデータをセレクタ１３２を介して乗算器１１１に供給させる。そして、乗算器１１１にフィルタ係数ｃＥＸ００と信号値ｄＥＱ００の上位Ｎビットとの乗算処理を行わせる。これにより乗算器１１１は、乗算結果を示す２Ｎビットのデータを出力する。次にフィルタ処理制御部４０２は、この乗算結果の符号拡張を行わせて２Ｎ＋Ｍビットの信号値を発生させ、この２Ｎ＋Ｍビットの信号値を加算器１１２およびレジスタ１１３からなる累算器に与え、その累算を行わせる。この結果、レジスタ１１３内に、フィルタ係数ｃＥＸ００と信号値ｄＥＱ００の下位Ｎビットとの乗算結果と、フィルタ係数ｃＥＸ００と信号値ｄＥＱ００の上位Ｎビットとの乗算結果とを加算したデータ、すなわち、倍精度演算によるフィルタ係数ｃＥＸ００と信号値ｄＥＱ００との乗算結果が得られる。以下同様の態様により、前掲式（１３）に示される各乗算処理とそれらの累算処理を行わせる。そして、これによりレジスタ１１３内に得られるイコライザＥＱ０の出力信号値ｄＥＱ１０をワークＲＡＭ１２０内の第１の演算結果格納エリアに格納させる。
以上、倍精度演算ステートＢＩＥＱ０における乗加算処理の態様を説明したが、倍精度演算ステートＢＩＥＱ１およびＢＩＥＱ２においても、同様の態様で前掲式（１４）および（１５）の演算処理が実行される。
以上がワーストケースにおいて実行されるフィルタ処理の演算の態様である。
【００４５】
以上説明したように、本実施形態によれば、フィルタ係数に基づいて、デジタルフィルタの実行条件が高い演算精度を要するワーストケースであるかそうでない非ワーストケースであるかが判定され、共通の演算器１１０を用いて、ワーストケースであれば倍精度演算により、非ワーストケースであれば消費電力の少ない単精度演算によりフィルタ処理が実行される。従って、ハードウェア規模を大きくすることなく、かつ、無駄な消費電力を発生させることなく、ワーストケースでのフィルタ処理および非ワーストケースでのフィルタ処理の両方を実行することができる。また、本実施形態では、３バンドイコライザとしてのフィルタ処理がそれより小規模なイコライザＥＱｘ（ｘ＝０〜２）としての各フィルタ処理からなる場合に、小規模なフィルタ処理の各々について個別的に実行条件がワーストケースか非ワーストケースかを判定し、演算精度を選択するようにしているので、極力多くのフィルタ処理を単精度演算により行うことができ、きめ細かな節電が可能であるという利点がある。
【００４６】
＜第２実施形態＞
図８はこの発明の第２実施形態によるデジタルフィルタにおけるフィルタ係数ｃＥＱと信号値ｄＥＱとの乗加算処理の態様を示す図である。上記第１実施形態では、フィルタ係数ｃＥＱをＮビット、信号値ｄＥＱを２Ｎビットとし、フィルタ処理を倍精度演算により行う場合には、信号値ｄＥＱを上位Ｎビットと下位Ｎビットに分け、係数ｃＥＱと後者との乗算処理および係数ｃＥＱと前者との乗算処理を順次実行し、乗算結果の累算を行った。これに対し、本実施形態では、フィルタ係数ｃＥＱを２Ｎビット、信号値ｄＥＱをＮビットとし、信号値ｄＥＱとの乗算に使用するフィルタ係数ｃＥＱのビット数を切り換えることにより、単精度演算／倍精度演算の切り換えを行う。
【００４７】
フィルタ処理を単精度演算により行う場合には、図８に示す“上位計算”のみを実行する。すなわち、フィルタ係数ｃＥＱの上位Ｎビットと信号値ｄＥＱとの乗算を乗算器１１１により行い、その乗算結果を符号拡張し、加算器１１２およびレジスタ１１３からなる累算器により累算する。
【００４８】
以上の処理を前掲式（１）におけるフィルタ係数ｃＥＱｘｙと信号値ｄＥＱｘｙとの各組み合わせについて実行すると、信号値ｄＥＱ１０を示す２Ｎ＋Ｍビットのデータがレジスタ１１３内に得られる。フィルタ処理制御部４０２は、このデータの上位Ｎビットを信号値ｄＥＱ１０としてワークＲＡＭ１２０内の第１の演算結果格納エリアに格納させる。前掲式（２）および（３）に示す信号値ｄＥＱ２０およびｄＥＱ３０の算出の動作も基本的に同様である。
【００４９】
一方、フィルタ処理を倍精度演算により行う場合には、図８に示す“下位計算”および“上位計算”を順次実行する。まず、フィルタ係数ｃＥＱの下位Ｎビットと信号値ｄＥＱとの乗算を乗算器１１１により行い、その乗算結果を符号拡張し、加算器１１２およびレジスタ１１３からなる累算器により累算する。そして、“上位計算”に先立ち、レジスタ１１３内のデータをＮ−１ビットだけ下位ビット側にシフトし、元の１／２Ｎ−１のデータとする。次に、フィルタ係数ｃＥＱの上位Ｎビットと信号値ｄＥＱとの乗算を乗算器１１１により行い、その乗算結果を符号拡張し、加算器１１２およびレジスタ１１３からなる累算器により累算する。
【００５０】
以上の処理を前掲式（１）におけるフィルタ係数ｃＥＱｘｙと信号値ｄＥＱｘｙとの各組み合わせについて実行すると、信号値ｄＥＱ１０を示す２Ｎ＋Ｍビットのデータがレジスタ１１３内に得られる。フィルタ処理制御部４０２は、このデータの上位Ｎビットを信号値ｄＥＱ１０としてワークＲＡＭ１２０内の第１の演算結果格納エリアに格納させる。前掲式（２）および（３）に示す信号値ｄＥＱ２０およびｄＥＱ３０の算出の動作も基本的に同様である。
【００５１】
本実施形態においても、フィルタ処理の実行条件が非ワーストケースであるかワーストケースであるかにより単精度演算／倍精度演算の切り換えが行われるので、ハードウェアを大規模にすることなく、非ワーストケースおよびワーストケースでのフィルタ処理を実行可能であり、かつ、非ワーストケースにおいて無駄な電力消費を回避することができる。
【００５２】
＜第３実施形態＞
図９はこの発明の第３実施形態であるデジタルフィルタにおけるフィルタ処理制御部４０２（図１参照）の動作を示す状態遷移図である。上記第１実施形態では、イコライザＥＱｘ（ｘ＝０〜２）の各々について、フィルタ処理の実行条件が非ワーストケースかワーストケースかを判定し、各イコライザ毎に演算精度の選択を行った。これに対し、本実施形態では、イコライザＥＱｘ（ｘ＝０〜ｘ）の全処理に関して、一括して演算精度の切り換えを行う。
【００５３】
さらに詳述すると、フィルタ処理制御部４０２は、サンプリング周期の開始時、係数記憶部２００内のフィルタ係数ｃＥＱｘ１（ｘ＝０〜２）を参照する。そして、フィルタ係数ｃＥＱｘ１（ｘ＝０〜２）の全てが−１．９９以上である場合には、以後、ステートを単精度演算ステートＥＱ０、ＥＱ１、ＥＱ２と順次遷移させ、単精度演算によりイコライザＥＱｘ（ｘ＝０〜２）のフィルタ処理を実行させる。一方、フィルタ係数ｃＥＱｘ１（ｘ＝０〜２）の少なくとも１つが−１．９９未満である場合には、以後、ステートを倍精度演算ステートＢＩＥＱ０、ＢＩＥＱ１、ＢＩＥＱ２と順次遷移させ、倍精度演算によりイコライザＥＱｘ（ｘ＝０〜２）のフィルタ処理を実行させる。
【００５４】
本実施形態においても、ハードウェアを大規模にすることなく、非ワーストケースおよびワーストケースでのフィルタ処理を実行可能であり、かつ、非ワーストケースにおいて無駄な電力消費を回避することができる。また、本実施形態は、上記第１実施形態のようにイコライザＥＱｘ（ｘ＝０〜ｘ）の各々についての個別的な演算精度の切り換えを行うものではないので、きめ細かな節電を行うことはできないが、第１実施形態と比べて制御が簡単であるという利点がある。
【００５５】
＜他の実施形態＞
以上、この発明の各実施形態について説明したが、この発明にはこれ以外にも他の実施形態があり得る。例えば次の通りである。
【００５６】
（１）上記実施形態では、フィルタ処理の実行条件を非ワーストケースとワーストケースの２段階に分け、実行条件がいずれに属するかにより単精度演算または倍精度演算を選択するようにした。しかし、フィルタ処理の実行条件を３段階以上に分け、実行条件が厳しくなるに従い、２倍精度演算、３倍精度演算、……という具合に、演算精度を高めるようにしてもよい。
【００５７】
（２）上記実施形態では、フィルタ処理の実行条件を示すパラメータとしてフィルタ係数を用いたが、デジタルフィルタがフィルタ処理のピーク周波数ｆ０、ゲインＧ、キューＱ等を外部から取得可能である場合には、それらのパラメータに基づいてフィルタ処理の実行条件（非ワーストケース／ワーストケースの別）を判定し、演算精度を選択するようにしてもよい。
【００５８】
（３）デジタルフィルタに外部からの操作により設定可能な自動モードとマニュアルモードとを設け、マニュアルモードでは、例えばインタフェース３００を経由したコマンドの入力等に応じて、イコライザＥＱｘ（ｘ＝０〜２）の各々のための演算精度の切り換え制御を行い、自動モードでは、上記第１実施形態のようにフィルタ処理の実行条件を示すパラメータ（上記第１実施形態ではフィルタ係数）に基づいて演算精度の切り換え制御を行うようにしてもよい。
【図面の簡単な説明】
【００５９】
【図１】この発明の第１実施形態であるデジタルフィルタの構成を示すブロック図である。
【図２】同実施形態が取り扱うイコライザのピーク周波数とフィルタ係数との関係を示す図である。
【図３】同実施形態においてフィルタ処理の実行条件が非ワーストケースであるかワーストケースであるかを判断するためのフィルタ係数の閾値の妥当性を示す図である。
【図４】同実施形態におけるフィルタ処理制御部の動作を示す状態遷移図である。
【図５】同実施形態の動作例を示すタイムチャートである。
【図６】同実施形態の他の動作例を示すタイムチャートである。
【図７】同実施形態におけるフィルタ係数と信号値との乗加算処理の態様を示す図である。
【図８】この発明の第２実施形態によるデジタルフィルタにおいて行われるフィルタ係数と信号値との乗加算処理の態様を示す図である。
【図９】この発明の第３実施形態によるデジタルフィルタのフィルタ処理制御部の動作を示す状態遷移図である。
【図１０】３バイドイコライザとして動作するデジタルフィルタの機能構成を示すブロック図である。
【図１１】同３バンドイコライザにおける１つのイコライザのフィルタ特性を模式的に示した図である。
【符号の説明】
【００６０】
１００……データパス部、２００……係数記憶部、３００……インタフェース、４００……制御部、４０１……係数書き換え制御部、４０２……フィルタ処理制御部、１１０……演算器、１１１……乗算器、１１２……加算器、１１３……レジスタ、１３１，１３２……セレクタ。
【図１】
2008085923.tif 000003
【図２】
2008085923.tif 000004
【図３】
2008085923.tif 000005
【図４】
2008085923.tif 000006
【図５】
2008085923.tif 000007
【図６】
2008085923.tif 000008
【図７】
2008085923.tif 000009
【図８】
2008085923.tif 000010
【図９】
2008085923.tif 000011
【図１０】
2008085923.tif 000012
【図１１】
2008085923.tif 000013