JP2006270178A - Fir型デジタルフィルタ - Google Patents

Fir型デジタルフィルタ Download PDF

Info

Publication number
JP2006270178A
JP2006270178A JP2005081510A JP2005081510A JP2006270178A JP 2006270178 A JP2006270178 A JP 2006270178A JP 2005081510 A JP2005081510 A JP 2005081510A JP 2005081510 A JP2005081510 A JP 2005081510A JP 2006270178 A JP2006270178 A JP 2006270178A
Authority
JP
Japan
Prior art keywords
data
memory group
memory
address
read
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2005081510A
Other languages
English (en)
Other versions
JP4295234B2 (ja
Inventor
Toshiyuki Matsuda
俊幸 松田
Tomiyasu Ito
富康 伊藤
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Anritsu Corp
Original Assignee
Anritsu Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Anritsu Corp filed Critical Anritsu Corp
Priority to JP2005081510A priority Critical patent/JP4295234B2/ja
Publication of JP2006270178A publication Critical patent/JP2006270178A/ja
Application granted granted Critical
Publication of JP4295234B2 publication Critical patent/JP4295234B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Complex Calculations (AREA)

Abstract

【課題】 簡単なハードウエア構造で、メモリ群に対する簡単なアドレス指定と読み書き指示でフィルタリング処理が行えるようにする。
【解決手段】 第1メモリ群22と第2メモリ群23とをアドレス数mのデュアルポートRAMからなるメモリブロック22a〜22d、23a〜23dにより構成し、その一方にアドレスに対して降順となるようにデータを記憶し、他方にアドレスに対して昇順となるようにデータを記憶した状態を初期状態とし、データ読出手段30a、第1のデータ書込手段30bおよび第2のデータ書込手段30cにより、第1メモリ群22と第2メモリ群23に対するデータの読み出しと新規データを含むデータの書き込みを、初期状態からm個の新規データの書き込みが終了した段階で再び初期状態に戻るようにアドレスを切り換えながら行い、連続するN個のデータに対する積和演算結果を順次得ている。
【選択図】 図1

Description

本発明は、時系列に入力されるデータ列に対するフィルタリング処理を行うFIR型デジタルフィルタにおいて、簡単なハードウエア構成で、演算のパイプライン処理に対応できるようにするための技術に関する。
データ列に対する種々のフィルタリング処理を行うために、従来から図29に示すFIR型デジタルフィルタ10が用いられている。
このFIR型デジタルフィルタ10は、データ記憶部11および積和演算部15とにより構成されている。
データ記憶部11は、複数N段直列に接続されたラッチ回路12(1)〜12(N)により構成され、クロックに同期して入力されるデータd(0)、d(1)、…、d(N−1)を初段のラッチ回路12(1)から最終段のラッチ回路12(N)まで順次シフトし、最新のN個のデータを常に記憶する。
積和演算部15は、各ラッチ回路12(1)〜12(N)にラッチされたデータを乗算器16(1)〜16(N)でそれぞれ受け、係数設定器17から出力された係数a(0)、a(1)、…、a(N−1)と乗算し、その乗算結果の総和を総和演算器18によって求め、その結果D(i)を処理結果として出力する。
この構成のFIR型デジタルフィルタ10は、データ記憶部11のラッチ回路12の段数N(遅延段数)と係数a(0)〜a(N−1)の値によって決まるフィルタリング処理を行っている。
このような基本構成を有するFIR型デジタルフィルタにおいて、遅延段数が多い場合、それに応じて積和演算に必要な乗算器16の数も多くなり、ハードウエアが膨大化するという問題がある。
これを解決するために、演算処理をパイプライン処理する技術が次の特許文献1に開示されている。
特許第2513218号
この文献では、連続するM個のラッチ回路(レジスタ)を一組とし、そのM個のラッチ回路に記憶されたデータ(あるいは入力データ)をマルチプレクサにより時系列に選択し、その選択データに係数を乗算するという処理をM回繰り返してその合計値を求め、これを他の組の合計値ともにマルチプレクサに入力し、時系列に合計値を選択してその総和を求めている。したがって、乗算器の数はM個のラッチ回路に1個の割合で済むことになる。
しかしながら、上記のようにラッチ回路に記憶されているデータをマルチプレクサにより順次選択する構成では、M個のマルチプレクサが必須となり、乗算器の減少によるハードウエア構成の簡単化という点では効果が少ない。
本発明は、この問題を解決して、より簡単なハードウエア構成で実現できるFIR型デジタルフィルタを提供することを目的としている。
前記目的を達成するために、本発明の請求項1のFIR型デジタルフィルタは、
時系列に入力される最新の複数N(Nは、複数m、整数pに対して2×m×pまたは2×m×p−1に等しい整数)のデータを記憶するデータ記憶部(21)と、該データ記憶部に記憶された連続するN個のデータに所定の係数を乗じ、その総和を計算して出力する積和演算部(40)とを有するFIR型デジタルフィルタにおいて、
前記データ記憶部を、
データの読み書きを独立に行えるアドレス数mのデュアルポートRAMからなるメモリブロック(22a〜22d)がp段直列に接続され、新規データを受けて、前記連続するN個のデータのうち新しい方から数えてm×p個のデータを記憶するための第1メモリ群(22)と、
データの読み書きを独立に行えるアドレス数mのデュアルポートRAMからなるメモリブロック(23a〜23d)がp段直列に接続され、前記第1メモリ群から読み出されたデータを受けて、前記連続するN個のデータのうち古い方から数えてm×p個のデータを記憶するための第2メモリ群(23)と、
前記第1メモリ群と前記第2メモリ群のいずれか一方のメモリ群の各メモリブロックにデータが降順に記憶され、他方のメモリ群の各メモリブロックにデータが昇順に記憶された状態を初期状態とし、該初期状態から前記第1メモリ群と第2メモリ群に対してアドレスを順次変更しながら読み出しを指示し、前記連続するN個のデータを、2p個ずつm回に分けて順次読出し、前記積和演算部へ出力するデータ読出手段(30a)と、
前記データ読出手段によるデータ読み出しが所定回行われる毎に、前記第1メモリ群の各メモリブロックに対してその記憶されている最も古いデータのアドレスへの書き込みを指示し当該アドレスの各データを後段に書き込むとともに、初段のメモリブロックに新規データを書き込む第1のデータ書込手段(30b)と、
前記データ読出手段によるデータ読み出しが前記所定回行われる毎に、前記第2メモリ群の各メモリブロックに対して読出済みデータのアドレスへの書き込みを指示し当該アドレスの各データをそれぞれ後段に書き込むとともに、初段のメモリブロックに対して、前記第1のデータ書込手段によるデータ書き込み時に前記第1メモリ群から読み出されたデータを書き込む第2のデータ書込手段(30c)とを有し、
前記データ読出手段、前記第1のデータ書込手段および第2のデータ書込手段は、前記初期状態からm個の新規データの書き込みが終了した段階で前記初期状態に戻るようにアドレスを切り換えることを特徴としている。
また、本発明の請求項2のFIR型デジタルフィルタは、請求項1記載のFIR型デジタルフィルタにおいて、
前記積和演算部は、
前記連続するN個のデータに乗じるための係数を記憶している係数メモリ(41)と、
前記データ読出手段によって前記第1メモリ群と第2メモリ群からそれぞれp個ずつ読み出されるデータに対応する係数を前記係数メモリから選択する係数選択手段(42)とを有しており、
前記データ読出手段によって2p個ずつm回に分けて読み出されるデータと、前記係数選択手段によって選択された係数とを用いて積和演算を行うように構成されていることを特徴としている。
また、本発明の請求項3のFIR型デジタルフィルタは、請求項1または請求項2記載のFIR型デジタルフィルタにおいて、
前記第1のデータ書込手段は、前記データ読出手段が前記第1メモリ群の各メモリブロックに記憶されているデータのうち最も古いデータのアドレスを指定して読み出しを指示した直後に前記第1メモリ群の各メモリブロックの当該アドレスへの書き込みを指示するように構成され、
前記第2のデータ書込手段は、前記データ読出手段が前記第2メモリ群の各メモリブロックに記憶されているデータのアドレスを指定して読み出しを指示した直後に前記第2メモリ群の各メモリブロックの当該アドレスへのデータ書き込みを指示するように構成されていることを特徴としている。
また、本発明の請求項4のFIR型デジタルフィルタは、請求項3記載のFIR型デジタルフィルタにおいて、
前記第1メモリ群と第2メモリ群の間にラッチ回路(24)が設けられ、
前記第1のデータ書込手段は、前記第1メモリ群の各メモリブロックに書き込みを指示するときに、最終段のメモリブロックから読み出されているデータを前記ラッチ回路に書き込み、
前記第2のデータ書込手段は、前記第2メモリ群の各メモリブロックに書き込みを指示するときに、前記ラッチ回路に記憶されているデータを初段のメモリブロックに書き込むように構成されていることを特徴としている。
また、本発明の請求項5のFIR型デジタルフィルタは、請求項3記載のFIR型デジタルフィルタにおいて、
前記メモリブロックと等しいアドレス数mを有するデュアルポートRAMからなり、前記第1メモリ群から読み出されたデータを記憶し、該記憶したデータを前記第2メモリ群に出力するバッファ(25)と、
前記第1メモリ群の各メモリブロックのうち最終段と少なくともその前段のメモリブロックから出力されたデータのいずれかを選択して前記バッファに入力するデータスイッチ(26)と、
前記第1のデータ書込手段によるデータ書き込み時に前記第1メモリ群の各メモリブロックに指定したアドレスに対応するデータを前記データスイッチにより選択して前記バッファに入力し、且つ、当該アドレスを前記バッファに指定して書き込みを指示し、前記第2のデータ書込手段によるデータ書き込み時に、該書き込み対象のアドレスの初段のメモリブロックのデータからm個分新しいデータを前記バッファから読み出して前記初段のメモリブロックに入力するバッファ制御手段(30d)とを設けたことを特徴としている。
また、本発明の請求項6のFIR型デジタルフィルタは、請求項1〜5のいずれかに記載のFIR型デジタルフィルタにおいて、
前記係数メモリには、前記第1メモリ群および第2メモリ群に記憶された連続するN個のデータのうち、新しい方から数えた順位と古い方から数えた順位が等しいデータの組にそれぞれ共通の係数が記憶しており、
前記データ読出手段は、前記係数が共通のデータを前記第1メモリ群と第2メモリ群からp個ずつ読み出すように構成され、
前記積和演算部は、係数が共通のデータ同士をp個の加算器(43a〜43d)によりそれぞれ加算し、その加算結果をp個の乗算器(44a〜44d)にそれぞれ出力して前記共通の係数をそれぞれ乗じ、該p個の乗算器の乗算結果のm回分の総和を総和演算器(45)により求めることを特徴としている。
このように、本発明のFIR型デジタルフィルタは、デュアルポートRAMからなるメモリブロックにより、第1メモリ群と第2メモリ群とを構成し、その一方にアドレスに対して降順となるようにデータのほぼ半数を記憶し、他方にアドレスに対して昇順となるようにデータのほぼ半数を記憶した状態を初期状態とし、第1メモリ群と第2メモリ群に対するデータの読み出しと、新規データを含むデータの書き込みとを行って連続するN個のデータに対する積和演算結果を得ている。
このため、簡単なハードウエア構造で、且つメモリ群に対する簡単なアドレス指定と読み書き指示でフィルタリング処理が行える。
また、第1メモリ群と第2メモリ群の間にラッチ回路を設けたものでは、装置速度の1/mの入力レートに対して、データ更新のための余分なクロックを設けることなく、m段のパイプライン処理でフィルタリングが行える。
また、デュアルポートメモリからなるバッファとデータスイッチを設け、バッファのアドレス制御と入力データの選択をバッファ制御手段により行えるようにしたものでは、種々のデシメーション処理、奇数タップ、偶数タップへの対応などを容易に行え、汎用性が極めて高くなる。
以下、図面に基づいて本発明の実施の形態を説明する。
図1は、本発明を適用したFIR型デジタルフィルタ20の構成を示している。
このFIR型デジタルフィルタ20は、時系列に入力される最新のN個(Nは、複数m、整数pに対してN=2×m×pまたはN=2×m×p−1に等しいとする)のデータd(i)〜d(i+N−1)を記憶するデータ記憶部21と、データ記憶部21に記憶されたN個のデータに所定の係数を乗じ、その総和を計算して出力する積和演算部40とを有している。
なお、図1はN=24、p=4、m=3の構成例を示している。また、データに乗じる係数は、古い方から順にN個のデータにそれぞれ乗じる係数a(0)〜a(N−1)を、新しい方から順にN個のデータにもそれぞれ共通に乗じるものとする(偶数タップ対称型)。
データ記憶部21は、第1メモリ群22、第2メモリ群23およびコントローラ30により構成されている。
第1メモリ群22は、アドレス数をm(=3)とするデュアルポートRAMからなるメモリブロック22a〜22dがp(=4)段直列に接続されて構成されている。
デュアルポートRAMは、データの読み書きを独立に行えるように、2つのデータポートを有しており、ここではその一方をデータ書込用、他方をデータ読出用とし、これを直列に接続している。また、アドレスについては読み書き共通で且つ全てのメモリブロック22a〜22dに対して共通な値が指定できるように、各メモリブロック22a〜22dのアドレスポートは並列接続され、新規データdを初段のメモリブロック22aで受けるようにしている。
また、第2メモリ群23は、第1メモリ群22と全く同様に、データの入力ポートと出力ポートとを独立に有しアドレス数をm(=3)とするデュアルポートRAMからなるメモリブロック23a〜23dがp(=4)段直列に接続されて構成されている。また、アドレスについては読み書き共通で且つ全てのメモリブロック23a〜23dに対して共通な値が指定できるように、各メモリブロック23a〜23dのアドレスポートは並列接続され、初段のメモリブロック23aで、第1メモリ群22の終段のメモリブロック22dから出力されたデータを受ける。
コントローラ30は、第1メモリ群22と第2メモリ群23に対するアドレス指定や読み書き制御を行うためのものであり、データ読出手段30a、第1のデータ書込手段30b、第2のデータ書込手段30cを有している。
データ読出手段30aは、第1メモリ群22と第2メモリ群23のいずれか一方(この例では第1メモリ群22)の各メモリブロックにデータが降順に記憶され、他方のメモリ群(この例では第2メモリ群23)の各メモリブロックにデータが昇順に記憶された状態を初期状態とし、この初期状態から第1メモリ群22と第2メモリ群23に対して読み書き共通のアドレスを所定順に変更しながら読み出しを指示し、連続するN個のデータを、2p個ずつm回に分けて順次読出し、積和演算部40へ出力し、また、読み出したデータを後段のメモリブロックへ出力する。
前記したように、積和演算に用いる係数が偶数タップ対称型であるので、データ読出手段30aは、係数が共通のデータを第1メモリ群22と第2メモリ群23からp個ずつm回に分けて読み出す。
第1のデータ書込手段30bは、データ読出手段30aによるデータの読み出しが所定回K行われる毎に、第1メモリ群22の各メモリブロック22a〜22dに対してその記憶されている最も古いデータのアドレスへの書き込みを指示し、当該アドレスの各データを後段にそれぞれ書き込んでシフトさせるとともに、初段のメモリブロック22aに新規データd(24)を書き込む。なお、この実施例ではK=mの場合で説明する。
また、第2のデータ書込手段30cは、データ読出手段30aによるデータの読み出しが所定回K行われる毎に、第2メモリ群23の各メモリブロック23a〜23dのうち読み出し済みのデータのアドレスへの書き込みを指示し、当該アドレスの各データを後段にそれぞれ書き込んでシフトさせるとともに、初段のメモリブロック23aに対して、第1のデータ書込手段30bによるデータ更新時に第1メモリ群22から読み出されたデータを書き込む。
上記データ読出手段30aは、初期状態から連続するN個のデータの読み出しとm個の新規データの書き込みが終了した段階で初期状態に戻るようにアドレスを切り換える。
一方、積和演算部40は、係数メモリ41、係数選択手段42、p個の加算器43a〜43d、p個の乗算器44a〜44dおよび総和演算器45を有している。
係数メモリ41には連続するN個のデータに乗じるためのN/2(=12)個の係数a(0)〜a(11)が記憶されており、係数選択手段42は、データ読出手段30aによって読み出されたデータに対応する係数を係数メモリ41から選択的に読み出し、乗算器44a〜44dにそれぞれ出力する。
加算器43a〜43dは、係数が共通のデータ同士をそれぞれ加算し、その加算結果を乗算器44a〜44dにそれぞれ出力する。これらの乗算結果は総和演算器45に入力される。総和演算器45は、p個ずつm回に分けて入力される乗算結果の総和を求め、これを連続するN個のデータに対する一つの処理結果Dとして出力する。
次に、上記構成のFIR型デジタルフィルタ20の動作を説明する。
初期状態として、図1に示しているように、入力済みの24個のデータd(0)〜d(23)がその入力順に3個ずつ8組に分割され、古い方の4組分が第2メモリ群23の4つのメモリブロック23a〜23dにアドレスの昇順に記憶され、新しい方の4組分が第1メモリ群22の4つのメモリブロック22a〜22dにアドレスの降順に記憶されているものとする。
この状態から、データ読出手段30aは、図2(a)のように、第1メモリ群22に対してアドレスAa=2、第2メモリ群23に対してアドレスAb=2を指定して、加算の組となる4個ずつのデータd(2)〜d(11)、d(12)〜d(21)を読み出す。
これらの読み出された8つのデータのうち、古い方から数えた順位と新しい方から数えた順位が等しいもの同士、[d(2),d(21)]、[d(5),d(18)]、[d(8),d(15)]、[d(11),d(12)]が積和演算部40で加算され、その加算結果に共通の係数a(2)、a(5)、a(8)、a(11)が乗算され、それらの乗算結果の総和S1が次の演算によって求められる。
S1=a(2)・[d(2)+d(21)]
+a(5)・[d(5)+d(18)]
+a(8)・[d(8)+d(15)]
+a(11)・[d(11)+d(12)]
次に、データ読出手段30aは、図2(b)のように、第1メモリ群22に対してアドレスAa=1、第2メモリ群23に対してアドレスAb=1を指定して、加算の組となる4個ずつのデータd(1)〜d(10)、d(13)〜d(22)を読み出す。
これらの読み出された8つのデータのうち、古い方から数えた順位と新しい方から数えた順位が等しいもの同士、[d(1),d(22)]、[d(4),d(19)]、[d(7),d(16)]、[d(10),d(13)]が積和演算部40で加算され、それらの加算結果に共通の係数a(1)、a(4)、a(7)、a(10)が乗算され、それらの乗算結果と前回の総和S1との総和S2が次の演算によって求められる。
S2=a(1)・[d(1)+d(22)]
+a(4)・[d(4)+d(19)]
+a(7)・[d(7)+d(16)]
+a(10)・[d(10)+d(13)]
+S1
さらに、図2(c)のように、第1メモリ群22に対してアドレスAa=1、第2メモリ群23に対してアドレスAb=1を指定して、加算の組となる4個ずつのデータd(0)〜d(9)、d(14)〜d(23)を読み出す。
これらの読み出された8つのデータのうち、古い方から数えた順位と新しい方から数えた順位が等しいもの同士、[d(0),d(23)]、[d(3),d(20)]、[d(6),d(17)]、[d(9),d(14)]が積和演算部40で加算され、それらの加算結果に共通の係数a(0)、a(3)、a(6)、a(9)が乗算され、それらの乗算結果と前回の総和S2との総和S3の次の演算によって求められる。
S3=a(0)・[d(0)+d(23)]
+a(3)・[d(3)+d(20)]
+a(6)・[d(6)+d(17)]
+a(9)・[d(9)+d(14)]
+S2
この演算処理で得られた最終の総和S3は、N個の連続したデータd(0)〜d(23)に対して得られた最初の処理結果D(0)として出力される。
上記した総和S1〜S3の演算処理はパイプライン処理で行われるが、データ読出手段30aによる3組目のデータの読み出しが完了した後に、新規に入力されるデータd(24)による更新処理が実行される。
即ち、図3に示すように、データ読出手段30aにより、第1メモリ群22の各メモリブロック22a〜22dに対し、その最も古いデータが記憶されているアドレスAa=2が更新対象として指定され、第2メモリ群23の各メモリブロック23a〜23dに対してもその最も古いデータが記憶されているアドレスAa=0が更新対象として指定されて読み出しの指示がなされ、その直後(クロック周期内)に、第1のデータ書込手段30bおよび第2のデータ書込手段30cによるデータの書き込み指示がなされる。
ここで、各メモリブロックはデュアルポートRAMで構成されているので、上記のように読み出しの指示をした直後に書き込みの指示をした場合、読み出し指示があったときの記憶データが出力ポートから出力される状態が維持され、入力ポートから書き込まれたデータは内部で保持されていて、次の読み出し指示があったときに出力ポートに出力される。
この処理により、新規の入力データd(24)がメモリブロック22aに書き込まれ、データd(21)がメモリブロック22bに書き込まれ、データd(18)がメモリブロック22cに書き込まれ、データd(15)がメモリブロック22dに書き込まれる。
また、データd(12)が第2メモリ群23のメモリブロック23aに書き込まれ、データd(9)がメモリブロック23bに書き込まれ、データd(6)がメモリブロック23cに書き込まれ、データd(3)がメモリブロック23dに書き込まれる。
上記書き込まれた各データは、次に各メモリブロックが読み出し指示されたときに読出可能となる。
このデータ書き込み処理が完了した後、データ読出手段30aによるデータの読出処理が再び行われる。
即ち、図4の(a)のように、アドレスAa=1、Ab=0に切り換えて、第1メモリ群22と第2メモリ群23に対する読出指示をして、8つのデータd(3)、d(6)、d(9)、d(12)、d(13)、d(16)、d(19)、d(22)を読み出し、前記同様に次の総和S1を求める。
S1=a(2)・[d(3)+d(22)]
+a(5)・[d(6)+d(19)]
+a(8)・[d(9)+d(16)]
+a(11)・[d(12)+d(13)]
次に、図4の(b)のように、アドレスAa=0、Ab=2に切り換えて、第1メモリ群22と第2メモリ群23に対する読出指示をして、8つのデータd(2)、d(5)、d(8)、d(11)、d(14)、d(17)、d(20)、d(23)を読み出し、前記同様に、次の総和S2を求める。
S2=a(1)・[d(2)+d(23)]
+a(4)・[d(5)+d(20)]
+a(7)・[d(8)+d(17)]
+a(10)・[d(11)+d(14)]
+S1
さらに、図4の(c)のように、アドレスAa=2、アドレスAb=1に切り換えて、第1メモリ群22と第2メモリ群23に対する読出指示をして、8つのデータd(1)、d(4)、d(7)、d(10)、d(15)、d(18)、d(21)、d(24)を読み出し、前記同様に次の総和S3を求める。
S3=a(0)・[d(1)+d(24)]
+a(3)・[d(4)+d(21)]
+a(6)・[d(7)+d(18)]
+a(9)・[d(10)+d(15)]
+S2
この演算処理で得られた最終の総和S3は、データd(24)の入力によって得られた2つ目の処理結果D(1)として出力される。
次に、次のデータ更新のために、図5に示しているように、この時点で最も古いデータを記憶しているアドレスAa=1、アドレスAb=1が更新対象として指定されて読み出しが指示され、その直後に書き込みが指示される。
この処理により、新規の入力データd(25)を含む4つのデータd(25)〜d(16)がメモリブロック22a〜22dにそれぞれ書き込まれ、4つのデータd(13)〜d(4)がメモリブロック23a〜23dにそれぞれ書き込まれる。
この状態から、データ読出手段30aにより、前記同様に8個ずつのデータ読出処理が3回なされて、3つ目の処理結果D(2)が得られる。この3回目のデータ読出が完了した後に、次の新規データd(26)によるデータの更新が、図6のように、アドレスAa=0、Ab=2が指定された状態で行われてデータ更新がなされる。
図6の状態は、データ値は異なるが図1の初期状態と等価であり、以下、上記の処理を繰り返すことにより、新規データ1個ごとにその処理結果D(i)が得られる。
このように、実施形態のFIR型デジタルフィルタ20は、入力データを記憶するための素子として、従来のようなラッチ回路ではなく、デュアルポートRAMからなり複数m(この実施例ではm=3)のデータの記憶が可能なメモリブロックで第1メモリ群22と第2メモリ群23を構成し、そのアドレスを制御することで、データ読出処理と新規入力データに対するデータ更新処理を行っている。
このため、マルチプレクサが不要となり、また、乗算器の数もm個に1つの割合(前記偶数タップ対称型では2m個に1個の割合)で済むため、ハードウエア構成を格段に簡単化できる。
また、第1メモリ群22および第2メモリ群23の各メモリブロックに対するアドレス指定もそれぞれ共通に行えるので、複雑なアドレス切換は不要で制御自体も簡単に行える。
なお、偶数タップで非対称型の場合には、図7に示すFIR型デジタルフィルタ50のように、加算器を省略し乗算器44e〜44hを追加し、各データにそれぞれ係数を乗算し、その乗算結果の総和を求めればよい。この場合にはデータ読出手段30aによるデータの読み出しについて共通係数のデータの組合せを考慮する必要がないため、第1メモリ群22と第2メモリ群23に対するアドレス指定は重複しない組合せで任意に行えばよい。この積和演算部40の構成は後述する各実施例で係数非対称の場合でも適用できる。
上記実施形態では、計算対象のデータの読み出しとは別のタイミング(クロック)でデータ書き込みを一括に行っているが、図8に示すFIR型デジタルフィルタ60ように、第1メモリ群22と第2メモリ群23との間にデータ1個分を記憶するラッチ回路24を挿入することで、データ書き込みをデータ読み出しと同じクロックタイミングで行うことができる。
即ち、図8に示したデータの格納状態を初期状態とし、図9の(a)のように、新規データd(24)が入力されているときに、データ読出手段30aにより、第1メモリ群22にアドレスAa=2、Ab=2を指定して読み出しを指示し、その直後に第1のデータ書込手段30bにより書き込みを指示する。
この処理により、第1メモリ群22および第2メモリ群23からは、書き込み指示の直前に記憶されていた加算の組となる4個ずつのデータd(12)〜d(21)、d(2)〜d(11)が読み出され、前記同様に、積和演算部40により、共通係数のデータ同士が加算され、係数が乗算されてその総和が算出される。
また、第1メモリ群22の各メモリブロック22a〜22dのアドレスAa=2には、新規データを含む4個のデータd(24)〜d(15)がそれぞれ書き込まれ、ラッチ回路24には、メモリブロック22dから出力されているデータd(12)が記憶される。なお、ラッチ回路24は第1のデータ書込手段30bの書き込みを指示する信号によって入力データをラッチする。
次に、図9の(b)のように、データ読出手段30aによりアドレスAa=1、Ab=1が指定され、データの読み出しが指示され、加算の組となる4個ずつのデータd(13)〜d(22)、d(1)〜d(10)が読み出され、前記同様に、積和演算部40により、共通係数のデータ同士が加算され、係数が乗算されてその総和が算出される。
続いて、図9の(c)のように、データ読出手段30aによりアドレスAa=0、Ab=0が指定され、データの読み出しが指示され、その直後に第2のデータ書込手段30cにより書き込みが指示される。
この処理により、加算の組となる4個ずつのデータd(14)〜d(23)、d(0)〜d(9)が読み出され、前記同様に、積和演算部40により、共通係数のデータ同士が加算され、係数が乗算されてその総和が算出される。
また、第2メモリ群23のメモリブロック23b〜23dには、それぞれ前段のメモリブロック23a〜23cのデータd(9)〜d(3)が書き込まれ、初段のメモリブロック23aには、ラッチ回路24に記憶されていたデータd(12)が書き込まれる。
上記3回のデータ読み出しにより、N個の連続するデータd(0)〜d(23)が読み出され、且つ、新規データd(24)に対するデータ更新がなされたことになる。
次に、図10の(a)のように、新規データd(25)が入力されているときに、データ読出手段30aによりアドレスAa=1、Ab=0が指定されて読み出しが指示され、その直後に第1のデータ書込手段30bにより書き込みが指示される。
この処理により、第1メモリ群22および第2メモリ群23からは、書き込み指示の直前に記憶されていた加算の組となる4個ずつのデータd(13)〜d(22)、d(3)〜d(12)が読み出され、前記同様に、積和演算部40により、共通係数のデータ同士が加算され、係数が乗算されてその総和が算出される。
また、第1メモリ群22の各メモリブロック22a〜22dのアドレスAa=2には新規データを含む4個のデータd(25)〜d(16)がそれぞれ書き込まれ、ラッチ回路24にはデータd(13)が記憶される。
次に、図10の(b)のように、データ読出手段30aによりアドレスAa=0、Ab=2が指定され、データの読み出しが指示され、加算の組となる4個ずつのデータd(14)〜d(23)、d(2)〜d(11)が読み出され、前記同様に、積和演算部40により、共通係数のデータ同士が加算され、係数が乗算されてその総和が算出される。
続いて、図10の(c)のように、データ読出手段30aによりアドレスAa=2、Ab=1が指定され、データの読み出しが指示され、その直後に第2のデータ書込手段30cにより書き込みが指示される。
この処理により、加算の組となる4個ずつのデータd(15)〜d(24)、d(1)〜d(10)が読み出され、前記同様に、積和演算部40により、共通係数のデータ同士が加算され、係数が乗算されてその総和が算出される。
また、第2メモリ群23のメモリブロック23b〜23dには、それぞれ前段のメモリブロック23a〜23cのデータd(10)〜d(4)が書き込まれ、初段のメモリブロック23aには、ラッチ回路24に記憶されていたデータd(13)が書き込まれる。
上記3回のデータ読み出しにより、N個の連続するデータd(1)〜d(24)が読み出され、且つ、新規データd(25)に対するデータ更新がなされたことになる。
次に、図11の(a)のように、新規データd(26)が入力されているときに、データ読出手段30aによりアドレスAa=0、Ab=1が指定されて読み出しが指示され、その直後に第1のデータ書込手段30bにより書き込みが指示される。
この処理により、第1メモリ群22および第2メモリ群23からは、書き込み指示の直前に記憶されていた加算の組となる4個ずつのデータd(14)〜d(23)、d(4)〜d(13)が読み出され、前記同様に、積和演算部40により、共通係数のデータ同士が加算され、係数が乗算されてその総和が算出される。
また、第1メモリ群22の各メモリブロック22a〜22dのアドレスAa=0には新規データを含む4個のデータd(26)〜d(17)がそれぞれ書き込まれ、ラッチ回路24にはデータd(14)が記憶される。
次に、図11の(b)のように、データ読出手段30aによりアドレスAa=2、Ab=0が指定され、データの読み出しが指示され、加算の組となる4個ずつのデータd(15)〜d(24)、d(3)〜d(12)が読み出され、前記同様に、積和演算部40により、共通係数のデータ同士が加算され、係数が乗算されてその総和が算出される。
続いて、図11の(c)のように、データ読出手段30aによりアドレスAa=1、Ab=2が指定され、データの読み出しが指示され、その直後に第2のデータ書込手段30cにより書き込みが指示される。
この処理により、加算の組となる4個ずつのデータd(16)〜d(25)、d(2)〜d(11)が読み出され、前記同様に、積和演算部40により、共通係数のデータ同士が加算され、係数が乗算されてその総和が算出される。
また、第2メモリ群23のメモリブロック23b〜23dには、それぞれ前段のメモリブロック23a〜23cのデータd(11)〜d(5)が書き込まれ、初段のメモリブロック23aには、ラッチ回路24に記憶されていたデータd(14)が書き込まれる。
上記3回のデータ読み出しにより、N個の連続するデータd(2)〜d(25)が読み出され、且つ、新規データd(26)に対するデータ更新がなされたことになる。
このように、ラッチ回路24を設けたことにより、データの読み出しと書き込みを同一クロック内で行うことができ、データ更新のための余分なクロックが不要となり、装置速度の1/3の入力レートのデータに対するフィルタリング処理が行える。なお、係数が偶数タップ非対称型の場合には、前記したように、加算の組合せを考慮する必要がないので、積和演算部40を前記図7で示したように変更し、第2メモリ群23に対するデータ読み出しを、任意のアドレス順に行うことができる。
上記実施例は、新規データが1つ入力される毎に、その新規データを含む連続したN個のデータに対する積和演算結果を1つ出力する、即ち、入力レートと出力レートが等しい場合の動作であったが、入力レートに対して出力レートを下げる、所謂デシメーション処理を行う場合や、奇数タップ型の処理を行う場合には、図12に示すFIR型デジタルフィルタ70のように、ラッチ回路24の代わりに、第1メモリ群22および第2メモリ群23を構成している各メモリブロックと同一構成のデュアルポートRAMからなるバッファ25を設け、このバッファ25に対して、第1メモリ群22の最終段のメモリブロック22dとその前段(3段目)のメモリブロック22cの出力のいずれかを選択的に入力させるデータスイッチ26を設け、バッファ25とデータスイッチ26とをコントローラ30のバッファ制御手段30dによって制御する。
バッファ制御手段30dは、第1のデータ書込手段30bによるデータ書き込み時に第1メモリ群22の各メモリブロックに指定したアドレスに対応するデータをデータスイッチ26で選択しバッファ25に入力し、且つ、そのアドレスをバッファ25に指定して書き込みを指示する。また、第2のデータ書込手段30cによるデータ書き込み時に、その書き込み対象のアドレスの初段のメモリブロックのデータからm個(この場合3個)分新しいデータをバッファ25から読み出して初段のメモリブロック23aに入力する。
次に、この構成のFIR型デジタルフィルタ70により、1/3デシメーション処理を行う場合の動作について説明する。
この場合、図12に示しているデータ格納状態を初期状態とし、この初期状態から図13の(a)のように、第1メモリ群22および第2メモリ群23に対してアドレス2を指定し、バッファ25に対しては読み出しアドレス0、書き込みアドレス2を指定して、第1メモリ群22、第2メモリ群23およびバッファ25に対して読み出しを指示する。
これにより加算の組となる4個ずつのデータd(12)〜d(21)、d(2)〜d(11)が読み出されて演算処理される。
また、この読み出し指示の直後に第1メモリ群22、第2メモリ群23およびバッファ25に対して書き込みの指示を行う。
これにより、第1メモリ群22の各メモリブロックのアドレス2には、新規データを含む4個のデータd(15)〜d(24)がそれぞれ書き込まれ、第2メモリ群23の各メモリブロックのアドレス2には、バッファ25に記憶されていたデータを含む4個のデータd(5)〜d(14)がそれぞれ書き込まれ、バッファ25のアドレス2には第1メモリ群22の最終段のメモリブロック22dから読み出されていたデータd(12)が書き込まれる。
次に、図13の(b)のように、第1メモリ群22および第2メモリ群23に対してアドレス1を指定し、バッファ25に対しては読み出しアドレス1、書き込みアドレス1を指定して、第1メモリ群22、第2メモリ群23およびバッファ25に対して読み出しを指示する。
これにより加算の組となる4個ずつのデータd(13)〜d(22)、d(1)〜d(10)が読み出されて演算処理される。
また、この読み出し指示の直後に第1メモリ群22、第2メモリ群23およびバッファ25に対して書き込みの指示を行う。
これにより、第1メモリ群22の各メモリブロックのアドレス1には、新規データを含む4個のデータd(16)〜d(25)がそれぞれ書き込まれ、第2メモリ群23の各メモリブロックのアドレス1には、バッファ25に記憶されていたデータを含む4個のデータd(4)〜d(13)がそれぞれ書き込まれ、バッファ25のアドレス1には第1メモリ群22の3段目のメモリブロック22cから読み出されていたデータd(16)が書き込まれる。
最後に、図13の(c)のように、第1メモリ群22および第2メモリ群23に対してアドレス0を指定し、バッファ25に対しては読み出しアドレス2、書き込みアドレス0を指定して、第1メモリ群22、第2メモリ群23およびバッファ25に対して読み出しを指示する。
これにより加算の組となる4個ずつのデータd(14)〜d(23)、d(0)〜d(9)が読み出されて演算処理される。
また、この読み出し指示の直後に第1メモリ群22、第2メモリ群23およびバッファ25に対して書き込みの指示を行う。
これにより、第1メモリ群22の各メモリブロックのアドレス0には、新規データを含む4個のデータd(17)〜d(26)がそれぞれ書き込まれ、第2メモリ群23の各メモリブロックのアドレス0には、バッファ25に記憶されていたデータを含む4個のデータd(3)〜d(12)がそれぞれ書き込まれ、バッファ25のアドレス0には第1メモリ群22の3段目のメモリブロック22cから読み出されていたデータd(17)が書き込まれる。
上記3回の読み出し処理により、N個(偶数)の連続したデータd(0)〜d(23)に対する積和演算結果が得られる。また、この図13の(c)の状態は前記した図12のデータ配列と等しいが、記憶されているN個のデータはd(3)〜d(26)であるから、この次の処理では、このデータd(3)〜d(26)についての積和演算結果が得られることになる。
つまり、連続するN個のデータd(1)〜d(24)、d(2)〜d(25)についての積和演算結果は省略されて、新規データの入力3回に1回の割合で一つの積和演算結果が得られる1/3デシメーション処理となる。
次に、上記構成のFIR型デジタルフィルタ70において、奇数タップ対称型の処理を行う場合の動作について説明する。
図14の(a)に示すように、第1メモリ群22には奇数Nの中間データd(11)を含む新しい方の12個のデータd(11)〜d(22)が記憶され、第2メモリ群23には中間データd(11)を含む古い方の12個のデータd(0)〜d(11)が記憶され、バッファ25には、第1メモリ群22の最終段のメモリブロック22dと同一のデータd(11)〜d(13)が記憶されているものとし、これを初期状態とする。
この初期状態から、コントローラ30は、図14の(b)のように、第1メモリ群22および第2メモリ群23に対してアドレス2を指定してデータの読み出しを指示するとともにバッファ25に対してもアドレス22を指定し、その直後に第1メモリ群22とバッファッファ25に対してデータの書き込みを指示する。
これにより、前記同様に、加算の組となる4個ずつのデータd(11)〜d(20)、d(2)〜d(11)が読み出されて積和演算部40に出力されて演算処理される。
なお、第1メモリ群22および第2メモリ群23から読み出される中間のデータd(11)に対しては、積和演算部40におい、その加算結果に対し本来の係数の1/2が乗算される。
また、第1メモリ群22の各メモリブロックのアドレス2には、新規データを含む4個のデータd(14)〜d(23)がそれぞれ書き込まれ、バッファ25のアドレス2には、データスイッチ26を介して第1メモリ群22のメモリブロック22cのデータd(14)が書き込まれる。
次に、図15(a)のように、第1メモリ群22および第2メモリ群23に対してアドレス1が指定されて、加算の組となる4個ずつのデータd(12)〜d(21)、d(1)〜d(10)が読み出されて積和演算部40に出力されて演算処理される。
さらに、図15(b)のように、第1メモリ群22および第2メモリ群23に対してアドレス0が指定されて、加算の組となる4個ずつのデータd(13)〜d(22)、d(0)〜d(9)が読み出されて積和演算部40に出力されて演算処理され、連続するN(奇数)個の全てのデータd(0)〜d(22)についての積和演算結果が得られる。
また、この3回のデータの読み出し時にはバッフア25に対してアドレス1が指定されて読み出し指示がなされ、その直後に第2メモリ群23に対する書き込み指示がなされる。これにより、第2メモリ群23の各メモリブロックのアドレス0には、データd(3)〜d(12)がそれぞれ書き込まれる。
次に、図16の(a)のように、第1メモリ群22に対してアドレス1、第2メモリ群23に対してアドレス0が指定されてデータ読み出しが指示され、バッファ25に対してアドレス1が指定される。
これにより、加算の組となる4個ずつのデータd(12)〜d(21)、d(3)〜d(12)が読み出されて積和演算部40に出力されて演算処理される。
このとき、第1メモリ群22および第2メモリ群23から読み出される中間のデータd(12)に対しては、前記同様に、積和演算部40においてその加算結果に対して本来の係数の1/2が乗算される。
また、第1メモリ群22の各メモリブロックのアドレス1には新規データを含む4個のデータd(15)〜d(24)がそれぞれ書き込まれ、バッファ25のアドレス1には、データスイッチ26を介して第1メモリ群22の3段目のメモリブロック22cのデータd(15)が書き込まれる。
続いて、図16の(b)のように、第1メモリ群22に対してアドレス0、第2メモリ群23に対してアドレス2が指定されて、加算の組となる4個ずつのデータd(13)〜d(22)、d(2)〜d(11)が読み出されて積和演算部40に出力されて演算処理される。
さらに、図17の(a)のように、第1メモリ群22に対してアドレス2、第2メモリ群23に対してアドレス1が指定されて、加算の組となるデータd(14)〜d(23)、d(1)〜d(10)が読み出されて積和演算部40に出力されて演算処理され、N個(奇数)の連続する全てのデータd(1)〜d(23)についての積和演算結果が得られる。
また、このときバッファ25に対してアドレス0が指定されて読み出され、その直後に第2メモリ群23に対する書き込み指示がなされる。
これにより、第2メモリ群23の各メモリブロックのアドレス1には、4個のデータd(4)〜d(13)が書き込まれる。
次に、図17の(b)のように、第1メモリ群22に対してアドレス0が指定され、第2メモリ群23に対してアドレス1が指定されデータ読み出しが指示されるとともに、バッファ25に対してアドレス0が指定され、その直後に第1メモリ群22とバッファ25に対する書き込みが指示される。
これにより、第1のメモリ群22および第2のメモリ群23から加算の組となる4個ずつのデータd(13)〜d(22)、d(4)〜d(13)が読み出されて演算処理される。また、第1メモリ群22の各メモリブロックのアドレス0には、新規入力データd(25)を含む4個のデータd(16)〜d(25)が書き込まれ、バッファ25のアドレス0には、データスイッチ26を介して第1メモリ群22のメモリブロック22cのデータd(16)が書き込まれる。
続いて、図18の(a)のように、第1メモリ群22に対してアドレス2、第2メモリ群23に対してアドレス0が指定されて、加算の組となる4個ずつのデータd(14)〜d(23)、d(3)〜d(12)が読み出されて積和演算部40に出力されて演算処理される。
さらに、図18の(b)のように、第1メモリ群22に対してアドレス1、第2メモリ群23に対してアドレス2が指定されて、加算の組となる4個ずつのデータd(15)〜d(24)、d(2)〜d(11)が読み出されて積和演算部40に出力されて演算処理され、N個(奇数)の連続する全てのデータd(2)〜d(24)についての積和演算結果が得られる。
また、この読み出し時にはバッファ25に対してアドレス0が指定され読み出し指示がなされ、その直後に第2メモリ群23に対してデータの書き込みが指示される。
これにより、第2メモリ群23の各メモリブロックのアドレス2には、4個のデータd(5)〜d(14)がそれぞれ書き込まれる。
このときのデータ配列は、図14の(a)の初期状態と同じであり、以下、上記の動作を繰り返すことで、装置速度の1/3のレートで入力されるデータに対して、奇数タップ対称型のフィルタリング処理を遅延なく行うことができる。
なお、奇数タップ対称型で1/3デシメーション処理を行う場合には、図19の(a)に示す初期状態から、図19の(b)のように、第1メモリ群22、第2メモリ群23およびバッファ25に対してアドレス2を指定し、前記同様に読み書きを指示することで、加算の組となる4個ずつのデータd(11)〜d(20)、d(2)〜d(11)の読み出しと、更新のための書き込みを行う。
次に、図20の(a)のように、第1メモリ群22、第2メモリ群23にアドレス1、バッファ25に読み出しアドレス0を指定し、読み出しを指示して、加算の組となる4個ずつのデータd(12)〜d(21)、d(1)〜d(10)の読み出しを行い、第1のメモリ群22、第2メモリ群23およびバッファ25(書き込みアドレス1)に対して書き込みを指示して、更新のための書き込みを行う。
最後に、図20の(b)のように、第1メモリ群22、第2メモリ群23にアドレス0、バッファ25に読み出しアドレス1を指定し、読み出しを指示して、加算の組となる4個ずつのデータd(13)〜d(22)、d(0)〜d(9)の読み出しを行い、第1のメモリ群22、第2メモリ群23およびバッファ25(書き込みアドレス0)に対して書き込みを指示して、更新のための書き込みを行う。
この図20の(b)の状態は、図19の(a)の初期状態と等価であり、以下、この処理を繰り返すことで、奇数タップ対称型で1/3デシメーションのフィルタリング処理がなされる。
上記した各実施例は、各メモリブロックのアドレス数mが3の場合であったが、これは本発明を限定するものではなく、このアドレス数mを大きくする、例えば図21のようにm=6にすれば、より多くのタップ数で多種のデシメーション処理が可能である。
なお、この場合、データスイッチ26は、第1メモリ群22の2段目のメモリブロック22bから読み出されるデータも選択できるように構成する。
図21の(a)は、データの入力レートが装置速度の1/3で、48タップ、1/2デシメーション処理を行う場合の初期状態を示している。
この場合、第1メモリ群22の4個のメモリブロックには、48個のデータのうち、新しい方の24個のデータd(24)〜d(47)が6個ずつ降順に記憶され、第2メモリ群23の4個のメモリブロックには、古い方の24個のデータd(0)〜d(23)が6個ずつ昇順に記憶され、且つバッファ25のアドレス0、2、4には、第1メモリ群22の最終段のメモリブロックのアドレス0、2、4の各データd(29)、d(27)、d(25)が記憶されている。
この初期状態から始めに図21の(b)のように、第1メモリ群22と第2メモリ群23のアドレス5のデータd(24)〜d(42)、d(5)〜d(23)が読み出されて積和演算処理され、その直後に第1メモリ群22とバッファ25に対する書き込みが指示されて、第1メモリ群22のアドレス5に新規データd(48)を含むデータd(30)〜d(48)が書き込まれ、バッファ25のアドレス5にはデータd(24)が書き込まれる(ステップ1)。
次に、図22の(a)のように、第1メモリ群22と第2メモリ群23のアドレス3のデータd(26)〜d(44)、d(3)〜d(21)が読み出されて積和演算処理される(ステップ2)。
その次のステップでは、図22の(b)のように、第1メモリ群22と第2メモリ群23のアドレス1のデータd(28)〜d(46)、d(1)〜d(19)が読み出されて積和演算処理される。また、このとき、第2メモリ群23のアドレス1にバッファ25のアドレス4のデータを含むデータd(7)〜d(25)が書き込まれる(ステップ3)。
次に、図23の(a)のように、第1メモリ群22と第2メモリ群23のアドレス4のデータd(25)〜d(43)、d(4)〜d(22)が読み出されて積和演算処理され、その直後に第1メモリ群22とバッファ25に対する書き込みが指示されて、第1メモリ群22のアドレス4に新規データd(49)を含むデータd(31)〜d(49)が書き込まれ、バッファ25のアドレス4にはデータd(31)が書き込まれる(ステップ4)。
次に、図23の(b)のように、第1メモリ群22と第2メモリ群23のアドレス2のデータd(27)〜d(45)、d(2)〜d(20)が読み出されて積和演算処理される(ステップ5)。
続いて、図24のように第1メモリ群22と第2メモリ群23のアドレス0のデータd(29)〜d(47)、d(0)〜d(18)が読み出されて積和演算処理され、また、このとき、第2メモリ群23のアドレス0にバッファ25のアドレス5のデータを含むデータd(6)〜d(24)が書き込まれる(ステップ6)。
上記の6回のデータ読み出しにより、初期状態に記憶されていた48個のデータd(0)〜d(47)の読み出しが完了し、その48個のデータについての積和演算結果が得られる。
以下、図示しないが次の処理が行われる。
(ステップ7)加算の組となる第1メモリ群22のアドレス3と第2メモリ群23のアドレス1の各データの読み出し(積和演算)、第1メモリ群22に対する新規データd(50)を含むデータの書き込みおよびバッファ25のアドレス3へのデータd(26)の書き込み。
(ステップ8)加算の組となる第1メモリ群22のアドレス1と第2メモリ群23のアドレス5の各データの読み出し(積和演算)。
(ステップ9)加算の組となる第1メモリ群22のアドレス5と第2メモリ群23のアドレス3の各データの読み出し(積和演算)および第2メモリ群23に対するバッファ25のアドレス2のデータd(27)を含むデータの書き込み。
(ステップ10)加算の組となる第1メモリ群22のアドレス2と第2メモリ群23のアドレス0の各データの読み出し(積和演算)、第1メモリ群22に対する新規データd(51)を含むデータの書き込みおよびバッファ25のアドレス2へのデータd(33)の書き込み。
(ステップ11)加算の組となる第1メモリ群22のアドレス0と第2メモリ群23のアドレス4の各データの読み出し(積和演算)。
(ステップ12)加算の組となる第1メモリ群22のアドレス4と第2メモリ群23のアドレス2の各データの読み出し(積和演算)、および第2メモリ群23に対するバッファ25のアドレス2のデータd(26)を含むデータの書き込み。
上記ステップ7〜12の処理で48個のデータd(2)〜d(49)の読み出しが完了し、その48個のデータについての最終の積和演算結果が得られる。
そして、この状態から、前記同様に次の処理が行われる。
(ステップ13)加算の組となる第1メモリ群22のアドレス1と第2メモリ群23のアドレス3の各データの読み出し(積和演算)、第1メモリ群22に対する新規入力データd(52)を含むデータの書き込みおよびメモリブロック22dからバッファ25のアドレス1へのデータd(28)の書き込み。
(ステップ14)加算の組となる第1メモリ群22のアドレス5と第2メモリ群23のアドレス1の各データの読み出し(積和演算)。
(ステップ15)加算の組となる第1メモリ群22のアドレス3と第2メモリ群23のアドレス5の各データの読み出し(積和演算)および第2メモリ群23に対するバッファ25のアドレス0のデータd(29)を含む書き込み。
(ステップ16)加算の組となる第1メモリ群22のアドレス0と第2メモリ群23のアドレス2の各データの読み出し(積和演算)、第1メモリ群22に対する新規データd(53)を含むデータの書き込みおよびメモリブロック22cからバッファ25のアドレス0へのデータd(35)の書き込み。
(ステップ17)加算の組となる第1メモリ群22のアドレス4と第2メモリ群23のアドレス0の各データの読み出し(積和演算)。
(ステップ18)加算の組となる第1メモリ群22のアドレス2と第2メモリ群23のアドレス4の各データの読み出し(積和演算)および第2メモリ群23に対するバッファ25のアドレス1のデータd(28)を含むデータの書き込み。
上記ステップ13〜18の処理で48個のデータd(4)〜d(51)の読み出しが完了し、その48個のデータについての積和演算結果が得られる。また、このときのデータの配列は、図21の(a)の初期状態と同じになる。
以上のステップ1〜18の処理で、48個の各データd(0)〜d(47)、データd(2)〜d(49)およびデータd(4)〜d(51)の積和演算結果が順次得られることになる。
したがって、上記ステップ1〜18の処理を繰り返すことにより、1/2デシメーションでフィルタリング処理できる。
次に、上記したアドレス数6のメモリブロックとバッファ25を用いた構成で奇数タップ対称型の処理を説明する。
図25の(a)は、そのデータの格納の初期状態を示しており、第1メモリ群22には、47個(奇数N個)のデータのうち、中間のデータd(23)を含む新しい方のデータd(23)〜d(46)が、6個ずつ4つのメモリブロックに降順に記憶され、第2メモリ群23には、中間のデータd(23)を含む古い方のデータd(0)〜d(23)が、6個ずつ4つのメモリブロックに昇順に記憶されている。また、バッファ25には、アドレスの昇順に、データd(22)、d(27)、d(20)、d(25)、d(18)、d(23)が記憶されている。
この状態から次の一連の処理がなされる。
(ステップ101)加算の組となる第1メモリ群22のアドレス5と第2メモリ群23のアドレス5のデータの読み出し(積和演算、ただし、中間データに対してはその加算結果に本来の係数の1/2を乗算する)、第1メモリ群22に対する新規データd(47)を含むデータ書き込みおよびメモリブロック22cからバッファ25のアドレス5へのデータd(29)の書き込み。
(ステップ102)加算の組となる第1メモリ群22と第2メモリ群23のアドレス3の各データの読み出し(積和演算)。
(ステップ103)加算の組となる第1メモリ群22と第2メモリ群23のアドレス1の各データの読み出し(積和演算)および第2メモリ群23に対するバッファ25のアドレス3のデータd(25)によるアドレス1のデータ書き込み。
上記ステップ101〜103の処理により、データの配列は図25の(b)に示す状態となり、この状態から次の処理を行う。
(ステップ104)加算の組となる第1メモリ群22と第2メモリ群23のアドレス4の各データの読み出し(積和演算)、第1メモリ群22に対する新規データd(48)を含むデータ書き込みおよびメモリブロック22dからバッファ25のアドレス4へのデータd(24)の書き込み。
(ステップ105)加算の組となる第1メモリ群22と第2メモリ群23のアドレス2の各データの読み出し(積和演算)。
(ステップ106)加算の組となる第1メモリ群22と第2メモリ群23のアドレス0の各データの読み出し(積和演算)および第2メモリ群23に対するバッファ25のアドレス4のデータd(24)を含むデータ書き込み。
上記のステップ101〜106の処理により、47個のデータd(0)〜d(46)の読み出しが完了し、その47個のデータについての積和演算結果が得られる。このときのデータの配列は図26の(a)に示す状態となり、この状態から次の処理を行う。
(ステップ107)加算の組となる第1メモリ群22のアドレス3と第2メモリ群23のアドレス1の各データの読み出し(積和演算)および第1メモリ群22に対する新規データd(49)を含むデータの書き込みおよびメモリブロック22cからバッファ25のアドレス3へのデータd(31)の書き込み。
(ステップ108)加算の組となる第1メモリ群22のアドレス1と第2メモリ群23のアドレス5の各データの読み出し(積和演算)。
(ステップ109)加算の組となる第1メモリ群22のアドレス5と第2メモリ群23のアドレス3の各データの読み出し(積和演算)および第2メモリ群23に対するバッファ25のアドレス1のデータd(27)を含むデータ書き込み。
上記のステップ107〜109の処理により、データの配列は図26の(b)に示す状態となり、この状態から次の処理を行う。
(ステップ110)加算の組となる第1メモリ群22のアドレス2と第2メモリ群23のアドレス0の各データの読み出し(積和演算)、第1メモリ群22に対する新規データd(50)を含むデータ書き込みおよびメモリブロック22dからバッファ25のアドレス2へのデータd(26)の書き込み。
(ステップ111)加算の組となる第1メモリ群22のアドレス0と第2メモリ群23のアドレス4の各データの読み出し(積和演算)。
(ステップ112)加算の組となる第1メモリ群22のアドレス4と第2メモリ群23のアドレス2の各データの読み出し(積和演算)および第2メモリ群23に対するバッファ25のアドレス2のデータd(26)を含むデータ書き込み。
上記のステップ110〜112の処理により、47個のデータd(2)〜d(48)の読み出しが完了し、その47個のデータについての積和演算結果が得られる。また、このときのデータの配列は図27の(a)に示す状態となり、この状態から次の処理を行う。
(ステップ113)加算の組となる第1メモリ群22のアドレス1と第2メモリ群23のアドレス3の各データの読み出し(積和演算)、第1メモリ群22に対する新規データd(51)を含むデータ書き込みおよびメモリブロック22cからバッファ25のアドレス1へのデータd(33)の書き込み。
(ステップ114)加算の組となる第1メモリ群22のアドレス5と第2メモリ群23のアドレス1の各データの読み出し(積和演算)。
(ステップ115)加算の組となる第1メモリ群22のアドレス3と第2メモリ群23のアドレス5の各データの読み出し(積和演算)および第2メモリ群23に対するバッファ25のアドレス5のデータd(29)を含むデータ書き込み。
上記のステップ113〜115の処理により、データの配列は図27の(b)に示す状態となり、この状態から次の処理を行う。
(ステップ116)加算の組となる第1メモリ群22のアドレス0と第2メモリ群23のアドレス2の各データの読み出し(積和演算)、第1メモリ群22に対する新規データd(52)を含むデータ書き込みおよびメモリブロック22dからバッファ25のアドレス0へのデータd(28)の書き込み。
(ステップ117)加算の組となる第1メモリ群22のアドレス4と第2メモリ群23のアドレス0の各データの読み出し(積和演算)。
(ステップ118)加算の組となる第1メモリ群22のアドレス2と第2メモリ群23のアドレス4の各データの読み出し(積和演算)および第2メモリ群23に対するバッファ25のアドレス0のデータd(28)を含むデータ書き込み。
上記のステップ113〜118の処理により、47個のデータd(4)〜d(50)の読み出しが完了し、その47個のデータについての積和演算結果が得られる。また、このときのデータの配列は図28となり、これは、図25の(a)の初期状態と等しい。
以上ステップ101〜118の処理により、47個の各データd(0)〜d(46)、データd(2)〜d(48)およびデータd(4)〜d(50)の積和演算結果が順次得られることになり、以下これを繰り返すことで、奇数タップ、1/2デシメーションによるフィルタリング処理を行うことができる。
なお、上記動作例は一例であり、他のデシメート処理等についても、第1メモリ群22、第2メモリ群23およびバッファ25に対する読み出しや書き込みの順序を適宜変更することで対応できる。また、バッファ25についてのみ読み書きアドレスを独立に制御するだけで、第1メモリ群22、第2メモリ群23については読み書き共通のアドレスを用いることができ、その制御も容易に行える。
また、前記した各実施例では、第1メモリ群22の各メモリブロックに対してデータをアドレスの降順に記憶し、第2メモリ群23の各メモリブロックに対してデータをアドレスの昇順に記憶していたが、逆に、第1メモリ群22の各メモリブロックに対してデータをアドレスの昇順に記憶し、第2メモリ群23の各メモリブロックに対してデータをアドレスの降順に記憶してもよい。
本発明の実施形態の構成図 実施形態の動作説明図 実施形態の動作説明図 実施形態の動作説明図 実施形態の動作説明図 実施形態の動作説明図 係数非対称型の場合の構成図 本発明の他の実施形態の構成図 他の実施形態の動作説明図 他の実施形態の動作説明図 他の実施形態の動作説明図 本発明の他の実施形態の構成図 他の実施形態のデシメーション処理の動作説明図 他の実施形態の奇数タップ処理の動作説明図 他の実施形態の奇数タップ処理の動作説明図 他の実施形態の奇数タップ処理の動作説明図 他の実施形態の奇数タップ処理の動作説明図 他の実施形態の奇数タップ処理の動作説明図 他の実施形態の奇数タップ処理とデシメーション処理の動作説明図 他の実施形態の奇数タップ処理とデシメーション処理の動作説明図 メモリブロックのアドレス数を6にした場合のデシメーション処理の動作説明図 メモリブロックのアドレス数を6にした場合のデシメーション処理の動作説明図 メモリブロックのアドレス数を6にした場合のデシメーション処理の動作説明図 メモリブロックのアドレス数を6にした場合のデシメーション処理の動作説明図 メモリブロックのアドレス数を6にした場合の奇数タップとデシメーション処理の動作説明図 メモリブロックのアドレス数を6にした場合の奇数タップとデシメーション処理の動作説明図 メモリブロックのアドレス数を6にした場合の奇数タップとデシメーション処理の動作説明図 メモリブロックのアドレス数を6にした場合の奇数タップとデシメーション処理の動作説明図 FIR型デジタルフィルタの基本構成図
符号の説明
20、50、60、70……FIR型デジタルフィルタ、21……データ記憶部、22……第1メモリ群、22a〜22d……メモリブロック、23……第2メモリ群、23a〜23d……メモリブロック、24……ラッチ回路、25……バッファ、26……データスイッチ、30……コントローラ、30a……データ読出手段、30b……第1のデータ書込手段、30c……第2のデータ書込手段、30d……バッファ制御手段、40……積和演算部、41……係数メモリ、42……係数選択手段、43a〜43d……加算器、44a〜44h……乗算器、45……総和演算器

Claims (6)

  1. 時系列に入力される最新の複数N(Nは、複数m、整数pに対して2×m×pまたは2×m×p−1に等しい整数)のデータを記憶するデータ記憶部(21)と、該データ記憶部に記憶された連続するN個のデータに所定の係数を乗じ、その総和を計算して出力する積和演算部(40)とを有するFIR型デジタルフィルタにおいて、
    前記データ記憶部を、
    データの読み書きを独立に行えるアドレス数mのデュアルポートRAMからなるメモリブロック(22a〜22d)がp段直列に接続され、新規データを受けて、前記連続するN個のデータのうち新しい方から数えてm×p個のデータを記憶するための第1メモリ群(22)と、
    データの読み書きを独立に行えるアドレス数mのデュアルポートRAMからなるメモリブロック(23a〜23d)がp段直列に接続され、前記第1メモリ群から読み出されたデータを受けて、前記連続するN個のデータのうち古い方から数えてm×p個のデータを記憶するための第2メモリ群(23)と、
    前記第1メモリ群と前記第2メモリ群のいずれか一方のメモリ群の各メモリブロックにデータが降順に記憶され、他方のメモリ群の各メモリブロックにデータが昇順に記憶された状態を初期状態とし、該初期状態から前記第1メモリ群と第2メモリ群に対してアドレスを順次変更しながら読み出しを指示し、前記連続するN個のデータを、2p個ずつm回に分けて順次読出し、前記積和演算部へ出力するデータ読出手段(30a)と、
    前記データ読出手段によるデータ読み出しが所定回行われる毎に、前記第1メモリ群の各メモリブロックに対してその記憶されている最も古いデータのアドレスへの書き込みを指示し当該アドレスの各データを後段に書き込むとともに、初段のメモリブロックに新規データを書き込む第1のデータ書込手段(30b)と、
    前記データ読出手段によるデータ読み出しが前記所定回行われる毎に、前記第2メモリ群の各メモリブロックに対して読出済みデータのアドレスへの書き込みを指示し当該アドレスの各データをそれぞれ後段に書き込むとともに、初段のメモリブロックに対して、前記第1のデータ書込手段によるデータ書き込み時に前記第1メモリ群から読み出されたデータを書き込む第2のデータ書込手段(30c)とを有し、
    前記データ読出手段、前記第1のデータ書込手段および第2のデータ書込手段は、前記初期状態からm個の新規データの書き込みが終了した段階で前記初期状態に戻るようにアドレスを切り換えることを特徴とするFIR型デジタルフィルタ。
  2. 前記積和演算部は、
    前記連続するN個のデータに乗じるための係数を記憶している係数メモリ(41)と、
    前記データ読出手段によって前記第1メモリ群と第2メモリ群からそれぞれp個ずつ読み出されるデータに対応する係数を前記係数メモリから選択する係数選択手段(42)とを有しており、
    前記データ読出手段によって2p個ずつm回に分けて読み出されるデータと、前記係数選択手段によって選択された係数とを用いて積和演算を行うように構成されていることを特徴とする請求項1記載のFIR型デジタルフィルタ。
  3. 前記第1のデータ書込手段は、前記データ読出手段が前記第1メモリ群の各メモリブロックに記憶されているデータのうち最も古いデータのアドレスを指定して読み出しを指示した直後に前記第1メモリ群の各メモリブロックの当該アドレスへの書き込みを指示するように構成され、
    前記第2のデータ書込手段は、前記データ読出手段が前記第2メモリ群の各メモリブロックに記憶されているデータのアドレスを指定して読み出しを指示した直後に前記第2メモリ群の各メモリブロックの当該アドレスへのデータ書き込みを指示するように構成されていることを特徴とする請求項1または請求項2記載のFIR型デジタルフィルタ。
  4. 前記第1メモリ群と第2メモリ群の間にラッチ回路(24)が設けられ、
    前記第1のデータ書込手段は、前記第1メモリ群の各メモリブロックに書き込みを指示するときに、最終段のメモリブロックから読み出されているデータを前記ラッチ回路に書き込み、
    前記第2のデータ書込手段は、前記第2メモリ群の各メモリブロックに書き込みを指示するときに、前記ラッチ回路に記憶されているデータを初段のメモリブロックに書き込むように構成されていることを特徴とする請求項3記載のFIR型デジタルフィルタ。
  5. 前記メモリブロックと等しいアドレス数mを有するデュアルポートRAMからなり、前記第1メモリ群から読み出されたデータを記憶し、該記憶したデータを前記第2メモリ群に出力するバッファ(25)と、
    前記第1メモリ群の各メモリブロックのうち最終段と少なくともその前段のメモリブロックから出力されたデータのいずれかを選択して前記バッファに入力するデータスイッチ(26)と、
    前記第1のデータ書込手段によるデータ書き込み時に前記第1メモリ群の各メモリブロックに指定したアドレスに対応するデータを前記データスイッチにより選択して前記バッファに入力し、且つ、当該アドレスを前記バッファに指定して書き込みを指示し、前記第2のデータ書込手段によるデータ書き込み時に、該書き込み対象のアドレスの初段のメモリブロックのデータからm個分新しいデータを前記バッファから読み出して前記初段のメモリブロックに入力するバッファ制御手段(30d)とを設けたことを特徴とする請求項3記載のFIR型デジタルフィルタ。
  6. 前記係数メモリには、前記第1メモリ群および第2メモリ群に記憶された連続するN個のデータのうち、新しい方から数えた順位と古い方から数えた順位が等しいデータの組にそれぞれ共通の係数が記憶しており、
    前記データ読出手段は、前記係数が共通のデータを前記第1メモリ群と第2メモリ群からp個ずつ読み出すように構成され、
    前記積和演算部は、係数が共通のデータ同士をp個の加算器(43a〜43d)によりそれぞれ加算し、その加算結果をp個の乗算器(44a〜44d)にそれぞれ出力して前記共通の係数をそれぞれ乗じ、該p個の乗算器の乗算結果のm回分の総和を総和演算器(45)により求めることを特徴とする請求項1〜5のいずれかに記載のFIR型デジタルフィルタ。
JP2005081510A 2005-03-22 2005-03-22 Fir型デジタルフィルタ Active JP4295234B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2005081510A JP4295234B2 (ja) 2005-03-22 2005-03-22 Fir型デジタルフィルタ

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2005081510A JP4295234B2 (ja) 2005-03-22 2005-03-22 Fir型デジタルフィルタ

Publications (2)

Publication Number Publication Date
JP2006270178A true JP2006270178A (ja) 2006-10-05
JP4295234B2 JP4295234B2 (ja) 2009-07-15

Family

ID=37205712

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2005081510A Active JP4295234B2 (ja) 2005-03-22 2005-03-22 Fir型デジタルフィルタ

Country Status (1)

Country Link
JP (1) JP4295234B2 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117110767A (zh) * 2023-10-18 2023-11-24 广州新创航宇电子科技有限公司 跳频滤波器数据自动筛选方法及系统

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117110767A (zh) * 2023-10-18 2023-11-24 广州新创航宇电子科技有限公司 跳频滤波器数据自动筛选方法及系统
CN117110767B (zh) * 2023-10-18 2024-01-26 广州新创航宇电子科技有限公司 跳频滤波器数据自动筛选方法及系统

Also Published As

Publication number Publication date
JP4295234B2 (ja) 2009-07-15

Similar Documents

Publication Publication Date Title
JP2003296096A (ja) シリアル演算パイプライン、演算装置、算術論理演算回路およびシリアル演算パイプラインによる演算方法
US4766561A (en) Method and apparatus for implementing multiple filters with shared components
EP4054077A1 (en) Interpolation filter system implemented by digital circuit
JPS6165616A (ja) 対称形firディジタルフィルタ
JPS63278411A (ja) 多段デジタル・フィルタ
JP4388141B2 (ja) ディジタルフィルタ用共有リソース
JP4295234B2 (ja) Fir型デジタルフィルタ
US5886912A (en) Processing elements connected in cascade having a controllable bypass
KR20090048588A (ko) 디지털필터, 그 합성장치, 및 합성프로그램이 기록된 컴퓨터 판독 가능한 기록매체
JPH0767063B2 (ja) デジタル信号処理回路
KR100235537B1 (ko) 디지털 필터의 가변탭 구조 및 그의 곱셈회로
JPH0335353A (ja) 離散的コサイン変換装置
JPH0998069A (ja) Fir型ディジタルフィルタ
JP2922451B2 (ja) 信号処理装置
JP4413052B2 (ja) データフローグラフ処理装置および処理装置
JP2001160736A (ja) デジタルフィルタ回路
JPH02264509A (ja) デジタルフィルタ
JP3123060B2 (ja) ディジタル演算回路
JP2007267204A (ja) フィルタ装置
JP2004128858A (ja) Firデジタルフィルタ
JPH0795671B2 (ja) デイジタルフイルタ
JP2010011493A (ja) ディジタルフィルタ
JP3120435B2 (ja) ディジタル演算回路
JP2003332888A (ja) フィルタ装置
KR100324729B1 (ko) 유한충격응답필터

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20081021

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20081219

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20090127

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20090331

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20090409

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120417

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Ref document number: 4295234

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120417

Year of fee payment: 3

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130417

Year of fee payment: 4

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130417

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20140417

Year of fee payment: 5

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250