(57)【要約】【課題】  簡単なハードウエア構造で、メモリ群に対する簡単なアドレス指定と読み書き指示でフィルタリング処理が行えるようにする。【解決手段】  第１メモリ群２２と第２メモリ群２３とをアドレス数ｍのデュアルポートＲＡＭからなるメモリブロック２２ａ〜２２ｄ、２３ａ〜２３ｄにより構成し、その一方にアドレスに対して降順となるようにデータを記憶し、他方にアドレスに対して昇順となるようにデータを記憶した状態を初期状態とし、データ読出手段３０ａ、第１のデータ書込手段３０ｂおよび第２のデータ書込手段３０ｃにより、第１メモリ群２２と第２メモリ群２３に対するデータの読み出しと新規データを含むデータの書き込みを、初期状態からｍ個の新規データの書き込みが終了した段階で再び初期状態に戻るようにアドレスを切り換えながら行い、連続するＮ個のデータに対する積和演算結果を順次得ている。【選択図】        図１
2006270178.tif 000002
【特許請求の範囲】
【請求項１】
時系列に入力される最新の複数Ｎ（Ｎは、複数ｍ、整数ｐに対して２×ｍ×ｐまたは２×ｍ×ｐ−１に等しい整数）のデータを記憶するデータ記憶部（２１）と、該データ記憶部に記憶された連続するＮ個のデータに所定の係数を乗じ、その総和を計算して出力する積和演算部（４０）とを有するＦＩＲ型デジタルフィルタにおいて、
前記データ記憶部を、
データの読み書きを独立に行えるアドレス数ｍのデュアルポートＲＡＭからなるメモリブロック（２２ａ〜２２ｄ）がｐ段直列に接続され、新規データを受けて、前記連続するＮ個のデータのうち新しい方から数えてｍ×ｐ個のデータを記憶するための第１メモリ群（２２）と、
データの読み書きを独立に行えるアドレス数ｍのデュアルポートＲＡＭからなるメモリブロック（２３ａ〜２３ｄ）がｐ段直列に接続され、前記第１メモリ群から読み出されたデータを受けて、前記連続するＮ個のデータのうち古い方から数えてｍ×ｐ個のデータを記憶するための第２メモリ群（２３）と、
前記第１メモリ群と前記第２メモリ群のいずれか一方のメモリ群の各メモリブロックにデータが降順に記憶され、他方のメモリ群の各メモリブロックにデータが昇順に記憶された状態を初期状態とし、該初期状態から前記第１メモリ群と第２メモリ群に対してアドレスを順次変更しながら読み出しを指示し、前記連続するＮ個のデータを、２ｐ個ずつｍ回に分けて順次読出し、前記積和演算部へ出力するデータ読出手段（３０ａ）と、
前記データ読出手段によるデータ読み出しが所定回行われる毎に、前記第１メモリ群の各メモリブロックに対してその記憶されている最も古いデータのアドレスへの書き込みを指示し当該アドレスの各データを後段に書き込むとともに、初段のメモリブロックに新規データを書き込む第１のデータ書込手段（３０ｂ）と、
前記データ読出手段によるデータ読み出しが前記所定回行われる毎に、前記第２メモリ群の各メモリブロックに対して読出済みデータのアドレスへの書き込みを指示し当該アドレスの各データをそれぞれ後段に書き込むとともに、初段のメモリブロックに対して、前記第１のデータ書込手段によるデータ書き込み時に前記第１メモリ群から読み出されたデータを書き込む第２のデータ書込手段（３０ｃ）とを有し、
前記データ読出手段、前記第１のデータ書込手段および第２のデータ書込手段は、前記初期状態からｍ個の新規データの書き込みが終了した段階で前記初期状態に戻るようにアドレスを切り換えることを特徴とするＦＩＲ型デジタルフィルタ。
【請求項２】
前記積和演算部は、
前記連続するＮ個のデータに乗じるための係数を記憶している係数メモリ（４１）と、
前記データ読出手段によって前記第１メモリ群と第２メモリ群からそれぞれｐ個ずつ読み出されるデータに対応する係数を前記係数メモリから選択する係数選択手段（４２）とを有しており、
前記データ読出手段によって２ｐ個ずつｍ回に分けて読み出されるデータと、前記係数選択手段によって選択された係数とを用いて積和演算を行うように構成されていることを特徴とする請求項１記載のＦＩＲ型デジタルフィルタ。
【請求項３】
前記第１のデータ書込手段は、前記データ読出手段が前記第１メモリ群の各メモリブロックに記憶されているデータのうち最も古いデータのアドレスを指定して読み出しを指示した直後に前記第１メモリ群の各メモリブロックの当該アドレスへの書き込みを指示するように構成され、
前記第２のデータ書込手段は、前記データ読出手段が前記第２メモリ群の各メモリブロックに記憶されているデータのアドレスを指定して読み出しを指示した直後に前記第２メモリ群の各メモリブロックの当該アドレスへのデータ書き込みを指示するように構成されていることを特徴とする請求項１または請求項２記載のＦＩＲ型デジタルフィルタ。
【請求項４】
前記第１メモリ群と第２メモリ群の間にラッチ回路（２４）が設けられ、
前記第１のデータ書込手段は、前記第１メモリ群の各メモリブロックに書き込みを指示するときに、最終段のメモリブロックから読み出されているデータを前記ラッチ回路に書き込み、
前記第２のデータ書込手段は、前記第２メモリ群の各メモリブロックに書き込みを指示するときに、前記ラッチ回路に記憶されているデータを初段のメモリブロックに書き込むように構成されていることを特徴とする請求項３記載のＦＩＲ型デジタルフィルタ。
【請求項５】
前記メモリブロックと等しいアドレス数ｍを有するデュアルポートＲＡＭからなり、前記第１メモリ群から読み出されたデータを記憶し、該記憶したデータを前記第２メモリ群に出力するバッファ（２５）と、
前記第１メモリ群の各メモリブロックのうち最終段と少なくともその前段のメモリブロックから出力されたデータのいずれかを選択して前記バッファに入力するデータスイッチ（２６）と、
前記第１のデータ書込手段によるデータ書き込み時に前記第１メモリ群の各メモリブロックに指定したアドレスに対応するデータを前記データスイッチにより選択して前記バッファに入力し、且つ、当該アドレスを前記バッファに指定して書き込みを指示し、前記第２のデータ書込手段によるデータ書き込み時に、該書き込み対象のアドレスの初段のメモリブロックのデータからｍ個分新しいデータを前記バッファから読み出して前記初段のメモリブロックに入力するバッファ制御手段（３０ｄ）とを設けたことを特徴とする請求項３記載のＦＩＲ型デジタルフィルタ。
【請求項６】
前記係数メモリには、前記第１メモリ群および第２メモリ群に記憶された連続するＮ個のデータのうち、新しい方から数えた順位と古い方から数えた順位が等しいデータの組にそれぞれ共通の係数が記憶しており、
前記データ読出手段は、前記係数が共通のデータを前記第１メモリ群と第２メモリ群からｐ個ずつ読み出すように構成され、
前記積和演算部は、係数が共通のデータ同士をｐ個の加算器（４３ａ〜４３ｄ）によりそれぞれ加算し、その加算結果をｐ個の乗算器（４４ａ〜４４ｄ）にそれぞれ出力して前記共通の係数をそれぞれ乗じ、該ｐ個の乗算器の乗算結果のｍ回分の総和を総和演算器（４５）により求めることを特徴とする請求項１〜５のいずれかに記載のＦＩＲ型デジタルフィルタ。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、時系列に入力されるデータ列に対するフィルタリング処理を行うＦＩＲ型デジタルフィルタにおいて、簡単なハードウエア構成で、演算のパイプライン処理に対応できるようにするための技術に関する。
【背景技術】
【０００２】
データ列に対する種々のフィルタリング処理を行うために、従来から図２９に示すＦＩＲ型デジタルフィルタ１０が用いられている。
【０００３】
このＦＩＲ型デジタルフィルタ１０は、データ記憶部１１および積和演算部１５とにより構成されている。
【０００４】
データ記憶部１１は、複数Ｎ段直列に接続されたラッチ回路１２（１）〜１２（Ｎ）により構成され、クロックに同期して入力されるデータｄ（０）、ｄ（１）、…、ｄ（Ｎ−１）を初段のラッチ回路１２（１）から最終段のラッチ回路１２（Ｎ）まで順次シフトし、最新のＮ個のデータを常に記憶する。
【０００５】
積和演算部１５は、各ラッチ回路１２（１）〜１２（Ｎ）にラッチされたデータを乗算器１６（１）〜１６（Ｎ）でそれぞれ受け、係数設定器１７から出力された係数ａ（０）、ａ（１）、…、ａ（Ｎ−１）と乗算し、その乗算結果の総和を総和演算器１８によって求め、その結果Ｄ（ｉ）を処理結果として出力する。
【０００６】
この構成のＦＩＲ型デジタルフィルタ１０は、データ記憶部１１のラッチ回路１２の段数Ｎ（遅延段数）と係数ａ（０）〜ａ（Ｎ−１）の値によって決まるフィルタリング処理を行っている。
【０００７】
このような基本構成を有するＦＩＲ型デジタルフィルタにおいて、遅延段数が多い場合、それに応じて積和演算に必要な乗算器１６の数も多くなり、ハードウエアが膨大化するという問題がある。
【０００８】
これを解決するために、演算処理をパイプライン処理する技術が次の特許文献１に開示されている。
【０００９】
【特許文献１】特許第２５１３２１８号
【００１０】
この文献では、連続するＭ個のラッチ回路（レジスタ）を一組とし、そのＭ個のラッチ回路に記憶されたデータ（あるいは入力データ）をマルチプレクサにより時系列に選択し、その選択データに係数を乗算するという処理をＭ回繰り返してその合計値を求め、これを他の組の合計値ともにマルチプレクサに入力し、時系列に合計値を選択してその総和を求めている。したがって、乗算器の数はＭ個のラッチ回路に１個の割合で済むことになる。
【発明の開示】
【発明が解決しようとする課題】
【００１１】
しかしながら、上記のようにラッチ回路に記憶されているデータをマルチプレクサにより順次選択する構成では、Ｍ個のマルチプレクサが必須となり、乗算器の減少によるハードウエア構成の簡単化という点では効果が少ない。
【００１２】
本発明は、この問題を解決して、より簡単なハードウエア構成で実現できるＦＩＲ型デジタルフィルタを提供することを目的としている。
【課題を解決するための手段】
【００１３】
前記目的を達成するために、本発明の請求項１のＦＩＲ型デジタルフィルタは、
時系列に入力される最新の複数Ｎ（Ｎは、複数ｍ、整数ｐに対して２×ｍ×ｐまたは２×ｍ×ｐ−１に等しい整数）のデータを記憶するデータ記憶部（２１）と、該データ記憶部に記憶された連続するＮ個のデータに所定の係数を乗じ、その総和を計算して出力する積和演算部（４０）とを有するＦＩＲ型デジタルフィルタにおいて、
前記データ記憶部を、
データの読み書きを独立に行えるアドレス数ｍのデュアルポートＲＡＭからなるメモリブロック（２２ａ〜２２ｄ）がｐ段直列に接続され、新規データを受けて、前記連続するＮ個のデータのうち新しい方から数えてｍ×ｐ個のデータを記憶するための第１メモリ群（２２）と、
データの読み書きを独立に行えるアドレス数ｍのデュアルポートＲＡＭからなるメモリブロック（２３ａ〜２３ｄ）がｐ段直列に接続され、前記第１メモリ群から読み出されたデータを受けて、前記連続するＮ個のデータのうち古い方から数えてｍ×ｐ個のデータを記憶するための第２メモリ群（２３）と、
前記第１メモリ群と前記第２メモリ群のいずれか一方のメモリ群の各メモリブロックにデータが降順に記憶され、他方のメモリ群の各メモリブロックにデータが昇順に記憶された状態を初期状態とし、該初期状態から前記第１メモリ群と第２メモリ群に対してアドレスを順次変更しながら読み出しを指示し、前記連続するＮ個のデータを、２ｐ個ずつｍ回に分けて順次読出し、前記積和演算部へ出力するデータ読出手段（３０ａ）と、
前記データ読出手段によるデータ読み出しが所定回行われる毎に、前記第１メモリ群の各メモリブロックに対してその記憶されている最も古いデータのアドレスへの書き込みを指示し当該アドレスの各データを後段に書き込むとともに、初段のメモリブロックに新規データを書き込む第１のデータ書込手段（３０ｂ）と、
前記データ読出手段によるデータ読み出しが前記所定回行われる毎に、前記第２メモリ群の各メモリブロックに対して読出済みデータのアドレスへの書き込みを指示し当該アドレスの各データをそれぞれ後段に書き込むとともに、初段のメモリブロックに対して、前記第１のデータ書込手段によるデータ書き込み時に前記第１メモリ群から読み出されたデータを書き込む第２のデータ書込手段（３０ｃ）とを有し、
前記データ読出手段、前記第１のデータ書込手段および第２のデータ書込手段は、前記初期状態からｍ個の新規データの書き込みが終了した段階で前記初期状態に戻るようにアドレスを切り換えることを特徴としている。
【００１４】
また、本発明の請求項２のＦＩＲ型デジタルフィルタは、請求項１記載のＦＩＲ型デジタルフィルタにおいて、
前記積和演算部は、
前記連続するＮ個のデータに乗じるための係数を記憶している係数メモリ（４１）と、
前記データ読出手段によって前記第１メモリ群と第２メモリ群からそれぞれｐ個ずつ読み出されるデータに対応する係数を前記係数メモリから選択する係数選択手段（４２）とを有しており、
前記データ読出手段によって２ｐ個ずつｍ回に分けて読み出されるデータと、前記係数選択手段によって選択された係数とを用いて積和演算を行うように構成されていることを特徴としている。
【００１５】
また、本発明の請求項３のＦＩＲ型デジタルフィルタは、請求項１または請求項２記載のＦＩＲ型デジタルフィルタにおいて、
前記第１のデータ書込手段は、前記データ読出手段が前記第１メモリ群の各メモリブロックに記憶されているデータのうち最も古いデータのアドレスを指定して読み出しを指示した直後に前記第１メモリ群の各メモリブロックの当該アドレスへの書き込みを指示するように構成され、
前記第２のデータ書込手段は、前記データ読出手段が前記第２メモリ群の各メモリブロックに記憶されているデータのアドレスを指定して読み出しを指示した直後に前記第２メモリ群の各メモリブロックの当該アドレスへのデータ書き込みを指示するように構成されていることを特徴としている。
【００１６】
また、本発明の請求項４のＦＩＲ型デジタルフィルタは、請求項３記載のＦＩＲ型デジタルフィルタにおいて、
前記第１メモリ群と第２メモリ群の間にラッチ回路（２４）が設けられ、
前記第１のデータ書込手段は、前記第１メモリ群の各メモリブロックに書き込みを指示するときに、最終段のメモリブロックから読み出されているデータを前記ラッチ回路に書き込み、
前記第２のデータ書込手段は、前記第２メモリ群の各メモリブロックに書き込みを指示するときに、前記ラッチ回路に記憶されているデータを初段のメモリブロックに書き込むように構成されていることを特徴としている。
【００１７】
また、本発明の請求項５のＦＩＲ型デジタルフィルタは、請求項３記載のＦＩＲ型デジタルフィルタにおいて、
前記メモリブロックと等しいアドレス数ｍを有するデュアルポートＲＡＭからなり、前記第１メモリ群から読み出されたデータを記憶し、該記憶したデータを前記第２メモリ群に出力するバッファ（２５）と、
前記第１メモリ群の各メモリブロックのうち最終段と少なくともその前段のメモリブロックから出力されたデータのいずれかを選択して前記バッファに入力するデータスイッチ（２６）と、
前記第１のデータ書込手段によるデータ書き込み時に前記第１メモリ群の各メモリブロックに指定したアドレスに対応するデータを前記データスイッチにより選択して前記バッファに入力し、且つ、当該アドレスを前記バッファに指定して書き込みを指示し、前記第２のデータ書込手段によるデータ書き込み時に、該書き込み対象のアドレスの初段のメモリブロックのデータからｍ個分新しいデータを前記バッファから読み出して前記初段のメモリブロックに入力するバッファ制御手段（３０ｄ）とを設けたことを特徴としている。
【００１８】
また、本発明の請求項６のＦＩＲ型デジタルフィルタは、請求項１〜５のいずれかに記載のＦＩＲ型デジタルフィルタにおいて、
前記係数メモリには、前記第１メモリ群および第２メモリ群に記憶された連続するＮ個のデータのうち、新しい方から数えた順位と古い方から数えた順位が等しいデータの組にそれぞれ共通の係数が記憶しており、
前記データ読出手段は、前記係数が共通のデータを前記第１メモリ群と第２メモリ群からｐ個ずつ読み出すように構成され、
前記積和演算部は、係数が共通のデータ同士をｐ個の加算器（４３ａ〜４３ｄ）によりそれぞれ加算し、その加算結果をｐ個の乗算器（４４ａ〜４４ｄ）にそれぞれ出力して前記共通の係数をそれぞれ乗じ、該ｐ個の乗算器の乗算結果のｍ回分の総和を総和演算器（４５）により求めることを特徴としている。
【発明の効果】
【００１９】
このように、本発明のＦＩＲ型デジタルフィルタは、デュアルポートＲＡＭからなるメモリブロックにより、第１メモリ群と第２メモリ群とを構成し、その一方にアドレスに対して降順となるようにデータのほぼ半数を記憶し、他方にアドレスに対して昇順となるようにデータのほぼ半数を記憶した状態を初期状態とし、第１メモリ群と第２メモリ群に対するデータの読み出しと、新規データを含むデータの書き込みとを行って連続するＮ個のデータに対する積和演算結果を得ている。
【００２０】
このため、簡単なハードウエア構造で、且つメモリ群に対する簡単なアドレス指定と読み書き指示でフィルタリング処理が行える。
【００２１】
また、第１メモリ群と第２メモリ群の間にラッチ回路を設けたものでは、装置速度の１／ｍの入力レートに対して、データ更新のための余分なクロックを設けることなく、ｍ段のパイプライン処理でフィルタリングが行える。
【００２２】
また、デュアルポートメモリからなるバッファとデータスイッチを設け、バッファのアドレス制御と入力データの選択をバッファ制御手段により行えるようにしたものでは、種々のデシメーション処理、奇数タップ、偶数タップへの対応などを容易に行え、汎用性が極めて高くなる。
【発明を実施するための最良の形態】
【００２３】
以下、図面に基づいて本発明の実施の形態を説明する。
図１は、本発明を適用したＦＩＲ型デジタルフィルタ２０の構成を示している。
【００２４】
このＦＩＲ型デジタルフィルタ２０は、時系列に入力される最新のＮ個（Ｎは、複数ｍ、整数ｐに対してＮ＝２×ｍ×ｐまたはＮ＝２×ｍ×ｐ−１に等しいとする）のデータｄ（ｉ）〜ｄ（ｉ＋Ｎ−１）を記憶するデータ記憶部２１と、データ記憶部２１に記憶されたＮ個のデータに所定の係数を乗じ、その総和を計算して出力する積和演算部４０とを有している。
【００２５】
なお、図１はＮ＝２４、ｐ＝４、ｍ＝３の構成例を示している。また、データに乗じる係数は、古い方から順にＮ個のデータにそれぞれ乗じる係数ａ（０）〜ａ（Ｎ−１）を、新しい方から順にＮ個のデータにもそれぞれ共通に乗じるものとする（偶数タップ対称型）。
【００２６】
データ記憶部２１は、第１メモリ群２２、第２メモリ群２３およびコントローラ３０により構成されている。
【００２７】
第１メモリ群２２は、アドレス数をｍ（＝３）とするデュアルポートＲＡＭからなるメモリブロック２２ａ〜２２ｄがｐ（＝４）段直列に接続されて構成されている。
【００２８】
デュアルポートＲＡＭは、データの読み書きを独立に行えるように、２つのデータポートを有しており、ここではその一方をデータ書込用、他方をデータ読出用とし、これを直列に接続している。また、アドレスについては読み書き共通で且つ全てのメモリブロック２２ａ〜２２ｄに対して共通な値が指定できるように、各メモリブロック２２ａ〜２２ｄのアドレスポートは並列接続され、新規データｄを初段のメモリブロック２２ａで受けるようにしている。
【００２９】
また、第２メモリ群２３は、第１メモリ群２２と全く同様に、データの入力ポートと出力ポートとを独立に有しアドレス数をｍ（＝３）とするデュアルポートＲＡＭからなるメモリブロック２３ａ〜２３ｄがｐ（＝４）段直列に接続されて構成されている。また、アドレスについては読み書き共通で且つ全てのメモリブロック２３ａ〜２３ｄに対して共通な値が指定できるように、各メモリブロック２３ａ〜２３ｄのアドレスポートは並列接続され、初段のメモリブロック２３ａで、第１メモリ群２２の終段のメモリブロック２２ｄから出力されたデータを受ける。
【００３０】
コントローラ３０は、第１メモリ群２２と第２メモリ群２３に対するアドレス指定や読み書き制御を行うためのものであり、データ読出手段３０ａ、第１のデータ書込手段３０ｂ、第２のデータ書込手段３０ｃを有している。
【００３１】
データ読出手段３０ａは、第１メモリ群２２と第２メモリ群２３のいずれか一方（この例では第１メモリ群２２）の各メモリブロックにデータが降順に記憶され、他方のメモリ群（この例では第２メモリ群２３）の各メモリブロックにデータが昇順に記憶された状態を初期状態とし、この初期状態から第１メモリ群２２と第２メモリ群２３に対して読み書き共通のアドレスを所定順に変更しながら読み出しを指示し、連続するＮ個のデータを、２ｐ個ずつｍ回に分けて順次読出し、積和演算部４０へ出力し、また、読み出したデータを後段のメモリブロックへ出力する。
【００３２】
前記したように、積和演算に用いる係数が偶数タップ対称型であるので、データ読出手段３０ａは、係数が共通のデータを第１メモリ群２２と第２メモリ群２３からｐ個ずつｍ回に分けて読み出す。
【００３３】
第１のデータ書込手段３０ｂは、データ読出手段３０ａによるデータの読み出しが所定回Ｋ行われる毎に、第１メモリ群２２の各メモリブロック２２ａ〜２２ｄに対してその記憶されている最も古いデータのアドレスへの書き込みを指示し、当該アドレスの各データを後段にそれぞれ書き込んでシフトさせるとともに、初段のメモリブロック２２ａに新規データｄ（２４）を書き込む。なお、この実施例ではＫ＝ｍの場合で説明する。
【００３４】
また、第２のデータ書込手段３０ｃは、データ読出手段３０ａによるデータの読み出しが所定回Ｋ行われる毎に、第２メモリ群２３の各メモリブロック２３ａ〜２３ｄのうち読み出し済みのデータのアドレスへの書き込みを指示し、当該アドレスの各データを後段にそれぞれ書き込んでシフトさせるとともに、初段のメモリブロック２３ａに対して、第１のデータ書込手段３０ｂによるデータ更新時に第１メモリ群２２から読み出されたデータを書き込む。
【００３５】
上記データ読出手段３０ａは、初期状態から連続するＮ個のデータの読み出しとｍ個の新規データの書き込みが終了した段階で初期状態に戻るようにアドレスを切り換える。
【００３６】
一方、積和演算部４０は、係数メモリ４１、係数選択手段４２、ｐ個の加算器４３ａ〜４３ｄ、ｐ個の乗算器４４ａ〜４４ｄおよび総和演算器４５を有している。
【００３７】
係数メモリ４１には連続するＮ個のデータに乗じるためのＮ／２（＝１２）個の係数ａ（０）〜ａ（１１）が記憶されており、係数選択手段４２は、データ読出手段３０ａによって読み出されたデータに対応する係数を係数メモリ４１から選択的に読み出し、乗算器４４ａ〜４４ｄにそれぞれ出力する。
【００３８】
加算器４３ａ〜４３ｄは、係数が共通のデータ同士をそれぞれ加算し、その加算結果を乗算器４４ａ〜４４ｄにそれぞれ出力する。これらの乗算結果は総和演算器４５に入力される。総和演算器４５は、ｐ個ずつｍ回に分けて入力される乗算結果の総和を求め、これを連続するＮ個のデータに対する一つの処理結果Ｄとして出力する。
【００３９】
次に、上記構成のＦＩＲ型デジタルフィルタ２０の動作を説明する。
初期状態として、図１に示しているように、入力済みの２４個のデータｄ（０）〜ｄ（２３）がその入力順に３個ずつ８組に分割され、古い方の４組分が第２メモリ群２３の４つのメモリブロック２３ａ〜２３ｄにアドレスの昇順に記憶され、新しい方の４組分が第１メモリ群２２の４つのメモリブロック２２ａ〜２２ｄにアドレスの降順に記憶されているものとする。
【００４０】
この状態から、データ読出手段３０ａは、図２（ａ）のように、第１メモリ群２２に対してアドレスＡａ＝２、第２メモリ群２３に対してアドレスＡｂ＝２を指定して、加算の組となる４個ずつのデータｄ（２）〜ｄ（１１）、ｄ（１２）〜ｄ（２１）を読み出す。
【００４１】
これらの読み出された８つのデータのうち、古い方から数えた順位と新しい方から数えた順位が等しいもの同士、［ｄ（２），ｄ（２１）］、［ｄ（５），ｄ（１８）］、［ｄ（８），ｄ（１５）］、［ｄ（１１），ｄ（１２）］が積和演算部４０で加算され、その加算結果に共通の係数ａ（２）、ａ（５）、ａ（８）、ａ（１１）が乗算され、それらの乗算結果の総和Ｓ１が次の演算によって求められる。
【００４２】
Ｓ１＝ａ（２）・［ｄ（２）＋ｄ（２１）］
＋ａ（５）・［ｄ（５）＋ｄ（１８）］
＋ａ（８）・［ｄ（８）＋ｄ（１５）］
＋ａ（１１）・［ｄ（１１）＋ｄ（１２）］
【００４３】
次に、データ読出手段３０ａは、図２（ｂ）のように、第１メモリ群２２に対してアドレスＡａ＝１、第２メモリ群２３に対してアドレスＡｂ＝１を指定して、加算の組となる４個ずつのデータｄ（１）〜ｄ（１０）、ｄ（１３）〜ｄ（２２）を読み出す。
これらの読み出された８つのデータのうち、古い方から数えた順位と新しい方から数えた順位が等しいもの同士、［ｄ（１），ｄ（２２）］、［ｄ（４），ｄ（１９）］、［ｄ（７），ｄ（１６）］、［ｄ（１０），ｄ（１３）］が積和演算部４０で加算され、それらの加算結果に共通の係数ａ（１）、ａ（４）、ａ（７）、ａ（１０）が乗算され、それらの乗算結果と前回の総和Ｓ１との総和Ｓ２が次の演算によって求められる。
【００４４】
Ｓ２＝ａ（１）・［ｄ（１）＋ｄ（２２）］
＋ａ（４）・［ｄ（４）＋ｄ（１９）］
＋ａ（７）・［ｄ（７）＋ｄ（１６）］
＋ａ（１０）・［ｄ（１０）＋ｄ（１３）］
＋Ｓ１
【００４５】
さらに、図２（ｃ）のように、第１メモリ群２２に対してアドレスＡａ＝１、第２メモリ群２３に対してアドレスＡｂ＝１を指定して、加算の組となる４個ずつのデータｄ（０）〜ｄ（９）、ｄ（１４）〜ｄ（２３）を読み出す。
【００４６】
これらの読み出された８つのデータのうち、古い方から数えた順位と新しい方から数えた順位が等しいもの同士、［ｄ（０），ｄ（２３）］、［ｄ（３），ｄ（２０）］、［ｄ（６），ｄ（１７）］、［ｄ（９），ｄ（１４）］が積和演算部４０で加算され、それらの加算結果に共通の係数ａ（０）、ａ（３）、ａ（６）、ａ（９）が乗算され、それらの乗算結果と前回の総和Ｓ２との総和Ｓ３の次の演算によって求められる。
【００４７】
Ｓ３＝ａ（０）・［ｄ（０）＋ｄ（２３）］
＋ａ（３）・［ｄ（３）＋ｄ（２０）］
＋ａ（６）・［ｄ（６）＋ｄ（１７）］
＋ａ（９）・［ｄ（９）＋ｄ（１４）］
＋Ｓ２
【００４８】
この演算処理で得られた最終の総和Ｓ３は、Ｎ個の連続したデータｄ（０）〜ｄ（２３）に対して得られた最初の処理結果Ｄ（０）として出力される。
【００４９】
上記した総和Ｓ１〜Ｓ３の演算処理はパイプライン処理で行われるが、データ読出手段３０ａによる３組目のデータの読み出しが完了した後に、新規に入力されるデータｄ（２４）による更新処理が実行される。
【００５０】
即ち、図３に示すように、データ読出手段３０ａにより、第１メモリ群２２の各メモリブロック２２ａ〜２２ｄに対し、その最も古いデータが記憶されているアドレスＡａ＝２が更新対象として指定され、第２メモリ群２３の各メモリブロック２３ａ〜２３ｄに対してもその最も古いデータが記憶されているアドレスＡａ＝０が更新対象として指定されて読み出しの指示がなされ、その直後（クロック周期内）に、第１のデータ書込手段３０ｂおよび第２のデータ書込手段３０ｃによるデータの書き込み指示がなされる。
【００５１】
ここで、各メモリブロックはデュアルポートＲＡＭで構成されているので、上記のように読み出しの指示をした直後に書き込みの指示をした場合、読み出し指示があったときの記憶データが出力ポートから出力される状態が維持され、入力ポートから書き込まれたデータは内部で保持されていて、次の読み出し指示があったときに出力ポートに出力される。
【００５２】
この処理により、新規の入力データｄ（２４）がメモリブロック２２ａに書き込まれ、データｄ（２１）がメモリブロック２２ｂに書き込まれ、データｄ（１８）がメモリブロック２２ｃに書き込まれ、データｄ（１５）がメモリブロック２２ｄに書き込まれる。
また、データｄ（１２）が第２メモリ群２３のメモリブロック２３ａに書き込まれ、データｄ（９）がメモリブロック２３ｂに書き込まれ、データｄ（６）がメモリブロック２３ｃに書き込まれ、データｄ（３）がメモリブロック２３ｄに書き込まれる。
【００５３】
上記書き込まれた各データは、次に各メモリブロックが読み出し指示されたときに読出可能となる。
【００５４】
このデータ書き込み処理が完了した後、データ読出手段３０ａによるデータの読出処理が再び行われる。
【００５５】
即ち、図４の（ａ）のように、アドレスＡａ＝１、Ａｂ＝０に切り換えて、第１メモリ群２２と第２メモリ群２３に対する読出指示をして、８つのデータｄ（３）、ｄ（６）、ｄ（９）、ｄ（１２）、ｄ（１３）、ｄ（１６）、ｄ（１９）、ｄ（２２）を読み出し、前記同様に次の総和Ｓ１を求める。
【００５６】
Ｓ１＝ａ（２）・［ｄ（３）＋ｄ（２２）］
＋ａ（５）・［ｄ（６）＋ｄ（１９）］
＋ａ（８）・［ｄ（９）＋ｄ（１６）］
＋ａ（１１）・［ｄ（１２）＋ｄ（１３）］
【００５７】
次に、図４の（ｂ）のように、アドレスＡａ＝０、Ａｂ＝２に切り換えて、第１メモリ群２２と第２メモリ群２３に対する読出指示をして、８つのデータｄ（２）、ｄ（５）、ｄ（８）、ｄ（１１）、ｄ（１４）、ｄ（１７）、ｄ（２０）、ｄ（２３）を読み出し、前記同様に、次の総和Ｓ２を求める。
【００５８】
Ｓ２＝ａ（１）・［ｄ（２）＋ｄ（２３）］
＋ａ（４）・［ｄ（５）＋ｄ（２０）］
＋ａ（７）・［ｄ（８）＋ｄ（１７）］
＋ａ（１０）・［ｄ（１１）＋ｄ（１４）］
＋Ｓ１
【００５９】
さらに、図４の（ｃ）のように、アドレスＡａ＝２、アドレスＡｂ＝１に切り換えて、第１メモリ群２２と第２メモリ群２３に対する読出指示をして、８つのデータｄ（１）、ｄ（４）、ｄ（７）、ｄ（１０）、ｄ（１５）、ｄ（１８）、ｄ（２１）、ｄ（２４）を読み出し、前記同様に次の総和Ｓ３を求める。
【００６０】
Ｓ３＝ａ（０）・［ｄ（１）＋ｄ（２４）］
＋ａ（３）・［ｄ（４）＋ｄ（２１）］
＋ａ（６）・［ｄ（７）＋ｄ（１８）］
＋ａ（９）・［ｄ（１０）＋ｄ（１５）］
＋Ｓ２
【００６１】
この演算処理で得られた最終の総和Ｓ３は、データｄ（２４）の入力によって得られた２つ目の処理結果Ｄ（１）として出力される。
【００６２】
次に、次のデータ更新のために、図５に示しているように、この時点で最も古いデータを記憶しているアドレスＡａ＝１、アドレスＡｂ＝１が更新対象として指定されて読み出しが指示され、その直後に書き込みが指示される。
【００６３】
この処理により、新規の入力データｄ（２５）を含む４つのデータｄ（２５）〜ｄ（１６）がメモリブロック２２ａ〜２２ｄにそれぞれ書き込まれ、４つのデータｄ（１３）〜ｄ（４）がメモリブロック２３ａ〜２３ｄにそれぞれ書き込まれる。
【００６４】
この状態から、データ読出手段３０ａにより、前記同様に８個ずつのデータ読出処理が３回なされて、３つ目の処理結果Ｄ（２）が得られる。この３回目のデータ読出が完了した後に、次の新規データｄ（２６）によるデータの更新が、図６のように、アドレスＡａ＝０、Ａｂ＝２が指定された状態で行われてデータ更新がなされる。
【００６５】
図６の状態は、データ値は異なるが図１の初期状態と等価であり、以下、上記の処理を繰り返すことにより、新規データ１個ごとにその処理結果Ｄ（ｉ）が得られる。
【００６６】
このように、実施形態のＦＩＲ型デジタルフィルタ２０は、入力データを記憶するための素子として、従来のようなラッチ回路ではなく、デュアルポートＲＡＭからなり複数ｍ（この実施例ではｍ＝３）のデータの記憶が可能なメモリブロックで第１メモリ群２２と第２メモリ群２３を構成し、そのアドレスを制御することで、データ読出処理と新規入力データに対するデータ更新処理を行っている。
【００６７】
このため、マルチプレクサが不要となり、また、乗算器の数もｍ個に１つの割合（前記偶数タップ対称型では２ｍ個に１個の割合）で済むため、ハードウエア構成を格段に簡単化できる。
【００６８】
また、第１メモリ群２２および第２メモリ群２３の各メモリブロックに対するアドレス指定もそれぞれ共通に行えるので、複雑なアドレス切換は不要で制御自体も簡単に行える。
【００６９】
なお、偶数タップで非対称型の場合には、図７に示すＦＩＲ型デジタルフィルタ５０のように、加算器を省略し乗算器４４ｅ〜４４ｈを追加し、各データにそれぞれ係数を乗算し、その乗算結果の総和を求めればよい。この場合にはデータ読出手段３０ａによるデータの読み出しについて共通係数のデータの組合せを考慮する必要がないため、第１メモリ群２２と第２メモリ群２３に対するアドレス指定は重複しない組合せで任意に行えばよい。この積和演算部４０の構成は後述する各実施例で係数非対称の場合でも適用できる。
【００７０】
上記実施形態では、計算対象のデータの読み出しとは別のタイミング（クロック）でデータ書き込みを一括に行っているが、図８に示すＦＩＲ型デジタルフィルタ６０ように、第１メモリ群２２と第２メモリ群２３との間にデータ１個分を記憶するラッチ回路２４を挿入することで、データ書き込みをデータ読み出しと同じクロックタイミングで行うことができる。
【００７１】
即ち、図８に示したデータの格納状態を初期状態とし、図９の（ａ）のように、新規データｄ（２４）が入力されているときに、データ読出手段３０ａにより、第１メモリ群２２にアドレスＡａ＝２、Ａｂ＝２を指定して読み出しを指示し、その直後に第１のデータ書込手段３０ｂにより書き込みを指示する。
【００７２】
この処理により、第１メモリ群２２および第２メモリ群２３からは、書き込み指示の直前に記憶されていた加算の組となる４個ずつのデータｄ（１２）〜ｄ（２１）、ｄ（２）〜ｄ（１１）が読み出され、前記同様に、積和演算部４０により、共通係数のデータ同士が加算され、係数が乗算されてその総和が算出される。
【００７３】
また、第１メモリ群２２の各メモリブロック２２ａ〜２２ｄのアドレスＡａ＝２には、新規データを含む４個のデータｄ（２４）〜ｄ（１５）がそれぞれ書き込まれ、ラッチ回路２４には、メモリブロック２２ｄから出力されているデータｄ（１２）が記憶される。なお、ラッチ回路２４は第１のデータ書込手段３０ｂの書き込みを指示する信号によって入力データをラッチする。
【００７４】
次に、図９の（ｂ）のように、データ読出手段３０ａによりアドレスＡａ＝１、Ａｂ＝１が指定され、データの読み出しが指示され、加算の組となる４個ずつのデータｄ（１３）〜ｄ（２２）、ｄ（１）〜ｄ（１０）が読み出され、前記同様に、積和演算部４０により、共通係数のデータ同士が加算され、係数が乗算されてその総和が算出される。
【００７５】
続いて、図９の（ｃ）のように、データ読出手段３０ａによりアドレスＡａ＝０、Ａｂ＝０が指定され、データの読み出しが指示され、その直後に第２のデータ書込手段３０ｃにより書き込みが指示される。
【００７６】
この処理により、加算の組となる４個ずつのデータｄ（１４）〜ｄ（２３）、ｄ（０）〜ｄ（９）が読み出され、前記同様に、積和演算部４０により、共通係数のデータ同士が加算され、係数が乗算されてその総和が算出される。
【００７７】
また、第２メモリ群２３のメモリブロック２３ｂ〜２３ｄには、それぞれ前段のメモリブロック２３ａ〜２３ｃのデータｄ（９）〜ｄ（３）が書き込まれ、初段のメモリブロック２３ａには、ラッチ回路２４に記憶されていたデータｄ（１２）が書き込まれる。
【００７８】
上記３回のデータ読み出しにより、Ｎ個の連続するデータｄ（０）〜ｄ（２３）が読み出され、且つ、新規データｄ（２４）に対するデータ更新がなされたことになる。
【００７９】
次に、図１０の（ａ）のように、新規データｄ（２５）が入力されているときに、データ読出手段３０ａによりアドレスＡａ＝１、Ａｂ＝０が指定されて読み出しが指示され、その直後に第１のデータ書込手段３０ｂにより書き込みが指示される。
【００８０】
この処理により、第１メモリ群２２および第２メモリ群２３からは、書き込み指示の直前に記憶されていた加算の組となる４個ずつのデータｄ（１３）〜ｄ（２２）、ｄ（３）〜ｄ（１２）が読み出され、前記同様に、積和演算部４０により、共通係数のデータ同士が加算され、係数が乗算されてその総和が算出される。
【００８１】
また、第１メモリ群２２の各メモリブロック２２ａ〜２２ｄのアドレスＡａ＝２には新規データを含む４個のデータｄ（２５）〜ｄ（１６）がそれぞれ書き込まれ、ラッチ回路２４にはデータｄ（１３）が記憶される。
【００８２】
次に、図１０の（ｂ）のように、データ読出手段３０ａによりアドレスＡａ＝０、Ａｂ＝２が指定され、データの読み出しが指示され、加算の組となる４個ずつのデータｄ（１４）〜ｄ（２３）、ｄ（２）〜ｄ（１１）が読み出され、前記同様に、積和演算部４０により、共通係数のデータ同士が加算され、係数が乗算されてその総和が算出される。
【００８３】
続いて、図１０の（ｃ）のように、データ読出手段３０ａによりアドレスＡａ＝２、Ａｂ＝１が指定され、データの読み出しが指示され、その直後に第２のデータ書込手段３０ｃにより書き込みが指示される。
【００８４】
この処理により、加算の組となる４個ずつのデータｄ（１５）〜ｄ（２４）、ｄ（１）〜ｄ（１０）が読み出され、前記同様に、積和演算部４０により、共通係数のデータ同士が加算され、係数が乗算されてその総和が算出される。
【００８５】
また、第２メモリ群２３のメモリブロック２３ｂ〜２３ｄには、それぞれ前段のメモリブロック２３ａ〜２３ｃのデータｄ（１０）〜ｄ（４）が書き込まれ、初段のメモリブロック２３ａには、ラッチ回路２４に記憶されていたデータｄ（１３）が書き込まれる。
【００８６】
上記３回のデータ読み出しにより、Ｎ個の連続するデータｄ（１）〜ｄ（２４）が読み出され、且つ、新規データｄ（２５）に対するデータ更新がなされたことになる。
【００８７】
次に、図１１の（ａ）のように、新規データｄ（２６）が入力されているときに、データ読出手段３０ａによりアドレスＡａ＝０、Ａｂ＝１が指定されて読み出しが指示され、その直後に第１のデータ書込手段３０ｂにより書き込みが指示される。
【００８８】
この処理により、第１メモリ群２２および第２メモリ群２３からは、書き込み指示の直前に記憶されていた加算の組となる４個ずつのデータｄ（１４）〜ｄ（２３）、ｄ（４）〜ｄ（１３）が読み出され、前記同様に、積和演算部４０により、共通係数のデータ同士が加算され、係数が乗算されてその総和が算出される。
【００８９】
また、第１メモリ群２２の各メモリブロック２２ａ〜２２ｄのアドレスＡａ＝０には新規データを含む４個のデータｄ（２６）〜ｄ（１７）がそれぞれ書き込まれ、ラッチ回路２４にはデータｄ（１４）が記憶される。
【００９０】
次に、図１１の（ｂ）のように、データ読出手段３０ａによりアドレスＡａ＝２、Ａｂ＝０が指定され、データの読み出しが指示され、加算の組となる４個ずつのデータｄ（１５）〜ｄ（２４）、ｄ（３）〜ｄ（１２）が読み出され、前記同様に、積和演算部４０により、共通係数のデータ同士が加算され、係数が乗算されてその総和が算出される。
【００９１】
続いて、図１１の（ｃ）のように、データ読出手段３０ａによりアドレスＡａ＝１、Ａｂ＝２が指定され、データの読み出しが指示され、その直後に第２のデータ書込手段３０ｃにより書き込みが指示される。
【００９２】
この処理により、加算の組となる４個ずつのデータｄ（１６）〜ｄ（２５）、ｄ（２）〜ｄ（１１）が読み出され、前記同様に、積和演算部４０により、共通係数のデータ同士が加算され、係数が乗算されてその総和が算出される。
【００９３】
また、第２メモリ群２３のメモリブロック２３ｂ〜２３ｄには、それぞれ前段のメモリブロック２３ａ〜２３ｃのデータｄ（１１）〜ｄ（５）が書き込まれ、初段のメモリブロック２３ａには、ラッチ回路２４に記憶されていたデータｄ（１４）が書き込まれる。
【００９４】
上記３回のデータ読み出しにより、Ｎ個の連続するデータｄ（２）〜ｄ（２５）が読み出され、且つ、新規データｄ（２６）に対するデータ更新がなされたことになる。
【００９５】
このように、ラッチ回路２４を設けたことにより、データの読み出しと書き込みを同一クロック内で行うことができ、データ更新のための余分なクロックが不要となり、装置速度の１／３の入力レートのデータに対するフィルタリング処理が行える。なお、係数が偶数タップ非対称型の場合には、前記したように、加算の組合せを考慮する必要がないので、積和演算部４０を前記図７で示したように変更し、第２メモリ群２３に対するデータ読み出しを、任意のアドレス順に行うことができる。
【００９６】
上記実施例は、新規データが１つ入力される毎に、その新規データを含む連続したＮ個のデータに対する積和演算結果を１つ出力する、即ち、入力レートと出力レートが等しい場合の動作であったが、入力レートに対して出力レートを下げる、所謂デシメーション処理を行う場合や、奇数タップ型の処理を行う場合には、図１２に示すＦＩＲ型デジタルフィルタ７０のように、ラッチ回路２４の代わりに、第１メモリ群２２および第２メモリ群２３を構成している各メモリブロックと同一構成のデュアルポートＲＡＭからなるバッファ２５を設け、このバッファ２５に対して、第１メモリ群２２の最終段のメモリブロック２２ｄとその前段（３段目）のメモリブロック２２ｃの出力のいずれかを選択的に入力させるデータスイッチ２６を設け、バッファ２５とデータスイッチ２６とをコントローラ３０のバッファ制御手段３０ｄによって制御する。
【００９７】
バッファ制御手段３０ｄは、第１のデータ書込手段３０ｂによるデータ書き込み時に第１メモリ群２２の各メモリブロックに指定したアドレスに対応するデータをデータスイッチ２６で選択しバッファ２５に入力し、且つ、そのアドレスをバッファ２５に指定して書き込みを指示する。また、第２のデータ書込手段３０ｃによるデータ書き込み時に、その書き込み対象のアドレスの初段のメモリブロックのデータからｍ個（この場合３個）分新しいデータをバッファ２５から読み出して初段のメモリブロック２３ａに入力する。
【００９８】
次に、この構成のＦＩＲ型デジタルフィルタ７０により、１／３デシメーション処理を行う場合の動作について説明する。
【００９９】
この場合、図１２に示しているデータ格納状態を初期状態とし、この初期状態から図１３の（ａ）のように、第１メモリ群２２および第２メモリ群２３に対してアドレス２を指定し、バッファ２５に対しては読み出しアドレス０、書き込みアドレス２を指定して、第１メモリ群２２、第２メモリ群２３およびバッファ２５に対して読み出しを指示する。
【０１００】
これにより加算の組となる４個ずつのデータｄ（１２）〜ｄ（２１）、ｄ（２）〜ｄ（１１）が読み出されて演算処理される。
【０１０１】
また、この読み出し指示の直後に第１メモリ群２２、第２メモリ群２３およびバッファ２５に対して書き込みの指示を行う。
【０１０２】
これにより、第１メモリ群２２の各メモリブロックのアドレス２には、新規データを含む４個のデータｄ（１５）〜ｄ（２４）がそれぞれ書き込まれ、第２メモリ群２３の各メモリブロックのアドレス２には、バッファ２５に記憶されていたデータを含む４個のデータｄ（５）〜ｄ（１４）がそれぞれ書き込まれ、バッファ２５のアドレス２には第１メモリ群２２の最終段のメモリブロック２２ｄから読み出されていたデータｄ（１２）が書き込まれる。
【０１０３】
次に、図１３の（ｂ）のように、第１メモリ群２２および第２メモリ群２３に対してアドレス１を指定し、バッファ２５に対しては読み出しアドレス１、書き込みアドレス１を指定して、第１メモリ群２２、第２メモリ群２３およびバッファ２５に対して読み出しを指示する。
【０１０４】
これにより加算の組となる４個ずつのデータｄ（１３）〜ｄ（２２）、ｄ（１）〜ｄ（１０）が読み出されて演算処理される。
【０１０５】
また、この読み出し指示の直後に第１メモリ群２２、第２メモリ群２３およびバッファ２５に対して書き込みの指示を行う。
【０１０６】
これにより、第１メモリ群２２の各メモリブロックのアドレス１には、新規データを含む４個のデータｄ（１６）〜ｄ（２５）がそれぞれ書き込まれ、第２メモリ群２３の各メモリブロックのアドレス１には、バッファ２５に記憶されていたデータを含む４個のデータｄ（４）〜ｄ（１３）がそれぞれ書き込まれ、バッファ２５のアドレス１には第１メモリ群２２の３段目のメモリブロック２２ｃから読み出されていたデータｄ（１６）が書き込まれる。
【０１０７】
最後に、図１３の（ｃ）のように、第１メモリ群２２および第２メモリ群２３に対してアドレス０を指定し、バッファ２５に対しては読み出しアドレス２、書き込みアドレス０を指定して、第１メモリ群２２、第２メモリ群２３およびバッファ２５に対して読み出しを指示する。
【０１０８】
これにより加算の組となる４個ずつのデータｄ（１４）〜ｄ（２３）、ｄ（０）〜ｄ（９）が読み出されて演算処理される。
【０１０９】
また、この読み出し指示の直後に第１メモリ群２２、第２メモリ群２３およびバッファ２５に対して書き込みの指示を行う。
【０１１０】
これにより、第１メモリ群２２の各メモリブロックのアドレス０には、新規データを含む４個のデータｄ（１７）〜ｄ（２６）がそれぞれ書き込まれ、第２メモリ群２３の各メモリブロックのアドレス０には、バッファ２５に記憶されていたデータを含む４個のデータｄ（３）〜ｄ（１２）がそれぞれ書き込まれ、バッファ２５のアドレス０には第１メモリ群２２の３段目のメモリブロック２２ｃから読み出されていたデータｄ（１７）が書き込まれる。
【０１１１】
上記３回の読み出し処理により、Ｎ個（偶数）の連続したデータｄ（０）〜ｄ（２３）に対する積和演算結果が得られる。また、この図１３の（ｃ）の状態は前記した図１２のデータ配列と等しいが、記憶されているＮ個のデータはｄ（３）〜ｄ（２６）であるから、この次の処理では、このデータｄ（３）〜ｄ（２６）についての積和演算結果が得られることになる。
【０１１２】
つまり、連続するＮ個のデータｄ（１）〜ｄ（２４）、ｄ（２）〜ｄ（２５）についての積和演算結果は省略されて、新規データの入力３回に１回の割合で一つの積和演算結果が得られる１／３デシメーション処理となる。
【０１１３】
次に、上記構成のＦＩＲ型デジタルフィルタ７０において、奇数タップ対称型の処理を行う場合の動作について説明する。
【０１１４】
図１４の（ａ）に示すように、第１メモリ群２２には奇数Ｎの中間データｄ（１１）を含む新しい方の１２個のデータｄ（１１）〜ｄ（２２）が記憶され、第２メモリ群２３には中間データｄ（１１）を含む古い方の１２個のデータｄ（０）〜ｄ（１１）が記憶され、バッファ２５には、第１メモリ群２２の最終段のメモリブロック２２ｄと同一のデータｄ（１１）〜ｄ（１３）が記憶されているものとし、これを初期状態とする。
【０１１５】
この初期状態から、コントローラ３０は、図１４の（ｂ）のように、第１メモリ群２２および第２メモリ群２３に対してアドレス２を指定してデータの読み出しを指示するとともにバッファ２５に対してもアドレス２２を指定し、その直後に第１メモリ群２２とバッファッファ２５に対してデータの書き込みを指示する。
【０１１６】
これにより、前記同様に、加算の組となる４個ずつのデータｄ（１１）〜ｄ（２０）、ｄ（２）〜ｄ（１１）が読み出されて積和演算部４０に出力されて演算処理される。
【０１１７】
なお、第１メモリ群２２および第２メモリ群２３から読み出される中間のデータｄ（１１）に対しては、積和演算部４０におい、その加算結果に対し本来の係数の１／２が乗算される。
【０１１８】
また、第１メモリ群２２の各メモリブロックのアドレス２には、新規データを含む４個のデータｄ（１４）〜ｄ（２３）がそれぞれ書き込まれ、バッファ２５のアドレス２には、データスイッチ２６を介して第１メモリ群２２のメモリブロック２２ｃのデータｄ（１４）が書き込まれる。
【０１１９】
次に、図１５（ａ）のように、第１メモリ群２２および第２メモリ群２３に対してアドレス１が指定されて、加算の組となる４個ずつのデータｄ（１２）〜ｄ（２１）、ｄ（１）〜ｄ（１０）が読み出されて積和演算部４０に出力されて演算処理される。
【０１２０】
さらに、図１５（ｂ）のように、第１メモリ群２２および第２メモリ群２３に対してアドレス０が指定されて、加算の組となる４個ずつのデータｄ（１３）〜ｄ（２２）、ｄ（０）〜ｄ（９）が読み出されて積和演算部４０に出力されて演算処理され、連続するＮ（奇数）個の全てのデータｄ（０）〜ｄ（２２）についての積和演算結果が得られる。
【０１２１】
また、この３回のデータの読み出し時にはバッフア２５に対してアドレス１が指定されて読み出し指示がなされ、その直後に第２メモリ群２３に対する書き込み指示がなされる。これにより、第２メモリ群２３の各メモリブロックのアドレス０には、データｄ（３）〜ｄ（１２）がそれぞれ書き込まれる。
【０１２２】
次に、図１６の（ａ）のように、第１メモリ群２２に対してアドレス１、第２メモリ群２３に対してアドレス０が指定されてデータ読み出しが指示され、バッファ２５に対してアドレス１が指定される。
【０１２３】
これにより、加算の組となる４個ずつのデータｄ（１２）〜ｄ（２１）、ｄ（３）〜ｄ（１２）が読み出されて積和演算部４０に出力されて演算処理される。
【０１２４】
このとき、第１メモリ群２２および第２メモリ群２３から読み出される中間のデータｄ（１２）に対しては、前記同様に、積和演算部４０においてその加算結果に対して本来の係数の１／２が乗算される。
【０１２５】
また、第１メモリ群２２の各メモリブロックのアドレス１には新規データを含む４個のデータｄ（１５）〜ｄ（２４）がそれぞれ書き込まれ、バッファ２５のアドレス１には、データスイッチ２６を介して第１メモリ群２２の３段目のメモリブロック２２ｃのデータｄ（１５）が書き込まれる。
【０１２６】
続いて、図１６の（ｂ）のように、第１メモリ群２２に対してアドレス０、第２メモリ群２３に対してアドレス２が指定されて、加算の組となる４個ずつのデータｄ（１３）〜ｄ（２２）、ｄ（２）〜ｄ（１１）が読み出されて積和演算部４０に出力されて演算処理される。
【０１２７】
さらに、図１７の（ａ）のように、第１メモリ群２２に対してアドレス２、第２メモリ群２３に対してアドレス１が指定されて、加算の組となるデータｄ（１４）〜ｄ（２３）、ｄ（１）〜ｄ（１０）が読み出されて積和演算部４０に出力されて演算処理され、Ｎ個（奇数）の連続する全てのデータｄ（１）〜ｄ（２３）についての積和演算結果が得られる。
【０１２８】
また、このときバッファ２５に対してアドレス０が指定されて読み出され、その直後に第２メモリ群２３に対する書き込み指示がなされる。
【０１２９】
これにより、第２メモリ群２３の各メモリブロックのアドレス１には、４個のデータｄ（４）〜ｄ（１３）が書き込まれる。
【０１３０】
次に、図１７の（ｂ）のように、第１メモリ群２２に対してアドレス０が指定され、第２メモリ群２３に対してアドレス１が指定されデータ読み出しが指示されるとともに、バッファ２５に対してアドレス０が指定され、その直後に第１メモリ群２２とバッファ２５に対する書き込みが指示される。
【０１３１】
これにより、第１のメモリ群２２および第２のメモリ群２３から加算の組となる４個ずつのデータｄ（１３）〜ｄ（２２）、ｄ（４）〜ｄ（１３）が読み出されて演算処理される。また、第１メモリ群２２の各メモリブロックのアドレス０には、新規入力データｄ（２５）を含む４個のデータｄ（１６）〜ｄ（２５）が書き込まれ、バッファ２５のアドレス０には、データスイッチ２６を介して第１メモリ群２２のメモリブロック２２ｃのデータｄ（１６）が書き込まれる。
【０１３２】
続いて、図１８の（ａ）のように、第１メモリ群２２に対してアドレス２、第２メモリ群２３に対してアドレス０が指定されて、加算の組となる４個ずつのデータｄ（１４）〜ｄ（２３）、ｄ（３）〜ｄ（１２）が読み出されて積和演算部４０に出力されて演算処理される。
【０１３３】
さらに、図１８の（ｂ）のように、第１メモリ群２２に対してアドレス１、第２メモリ群２３に対してアドレス２が指定されて、加算の組となる４個ずつのデータｄ（１５）〜ｄ（２４）、ｄ（２）〜ｄ（１１）が読み出されて積和演算部４０に出力されて演算処理され、Ｎ個（奇数）の連続する全てのデータｄ（２）〜ｄ（２４）についての積和演算結果が得られる。
【０１３４】
また、この読み出し時にはバッファ２５に対してアドレス０が指定され読み出し指示がなされ、その直後に第２メモリ群２３に対してデータの書き込みが指示される。
これにより、第２メモリ群２３の各メモリブロックのアドレス２には、４個のデータｄ（５）〜ｄ（１４）がそれぞれ書き込まれる。
【０１３５】
このときのデータ配列は、図１４の（ａ）の初期状態と同じであり、以下、上記の動作を繰り返すことで、装置速度の１／３のレートで入力されるデータに対して、奇数タップ対称型のフィルタリング処理を遅延なく行うことができる。
【０１３６】
なお、奇数タップ対称型で１／３デシメーション処理を行う場合には、図１９の（ａ）に示す初期状態から、図１９の（ｂ）のように、第１メモリ群２２、第２メモリ群２３およびバッファ２５に対してアドレス２を指定し、前記同様に読み書きを指示することで、加算の組となる４個ずつのデータｄ（１１）〜ｄ（２０）、ｄ（２）〜ｄ（１１）の読み出しと、更新のための書き込みを行う。
【０１３７】
次に、図２０の（ａ）のように、第１メモリ群２２、第２メモリ群２３にアドレス１、バッファ２５に読み出しアドレス０を指定し、読み出しを指示して、加算の組となる４個ずつのデータｄ（１２）〜ｄ（２１）、ｄ（１）〜ｄ（１０）の読み出しを行い、第１のメモリ群２２、第２メモリ群２３およびバッファ２５（書き込みアドレス１）に対して書き込みを指示して、更新のための書き込みを行う。
【０１３８】
最後に、図２０の（ｂ）のように、第１メモリ群２２、第２メモリ群２３にアドレス０、バッファ２５に読み出しアドレス１を指定し、読み出しを指示して、加算の組となる４個ずつのデータｄ（１３）〜ｄ（２２）、ｄ（０）〜ｄ（９）の読み出しを行い、第１のメモリ群２２、第２メモリ群２３およびバッファ２５（書き込みアドレス０）に対して書き込みを指示して、更新のための書き込みを行う。
【０１３９】
この図２０の（ｂ）の状態は、図１９の（ａ）の初期状態と等価であり、以下、この処理を繰り返すことで、奇数タップ対称型で１／３デシメーションのフィルタリング処理がなされる。
【０１４０】
上記した各実施例は、各メモリブロックのアドレス数ｍが３の場合であったが、これは本発明を限定するものではなく、このアドレス数ｍを大きくする、例えば図２１のようにｍ＝６にすれば、より多くのタップ数で多種のデシメーション処理が可能である。
【０１４１】
なお、この場合、データスイッチ２６は、第１メモリ群２２の２段目のメモリブロック２２ｂから読み出されるデータも選択できるように構成する。
【０１４２】
図２１の（ａ）は、データの入力レートが装置速度の１／３で、４８タップ、１／２デシメーション処理を行う場合の初期状態を示している。
【０１４３】
この場合、第１メモリ群２２の４個のメモリブロックには、４８個のデータのうち、新しい方の２４個のデータｄ（２４）〜ｄ（４７）が６個ずつ降順に記憶され、第２メモリ群２３の４個のメモリブロックには、古い方の２４個のデータｄ（０）〜ｄ（２３）が６個ずつ昇順に記憶され、且つバッファ２５のアドレス０、２、４には、第１メモリ群２２の最終段のメモリブロックのアドレス０、２、４の各データｄ（２９）、ｄ（２７）、ｄ（２５）が記憶されている。
【０１４４】
この初期状態から始めに図２１の（ｂ）のように、第１メモリ群２２と第２メモリ群２３のアドレス５のデータｄ（２４）〜ｄ（４２）、ｄ（５）〜ｄ（２３）が読み出されて積和演算処理され、その直後に第１メモリ群２２とバッファ２５に対する書き込みが指示されて、第１メモリ群２２のアドレス５に新規データｄ（４８）を含むデータｄ（３０）〜ｄ（４８）が書き込まれ、バッファ２５のアドレス５にはデータｄ（２４）が書き込まれる（ステップ１）。
【０１４５】
次に、図２２の（ａ）のように、第１メモリ群２２と第２メモリ群２３のアドレス３のデータｄ（２６）〜ｄ（４４）、ｄ（３）〜ｄ（２１）が読み出されて積和演算処理される（ステップ２）。
【０１４６】
その次のステップでは、図２２の（ｂ）のように、第１メモリ群２２と第２メモリ群２３のアドレス１のデータｄ（２８）〜ｄ（４６）、ｄ（１）〜ｄ（１９）が読み出されて積和演算処理される。また、このとき、第２メモリ群２３のアドレス１にバッファ２５のアドレス４のデータを含むデータｄ（７）〜ｄ（２５）が書き込まれる（ステップ３）。
【０１４７】
次に、図２３の（ａ）のように、第１メモリ群２２と第２メモリ群２３のアドレス４のデータｄ（２５）〜ｄ（４３）、ｄ（４）〜ｄ（２２）が読み出されて積和演算処理され、その直後に第１メモリ群２２とバッファ２５に対する書き込みが指示されて、第１メモリ群２２のアドレス４に新規データｄ（４９）を含むデータｄ（３１）〜ｄ（４９）が書き込まれ、バッファ２５のアドレス４にはデータｄ（３１）が書き込まれる（ステップ４）。
【０１４８】
次に、図２３の（ｂ）のように、第１メモリ群２２と第２メモリ群２３のアドレス２のデータｄ（２７）〜ｄ（４５）、ｄ（２）〜ｄ（２０）が読み出されて積和演算処理される（ステップ５）。
【０１４９】
続いて、図２４のように第１メモリ群２２と第２メモリ群２３のアドレス０のデータｄ（２９）〜ｄ（４７）、ｄ（０）〜ｄ（１８）が読み出されて積和演算処理され、また、このとき、第２メモリ群２３のアドレス０にバッファ２５のアドレス５のデータを含むデータｄ（６）〜ｄ（２４）が書き込まれる（ステップ６）。
【０１５０】
上記の６回のデータ読み出しにより、初期状態に記憶されていた４８個のデータｄ（０）〜ｄ（４７）の読み出しが完了し、その４８個のデータについての積和演算結果が得られる。
【０１５１】
以下、図示しないが次の処理が行われる。
（ステップ７）加算の組となる第１メモリ群２２のアドレス３と第２メモリ群２３のアドレス１の各データの読み出し（積和演算）、第１メモリ群２２に対する新規データｄ（５０）を含むデータの書き込みおよびバッファ２５のアドレス３へのデータｄ（２６）の書き込み。
【０１５２】
（ステップ８）加算の組となる第１メモリ群２２のアドレス１と第２メモリ群２３のアドレス５の各データの読み出し（積和演算）。
【０１５３】
（ステップ９）加算の組となる第１メモリ群２２のアドレス５と第２メモリ群２３のアドレス３の各データの読み出し（積和演算）および第２メモリ群２３に対するバッファ２５のアドレス２のデータｄ（２７）を含むデータの書き込み。
【０１５４】
（ステップ１０）加算の組となる第１メモリ群２２のアドレス２と第２メモリ群２３のアドレス０の各データの読み出し（積和演算）、第１メモリ群２２に対する新規データｄ（５１）を含むデータの書き込みおよびバッファ２５のアドレス２へのデータｄ（３３）の書き込み。
（ステップ１１）加算の組となる第１メモリ群２２のアドレス０と第２メモリ群２３のアドレス４の各データの読み出し（積和演算）。
【０１５５】
（ステップ１２）加算の組となる第１メモリ群２２のアドレス４と第２メモリ群２３のアドレス２の各データの読み出し（積和演算）、および第２メモリ群２３に対するバッファ２５のアドレス２のデータｄ（２６）を含むデータの書き込み。
【０１５６】
上記ステップ７〜１２の処理で４８個のデータｄ（２）〜ｄ（４９）の読み出しが完了し、その４８個のデータについての最終の積和演算結果が得られる。
【０１５７】
そして、この状態から、前記同様に次の処理が行われる。
（ステップ１３）加算の組となる第１メモリ群２２のアドレス１と第２メモリ群２３のアドレス３の各データの読み出し（積和演算）、第１メモリ群２２に対する新規入力データｄ（５２）を含むデータの書き込みおよびメモリブロック２２ｄからバッファ２５のアドレス１へのデータｄ（２８）の書き込み。
【０１５８】
（ステップ１４）加算の組となる第１メモリ群２２のアドレス５と第２メモリ群２３のアドレス１の各データの読み出し（積和演算）。
【０１５９】
（ステップ１５）加算の組となる第１メモリ群２２のアドレス３と第２メモリ群２３のアドレス５の各データの読み出し（積和演算）および第２メモリ群２３に対するバッファ２５のアドレス０のデータｄ（２９）を含む書き込み。
【０１６０】
（ステップ１６）加算の組となる第１メモリ群２２のアドレス０と第２メモリ群２３のアドレス２の各データの読み出し（積和演算）、第１メモリ群２２に対する新規データｄ（５３）を含むデータの書き込みおよびメモリブロック２２ｃからバッファ２５のアドレス０へのデータｄ（３５）の書き込み。
【０１６１】
（ステップ１７）加算の組となる第１メモリ群２２のアドレス４と第２メモリ群２３のアドレス０の各データの読み出し（積和演算）。
【０１６２】
（ステップ１８）加算の組となる第１メモリ群２２のアドレス２と第２メモリ群２３のアドレス４の各データの読み出し（積和演算）および第２メモリ群２３に対するバッファ２５のアドレス１のデータｄ（２８）を含むデータの書き込み。
【０１６３】
上記ステップ１３〜１８の処理で４８個のデータｄ（４）〜ｄ（５１）の読み出しが完了し、その４８個のデータについての積和演算結果が得られる。また、このときのデータの配列は、図２１の（ａ）の初期状態と同じになる。
【０１６４】
以上のステップ１〜１８の処理で、４８個の各データｄ（０）〜ｄ（４７）、データｄ（２）〜ｄ（４９）およびデータｄ（４）〜ｄ（５１）の積和演算結果が順次得られることになる。
【０１６５】
したがって、上記ステップ１〜１８の処理を繰り返すことにより、１／２デシメーションでフィルタリング処理できる。
【０１６６】
次に、上記したアドレス数６のメモリブロックとバッファ２５を用いた構成で奇数タップ対称型の処理を説明する。
【０１６７】
図２５の（ａ）は、そのデータの格納の初期状態を示しており、第１メモリ群２２には、４７個（奇数Ｎ個）のデータのうち、中間のデータｄ（２３）を含む新しい方のデータｄ（２３）〜ｄ（４６）が、６個ずつ４つのメモリブロックに降順に記憶され、第２メモリ群２３には、中間のデータｄ（２３）を含む古い方のデータｄ（０）〜ｄ（２３）が、６個ずつ４つのメモリブロックに昇順に記憶されている。また、バッファ２５には、アドレスの昇順に、データｄ（２２）、ｄ（２７）、ｄ（２０）、ｄ（２５）、ｄ（１８）、ｄ（２３）が記憶されている。
【０１６８】
この状態から次の一連の処理がなされる。
（ステップ１０１）加算の組となる第１メモリ群２２のアドレス５と第２メモリ群２３のアドレス５のデータの読み出し（積和演算、ただし、中間データに対してはその加算結果に本来の係数の１／２を乗算する）、第１メモリ群２２に対する新規データｄ（４７）を含むデータ書き込みおよびメモリブロック２２ｃからバッファ２５のアドレス５へのデータｄ（２９）の書き込み。
【０１６９】
（ステップ１０２）加算の組となる第１メモリ群２２と第２メモリ群２３のアドレス３の各データの読み出し（積和演算）。
【０１７０】
（ステップ１０３）加算の組となる第１メモリ群２２と第２メモリ群２３のアドレス１の各データの読み出し（積和演算）および第２メモリ群２３に対するバッファ２５のアドレス３のデータｄ（２５）によるアドレス１のデータ書き込み。
【０１７１】
上記ステップ１０１〜１０３の処理により、データの配列は図２５の（ｂ）に示す状態となり、この状態から次の処理を行う。
【０１７２】
（ステップ１０４）加算の組となる第１メモリ群２２と第２メモリ群２３のアドレス４の各データの読み出し（積和演算）、第１メモリ群２２に対する新規データｄ（４８）を含むデータ書き込みおよびメモリブロック２２ｄからバッファ２５のアドレス４へのデータｄ（２４）の書き込み。
【０１７３】
（ステップ１０５）加算の組となる第１メモリ群２２と第２メモリ群２３のアドレス２の各データの読み出し（積和演算）。
【０１７４】
（ステップ１０６）加算の組となる第１メモリ群２２と第２メモリ群２３のアドレス０の各データの読み出し（積和演算）および第２メモリ群２３に対するバッファ２５のアドレス４のデータｄ（２４）を含むデータ書き込み。
【０１７５】
上記のステップ１０１〜１０６の処理により、４７個のデータｄ（０）〜ｄ（４６）の読み出しが完了し、その４７個のデータについての積和演算結果が得られる。このときのデータの配列は図２６の（ａ）に示す状態となり、この状態から次の処理を行う。
【０１７６】
（ステップ１０７）加算の組となる第１メモリ群２２のアドレス３と第２メモリ群２３のアドレス１の各データの読み出し（積和演算）および第１メモリ群２２に対する新規データｄ（４９）を含むデータの書き込みおよびメモリブロック２２ｃからバッファ２５のアドレス３へのデータｄ（３１）の書き込み。
【０１７７】
（ステップ１０８）加算の組となる第１メモリ群２２のアドレス１と第２メモリ群２３のアドレス５の各データの読み出し（積和演算）。
【０１７８】
（ステップ１０９）加算の組となる第１メモリ群２２のアドレス５と第２メモリ群２３のアドレス３の各データの読み出し（積和演算）および第２メモリ群２３に対するバッファ２５のアドレス１のデータｄ（２７）を含むデータ書き込み。
【０１７９】
上記のステップ１０７〜１０９の処理により、データの配列は図２６の（ｂ）に示す状態となり、この状態から次の処理を行う。
【０１８０】
（ステップ１１０）加算の組となる第１メモリ群２２のアドレス２と第２メモリ群２３のアドレス０の各データの読み出し（積和演算）、第１メモリ群２２に対する新規データｄ（５０）を含むデータ書き込みおよびメモリブロック２２ｄからバッファ２５のアドレス２へのデータｄ（２６）の書き込み。
【０１８１】
（ステップ１１１）加算の組となる第１メモリ群２２のアドレス０と第２メモリ群２３のアドレス４の各データの読み出し（積和演算）。
【０１８２】
（ステップ１１２）加算の組となる第１メモリ群２２のアドレス４と第２メモリ群２３のアドレス２の各データの読み出し（積和演算）および第２メモリ群２３に対するバッファ２５のアドレス２のデータｄ（２６）を含むデータ書き込み。
【０１８３】
上記のステップ１１０〜１１２の処理により、４７個のデータｄ（２）〜ｄ（４８）の読み出しが完了し、その４７個のデータについての積和演算結果が得られる。また、このときのデータの配列は図２７の（ａ）に示す状態となり、この状態から次の処理を行う。
【０１８４】
（ステップ１１３）加算の組となる第１メモリ群２２のアドレス１と第２メモリ群２３のアドレス３の各データの読み出し（積和演算）、第１メモリ群２２に対する新規データｄ（５１）を含むデータ書き込みおよびメモリブロック２２ｃからバッファ２５のアドレス１へのデータｄ（３３）の書き込み。
【０１８５】
（ステップ１１４）加算の組となる第１メモリ群２２のアドレス５と第２メモリ群２３のアドレス１の各データの読み出し（積和演算）。
【０１８６】
（ステップ１１５）加算の組となる第１メモリ群２２のアドレス３と第２メモリ群２３のアドレス５の各データの読み出し（積和演算）および第２メモリ群２３に対するバッファ２５のアドレス５のデータｄ（２９）を含むデータ書き込み。
【０１８７】
上記のステップ１１３〜１１５の処理により、データの配列は図２７の（ｂ）に示す状態となり、この状態から次の処理を行う。
【０１８８】
（ステップ１１６）加算の組となる第１メモリ群２２のアドレス０と第２メモリ群２３のアドレス２の各データの読み出し（積和演算）、第１メモリ群２２に対する新規データｄ（５２）を含むデータ書き込みおよびメモリブロック２２ｄからバッファ２５のアドレス０へのデータｄ（２８）の書き込み。
【０１８９】
（ステップ１１７）加算の組となる第１メモリ群２２のアドレス４と第２メモリ群２３のアドレス０の各データの読み出し（積和演算）。
【０１９０】
（ステップ１１８）加算の組となる第１メモリ群２２のアドレス２と第２メモリ群２３のアドレス４の各データの読み出し（積和演算）および第２メモリ群２３に対するバッファ２５のアドレス０のデータｄ（２８）を含むデータ書き込み。
【０１９１】
上記のステップ１１３〜１１８の処理により、４７個のデータｄ（４）〜ｄ（５０）の読み出しが完了し、その４７個のデータについての積和演算結果が得られる。また、このときのデータの配列は図２８となり、これは、図２５の（ａ）の初期状態と等しい。
【０１９２】
以上ステップ１０１〜１１８の処理により、４７個の各データｄ（０）〜ｄ（４６）、データｄ（２）〜ｄ（４８）およびデータｄ（４）〜ｄ（５０）の積和演算結果が順次得られることになり、以下これを繰り返すことで、奇数タップ、１／２デシメーションによるフィルタリング処理を行うことができる。
【０１９３】
なお、上記動作例は一例であり、他のデシメート処理等についても、第１メモリ群２２、第２メモリ群２３およびバッファ２５に対する読み出しや書き込みの順序を適宜変更することで対応できる。また、バッファ２５についてのみ読み書きアドレスを独立に制御するだけで、第１メモリ群２２、第２メモリ群２３については読み書き共通のアドレスを用いることができ、その制御も容易に行える。
【０１９４】
また、前記した各実施例では、第１メモリ群２２の各メモリブロックに対してデータをアドレスの降順に記憶し、第２メモリ群２３の各メモリブロックに対してデータをアドレスの昇順に記憶していたが、逆に、第１メモリ群２２の各メモリブロックに対してデータをアドレスの昇順に記憶し、第２メモリ群２３の各メモリブロックに対してデータをアドレスの降順に記憶してもよい。
【図面の簡単な説明】
【０１９５】
【図１】本発明の実施形態の構成図
【図２】実施形態の動作説明図
【図３】実施形態の動作説明図
【図４】実施形態の動作説明図
【図５】実施形態の動作説明図
【図６】実施形態の動作説明図
【図７】係数非対称型の場合の構成図
【図８】本発明の他の実施形態の構成図
【図９】他の実施形態の動作説明図
【図１０】他の実施形態の動作説明図
【図１１】他の実施形態の動作説明図
【図１２】本発明の他の実施形態の構成図
【図１３】他の実施形態のデシメーション処理の動作説明図
【図１４】他の実施形態の奇数タップ処理の動作説明図
【図１５】他の実施形態の奇数タップ処理の動作説明図
【図１６】他の実施形態の奇数タップ処理の動作説明図
【図１７】他の実施形態の奇数タップ処理の動作説明図
【図１８】他の実施形態の奇数タップ処理の動作説明図
【図１９】他の実施形態の奇数タップ処理とデシメーション処理の動作説明図
【図２０】他の実施形態の奇数タップ処理とデシメーション処理の動作説明図
【図２１】メモリブロックのアドレス数を６にした場合のデシメーション処理の動作説明図
【図２２】メモリブロックのアドレス数を６にした場合のデシメーション処理の動作説明図
【図２３】メモリブロックのアドレス数を６にした場合のデシメーション処理の動作説明図
【図２４】メモリブロックのアドレス数を６にした場合のデシメーション処理の動作説明図
【図２５】メモリブロックのアドレス数を６にした場合の奇数タップとデシメーション処理の動作説明図
【図２６】メモリブロックのアドレス数を６にした場合の奇数タップとデシメーション処理の動作説明図
【図２７】メモリブロックのアドレス数を６にした場合の奇数タップとデシメーション処理の動作説明図
【図２８】メモリブロックのアドレス数を６にした場合の奇数タップとデシメーション処理の動作説明図
【図２９】ＦＩＲ型デジタルフィルタの基本構成図
【符号の説明】
【０１９６】
２０、５０、６０、７０……ＦＩＲ型デジタルフィルタ、２１……データ記憶部、２２……第１メモリ群、２２ａ〜２２ｄ……メモリブロック、２３……第２メモリ群、２３ａ〜２３ｄ……メモリブロック、２４……ラッチ回路、２５……バッファ、２６……データスイッチ、３０……コントローラ、３０ａ……データ読出手段、３０ｂ……第１のデータ書込手段、３０ｃ……第２のデータ書込手段、３０ｄ……バッファ制御手段、４０……積和演算部、４１……係数メモリ、４２……係数選択手段、４３ａ〜４３ｄ……加算器、４４ａ〜４４ｈ……乗算器、４５……総和演算器
【図１】
2006270178.tif 000003
【図２】
2006270178.tif 000004
【図３】
2006270178.tif 000005
【図４】
2006270178.tif 000006
【図５】
2006270178.tif 000007
【図６】
2006270178.tif 000008
【図７】
2006270178.tif 000009
【図８】
2006270178.tif 000010
【図９】
2006270178.tif 000011
【図１０】
2006270178.tif 000012
【図１１】
2006270178.tif 000013
【図１２】
2006270178.tif 000014
【図１３】
2006270178.tif 000015
【図１４】
2006270178.tif 000016
【図１５】
2006270178.tif 000017
【図１６】
2006270178.tif 000018
【図１７】
2006270178.tif 000019
【図１８】
2006270178.tif 000020
【図１９】
2006270178.tif 000021
【図２０】
2006270178.tif 000022
【図２１】
2006270178.tif 000023
【図２２】
2006270178.tif 000024
【図２３】
2006270178.tif 000025
【図２４】
2006270178.tif 000026
【図２５】
2006270178.tif 000027
【図２６】
2006270178.tif 000028
【図２７】
2006270178.tif 000029
【図２８】
2006270178.tif 000030
【図２９】
2006270178.tif 000031