(57)【要約】有限インパルス応答フィルタは、個別の成分のランニングサムフィルタの和として実装される。所望のフィルタ応答に必要なすべての成分ナイタの合計は、累算器内で計算され、更新期間のみが成分フィルタごとに計算される。所望のインパルス応答は、高さが等しい矩形インパルス応答の和に分解され、前記矩形インパルス応答は、それぞれ、減算および加算を必要とするランニングサムとして実施される。サンプリングクロックの倍数で動作する回路を利用することで、複数のランニングサムを同一のハードウェア上で実施することができる。任意のインパルス応答形状および長さｍａの全体フィルタは、メモリおよび２つの演算装置を利用して実装される。２つ以上のこのようなフィルタをカスケード接続して、所望の周波数特性のより優れた近似化を行うことができる。本発明は、チップ資源および製造コストを節約する。
2010512124.tif 000002
【特許請求の範囲】
【請求項１】
所望のインパルス応答を利用して信号をフィルタリングする方法であって、
前記所望のインパルス応答を複数の個別の矩形成分インパルス応答に分解し、
前記複数の矩形成分インパルス応答のそれぞれに前記信号を入力し、
前記複数の矩形成分インパルス応答のそれぞれを、入力信号と共に畳み込み、
複数の畳み込みの和を求めること、
を含み、
前記和は、前記入力信号に対する前記所望のインパルス応答の応答である、
ことを特徴とする方法。
【請求項２】
前記畳み込みは、ランニングサムを利用することを更に含む、請求項１に記載の方法。
【請求項３】
前記分解は、
前記所望のインパルス応答に対応する周波数応答を計算し、
成分矩形インパルス応答の数量を指定し、
前記所望のインパルス応答を候補応答に分解し、前記候補応答は、前記数量の成分矩形インパルス応答を含み、その各成分矩形インパルス応答は、正または負いずれかの振幅を持つと共に、合算されたときに、前記所望のインパルス応答を近似化するものであり、
前記候補応答インパルス応答を繰り返し改良することを更に含み、
前記繰り返し改良することは、
ａ）前記候補応答に対応する周波数応答を計算し、
ｂ）前記候補の周波数応答と、前記所望の周波数応答とを比較し、前記候補の周波数応答が、所定の範囲内にある場合に、その候補応答を利用し、前記候補の周波数応答が所定の範囲内にない場合に、１つ以上の前記候補応答の成分矩形インパルス応答の長さを調整し、
ａ）およびｂ）のステップを繰り返すことを含む、請求項２に記載の方法。
【請求項４】
所望のインパルス応答を成分矩形インパルス応答に分解する方法であって、
前記所望のインパルス応答に対応する周波数応答を計算し、
成分矩形インパルス応答の数量を指定し、
前記所望のインパルス応答を候補応答に分解することを含み、前記候補応答は、前記数量の成分矩形インパルス応答を含み、その各成分矩形インパルス応答は、正または負いずれかの振幅を持つと共に、合算されたときに、前記所望のインパルス応答を近似化するものである、方法。
【請求項５】
前記候補のインパルス応答を改良することを更に含み、改良することは、
前記候補応答に対応する周波数応答を計算し、
前記候補の周波数応答と、前記所望の周波数応答とを比較し、前記候補の周波数応答が所定の範囲内にない場合に、１つ以上の前記候補応答の成分矩形インパルス応答の長さを調整して、後続の候補応答として構成し、前記候補の周波数応答が前記所定の範囲内にある場合、その候補の応答を利用することを含む、請求項４に記載の方法。
【請求項６】
後続の候補応答に対応する周波数応答を計算し、
前記後続の周波数応答と、前記所望の周波数応答とを比較し、前記後続の候補の周波数応答が、前記所定の範囲内にない場合に、１つ以上の前記後続の候補応答の成分矩形インパルス応答の長さを調整して、他の後続の候補応答として構成することを更に含む、請求項５に記載の方法。
【請求項７】
候補の応答を改良することは、候補の周波数応答が、収束しているのか、または発散しているかを観察することを更に含む、請求項６に記載の方法。
【請求項８】
候補の周波数応答が収束している場合に、前記改良することを継続して行う、請求項７に記載の方法。
【請求項９】
候補の周波数応答が発散している場合に、先に取得した後続の候補応答が利用される、請求項８に記載の方法。
【請求項１０】
前記所望のインパルス応答は所定の長さを持つ、請求項９に記載の方法。
【請求項１１】
各成分矩形インパルス応答は１の絶対量を持つ、請求項１０に記載の方法。
【請求項１２】
信号サンプルを入力するフィルタ入力と、
フィルタ処理されたサンプル信号を出力するフィルタ出力と、
前記フィルタ入力に連結されて、矩形インパルス応答に先行するサンプル数に対応する数のサンプルを遅延させる第１遅延部と、
前記第１遅延部の出力に連結されて、前記矩形インパルス応答を表すサンプル数に対応する数のサンプルを遅延させる第２遅延部と、
前記第１遅延部の前記出力および前記第２遅延部の出力に連結されて、受信信号サンプルと、前記矩形インパルス応答に対応する分量だけ時間シフトされた信号サンプルとの間の差異を取得する減算器と、
前記減算器の出力に連結されて、差異サンプルのランニングサムを、フィルタ出力として保持する累算器入力と、を含むデジタルフィルタ。
【請求項１３】
前記累算器は、
前記累算器入力として第１入力を有する加算器／減算器と、
前記加算器／減算器の出力に連結された入力、ならびに前記加算器／減算器の第２入力および前記フィルタ出力に連結された出力を有するレジスタとを更に含み、前記レジスタは前記ランニングサムを保持する、請求項１２に記載のフィルタ。
【請求項１４】
前記入力信号サンプルを、前記矩形インパルス応答と共に畳み込むことを更に含む、請求項１３に記載のフィルタ。
【請求項１５】
前記フィルタのクロックレートは、前記受信信号のサンプルレートと同一である、請求項１４に記載のフィルタ。
【請求項１６】
前記第１遅延部によって遅延されるサンプルの数はゼロである、請求項１５に記載のフィルタ。
【請求項１７】
信号サンプルを入力するフィルタ入力と、
フィルタ処理されたサンプル信号を出力するフィルタ出力と、
１つの矩形インパルス応答、前記フィルタ入力に連結された成分デジタルフィルタ入力、および成分デジタルフィルタ出力をそれぞれが有する複数の成分デジタルフィルタと、
前記複数の成分デジタルフィルタの出力に連結されたアナログ加算器と、を含むデジタルフィルタであって、
前記複数の成分デジタルフィルタのインパルス応答は、前記入力された信号が、前記インパルス応答と共に畳み込まれるように互いに時間整合され、アナログ加算器内で合算されて、フィルタ出力として出力される、デジタルフィルタ。
【請求項１８】
各デジタル成分フィルタは、更に、
前記成分デジタルフィルタ入力に連結されて、矩形インパルス応答に先行するサンプル数に対応する数のサンプルを遅延させる第１遅延部と、
前記第１遅延部の出力に連結されて、前記矩形インパルス応答に対応する数のサンプルを遅延させる第２遅延部と、
前記第１遅延部の出力および前記第２遅延部の出力に連結されて、受信信号サンプルと、前記矩形インパルス応答に対応する分量だけ時間シフトされた信号サンプルとの間の差異を取得する減算器と、
前記減算器の出力に連結されて、前記差異サンプルのランニングサムをフィルタ出力として保持する累算器入力とを含む、請求項１７に記載のフィルタ。
【請求項１９】
前記累算器は、
前記累算器入力として第１入力を有する加算器／減算器と、
前記加算器／減算器の出力に連結された入力、ならびに前記加算器／減算器の第２入力およびフィルタ出力に連結された出力を有するレジスタとを更に含み、前記レジスタは前記ランニングサムを保持する、請求項１８に記載のフィルタ。
【請求項２０】
前記入力信号サンプルを、前記矩形インパルス応答と共に畳み込むことを更に含む、請求項１９に記載のフィルタ。
【請求項２１】
前記フィルタのクロックレートは、前記受信信号のサンプルレートと同一である、請求項２０に記載のフィルタ。
【請求項２２】
信号サンプルを入力するフィルタ入力と、
フィルタ処理されたサンプル信号を出力するフィルタ出力と、
前記フィルタ入力に連結されて、待ち行列として機能するバッファと、
前記バッファの第１データ出力に連結された入力を有するレジスタと、
前記レジスタの出力に連結されたマイナス入力および前記バッファの第２データ出力に連結されたプラス入力とを有し、前記バッファから出力される、複数のタイムシフトされた信号サンプルと第２の複数のタイムシフトされた信号サンプルとの差異を取得する減算器であって、前記バッファから出力される前記第１および第２の複数のタイムシフトされたサンプルの各サンプルペアは、受信データサンプルが、時間に関して、前記複数の矩形インパルス応答のそれぞれと共に畳み込まれる矩形インパルス応答を表す、減算器と、
前記減算器の出力に連結されて、前記複数の差異のランニングサムを保持する累算器入力および前記フィルタ出力に連結された出力と、
前記バッファおよび累算器に連結された制御装置であって、前記バッファを介して、次の受信信号サンプルの書き込み先のアドレスと、既に書き込まれている信号サンプルの読み出し元のアドレスとを巡回させるように構成され、前記ランニングサムに対して差異を加算するのか、または減算するのかを制御する制御装置と、を含むデジタルフィルタ。
【請求項２３】
前記累算器は、
前記累算器入力として第１入力を有する加算器／減算器と、
前記加算器／減算器の出力に連結された入力、ならびに前記加算器／減算器の第２入力およびフィルタ出力に連結された出力を有するレジスタとを更に含む、請求項２２に記載のフィルタ。
【請求項２４】
前記フィルタのクロックレートは、前記フィルタ入力信号のサンプルレートで乗算される、前記フィルタによって採用される矩形インパルス応答の数によって決定される、請求項２３に記載のフィルタ。
【請求項２５】
前記フィルタ入力信号サンプルおよびフィルタ処理された出力信号サンプルは、同期されて、同一のクロックレートである、請求項２４に記載のフィルタ。
【請求項２６】
前記バッファは循環バッファである、請求項２５に記載のフィルタ。
【請求項２７】
信号サンプルを入力するフィルタ入力と、
フィルタ処理されたサンプル信号を出力するフィルタ出力と、
前記フィルタ入力に連結されて、待ち行列として機能するバッファと、
前記バッファの第１データ出力に連結された入力を有するレジスタと、
前記レジスタの出力に連結されたマイナス入力および前記バッファの第２データ出力に連結されたプラス入力を有し、前記バッファから出力される、複数のタイムシフトされた信号サンプルと、第２の複数のタイムシフトされた信号サンプルとの差異を取得する減算器であって、前記バッファから出力される前記第１および第２の複数のタイムシフトされた信号サンプルの各サンプルペアは、受信データサンプルが、時間に関して、複数の矩形インパルス応答のそれぞれと共に畳み込まれる矩形インパルス応答を表す、減算器と、
前記減算器の出力に連結された入力および係数記憶装置に連結された係数入力を有する乗算器であって、前記減算器から出力される差異を用いて、所定の係数を乗算して変倍差異として形成するように構成された乗算器と、
前記乗算器の出力に連結されて、複数の差異のランニングサムを保持する累算器入力、および前記フィルタ出力に連結された出力と、
前記バッファおよび累算器に連結された制御装置であって、前記バッファを介して、次の受信信号サンプルの書き込み先であるアドレスと、既に入力されている信号サンプルの読み出し元であるアドレスとを巡回させるように構成され、前記ランニングサムに対して差異を加算するのか、または減算するのかを制御すると共に、差異をスケーリングする必要がある場合に、差異で乗算する係数を前記係数記憶装置から選択する制御装置と、を含むデジタルフィルタ。
【請求項２８】
前記累算器は、
前記累算器入力として第１入力を有する加算器／減算器と、
前記加算器／減算器の出力に連結された入力、ならびに前記加算器／減算器の第２入力およびフィルタ出力に連結された出力を有するレジスタとを更に含む、請求項２７に記載のフィルタ。
【請求項２９】
前記フィルタのクロックレートは、前記フィルタ入力信号のサンプルレートによって乗算される、前記フィルタによって採用される矩形インパルス応答の数によって決定される、請求項２８に記載のフィルタ。
【請求項３０】
前記フィルタ入力の信号サンプルおよびフィルタ処理された出力信号サンプルは、同期されて、同一のクロックレートである、請求項２９に記載のフィルタ。
【請求項３１】
前記バッファは循環バッファである、請求項３０に記載のフィルタ。
【請求項３２】
信号サンプルを入力するフィルタ入力と、
フィルタ処理されたサンプル信号を出力するフィルタ出力と、
前記フィルタ入力に連結されて、待ち行列として機能するバッファと、
前記バッファの第１データ出力に連結された入力を有するレジスタと、
前記レジスタの出力に連結されたマイナス入力と、前記バッファの第２データ出力に連結されたプラス入力とを有し、前記バッファから出力される、複数のタイムシフトされた信号サンプルと、第２の複数のタイムシフトされた信号サンプルとの差異を取得する減算器であって、前記バッファから出力される前記第１および第２の複数のタイムシフトされたサンプルの各サンプルペアは、受信データサンプルが、時間に関して、前記複数の矩形インパルス応答のそれぞれと共に畳み込まれる矩形インパルス応答を表す減算器と、
前記減算器の出力に連結された入力を有するマルチプレクサであって、前記減算器によって出力された差異を、２の所定の累乗でシフトして、変倍差異として形成するように構成されるマルチプレクサと、
前記マルチプレクサの出力に連結されて、前記複数の差異のランニングサムを保持する累算器入力および前記フィルタ出力に連結された出力と、
前記バッファおよび累算器に連結された制御装置であって、前記バッファを介して、次の受信信号サンプルの書き込み先のアドレスと、既に書き込まれている信号サンプルの読み出し元のアドレスとを巡回させるように構成され、前記ランニングサムに対して差異を加算するのか、または減算するのかを制御すると共に、差異をスケーリングする必要がある場合に、差異で乗算する２のべき数を前記マルチプレクサから選択する制御装置と、を含むデジタルフィルタ。
【請求項３３】
前記累算器は、
前記累算器入力として第１入力を有する加算器／減算器と、
前記加算器／減算器の出力に連結された入力、ならびに前記加算器／減算器の第２入力およびフィルタ出力に連結された出力を有するレジスタとを更に含む、請求項３２に記載のフィルタ。
【請求項３４】
前記フィルタのクロックレートは、前記フィルタ入力信号のサンプルレートによって乗算される、前記フィルタによって採用される矩形インパルス応答の数によって決定される、請求項３３に記載のフィルタ。
【請求項３５】
前記フィルタの入力信号サンプルおよびフィルタ処理された出力信号サンプルは、同期されて、同一のクロックレートである、請求項３４に記載のフィルタ。
【請求項３６】
前記バッファは循環バッファである、請求項３５に記載のフィルタ。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、概して、デジタル信号処理の分野に関する。より具体的には、本発明の実施形態は、乗算器を利用しない有限インパルス応答フィルタを実装する方法およびシステムに関する。
【背景技術】
【０００２】
フィルタリングは、デジタル信号処理においてもっとも頻繁に利用される演算の１つである。フィルタリングの１つの方法は、有限インパルス応答（ＦＩＲ）フィルタを利用することである。このタイプのフィルタにおいて、入力信号は、周波数応答出力の特性を決定する、有限期間のインパルス応答と共に畳み込まれる。ＦＩＲは、通常、抽出されたデータシステム内で利用されるため、信号およびインパルス応答は、時間および振幅について量子化されて離散サンプルを生成する。所望のインパルス応答を含むこの離散サンプルは、ＦＩＲフィルタ係数である。
【０００３】
各出力サンプルについてのＦＩＲフィルタ計算は２ステップの工程である。いくつかの入力信号サンプルは、対応する数の係数値で乗算される（各ペアの値が掛け合わされる）。その後、すべての積が合算される。係数の数および値は、所望の周波数応答に相当する。インパルス応答が長くなればなるほど、より多くのフィルタ係数ひいてはより多くの乗算が必要になる。
【０００４】
ＦＩＲフィルタの欠点の１つは、各出力サンプルに必要な演算の複雑さである。たとえば、各出力サンプルについて、Ｎ回の乗累算（ＭＡＣ）演算を実行する必要がある。１００係数フィルタは、各出力サンプルにつき１００回の乗算および１００回の加算を必要とする。
【０００５】
デジタル信号処理（ＤＳＰ）集積回路は、特化された計算エンジンであり、非常に大量の乗算および加算を行いながら、タップからタップへとサンプルデータを同時に移動するように設計されている。計算効率を向上させる方法は多く存在するにも関わらず、所望のフィルタ応答とタップ数のいずれかの間で妥協することも珍しくない。減衰、平坦な応答、通過帯域および減衰領域内のリップル、遷移帯域などの間にトレードオフが存在する。他の妥協事項は、計算精度に関連がある。係数および入力信号サンプルの両方に利用できるビット数がフィルタ品質に影響を与える。フィルタの設計者は、前述したすべての要因を考慮しなければならない。
【０００６】
集積回路の製造において、乗算器を実装するために必要とされる費用およびチップ領域の大きさを低減する進歩が達成されているにも関わらず、乗算器は、加算器などの他の算術演算器と比べ、依然として比較的高価なままである。この費用は、論理ゲートの数に直接関連する。２進加算器は、２進乗算器よりもコストは低いが、同時にその用途も限定されてしまう。フィルタ設計者の目標が、多重チャンネル設計を行うときのコストを抑え、かつＩＣ資源を節約することであれば、乗算器を最小限に減らす、すなわち排除するフィルタリングアーキテクチャおよび方法を探すことが望ましい。
【０００７】
フィルタの実装に利用される乗算器の数を削減する方法が存在する。たとえば、フィルタ係数インパルス応答の対称性の活用である。ただし、削減されるのは、通常、２分の１だけであり、この削減は、多くの用途において不十分である。２の累乗である係数、または若干数の２の累乗の和を選択することによって、乗算器を単純化する方法も知られている。このタイプのフィルタは、通常、周波数応答を改善するための２つ目のフィルタを必要とするため、この場合の単純化も、やはり不十分である。計算において乗算器の数を低減する方法の多くは、不十分にしか機能せず、その柔軟性は限定的である。
【０００８】
超音波装置のフロントエンドでの入力信号のフィルタリングなど、コストおよびチップ資源が考慮すべき事項である用途に関して、性能および柔軟性が改善された低コストのＦＩＲフィルタが求められている。
【発明の概要】
【発明が解決しようとする課題】
【０００９】
乗算器を利用せずにＦＩＲフィルタを実装する各種の方法およびシステムが存在するが、このような方法およびシステムは完全に満足できるものではない。本発明者は、個別成分のランニングサムフィルタの和として、有限インパルス応答フィルタを実装する方法およびシステムを発見した。所望のフィルタ応答に必要なすべての成分フィルタの和は、累算器において計算され、新しいサンプルと破棄された古いサンプルとの差である、成分フィルタの更新期間のみが、成分フィルタごとに計算される。本発明は、チップ資源および製造コストを大幅に節約する。
【００１０】
所望のインパルス応答は、高さが等しい矩形インパルス応答の和に分解され、この各インパルス応答は、減算および加算を必要とするランニングサムとして実施される。サンプリングクロックの倍数で動作する回路を利用することで、同一のハードウェア上で複数のランニングサムを実施できる。任意のインパルス応答形状および長さを持つ全体フィルタは、メモリおよび２つの演算装置を利用して実装することができる。２つ以上のこのようなフィルタをカスケード接続して、所望の周波数特性のより適切な近似値を得ることができる。
【課題を解決するための手段】
【００１１】
本発明の一態様は、所望のインパルス応答を利用して信号をフィルタリングする方法を提供する。本発明のこの態様に係る方法は、好ましくは、所望のインパルス応答を複数の個別の矩形成分インパルス応答に分解することから始まり、この複数の矩形成分インパルス応答それぞれに信号を入力し、前記複数の矩形成分インパルス応答のそれぞれを入力信号と共に畳み込み、複数の畳み込みの和を求めるものであり、この和が、入力信号に対する所望のインパルス応答の応答である。
【００１２】
本方法の他の態様において、畳み込みは、ランニングサムを利用することを含む。
【００１３】
本方法の更に他の態様において、分解することは、所望のインパルス応答に対応する周波数応答を計算し、成分矩形インパルス応答の数量を指定し、所望のインパルス応答を候補応答に分解することを含み、前記候補応答は、前記数量の成分矩形インパルス応答を含み、この各成分矩形インパルス応答は、正または負いずれかの振幅を持ち、合算されたときに所望のインパルス応答を近似化するものである。また、前記分解することは、候補応答を繰り返し改良することを含み、繰り返し改良することは、ａ）前記候補応答に対応する周波数応答を計算し、ｂ）前記候補の周波数応答と、所望の周波数応答とを比較し、前記候補の周波数応答が所定の範囲内にある場合は、その候補応答を利用する一方で、前記候補の周波数応答が所定の範囲内にない場合は、１つ以上の候補応答の成分矩形インパルス応答の長さを調整し、ａ）およびｂ）のステップを繰り返すことを含む。
【００１４】
本発明の他の態様は、デジタルフィルタである。本発明のこの態様に係るデジタルフィルタは、信号サンプルを入力するフィルタ入力と、フィルタ処理されたサンプル信号を出力するフィルタ出力と、前記フィルタ入力に連結されて、矩形インパルス応答に先行するサンプル数に対応する数のサンプルを遅延させる第１遅延部と、前記第１遅延部の出力に連結されて、矩形インパルス応答を表すサンプル数に対応する数のサンプルを遅延させる第２遅延部と、前記第１遅延部の出力および前記第２遅延部の出力に連結されて、受信信号サンプルと、矩形インパルス応答に対応する大きさだけ時間シフトされた信号サンプルとの差異を取得する減算器と、前記減算器の出力に連結されて、前記差異サンプルのランニングサムをフィルタ出力として保持する累算器入力と、を含む。
【００１５】
本発明の更に他の態様は、デジタルフィルタであり、このデジタルフィルタは、信号サンプルを入力するフィルタ入力と、フィルタ処理されたサンプル信号を出力するフィルタ出力と、前記フィルタ入力に連結されて、待ち行列として機能するバッファと、前記バッファの第１データ出力に連結された入力を持つレジスタと、前記レジスタの出力に連結されたマイナス入力および前記バッファの第２データ出力に連結されたプラス入力を有し、前記バッファから出力される、複数の時間シフトされた信号サンプルと第２の複数の時間シフトされた信号サンプルとの差異を取得する減算器であって、前記バッファから出力される第１および第２の複数の時間シフトされたサンプルの各サンプルペアは、受信データサンプルが、時間に関して、複数の矩形インパルス応答それぞれと共に畳み込まれる矩形インパルス応答を表す減算器と、前記減算器の出力に連結されて、複数の差異のランニングサムを保持する累積器入力および前記フィルタ出力に連結された出力と、前記バッファおよび累積器に連結されたコントローラとを含み、前記コントローラは、前記バッファを介して、次の受信信号サンプルの書き込み先であるアドレスと、既に書き込まれている信号サンプルの読み出し元であるアドレスとを巡回させるように構成されて、前記ランニングサムに対して、差異を加算するのか、または減算するのかを制御する。
【００１６】
本発明の１つ以上の実施形態の詳細は、添付の図面および下記の説明に記載される。本発明の他の特徴、目的、および利点は、下記の説明および図面、ならびに請求項から明らかになるであろう。
【図面の簡単な説明】
【００１７】
【図１】フィルタインパルス応答の例示的グラフを示す図である。
【図２Ａ】図１に示したフィルタインパルス応答を、成分インパルス応答ｈ１，ｈ２，ｈ３、およびｈ４に分解する例示的分解処理を示す図である。
【図２Ｂ】図１に示したフィルタインパルス応答を、成分インパルス応答ｈ１，ｈ２，ｈ３、およびｈ４に分解する例示的分解処理を示す図である。
【図２Ｃ】図１に示したフィルタインパルス応答を、成分インパルス応答ｈ１，ｈ２，ｈ３、およびｈ４に分解する例示的分解処理を示す図である。
【図３】インパルス応答の分解方法を例示するブロック図である。
【図４】成分矩形フィルタの和として実装されるフィルタの例示的システムブロック図である。
【図５】矩形インパルス応答のランニングサムフィルタの例示的システムブロック図である。
【図６】時分割される複数の矩形インパルス応答フィルタを利用するＦＩＲフィルタの例示的システムブロック図である。
【図７】図６に示すフィルタの代替の構成である、スケーリング乗算器を含む例示的実施形態を示す図である。
【図８】図６に示すフィルタの代替の構成である、スケーリングマルチプレクサを含む例示的実施形態を示す図である。
【発明を実施するための形態】
【００１８】
本発明の実施形態について添付の図面を参照しながら説明する。図面において、同様の番号は、各図をとおして同様の要素を示す。また、本明細書で用いる表現または用語は、説明のためのものであり、限定するものと見なされるべきでないことは理解されるであろう。本明細書における「包含する」、「含む」、「有する」、およびこれらの変化形の使用は、後に列挙された項目およびその等価物を、追加の項目と共に含むことを意味する。「搭載」、「接続」、および「連結」の用語は、幅広い意味で用いられ、直接および間接の両方の方式で搭載すること、接続すること、ならびに連結することを含む。また、「接続」および「連結」は、物理的もしくは機械的な接続または連結に限定されるものではない。
【００１９】
また、一部の構成要素および項目は、この分野での一般的な慣例となっているように、ハードウェア要素であるかのように説明および記載されることも理解されたい。ただし、当業者であれば、下記の詳細な説明を読むことによって、少なくとも１つの実施形態において、本方法およびシステムの構成要素は、ソフトウェアまたはハードウェアにおいて実施されてよいことは理解されるであろう。
【００２０】
本発明の実施形態は、乗算器を必要としないＦＩＲフィルタ構造を実現する方法およびシステムを提供する。
【００２１】
前置きとして、ｓ［ｎ］が、０からＮ−１までのＮ個のサンプルを有する離散時間においてサンプリングされた入力信号であり、ｈ［ｎ］が、ＦＩＲフィルタ係数（インパルス応答）を規定する０からＭ−１個のサンプルを有するＭサンプル信号である場合、この２つの畳み込み０［ｎ］は、０からＮ＋Ｍ−２までのＮ＋Ｍ−１サンプル信号であり、次式によって得られる。
【００２２】
【数１】
2010512124.tif 000003
【００２３】
上式は畳み込み和を定義するものである。
【００２４】
図１は、例示的な所望のフィルタインパルス応答、すなわちフィルタカーネルを示す図で、この図は、中央部を基準に対称であり、正の中央ローブと、振幅が小さい側方ローブとを含む。１組の負の側方ローブのみが図示されている。図２Ａに示すように、インパルス応答は、下記の式によって得られる、正および負の矩形成分の和によって近似化することができる。
【００２５】
【数２】
2010512124.tif 000004
【００２６】
上式において、ｉ＝１，２，３，・・・，Ｉである。矩形成分Ｉの数は４（ｈ１，ｈ２，ｈ３、およびｈ４）に等しいが、１以上の任意の値であってよい。所望のフィルタインパルス応答は、対称である必要はない。
【００２７】
各矩形成分カーネルｈ１，ｈ２，ｈ３，ｈ４は、不連続な数の±非ゼロ係数（またはサンプル）によって定義される。ゼロの値は、適切な時間的整合のために、非ゼロの係数の数がより多い成分カーネルの期間を等しくするように、矩形応答の片側に追加される。たとえば、図２Ｂに示される矩形フィルタ成分ｈ１は、２２個の非ゼロの負（−１）の係数を含む。適切な時間的整合のために、図２Ｃに示す矩形フィルタ成分ｈ２は、１０個の正（＋１）の係数を含み、その１０個の正の係数の前に６個のゼロ係数を持たなければならない。したがって、図２Ａに示した矩形フィルタ成分ｈ３は、８個の正の係数を含み、その非ゼロの振幅の前に配置される７個のゼロ係数を持たなければならない。矩形フィルタ成分ｈ４は、６個の正の係数を含み、その非ゼロの振幅の前に配置される８個のゼロ係数を持たなければならない。
【００２８】
成分フィルタｈ１，ｈ２，ｈ３，ｈ４は、±１いずれかの振幅を持ち、乗算器を必要としない。他の成分フィルタの振幅を利用することで、より良好な近似化および精度が得られる。ただし、演算がより複雑になる。正確な振幅は、各成分フィルタの振幅をスケーリングするための乗算器および係数記憶装置を必要とする。おおよそのスケーリングは、２の累乗（２ｘ、ｘ＝０，１，２，・・・）を利用したスケーリングマルチプレクサを用いて実行することができる。次に、本発明のこの態様について説明する。
【００２９】
成分インパルス応答を組み合わせて単一のインパルス応答を形成するため、各成分インパルス応答は、同一の期間（係数の数）および同一の単位元等級を持つが、非ゼロ係数の符号は異なる。非ゼロ係数の数および位置は、前述したように、成分ごとに異なっていてよい。
【００３０】
所望のフィルタインパルス応答またはカーネルを成分矩形フィルタに分解することは、実装費用と、演算効率と、所望のフィルタ周波数応答の精度との関係を最適化することである。インパルス応答の近似化に用いた（２）において、矩形フィルタ成分の数ｉが大きくなると、実装費用も増加する。逆に、利用する矩形成分が少なくなると、インパルス応答の近似化の質が低下し、ひいては対応する周波数応答の質も低下する。
【００３１】
本発明は、図３に示すように、所望のフィルタ周波数応答を用いて開始するインパルス分解方法を実行する。フィルタ周波数応答は、量子化されたインパルス応答およびフィルタ係数が同一であるインパルス応答によって決定される。この設計は、所望の周波数応答からインパルス応答を特定し、次に、そのインパルス応答を量子化してフィルタ係数を生成することから成る。
【００３２】
ユーザ、すなわち設計者は、停止、通過帯域、および阻止帯域の減衰量（ｄＢ）を指定し（ステップ３０５）、インパルス応答の最大数などのハードウェア制約を指定し（ステップ３１０）、所望のフィルタの最大カーネル長（係数の数）を指定する（ステップ３１５）。所望の周波数応答およびフィルタ係数の数が決まったら、特にフィルタインパルス応答を計算するために設計されたソフトウェアを利用して、プロトタイプのインパルス応答を設計することができる（ステップ３２０）。このインパルス応答は、複雑な最適化プロセスを実行するソフトウェアを利用して導き出される。幅広く利用されるプログラムの１つである、マスワークス（Ｔｈｅ  ＭａｔｈＷｏｒｋｓ）社のＭＡＴＬＡＢを利用してもよい。算出されたインパルス応答を取得した後、そのインパルス応答は、図２に示すように、成分矩形インパルス応答にグラフ的に分解することができ（ステップ３２５）、これにより第１候補の分解が得られる。
【００３３】
分解は、一意ではなく、第１の候補（ステップ３２５）は満足できる結果をもたらさないこともある。分解の後、反復プロセスを利用して、候補のインパルス応答の分解に対応する周波数応答を計算し（ステップ３３０）、最初の周波数応答仕様と比較する（ステップ３５５）ことができる。
【００３４】
周波数の比較結果が満足できるものでない場合（ステップ３４０）、成分構造の反復を実行することができる。分解は、矩形成分インパルス応答の幅を若干量だけ変化させて、新しい候補を生成し、その候補の周波数応答を計算して（ステップ３３０）、最初の周波数応答仕様と比較すること（ステップ３３５）によって修正される。比較結果が許容できるものである場合（ステップ３４０）は、その候補の応答が利用される（ステップ３５５）。
【００３５】
多くのフィルタ周波数応答の仕様について、導出された最大インパルス応答の長さおよび成分インパルス応答の数が小さい場合は、比較的少ない回数の反復後に、処理が収束する（ステップ３４５，３６０）。これ以上の反復は、より良い結果をもたらすとは限らず、最適な応答から外れる可能性がある。
【００３６】
最終結果が依然として満足できるものでない場合（ステップ３４０，３４５）、同一または異なる矩形成分を利用する２つ以上のランニングサムＦＩＲフィルタを、一緒にカスケード接続して、次式のように構成してもよい。
【００３７】
【数３】
2010512124.tif 000005
【００３８】
カスケード接続された各フィルタは、前述したように設計することができ、同様の反復処理によって更に改良することができるが、この場合、カスケード接続されたＦＩＲフィルタの周波数応答は、各反復の後で計算されて（ステップ３３０）、最初の仕様と比較される点が異なる。最適化方法により、通常、２つのカスケード接続されたフィルタが得られ、この各フィルタは、周波数特性の阻止帯域内の最小値および最大値の位置が異なり、一方のフィルタの阻止帯域最小値が、他方の阻止帯域最大値を補償するように構成されている。この補償の側面により、カスケード接続されたフィルタは、一様に良好な阻止帯域減衰を提示し得る。
【００３９】
矩形成分は、個別の成分フィルタのインパルス応答を表すと考えることができる。成分フィルタおよびその矩形インパルス応答は、記号ｈ１，ｈ２などによって示される。
【００４０】
畳み込みの線形性により、信号に対するフィルタの応答は、同一信号に対する成分フィルタの応答の和に等しく、次式のように表される。
【００４１】
【数４】
2010512124.tif 000006
【００４２】
上式において、ｉ＝１，２，３，・・・Ｉである。図４に、同一信号ｓ［ｎ］で畳み込まれた個別の成分フィルタｈ１，ｈ２，ｈ３，ｈ４（ここでＩ＝４である）の応答を加算（４０３）するシステム４０１を示す。システム４０１への入力信号ｓ［ｎ］の入力４０５は、各成分フィルタｈ１，ｈ２，ｈ３，ｈ４によって処理され、その後で合算（４０３）される。
【００４３】
非ゼロ部分に１または−１の値を持つ成分フィルタ応答ｈｉは、インパルス応答の非ゼロ部分の信号サンプルの符号付き合計として実装できるため、乗算器を排除することができる。
【００４４】
図５に、１つの所定の矩形成分応答に対応して構成された再帰的ランニングサムフィルタの例示的アーキテクチャを示す。フィルタ５０１は、信号サンプルｓ［ｎ］の入力５０３と、ＦＩＦＯ（先入れ先出し）などの第１遅延ライン５０５と、第２遅延ライン５０７と、第１減算器５０９と、第２加算器／減算器５１３および記憶レジスタ５１５を含む累算器５１１と、フィルタサンプル０［ｎ］の出力５１７とを含む。このフィルタ５０１は、同期式パイプライン型アーキテクチャである。データサンプルの読み出しと書き込みの両方に同一クロック（図示せず）が使用される。図４を実行するためには、図５に示されるような４つのフィルタが必要になり、この各フィルタは、矩形成分応答ｈ１，ｈ２，ｈ３，ｈ４を用いて予め構成されている。
【００４５】
矩形応答は、第１遅延ライン５０５および第２遅延ライン５０７を利用して定義される。第１遅延ライン５０５は、応答内の先行ゼロ係数ｄｉの数について事前設定される。第２遅延ライン５０７は、応答内の非ゼロ係数Ｄｉの数について事前設定される。
【００４６】
第１遅延ライン５０５は、インパルス応答の最初から第１の非ゼロ係数までの遅延ｄｉを提供する。たとえば、図５に示したアーキテクチャを利用して図４を実装した場合、各遅延５０５は、ｈ１，ｈ２，ｈ３，ｈ４の先行するゼロ係数の数を計上することになる。応答ｈ１に関して、ｄ１は０に等しい（Ｄ１は２２に等しい）。応答ｈ２に関して、ｄ２は６に等しい（Ｄ２は１０に等しい）。応答ｈ３に関して、ｄ３は７に等しい（Ｄ３は８に等しい）。応答ｈ４に関して、ｄ４は８に等しい（Ｄ４は６に等しい）。ｄｉの上記値は、各フィルタｈ１，ｈ２，ｈ３，ｈ４の応答を時間整合させ、この時間整合は、図２に示した分解および下記の成分フィルタ関係（表記を簡単にするため、成分指数ｉは省略した）に従って行われる。
【００４７】
【数５】
2010512124.tif 000007
【００４８】
演算に先立ち、累算器５１１、レジスタ５１５、ならびに第１および第２の遅延ライン５０５および５０７は、０を用いて初期化される。第１遅延ライン５０５は、ｄ個のサンプルの遅延を提供する。ｄ個の入力サンプルの間、第１遅延ライン５０５の出力は０である。入力サンプルｓ［ｄ−１］において、第１遅延ライン５０５の出力はｓ［０］であり、同様に、ｓ［ｄ−ｌ＋１］はｓ［１］、ｓ［ｄ−ｌ＋２］はｓ［２］というように、入力信号の最後まで続く。
【００４９】
再帰演算は、ｄの遅延５０５が終了したときに始まり、最初の入力サンプルｓ［０］が第２遅延ライン５０７および減算器５０９に入る。減算器５０９は、第２遅延ライン５０７の出力（この時点では０である）を前記入力サンプルから減じる。第１の値ｓ［０］は、加算器／減算器５１３において０と加算されて、レジスタ５１５に格納される。次の一連のサンプルｓ［１からＤ−ｌ］が合算されて、５１３に格納される。
【００５０】
減算器５０７の出力は、加算器／減算器５１３によって、矩形応答が正である場合に累算器レジスタ５１５に加算され、矩形応答が負である場合に累算器レジスタ５１５から減算されて、出力信号５１７がｓ［０］または−ｓ［０］になるようにする。加算器／減算器５１３は、制御信号（図示せず）によって制御されて、成分インパルス応答の符号（±）に従って加算または減算を実行する。
【００５１】
ｄ＋Ｄのサンプルが入力された後、累算器レジスタ５１５の出力５１７は、サンプル（ｎ＝０からＤ−１）の和である。入力５０３において、サンプルｄ＋Ｄが利用可能になると、第２遅延ライン５０７の出力において遅延サンプルｓ［０］を利用できる。減算器５０９は、差異ｓ[Ｄ]−ｓ［０］を計算し、加算器／減算器５１３が、この差異を累算器５１５の内容に加算する。出力５１７は、長さＤの矩形インパルス応答と畳み込まれた入力サンプルのランニングサムになる。演算が続行され、出力５１７は、最新のＤ個の入力サンプルの和を表すように、各クロックサイクルにおいて更新される。
【００５２】
ほとんどのフィルタリング用途において、入力信号のサンプリング周波数ｆｓは、通常、フィルタ内で利用されるクロック周波数よりも低い。たとえば、超音波画像処理の用途において、一般的な入力信号のサンプリング周波数ｆｓは、４０ＭＨｚであってよく、各サンプルは１２ビットに量子化される。フィルタそのものは、サンプリング周波数ｆｓの倍数、たとえば、１６０ＭＨｚ（４ｆｓ）で動作することができる。より高いクロックレートによって、フィルタ回路は、入力信号サンプル間の多重演算を実行できるようになるため、同一の回路で、複数の成分矩形フィルタを計算および加算することができる。複数の成分フィルタは、同一の回路において時分割方式で実装できるため、フィルタの全体サイズおよびコストが削減される。
【００５３】
図６に、本発明のＦＩＲフィルタ６０１の実施形態を示す。フィルタ６０１は、信号サンプルｓ［ｎ］の入力６０３と、多重ポートメモリ６０５と、第１記憶レジスタ６０７と、第１減算器６０９と、第２加算器／減算器６１３および第２記憶レジスタ６１５を含む累算器６１１と、フィルタサンプル出力０［ｎ］６１７とを含む。制御装置６１９は、フィルタ演算を制御する。
【００５４】
この回路は、入力サンプルクロックｆｓと位相整合されたクロックｆｆ（図示せず）によって、同期的に時間調整されて動作する。クロックは、採用される成分インパルス応答の数Ｉに依存するサンプリング周波数Ｉｆｓの整数倍である周波数を持つ。
【００５５】
入力データｓ［ｎ］のサンプルは、メモリ６０５の入力Ｄｉｎに連結される。メモリ６０５は、第１および第２アドレス入力Ａ１およびＡ２、第１および第２データ出力バスＤ１およびＤ２、ならびに書き込み可能ＷＥを含む。第１アドレス入力Ａ１は、書き込み可能信号ＷＥがアサートされたときに、出力バスＤ１からのデータの読み出し元であると共に、データ入力Ｄｉｎに存在する入力サンプルの書き込み先であるメモリ位置を選択する。第２アドレス入力Ａ２は、出力バスＤ２からのデータの読み出し元であるメモリ位置を選択する。
【００５６】
本発明で採用される、好ましいタイプの多重ポートメモリ６０５は、ＦＰＧＡ（フィールドプログラマブルゲートアレイ）集積回路内で利用できる。他のメモリ構成も利用することができる。メモリ６０５は、最も長い期間を有する成分応答の長さと等しい長さを持つ循環バッファとして構成される。フィルタインパルス応答がＭ個の係数（Ｍ＝ｄ＋Ｄ＋末尾ゼロ）を有する場合、第１の入力サンプルｓ［０］は、メモリ６０５のアドレス０に書き込まれ、第２の入力サンプルｓ［１］はアドレス１に、Ｍ番目のサンプルｓ［Ｍｔｈ］はアドレスＭ−１に書き込まれる。
【００５７】
この後、書き込みアドレスは０にリセットされるため（これ故に「循環バッファ」と呼ばれる）、（Ｍ＋１）番目の入力サンプルは、（Ｍ＋１）サンプルの旧データを上書きする。したがって、最初のＭ個の後の各サンプリングクロックサイクルでは、メモリ６０６内で、入力データのＭ個のサンプルを利用できる。
【００５８】
フィルタ演算中に、入力サンプルｓ［ｎ］は、アドレスｃのうちのいずれに書き込まれてもよく、ここで、０≦ｃ≦Ｍ−１である。遅延サンプルｓ［ｎ−Ｄ］は、Ｄ≦Ｍである場合に、下記のアドレスから読み出すことができる。
【００５９】
【数６】
2010512124.tif 000008
【００６０】
上式において、ａは読み出し元のアドレスで、ｃは書き込み先のアドレスである。これにより、存在しないアドレス条件ａ＜０が得られた場合、循環バッファのアドレス指定規則にしたがって、遅延サンプルのアドレスは次式のようになる。
【００６１】
【数７】
2010512124.tif 000009
【００６２】
書き込み用として、第１アドレスＡ１によって位置がアドレス指定されると、その内容も第１出力バスＤ１から読み出される。Ａ１によって選択されたメモリ位置に新しいサンプルを書き込む同一クロックのエッジは、そのメモリ位置から第１レジスタ６０７内に読み込まれた古い値も保存するため、その古い値は、減算器６０９および加算器／減算器６１３による累算器レジスタ６０９からの減算に利用できる。
【００６３】
制御装置６１９は、多重ポートメモリ６０５と、累算器６１１の第２加算器／減算器６１３とに連結される。フィルタの制御装置６１９は、第１および第２データアクセスアドレスＡ１およびＡ２、書き込み可能信号ＷＥ、累算器６１１の符号制御、ならびに初期化に利用されるゲート信号（図示せず）を提供する。好ましい実施形態において、制御装置６１９は、ルックアップテーブル（ＬＵＴ）６２１を利用して実装され、このＬＵＴ６２１内には、第１および第２アドレスＡ１およびＡ２、書き込み可能ＷＥ、ならびに累算器６１３の符号制御に関する一連の値が、動作前に予め定義されている。他の実施形態において、ＬＵＴ６２１は、自己アドレス指定されてよく、換言すると、一連のＬＵＴアドレスも同一のＬＵＴ内でプログラムされる。動作の開始時に、ＬＵＴアドレスのレジスタの内容が消去され、その後、後続のアドレスがＬＵＴ６２１からＬＵＴ６２１自身によって読み出される。この動作は、制御装置の論理を単純化する。ＬＵＴは、読み出し専用メモリ（ＲＯＭ）であっても、またはランダムアクセスメモリ（ＲＡＭ）であってもよい。
【００６４】
ＬＵＴの出力を登録して、回路の速度を速くすることもでき、この場合は、適宜、回路のタイミングとＬＵＴ内の一連のデータとを調整する必要がある。同様に、第１加算器６０９の出力と累算器６１１の入力との間に、パイプラインレジスタ（図示せず）を挿入してもよい。このパイプラインレジスタは、第１加算器６０９と累算器６１１との間に追加のクロック遅延を追加するが、これを行うには、制御信号のタイミングを適宜調整する必要がある。前述した回路変更または他の回路変更は、当業者には既に知られている。
【００６５】
フィルタ６０１は、図５に示すように、図４に採用されている複数の成分フィルタの機能を実行する。実装可能な成分フィルタｈ１，ｈ２，ｈ３，・・・ｈＩの数は、フィルタ６０１のクロックレートｆｆおよび入力サンプル周波数ｆｓの比と等しく、次式で表される。
【００６６】
【数８】
2010512124.tif 000010
【００６７】
フィルタ６０１では、採用された各成分フィルタの出力は、個別に計算されて合計されるのではない。その代わり、成分フィルタの出力の和が、累算器レジスタ５１５において計算される。
【００６８】
２つの（Ｉ＝２）成分フィルタ、ｈ１およびｈ２を利用する例では、
【００６９】
【数９】
2010512124.tif 000011
【００７０】
【数１０】
2010512124.tif 000012
【００７１】
上式において、ａ，ｂ、およびｎはサンプル数指数である。次に、所望のフィルタインパルス応答が、２つの成分矩形インパルス応答ｈ１およびｈ２の和に分解され、かつ、フィルタ回路のクロック周波数が、（８）に従って倍加される場合のフィルタ６０１について説明する。動作は、２つ以上の成分インパルス応答を必要とする用例と同様である。
【００７２】
２つの成分応答ｈ１およびｈ２から１つのフィルタ応答を生成するため、フィルタクロック周波数ｆｆは、入力サンプル周波数の２倍のｆｆ＝２ｆｓである。各サンプルクロックサイクル内に、２つのフィルタのクロックサイクルであるサブサイクル０およびサブサイクル１が定義される。
【００７３】
各成分フィルタはＭ個の係数を有するため、フィルタ６０１の全体インパルス応答はＭ個の係数を有する。成分フィルタの１つｈ１またはｈ２は、そのカーネル長を定義するＭ個の非ゼロ係数を持つ。他の成分フィルタのカーネルは、同一数またはＭ個よりも少ない非ゼロ係数Ｄを持つことができる。Ｄ個の非ゼロ係数を有する成分フィルタは、矩形応答を定義する非ゼロ部分の前に追加されたｄ個のゼロを持つことができ、かつ、成分インパルス応答の全体長さがＭになるように末尾ゼロを持つことができる。非ゼロ係数の前の遅延ｄは、ゼロ以上であってよい。
【００７４】
フィルタ６０１の演算に先立ち、累算器６１１のレジスタ６１５およびメモリ６０５が０に初期化される。制御装置６１９も初期化されて、第１アドレス出力Ａ１にアドレス０を生成する。
【００７５】
演算は、入力サンプリングクロックサイクル０において、フィルタ入力６０３にサンプルｓ［０］が到着したときに開始される。サンプリングサイクル０のサブサイクル０において、成分フィルタｈ１の旧サンプルは、データバスＤ１を介してメモリ５０５のアドレス０から読み出される（初期化により、最初のＭ個の周期サイクルにおいて、古い値は０である）。制御装置６１９は、メモリ書き込み可能信号ＷＥをアサートする。サブサイクル１のクロックの立ち上がりは、データバスＤ１からの値をレジスタ６０７に格納して、メモリ６０５のアドレス０にサンプルｓ［０］を書き込む。サブサイクル１の間に、制御装置６１９は、メモリ書き込み可能ＷＥのアサート停止を行って、アドレスＡ２に値０を取らせ、サンプルｓ［０］が、メモリ６０５のアドレス０からデータバスＤ２に読み出されて、減算器６０９および加算器／減算器６１３を介して累算器レジスタ６１５の入力に送られるようにする。演算全体では、複数のサブサイクルが必要であるが、演算はパイプライン処理されるため、クロックサイクルごとに新しい演算が実行される。
【００７６】
制御装置６１９は、符号制御信号をアサートして、第１成分フィルタｈ１の非ゼロ係数の符号に従って、加算器／減算器６１３に加算または減算を実行させる。同時に、制御装置６１９が、ｄ＋Ｄだけアドレス０に先行するアドレスＡ１をアサートすると、前述した循環バッファアドレス指定に従って、第１アドレスＡ１がＭ−ｄ−Ｄに等しくなり、第２成分フィルタｈ２の旧サンプルのアドレスを表すようになる。アドレスＡ１の内容は、データバスＤ１から読み出される。
【００７７】
サンプリングクロックｆｓのサイクル１の間に、入力６０３においてサンプルｓ［１］を利用できるようになる。サブサイクル０において、累算器レジスタ６１５の内容が更新されてｓ［０］になると共に、成分フィルタｆ２の旧サンプルがレジスタ６０７に保存される。制御装置６１９は、メモリ書き込み可能ＷＥ、アドレスＡ１＝１（新しいサンプルの書き込み先であり、かつ、成分フィルタ１の古いサンプルの読み出し元である位置）、Ｍ−ｄ（成分フィルタｈ２の新しいサンプルの読み出し元）に等しいアドレスＡ２、および成分フィルタｈ２の符号に対応する符号制御信号をアサートする。減算器６０９は、成分フィルタ２の新しいサンプルから古いサンプルを減じ、その差は、加算器／減算器６１３によって累算器レジスタ６１５の内容に加算または減算されるが、この加算または減算は、符号制御信号によって決定される成分フィルタｈ２の符号に従って行われる。サブサイクル１の立ち上がりにより、第１の有効な出力サンプルｏ［０］、第１および第２の成分フィルタの出力の和が、累算器レジスタ６１５に保存され、出力６１７において利用可能になる。
【００７８】
演算は、前述した方式で、すべての入力サンプルｓ［ｎ］が処理されるまで進行する。各サンプリングサイクル中に、制御装置６１９は、前のサンプリングサイクルで生成された対応するアドレスよりも１だけ大きいアドレスＡ１およびＡ２を生成するが、これらのアドレスは、循環バッファのアドレス指定規則に従って限定される範囲の値を取る。すなわち、サンプリングサイクル中に、アドレスがＭ−１に達した場合、次のサンプリングサイクルでは、対応するアドレスはＭの値を取らずに、折り返して値０に戻る。
【００７９】
本発明の代替の実施形態を図７および図８に示す。成分フィルタの精度を改善するために、図７では、減算器６０９と累算器６１１との間に、係数記憶装置７０５と組み合わせてスケーリング乗算器７０３が追加されている。スケーリング乗算器７０３は、パイプライン内で制御装置６１９によって制御されながら、累算処理の前に、減算器６０９から出力される個別の成分フィルタ値ｈｉを、記憶装置７０５からの個別係数を利用して乗算する。各成分フィルタｈｉの係数、すなわち因数は、任意のスケーリング値であってよく、個別の成分フィルタ、たとえば、ｈ１およびｈ２に代入される。これにより、±１よりも異なる振幅を有する成分フィルタを取得することができ、所望のインパルス応答の、より向上した近似化を実現できる。
【００８０】
図８に示した実施形態では、減算器６０９と累算器６１１との間にスケーリングマルチプレクサ８０３が追加される。このスケーリングマルチプレクサ８０３は、パイプライン演算中に制御装置６１９によって制御されながら、累算処理の前に、減算器６０９から出力される個別の成分フィルタ値ｈｉを、２の累乗（２ｘ、ただしｘ＝０，１，２，・・・）でスケーリングする。各成分フィルタｈｉの２”乗は、個別の成分フィルタ（ｈ１およびｈ２）に代入される所定のスケーリング値である。成分フィルタの所定のスケーリング値に応じて、マルチプレクサ８０３は、減算器６０９から出力される２進値を、最上位ビット（ＭＳＢ）または最下位ビット（ＬＳＢ）に向かって所定の桁数だけシフトし、必要に応じてゼロを追加する。ＭＳＢに向かって２進数を１桁（指数）移動することで、効率的に値に２を乗じ、その逆の移動で、効率的に値を２で割る。マルチプレクサ８０３の利用は、インパルス応答の近似化を改善できるが、乗算器７０３を利用することによって得られる解を改善するのではない。
【００８１】
本発明は、フィルタ応答の分解方法および多次元和の再帰的計算の実施を利用して、２次元またはより高次元のフィルタに適用されてもよい。２次元または多次元のフィルタリングは、画像処理の中で利用されることが多く、１次元のフィルタリングと同様である。多次元フィルタのフィルタ応答の分解は、矩形ではなく、平行６面体または平行６面体状の成分である。本発明の教示は、多次元フィルタ応答を含むように拡張することができる。
【００８２】
本発明の１つ以上の実施形態について説明した。ただし、本発明の精神および範囲から外れることなく各種の変更を行えることは理解されるであろう。したがって、他の実施形態も付随する請求項の範囲内に入るものである。
【図１】
2010512124.tif 000013
【図２Ａ】
2010512124.tif 000014
【図２Ｂ】
2010512124.tif 000015
【図２Ｃ】
2010512124.tif 000016
【図３】
2010512124.tif 000017
【図４】
2010512124.tif 000018
【図５】
2010512124.tif 000019
【図６】
2010512124.tif 000020
【図７】
2010512124.tif 000021
【図８】
2010512124.tif 000022
【国際調査報告】
2010512124.tif 000023
2010512124.tif 000024
2010512124.tif 000025