(57)【要約】【課題】  ルックアップテーブルを具備する改良したＦＩＲフィルタを提供する。【解決手段】  本発明の単一ビットＦＩＲフィルタは、累算及び出力に対する出力又はその一部を事前格納することにより計算時間を最小とさせる。【選択図】      図２
2005198287.tif 000002
【特許請求の範囲】
【請求項１】
単一ビットＦＩＲフィルタにおいて、
入力が複数個のシリアル入力ビットを受取るべく適合されており、前記入力ビットは単一ビット幅であり、前記入力は所定数の入力ノードを有しており、前記入力ノードは１個又はそれ以上の組の入力ノードへ分離されており、前記入力は前記複数個の入力ビットが前記入力の長さをシフトダウンすることを可能とすべく適合されており、
格納装置が複数個のメモリ位置を具備しており、前記各メモリ位置は第一組の入力ノードにおけるビットが前記メモリ位置のうちの１つをアドレスするために使用することが可能であるようにアドレスを有しており、
アドレスされたメモリ位置の内容の累算を与える出力が設けられている、
ことを特徴とする単一ビットＦＩＲフィルタ。
【請求項２】
請求項１において、前記入力が単一組の入力ノードを有していることを特徴とする単一ビットＦＩＲフィルタ。
【請求項３】
請求項１において、前記入力が、更に、第二組の入力ノードにおけるビットを前記メモリ位置の第二のものへアドレスするために使用可能であるように第二組の入力ノードを有しており、前記出力が第一及び第二メモリ位置の内容の累算を与えることを特徴とする単一ビットＦＩＲフィルタ。
【請求項４】
請求項１において、更に、前記単一ビットＦＩＲフィルタの出力が前記アドレスされたメモリ位置の内容の累算であるように前記アドレスされたメモリ位置の内容を受取るためのアキュムレータを有していることを特徴とする単一ビットＦＩＲフィルタ。
【請求項５】
単一ビットＦＩＲフィルタにおいて、
シリアル入力ビットのストリームを受取るための入力部が設けられており、前記入力部は複数個の入力ノード組を有しており、前記各入力ノード組は前記入力ビットのシリアルストリームから入力ビットを受取るためであり、
アドレス及び値を有するメモリ位置を有するメモリが設けられており、前記メモリ位置は前記入力ノード組の少なくとも１つの内容により間接的に又は直接的にアドレスすべく適合されており、
前記アドレスされたメモリ位置の内容を受取るべく適合されているアキュムレータが設けられており、前記アキュムレータは前記アドレスされたメモリ位置の前記内容を加算し且つ結果を発生し、前記結果は実質的に前記単一ビットＦＩＲフィルタの出力である、
ことを特徴とする単一ビットＦＩＲフィルタ。
【請求項６】
請求項５において、前記メモリ位置は、第一入力ノード組の内容を前記メモリへ供給する前にアドレスオフセットへ露呈させることにより間接的にアドレスされることを特徴とする単一ビットＦＩＲフィルタ。
【請求項７】
請求項５において、各入力ノード組が同数の入力ノードを有していることを特徴とする単一ビットＦＩＲフィルタ。
【請求項８】
請求項５において、前記入力ノード組がシフトレジスタを有していることを特徴とする単一ビットＦＩＲフィルタ。
【請求項９】
単一ビットＦＩＲフィルタを提供する方法において、
入力内にシリアルデータを受取り、前記入力は複数組の入力データへ分割され、
各組の入力データを使用して各組の入力データと関連するメモリ位置を直接的に又は間接的にアドレスし、
前記アドレスしたメモリ位置の内容を読取り、
前記アドレスしたメモリ位置の内容を累算し、
単一ビットＦＩＲフィルタ出力を供給する、
ことを特徴とする方法。
【請求項１０】
請求項９において、更に、前記使用するステップの後に、前記入力データを少なくとも１つの入力データ位置シフトさせることを特徴とする方法。
【請求項１１】
請求項９において、更に、前記入力データを少なくとも１つの入力データ位置シフトさせ且つ前記供給するステップの後に、前記受取るステップから開始して本方法を繰返し行うことを特徴とする方法。
【請求項１２】
請求項９において、更に、前記受取るステップの前に、前記メモリ位置を値でロードすることを特徴とする方法。
【請求項１３】
請求項９において、各組の入力データが同数の入力ビットを有していることを特徴とする方法。
【請求項１４】
単一ビットＦＩＲフィルタを提供する方法において、
データのシリアルストリームの第一ビットを入力部分へ入力し、
前記入力部分を直接的に又は間接的にメモリをアドレスするために使用することが可能な複数組のデータへ分割し、
少なくとも１組のデータで前記メモリのメモリ位置をアドレスし、
前記メモリ位置の内容を読取り、
前記メモリ位置の内容を他のメモリ位置の内容と累算し、
前記累算器の出力を出力として供給する、
ことを特徴とする方法。
【請求項１５】
請求項１４において、前記各組のデータはアドレスとして使用すべく適合させることが可能であることを特徴とする方法。
【請求項１６】
請求項１４において、１組のデータを、該１組のデータにオフセットを与えることにより間接的にメモリをアドレスするために使用することが可能であることを特徴とする方法。
【請求項１７】
請求項１４において、前記入力部分が少なくとも８，１６，３２，６４，１２８ビット長のうちの少なくとも１つであることを特徴とする方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明はＦＩＲフィルタに関するものであって、更に詳細には、ルックアップテーブルを具備するＦＩＲフィルタに関するものである。
【背景技術】
【０００２】
古典的な有限インパルス応答（ＦＩＲ）フィルタは入力データに係数を乗算する。次いで、ＦＩＲフィルタは、乗算した結果を一体的に累算して出力を発生する。通常、ＦＩＲフィルタは、デジタル信号に対するフィルタリング機能を実施するために使用される。このような機能は、デジタル信号ハイパス、ローパス、バンドパス及びノッチフィルタリングを包含している。ＦＩＲフィルタに対する最も蓋然性のある使用は、デジタルオーディオ処理においてである。デジタルオーディオ処理は、多様なよく知られた装置において使用されており、音楽及びビデオ用のコンパクトディスク（ＣＤ）プレイヤ、携帯型、ワイヤレス及びハードワイヤード型を包含するデジタル電話、コンピュータ、ビデオディスクプレイヤ、ビデオカメラレコーダ、カメラを包含するデジタルビデオ記録及び再生装置等がある。
【０００３】
ＦＩＲフィルタは、通常、ＦＩＲ係数をデジタルオーディオ信号からのビットで乗算することにより時間ドメインにおいて動作する。その乗算結果を加算又は累算し、それにより所望のデジタル的にフィルタされたオーディオ出力を発生する。
【０００４】
最近の過去において、単一ビットＦＩＲフィルタは益々ポピュラーなものとなっている。単一ビットＦＩＲフィルタは、オーディオデジタル信号処理装置においてかなり使用されている。何故ならば、単一ビットデータストリームの使用がＣＤ及びミュージックストリーミングで使用されているからである（二三の例を挙げると）。単一ビットデータストリームＦＩＲフィルタリングが使用されている別の特定のエリアは、スーパーオーディオコンパクトディスク（ＳＡＣＤ）マテリアルのダイレクト・ストリーム・トランスファ−ダイレクト・ストリーム・デジタル（ＤＳＴ−ＤＳＤ）デコーディングである。
【発明の開示】
【発明が解決しようとする課題】
【０００５】
本発明は、以上の点に鑑みなされたものであって、上述した如き従来技術の欠点を解消し、性能を改善したＦＩＲフィルタを提供することを目的とする。
【課題を解決するための手段】
【０００６】
例示的なＦＩＲフィルタの実施例は、従来のＦＩＲフィルタと同じレベルか又はそれより高いレベルで実施又は動作することが可能である。又、例示的なＦＩＲフィルタは、従来の単一ビットＦＩＲフィルタと比較して、より低い製造コストとすることが可能である。
【０００７】
多くの場合において、例示的なＦＩＲフィルタは、実質的に同一の世代の技術を使用して性能において従来のＦＩＲフィルタを超えるものである。これらの改良は、通常、ＦＩＲフィルタへの入力データストリームの一部をメモリアドレスとして使用することにより達成される。メモリアドレス位置は、その入力データの部分に対して乗算及び累算結果を格納することが可能である。乗算及び累算結果は、必要である場合には、入力データのその他の部分の乗算及び累算結果と累算される。従って、入力データの一部に対する回答のルックアップテーブルのために、入力データビットの係数による物理的な乗算は例示的なＦＩＲフィルタにより各入力ビットに対して実施することは必要ではない。幾つかの例示的なＦＩＲフィルタにおいては、ＦＩＲフィルタ出力を発生するために加算機能を実施することが必要であるに過ぎない。
【発明を実施するための最良の形態】
【０００８】
本発明の例示的実施例について、本発明の例示的実施例を図示した添付の図面を参照して以後より詳細に説明する。然しながら、本発明は、多くの異なる形態で実現することが可能であり且つ本明細書に記載する実施例に制限されるものとして解釈されるべきではない。そうではなく、これらの実施例は、本開示が完全なものであって、当業者に対して本発明の範囲を完全に伝達するために提供するものである。
【０００９】
図１を参照すると、スタンダードのＦＩＲフィルタ１０がブロック図の形態で示されている。スタンダードのＦＩＲフィルタ１０は単一ビットＦＩＲフィルタである。単一ビットＦＩＲフィルタは、ＦＩＲフィルタ１０内へのデータ入力が１ビット幅であるデータのシリアルストリームであるＦＩＲフィルタである。デジタルデータはスタンダードのＦＩＲフィルタ１０の入力１２へエンタし且つシリアルラッチシフトレジスタ又はその派生物である遅延線１４へエンタする。データのビットは、各ビットがχ0，χ1，χ2，．．．，χnとして供給されるように遅延線１４下方へシフト即ち移動される。各ビット（χ0，χ1，χ2，．．．，χn）は、乗算器１６を介して関連する係数（Ｃ0，Ｃ1，Ｃ2，．．．，Ｃn）で乗算され、それはメモリ内、テーブル内、ラッチ内又は例えばフラッシュメモリ、ディスクメモリ、ＲＡＭ、ＲＯＭ又はその派生物等の別の電子的格納手段内に格納することが可能である。各乗算器１６の出力１８は、スタンダードの単一ビットＦＩＲフィルタ１０の出力２２を発生させるために、加算器２０において累算即ち加算される。係数Ｃ0，Ｃ1，Ｃ2，．．．，Ｃnは、単一又はマルチビット幅とすることが可能であり、それにより乗算器の出力１８を１又はそれ以上のビット幅とさせる。そうであるから、マルチ乗算プロセスはスタンダードの従来の単一ビットＦＩＲフィルタがハードウエア、ソフトウエア、又は両者の組合わせとして実現されるか否かに拘わらず、究極的にマイクロプロセッサ又は数値演算コプロセッサ時間を消費する。
【００１０】
未だに図１を参照すると、従来の単一ビットＦＩＲフィルタ１０は１６タップフィルタである場合、例えば、フィルタがχ0，χ1，χ2，．．．，χ15に対して一度にデータの２つの８ビットバイトを取扱うことを意味するが、その場合には、各出力２２を供給するために、データは入力ノード又はレジスタを介してシフトするので、１６個の乗算と１６個の加算機能を必要とする。従来の単一ビットＦＩＲフィルタを介してデータを処理することは、たとえ比較的少数のビットに対するものであっても数値演算が集約的なものであることを理解することが可能である。この１６タップの単一ビットＦＩＲフィルタの例の場合には、１６個の乗算機能及び１６個の加算機能の全てを実施するのにかなりの処理時間が必要とされる。
【００１１】
次に、図２を参照すると、例示的な単一ビットＦＩＲフィルタ４０がブロック図で示されている。この単一ビットＦＩＲフィルタ４０は入力４２を具備している。入力データの単一ビットストリームがエンタし且つ該入力を介してシフトされて入力χ0、次いでχ0及びχ1、次いでχ0，χ1及びχ2、以下同様となる。該入力ビットはノード即ちシフトレジスタχ0−χ7，．．．，χnを介してシフトされるので、それらはメモリアドレスとして又はメモリアドレスオフセット４４と共に使用することが可能である。
【００１２】
χ0−χnビットの各シフトにおいて、１個又はそれ以上のメモリ位置がアドレスされる。該メモリ位置はＲＡＭ、ＲＯＭ、ＦＬＡＳＨ又はその他のタイプのメモリ内において見出すことが可能である。各アドレスのメモリ位置４６内には、シフトした入力データの最初の８ビットの可能なバリエーションの各々に対し前に計算した乗算（必要な係数との）及び加算結果４８がある。この点において、単一ビットＦＩＲフィルタが８タップフィルタである場合には、ＴOの出力４８は単一の数学的計算なしで実施されている。何故ならば、該メモリ位置は前に計算された正しい出力ＴOを供給するからである。逆に、図１に基づく８タップ（χ0−χ7）単一ビットＦＩＲフィルタを使用した場合には、従来のスタンダードのＦＩＲフィルタ１０は出力２２を供給するために８個の乗算と８個の加算機能を実施することが必要である。
【００１３】
図２を参照すると、単一ビットＦＩＲフィルタが単一メモリアドレスをアドレスするために使用することが可能であるよりもより多くの入力ノード又はタップを有している場合には、付加的なノードに対して乗算及び加算結果４６´に対する係数値の前もって計算した組合わせを与えるために、付加的なメモリ位置をアドレスするために第二、第三、第四以下同様のアドレスオフセット４４´が与えられる。
【００１４】
予め計算した値４８の各々及び各４８´のメモリ位置からの出力は加算器又は累算器５０へ供給され、それは予め計算した値４８の２つ又はそれ以上と各４８´との加算機能を実施する。累算器５０の出力は例示的な単一ビットＦＩＲフィルタ４０の出力５２である。
【００１５】
図２を多少異なった観点から参照すると、データは入力４２において例示的な単一ビットＦＩＲ５０へエンタする。エンタするビットは１又は０の何れかとすることが可能である。最初に、第一ビットがχ0において０であると仮定すると、残りのノードχ1−χ7（第一バイト）もゼロである。何故ならば、データは未だにシフトされていないからである。従って、第一の８ビットバイトは全てゼロからなり、入力のχ0における第一ビットを包含している。全てがゼロからなる第一バイトがアドレスオフセット４４によって受取られ、アドレスオフセット４４はその第一バイトに対して所定の数を加算することが可能であり、従ってアドレスオフセット４４に等しいか又はそれより大きなメモリ位置がアドレスされる。第一バイト＋アドレスオフセットはメモリから予め計算した結果を引出すために使用されるアドレスとなる。その予め計算された結果は、スタンダードの従来のＦＩＲフィルタが同一の入力ビットに同一の係数を乗算させて計算し、次いで一緒に加算して得られるものと同一の結果に等しい。メモリ４８から検索される予め計算した結果の各々及び各４８´は、次いで、アキュムレータ即ち累算器５０へ供給され、そこでそれらは一緒に加算されてＦＩＲフィルタの出力５２を供給する。
【００１６】
このプロセスが再度繰返される。第一ビットが次のデータ位置へ移動し且つ新たな第二ビットがχ0位置へ移動する。これら２つのビットχ0及びχ1＋古いビットの全て（初期的にはゼロである）は、メモリ又はテーブル４６から予め計算した乗算／加算値４８，４８´を検索するためにアドレスオフセット４４及び４４´を介してアドレスを確立する。検索された予め計算した乗算／加算値はアキュムレータ５０へ供給され、それにより第二出力５２を発生する。
【００１７】
このプロセスは、入力データビットが入力４２における別のノードへシフトする度に、第三及び第四出力及び全てのそれ以後の出力を継続して供給する。入力４２は遅延線、シフトレジスタ又はソフトウエアにおけるアレイ又は何らかの妥当なその派生物とすることが可能である。ハードウエア入力レジスタ４２自身が存在することは必要ではないが、特定のハードウエアの実現例なしでそれを入力レジスタ又は遅延線と呼ぶことが可能である。実際に、本発明に基づく例示的な単一ビットＦＩＲフィルタは、完全にソフトウエアで作成し且つ動作可能なものとすることが可能である。
【００１８】
例示的な実施例の１つの側面は、マルチタップ単一ビットＦＩＲフィルタの乗算及び加算部分に対しての可能な結果を事前に計算することである。
【００１９】
より詳細には、入力がバイナリであること及びデータが単一ビット幅であることの事実を利用することにより、事前計算されたテーブル４６，４６´は各係数により乗算され且つ、例えば、７個のその他の入力ビットからの同様の結果と加算される各可能な入力（０又は１）に対して容易に構築することが可能である。その結果は、８入力データビット（即ち、入力データビットの１バイト）の各可能な組合わせに対して、これら８個のビットに対してＦＩＲフィルタの乗算及び加算ステップに対する結果を供給するテーブルエントリが存在するということである。各テーブルエントリはアドレスを有している。各テーブルエントリのアドレスは、直接的に８入力データビットと関連しているか、又は入力ビットにより形成される８ビットバイナリ数に対してオフセット数を加算するか又はそれから減算し、又はプレフィックス又はサフィックスとして取付けることにより間接的に関連付けることが可能である。
【００２０】
図３を参照すると、テーブル又はメモリをローディングする例示的な方法が提供される。テーブルは、ＦＩＲフィルタに対する係数が一定に止まるべき場合には、リードオンリメモリ（ＲＯＭ）内に格納することが可能である。ランダムアクセスメモリ（ＲＡＭ）又はフラッシュメモリは、一定の係数に対して、及び係数が、所望の使用を満足するために変更、再計算、アップグレード又は微調整を必要とする場合にも使用することが可能である。
【００２１】
図３のステップ６０において、メモリ内へのテーブルのローディングのためのルーチンが開始する。このルーチンへのエントリは、工場において、又は例示的な単一ビットＦＩＲフィルタがパワーオンされる度に発生することが可能である。例示的な単一ビットＦＩＲフィルタはｎ個のノードを有しており、その場合に単一ビットが各ノードにおいて読取られる。例えば、単一ビットＦＩＲフィルタが３２ビット長である場合には、入力データが１ビットシフトする度に３２ビットがノードから読取られる。これらのノードは、８個のノードからなる４個の組に分割することが可能である。各組は８ビットバイトのデータと考えることが可能である。各バイトの各ビットは１つの係数により乗算される。各計算の結果は、８ビットバイトに対するフィルタした応答を決定するために加算又は累算される。
【００２２】
再度、例えば、３２ビット入力単一ビットＦＩＲフィルタを使用して、ステップ６２において、各可能なビット（０又は１）をその特定のノードに対する係数で乗算する。各可能な８ビットの組合わせは（００００００００，０００００００１，００００００１０，００００００１１以下同様に１１１１１１１１まで）をステップスルーし、従って乗算及び累算計算を最初の８ビットバイトに対する３２個の可能なビットの組合わせに対して実施する。該３２個の可能な組合わせの各々に対する各計算結果はオフセットを有するか又は有することのない８ビットバイトのメモリアドレスを有するメモリ位置又はテーブル内に格納することが可能である。同一のプロセスを８ビットバイトの第二、第三、第四の組に対して行う。最後に、８個のノードからなる４個の組に対する各可能な８ビット入力に対する出力を包含するテーブル又はメモリマップが作成される。
【００２３】
ステップ６４において、各可能なバイトの組合わせに対する結果が関連するメモリ位置内に格納される。例えば、第一の組（χ0−χ7）に対する入力データビットの１バイトは１０１０１１１１である場合がある。各ノードのビット１，０，１，０，１，１，１，１に対する各乗算及び累算プロセスの対応する結果はメモリ位置１０１０１１１１内に格納することが可能である。第二組の８ビットデータ（χ8−χ15）に対するデータビットの第二バイトも１０１０１１１１であるが、その乗算及び累算の結果は、第一組（χ0−χ8）に対する８ビットデータバイトの第一組と同一のメモリ位置に格納することはできない。従って、第二組の８ビットデータ（χ8−χ15）１０１０１１１１に対してアドレスオフセットを付加することが可能であり、従ってその結果は第一組の８ビットデータのアドレス１０１０１１１１とは異なるメモリ位置内に格納される。データの８ビットバイトの４つの組全てに対する結果は同様の態様でメモリ位置に格納することが可能である。
【００２４】
理解されるように、本発明の実施例は、実質的に、テーブル位置又はメモリアドレスとして任意の数のビットを使用することが可能である。例えば、例示的な単一ビットＦＩＲフィルタが１２８ビット長である場合には、データセットは１個の１２８ビットアドレス（これは現在非現実的であるが可能である）、２個の６４ビットの組、４個の３２ビットの組、８個の１６ビットの組、１６個の８ビットの組又は３２個の４ビットの組とすることが可能である。更に理解されるように、各組は入力データビットの他の組と必ずしも同数のビットであることは必要ではない。
【００２５】
各事前に計算した結果を決定するための数学的技術は、組又はテーブルが４データビットの幅を有する以下の例を検討することにより最もよく理解される。換言すると、８ビットワードの場合には、事前計算されたテーブル４６，４６´をアドレスするために使用される２個の４ビットバイトが存在しており、各テーブルは４である全体的なテーブル幅ｗを有している。例えば、
【００２６】
【表１】
2005198287.tif 000003
【００２７】
尚、ｗ＝４（０，１，２，３）、組の数ｍ＝２（２，４ビット組）、各データシフト期間中にＦＩＲフィルタ内へ入力することが可能なビット数＝ｎである。Ｉｎｐｕｔ  Ｄａｔａ  ＢｉｔｓAは従来の単一ビットＦＩＲフィルタ内への入力ビットを表わす。Ｉｎｐｕｔ  Ｄａｔａ  ＢｉｔｓBは同じＩｎｐｕｔ  Ｄａｔａ  ＢｉｔｓAを表わすが、そのデータに対するサブスクリプトはｍ，ｗ（組番号，ビット幅数）である。ＣｏｅｆｆｉｃｉｅｎｔｓAは、各々がＩｎｐｕｔ  Ｄａｔａ  ＢｉｔｓA（χ0−χn）により乗算される係数０乃至ｎを表わす。ＣｏｅｆｆｉｃｉｅｎｔｓBは夫々Ｉｎｐｕｔ  Ｄａｔａ  ＢｉｔｓB（χmw）により乗算される係数Ｃmwを表わす。従来の単一入力ＦＩＲフィルタの場合には、χnとＣnとの間の各乗算の加算が実施され且つ数学的には以下のように記述することが可能である。
【００２８】
【数１】
2005198287.tif 000004
【００２９】
この式（１）はｎ個の乗数とｎ個の加数を必要とし、それによりマイクロプロセッサ又は演算プロセッサの時間を消費する。
【００３０】
テーブル幅ｗが４である例示的実施例においては、Ｓｅｔm＝０に対するテーブルは次の通りであり、
【００３１】
【表２】
2005198287.tif 000005
【００３２】
尚、ｗ＝組又はテーブル幅、Ｉ＝テーブルインデックス、ＴＶはテーブル値、Ｖ＝ｗ2＝可能なテーブル値の数、Ｉは組ｍに対するテーブルインデックスである。
【００３３】
従って、組ｍ＝１、ｗ＝４及びテーブルインデックスＩ＝００１０の場合には、ＴＶM,Iは、
ＴＶ12＝０＊Ｃ7＋１＊Ｃ6＋０＊Ｃ5＋０＊Ｃ4＝Ｃ5＝Ｃ11
に等しく、従って、幅ｗを有する組ｍにおける各ＴＶに対して、次式が成立する。
【００３４】
【数２】
2005198287.tif 000006
【００３５】
結果的に得られる単一ビットＦＩＲフィルタ出力は次式に等しい。
【００３６】
【数３】
2005198287.tif 000007
【００３７】
換言すると、例示的なＦＩＲフィルタの出力は、ＦＩＲフィルタの入力内へシフトされたビットの組ｍと関連する各テーブル値ＴＶの和である。該例示的な単一ビットＦＩＲフィルタが１６ビット長であり且つ該フィルタの入力が４個のビットｗからなる４個の組ｍに分離される場合には、出力を発生するために該テーブル内への４個のルックアップと４個の累算機能とが存在するに過ぎない。この例示的プロセスは、必要とされる処理時間がより少ないので、１６個の乗算と１６個の累算ステップとを実施する従来の単一ビットＦＩＲフィルタよりもかかる時間が著しく短い。
【００３８】
８個の１６ビットの組を有する実施例においては、１２８入力ビットのフィードを有する例示的な単一ビットＦＩＲの各出力を与えるために８個のメモリルックアップと８個の累算ステップとが存在している。各組に対して１６個の係数乗算及び１６個の累算の事前計算（ＲＯＭ内に格納するか又はスタートアップ時に実施し且つＲＡＭ又はその他のプログラムメモリ内に格納するかの何れか）は、システムにおけるマイクロプロセッサ又はコプロセッサに関する演算負荷を著しく減少させる。何故ならば、全ての乗算ステップは完了しており且つ加算ステップの大多数も完了しているからである。
【００３９】
入力組の寸法がより大きくなると、事前計算結果に対して必要とされる格納即ちメモリの量が増加する。各１６ビット入力の組の場合に、約６４Ｋのメモリが必要とされる。従って、８個の１６ビット組を有する単一ビットＦＩＲに対する１２８ビット入力は、約５１２Ｋのメモリを必要とする。
【００４０】
当業者により理解されるように、本発明の技術的範囲から逸脱することのない本発明の実施例で使用することが可能な何らかのメモリ格納ショートカット即ち「トリック」が存在している場合がある。例えば、係数の繰返し的な編成が存在している場合、又は格納される値を作成するために乗算計算において係数ゼロが使用されない場合（何故ならば、その乗算値は０に等しいからである）等である。事前計算したデータを格納するために必要なメモリの実際の量を減少するためのその他の創造的な技術も使用可能であり且つ当業者にとって既知である。例えば、両方のデータ入力の組合わせに対して同一のメモリアドレスが使用されるように、ＦＩＲフィルタに対する異なる入力ビットの組合わせが数学的に同一の格納される値に等しい場合である。
【００４１】
単一ビットＦＩＲフィルタの例示的実施例は、コンピュータ上でランするソフトウエアで厳格的に実行することが可能である。該ソフトウエアは、マイクロプロセッサ及び関連する電子装置がソフトウエアにより記述されるステップを実施するようにコンピュータ内に格納することが可能である。図４はソフトウエア、ファームウエア、又はハードウエア又はその組合わせにおいて機能することが可能な例示的実施例に対するフローチャートを示している。ステップ７０において、係数が入力におけるビットの可能な組と乗算され且つその解が累算され且つ図３に関して説明したように適切なメモリ位置に格納される。該メモリ位置は図２における事前計算したメモリ部分４６，４６´と一致する。係数４６，４６´の事前計算した組合わせは、装置の製造期間中又は例示的な単一ビットＦＩＲフィルタの各動作の前にステップ７０において計算することが可能である。
【００４２】
ステップ７２において、シリアルビットストリーム又はその他のデータ供給源からの第一ビットが組０の第一入力位置ノード、シフトレジスタ、可変レジスタ又は一時的レジスタ内にシフトされる。組０の入力ノード（この点においては、１ビットがシフト入力されたに過ぎないのでほとんどがゼロである）は、アドレスオフセット関数４４と共に又はなしで使用して事前計算した係数４６の組合わせのメモリにおける１つのメモリ位置をアドレスする。そのメモリ位置は組０におけるビットと同一の入力プロファイルを有する単一ビットＦＩＲフィルタの事前計算した結果を供給する。
【００４３】
ステップ７４において、組０のアドレスされたメモリ位置の内容が組１乃至ｍにおいて見つかった入力ビットと関連するメモリ位置の内容と累算される（これまでのこの場合には、それらは全て０ビットである）。ステップ７６において、累算結果が例示的な単一ビットＦＩＲフィルタの第一出力として供給される。
【００４４】
ステップ７８において、次のビットが入力内へシフトされ、従って第一データビット及び全てのその他のビットは１つ又はそれ以上の位置シフトされる。ステップ７２において、フィルタの長さに亘る入力ビットの読取りが再度実施され且つ各データ組に対する事前計算した値が検索される。ステップ７２，７４，７６，７８のループは、データビットがＦＩＲフィルタソフトウエアプログラム、ハードウエア又はその組合わせの中に流れ込む限り、繰返される。
【００４５】
図２に示した別の例示的実施例においては、単一ビットＦＩＲフィルタの代わりに、入力４２´を使用する２ビットＦＩＲフィルタが示されている。この場合には、２ビット幅ストリームのデータがχ01，χ02，χ11，χ12，χ31，χ32，．．．，χn1，χn2，．．．，χndとして入力４２´内へシフトされる（尚、ｎ＝ビット数及びｄ＝入力のビット幅）。
【００４６】
他の例示的実施例と同様の態様で、２ビット幅データの各々の係数乗算及び累算に対し事前計算したテーブルを作成する。その結果を入力データビットに関連するアドレスを有するメモリ位置内に格納する。
【００４７】
２ビットＦＩＲフィルタが動作すると、２ビットデータエントリが入力４２´をシフトダウンし且つ適宜の乗算及び累算結果がメモリからフェッチされる。フェッチされた結果は累算５０されてデータの各シフト移動に対し出力５２を発生する。理解されるように、事前計算した乗算及び累算機能に対し充分なメモリが使用可能である限り、２を超えるビット幅の入力ストリームを有する実施例も可能である。
【００４８】
以上、本発明の具体的実施の態様について詳細に説明したが、本発明は、これら具体例にのみ制限されるべきものではなく、本発明の技術的範囲を逸脱することなしに種々の変形が可能であることは勿論である。
【図面の簡単な説明】
【００４９】
【図１】スタンダードの単一ビットＦＩＲフィルタを示した概略ブロック図。
【図２】本発明に基づく単一又はマルチビットＦＩＲフィルタの例示的実施例を示した概略ブロック図。
【図３】例示的ＦＩＲフィルタのメモリをローディングするための例示的な技術を示したフローチャート。
【図４】例示的なＦＩＲフィルタの例示的なプロセスを示したフローチャート。
【符号の説明】
【００５０】
１０：スタンダードのＦＩＲフィルタ
１２：入力
１４：遅延線
１６：乗算器
１８：出力
２０：加算器
２２：出力
４０：単一ビットＦＩＲフィルタ
４２：入力
４４：メモリアドレスオフセット
４６：メモリ位置
４８：加算結果
５０：加算器又は累算器
【図１】
2005198287.tif 000008
【図２】
2005198287.tif 000009
【図３】
2005198287.tif 000010
【図４】
2005198287.tif 000011