(57)【要約】【課題】デュアルポートＲＡＭを使用せずにフィルタ演算処理の高速化を図る。【解決手段】対称形の有限インパルス応答を示すフィルタ係数系列と入力データ系列とのたたみ込み演算を行うＦＩＲフィルタ演算器において、第１のデータ対を格納する第１のシングルポートＲＡＭと、第２のデータ対を格納する第２のシングルポートＲＡＭと、前記第１及び前記第２のシングルポートＲＡＭから前記第１及び前記第２のデータ対を読み出して当該データ対を構成する２個の入力データを交互に加算又は減算する入力データ演算部と、前記入力データ演算部の演算結果とそれに対応するフィルタ係数との乗算結果を累積加算する係数乗加算部と、を有する。【選択図】  図１
2006319941.tif 000002
【特許請求の範囲】
【請求項１】
対称形の有限インパルス応答を示すフィルタ係数系列と入力データ系列とのたたみ込み演算を行うＦＩＲフィルタ演算器において、
第１のデータ対を格納する第１のシングルポートＲＡＭと、
第２のデータ対を格納する第２のシングルポートＲＡＭと、
前記第１及び前記第２のシングルポートＲＡＭから前記第１及び前記第２のデータ対を読み出して当該データ対を構成する２個の入力データを交互に加算又は減算する入力データ演算部と、
前記入力データ演算部の演算結果とそれに対応するフィルタ係数との乗算結果を累積加算する係数乗加算部と、
を有することを特徴とするＦＩＲフィルタ演算器。
【請求項２】
前記入力データ演算部は、
前記第１のシングルポートＲＡＭから読み出された前記第１のデータ対の入力データを１マシン・サイクル分遅延出力させる第１の遅延器と、
前記第１の遅延器の出力を更に前記１マシン・サイクル分遅延出力させる第２の遅延器と、
前記第２のシングルポートＲＡＭから読み出された前記第２のデータ対の入力データを前記１マシン・サイクル分遅延出力させる第３の遅延器と、
前記第３の遅延器において遅延出力させた前記第２のデータ対の入力データを更に前記１マシン・サイクル分遅延させる第４の遅延器と、
前記第２及び前記第４の遅延器の遅延出力を前記１マシン・サイクル毎に交互に選択出力する第１のセレクタと、
前記第１及び前記第３の遅延器の遅延出力を前記１マシン・サイクル毎に交互に選択出力する第２のセレクタと、
前記第１及び前記第２のセレクタの選択出力を加算する第１の加算器と、
を有することを特徴とする請求項１に記載のＦＩＲフィルタ演算器。
【請求項３】
前記入力データ演算部は、
前記第１のシングルポートＲＡＭから読み出された前記第１のデータ対の入力データを１マシン・サイクル分遅延出力させる第１の遅延器と、
前記第１の遅延器の出力を更に前記１マシン・サイクル分遅延出力させる第２の遅延器と、
前記第２のシングルポートＲＡＭから読み出された前記第２のデータ対の入力データを前記１マシン・サイクル分遅延出力させる第３の遅延器と、
前記第３の遅延器において遅延出力させた前記第２のデータ対の入力データを更に前記１マシン・サイクル分遅延させる第４の遅延器と、
前記第２及び前記第４の遅延器の遅延出力を前記１マシン・サイクル毎に交互に選択出力する第１のセレクタと、
前記第１及び前記第３の遅延器の遅延出力を前記１マシン・サイクル毎に交互に選択出力する第２のセレクタと、
前記第１及び前記第２のセレクタの選択出力を減算する減算器と、
を有することを特徴とする請求項１に記載のＦＩＲフィルタ演算器。
【請求項４】
前記入力データ系列は、第１及び第２のチャンネルのデータ系列を含み、前記第１のデータ対は、前記第１のチャンネルのデータ系列のうち、同一の値を示すフィルタ係数の乗算対象となる２個の入力データで構成されるとともに、前記第２のデータ対は、前記第２のチャンネルのデータ系列のうち、同一の値を示すフィルタ係数の乗算対象となる２個の入力データで構成されること、を特徴とする請求項２又は３に記載のＦＩＲフィルタ演算器。
【請求項５】
前記係数乗加算部は、
前記乗算の結果と、前記累積加算の前回の結果との加算を行う第２の加算器と、
前記第２の加算器の加算の結果を前記１マシン・サイクル分遅延出力する第５の遅延器と、
前記第５の遅延器において遅延出力された前記第２の加算器の加算結果を、更に前記１マシン・サイクル分遅延出力する第６の遅延器と、
を有することを特徴とする請求項４に記載のＦＩＲフィルタ演算器。
【請求項６】
前記入力データ系列は、一のチャンネルのデータ系列であり、前記第１及び前記第２のデータ対は、夫々、同一の値を示すフィルタ係数の乗算対象となる２個の入力データで構成されること、を特徴とする請求項２又は３に記載のＦＩＲフィルタ演算器。
【請求項７】
対称形の有限インパルス応答を示すフィルタ係数系列と入力データ系列とのたたみ込み演算を行うＦＩＲフィルタ演算器において、
データ対を構成する２個の入力データのうち、一方の入力データを格納する第１のシングルポートＲＡＭ、及び、他方の入力データを格納する第２のシングルポートＲＡＭと、
前記第１及び前記第２のシングルポートＲＡＭから前記データ対を構成する２個の入力データを読み出すとともに当該２個の入力データを加算又は減算する入力データ演算部と、
前記入力データ演算部の演算結果とそれに対応するフィルタ係数との乗算結果を累積加算する係数乗加算部と、
を有することを特徴とするＦＩＲフィルタ演算器。
【請求項８】
前記入力データ演算部は、
前記第１のシングルポートＲＡＭから読み出された前記データ対の一方の入力データを１マシン・サイクル分遅延出力する第１の遅延器と、
前記第２のシングルポートＲＡＭから読み出された前記データ対の他方の入力データを前記１マシン・サイクル分遅延出力する第２の遅延器と、
前記第１及び前記第２の遅延器の遅延出力を加算する加算器と、
を有することを特徴とする請求項７に記載のＦＩＲフィルタ演算器。
【請求項９】
前記入力データ演算部は、
前記第１のシングルポートＲＡＭから読み出された前記データ対の一方の入力データを１マシン・サイクル分遅延出力する第１の遅延器と、
前記第２のシングルポートＲＡＭから読み出された前記データ対の他方の入力データを前記１マシン・サイクル分遅延出力する第２の遅延器と、
前記第１及び前記第２の遅延器の遅延出力を減算する減算器と、
を有することを特徴とする請求項７に記載のＦＩＲフィルタ演算器。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ＦＩＲフィルタ演算器に関する。
【背景技術】
【０００２】
音声や画像のデジタル信号処理では、様々なＦＩＲ（Finite Impulse Response）フィルタ演算処理が実行される。
【０００３】
例えば、デジタルオーディオ機器の場合、アップサンプリング後のインターポレーション・フィルタ演算処理や、ダウンサンプリング前のデシメーション・フィルタ演算処理等がある。なお、これらのフィルタ演算処理を実現するＦＩＲフィルタ演算器として、一般的に、直線位相ＦＩＲフィルタ（例えば、以下に示す特許文献１を参照）が用いられる。
【０００４】
さらに、デジタル受信器の場合、いわゆる９０°移相処理があり、この処理を実現するＦＩＲフィルタ演算器として、ヒルベルトフィルタ演算器（例えば、以下に示す特許文献２を参照）が用いられる。なお、ヒルベルトフィルタ演算器は、つぎの式（１）で表現される周波数特性Ｈ（ω）を有する。すなわち、ヒルベルトフィルタ演算器は、振幅特性を周波数特性に依らず一定とさせるとともに、正の周波数領域では位相を“π／２”遅らせ、負の周波数領域では位相を“π／２”進ませる特性を有する。但し、ωｓは標本化角周波数である。  
Ｈ（ω）＝−ｊ（０＜ω＜ωｓ／２）＝ｊ（−ωｓ／２＜ω＜０）  …式（１）
【０００５】
ところで、前述したようなＦＩＲフィルタ演算器は、線形時不変システムに基づき、有限インパルス応答を示すフィルタ係数系列Ｃｎと入力データ系列ｘ（ｔ−ｎ）とのたたみ込み演算を行うことで、直線位相特性の出力データｙ（ｔ）を得るものである。なお、たたみ込み演算とは、つぎの式（２）で表現される。  
ｙ（ｔ）＝Σｘ（ｔ−ｎ）＊Ｃｎ（但し、ｎ＝０〜Ｎ）
＝ｘ（ｔ）＊Ｃ０＋ｘ（ｔ−１）＊Ｃ１＋・・・＋ｘ（ｔ−Ｎ）＊ＣＮ  …式（２）
【０００６】
また、ＦＩＲフィルタ演算器は、フィルタ係数系列Ｃｎの総数によって、偶数タップの場合と奇数タップの場合とに大別される。図８は、偶数タップの一例として“８”タップのＦＩＲフィルタ演算器の概念的な構成を示す。図９は、奇数タップの一例として“７”タップのＦＩＲフィルタ演算器の概念的な構成を示す。なお、タップとは、図８及び図９において、後述の遅延器群１からの所定数分の入力データの取り出し点のことである。
【０００７】
なお、直線位相ＦＩＲフィルタ演算器の場合、有限インパルス応答を示すフィルタ係数系列Ｃｎ（ｎ＝０〜Ｎ）の値が、偶対称形（ｆ（ｘ）＝ｆ（−ｘ））を成す特徴がある。例えば、図８に示した例では、フィルタ係数｛Ｃ０、Ｃ７｝、フィルタ係数｛Ｃ１、Ｃ６｝、フィルタ係数｛Ｃ２、Ｃ５｝、フィルタ係数｛Ｃ３、Ｃ４｝の各データ対の中の各値は同一の値を示す。
【０００８】
また、ヒルベルトフィルタ演算器の場合も同様に、有限インパルス応答を示すフィルタ係数系列Ｃｎ（ｎ＝０〜Ｎ）の値が、奇対称形（ｆ（ｘ）＝−ｆ（−ｘ））を成す特徴がある。例えば、図８に示した例では、フィルタ係数｛−Ｃ０、Ｃ７｝、フィルタ係数｛−Ｃ１、Ｃ６｝、フィルタ係数｛−Ｃ２、Ｃ５｝、フィルタ係数｛−Ｃ３、Ｃ４｝の各データ対の中の各絶対値は同一の値を示す。
【０００９】
以下、ＦＩＲフィルタ演算器として、図８に示す“８”タップの場合であり且つ直線位相ＦＩＲフィルタ演算器である場合を例に挙げて説明する。
【００１０】
図１０は、従来例１に係るＦＩＲフィルタ演算器のハードウェア構成を示す。  
データＲＡＭ４は、入力データ系列Ｄｎを格納するシングルポートのＲＡＭであり、レジスタ５は、データＲＡＭ４から１マシン・サイクル毎に読み出された入力データ系列Ｄｎ（ｎ＝０〜Ｎ）の各入力データＤｎを一時的に格納する。係数格納ＲＯＭ６は、フィルタ係数系列Ｃｎ（ｎ＝０〜Ｎ）を格納するＲＯＭであり、レジスタ７は、係数格納ＲＯＭ６から１マシン・サイクル毎に読み出されたフィルタ係数系列Ｃｎ（ｎ＝０〜Ｎ）の各フィルタ係数Ｃｎを一時的に格納する。
【００１１】
乗算器８は、レジスタ５から１マシン・サイクル毎に遅延出力される入力データＤｎとレジスタ７から１マシン・サイクル毎に遅延出力されるフィルタ係数Ｃｎとの乗算を行うものであり、レジスタ９は、乗算器８の乗算結果を一時的に格納する。加算器１０は、レジスタ９から１マシン・サイクル毎に遅延出力される乗算結果とレジスタ１１から１マシン・サイクル毎に遅延出力される前回の累積加算結果との累積加算を行うものであり、レジスタ１１は、加算器１０の累積加算結果を一時的に格納するとともに出力データｙ（ｔ）として１マシン・サイクル毎に出力する。
【００１２】
図１１は、図１０に示した従来例１に係るＦＩＲフィルタ演算器の動作タイミングを示す。同図に示す時間ｔ＝“０”から時間ｔ＝“９”までの各期間が、１マシン・サイクルに相当する。図１１に示すように、従来例１では、時間ｔ＝“０”から時間ｔ＝“９”まで、すなわち１０マシン・サイクル分、フィルタ演算処理を実行する。この結果、時間ｔ＝“９”のとき、最終的な出力データｙ（９）｛＝Ａ０＋Ａ１＋・・・＋Ａ７｝が、レジスタ１１より得られる。
【００１３】
ところで、直線位相ＦＩＲフィルタの場合、前述したように、有限インパルス応答を示すフィルタ係数系列Ｃｎ（ｎ＝０〜Ｎ）が左右対称形を成す特徴がある。そこで、同一の値を示すフィルタ係数Ｃｎの乗算対象となる入力データＤｎのデータ対（以下、データ対と称する。）を、当該フィルタ係数Ｃｎとの乗算前に予め加算することで、トータル乗算回数を半分に削減できるため効率的である。
【００１４】
例えば、フィルタ係数｛Ｃ０、Ｃ１、Ｃ２、Ｃ３｝との乗算前に、つぎの式（３）で示すように、データ対｛Ｄ０、Ｄ７｝、データ対｛Ｄ１、Ｄ６｝、データ対｛Ｄ２、Ｄ５｝、データ対｛Ｄ３、Ｄ４｝の各中身を予め加算しておく。  
ｙ（ｔ）＝（Ｄ０＋Ｄ７）＊Ｃ０＋（Ｄ１＋Ｄ６）＊Ｃ１＋（Ｄ２＋Ｄ５）＊Ｃ２
＋（Ｄ３＋Ｄ４）＊Ｃ３  …  式（３）
図１２は、式（３）に基づく従来例２に係る直線位相ＦＩＲフィルタ演算器のハードウェア構成を示す。
【００１５】
図１０に示した従来例１との相違点は、レジスタ５と乗算器８の間に、レジスタ１２、加算器１３、レジスタ１４を設けた点にある。  
まず、データＲＡＭ４から２マシン・サイクル毎に各データ対が読み出される。すなわち、データＲＡＭ４から１マシン・サイクル毎に各データ対の一方及び他方の入力データＤｎが交互に読み出される。  
レジスタ５は、データＲＡＭ４から交互に読み出された各データ対の一方及び他方の入力データＤｎを、レジスタ１２及び加算器１３の一方の入力に対して、１マシン・サイクル分遅延出力させる。
【００１６】
レジスタ１２は、レジスタ５から１マシン・サイクル毎に交互に遅延出力された各データ対の一方及び他方の入力データＤｎを、更に、１マシン・サイクル分、加算器１３の他方の入力に対して遅延出力させる。このレジスタ１２を設けることで、加算器１３の一方及び他方の入力では、各データ対の一方及び他方の入力データＤｎの同期が図られる。
【００１７】
加算器１３は、２マシン・サイクル毎に、レジスタ１２から遅延出力された各データ対の一方の入力データＤｎと、レジスタ５から遅延出力された各データ対の他方の入力データＤｎとの加算を行い、当該加算の結果をレジスタ１４に一時的に格納する。そして、レジスタ１４は、加算器１３の加算結果を、１マシン・サイクル分、乗算器８の一方の入力へと遅延出力させる。
【００１８】
図１３は、図１２に示した従来例２のＦＩＲフィルタ演算器の動作タイミングを示す。同図に示す時間ｔ＝“０”から時間ｔ＝“１０”までの各期間が、１マシン・サイクルに相当する。図１３に示すように、従来例２では、時間ｔ＝“０”から時間ｔ＝“１０”まで、すなわち１１マシン・サイクル分、フィルタ演算処理を実行する。この結果、時間ｔ＝“１０”のとき、最終的な出力データｙ（１０）｛＝Ａ０＋Ａ１＋・・・＋Ａ７｝が、レジスタ１１より得られる。
【００１９】
図１４は、従来例２とは異なる、式（３）に基づく従来例３のＦＩＲフィルタ演算器のハードウェア構成を示す。なお、以下の説明で、従来例２と従来例３の１マシン・サイクルの周期は同一長とする。
【００２０】
図１２に示した従来例２との相違点は、シングルポートのデータＲＡＭ４をデュアルポートのデータＲＡＭ１５に置き換えた点と、データＲＡＭ１５と加算器１３の間の構成として、各ポートのデータバスにレジスタ１６とレジスタ１７を夫々設けた点である。
【００２１】
すなわち、従来例２のように２マシン・サイクル毎ではなく、データＲＡＭ１５から各データ対の一方及び他方の入力データＤｎが、１マシン・サイクル毎に同時に読み出される。そして、レジスタ１６は、データＲＡＭ１５から読み出された各データ対の一方の入力データＤｎを、加算器１３の一方の入力に対して、１マシン・サイクル分遅延出力させる。同様に、レジスタ１７は、データＲＡＭ１５から読み出された各データ対の他方の入力データＤｎを、加算器１３の他方の入力に対して、１マシン・サイクル分遅延出力させる。この結果、加算器１３は、従来例２のように２マシン・サイクル毎ではなく、各データ対の一方及び他方の入力データＤｎの加算を、１マシン・サイクル毎に実行する。
【００２２】
図１５は、図１４に示した従来例３に係るＦＩＲフィルタ演算器の動作タイミングを示す。同図に示す時間ｔ＝“０”から時間ｔ＝“６”までの各期間が、１マシン・サイクルに相当する。図１５に示すように、従来例３では、時間ｔ＝“０”から時間ｔ＝“６”まで、すなわち７マシン・サイクル分、フィルタ演算処理を実行する。この結果、時間ｔ＝“６”のとき、最終的な出力データｙ（６）｛＝Ａ０＋Ａ１＋・・・＋Ａ７｝が、レジスタ１１より得られる。
【特許文献１】特開２００１−７７６６９号公報
【特許文献２】特開２００３−２８３２５５号公報
【発明の開示】
【発明が解決しようとする課題】
【００２３】
まず、図１０に示した従来例１では、フィルタ係数系列Ｃｎ（ｎ＝０〜Ｎ）が左右対称形である特徴を有効に活用しておらず、フィルタ係数Ｃｎと入力データＤｎとの乗算回数が多いという欠点がある。
【００２４】
つぎに、図１２に示した従来例２では、フィルタ係数系列Ｃｎ（ｎ＝０〜Ｎ）が左右対称形である特徴を有効に活用しており、フィルタ係数Ｃｎと入力データＤｎとの乗算回数が減少するという利点がある。しかしながら、図１１に示した従来例１の動作タイミングと対比した場合、フィルタ演算処理に要するトータル時間自体に大きな変化が見られない。よって、フィルタ演算処理に要するトータル時間の大幅な短縮を図るためには、１マシン・サイクルあたりの期間を短縮させる必要があるが、トータル消費電力の増加が免れないので好ましくない。
【００２５】
つぎに、図１４に示した従来例３では、フィルタ係数系列Ｃｎ（ｎ＝０〜Ｎ）が左右対称形である特徴を有効に活用しており、フィルタ係数Ｃｎと入力データＤｎとの乗算回数が減少するという利点がある。さらに、図１４に示した従来例３では、図１２に示した従来例２と対比して、フィルタ演算処理に要するトータル時間、すなわち、マシン・サイクル数が略半分に抑えられる。
【００２６】
しかしながら、図１４に示した従来例３では、入力データ系列Ｄｎ（ｎ＝０〜Ｎ）を格納するメモリとして、デュアルポートＲＡＭが必要となる。ここで、デュアルポートＲＡＭの回路面積は、同一の記憶容量のシングルポートＲＡＭの回路面積と対比して略２倍の回路面積を示し、半分の記憶容量のシングルポートＲＡＭを２組設けた場合の回路面積と対比しても大きくなる。
【００２７】
このように、図１４に示した従来例３では、フィルタ演算処理に要するトータル時間は短縮されるという利点があるが、デュアルポートＲＡＭを採用しているが故に回路面積が大きくなり、ユーザーへの安価なＦＩＲフィルタ演算器の提供が困難であった。
【課題を解決するための手段】
【００２８】
前述した課題を解決するための主たる本発明は、対称形の有限インパルス応答を示すフィルタ係数系列と入力データ系列とのたたみ込み演算を行うＦＩＲフィルタ演算器において、第１のデータ対を格納する第１のシングルポートＲＡＭと、第２のデータ対を格納する第２のシングルポートＲＡＭと、前記第１及び前記第２のシングルポートＲＡＭから前記第１及び前記第２のデータ対を読み出して当該データ対を構成する２個の入力データを交互に加算又は減算する入力データ演算部と、前記加算の結果とそれに対応するフィルタ係数との乗算結果を累積加算する係数乗加算部と、を有することとする。
【発明の効果】
【００２９】
本発明によれば、デュアルポートＲＡＭを使用せずにフィルタ演算処理の高速化が可能なＦＩＲフィルタ演算器を提供することができる。
【発明を実施するための最良の形態】
【００３０】
＜第１実施形態＞
＝＝＝直線位相ＦＩＲフィルタ演算器（２チャンネル処理）の構成＝＝＝
本発明の第１実施形態に係る直線位相ＦＩＲフィルタ演算器のハードウェア構成例を図１に示す。
【００３１】
直線位相ＦＩＲフィルタ演算器は、例えば、Ａ／Ｄ変換装置やＤ／Ａ変換装置に内蔵若しくは外付けのインターポレーション・フィルタ回路やデシメーション・フィルタ回路、若しくは、標本化周波数変換装置に内蔵若しくは外付けのアンチエイリアス・フィルタ回路として提供される。また、夫々のフィルタ回路は、一般的に、ＣＰＵ等と対比して高速な積和演算処理が可能なＤＳＰ（Digital Signal Processor）として提供される。
【００３２】
本実施形態に係るフィルタ演算処理（たたみ込み演算処理）の対象となる入力データ系列Ｄｎ（ｎ＝０〜Ｎ）は、例えば、ステレオ２チャンネル方式において、標本化周波数４４．１ｋＨｚで標本化された、Ｌチャンネル（『第１のチャンネル』）のデータ系列ＤｍＬ（ｍ＝０〜Ｎ）とＲチャンネル（『第２のチャンネル』）のデータ系列ＤｍＲ（ｍ＝０〜Ｎ）を含む。
【００３３】
まず、入力データ系列Ｄｎ（ｎ＝０〜Ｎ）を、同一の値を示すフィルタ係数Ｃｎの乗算対象とする２個の入力データＤｎで構成される『データ対』毎に分類するとともに、当該データ対を、更に、フィルタ係数Ｃｎとの乗算を奇数番目（１番目、３番目、・・・）に実行する第１のデータ対と、偶数番目（０番目を除く、２番目、４番目、・・・）に実行する第２のデータ対とに分類する。
【００３４】
ここで、本実施形態では、第１のデータ対は、Ｌチャンネルのデータ系列ＤｍＬ（ｍ＝０〜Ｎ）のうち、同一の値を示すフィルタ係数Ｃｎの乗算対象となる２個の入力データＤｎで構成されるとともに、第２のデータ対は、Ｒチャンネルのデータ系列ＤｍＲ（ｍ＝０〜Ｎ）のうち、同一の値を示すフィルタ係数の乗算対象となる２個の入力データで構成される。勿論、第１のデータ対をＲチャンネルに、第２のデータ対をＬチャンネルに対応づけてもよい。
【００３５】
データＲＡＭ２０は、本発明に係る『第１のシングルポートＲＡＭ』の一実施形態であり、Ｌチャンネルのデータ系列ＤｍＬ（ｍ＝０〜Ｎ）を構成する第１のデータ対を格納するものである。  
データＲＡＭ３０は、本発明に係る『第２のシングルポートＲＡＭ』の一実施形態であり、Ｒチャンネルのデータ系列ＤｍＲ（ｍ＝０〜Ｎ）を構成する第２のデータ対を格納するものである。
【００３６】
ここで、本実施形態に係る直線位相ＦＩＲフィルタ演算器は、図１０、図１２に示した従来例１、２のように、Ｌチャンネルのデータ系列ＤｍＬ（ｍ＝０〜Ｎ）とＲチャンネルのデータ系列ＤｍＲ（ｍ＝０〜Ｎ）に対するフィルタ演算処理を、独立に実施するのではなく、同時並列的に実施するものである。すなわち、Ｌチャンネルのデータ系列ＤｍＬ（ｍ＝０〜Ｎ）及びＲチャンネルのデータ系列ＤｍＲ（ｍ＝０〜Ｎ）と、フィルタ係数系列Ｃｎ（ｎ＝０〜Ｎ）と、のたたみ込み演算が、１マシン・サイクル毎に交互に行われる。
【００３７】
レジスタ２１、２２、３１、３２、６１、セレクタ４０、セレクタ５０、加算器６０で構成される回路は、本発明に係る『入力データ演算部』の一実施形態であり、データＲＡＭ２０及びデータＲＡＭ３０から第１及び第２のデータ対を交互に読み出すとともに当該第１及び第２のデータ対を構成する２個の入力データを順次加算する。
【００３８】
レジスタ２１及びレジスタ２２は、本発明に係る入力データ演算部の『第１の遅延器』及び『第２の遅延器』の一実施形態である。レジスタ２１は、データＲＡＭ２０から読み出された第１のデータ対の一方の入力データＤｍＬを１マシン・サイクル分遅延出力させる。レジスタ２２は、データＲＡＭ２０から読み出された第１のデータ対の他方の入力データＤｍＬをレジスタ２１にて１マシン・サイクル分遅延出力させる際に、レジスタ２１において遅延出力させた第１のデータ対の一方の入力データＤｍＬを更に１マシン・サイクル分遅延出力させる。
【００３９】
レジスタ３１及びレジスタ３２は、本発明に係る入力データ演算部の『第３の遅延器』及び『第４の遅延器』の一実施形態である。レジスタ３１は、レジスタ２２と同様に、データＲＡＭ２０から読み出された第１のデータ対の他方の入力データＤｍＬをレジスタ２１にて１マシン・サイクル分遅延出力させる際に、データＲＡＭ３０から読み出された第２のデータ対の一方の入力データＤｍＲを１マシン・サイクル分遅延出力させる。レジスタ３２は、データＲＡＭ３０から読み出された第２のデータ対の他方の入力データＤｍＲをレジスタ３１にて１マシン・サイクル分遅延出力させる際に、レジスタ３１において遅延出力させた第２のデータ対の一方の入力データＤｍＲを更に１マシン・サイクル分遅延させる。
【００４０】
セレクタ４０及びセレクタ５０は、本発明に係る入力データ演算部の『第１のセレクタ』及び『第２のセレクタ』に該当する。セレクタ４０は、レジスタ２２及びレジスタ３２において遅延出力させた入力データＤｍＬ及びＤｍＲを１マシン・サイクル毎に交互に選択出力する。セレクタ５０は、レジスタ２１及びレジスタ３１において遅延出力させた入力データＤｍＬ及びＤｍＲを１マシン・サイクル毎に交互に選択出力する。
【００４１】
加算器６０は、本発明に係る入力データ演算部の『第１の加算器』に該当し、セレクタ４０及びセレクタ５０の選択出力を加算する。なお、加算器６０の加算結果は、レジスタ６１に格納される。
【００４２】
レジスタ７１、８１、９１、９２、係数格納ＲＯＭ７０、乗算器８０、加算器９０で構成される回路は、本発明に係る『係数乗加算部』の一実施形態であり、加算器６０の加算結果とそれに対応するフィルタ係数Ｃｎとの乗算を行い、さらに、その乗算結果を累積加算することで出力データｙ（ｔ）を得る。
【００４３】
係数格納ＲＯＭ７０は、フィルタ係数系列Ｃｎ（ｎ＝０〜Ｎ）を格納するＲＯＭであり、レジスタ７１は、係数格納ＲＯＭ７０から１マシン・サイクル毎に読み出されたフィルタ係数系列Ｃｎ（ｎ＝０〜Ｎ）の各フィルタ係数Ｃｎを一時的に格納する。
【００４４】
乗算器８０は、レジスタ６１から１マシン・サイクル毎に遅延出力される加算器６０の加算結果と、レジスタ７１から１マシン・サイクル毎に遅延出力されるフィルタ係数Ｃｎとの乗算を行うものであり、レジスタ８１は、乗算器８０の乗算結果を一時的に格納する。
【００４５】
加算器９０は、本発明に係る係数乗加算部の『第２の加算器』の一実施形態である。加算器９０は、レジスタ８１から１マシン・サイクル毎に遅延出力される乗算器８０の乗算結果と、レジスタ９２から１マシン・サイクル毎に遅延出力される前回の累積加算結果との累積加算を行うものである。
【００４６】
レジスタ９１及びレジスタ９２は、本発明に係る係数乗加算部の『第５の遅延器』及び『第６の遅延器』の一実施形態である。レジスタ９１は、加算器９０の累積加算結果を一時的に格納するとともに、１マシン・サイクル毎に出力データｙ（ｔ）として出力する。レジスタ９２は、レジスタ９１において遅延出力された加算器９０の累積加算結果を、更に１マシン・サイクル分遅延出力させて累積加算の結果を得る。
【００４７】
なお、図１に示す加算器９０ならびにレジスタ９１及びレジスタ９２の構成によって、Ｌチャンネルのデータ系列ＤｍＬ（ｍ＝０〜Ｎ）とＲチャンネルのデータ系列ＤｍＲ（ｍ＝０〜Ｎ）夫々のフィルタ演算処理の結果が、交互にレジスタ９１から出力される。
【００４８】
＝＝＝ヒルベルトフィルタ演算器（２チャンネル処理）の構成＝＝＝
本発明の第１実施形態に係るヒルベルトフィルタ演算器のハードウェア構成例を図３に示す。  
図１に示した直線位相ＦＩＲフィルタ演算器との相違点は、加算器６０が減算器１００に置き換わった点にある。すなわち、ヒルベルトフィルタ演算器の場合、フィルタ係数系列Ｃｎ（ｎ＝０〜Ｎ）が奇対称形を成して加算ではなく減算を行う必要があるので、減算器１００が設けられる。  
減算器１００は、本発明に係る入力データ演算部の『減算器』に該当し、セレクタ４０及びセレクタ５０の選択出力を減算する。なお、本実施形態では、減算器１００は、セレクタ４０の選択出力よりセレクタ５０の選択出力を減算する。また、減算器１００の減算結果は、レジスタ６１に格納される。
【００４９】
＝＝＝ＦＩＲフィルタ演算器の動作（２チャンネル処理、偶数タップの場合）＝＝＝
図２は、偶数タップの一例として“８”タップの場合における、図１に示した直線位相ＦＩＲフィルタ演算器の動作タイミングを示したものである。同様に、図４は、偶数タップの一例として“８”タップの場合における、図３に示したヒルベルトフィルタ演算器の動作タイミングを示したものである。なお、以下では、直線位相ＦＩＲフィルタ演算器の場合を中心に説明する。また、図２に示す時間ｔ＝“０”から時間ｔ＝“１１”までの各期間が、１マシン・サイクルに相当する。
【００５０】
まず、時間ｔ＝“０”のとき、データＲＡＭ２０から読み出された第１のデータ対｛Ｄ０Ｌ、Ｄ７Ｌ｝の一方の入力データＤ０Ｌがレジスタ２１に一時的に格納される。
【００５１】
つぎに、時間ｔ＝“１”のとき、レジスタ２１より遅延出力された第１のデータ対｛Ｄ０Ｌ、Ｄ７Ｌ｝の一方の入力データＤ０Ｌがレジスタ２２に一時的に格納される。また、データＲＡＭ２０から読み出された第１のデータ対｛Ｄ０Ｌ、Ｄ７Ｌ｝の他方の入力データＤ７Ｌがレジスタ２１に一時的に格納される。さらに、データＲＡＭ３０から読み出された第２のデータ対｛Ｄ０Ｒ、Ｄ７Ｒ｝の一方の入力データＤ０Ｒがレジスタ３１に一時的に格納される。
【００５２】
つぎに、時間ｔ＝“２”のとき、セレクタ４０は、レジスタ２２から出力された、第１のデータ対｛Ｄ０Ｌ、Ｄ７Ｌ｝の一方の入力データＤ０Ｌを、選択出力する。また、レジスタ２１より遅延出力された第１のデータ対｛Ｄ０Ｌ、Ｄ７Ｌ｝の他方の入力データＤ７Ｌが、レジスタ２２に一時的に格納されるとともに、セレクタ５０は、これを選択出力する。この結果、加算器６０は、セレクタ４０から選択出力された入力データＤ０Ｌと、セレクタ５０から選択出力された入力データＤ７Ｌと、の加算を行い、その加算結果｛Ｄ０Ｌ＋Ｄ７Ｌ｝をレジスタ６１へと一時的に格納する。さらに、データＲＡＭ２０から読み出されたつぎの第１のデータ対｛Ｄ１Ｌ、Ｄ６Ｌ｝の一方の入力データＤ１Ｌが、レジスタ２１に一時的に格納される。
【００５３】
また、時間ｔ＝“２”のとき、レジスタ３１より遅延出力された第２のデータ対｛Ｄ０Ｒ、Ｄ７Ｒ｝の一方の入力データＤ０Ｒが、レジスタ３２に一時的に格納される。また、データＲＡＭ３０から読み出された第２のデータ対｛Ｄ０Ｒ、Ｄ７Ｒ｝の他方の入力データＤ７Ｒがレジスタ３１に一時的に格納される。さらに、係数格納ＲＯＭ７０から、第１のデータ対｛Ｄ０Ｌ、Ｄ７Ｌ｝及び第２のデータ対｛Ｄ０Ｒ、Ｄ７Ｒ｝の共通因子であるフィルタ係数Ｃ０が読み出されレジスタ７１に一時的に格納される。
【００５４】
つぎに、時間ｔ＝“３”のとき、乗算器８０は、レジスタ７１より遅延出力されたフィルタ係数Ｃ０と、レジスタ６１より遅延出力された加算器６０の加算結果｛Ｄ０Ｌ＋Ｄ７Ｌ｝との乗算を行い、その乗算結果｛Ａ０Ｌ（＝Ｃ０＊Ｄ０Ｌ）＋Ａ７Ｌ（＝Ｃ０＊Ｄ７Ｌ）｝をレジスタ８１に一時的に格納する。
【００５５】
また、時間ｔ＝“３”のとき、セレクタ４０は、レジスタ３２から出力された、第２のデータ対｛Ｄ０Ｒ、Ｄ７Ｒ｝の一方の入力データＤ０Ｒを、選択出力する。さらに、レジスタ３１より遅延出力された第２のデータ対｛Ｄ０Ｒ、Ｄ７Ｒ｝の他方の入力データＤ７Ｒが、レジスタ３２に一時的に格納されるとともに、セレクタ５０は、これを選択出力する。この結果、加算器６０は、セレクタ４０から選択出力された入力データＤ０Ｒと、セレクタ５０から選択出力された入力データＤ７Ｒと、の加算を行い、その加算結果｛Ｄ０Ｒ＋Ｄ７Ｒ｝をレジスタ６１へと一時的に格納する。さらに、データＲＡＭ３０から読み出されたつぎの第２のデータ対｛Ｄ１Ｒ、Ｄ６Ｒ｝の一方の入力データＤ１Ｒが、レジスタ３１に一時的に格納される。
【００５６】
さらに、時間ｔ＝“３”のとき、レジスタ２１より遅延出力されたつぎの第１のデータ対｛Ｄ１Ｌ、Ｄ６Ｌ｝の一方の入力データＤ１Ｌが、レジスタ２２に一時的に格納される。また、データＲＡＭ２０から読み出されたつぎの第１のデータ対｛Ｄ１Ｌ、Ｄ６Ｌ｝の他方の入力データＤ６Ｌがレジスタ２１に一時的に格納される。
【００５７】
つぎに、時間ｔ＝“４”のとき、レジスタ８１より遅延出力された乗算器８０の乗算結果｛Ａ０Ｌ＋Ａ７Ｌ）｝が、加算器９０の一方の入力へと供給される。なお、加算器９０の他方の入力は、累積加算が未実施のため“０”とするが、例えば、加算器９０の他方の入力に対して、レジスタ９２又はデータ“０”を格納したレジスタ（不図示）の一方を選択して出力するセレクタ（不図示）によって実現する。
【００５８】
よって、加算器９０は、レジスタ８１より遅延出力された乗算結果｛Ａ０Ｌ＋Ａ７Ｌ｝を、レジスタ９１に一時的に格納する。さらに、乗算器８０は、レジスタ７１より遅延出力されたフィルタ係数Ｃ０と、レジスタ６１より遅延出力された加算器６０の加算結果｛Ｄ０Ｒ＋Ｄ７Ｒ｝との乗算を行い、その乗算結果｛Ａ０Ｒ（＝Ｃ０＊Ｄ０Ｒ）＋Ａ７Ｒ（＝Ｃ０＊Ｄ７Ｒ）｝をレジスタ８１に一時的に格納する。
【００５９】
また、時間ｔ＝“４”のとき、セレクタ４０は、レジスタ２２から出力された、第１のデータ対｛Ｄ１Ｌ、Ｄ６Ｌ｝の一方の入力データＤ１Ｌを、選択出力する。さらに、レジスタ２１より遅延出力された第１のデータ対｛Ｄ１Ｌ、Ｄ６Ｌ｝の他方の入力データＤ６Ｌが、レジスタ２２に一時的に格納されるとともに、セレクタ５０は、これを選択出力する。この結果、加算器６０は、セレクタ４０から選択出力された入力データＤ１Ｌと、セレクタ５０から選択出力された入力データＤ６Ｌと、の加算を行い、その加算結果｛Ｄ１Ｌ＋Ｄ６Ｌ｝をレジスタ６１へと一時的に格納する。さらに、データＲＡＭ２０からつぎの第１のデータ対｛Ｄ２Ｌ、Ｄ５Ｌ｝の一方の入力データＤ２Ｌが、レジスタ２１に一時的に格納される。
【００６０】
さらに、時間ｔ＝“４”のとき、レジスタ３１より遅延出力された第２のデータ対｛Ｄ１Ｒ、Ｄ６Ｒ｝の一方の入力データＤ１Ｒが、レジスタ３２に一時的に格納される。また、データＲＡＭ３０から読み出された第２のデータ対｛Ｄ１Ｒ、Ｄ６Ｒ｝の他方の入力データＤ６Ｒがレジスタ３１に一時的に格納される。さらに、係数格納ＲＯＭ７０から、第１のデータ対｛Ｄ１Ｌ、Ｄ６Ｌ｝及び第２のデータ対｛Ｄ１Ｒ、Ｄ６Ｒ｝の共通因子であるフィルタ係数Ｃ１が読み出されレジスタ７１に一時的に格納される。
【００６１】
つぎに、時間ｔ＝“５”のとき、レジスタ９１より遅延出力された加算器９０の累積加算結果｛Ａ０Ｌ＋Ａ７Ｌ｝が、レジスタ９２に一時的に格納される。また、レジスタ８１より遅延出力された乗算器８０の乗算結果｛Ａ０Ｒ＋Ａ７Ｒ｝が、加算器９０の一方の入力へと供給される。なお、加算器９０の他方の入力は、“０”のままである。よって、加算器９０は、レジスタ８１より遅延出力された乗算結果｛Ａ０Ｒ＋Ａ７Ｒ｝を、レジスタ９１に一時的に格納する。さらに、乗算器８０は、レジスタ７１より遅延出力されたフィルタ係数Ｃ１と、レジスタ６１より遅延出力された加算器６０の加算結果｛Ｄ１Ｌ＋Ｄ６Ｌ｝との乗算を行い、その乗算結果｛Ａ１Ｌ（＝Ｃ１＊Ｄ１Ｌ）＋Ａ６Ｌ（＝Ｃ１＊Ｄ６Ｌ）｝をレジスタ８１に一時的に格納する。
【００６２】
また、時間ｔ＝“５”のとき、セレクタ４０は、レジスタ３２から出力された、第２のデータ対｛Ｄ１Ｒ、Ｄ６Ｒ｝の一方の入力データＤ１Ｒを、選択出力する。さらに、レジスタ３１より遅延出力された第２のデータ対｛Ｄ１Ｒ、Ｄ６Ｒ｝の他方の入力データＤ６Ｒが、レジスタ３２に一時的に格納されるとともに、セレクタ５０は、これを選択出力する。
【００６３】
この結果、加算器６０は、セレクタ４０から選択出力された入力データＤ１Ｒと、セレクタ５０から選択出力された入力データＤ６Ｒと、の加算を行い、その加算結果｛Ｄ１Ｒ＋Ｄ６Ｒ｝をレジスタ６１へと一時的に格納する。さらに、データＲＡＭ３０からつぎの第２のデータ対｛Ｄ２Ｒ、Ｄ５Ｒ｝の一方の入力データＤ２Ｒが、レジスタ３１に一時的に格納される。
【００６４】
さらに、時間ｔ＝“５”のとき、レジスタ２１より遅延出力された第１のデータ対｛Ｄ２Ｌ、Ｄ５Ｌ｝の一方の入力データＤ２Ｌが、レジスタ２２に一時的に格納される。また、データＲＡＭ２０から読み出された第１のデータ対｛Ｄ２Ｌ、Ｄ５Ｌ｝の他方の入力データＤ５Ｌがレジスタ２１に一時的に格納される。
【００６５】
つぎに、時間ｔ＝“６”のとき、レジスタ９２より遅延出力された加算器９０の累積加算結果｛Ａ０Ｌ＋Ａ７Ｌ｝が加算器９０の他方の入力へと供給される。また、レジスタ９１より遅延出力された加算器９０の累積加算結果｛Ａ０Ｒ＋Ａ７Ｒ｝が、レジスタ９２に一時的に格納される。また、レジスタ８１より遅延出力された乗算器８０の乗算結果｛Ａ１Ｌ＋Ａ６Ｌ｝が、加算器９０の一方の入力へと供給される。よって、加算器９０は、レジスタ８１より遅延出力された乗算結果｛Ａ１Ｌ＋Ａ６Ｌ｝と、レジスタ９２より遅延出力された累積加算結果｛Ａ０Ｌ＋Ａ７Ｌ｝との累積加算を行い、その累積加算結果｛Ａ０Ｌ＋Ａ１Ｌ＋Ａ６Ｌ＋Ａ７Ｌ｝をレジスタ９１に一時的に格納する。さらに、乗算器８０は、レジスタ７１より遅延出力されたフィルタ係数Ｃ１と、レジスタ６１より遅延出力された加算器６０の加算結果｛Ｄ１Ｒ＋Ｄ６Ｒ｝との乗算を行い、その乗算結果｛Ａ１Ｒ（＝Ｃ１＊Ｄ１Ｒ）＋Ａ６Ｒ（＝Ｃ１＊Ｄ６Ｒ）｝をレジスタ８１に一時的に格納する。
【００６６】
また、時間ｔ＝“６”のとき、セレクタ４０は、レジスタ２２から出力された、第１のデータ対｛Ｄ２Ｌ、Ｄ５Ｌ｝の一方の入力データＤ２Ｌを、選択出力する。さらに、レジスタ２１より遅延出力された第１のデータ対｛Ｄ２Ｌ、Ｄ５Ｌ｝の他方の入力データＤ５Ｌが、レジスタ２２に一時的に格納されるとともに、セレクタ５０は、これを選択出力する。この結果、加算器６０は、セレクタ４０から選択出力された入力データＤ２Ｌと、セレクタ５０から選択出力された入力データＤ５Ｌと、の加算を行い、その加算結果｛Ｄ２Ｌ＋Ｄ５Ｌ｝をレジスタ６１へと一時的に格納する。さらに、データＲＡＭ２０からつぎの第１のデータ対｛Ｄ３Ｌ、Ｄ４Ｌ｝の一方の入力データＤ３Ｌが、レジスタ２１に一時的に格納される。
【００６７】
さらに、時間ｔ＝“６”のとき、レジスタ３１より遅延出力された第２のデータ対｛Ｄ２Ｒ、Ｄ５Ｒ｝の一方の入力データＤ２Ｒが、レジスタ３２に一時的に格納される。また、データＲＡＭ３０から読み出された第２のデータ対｛Ｄ２Ｒ、Ｄ５Ｒ｝の他方の入力データＤ５Ｒがレジスタ３１に一時的に格納される。さらに、係数格納ＲＯＭ７０から、第１のデータ対｛Ｄ２Ｌ、Ｄ５Ｌ｝及び第２のデータ対｛Ｄ２Ｒ、Ｄ５Ｒ｝の共通因子であるフィルタ係数Ｃ２が読み出されレジスタ７１に一時的に格納される。
【００６８】
つぎに、時間ｔ＝“７”のとき、レジスタ９２より遅延出力された加算器９０の累積加算結果｛Ａ０Ｒ＋Ａ７Ｒ｝が加算器９０の他方の入力へと供給される。また、レジスタ９１より遅延出力された加算器９０の累積加算結果｛Ａ１Ｌ＋Ａ６Ｌ｝が、レジスタ９２に一時的に格納される。また、レジスタ８１より遅延出力された乗算器８０の乗算結果｛Ａ１Ｒ＋Ａ６Ｒ｝が、加算器９０の一方の入力へと供給される。よって、加算器９０は、レジスタ８１より遅延出力された乗算結果｛Ａ１Ｒ＋Ａ６Ｒ｝と、レジスタ９２より遅延出力された累積加算結果｛Ａ０Ｒ＋Ａ７Ｒ｝との累積加算を行い、その累積加算結果｛Ａ０Ｒ＋Ａ１Ｒ＋Ａ６Ｒ＋Ａ７Ｒ｝をレジスタ９１に一時的に格納する。さらに、乗算器８０は、レジスタ７１より遅延出力されたフィルタ係数Ｃ２と、レジスタ６１より遅延出力された加算器６０の加算結果｛Ｄ２Ｌ＋Ｄ５Ｌ｝との乗算を行い、その乗算結果｛Ａ２Ｌ（＝Ｃ２＊Ｄ２Ｌ）＋Ａ５Ｌ（＝Ｃ２＊Ｄ５Ｌ）｝をレジスタ８１に一時的に格納する。
【００６９】
また、時間ｔ＝“７”のとき、セレクタ４０は、レジスタ３２から出力された、第２のデータ対｛Ｄ２Ｒ、Ｄ５Ｒ｝の一方の入力データＤ２Ｒを、選択出力する。さらに、レジスタ３１より遅延出力された第２のデータ対｛Ｄ２Ｒ、Ｄ５Ｒ｝の他方の入力データＤ５Ｒが、レジスタ３２に一時的に格納されるとともに、セレクタ５０は、これを選択出力する。この結果、加算器６０は、セレクタ４０から選択出力された入力データＤ２Ｒと、セレクタ５０から選択出力された入力データＤ５Ｒと、の加算を行い、その加算結果｛Ｄ２Ｒ＋Ｄ５Ｒ｝をレジスタ６１へと一時的に格納する。さらに、データＲＡＭ３０からつぎの第２のデータ対｛Ｄ３Ｒ、Ｄ４Ｒ｝の一方の入力データＤ３Ｒが、レジスタ３１に一時的に格納される。
【００７０】
さらに、時間ｔ＝“７”のとき、レジスタ２１より遅延出力された第１のデータ対｛Ｄ３Ｌ、Ｄ４Ｌ｝の一方の入力データＤ３Ｌが、レジスタ２２に一時的に格納される。また、データＲＡＭ２０から読み出された第１のデータ対｛Ｄ３Ｌ、Ｄ４Ｌ｝の他方の入力データＤ４Ｌがレジスタ２１に一時的に格納される。
【００７１】
つぎに、時間ｔ＝“８”のとき、レジスタ９２より遅延出力された加算器９０の累積加算結果｛Ａ０Ｌ＋Ａ１Ｌ＋Ａ６Ｌ＋Ａ７Ｌ｝が加算器９０の他方の入力へと供給される。また、レジスタ９１より遅延出力された加算器９０の累積加算結果｛Ａ０Ｒ＋Ａ１Ｒ＋Ａ６Ｒ＋Ａ７Ｒ｝が、レジスタ９２に一時的に格納される。また、レジスタ８１より遅延出力された乗算器８０の乗算結果｛Ａ２Ｌ＋Ａ５Ｌ｝が、加算器９０の一方の入力へと供給される。よって、加算器９０は、レジスタ８１より遅延出力された乗算結果｛Ａ２Ｌ＋Ａ５Ｌ｝と、レジスタ９２より遅延出力された累積加算結果｛Ａ０Ｌ＋Ａ１Ｌ＋Ａ６Ｌ＋Ａ７Ｌ｝との累積加算を行い、その累積加算結果｛Ａ０Ｌ＋Ａ１Ｌ＋Ａ２Ｌ＋Ａ５Ｌ＋Ａ６Ｌ＋Ａ７Ｌ｝をレジスタ９１に一時的に格納する。さらに、乗算器８０は、レジスタ７１より遅延出力されたフィルタ係数Ｃ２と、レジスタ６１より遅延出力された加算器６０の加算結果｛Ｄ２Ｒ＋Ｄ５Ｒ｝との乗算を行い、その乗算結果｛Ａ２Ｒ（＝Ｃ２＊Ｄ２Ｒ）＋Ａ５Ｒ（＝Ｃ２＊Ｄ５Ｒ）｝をレジスタ８１に一時的に格納する。
【００７２】
また、時間ｔ＝“８”のとき、セレクタ４０は、レジスタ２２から出力された、第１のデータ対｛Ｄ３Ｌ、Ｄ４Ｌ｝の一方の入力データＤ３Ｌを、選択出力する。さらに、レジスタ２１より遅延出力された第１のデータ対｛Ｄ３Ｌ、Ｄ４Ｌ｝の他方の入力データＤ４Ｌが、レジスタ２２に一時的に格納されるとともに、セレクタ５０は、これを選択出力する。この結果、加算器６０は、セレクタ４０から選択出力された入力データＤ３Ｌと、セレクタ５０から選択出力された入力データＤ４Ｌと、の加算を行い、その加算結果｛Ｄ３Ｌ＋Ｄ４Ｌ｝をレジスタ６１へと一時的に格納する。
【００７３】
さらに、時間ｔ＝“８”のとき、レジスタ３１より遅延出力された第２のデータ対｛Ｄ３Ｒ、Ｄ４Ｒ｝の一方の入力データＤ３Ｒが、レジスタ３２に一時的に格納される。また、データＲＡＭ３０から読み出された第２のデータ対｛Ｄ３Ｒ、Ｄ４Ｒ｝の他方の入力データＤ４Ｒがレジスタ３１に一時的に格納される。さらに、係数格納ＲＯＭ７０から、第１のデータ対｛Ｄ３Ｌ、Ｄ４Ｌ｝及び第２のデータ対｛Ｄ３Ｒ、Ｄ４Ｒ｝の共通因子であるフィルタ係数Ｃ３が読み出されレジスタ７１に一時的に格納される。
【００７４】
つぎに、時間ｔ＝“９”のとき、レジスタ９２より遅延出力された加算器９０の累積加算結果｛Ａ０Ｒ＋Ａ１Ｒ＋Ａ６Ｒ＋Ａ７Ｒ｝が加算器９０の他方の入力へと供給される。また、レジスタ９１より遅延出力された加算器９０の累積加算結果｛Ａ０Ｌ＋Ａ１Ｌ＋Ａ２Ｌ＋Ａ５Ｌ＋Ａ６Ｌ＋Ａ７Ｌ｝が、レジスタ９２に一時的に格納される。また、レジスタ８１より遅延出力された乗算器８０の乗算結果｛Ａ２Ｒ＋Ａ５Ｒ｝が、加算器９０の一方の入力へと供給される。よって、加算器９０は、レジスタ８１より遅延出力された乗算結果｛Ａ２Ｒ＋Ａ５Ｒ｝と、レジスタ９２より遅延出力された累積加算結果｛Ａ０Ｒ＋Ａ１Ｒ＋Ａ６Ｒ＋Ａ７Ｒ｝との累積加算を行い、その累積加算結果｛Ａ０Ｒ＋Ａ１Ｒ＋Ａ２Ｒ＋Ａ５Ｒ＋Ａ６Ｒ＋Ａ７Ｒ｝をレジスタ９１に一時的に格納する。さらに、乗算器８０は、レジスタ７１より遅延出力されたフィルタ係数Ｃ３と、レジスタ６１より遅延出力された加算器６０の加算結果｛Ｄ３Ｌ＋Ｄ４Ｌ｝との乗算を行い、その乗算結果｛Ａ３Ｌ（＝Ｃ３＊Ｄ３Ｌ）＋Ａ４Ｌ（＝Ｃ４＊Ｄ４Ｌ）｝をレジスタ８１に一時的に格納する。
【００７５】
また、時間ｔ＝“９”のとき、セレクタ４０は、レジスタ３２から出力された、第２のデータ対｛Ｄ３Ｒ、Ｄ４Ｒ｝の一方の入力データＤ３Ｒを、選択出力する。さらに、レジスタ３１より遅延出力された第２のデータ対｛Ｄ３Ｒ、Ｄ４Ｒ｝の他方の入力データＤ４Ｒが、レジスタ３２に一時的に格納されるとともに、セレクタ５０は、これを選択出力する。この結果、加算器６０は、セレクタ４０から選択出力された入力データＤ３Ｒと、セレクタ５０から選択出力された入力データＤ４Ｒと、の加算を行い、その加算結果｛Ｄ３Ｒ＋Ｄ４Ｒ｝をレジスタ６１へと一時的に格納する。
【００７６】
つぎに、時間ｔ＝“１０”のとき、レジスタ９２より遅延出力された加算器９０の累積加算結果｛Ａ０Ｌ＋Ａ１Ｌ＋Ａ２Ｌ＋Ａ５Ｌ＋Ａ６Ｌ＋Ａ７Ｌ｝が加算器９０の他方の入力へと供給される。また、レジスタ９１より遅延出力された加算器９０の累積加算結果｛Ａ０Ｒ＋Ａ１Ｒ＋Ａ２Ｒ＋Ａ５Ｒ＋Ａ６Ｒ＋Ａ７Ｒ｝が、レジスタ９２に一時的に格納される。また、レジスタ８１より遅延出力された乗算器８０の乗算結果｛Ａ３Ｌ＋Ａ４Ｌ｝が、加算器９０の一方の入力へと供給される。よって、加算器９０は、レジスタ８１より遅延出力された乗算結果｛Ａ３Ｌ＋Ａ４Ｌ｝と、レジスタ９２より遅延出力された累積加算結果｛Ａ０Ｌ＋Ａ１Ｌ＋Ａ２Ｌ＋Ａ５Ｌ＋Ａ６Ｌ＋Ａ７Ｌ｝との累積加算を行い、その累積加算結果｛Ａ０Ｌ＋Ａ１Ｌ＋Ａ２Ｌ＋Ａ３Ｌ＋Ａ４Ｌ＋Ａ５Ｌ＋Ａ６Ｌ＋Ａ７Ｌ｝をレジスタ９１に一時的に格納する。さらに、乗算器８０は、レジスタ７１より遅延出力されたフィルタ係数Ｃ３と、レジスタ６１より遅延出力された加算器６０の加算結果｛Ｄ３Ｒ＋Ｄ４Ｒ｝との乗算を行い、その乗算結果｛Ａ３Ｒ（＝Ｃ３＊Ｄ３Ｒ）＋Ａ４Ｒ（＝Ｃ４＊Ｄ４Ｒ）｝をレジスタ８１に一時的に格納する。
【００７７】
つぎに、時間ｔ＝“１１”のとき、レジスタ９２より遅延出力された加算器９０の累積加算結果｛Ａ０Ｒ＋Ａ１Ｒ＋Ａ２Ｒ＋Ａ５Ｒ＋Ａ６Ｒ＋Ａ７Ｒ｝が加算器９０の他方の入力へと供給される。また、レジスタ９１より遅延出力された加算器９０の累積加算結果｛Ａ０Ｌ＋Ａ１Ｌ＋Ａ２Ｌ＋Ａ３Ｌ＋Ａ４Ｌ＋Ａ５Ｌ＋Ａ６Ｌ＋Ａ７Ｌ｝が、レジスタ９２に一時的に格納される。また、レジスタ８１より遅延出力された乗算器８０の乗算結果｛Ａ３Ｒ＋Ａ４Ｒ｝が、加算器９０の一方の入力へと供給される。よって、加算器９０は、レジスタ８１より遅延出力された乗算結果｛Ａ３Ｒ＋Ａ４Ｒ｝と、レジスタ９２より遅延出力された累積加算結果｛Ａ０Ｒ＋Ａ１Ｒ＋Ａ２Ｒ＋Ａ５Ｒ＋Ａ６Ｒ＋Ａ７Ｒ｝との累積加算を行い、その累積加算結果｛Ａ０Ｒ＋Ａ１Ｒ＋Ａ２Ｒ＋Ａ３Ｒ＋Ａ４Ｒ＋Ａ５Ｒ＋Ａ６Ｒ＋Ａ７Ｒ｝をレジスタ９１に一時的に格納する。
【００７８】
このように、本発明の第１実施形態に係る直線位相ＦＩＲフィルタ演算器は、時間ｔ＝“０”から時間ｔ＝“１１”まで、すなわち１２マシン・サイクル分、前述した一連の処理を実行する。この結果、時間ｔ＝“１０”のとき、Ｌチャンネルのデータ系列｛Ｄ０Ｌ〜Ｄ７Ｌ｝に対するフィルタ演算処理の最終的な出力データｙ（１０）｛＝Ａ０Ｌ＋Ａ１Ｌ＋・・・＋Ａ７Ｌ｝が得られることになる。また、時間ｔ＝“１１”のとき、Ｒチャンネルのデータ系列｛Ｄ０Ｒ〜Ｄ７Ｒ｝に対するフィルタ演算処理の最終的な出力データｙ（１１）｛＝Ａ０Ｒ＋Ａ１Ｒ＋・・・＋Ａ７Ｒ｝が得られる。
【００７９】
なお、前述した第１実施形態では、係数格納ＲＯＭ７０からレジスタ７１へのフィルタ係数の読み出し回数を減らすため、同一の値を示すフィルタ係数Ｃｎの乗算対象となる第１のデータ対の加算値と第２のデータ対の加算値とが連続してレジスタ６１に格納される（図２に示す、ｔ＝“２”とｔ＝“３”、ｔ＝“４”とｔ＝“５”等を参照）。しかし、係数格納ＲＯＭ７０からレジスタ７１へのフィルタ係数の読み出しを毎回行うようにすれば、これに限られない。
【００８０】
ところで、本発明の第１実施形態に係るヒルベルトフィルタ演算器の場合、図２と図４を対比すれば分かるように、レジスタ６１にはセレクタ４０及びセレクタ５０の各選択出力の減算結果が一時的に格納される点と、レジスタ８１にはセレクタ４０及びセレクタ５０の各選択出力の減算結果とそれに対応するフィルタ係数Ｃｎとの乗算結果が一時的に格納される点、が相違するが、動作タイミング自体は同一であるので、説明は省略する。
【００８１】
ここで、本発明の第１実施形態を、従来例１及び従来例２と対比する。  
従来例１では、本発明と同様に、シングルポートのデータＲＡＭ４を採用しているが、２チャンネル且つ８タップの場合のフィルタ演算処理を実施する場合、１チャンネル毎に逐次処理される。また、図１１に示すように、Ｌチャンネルのフィルタ演算処理に、ｔ＝“０”からｔ＝“９”までの１０マシン・サイクル分必要とし、その後、ｔ＝“１０”からＲチャンネルのフィルタ演算処理を開始する際に２マシン・サイクル分オーバーラップするため、２チャンネルのフィルタ演算処理に合計１８マシン・サイクル分必要とする。
【００８２】
従来例２では、本発明と同様に、シングルポートのデータＲＡＭ４を採用しているが、２チャンネル且つ８タップの場合のフィルタ演算処理を実施する場合、１チャンネル毎に逐次処理される。また、図１３に示すように、Ｌチャンネルのフィルタ演算処理に、ｔ＝“０”からｔ＝“１０”までの１１マシン・サイクル分必要とし、その後、ｔ＝“８”からＲチャンネルのフィルタ演算処理を開始する際に３マシン・サイクル分オーバーラップするため、２チャンネルのフィルタ演算処理に合計１９マシン・サイクル分必要とする。
【００８３】
一方、本発明の第１実施形態では、２チャンネル分のフィルタ演算処理を、１チャンネル毎の逐次処理ではなく、同時並列的に実施できる。しかも、２チャンネル分のフィルタ演算処理が１２マシン・サイクルで済み、従来例１の場合の合計１８マシン・サイクルや、従来例２の場合の合計１９マシン・サイクルよりも短縮化される。
【００８４】
さらに、本発明の第１実施形態を、従来例３と対比する。  
従来例３では、デュアルポートのデータＲＡＭ１５を採用している。  
一方、本発明の第１実施形態では、従来例３の場合と対比して、デュアルポートではなくシングルポートであり、更に、データＲＡＭ１５の半分の記憶容量に設計可能なデータＲＡＭ２０、３０を採用している。ここで、前述したように、従来例３に係るデュアルポートのデータＲＡＭ１５の回路面積は、本発明の第１実施形態に係るシングルポートのデータＲＡＭ２０、３０の合計回路面積よりも大きい。よって、本発明の第１実施形態に係るＦＩＲフィルタ演算器は、従来例３に係るＦＩＲフィルタ演算器と対比して、ダウンサイジングされる。
【００８５】
＝＝＝ＦＩＲフィルタ演算器の動作（２チャンネル処理、奇数タップの場合）＝＝＝
図５は、奇数タップの一例として“７”タップの場合における、図１に示した本発明の第１実施形態に係る直線位相ＦＩＲフィルタ演算器の動作タイミングを示したものである。なお、図５に示す時間ｔ＝“０”から時間ｔ＝“１１”までの各期間が、１マシン・サイクルに相当する。
【００８６】
図５に示すように、奇数タップの場合は、図２に示した偶数タップの場合の動作タイミングと同様な動作タイミングを示す。なお、奇数タップの場合、中央タップに係る入力データＤ３Ｌ及びＤ３Ｒが、第１及び第２のデータ対を形成することができない。  
このため、図５に示すように、時間ｔ＝“７”のとき、データＲＡＭ２０からは入力データＤ３Ｌとデータ対を形成する入力データが存在しないため、レジスタ２１には“０”が格納される。例えば、レジスタ２１の入力に対して、データＲＡＭ２０又はデータ“０”を格納したレジスタ（不図示）の一方を選択して出力するセレクタ（不図示）によって実現される。よって、時間ｔ＝“８”のとき、レジスタ６１に一時的に格納される加算器６０の加算結果はＤ３Ｌであり、時間ｔ＝“９”のとき、レジスタ８１に一時的に格納される乗算器８０の乗算結果は｛Ｃ３＊Ｄ３Ｌ｝である。
【００８７】
また、同様に、時間ｔ＝“８”のとき、データＲＡＭ３０からは入力データＤ３Ｒとデータ対を形成する入力データが存在しないため、レジスタ３１には“０”が格納される。例えば、レジスタ３１の入力に対して、データＲＡＭ３０又はデータ“０”を格納したレジスタ（不図示）の一方を選択して出力するセレクタ（不図示）によって実現される。よって、時間ｔ＝“９”のとき、レジスタ６１に一時的に格納される加算器６０の加算結果はＤ３Ｒであり、時間ｔ＝“１０”のとき、レジスタ８１に一時的に格納される乗算器８０の乗算結果は｛Ｃ３＊Ｄ３Ｒ｝である。
【００８８】
なお、本発明の第１実施形態に係るヒルベルトフィルタ演算器の場合、レジスタ６１にはセレクタ４０及びセレクタ５０の各選択出力の減算結果が一時的に格納される点と、レジスタ８１にはセレクタ４０及びセレクタ５０の各選択出力の減算結果とそれに対応するフィルタ係数Ｃｎとの乗算結果が一時的に格納される点、が相違するが、動作タイミング自体は図５の内容と同一であるので、説明は省略する。
【００８９】
このように、本発明の第１実施形態では、偶数タップ又は奇数タップのいずれの場合もフィルタ演算処理を実施可能である。
【００９０】
＜第２実施形態＞
＝＝＝ＦＩＲフィルタ演算器の構成（１チャンネル処理）＝＝＝
本発明の第２実施形態に係るＦＩＲフィルタ演算器として、直線位相ＦＩＲフィルタ演算器の場合のハードウェア構成例を図６に示す。なお、本発明の第２実施形態に係る直線位相ＦＩＲフィルタ演算器は、モノクロの１チャンネル方式等において、１チャンネル分の単独フィルタ演算処理のみ実施可能である。よって、２チャンネル分のフィルタ演算処理を実施するためには、１チャンネル毎のフィルタ演算処理を逐次処理する必要がある。
【００９１】
図１に示した本発明の第１実施形態の場合との相違点についてのみ説明する。  
まず、入力データ系列Ｄｎ（ｎ＝０〜Ｎ）を、同一の値を示すフィルタ係数Ｃｎの乗算対象とする２個の入力データＤｎで構成される『データ対』毎に分類するとともに、当該データ対を構成する２個の入力データＤｎのうち、一方の入力データＤｎをデータＲＡＭ２０に格納し、他方の入力データをデータＲＡＭ３０に格納する。
【００９２】
なお、このとき、入力データ系列Ｄｎ（ｎ＝０〜Ｎ）について、ｎが偶数の入力データをデータＲＡＭ２０又はデータＲＡＭ３０の一方に格納し、ｎが奇数の入力データを他方に格納すればよい。このようにした結果、フィルタ演算の一連の処理が終了して、つぎの入力データ系列Ｄｎ（ｎ＝１〜Ｎ＋１）をデータＲＡＭ２０及びデータＲＡＭ３０に格納する際には、新たな入力データＤｎ（ｎ＝Ｎ＋１）を入力データＤｎ（ｎ＝０）と差し替えるだけで済む。
【００９３】
レジスタ２１、３１、６１、加算器６０で構成される回路は、本発明に係る『入力データ演算部』の一実施形態であり、データＲＡＭ２０及びデータＲＡＭ３０からデータ対を構成する２個の入力データを併行して読み出すとともに当該２個の入力データを加算する。
【００９４】
レジスタ２１及びレジスタ３１は、本発明に係る入力データ演算部の『第１の遅延器』及び『第２の遅延器』の一実施形態である。レジスタ２１は、データＲＡＭ２０から読み出されたデータ対の一方の入力データを１マシン・サイクル分遅延出力させる。レジスタ３１は、データＲＡＭ３０から読み出されたデータ対の他方の入力データを１マシン・サイクル分遅延出力させる。なお、このとき、データＲＡＭ２０及びデータＲＡＭ３０からレジスタ２１及びレジスタ３１への読み出しは、併行して行われる。
【００９５】
加算器６０は、本発明に係る入力データ演算部の『加算器』であり、レジスタ２１及びレジスタ３１の遅延出力を加算して、その加算結果をレジスタ６１に一時的に格納する。
【００９６】
レジスタ７１、８１、９１、係数格納ＲＯＭ７０、乗算器８０、加算器９０で構成される回路は、本発明に係る『係数乗加算部』の一実施形態であり、加算器６０の加算結果とそれに対応するフィルタ係数Ｃｎとの乗算を行い、さらに、その乗算結果を累積加算することで出力データｙ（ｔ）を得る。
【００９７】
また、本発明の第２実施形態に係るヒルベルトフィルタ演算器の場合のハードウェア構成例としては、図３に示した本発明の第１実施形態の場合と同様に、加算器６０が減算器１００に置き換わる点以外は、図６に示した構成と同一である為、説明を省略する。
【００９８】
＝＝＝ＦＩＲフィルタ演算器の動作（１チャンネル処理）＝＝＝
図７は、偶数タップの一例として“８”タップの場合における、図６に示した直線位相ＦＩＲフィルタ演算器の動作タイミングを示す。同図に示す時間ｔ＝“０”から時間ｔ＝“６”までの各期間が、１マシン・サイクルに相当する。
【００９９】
まず、時間ｔ＝“０”のとき、データＲＡＭ２０から読み出されたデータ対｛Ｄ０、Ｄ７｝の一方の入力データＤ０がレジスタ２１に一時的に格納されるとともに、データＲＡＭ３０から読み出されたデータ対｛Ｄ０、Ｄ７｝の他方の入力データＤ７がレジスタ３１に一時的に格納される。
【０１００】
つぎに、時間ｔ＝“１”のとき、レジスタ２１から加算器６０の一方の入力へとデータ対｛Ｄ０、Ｄ７｝の一方の入力データＤ０が供給されるとともに、レジスタ３１から加算器６０の他方の入力へとデータ対｛Ｄ０、Ｄ７｝の他方の入力データＤ７が供給される。この結果、加算器６０は、入力データＤ０と入力データＤ７との加算を行い、この加算結果｛Ｄ０＋Ｄ７｝をレジスタ６１に一時的に格納する。
【０１０１】
また、時間ｔ＝“１”のとき、データＲＡＭ２０から読み出されたつぎのデータ対｛Ｄ６、Ｄ１｝の一方の入力データＤ６がレジスタ２１に一時的に格納されるとともに、データＲＡＭ３０から読み出されたデータ対｛Ｄ６、Ｄ１｝の他方の入力データＤ１がレジスタ３１に一時的に格納される。さらに、係数格納ＲＯＭ７０からデータ対｛Ｄ０、Ｄ７｝の共通因子であるフィルタ係数Ｃ０が読み出されてレジスタ７１に一時的に格納される。
【０１０２】
つぎに、時間ｔ＝“２”のとき、乗算器８０は、レジスタ７１より遅延出力されたフィルタ係数Ｃ０と、レジスタ６１より遅延出力された加算器６０の加算結果｛Ｄ０＋Ｄ７｝との乗算を行い、その乗算結果｛Ａ０（＝Ｃ０＊Ｄ０）＋Ａ７（＝Ｃ０＊Ｄ７）｝をレジスタ８１に一時的に格納する。
【０１０３】
また、時間ｔ＝“２”のとき、レジスタ２１から加算器６０の一方の入力へとデータ対｛Ｄ６、Ｄ１｝の一方の入力データＤ６が供給されるとともに、レジスタ３１から加算器６０の他方の入力へとデータ対｛Ｄ６、Ｄ１｝の他方の入力データＤ１が供給される。この結果、加算器６０は、入力データＤ１、Ｄ６の加算を行い、この加算結果｛Ｄ１＋Ｄ６｝をレジスタ６１に一時的に格納する。
【０１０４】
さらに、時間ｔ＝“２”のとき、データＲＡＭ２０から読み出されたつぎのデータ対｛Ｄ２、Ｄ５｝の一方の入力データＤ２がレジスタ２１に一時的に格納されるとともに、データＲＡＭ３０から読み出されたデータ対｛Ｄ２、Ｄ５｝の他方の入力データＤ５がレジスタ３１に一時的に格納される。さらに、係数格納ＲＯＭ７０からデータ対｛Ｄ６、Ｄ１｝の共通因子であるフィルタ係数Ｃ１が読み出されてレジスタ７１に一時的に格納される。
【０１０５】
つぎに、時間ｔ＝“３”のとき、レジスタ８１より遅延出力された乗算器８０の乗算結果｛Ａ０＋Ａ７｝が、加算器９０の一方の入力へと供給される。なお、加算器９０の他方の入力は、累積加算が未実施のため“０”である。よって、加算器９０は、レジスタ８１より遅延出力された乗算結果｛Ａ０Ｌ＋Ａ７Ｌ｝をレジスタ９１に一時的に格納する。また、乗算器８０は、レジスタ７１より遅延出力されたフィルタ係数Ｃ１と、レジスタ６１より遅延出力された加算器６０の加算結果｛Ｄ１＋Ｄ６｝との乗算を行い、その乗算結果｛Ａ１（＝Ｃ１＊Ｄ１）＋Ａ６（＝Ｃ１＊Ｄ６）｝をレジスタ８１に一時的に格納する。
【０１０６】
また、時間ｔ＝“３”のとき、レジスタ２１から加算器６０の一方の入力へとデータ対｛Ｄ２、Ｄ５｝の一方の入力データＤ２が供給されるとともに、レジスタ３１から加算器６０の他方の入力へとデータ対｛Ｄ２、Ｄ５｝の他方の入力データＤ５が供給される。この結果、加算器６０は、入力データＤ２、Ｄ５の加算を行い、この加算結果｛Ｄ２＋Ｄ５｝をレジスタ６１に一時的に格納する。
【０１０７】
さらに、時間ｔ＝“３”のとき、データＲＡＭ２０から読み出されたつぎのデータ対｛Ｄ４、Ｄ３｝の一方の入力データＤ４がレジスタ２１に一時的に格納されるとともに、データＲＡＭ３０から読み出されたデータ対｛Ｄ４、Ｄ３｝の他方の入力データＤ３がレジスタ３１に一時的に格納される。さらに、係数格納ＲＯＭ７０からデータ対｛Ｄ２、Ｄ５｝の共通因子であるフィルタ係数Ｃ２が読み出されてレジスタ７１に一時的に格納される。
【０１０８】
つぎに、時間ｔ＝“４”のとき、レジスタ８１より遅延出力された乗算器８０の乗算結果｛Ａ１＋Ａ６｝が、加算器９０の一方の入力へと供給される。また、レジスタ９１より遅延出力された加算器９０の累積加算結果｛Ａ０＋Ａ７｝が、加算器９０の他方の入力へと供給される。よって、加算器９０は、乗算器８０の乗算結果｛Ａ１＋Ａ６｝と加算器９０の加算結果｛Ａ０＋Ａ７｝との累積加算を行い、その累積加算結果｛Ａ０＋Ａ１＋Ａ６＋Ａ７｝をレジスタ９１に一時的に格納する。また、乗算器８０は、レジスタ７１より遅延出力されたフィルタ係数Ｃ２と、レジスタ６１より遅延出力された加算器６０の加算結果｛Ｄ２＋Ｄ５｝との乗算を行い、その乗算結果｛Ａ２（＝Ｃ２＊Ｄ２）＋Ａ５（＝Ｃ２＊Ｄ５）｝をレジスタ８１に一時的に格納する。
【０１０９】
また、時間ｔ＝“４”のとき、レジスタ２１から加算器６０の一方の入力へとデータ対｛Ｄ４、Ｄ３｝の一方の入力データＤ４が供給されるとともに、レジスタ３１から加算器６０の他方の入力へとデータ対｛Ｄ４、Ｄ３｝の他方の入力データＤ３が供給される。この結果、加算器６０は、入力データＤ３、Ｄ４の加算を行い、この加算結果｛Ｄ３＋Ｄ４｝をレジスタ６１に一時的に格納する。さらに、係数格納ＲＯＭ７０からデータ対｛Ｄ４、Ｄ３｝の共通因子であるフィルタ係数Ｃ３が読み出されてレジスタ７１に一時的に格納される。
【０１１０】
つぎに、時間ｔ＝“５”のとき、レジスタ８１より遅延出力された乗算器８０の乗算結果｛Ａ２＋Ａ５｝が、加算器９０の一方の入力へと供給される。また、レジスタ９１より遅延出力された加算器９０の累積加算結果｛Ａ０＋Ａ１＋Ａ６＋Ａ７｝が、加算器９０の他方の入力へと供給される。よって、加算器９０は、乗算器８０の乗算結果｛Ａ２＋Ａ５｝と加算器９０の累積加算結果｛Ａ０＋Ａ１＋Ａ６＋Ａ７｝との累積加算を行い、その累積加算結果｛Ａ０＋Ａ１＋Ａ２＋Ａ５＋Ａ６＋Ａ７｝をレジスタ９１に一時的に格納する。また、乗算器８０は、レジスタ７１より遅延出力されたフィルタ係数Ｃ３と、レジスタ６１より遅延出力された加算器６０の加算結果｛Ｄ３＋Ｄ４｝との乗算を行い、その乗算結果｛Ａ３（＝Ｃ３＊Ｄ３）＋Ａ４（＝Ｃ３＊Ｄ４）｝をレジスタ８１に一時的に格納する。
【０１１１】
つぎに、時間ｔ＝“６”のとき、レジスタ８１より遅延出力された乗算器８０の乗算結果｛Ａ３＋Ａ４｝が、加算器９０の一方の入力へと供給される。また、レジスタ９１より遅延出力された加算器９０の累積加算結果｛Ａ０＋Ａ１＋Ａ２＋Ａ５＋Ａ６＋Ａ７｝が、加算器９０の他方の入力へと供給される。よって、加算器９０は、乗算器８０の乗算結果｛Ａ３＋Ａ４｝と加算器９０の累積加算結果｛Ａ０＋Ａ１＋Ａ２＋Ａ５＋Ａ６＋Ａ７｝との累積加算を行い、その累積加算結果｛Ａ０＋Ａ１＋Ａ２＋Ａ３＋Ａ４＋Ａ５＋Ａ６＋Ａ７｝をレジスタ９１に一時的に格納する。
【０１１２】
このように、本発明の第２施形態に係る直線位相ＦＩＲフィルタ演算器は、時間ｔ＝“０”から時間ｔ＝“６”まで、すなわち７マシン・サイクル分、前述した一連の処理を実行する。この結果、時間ｔ＝“６”のとき、入力データ系列｛Ｄ０〜Ｄ７｝に対するフィルタ演算処理の最終的な出力データｙ（６）｛＝Ａ０＋Ａ１＋・・・＋Ａ７｝が得られる。
【０１１３】
ここで、本発明の第２実施形態を、従来例１と対比する。従来例１では、本発明と同様に、シングルポートのデータＲＡＭ４を採用しているが、１チャンネル分のフィルタ演算処理に１０マシン・サイクル分必要とする。一方、本発明の第２実施形態では、図７に示したように、１チャンネル分のフィルタ演算処理が７マシン・サイクルで済み、従来例１の場合よりも短縮化される。
【０１１４】
つぎに、本発明の第２実施形態を、従来例２と対比する。従来例２では、本発明と同様に、シングルポートのデータＲＡＭ４を採用しているが、１チャンネル分のフィルタ演算処理に１２マシン・サイクル分必要とする。一方、本発明の第２実施形態では、図７に示したように、１チャンネル分のフィルタ演算処理が７マシン・サイクルで済み、従来例２の場合よりも短縮化される。
【０１１５】
さらに、本発明の第２実施形態を、従来例３と対比する。従来例３では、デュアルポートのデータＲＡＭ１５を採用しており、１チャンネル分のフィルタ演算処理に７マシン・サイクル分必要とする。一方、本発明の第２実施形態では、図７に示したように、シングルポートのデータＲＡＭ２０、３０にも関わらず、１チャンネル分のフィルタ演算処理が従来例３と同様の７マシン・サイクルで済む。
【０１１６】
以上、本発明の実施形態について説明したが、前述した実施形態は、本発明の理解を容易にするためのものであり、本発明を限定して解釈するためのものではない。本発明は、その趣旨を逸脱することなく、変更／改良され得るとともに、その等価物も含まれる。
【図面の簡単な説明】
【０１１７】
【図１】本発明の第１実施形態に係る直線位相ＦＩＲフィルタ演算器の構成例を示す図である。
【図２】本発明の第１実施形態に係る直線位相ＦＩＲフィルタ演算器が偶数タップであり且つ２チャンネルの入力データ系列を処理する場合の動作タイミングを示す図である。
【図３】本発明の第１実施形態に係るヒルベルトフィルタ演算器の構成例を示す図である。
【図４】本発明の第１実施形態に係るヒルベルトフィルタ演算器が偶数タップであり且つ２チャンネルの入力データ系列を処理する場合の動作タイミングを示す図である。
【図５】本発明の第１実施形態に係る直線位相ＦＩＲフィルタ演算器が奇数タップであり且つ２チャンネルの入力データ系列を処理する場合の動作タイミングを示す図である。
【図６】本発明の第２実施形態に係る直線位相ＦＩＲフィルタ演算器の構成例を示す図である。
【図７】本発明の第２実施形態に係る直線位相ＦＩＲフィルタ演算器が偶数タップであり且つ１チャンネルの入力データ系列を処理する場合の動作タイミングを示す図である。
【図８】偶数タップのＦＩＲフィルタ演算器の概念的な構成を示す図である。
【図９】奇数タップのＦＩＲフィルタの概念的な構成を示す図である。
【図１０】従来例１のＦＩＲフィルタ演算器のハードウェア構成を示す図である。
【図１１】従来例１のＦＩＲフィルタ演算器の動作タイミングを示す図である。
【図１２】従来例２のＦＩＲフィルタ演算器のハードウェア構成を示す図である。
【図１３】従来例２のＦＩＲフィルタ演算器の動作タイミングを示す図である。
【図１４】従来例３のＦＩＲフィルタ演算器のハードウェア構成を示す図である。
【図１５】従来例３のＦＩＲフィルタ演算器の動作タイミングを示す図である。
【符号の説明】
【０１１８】
１  遅延器群
２  係数乗算器群
４、２０、３０  データＲＡＭ（シングルポート）
１５  データＲＡＭ（デュアルポート）
５、７、９、１１、１２、１４、１６、１７  レジスタ
２１、２２、３１、３２  レジスタ
６１、７１、８１、９１、９２  レジスタ
４０、５０  セレクタ
３、１０、１３、６０、９０  加算器
６、７０  係数格納ＲＯＭ
８、８０  乗算器
【図１】
2006319941.tif 000003
【図２】
2006319941.tif 000004
【図３】
2006319941.tif 000005
【図４】
2006319941.tif 000006
【図５】
2006319941.tif 000007
【図６】
2006319941.tif 000008
【図７】
2006319941.tif 000009
【図８】
2006319941.tif 000010
【図９】
2006319941.tif 000011
【図１０】
2006319941.tif 000012
【図１１】
2006319941.tif 000013
【図１２】
2006319941.tif 000014
【図１３】
2006319941.tif 000015
【図１４】
2006319941.tif 000016
【図１５】
2006319941.tif 000017