JP4295234B2 - FIR type digital filter - Google Patents

FIR type digital filter Download PDF

Info

Publication number
JP4295234B2
JP4295234B2 JP2005081510A JP2005081510A JP4295234B2 JP 4295234 B2 JP4295234 B2 JP 4295234B2 JP 2005081510 A JP2005081510 A JP 2005081510A JP 2005081510 A JP2005081510 A JP 2005081510A JP 4295234 B2 JP4295234 B2 JP 4295234B2
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.)
Active
Application number
JP2005081510A
Other languages
Japanese (ja)
Other versions
JP2006270178A (en
Inventor
俊幸 松田
富康 伊藤
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/en
Publication of JP2006270178A publication Critical patent/JP2006270178A/en
Application granted granted Critical
Publication of JP4295234B2 publication Critical patent/JP4295234B2/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Description

本発明は、時系列に入力されるデータ列に対するフィルタリング処理を行うFIR型デジタルフィルタにおいて、簡単なハードウエア構成で、演算のパイプライン処理に対応できるようにするための技術に関する。   The present invention relates to a technique for enabling a pipeline processing of operations with a simple hardware configuration in an FIR digital filter that performs a filtering process on a data string input in time series.

データ列に対する種々のフィルタリング処理を行うために、従来から図29に示すFIR型デジタルフィルタ10が用いられている。   Conventionally, an FIR digital filter 10 shown in FIG. 29 is used to perform various filtering processes on a data string.

このFIR型デジタルフィルタ10は、データ記憶部11および積和演算部15とにより構成されている。   The FIR type digital filter 10 includes a data storage unit 11 and a product-sum operation unit 15.

データ記憶部11は、複数N段直列に接続されたラッチ回路12(1)〜12(N)により構成され、クロックに同期して入力されるデータd(0)、d(1)、…、d(N−1)を初段のラッチ回路12(1)から最終段のラッチ回路12(N)まで順次シフトし、最新のN個のデータを常に記憶する。   The data storage unit 11 includes latch circuits 12 (1) to 12 (N) connected in series in a plurality of N stages, and data d (0), d (1),. d (N−1) is sequentially shifted from the latch circuit 12 (1) at the first stage to the latch circuit 12 (N) at the last stage, and the latest N pieces of data are always stored.

積和演算部15は、各ラッチ回路12(1)〜12(N)にラッチされたデータを乗算器16(1)〜16(N)でそれぞれ受け、係数設定器17から出力された係数a(0)、a(1)、…、a(N−1)と乗算し、その乗算結果の総和を総和演算器18によって求め、その結果D(i)を処理結果として出力する。   The product-sum operation unit 15 receives the data latched by the latch circuits 12 (1) to 12 (N) by the multipliers 16 (1) to 16 (N), respectively, and outputs the coefficient a output from the coefficient setting unit 17. (0), a (1),..., A (N−1) are multiplied, the sum of the multiplication results is obtained by the sum calculator 18 and the result D (i) is output as the processing result.

この構成のFIR型デジタルフィルタ10は、データ記憶部11のラッチ回路12の段数N(遅延段数)と係数a(0)〜a(N−1)の値によって決まるフィルタリング処理を行っている。   The FIR digital filter 10 having this configuration performs a filtering process determined by the number of stages N (the number of delay stages) of the latch circuit 12 of the data storage unit 11 and the values of the coefficients a (0) to a (N−1).

このような基本構成を有するFIR型デジタルフィルタにおいて、遅延段数が多い場合、それに応じて積和演算に必要な乗算器16の数も多くなり、ハードウエアが膨大化するという問題がある。   In the FIR type digital filter having such a basic configuration, when the number of delay stages is large, the number of multipliers 16 necessary for the product-sum operation increases accordingly, and there is a problem that the hardware becomes enormous.

これを解決するために、演算処理をパイプライン処理する技術が次の特許文献1に開示されている。   In order to solve this problem, a technique for performing pipeline processing for arithmetic processing is disclosed in the following Patent Document 1.

特許第2513218号Japanese Patent No. 2513218

この文献では、連続するM個のラッチ回路(レジスタ)を一組とし、そのM個のラッチ回路に記憶されたデータ(あるいは入力データ)をマルチプレクサにより時系列に選択し、その選択データに係数を乗算するという処理をM回繰り返してその合計値を求め、これを他の組の合計値ともにマルチプレクサに入力し、時系列に合計値を選択してその総和を求めている。したがって、乗算器の数はM個のラッチ回路に1個の割合で済むことになる。   In this document, a series of M latch circuits (registers) is set as a set, data (or input data) stored in the M latch circuits is selected in a time series by a multiplexer, and a coefficient is assigned to the selected data. The multiplication process is repeated M times to obtain the total value, which is input to the multiplexer together with the other sets of total values, and the total value is selected in time series to obtain the sum. Therefore, the number of multipliers is one per M latch circuits.

しかしながら、上記のようにラッチ回路に記憶されているデータをマルチプレクサにより順次選択する構成では、M個のマルチプレクサが必須となり、乗算器の減少によるハードウエア構成の簡単化という点では効果が少ない。   However, in the configuration in which the data stored in the latch circuit is sequentially selected by the multiplexer as described above, M multiplexers are indispensable, and there is little effect in terms of simplifying the hardware configuration by reducing the number of multipliers.

本発明は、この問題を解決して、より簡単なハードウエア構成で実現でき、少ないクロックで動作し、汎用性が高いFIR型デジタルフィルタを提供することを目的としている。 An object of the present invention is to solve this problem and provide an FIR type digital filter that can be realized with a simpler hardware configuration , operates with a small number of clocks, and has high versatility .

前記目的を達成するために、本発明の請求項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個の新規データの書き込みが終了した段階で前記初期状態に戻るようにアドレスを切り換えるように構成され、
前記第1のデータ書込手段は、前記データ読出手段が前記第1メモリ群の各メモリブロックに記憶されているデータのうち最も古いデータのアドレスを指定して読み出しを指示した直後に前記第1メモリ群の各メモリブロックの当該アドレスへの書き込みを指示するように構成され、
前記第2のデータ書込手段は、前記データ読出手段が前記第2メモリ群の各メモリブロックに記憶されているデータのアドレスを指定して読み出しを指示した直後に前記第2メモリ群の各メモリブロックの当該アドレスへのデータ書き込みを指示するように構成され、
さらに、
前記第1メモリ群と第2メモリ群の間にラッチ回路(24)が設けられ、
前記第1のデータ書込手段は、前記第1メモリ群の各メモリブロックに書き込みを指示するときに、最終段のメモリブロックから読み出されているデータを前記ラッチ回路に書き込み、
前記第2のデータ書込手段は、前記第2メモリ群の各メモリブロックに書き込みを指示するときに、前記ラッチ回路に記憶されているデータを初段のメモリブロックに書き込むように構成されていることを特徴としている。
In order to achieve the above object, the FIR type digital filter according to claim 1 of the present invention comprises:
Data storage unit (21) for storing the latest plural N data (N is an integer equal to 2 × m × p or 2 × m × p−1 for plural m and integer p) input in time series And a product-sum operation unit (40) that multiplies a predetermined number of N data stored in the data storage unit by a predetermined coefficient, and calculates and outputs the sum,
Wherein the data storage unit,
Memory blocks (22a to 22d) consisting of dual-port RAMs with the number of addresses m that can independently read and write data are connected in p stages in series, receive new data, and count from the newest of the N consecutive data. A first memory group (22) for storing m × p data,
Memory blocks (23a to 23d) consisting of dual-port RAMs with the number of addresses m that can independently read and write data are connected in p stages in series, receive data read from the first memory group, and receive the continuous N A second memory group (23) for storing m × p data counted from the oldest of the data,
A state in which data is stored in descending order in each memory block of one of the first memory group and the second memory group and data is stored in ascending order in each memory block of the other memory group is an initial state From the initial state, the first memory group and the second memory group are instructed to read while sequentially changing the addresses, and the consecutive N data are sequentially read in 2p divided into m times, Data reading means (30a) for outputting to the product-sum operation unit;
Each time data reading by the data reading means is performed a predetermined number of times, each memory block of the first memory group is instructed to write to the address of the oldest stored data, and each data at the address is transferred to the subsequent stage. And first data writing means (30b) for writing new data to the memory block in the first stage,
Each time data reading by the data reading means is performed a predetermined number of times, each memory block in the second memory group is instructed to write the read data to the address, and each data at the address is written to the subsequent stage. And a second data writing means (30c) for writing data read from the first memory group at the time of data writing by the first data writing means to the first-stage memory block,
Said data reading means, said first data writing means and the second data writing means, so that at the stage of the writing from an initial state of the m new data has been completed to switch the address to return to the initial state Composed of
The first data writing means immediately after the data reading means instructs to read by designating the address of the oldest data among the data stored in each memory block of the first memory group. It is configured to instruct writing to the corresponding address of each memory block of the memory group,
The second data writing means is configured such that each of the memories in the second memory group immediately after the data reading means designates an address of data stored in each memory block of the second memory group and instructs reading. It is configured to instruct to write data to the address of the block,
further,
A latch circuit (24) is provided between the first memory group and the second memory group;
The first data writing means writes the data read from the memory block at the last stage to the latch circuit when instructing writing to each memory block of the first memory group,
The second data writing means is configured to write the data stored in the latch circuit to the first-stage memory block when instructing writing to each memory block of the second memory group. It is characterized by.

また、本発明の請求項2の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個の新規データの書き込みが終了した段階で前記初期状態に戻るようにアドレスを切り換えるように構成され、
前記第1のデータ書込手段は、前記データ読出手段が前記第1メモリ群の各メモリブロックに記憶されているデータのうち最も古いデータのアドレスを指定して読み出しを指示した直後に前記第1メモリ群の各メモリブロックの当該アドレスへの書き込みを指示するように構成され、
前記第2のデータ書込手段は、前記データ読出手段が前記第2メモリ群の各メモリブロックに記憶されているデータのアドレスを指定して読み出しを指示した直後に前記第2メモリ群の各メモリブロックの当該アドレスへのデータ書き込みを指示するように構成され、
さらに、
前記メモリブロックと等しいアドレス数mを有するデュアルポートRAMからなり、前記第1メモリ群から読み出されたデータを記憶し、該記憶したデータを前記第2メモリ群に出力するバッファ(25)と、
前記第1メモリ群の各メモリブロックのうち最終段と少なくともその前段のメモリブロックから出力されたデータのいずれかを選択して前記バッファに入力するデータスイッチ(26)と、
前記第1のデータ書込手段によるデータ書き込み時に前記第1メモリ群の各メモリブロックに指定したアドレスに対応するデータを前記データスイッチにより選択して前記バッファに入力し、且つ、当該アドレスを前記バッファに指定して書き込みを指示し、前記第2のデータ書込手段によるデータ書き込み時に、該書き込み対象のアドレスの初段のメモリブロックのデータからm個分新しいデータを前記バッファから読み出して前記初段のメモリブロックに入力するバッファ制御手段(30d)とが設けられ、
前記データ読出手段、第1のデータ書込手段、第2のデータ書込手段およびバッファ制御手段により、偶数タップ型のフィルタ処理、奇数タップ型のフィルタ処理およびそれらにデシメーション処理を加えたフィルタ処理にいずれにも対応できるように構成されたことを特徴としている。
Furthermore, FIR type digital filter according to claim 2 of the present invention,
Data storage unit (21) for storing the latest plural N data (N is an integer equal to 2 × m × p or 2 × m × p−1 for plural m and integer p) input in time series And a product-sum operation unit (40) that multiplies a predetermined number of N data stored in the data storage unit by a predetermined coefficient, and calculates and outputs the sum,
The data storage unit
Memory blocks (22a to 22d) consisting of dual-port RAMs with an address number m that can independently read and write data are connected in series in p stages, receive new data, and count from the newest of the N consecutive data. A first memory group (22) for storing m × p data,
Memory blocks (23a to 23d) consisting of dual-port RAMs with the number of addresses m that can independently read and write data are connected in p stages in series, receive data read from the first memory group, and receive the continuous N A second memory group (23) for storing m × p data counted from the oldest of the data,
A state in which data is stored in descending order in each memory block of one of the first memory group and the second memory group and data is stored in ascending order in each memory block of the other memory group is an initial state From the initial state, the first memory group and the second memory group are instructed to read while sequentially changing the addresses, and the consecutive N data are sequentially read in 2p divided into m times, Data reading means (30a) for outputting to the product-sum operation unit;
Each time data reading by the data reading means is performed a predetermined number of times, each memory block of the first memory group is instructed to write to the address of the oldest stored data, and each data at the address is transferred to the subsequent stage. And first data writing means (30b) for writing new data to the memory block in the first stage,
Each time the data reading by the data reading means is performed a predetermined number of times, the memory block of the second memory group is instructed to write the read data to the address, and each data at the address is written to the subsequent stage. And a second data writing means (30c) for writing data read from the first memory group at the time of data writing by the first data writing means to the first-stage memory block,
The data reading means, the first data writing means, and the second data writing means switch addresses so as to return to the initial state when m new data has been written from the initial state. Composed of
The first data writing means immediately after the data reading means instructs to read by designating the address of the oldest data among the data stored in each memory block of the first memory group. It is configured to instruct writing to the corresponding address of each memory block of the memory group,
The second data writing means is configured such that each of the memories in the second memory group immediately after the data reading means designates an address of data stored in each memory block of the second memory group and instructs reading. It is configured to instruct to write data to the address of the block,
further,
A buffer (25) comprising a dual port RAM having the same number of addresses m as the memory block, storing data read from the first memory group, and outputting the stored data to the second memory group;
A data switch (26) for selecting any of the data output from the last stage and at least the previous memory block among the memory blocks of the first memory group and inputting the selected data to the buffer;
When data is written by the first data writing means, data corresponding to an address specified for each memory block of the first memory group is selected by the data switch and input to the buffer, and the address is input to the buffer. When the data is written by the second data writing means, m new data from the data in the first memory block at the write target address is read from the buffer and the first memory is written. Buffer control means (30d) for input to the block, and
By the data reading means, the first data writing means, the second data writing means, and the buffer control means, the even tap type filter processing, the odd tap type filter processing, and the filter processing obtained by adding decimation processing thereto. It is characterized in that it can be adapted to both .

また、本発明の請求項3のFIR型デジタルフィルタは、請求項2記載のFIR型デジタルフィルタにおいて、
前記第1メモリ群の最終段のメモリブロックのデータと前記第2メモリ群の初段のメモリブロックのデータが重複しない状態で、且つ前記第1メモリ群の最終段のメモリブロックのデータのうち、その最も古いデータをさらにm個分古いデータに置き換えたデータが前記バッファに記憶された状態を初期状態とし、m個の新たなデータの書き込みが完了したときに前記初期状態に戻り、時系列に連続した2×m×p個のデータの積和演算結果が一つ得られるように前記バッファの読出アドレスと前記スイッチを制御して、偶数タップ1/mデシメーション型のフィルタ処理を行うこと特徴としている。
Furthermore, FIR type digital filter according to claim 3 of the present invention, in the FIR-type digital filter Motomeko 2,
Of the data in the last memory block of the first memory group, the data in the last memory block in the first memory group and the data in the first memory block in the second memory group do not overlap. The state in which the oldest data is replaced with m older data is stored in the buffer as the initial state, and when the new data has been written, the initial state is restored and the time series continues. The buffer address and the switch are controlled so that one product-sum operation result of 2 × m × p data is obtained, and even tap 1 / m decimation type filter processing is performed . .

また、本発明の請求項4のFIR型デジタルフィルタは、請求項記載のFIR型デジタルフィルタにおいて、
前記第1メモリ群の最終段のメモリブロックの最も古いデータと前記第2メモリ群の初段のメモリブロックの最も新しいデータとが共通で、且つ前記第1メモリ群の最終段のメモリブロックと前記バッファの記憶内容が同一の状態を初期状態として、m個の新たなデータの書き込みが完了したときに前記初期状態に戻り、時系列に連続した2×m×p−1個のデータの積和演算結果がm個得られるようにように前記バッファの読出アドレスと前記スイッチを制御して、奇数タップ型のフィルタ処理を行うことを特徴としている。
The FIR digital filter according to claim 4 of the present invention is the FIR digital filter according to claim 2 ,
The oldest data of the last memory block of the first memory group and the newest data of the first memory block of the second memory group are common, and the last memory block and the buffer of the first memory group The initial state is the state where the stored contents are the same, and when the writing of m new data is completed, the initial state is restored, and the product-sum operation of 2 × m × p−1 data continuous in time series An odd tap type filter process is performed by controlling the read address of the buffer and the switch so that m results are obtained .

また、本発明の請求項5のFIR型デジタルフィルタは、請求項記載のFIR型デジタルフィルタにおいて、
前記第1メモリ群の最終段のメモリブロックの最も古いデータと前記第2メモリ群の初段のメモリブロックの最も新しいデータとが共通で、且つ前記第1メモリ群の最終段のメモリブロックのデータのうち、その最も古いデータをm個分新しいデータに置き換えたデータが前記バッファに記憶された状態を初期状態とし、m個の新たなデータの書き込みが完了したときに前記初期状態に戻り、時系列に連続した2×m×p−1個のデータの積和演算結果が一つ得られるように前記バッファの読出アドレスと前記スイッチを制御して、奇数タップ1/mデシメーション型のフィルタ処理を行うことを特徴としている。
The FIR digital filter according to claim 5 of the present invention is the FIR digital filter according to claim 2 ,
The oldest data in the last memory block of the first memory group and the newest data in the first memory block of the second memory group are common, and the data of the memory block in the last memory block of the first memory group Among them, the state in which the data obtained by replacing the oldest data with m new data is stored in the buffer is set as an initial state, and when the writing of m new data is completed, the initial state is restored, and time series Odd tap 1 / m decimation type filter processing is performed by controlling the read address and the switch of the buffer so that one product-sum operation result of 2 × m × p−1 continuous data is obtained. It is characterized by that.

また、本発明の請求項6のFIR型デジタルフィルタは、請求項1〜5のいずれかに記載のFIR型デジタルフィルタにおいて、
前記積和演算部は、
前記連続するN個のデータに乗じるための係数を記憶している係数メモリ(41)と、
前記データ読出手段によって前記第1メモリ群と第2メモリ群からそれぞれp個ずつ読み出されるデータに対応する係数を前記係数メモリから選択する係数選択手段(42)とを有しており、
前記データ読出手段によって2p個ずつm回に分けて読み出されるデータと、前記係数選択手段によって選択された係数とを用いて積和演算を行うように構成されていることを特徴としている。
さらに、本発明の請求項7のFIR型デジタルフィルタは、請求項6記載のFIR型デジタルフィルタにおいて、
前記係数メモリには、前記第1メモリ群および第2メモリ群に記憶された連続するN個のデータのうち、新しい方から数えた順位と古い方から数えた順位が等しいデータの組にそれぞれ共通の係数が記憶しており、
前記データ読出手段は、前記係数が共通のデータを前記第1メモリ群と第2メモリ群からp個ずつ読み出すように構成され、
前記積和演算部は、係数が共通のデータ同士をp個の加算器(43a〜43d)によりそれぞれ加算し、その加算結果をp個の乗算器(44a〜44d)にそれぞれ出力して前記共通の係数をそれぞれ乗じ、該p個の乗算器の乗算結果のm回分の総和を総和演算器(45)により求めることを特徴としている。
Moreover, the FIR type digital filter of Claim 6 of this invention is the FIR type digital filter in any one of Claims 1-5,
The product-sum operation unit
A coefficient memory (41) for storing coefficients for multiplying the continuous N pieces of data;
Coefficient selection means (42) for selecting, from the coefficient memory, coefficients corresponding to the data read by the data reading means from the first memory group and the second memory group, respectively.
A product-sum operation is performed using the data read by the data reading means in increments of 2p and the coefficients selected by the coefficient selection means .
Furthermore, the FIR type digital filter according to claim 7 of the present invention is the FIR type digital filter according to claim 6,
In the coefficient memory, among the consecutive N pieces of data stored in the first memory group and the second memory group, each of the sets of data in which the rank counted from the newest and the rank counted from the oldest is the same. The coefficient of
The data reading means is configured to read data having a common coefficient from the first memory group and the second memory group by p pieces,
The product-sum operation unit adds data having common coefficients to each other by p adders (43a to 43d), and outputs the addition results to p multipliers (44a to 44d), respectively. And the sum of the multiplication results of the p multipliers is obtained by a sum calculator (45).

このように、本発明のFIR型デジタルフィルタは、デュアルポートRAMからなるメモリブロックにより、第1メモリ群と第2メモリ群とを構成し、その一方にアドレスに対して降順となるようにデータのほぼ半数を記憶し、他方にアドレスに対して昇順となるようにデータのほぼ半数を記憶した状態を初期状態とし、第1メモリ群と第2メモリ群に対するデータの読み出しと、新規データを含むデータの書き込みとを行って連続するN個のデータに対する積和演算結果を得ている。   As described above, the FIR type digital filter of the present invention forms the first memory group and the second memory group by the memory block composed of the dual port RAM, and one of the data groups is in descending order with respect to the address. Data that contains almost half of the data and reads the data from the first memory group and the second memory group, and data that includes new data, with the initial state being almost half of the data stored in ascending order with respect to the address. And the product-sum operation result for N consecutive data is obtained.

このため、簡単なハードウエア構造で、且つメモリ群に対する簡単なアドレス指定と読み書き指示でフィルタリング処理が行える。   Therefore, filtering processing can be performed with a simple hardware structure and simple address designation and read / write instruction for the memory group.

また、第1メモリ群と第2メモリ群の間にラッチ回路を設けたものでは、装置速度の1/mの入力レートに対して、データ更新のための余分なクロックを設けることなく、m段のパイプライン処理でフィルタリングが行える。   Further, in the case where a latch circuit is provided between the first memory group and the second memory group, there are m stages without providing an extra clock for data update with respect to an input rate of 1 / m of the device speed. Filtering can be done with this pipeline processing.

また、デュアルポートメモリからなるバッファとデータスイッチを設け、バッファのアドレス制御と入力データの選択をバッファ制御手段により行えるようにしたものでは、種々のデシメーション処理、奇数タップ、偶数タップへの対応などを容易に行え、汎用性が極めて高くなる。   In addition, a buffer and data switch consisting of a dual port memory are provided so that buffer address control and input data selection can be performed by the buffer control means. Various decimation processing, correspondence to odd taps, even taps, etc. Easy to use and extremely versatile.

以下、図面に基づいて本発明の実施の形態を説明する。
図1は、本発明を適用したFIR型デジタルフィルタ20の構成を示している。
Hereinafter, embodiments of the present invention will be described with reference to the drawings.
FIG. 1 shows a configuration of an FIR type digital filter 20 to which the present invention is applied.

この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とを有している。   This FIR type digital filter 20 has the latest N pieces of time inputted in time series (N is equal to N = 2 × m × p or N = 2 × m × p−1 for a plurality of m and an integer p). The data d (i) to d (i + N-1), and the N data stored in the data storage unit 21 are multiplied by a predetermined coefficient, and the sum is calculated and output. And a product-sum operation unit 40.

なお、図1はN=24、p=4、m=3の構成例を示している。また、データに乗じる係数は、古い方から順にN個のデータにそれぞれ乗じる係数a(0)〜a(N−1)を、新しい方から順にN個のデータにもそれぞれ共通に乗じるものとする(偶数タップ対称型)。   FIG. 1 shows a configuration example where N = 24, p = 4, and m = 3. In addition, the coefficients to be multiplied by the data are commonly multiplied by coefficients a (0) to a (N−1) that are respectively multiplied by N data in order from the oldest, and N data are commonly multiplied in order from the newest. (Even tap symmetric type).

データ記憶部21は、第1メモリ群22、第2メモリ群23およびコントローラ30により構成されている。   The data storage unit 21 includes a first memory group 22, a second memory group 23, and a controller 30.

第1メモリ群22は、アドレス数をm(=3)とするデュアルポートRAMからなるメモリブロック22a〜22dがp(=4)段直列に接続されて構成されている。   The first memory group 22 is configured by p (= 4) stages of serially connected memory blocks 22a to 22d composed of a dual port RAM with the number of addresses being m (= 3).

デュアルポートRAMは、データの読み書きを独立に行えるように、2つのデータポートを有しており、ここではその一方をデータ書込用、他方をデータ読出用とし、これを直列に接続している。また、アドレスについては読み書き共通で且つ全てのメモリブロック22a〜22dに対して共通な値が指定できるように、各メモリブロック22a〜22dのアドレスポートは並列接続され、新規データdを初段のメモリブロック22aで受けるようにしている。   The dual port RAM has two data ports so that data can be read and written independently. Here, one is for data writing and the other is for data reading, which are connected in series. . Further, the address ports of the memory blocks 22a to 22d are connected in parallel so that the address can be designated for reading and writing and common to all the memory blocks 22a to 22d, and the new data d is transferred to the first memory block. 22a is received.

また、第2メモリ群23は、第1メモリ群22と全く同様に、データの入力ポートと出力ポートとを独立に有しアドレス数をm(=3)とするデュアルポートRAMからなるメモリブロック23a〜23dがp(=4)段直列に接続されて構成されている。また、アドレスについては読み書き共通で且つ全てのメモリブロック23a〜23dに対して共通な値が指定できるように、各メモリブロック23a〜23dのアドレスポートは並列接続され、初段のメモリブロック23aで、第1メモリ群22の終段のメモリブロック22dから出力されたデータを受ける。   The second memory group 23 is a memory block 23a composed of a dual-port RAM, which has a data input port and an output port independently and has an address number m (= 3), just like the first memory group 22. .About.23d are connected in series in p (= 4) stages. In addition, the address ports of the memory blocks 23a to 23d are connected in parallel so that addresses can be designated for reading and writing and common to all the memory blocks 23a to 23d. Data output from the last memory block 22d of one memory group 22 is received.

コントローラ30は、第1メモリ群22と第2メモリ群23に対するアドレス指定や読み書き制御を行うためのものであり、データ読出手段30a、第1のデータ書込手段30b、第2のデータ書込手段30cを有している。   The controller 30 is for performing address designation and read / write control with respect to the first memory group 22 and the second memory group 23. The data read means 30a, the first data write means 30b, and the second data write means. 30c.

データ読出手段30aは、第1メモリ群22と第2メモリ群23のいずれか一方(この例では第1メモリ群22)の各メモリブロックにデータが降順に記憶され、他方のメモリ群(この例では第2メモリ群23)の各メモリブロックにデータが昇順に記憶された状態を初期状態とし、この初期状態から第1メモリ群22と第2メモリ群23に対して読み書き共通のアドレスを所定順に変更しながら読み出しを指示し、連続するN個のデータを、2p個ずつm回に分けて順次読出し、積和演算部40へ出力し、また、読み出したデータを後段のメモリブロックへ出力する。   The data reading means 30a stores data in descending order in each memory block of one of the first memory group 22 and the second memory group 23 (first memory group 22 in this example), and the other memory group (this example In this case, the state in which data is stored in ascending order in each memory block of the second memory group 23) is set as an initial state, and from this initial state, addresses common to the first memory group 22 and the second memory group 23 are set in a predetermined order. Reading is instructed while changing, and the consecutive N data are sequentially read out in 2p divided into m times and output to the product-sum operation unit 40, and the read data is output to the subsequent memory block.

前記したように、積和演算に用いる係数が偶数タップ対称型であるので、データ読出手段30aは、係数が共通のデータを第1メモリ群22と第2メモリ群23からp個ずつm回に分けて読み出す。   As described above, since the coefficient used for the product-sum operation is an even-tap symmetric type, the data reading unit 30a transfers the data having the same coefficient from the first memory group 22 and the second memory group 23 p times m times. Read separately.

第1のデータ書込手段30bは、データ読出手段30aによるデータの読み出しが所定回K行われる毎に、第1メモリ群22の各メモリブロック22a〜22dに対してその記憶されている最も古いデータのアドレスへの書き込みを指示し、当該アドレスの各データを後段にそれぞれ書き込んでシフトさせるとともに、初段のメモリブロック22aに新規データd(24)を書き込む。なお、この実施例ではK=mの場合で説明する。   The first data writing unit 30b stores the oldest data stored in each of the memory blocks 22a to 22d of the first memory group 22 every time the data reading unit 30a reads data K a predetermined number of times. Is written, and each data at the address is written and shifted to the subsequent stage, and new data d (24) is written to the memory block 22a at the first stage. In this embodiment, the case where K = m will be described.

また、第2のデータ書込手段30cは、データ読出手段30aによるデータの読み出しが所定回K行われる毎に、第2メモリ群23の各メモリブロック23a〜23dのうち読み出し済みのデータのアドレスへの書き込みを指示し、当該アドレスの各データを後段にそれぞれ書き込んでシフトさせるとともに、初段のメモリブロック23aに対して、第1のデータ書込手段30bによるデータ更新時に第1メモリ群22から読み出されたデータを書き込む。   Further, the second data writing means 30c is set to the address of the read data among the memory blocks 23a to 23d of the second memory group 23 every time the data reading means 30a reads the data K a predetermined number of times. Is written, and each data at the address is written and shifted to the subsequent stage, and is read from the first memory group 22 when the first data writing means 30b updates the data in the first stage memory block 23a. Written data.

上記データ読出手段30aは、初期状態から連続するN個のデータの読み出しとm個の新規データの書き込みが終了した段階で初期状態に戻るようにアドレスを切り換える。   The data reading means 30a switches the address so as to return to the initial state at the stage where the reading of N pieces of continuous data and the writing of m pieces of new data are completed from the initial state.

一方、積和演算部40は、係数メモリ41、係数選択手段42、p個の加算器43a〜43d、p個の乗算器44a〜44dおよび総和演算器45を有している。   On the other hand, the product-sum operation unit 40 includes a coefficient memory 41, coefficient selection means 42, p adders 43 a to 43 d, p multipliers 44 a to 44 d, and a sum calculator 45.

係数メモリ41には連続するN個のデータに乗じるためのN/2(=12)個の係数a(0)〜a(11)が記憶されており、係数選択手段42は、データ読出手段30aによって読み出されたデータに対応する係数を係数メモリ41から選択的に読み出し、乗算器44a〜44dにそれぞれ出力する。   The coefficient memory 41 stores N / 2 (= 12) coefficients a (0) to a (11) for multiplying N consecutive data, and the coefficient selecting means 42 is a data reading means 30a. The coefficient corresponding to the data read out by is selectively read out from the coefficient memory 41 and output to the multipliers 44a to 44d.

加算器43a〜43dは、係数が共通のデータ同士をそれぞれ加算し、その加算結果を乗算器44a〜44dにそれぞれ出力する。これらの乗算結果は総和演算器45に入力される。総和演算器45は、p個ずつm回に分けて入力される乗算結果の総和を求め、これを連続するN個のデータに対する一つの処理結果Dとして出力する。   The adders 43a to 43d add data having common coefficients, and output the addition results to the multipliers 44a to 44d, respectively. The multiplication results are input to the sum calculator 45. The sum calculator 45 obtains the sum of the multiplication results that are input m times in increments of p, and outputs this sum as one processing result D for N consecutive data.

次に、上記構成のFIR型デジタルフィルタ20の動作を説明する。
初期状態として、図1に示しているように、入力済みの24個のデータd(0)〜d(23)がその入力順に3個ずつ8組に分割され、古い方の4組分が第2メモリ群23の4つのメモリブロック23a〜23dにアドレスの昇順に記憶され、新しい方の4組分が第1メモリ群22の4つのメモリブロック22a〜22dにアドレスの降順に記憶されているものとする。
Next, the operation of the FIR type digital filter 20 having the above configuration will be described.
As an initial state, as shown in FIG. 1, 24 input data d (0) to d (23) are divided into 8 sets of 3 pieces in the input order, and the old 4 sets are divided into the first set. 2 stored in four memory blocks 23a to 23d of the memory group 23 in ascending order of addresses, and the new four sets are stored in the four memory blocks 22a to 22d of the first memory group 22 in descending order of addresses. And

この状態から、データ読出手段30aは、図2(a)のように、第1メモリ群22に対してアドレスAa=2、第2メモリ群23に対してアドレスAb=2を指定して、加算の組となる4個ずつのデータd(2)〜d(11)、d(12)〜d(21)を読み出す。   From this state, the data reading means 30a adds the address Aa = 2 to the first memory group 22 and the address Ab = 2 to the second memory group 23 as shown in FIG. Four pieces of data d (2) to d (11) and d (12) to d (21) are read out.

これらの読み出された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が次の演算によって求められる。   Among the eight data read out, data that have the same rank from the oldest and the new one, [d (2), d (21)], [d (5), d ( 18)], [d (8), d (15)], [d (11), d (12)] are added by the product-sum operation unit 40, and a common coefficient a (2), a (5), a (8), and a (11) are multiplied, and the sum S1 of the multiplication results is obtained by the following calculation.

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)]
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が次の演算によって求められる。
Next, the data reading means 30a designates the address Aa = 1 for the first memory group 22 and the address Ab = 1 for the second memory group 23 as shown in FIG. Four sets of data d (1) to d (10) and d (13) to d (22) are read out.
Among the eight data read out, data that have the same rank from the oldest and the new one from the new one, [d (1), d (22)], [d (4), d ( 19)], [d (7), d (16)], [d (10), d (13)] are added by the product-sum operation unit 40, and the coefficient a (1), a (4), a (7), and a (10) are multiplied, and a sum S2 of those multiplication results and the previous sum S1 is obtained by the following calculation.

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
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)を読み出す。   Further, as shown in FIG. 2 (c), the address Aa = 1 is designated for the first memory group 22, and the address Ab = 1 is designated for the second memory group 23. Data d (0) to d (9) and d (14) to d (23) are read.

これらの読み出された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の次の演算によって求められる。   Among the eight data read out, data having the same rank order from the oldest and the newest rank, [d (0), d (23)], [d (3), d ( 20)], [d (6), d (17)], [d (9), d (14)] are added by the product-sum operation unit 40, and the coefficient a (0), a (3), a (6), and a (9) are multiplied and obtained by the next calculation of the sum S3 of the multiplication results and the previous sum S2.

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 = 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)として出力される。   The final sum S3 obtained by this arithmetic processing is output as the first processing result D (0) obtained for N consecutive data d (0) to d (23).

上記した総和S1〜S3の演算処理はパイプライン処理で行われるが、データ読出手段30aによる3組目のデータの読み出しが完了した後に、新規に入力されるデータd(24)による更新処理が実行される。   The above-described arithmetic processing of the sums S1 to S3 is performed by pipeline processing, but after the third set of data has been read by the data reading means 30a, update processing with newly input data d (24) is executed. Is done.

即ち、図3に示すように、データ読出手段30aにより、第1メモリ群22の各メモリブロック22a〜22dに対し、その最も古いデータが記憶されているアドレスAa=2が更新対象として指定され、第2メモリ群23の各メモリブロック23a〜23dに対してもその最も古いデータが記憶されているアドレスAa=0が更新対象として指定されて読み出しの指示がなされ、その直後(クロック周期内)に、第1のデータ書込手段30bおよび第2のデータ書込手段30cによるデータの書き込み指示がなされる。   That is, as shown in FIG. 3, the address Aa = 2 where the oldest data is stored is designated as the update target for each of the memory blocks 22a to 22d of the first memory group 22 by the data reading means 30a. Also for each memory block 23a to 23d of the second memory group 23, the address Aa = 0 in which the oldest data is stored is designated as an update target, and a read instruction is given immediately thereafter (within a clock cycle). The first data writing means 30b and the second data writing means 30c are instructed to write data.

ここで、各メモリブロックはデュアルポートRAMで構成されているので、上記のように読み出しの指示をした直後に書き込みの指示をした場合、読み出し指示があったときの記憶データが出力ポートから出力される状態が維持され、入力ポートから書き込まれたデータは内部で保持されていて、次の読み出し指示があったときに出力ポートに出力される。   Since each memory block is composed of a dual port RAM, if a write instruction is given immediately after a read instruction as described above, the stored data when the read instruction is issued is output from the output port. The data written from the input port is held internally, and is output to the output port when the next read instruction is issued.

この処理により、新規の入力データ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に書き込まれる。
By this processing, new input data d (24) is written to the memory block 22a, data d (21) is written to the memory block 22b, data d (18) is written to the memory block 22c, and data d (15 ) Is written to the memory block 22d.
Data d (12) is written to the memory block 23a of the second memory group 23, data d (9) is written to the memory block 23b, data d (6) is written to the memory block 23c, and data d ( 3) is written into the memory block 23d.

上記書き込まれた各データは、次に各メモリブロックが読み出し指示されたときに読出可能となる。   Each written data can be read when each memory block is instructed to be read next.

このデータ書き込み処理が完了した後、データ読出手段30aによるデータの読出処理が再び行われる。   After the data writing process is completed, the data reading process by the data reading unit 30a is performed again.

即ち、図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を求める。   That is, as shown in FIG. 4 (a), the addresses Aa = 1 and Ab = 0 are switched, the read instruction is given to the first memory group 22 and the second memory group 23, and eight data d (3), d (6), d (9), d (12), d (13), d (16), d (19), d (22) are read out and the next sum S1 is obtained in the same manner as described above.

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)]
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を求める。   Next, as shown in FIG. 4B, the address Aa = 0 and Ab = 2 are switched, the read instruction is given to the first memory group 22 and the second memory group 23, and the eight data d (2) , D (5), d (8), d (11), d (14), d (17), d (20), d (23) are read out, and the next sum S2 is obtained in the same manner as described above.

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
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を求める。   Further, as shown in FIG. 4C, the address Aa = 2 and the address Ab = 1 are switched, the read instruction is given to the first memory group 22 and the second memory group 23, and eight data d (1) , D (4), d (7), d (10), d (15), d (18), d (21), d (24) are read out and the next sum S3 is obtained in the same manner as described above.

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 = 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)として出力される。   The final sum S3 obtained by this arithmetic processing is output as the second processing result D (1) obtained by inputting the data d (24).

次に、次のデータ更新のために、図5に示しているように、この時点で最も古いデータを記憶しているアドレスAa=1、アドレスAb=1が更新対象として指定されて読み出しが指示され、その直後に書き込みが指示される。   Next, for the next data update, as shown in FIG. 5, the address Aa = 1 and the address Ab = 1 storing the oldest data at this time are designated as update targets, and reading is instructed. Immediately thereafter, writing is instructed.

この処理により、新規の入力データd(25)を含む4つのデータd(25)〜d(16)がメモリブロック22a〜22dにそれぞれ書き込まれ、4つのデータd(13)〜d(4)がメモリブロック23a〜23dにそれぞれ書き込まれる。   By this processing, four data d (25) to d (16) including new input data d (25) are written in the memory blocks 22a to 22d, respectively, and the four data d (13) to d (4) are written. The data is written in the memory blocks 23a to 23d, respectively.

この状態から、データ読出手段30aにより、前記同様に8個ずつのデータ読出処理が3回なされて、3つ目の処理結果D(2)が得られる。この3回目のデータ読出が完了した後に、次の新規データd(26)によるデータの更新が、図6のように、アドレスAa=0、Ab=2が指定された状態で行われてデータ更新がなされる。   From this state, the data reading means 30a performs the data reading process for each 8 pieces of data three times as described above to obtain the third processing result D (2). After the third data reading is completed, the data update by the next new data d (26) is performed with the addresses Aa = 0 and Ab = 2 designated as shown in FIG. Is made.

図6の状態は、データ値は異なるが図1の初期状態と等価であり、以下、上記の処理を繰り返すことにより、新規データ1個ごとにその処理結果D(i)が得られる。   The state of FIG. 6 is equivalent to the initial state of FIG. 1 although the data values are different, and the processing result D (i) is obtained for each new data by repeating the above processing.

このように、実施形態のFIR型デジタルフィルタ20は、入力データを記憶するための素子として、従来のようなラッチ回路ではなく、デュアルポートRAMからなり複数m(この実施例ではm=3)のデータの記憶が可能なメモリブロックで第1メモリ群22と第2メモリ群23を構成し、そのアドレスを制御することで、データ読出処理と新規入力データに対するデータ更新処理を行っている。   As described above, the FIR type digital filter 20 according to the embodiment is not a conventional latch circuit as an element for storing input data, but includes a dual-port RAM and a plurality of m (m = 3 in this embodiment). The first memory group 22 and the second memory group 23 are constituted by memory blocks capable of storing data, and the data read process and the data update process for new input data are performed by controlling the addresses.

このため、マルチプレクサが不要となり、また、乗算器の数もm個に1つの割合(前記偶数タップ対称型では2m個に1個の割合)で済むため、ハードウエア構成を格段に簡単化できる。   This eliminates the need for a multiplexer, and the number of multipliers is only one in m (one in every 2m in the even-tap symmetric type), so that the hardware configuration can be greatly simplified.

また、第1メモリ群22および第2メモリ群23の各メモリブロックに対するアドレス指定もそれぞれ共通に行えるので、複雑なアドレス切換は不要で制御自体も簡単に行える。   In addition, since the address designation for each memory block of the first memory group 22 and the second memory group 23 can be performed in common, complicated address switching is unnecessary and the control itself can be easily performed.

なお、偶数タップで非対称型の場合には、図7に示すFIR型デジタルフィルタ50のように、加算器を省略し乗算器44e〜44hを追加し、各データにそれぞれ係数を乗算し、その乗算結果の総和を求めればよい。この場合にはデータ読出手段30aによるデータの読み出しについて共通係数のデータの組合せを考慮する必要がないため、第1メモリ群22と第2メモリ群23に対するアドレス指定は重複しない組合せで任意に行えばよい。この積和演算部40の構成は後述する各実施例で係数非対称の場合でも適用できる。   In the case of an asymmetric type with even taps, as in the FIR type digital filter 50 shown in FIG. 7, the adder is omitted and multipliers 44e to 44h are added, and each data is multiplied by a coefficient, and the multiplication is performed. Find the sum of the results. In this case, since it is not necessary to consider the combination of the data of the common coefficients for the data reading by the data reading means 30a, the address designation for the first memory group 22 and the second memory group 23 can be arbitrarily performed in a combination that does not overlap. Good. The configuration of the product-sum operation unit 40 can be applied even in the case of coefficient asymmetry in each embodiment described later.

上記実施形態では、計算対象のデータの読み出しとは別のタイミング(クロック)でデータ書き込みを一括に行っているが、図8に示すFIR型デジタルフィルタ60ように、第1メモリ群22と第2メモリ群23との間にデータ1個分を記憶するラッチ回路24を挿入することで、データ書き込みをデータ読み出しと同じクロックタイミングで行うことができる。   In the above-described embodiment, data writing is performed all at once at a timing (clock) different from the reading of the data to be calculated. However, like the FIR digital filter 60 shown in FIG. By inserting a latch circuit 24 for storing one piece of data between the memory group 23, data writing can be performed at the same clock timing as data reading.

即ち、図8に示したデータの格納状態を初期状態とし、図9の(a)のように、新規データd(24)が入力されているときに、データ読出手段30aにより、第1メモリ群22にアドレスAa=2、Ab=2を指定して読み出しを指示し、その直後に第1のデータ書込手段30bにより書き込みを指示する。   That is, when the data storage state shown in FIG. 8 is set to the initial state, and the new data d (24) is input as shown in FIG. 9A, the data reading means 30a causes the first memory group. 22 designates addresses Aa = 2 and Ab = 2 to instruct reading, and immediately after that, the first data writing means 30b instructs writing.

この処理により、第1メモリ群22および第2メモリ群23からは、書き込み指示の直前に記憶されていた加算の組となる4個ずつのデータd(12)〜d(21)、d(2)〜d(11)が読み出され、前記同様に、積和演算部40により、共通係数のデータ同士が加算され、係数が乗算されてその総和が算出される。   As a result of this processing, the four data d (12) to d (21), d (2), which are the sets of additions stored immediately before the write instruction, are sent from the first memory group 22 and the second memory group 23. ) To d (11) are read out, and similarly to the above, the product-sum operation unit 40 adds the data of the common coefficients and multiplies the coefficients to calculate the sum.

また、第1メモリ群22の各メモリブロック22a〜22dのアドレスAa=2には、新規データを含む4個のデータd(24)〜d(15)がそれぞれ書き込まれ、ラッチ回路24には、メモリブロック22dから出力されているデータd(12)が記憶される。なお、ラッチ回路24は第1のデータ書込手段30bの書き込みを指示する信号によって入力データをラッチする。   In addition, four data d (24) to d (15) including new data are written to the address Aa = 2 of each of the memory blocks 22a to 22d of the first memory group 22, respectively. Data d (12) output from the memory block 22d is stored. Note that the latch circuit 24 latches input data by a signal instructing the writing of the first data writing means 30b.

次に、図9の(b)のように、データ読出手段30aによりアドレスAa=1、Ab=1が指定され、データの読み出しが指示され、加算の組となる4個ずつのデータd(13)〜d(22)、d(1)〜d(10)が読み出され、前記同様に、積和演算部40により、共通係数のデータ同士が加算され、係数が乗算されてその総和が算出される。   Next, as shown in FIG. 9B, the address Aa = 1 and Ab = 1 are designated by the data reading means 30a, the data reading is instructed, and four pieces of data d (13 ) To d (22) and d (1) to d (10) are read out, and similarly to the above, the product-sum operation unit 40 adds the data of the common coefficients, and multiplies the coefficients to calculate the sum. Is done.

続いて、図9の(c)のように、データ読出手段30aによりアドレスAa=0、Ab=0が指定され、データの読み出しが指示され、その直後に第2のデータ書込手段30cにより書き込みが指示される。   Subsequently, as shown in FIG. 9C, the address Aa = 0 and Ab = 0 are designated by the data reading unit 30a, the data reading is instructed, and immediately after that, the second data writing unit 30c writes the data. Is instructed.

この処理により、加算の組となる4個ずつのデータd(14)〜d(23)、d(0)〜d(9)が読み出され、前記同様に、積和演算部40により、共通係数のデータ同士が加算され、係数が乗算されてその総和が算出される。   By this processing, four pieces of data d (14) to d (23) and d (0) to d (9) that are a set of additions are read out, and are similarly shared by the product-sum operation unit 40 as described above. The coefficient data are added together, and the coefficients are multiplied to calculate the sum.

また、第2メモリ群23のメモリブロック23b〜23dには、それぞれ前段のメモリブロック23a〜23cのデータd(9)〜d(3)が書き込まれ、初段のメモリブロック23aには、ラッチ回路24に記憶されていたデータd(12)が書き込まれる。   Data d (9) to d (3) of the previous memory blocks 23a to 23c are written in the memory blocks 23b to 23d of the second memory group 23, respectively, and the latch circuit 24 is stored in the first memory block 23a. The data d (12) stored in is written.

上記3回のデータ読み出しにより、N個の連続するデータd(0)〜d(23)が読み出され、且つ、新規データd(24)に対するデータ更新がなされたことになる。   N consecutive data d (0) to d (23) are read by the above three times of data reading, and the data update for the new data d (24) is performed.

次に、図10の(a)のように、新規データd(25)が入力されているときに、データ読出手段30aによりアドレスAa=1、Ab=0が指定されて読み出しが指示され、その直後に第1のデータ書込手段30bにより書き込みが指示される。   Next, as shown in FIG. 10 (a), when new data d (25) is input, the data reading means 30a designates addresses Aa = 1 and Ab = 0 and instructs reading. Immediately after that, writing is instructed by the first data writing means 30b.

この処理により、第1メモリ群22および第2メモリ群23からは、書き込み指示の直前に記憶されていた加算の組となる4個ずつのデータd(13)〜d(22)、d(3)〜d(12)が読み出され、前記同様に、積和演算部40により、共通係数のデータ同士が加算され、係数が乗算されてその総和が算出される。   As a result of this processing, the four data d (13) to d (22), d (3), which are the sets of additions stored immediately before the write instruction, are sent from the first memory group 22 and the second memory group 23. ) To d (12) are read out, and, similarly to the above, the product-sum operation unit 40 adds the data of the common coefficients and multiplies the coefficients to calculate the sum.

また、第1メモリ群22の各メモリブロック22a〜22dのアドレスAa=2には新規データを含む4個のデータd(25)〜d(16)がそれぞれ書き込まれ、ラッチ回路24にはデータd(13)が記憶される。   Also, four data d (25) to d (16) including new data are respectively written in the address Aa = 2 of each of the memory blocks 22a to 22d of the first memory group 22, and the data d is stored in the latch circuit 24. (13) is stored.

次に、図10の(b)のように、データ読出手段30aによりアドレスAa=0、Ab=2が指定され、データの読み出しが指示され、加算の組となる4個ずつのデータd(14)〜d(23)、d(2)〜d(11)が読み出され、前記同様に、積和演算部40により、共通係数のデータ同士が加算され、係数が乗算されてその総和が算出される。   Next, as shown in FIG. 10B, the address Aa = 0 and Ab = 2 are designated by the data reading means 30a, the data reading is instructed, and four pieces of data d (14) each forming a set of additions are given. ) To d (23) and d (2) to d (11) are read out, and similarly to the above, the product-sum operation unit 40 adds the data of the common coefficients and multiplies the coefficients to calculate the sum. Is done.

続いて、図10の(c)のように、データ読出手段30aによりアドレスAa=2、Ab=1が指定され、データの読み出しが指示され、その直後に第2のデータ書込手段30cにより書き込みが指示される。   Subsequently, as shown in FIG. 10C, the address Aa = 2 and Ab = 1 are designated by the data reading means 30a, the data reading is instructed, and immediately after that, the second data writing means 30c writes the data. Is instructed.

この処理により、加算の組となる4個ずつのデータd(15)〜d(24)、d(1)〜d(10)が読み出され、前記同様に、積和演算部40により、共通係数のデータ同士が加算され、係数が乗算されてその総和が算出される。   By this processing, four pieces of data d (15) to d (24) and d (1) to d (10) that are a set of additions are read out. The coefficient data are added together, and the coefficients are multiplied to calculate the sum.

また、第2メモリ群23のメモリブロック23b〜23dには、それぞれ前段のメモリブロック23a〜23cのデータd(10)〜d(4)が書き込まれ、初段のメモリブロック23aには、ラッチ回路24に記憶されていたデータd(13)が書き込まれる。   Further, data d (10) to d (4) of the preceding memory blocks 23a to 23c are written in the memory blocks 23b to 23d of the second memory group 23, respectively, and the latch circuit 24 is stored in the first memory block 23a. The data d (13) stored in is written.

上記3回のデータ読み出しにより、N個の連続するデータd(1)〜d(24)が読み出され、且つ、新規データd(25)に対するデータ更新がなされたことになる。   N consecutive data d (1) to d (24) are read by the above three times of data reading, and the data update for the new data d (25) is performed.

次に、図11の(a)のように、新規データd(26)が入力されているときに、データ読出手段30aによりアドレスAa=0、Ab=1が指定されて読み出しが指示され、その直後に第1のデータ書込手段30bにより書き込みが指示される。   Next, as shown in FIG. 11 (a), when new data d (26) is input, the data reading means 30a designates addresses Aa = 0 and Ab = 1 to instruct reading. Immediately after that, writing is instructed by the first data writing means 30b.

この処理により、第1メモリ群22および第2メモリ群23からは、書き込み指示の直前に記憶されていた加算の組となる4個ずつのデータd(14)〜d(23)、d(4)〜d(13)が読み出され、前記同様に、積和演算部40により、共通係数のデータ同士が加算され、係数が乗算されてその総和が算出される。   As a result of this processing, the four data d (14) to d (23), d (4), which are the sets of additions stored immediately before the write instruction, are sent from the first memory group 22 and the second memory group 23. ) To d (13) are read out, and similarly to the above, the product-sum operation unit 40 adds the data of the common coefficients and multiplies the coefficients to calculate the sum.

また、第1メモリ群22の各メモリブロック22a〜22dのアドレスAa=0には新規データを含む4個のデータd(26)〜d(17)がそれぞれ書き込まれ、ラッチ回路24にはデータd(14)が記憶される。   In addition, four data d (26) to d (17) including new data are respectively written in the address Aa = 0 of each of the memory blocks 22a to 22d of the first memory group 22, and the data d is stored in the latch circuit 24. (14) is stored.

次に、図11の(b)のように、データ読出手段30aによりアドレスAa=2、Ab=0が指定され、データの読み出しが指示され、加算の組となる4個ずつのデータd(15)〜d(24)、d(3)〜d(12)が読み出され、前記同様に、積和演算部40により、共通係数のデータ同士が加算され、係数が乗算されてその総和が算出される。   Next, as shown in FIG. 11B, the address Aa = 2 and Ab = 0 are designated by the data reading means 30a, the data reading is instructed, and four pieces of data d (15 ) To d (24) and d (3) to d (12) are read out, and similarly to the above, the product-sum operation unit 40 adds the data of the common coefficients, and multiplies the coefficients to calculate the sum. Is done.

続いて、図11の(c)のように、データ読出手段30aによりアドレスAa=1、Ab=2が指定され、データの読み出しが指示され、その直後に第2のデータ書込手段30cにより書き込みが指示される。   Subsequently, as shown in FIG. 11 (c), the address Aa = 1 and Ab = 2 are designated by the data reading unit 30a, the data reading is instructed, and immediately after that, the second data writing unit 30c performs the writing. Is instructed.

この処理により、加算の組となる4個ずつのデータd(16)〜d(25)、d(2)〜d(11)が読み出され、前記同様に、積和演算部40により、共通係数のデータ同士が加算され、係数が乗算されてその総和が算出される。   Through this processing, four pieces of data d (16) to d (25) and d (2) to d (11), each of which is a set of additions, are read out and shared by the product-sum operation unit 40 in the same manner as described above. The coefficient data are added together, and the coefficients are multiplied to calculate the sum.

また、第2メモリ群23のメモリブロック23b〜23dには、それぞれ前段のメモリブロック23a〜23cのデータd(11)〜d(5)が書き込まれ、初段のメモリブロック23aには、ラッチ回路24に記憶されていたデータd(14)が書き込まれる。   Data d (11) to d (5) of the previous memory blocks 23a to 23c are written in the memory blocks 23b to 23d of the second memory group 23, respectively, and the latch circuit 24 is stored in the first memory block 23a. The data d (14) stored in is written.

上記3回のデータ読み出しにより、N個の連続するデータd(2)〜d(25)が読み出され、且つ、新規データd(26)に対するデータ更新がなされたことになる。   N consecutive data d (2) to d (25) are read by the above three times of data reading, and the data update for the new data d (26) is performed.

このように、ラッチ回路24を設けたことにより、データの読み出しと書き込みを同一クロック内で行うことができ、データ更新のための余分なクロックが不要となり、装置速度の1/3の入力レートのデータに対するフィルタリング処理が行える。なお、係数が偶数タップ非対称型の場合には、前記したように、加算の組合せを考慮する必要がないので、積和演算部40を前記図7で示したように変更し、第2メモリ群23に対するデータ読み出しを、任意のアドレス順に行うことができる。   Thus, by providing the latch circuit 24, data can be read and written within the same clock, an extra clock for data update is not required, and the input rate is 1/3 of the device speed. Data can be filtered. When the coefficient is an even-tap asymmetric type, as described above, there is no need to consider the combination of addition, so the product-sum operation unit 40 is changed as shown in FIG. Data can be read from 23 in the order of arbitrary addresses.

上記実施例は、新規データが1つ入力される毎に、その新規データを含む連続したN個のデータに対する積和演算結果を1つ出力する、即ち、入力レートと出力レートが等しい場合の動作であったが、入力レートに対して出力レートを下げる、所謂デシメーション処理を行う場合や、奇数タップ型の処理を行う場合には、図12に示すFIR型デジタルフィルタ70のように、ラッチ回路24の代わりに、第1メモリ群22および第2メモリ群23を構成している各メモリブロックと同一構成のデュアルポートRAMからなるバッファ25を設け、このバッファ25に対して、第1メモリ群22の最終段のメモリブロック22dとその前段(3段目)のメモリブロック22cの出力のいずれかを選択的に入力させるデータスイッチ26を設け、バッファ25とデータスイッチ26とをコントローラ30のバッファ制御手段30dによって制御する。   In the above embodiment, every time one new data is input, one product-sum operation result for consecutive N data including the new data is output, that is, the operation when the input rate and the output rate are equal. However, when performing so-called decimation processing that lowers the output rate with respect to the input rate, or when performing odd tap processing, the latch circuit 24 is similar to the FIR digital filter 70 shown in FIG. Instead of this, a buffer 25 composed of a dual-port RAM having the same configuration as each memory block constituting the first memory group 22 and the second memory group 23 is provided. A data switch 26 is provided for selectively inputting either the output of the last-stage memory block 22d or the preceding-stage (third-stage) memory block 22c. It controls the buffer 25 and the data switch 26 by the buffer control means 30d of the controller 30.

バッファ制御手段30dは、第1のデータ書込手段30bによるデータ書き込み時に第1メモリ群22の各メモリブロックに指定したアドレスに対応するデータをデータスイッチ26で選択しバッファ25に入力し、且つ、そのアドレスをバッファ25に指定して書き込みを指示する。また、第2のデータ書込手段30cによるデータ書き込み時に、その書き込み対象のアドレスの初段のメモリブロックのデータからm個(この場合3個)分新しいデータをバッファ25から読み出して初段のメモリブロック23aに入力する。   The buffer control means 30d selects the data corresponding to the address designated for each memory block of the first memory group 22 at the time of data writing by the first data writing means 30b by the data switch 26 and inputs it to the buffer 25, and The address is designated in the buffer 25 to instruct writing. In addition, when data is written by the second data writing means 30c, m pieces (three in this case) of new data from the data in the first stage memory block at the address to be written are read from the buffer 25 and the first stage memory block 23a is read out. To enter.

次に、この構成のFIR型デジタルフィルタ70により、1/3デシメーション処理を行う場合の動作について説明する。   Next, the operation when the 1/3 decimation process is performed by the FIR digital filter 70 having this configuration will be described.

この場合、図12に示しているデータ格納状態を初期状態とし、この初期状態から図13の(a)のように、第1メモリ群22および第2メモリ群23に対してアドレス2を指定し、バッファ25に対しては読み出しアドレス0、書き込みアドレス2を指定して、第1メモリ群22、第2メモリ群23およびバッファ25に対して読み出しを指示する。   In this case, the data storage state shown in FIG. 12 is set as an initial state, and address 2 is designated from the initial state to the first memory group 22 and the second memory group 23 as shown in FIG. The read address 0 and the write address 2 are designated for the buffer 25, and the first memory group 22, the second memory group 23 and the buffer 25 are instructed to read.

これにより加算の組となる4個ずつのデータd(12)〜d(21)、d(2)〜d(11)が読み出されて演算処理される。   As a result, four pieces of data d (12) to d (21) and d (2) to d (11), each of which is a set of additions, are read out and processed.

また、この読み出し指示の直後に第1メモリ群22、第2メモリ群23およびバッファ25に対して書き込みの指示を行う。   Immediately after the read instruction, a write instruction is issued to the first memory group 22, the second memory group 23, and the buffer 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)が書き込まれる。   As a result, four data d (15) to d (24) including new data are respectively written at address 2 of each memory block of the first memory group 22, and each memory block of the second memory group 23 is written. Four data d (5) to d (14) including data stored in the buffer 25 are respectively written in the address 2, and the last memory of the first memory group 22 is written in the address 2 of the buffer 25. Data d (12) read from the block 22d is written.

次に、図13の(b)のように、第1メモリ群22および第2メモリ群23に対してアドレス1を指定し、バッファ25に対しては読み出しアドレス1、書き込みアドレス1を指定して、第1メモリ群22、第2メモリ群23およびバッファ25に対して読み出しを指示する。   Next, as shown in FIG. 13B, address 1 is designated for the first memory group 22 and the second memory group 23, and read address 1 and write address 1 are designated for the buffer 25. The first memory group 22, the second memory group 23, and the buffer 25 are instructed to read.

これにより加算の組となる4個ずつのデータd(13)〜d(22)、d(1)〜d(10)が読み出されて演算処理される。   As a result, four pieces of data d (13) to d (22) and d (1) to d (10), which are a set of additions, are read out and processed.

また、この読み出し指示の直後に第1メモリ群22、第2メモリ群23およびバッファ25に対して書き込みの指示を行う。   Immediately after the read instruction, a write instruction is issued to the first memory group 22, the second memory group 23, and the buffer 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)が書き込まれる。   As a result, four data d (16) to d (25) including new data are respectively written in the address 1 of each memory block of the first memory group 22, and each memory block of the second memory group 23 is written. Four data d (4) to d (13) including the data stored in the buffer 25 are written to the address 1, respectively, and the third stage of the first memory group 22 is written to the address 1 of the buffer 25. Data d (16) read from the memory block 22c is written.

最後に、図13の(c)のように、第1メモリ群22および第2メモリ群23に対してアドレス0を指定し、バッファ25に対しては読み出しアドレス2、書き込みアドレス0を指定して、第1メモリ群22、第2メモリ群23およびバッファ25に対して読み出しを指示する。   Finally, as shown in FIG. 13C, the address 0 is designated for the first memory group 22 and the second memory group 23, and the read address 2 and the write address 0 are designated for the buffer 25. The first memory group 22, the second memory group 23, and the buffer 25 are instructed to read.

これにより加算の組となる4個ずつのデータd(14)〜d(23)、d(0)〜d(9)が読み出されて演算処理される。   As a result, four pieces of data d (14) to d (23) and d (0) to d (9), which are a set of additions, are read out and processed.

また、この読み出し指示の直後に第1メモリ群22、第2メモリ群23およびバッファ25に対して書き込みの指示を行う。   Immediately after the read instruction, a write instruction is issued to the first memory group 22, the second memory group 23, and the buffer 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)が書き込まれる。   As a result, four data d (17) to d (26) including new data are respectively written at address 0 of each memory block in the first memory group 22, and each memory block in the second memory group 23 is written. The four data d (3) to d (12) including the data stored in the buffer 25 are respectively written in the address 0, and the third stage of the first memory group 22 is stored in the address 0 of the buffer 25. Data d (17) read from the memory block 22c is written.

上記3回の読み出し処理により、N個(偶数)の連続したデータd(0)〜d(23)に対する積和演算結果が得られる。また、この図13の(c)の状態は前記した図12のデータ配列と等しいが、記憶されているN個のデータはd(3)〜d(26)であるから、この次の処理では、このデータd(3)〜d(26)についての積和演算結果が得られることになる。   Through the above three reading processes, a product-sum operation result for N (even) continuous data d (0) to d (23) is obtained. Further, although the state of FIG. 13C is equal to the data array of FIG. 12, the stored N data are d (3) to d (26). As a result, a product-sum operation result for the data d (3) to d (26) is obtained.

つまり、連続するN個のデータd(1)〜d(24)、d(2)〜d(25)についての積和演算結果は省略されて、新規データの入力3回に1回の割合で一つの積和演算結果が得られる1/3デシメーション処理となる。   That is, the product-sum operation results for the consecutive N pieces of data d (1) to d (24) and d (2) to d (25) are omitted, and the rate is once every three times when new data is input. This is a 1/3 decimation process in which one product-sum operation result is obtained.

次に、上記構成のFIR型デジタルフィルタ70において、奇数タップ対称型の処理を行う場合の動作について説明する。   Next, an operation in the case of performing odd-tap symmetric processing in the FIR digital filter 70 having the above configuration will be described.

図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)が記憶されているものとし、これを初期状態とする。   As shown in FIG. 14A, the first memory group 22 stores the newer 12 pieces of data d (11) to d (22) including the odd-numbered intermediate data d (11). The two memory groups 23 store the twelve old data d (0) to d (11) including the intermediate data d (11), and the buffer 25 stores the last memory block of the first memory group 22. It is assumed that the same data d (11) to d (13) as 22d are stored, and this is the initial state.

この初期状態から、コントローラ30は、図14の(b)のように、第1メモリ群22および第2メモリ群23に対してアドレス2を指定してデータの読み出しを指示するとともにバッファ25に対してもアドレス22を指定し、その直後に第1メモリ群22とバッファッファ25に対してデータの書き込みを指示する。   From this initial state, the controller 30 designates the address 2 to the first memory group 22 and the second memory group 23 and instructs the buffer 25 to read data, as shown in FIG. Even after that, the address 22 is designated, and immediately after that, the first memory group 22 and the buffer 25 are instructed to write data.

これにより、前記同様に、加算の組となる4個ずつのデータd(11)〜d(20)、d(2)〜d(11)が読み出されて積和演算部40に出力されて演算処理される。   As a result, similarly to the above, four pieces of data d (11) to d (20) and d (2) to d (11) that are a set of additions are read and output to the product-sum operation unit 40. Arithmetic processing is performed.

なお、第1メモリ群22および第2メモリ群23から読み出される中間のデータd(11)に対しては、積和演算部40におい、その加算結果に対し本来の係数の1/2が乗算される。   Note that the intermediate data d (11) read from the first memory group 22 and the second memory group 23 is multiplied in the product-sum operation unit 40 by 1/2 of the original coefficient. The

また、第1メモリ群22の各メモリブロックのアドレス2には、新規データを含む4個のデータd(14)〜d(23)がそれぞれ書き込まれ、バッファ25のアドレス2には、データスイッチ26を介して第1メモリ群22のメモリブロック22cのデータd(14)が書き込まれる。   Also, four data d (14) to d (23) including new data are respectively written in the address 2 of each memory block of the first memory group 22, and the data switch 26 is written in the address 2 of the buffer 25. The data d (14) of the memory block 22c of the first memory group 22 is written via

次に、図15(a)のように、第1メモリ群22および第2メモリ群23に対してアドレス1が指定されて、加算の組となる4個ずつのデータd(12)〜d(21)、d(1)〜d(10)が読み出されて積和演算部40に出力されて演算処理される。   Next, as shown in FIG. 15 (a), address 1 is designated for the first memory group 22 and the second memory group 23, and four pieces of data d (12) to d (12) that form a set of additions. 21), d (1) to d (10) are read out and output to the product-sum operation unit 40 for arithmetic processing.

さらに、図15(b)のように、第1メモリ群22および第2メモリ群23に対してアドレス0が指定されて、加算の組となる4個ずつのデータd(13)〜d(22)、d(0)〜d(9)が読み出されて積和演算部40に出力されて演算処理され、連続するN(奇数)個の全てのデータd(0)〜d(22)についての積和演算結果が得られる。   Further, as shown in FIG. 15B, the address 0 is designated for the first memory group 22 and the second memory group 23, and four pieces of data d (13) to d (22) that form a set of additions. ), D (0) to d (9) are read out, output to the product-sum operation unit 40 and processed, and all N (odd) pieces of continuous data d (0) to d (22) are processed. The product-sum operation result is obtained.

また、この3回のデータの読み出し時にはバッフア25に対してアドレス1が指定されて読み出し指示がなされ、その直後に第2メモリ群23に対する書き込み指示がなされる。これにより、第2メモリ群23の各メモリブロックのアドレス0には、データd(3)〜d(12)がそれぞれ書き込まれる。   Further, at the time of reading data three times, an address 1 is designated for the buffer 25 and a read instruction is given, and a write instruction for the second memory group 23 is given immediately thereafter. As a result, data d (3) to d (12) are written to address 0 of each memory block of the second memory group 23, respectively.

次に、図16の(a)のように、第1メモリ群22に対してアドレス1、第2メモリ群23に対してアドレス0が指定されてデータ読み出しが指示され、バッファ25に対してアドレス1が指定される。   Next, as shown in FIG. 16A, address 1 is designated for the first memory group 22, address 0 is designated for the second memory group 23, and data read is instructed. 1 is specified.

これにより、加算の組となる4個ずつのデータd(12)〜d(21)、d(3)〜d(12)が読み出されて積和演算部40に出力されて演算処理される。   As a result, the four pieces of data d (12) to d (21) and d (3) to d (12), which are the sets of additions, are read out and output to the product-sum operation unit 40 for arithmetic processing. .

このとき、第1メモリ群22および第2メモリ群23から読み出される中間のデータd(12)に対しては、前記同様に、積和演算部40においてその加算結果に対して本来の係数の1/2が乗算される。   At this time, for the intermediate data d (12) read from the first memory group 22 and the second memory group 23, the product-sum operation unit 40 uses the original coefficient of 1 for the addition result as described above. / 2 is multiplied.

また、第1メモリ群22の各メモリブロックのアドレス1には新規データを含む4個のデータd(15)〜d(24)がそれぞれ書き込まれ、バッファ25のアドレス1には、データスイッチ26を介して第1メモリ群22の3段目のメモリブロック22cのデータd(15)が書き込まれる。   In addition, four data d (15) to d (24) including new data are written in the address 1 of each memory block of the first memory group 22, and the data switch 26 is set in the address 1 of the buffer 25. Thus, the data d (15) of the third-stage memory block 22c of the first memory group 22 is written.

続いて、図16の(b)のように、第1メモリ群22に対してアドレス0、第2メモリ群23に対してアドレス2が指定されて、加算の組となる4個ずつのデータd(13)〜d(22)、d(2)〜d(11)が読み出されて積和演算部40に出力されて演算処理される。   Subsequently, as shown in FIG. 16 (b), address 0 is designated for the first memory group 22, and address 2 is designated for the second memory group 23, and four pieces of data d each forming a set of additions. (13) to d (22) and d (2) to d (11) are read and output to the product-sum operation unit 40 for arithmetic processing.

さらに、図17の(a)のように、第1メモリ群22に対してアドレス2、第2メモリ群23に対してアドレス1が指定されて、加算の組となるデータd(14)〜d(23)、d(1)〜d(10)が読み出されて積和演算部40に出力されて演算処理され、N個(奇数)の連続する全てのデータd(1)〜d(23)についての積和演算結果が得られる。   Further, as shown in FIG. 17A, the address d is designated for the first memory group 22 and the address 1 is designated for the second memory group 23, and data d (14) to d which are added groups. (23), d (1) to d (10) are read out, output to the product-sum operation unit 40 and processed, and all N (odd) consecutive data d (1) to d (23) are obtained. ) Is obtained.

また、このときバッファ25に対してアドレス0が指定されて読み出され、その直後に第2メモリ群23に対する書き込み指示がなされる。   At this time, the address 0 is designated and read from the buffer 25, and immediately after that, a write instruction to the second memory group 23 is given.

これにより、第2メモリ群23の各メモリブロックのアドレス1には、4個のデータd(4)〜d(13)が書き込まれる。   As a result, four pieces of data d (4) to d (13) are written to address 1 of each memory block in the second memory group 23.

次に、図17の(b)のように、第1メモリ群22に対してアドレス0が指定され、第2メモリ群23に対してアドレス1が指定されデータ読み出しが指示されるとともに、バッファ25に対してアドレス0が指定され、その直後に第1メモリ群22とバッファ25に対する書き込みが指示される。   Next, as shown in FIG. 17B, the address 0 is specified for the first memory group 22, the address 1 is specified for the second memory group 23, and data reading is instructed. Address 0 is designated for the first memory group, and immediately after that, writing to the first memory group 22 and the buffer 25 is instructed.

これにより、第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)が書き込まれる。   As a result, four pieces of data d (13) to d (22) and d (4) to d (13) as a set of addition are read from the first memory group 22 and the second memory group 23. Are processed. Also, four data d (16) to d (25) including new input data d (25) are written at address 0 of each memory block of the first memory group 22, and address 0 of the buffer 25 is written at address 0 of the buffer 25. The data d (16) of the memory block 22c of the first memory group 22 is written through the data switch 26.

続いて、図18の(a)のように、第1メモリ群22に対してアドレス2、第2メモリ群23に対してアドレス0が指定されて、加算の組となる4個ずつのデータd(14)〜d(23)、d(3)〜d(12)が読み出されて積和演算部40に出力されて演算処理される。   Subsequently, as shown in FIG. 18A, the address 2 is designated for the first memory group 22 and the address 0 is designated for the second memory group 23, so that each of four pieces of data d forming an addition set is obtained. (14) to d (23) and d (3) to d (12) are read and output to the product-sum operation unit 40 for arithmetic processing.

さらに、図18の(b)のように、第1メモリ群22に対してアドレス1、第2メモリ群23に対してアドレス2が指定されて、加算の組となる4個ずつのデータd(15)〜d(24)、d(2)〜d(11)が読み出されて積和演算部40に出力されて演算処理され、N個(奇数)の連続する全てのデータd(2)〜d(24)についての積和演算結果が得られる。   Further, as shown in FIG. 18B, the address 1 is designated for the first memory group 22 and the address 2 is designated for the second memory group 23, and four pieces of data d (4) each forming a set of additions. 15) to d (24) and d (2) to d (11) are read out and output to the product-sum operation unit 40 for arithmetic processing, and all N (odd) consecutive data d (2) The product-sum operation result for ˜d (24) is obtained.

また、この読み出し時にはバッファ25に対してアドレス0が指定され読み出し指示がなされ、その直後に第2メモリ群23に対してデータの書き込みが指示される。
これにより、第2メモリ群23の各メモリブロックのアドレス2には、4個のデータd(5)〜d(14)がそれぞれ書き込まれる。
At the time of reading, address 0 is designated for the buffer 25 and a reading instruction is given. Immediately thereafter, writing of data is instructed to the second memory group 23.
As a result, four pieces of data d (5) to d (14) are written in the address 2 of each memory block of the second memory group 23, respectively.

このときのデータ配列は、図14の(a)の初期状態と同じであり、以下、上記の動作を繰り返すことで、装置速度の1/3のレートで入力されるデータに対して、奇数タップ対称型のフィルタリング処理を遅延なく行うことができる。   The data arrangement at this time is the same as the initial state of FIG. 14A, and by repeating the above operation, for the data input at a rate of 1/3 of the device speed, odd taps are performed. Symmetric filtering can be performed without delay.

なお、奇数タップ対称型で1/3デシメーション処理を行う場合には、図19の(a)に示す初期状態から、図19の(b)のように、第1メモリ群22、第2メモリ群23およびバッファ25に対してアドレス2を指定し、前記同様に読み書きを指示することで、加算の組となる4個ずつのデータd(11)〜d(20)、d(2)〜d(11)の読み出しと、更新のための書き込みを行う。   When the 1/3 decimation processing is performed with the odd tap symmetric type, the first memory group 22 and the second memory group are started from the initial state shown in FIG. 19A as shown in FIG. 19B. 23 and the buffer 25 are designated with an address 2 and reading / writing is instructed in the same manner as described above, whereby four pieces of data d (11) to d (20) and d (2) to d ( 11) Read and write for update.

次に、図20の(a)のように、第1メモリ群22、第2メモリ群23にアドレス1、バッファ25に読み出しアドレス0を指定し、読み出しを指示して、加算の組となる4個ずつのデータd(12)〜d(21)、d(1)〜d(10)の読み出しを行い、第1のメモリ群22、第2メモリ群23およびバッファ25(書き込みアドレス1)に対して書き込みを指示して、更新のための書き込みを行う。   Next, as shown in FIG. 20A, address 1 is designated for the first memory group 22 and second memory group 23, read address 0 is designated for the buffer 25, readout is instructed, and a set of addition 4 The individual data d (12) to d (21) and d (1) to d (10) are read, and the first memory group 22, the second memory group 23, and the buffer 25 (write address 1) are read. Instruct to write, and write for update.

最後に、図20の(b)のように、第1メモリ群22、第2メモリ群23にアドレス0、バッファ25に読み出しアドレス1を指定し、読み出しを指示して、加算の組となる4個ずつのデータd(13)〜d(22)、d(0)〜d(9)の読み出しを行い、第1のメモリ群22、第2メモリ群23およびバッファ25(書き込みアドレス0)に対して書き込みを指示して、更新のための書き込みを行う。   Finally, as shown in FIG. 20B, the address 0 is designated for the first memory group 22 and the second memory group 23, the read address 1 is designated for the buffer 25, the readout is instructed, and the set of addition 4 The individual data d (13) to d (22) and d (0) to d (9) are read out, and the first memory group 22, the second memory group 23, and the buffer 25 (write address 0) are read. Instruct to write, and write for update.

この図20の(b)の状態は、図19の(a)の初期状態と等価であり、以下、この処理を繰り返すことで、奇数タップ対称型で1/3デシメーションのフィルタリング処理がなされる。   The state shown in FIG. 20B is equivalent to the initial state shown in FIG. 19A. Hereinafter, by repeating this process, an odd-tap symmetric 1/3 decimation filtering process is performed.

上記した各実施例は、各メモリブロックのアドレス数mが3の場合であったが、これは本発明を限定するものではなく、このアドレス数mを大きくする、例えば図21のようにm=6にすれば、より多くのタップ数で多種のデシメーション処理が可能である。   In each of the above embodiments, the number of addresses m of each memory block is 3, but this does not limit the present invention. For example, as shown in FIG. If it is 6, various decimation processes can be performed with a larger number of taps.

なお、この場合、データスイッチ26は、第1メモリ群22の2段目のメモリブロック22bから読み出されるデータも選択できるように構成する。   In this case, the data switch 26 is configured so that data read from the second-stage memory block 22b of the first memory group 22 can also be selected.

図21の(a)は、データの入力レートが装置速度の1/3で、48タップ、1/2デシメーション処理を行う場合の初期状態を示している。   FIG. 21A shows an initial state when the data input rate is 1/3 of the apparatus speed and 48 taps and 1/2 decimation processing is performed.

この場合、第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)が記憶されている。   In this case, in the four memory blocks of the first memory group 22, the newer 24 data d (24) to d (47) out of 48 data are stored in descending order by six, In the four memory blocks of the two memory group 23, the older 24 data d (0) to d (23) are stored in ascending order by six, and the addresses 0, 2, and 4 of the buffer 25 are stored in the addresses 0, 2, and 4, respectively. The data d (29), d (27), and d (25) of the addresses 0, 2, and 4 of the last memory block of the first memory group 22 are stored.

この初期状態から始めに図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)。   Starting from this initial state, as shown in FIG. 21B, data d (24) to d (42) and d (5) to d (23) at address 5 in the first memory group 22 and the second memory group 23. ) Is read and product-sum operation processing is performed, and immediately after that, writing to the first memory group 22 and the buffer 25 is instructed, and data d (48) including new data d (48) at address 5 of the first memory group 22 is instructed. 30) to d (48) are written, and data d (24) is written to address 5 of the buffer 25 (step 1).

次に、図22の(a)のように、第1メモリ群22と第2メモリ群23のアドレス3のデータd(26)〜d(44)、d(3)〜d(21)が読み出されて積和演算処理される(ステップ2)。   Next, as shown in FIG. 22A, the data d (26) to d (44) and d (3) to d (21) at the address 3 of the first memory group 22 and the second memory group 23 are read. The sum of products is processed (step 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)。   In the next step, as shown in FIG. 22B, the data d (28) to d (46) and d (1) to d (19) of the address 1 of the first memory group 22 and the second memory group 23 are displayed. ) Is read and sum-of-products calculation processing is performed. At this time, data d (7) to d (25) including the data of the address 4 of the buffer 25 are written to the address 1 of the second memory group 23 (step 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)。   Next, as shown in FIG. 23A, the data d (25) to d (43) and d (4) to d (22) at the address 4 of the first memory group 22 and the second memory group 23 are read. Then, the product-sum operation process is performed, and immediately after that, writing to the first memory group 22 and the buffer 25 is instructed, and the data d (31) to d including the new data d (49) at the address 4 of the first memory group 22 d (49) is written, and data d (31) is written to address 4 of the buffer 25 (step 4).

次に、図23の(b)のように、第1メモリ群22と第2メモリ群23のアドレス2のデータd(27)〜d(45)、d(2)〜d(20)が読み出されて積和演算処理される(ステップ5)。   Next, as shown in FIG. 23B, the data d (27) to d (45) and d (2) to d (20) at the address 2 of the first memory group 22 and the second memory group 23 are read. The sum of products is processed (step 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)。   Subsequently, as shown in FIG. 24, the data d (29) to d (47) and d (0) to d (18) at the address 0 of the first memory group 22 and the second memory group 23 are read out and summed up. At this time, data d (6) to d (24) including data at address 5 in the buffer 25 are written into address 0 in the second memory group 23 (step 6).

上記の6回のデータ読み出しにより、初期状態に記憶されていた48個のデータd(0)〜d(47)の読み出しが完了し、その48個のデータについての積和演算結果が得られる。   By reading the data six times, the reading of the 48 data d (0) to d (47) stored in the initial state is completed, and the product-sum operation result for the 48 data is obtained.

以下、図示しないが次の処理が行われる。
(ステップ7)加算の組となる第1メモリ群22のアドレス3と第2メモリ群23のアドレス1の各データの読み出し(積和演算)、第1メモリ群22に対する新規データd(50)を含むデータの書き込みおよびバッファ25のアドレス3へのデータd(26)の書き込み。
Hereinafter, although not shown, the following processing is performed.
(Step 7) Reading (data sum operation) of each data of the address 3 of the first memory group 22 and the address 1 of the second memory group 23, which is a set of addition, and new data d (50) for the first memory group 22 Write data to be included and write data d (26) to address 3 of the buffer 25.

(ステップ8)加算の組となる第1メモリ群22のアドレス1と第2メモリ群23のアドレス5の各データの読み出し(積和演算)。   (Step 8) Reading each data of the address 1 of the first memory group 22 and the address 5 of the second memory group 23, which is a set of addition (product-sum operation).

(ステップ9)加算の組となる第1メモリ群22のアドレス5と第2メモリ群23のアドレス3の各データの読み出し(積和演算)および第2メモリ群23に対するバッファ25のアドレス2のデータd(27)を含むデータの書き込み。   (Step 9) Reading (data sum operation) of each data of the address 5 of the first memory group 22 and the address 3 of the second memory group 23 and the data of the address 2 of the buffer 25 with respect to the second memory group 23 as a set of addition Write data including d (27).

(ステップ10)加算の組となる第1メモリ群22のアドレス2と第2メモリ群23のアドレス0の各データの読み出し(積和演算)、第1メモリ群22に対する新規データd(51)を含むデータの書き込みおよびバッファ25のアドレス2へのデータd(33)の書き込み。
(ステップ11)加算の組となる第1メモリ群22のアドレス0と第2メモリ群23のアドレス4の各データの読み出し(積和演算)。
(Step 10) Reading (data sum operation) each data of the address 2 of the first memory group 22 and the address 0 of the second memory group 23, which is a set of addition, and new data d (51) for the first memory group 22 Write data to be included and write data d (33) to address 2 of the buffer 25.
(Step 11) Reading each data of the address 0 of the first memory group 22 and the address 4 of the second memory group 23, which is a set of addition (product-sum operation).

(ステップ12)加算の組となる第1メモリ群22のアドレス4と第2メモリ群23のアドレス2の各データの読み出し(積和演算)、および第2メモリ群23に対するバッファ25のアドレス2のデータd(26)を含むデータの書き込み。   (Step 12) Reading of each data of the address 4 of the first memory group 22 and the address 2 of the second memory group 23 (product-sum operation) as a set of addition, and the address 2 of the buffer 25 for the second memory group 23 Write data including data d (26).

上記ステップ7〜12の処理で48個のデータd(2)〜d(49)の読み出しが完了し、その48個のデータについての最終の積和演算結果が得られる。   Reading of the 48 pieces of data d (2) to d (49) is completed by the processing in the above steps 7 to 12, and the final product-sum operation result for the 48 pieces of data is obtained.

そして、この状態から、前記同様に次の処理が行われる。
(ステップ13)加算の組となる第1メモリ群22のアドレス1と第2メモリ群23のアドレス3の各データの読み出し(積和演算)、第1メモリ群22に対する新規入力データd(52)を含むデータの書き込みおよびメモリブロック22dからバッファ25のアドレス1へのデータd(28)の書き込み。
Then, from this state, the following processing is performed as described above.
(Step 13) Reading of each data of the address 1 of the first memory group 22 and the address 3 of the second memory group 23 (product-sum operation) as a set of addition, new input data d (52) to the first memory group 22 And data d (28) from memory block 22d to address 1 of buffer 25.

(ステップ14)加算の組となる第1メモリ群22のアドレス5と第2メモリ群23のアドレス1の各データの読み出し(積和演算)。   (Step 14) Reading of each data of the address 5 of the first memory group 22 and the address 1 of the second memory group 23 as a set of addition (product-sum operation).

(ステップ15)加算の組となる第1メモリ群22のアドレス3と第2メモリ群23のアドレス5の各データの読み出し(積和演算)および第2メモリ群23に対するバッファ25のアドレス0のデータd(29)を含む書き込み。   (Step 15) Reading of each data of the address 3 of the first memory group 22 and the address 5 of the second memory group 23 (product-sum operation) and the data of the address 0 of the buffer 25 with respect to the second memory group 23 as a set of addition Write including d (29).

(ステップ16)加算の組となる第1メモリ群22のアドレス0と第2メモリ群23のアドレス2の各データの読み出し(積和演算)、第1メモリ群22に対する新規データd(53)を含むデータの書き込みおよびメモリブロック22cからバッファ25のアドレス0へのデータd(35)の書き込み。   (Step 16) Reading (data sum operation) each data of the address 0 of the first memory group 22 and the address 2 of the second memory group 23 as a set of addition, and new data d (53) for the first memory group 22 Write data including and write data d (35) from memory block 22c to address 0 of buffer 25.

(ステップ17)加算の組となる第1メモリ群22のアドレス4と第2メモリ群23のアドレス0の各データの読み出し(積和演算)。   (Step 17) Reading of each data of the address 4 of the first memory group 22 and the address 0 of the second memory group 23 as a set of addition (product-sum operation).

(ステップ18)加算の組となる第1メモリ群22のアドレス2と第2メモリ群23のアドレス4の各データの読み出し(積和演算)および第2メモリ群23に対するバッファ25のアドレス1のデータd(28)を含むデータの書き込み。   (Step 18) Reading of each data of the address 2 of the first memory group 22 and the address 4 of the second memory group 23 (product-sum operation) and the data of the address 1 of the buffer 25 with respect to the second memory group 23 as a set of addition Write data including d (28).

上記ステップ13〜18の処理で48個のデータd(4)〜d(51)の読み出しが完了し、その48個のデータについての積和演算結果が得られる。また、このときのデータの配列は、図21の(a)の初期状態と同じになる。   Reading of the 48 pieces of data d (4) to d (51) is completed by the processing of steps 13 to 18, and the product-sum operation result for the 48 pieces of data is obtained. Further, the data arrangement at this time is the same as the initial state of FIG.

以上のステップ1〜18の処理で、48個の各データd(0)〜d(47)、データd(2)〜d(49)およびデータd(4)〜d(51)の積和演算結果が順次得られることになる。   In the above steps 1 to 18, the product-sum operation of 48 pieces of data d (0) to d (47), data d (2) to d (49) and data d (4) to d (51) is performed. Results will be obtained sequentially.

したがって、上記ステップ1〜18の処理を繰り返すことにより、1/2デシメーションでフィルタリング処理できる。   Therefore, the filtering process can be performed with 1/2 decimation by repeating the processes of steps 1 to 18 described above.

次に、上記したアドレス数6のメモリブロックとバッファ25を用いた構成で奇数タップ対称型の処理を説明する。   Next, an odd-tap symmetric type process using the above-described memory block having 6 addresses and a buffer 25 will be described.

図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)が記憶されている。   FIG. 25A shows an initial state of the storage of the data. The first memory group 22 includes a new data including intermediate data d (23) out of 47 (odd number N) data. Data d (23) to d (46) is stored in four memory blocks in descending order, and the second memory group 23 stores the old data d (23) including the intermediate data d (23). 0) to d (23) are stored in ascending order in four memory blocks, six by six. The buffer 25 stores data d (22), d (27), d (20), d (25), d (18), d (23) in ascending order of addresses.

この状態から次の一連の処理がなされる。
(ステップ101)加算の組となる第1メモリ群22のアドレス5と第2メモリ群23のアドレス5のデータの読み出し(積和演算、ただし、中間データに対してはその加算結果に本来の係数の1/2を乗算する)、第1メモリ群22に対する新規データd(47)を含むデータ書き込みおよびメモリブロック22cからバッファ25のアドレス5へのデータd(29)の書き込み。
From this state, the following series of processing is performed.
(Step 101) Reading the data at the address 5 of the first memory group 22 and the address 5 of the second memory group 23 as a set of addition (product-sum operation. However, for intermediate data, the original coefficient Writing data including new data d (47) to the first memory group 22 and writing data d (29) from the memory block 22c to address 5 of the buffer 25.

(ステップ102)加算の組となる第1メモリ群22と第2メモリ群23のアドレス3の各データの読み出し(積和演算)。   (Step 102) Reading of each data of the address 3 of the first memory group 22 and the second memory group 23 which is a set of addition (product-sum operation).

(ステップ103)加算の組となる第1メモリ群22と第2メモリ群23のアドレス1の各データの読み出し(積和演算)および第2メモリ群23に対するバッファ25のアドレス3のデータd(25)によるアドレス1のデータ書き込み。   (Step 103) Reading of each data at the address 1 of the first memory group 22 and the second memory group 23 (multiply-accumulate operation) and the data d at the address 3 of the buffer 25 for the second memory group 23 (25) ) Write data at address 1.

上記ステップ101〜103の処理により、データの配列は図25の(b)に示す状態となり、この状態から次の処理を行う。   By the processing of steps 101 to 103, the data arrangement is in the state shown in FIG. 25B, and the next processing is performed from this state.

(ステップ104)加算の組となる第1メモリ群22と第2メモリ群23のアドレス4の各データの読み出し(積和演算)、第1メモリ群22に対する新規データd(48)を含むデータ書き込みおよびメモリブロック22dからバッファ25のアドレス4へのデータd(24)の書き込み。   (Step 104) Reading (data sum operation) of each data at the address 4 of the first memory group 22 and the second memory group 23 as a set of addition, and data writing including new data d (48) to the first memory group 22 Further, the data d (24) is written from the memory block 22d to the address 4 of the buffer 25.

(ステップ105)加算の組となる第1メモリ群22と第2メモリ群23のアドレス2の各データの読み出し(積和演算)。   (Step 105) Reading of each data of the address 2 of the first memory group 22 and the second memory group 23 which is a set of addition (product-sum operation).

(ステップ106)加算の組となる第1メモリ群22と第2メモリ群23のアドレス0の各データの読み出し(積和演算)および第2メモリ群23に対するバッファ25のアドレス4のデータd(24)を含むデータ書き込み。   (Step 106) Reading (data sum operation) of each data at the address 0 of the first memory group 22 and the second memory group 23 as a set of addition and data d (24 of the address 25 of the buffer 25 for the second memory group 23) ) Including data writing.

上記のステップ101〜106の処理により、47個のデータd(0)〜d(46)の読み出しが完了し、その47個のデータについての積和演算結果が得られる。このときのデータの配列は図26の(a)に示す状態となり、この状態から次の処理を行う。   Through the processing of steps 101 to 106 described above, reading of 47 pieces of data d (0) to d (46) is completed, and a product-sum operation result for the 47 pieces of data is obtained. The data arrangement at this time is as shown in FIG. 26A, and the next processing is performed from this state.

(ステップ107)加算の組となる第1メモリ群22のアドレス3と第2メモリ群23のアドレス1の各データの読み出し(積和演算)および第1メモリ群22に対する新規データd(49)を含むデータの書き込みおよびメモリブロック22cからバッファ25のアドレス3へのデータd(31)の書き込み。   (Step 107) Reading (data sum operation) each data of the address 3 of the first memory group 22 and the address 1 of the second memory group 23, which is a set of addition, and new data d (49) for the first memory group 22 Write data including and write data d (31) from memory block 22c to address 3 of buffer 25.

(ステップ108)加算の組となる第1メモリ群22のアドレス1と第2メモリ群23のアドレス5の各データの読み出し(積和演算)。   (Step 108) Reading out each data of the address 1 of the first memory group 22 and the address 5 of the second memory group 23, which is a set of addition (product-sum operation).

(ステップ109)加算の組となる第1メモリ群22のアドレス5と第2メモリ群23のアドレス3の各データの読み出し(積和演算)および第2メモリ群23に対するバッファ25のアドレス1のデータd(27)を含むデータ書き込み。   (Step 109) Reading of each data of the address 5 of the first memory group 22 and the address 3 of the second memory group 23 (product-sum operation) as a set of addition, and data of the address 1 of the buffer 25 for the second memory group 23 Write data including d (27).

上記のステップ107〜109の処理により、データの配列は図26の(b)に示す状態となり、この状態から次の処理を行う。   By the processing in steps 107 to 109 described above, the data arrangement becomes the state shown in FIG. 26B, and the next processing is performed from this state.

(ステップ110)加算の組となる第1メモリ群22のアドレス2と第2メモリ群23のアドレス0の各データの読み出し(積和演算)、第1メモリ群22に対する新規データd(50)を含むデータ書き込みおよびメモリブロック22dからバッファ25のアドレス2へのデータd(26)の書き込み。   (Step 110) Reading (data sum operation) each data of the address 2 of the first memory group 22 and the address 0 of the second memory group 23, which is a set of addition, and new data d (50) for the first memory group 22 Write data including and write data d (26) from memory block 22d to address 2 of buffer 25.

(ステップ111)加算の組となる第1メモリ群22のアドレス0と第2メモリ群23のアドレス4の各データの読み出し(積和演算)。   (Step 111) Reading of each data of the address 0 of the first memory group 22 and the address 4 of the second memory group 23 which is a set of addition (product-sum operation).

(ステップ112)加算の組となる第1メモリ群22のアドレス4と第2メモリ群23のアドレス2の各データの読み出し(積和演算)および第2メモリ群23に対するバッファ25のアドレス2のデータd(26)を含むデータ書き込み。   (Step 112) Reading of each data of the address 4 of the first memory group 22 and the address 2 of the second memory group 23 (product-sum operation) as a set of addition and data of the address 2 of the buffer 25 for the second memory group 23 Write data including d (26).

上記のステップ110〜112の処理により、47個のデータd(2)〜d(48)の読み出しが完了し、その47個のデータについての積和演算結果が得られる。また、このときのデータの配列は図27の(a)に示す状態となり、この状態から次の処理を行う。   Through the processing of steps 110 to 112 described above, reading of 47 pieces of data d (2) to d (48) is completed, and a product-sum operation result for the 47 pieces of data is obtained. The data arrangement at this time is in the state shown in FIG. 27A, and the next processing is performed from this state.

(ステップ113)加算の組となる第1メモリ群22のアドレス1と第2メモリ群23のアドレス3の各データの読み出し(積和演算)、第1メモリ群22に対する新規データd(51)を含むデータ書き込みおよびメモリブロック22cからバッファ25のアドレス1へのデータd(33)の書き込み。   (Step 113) Reading (data sum operation) of each data of the address 1 of the first memory group 22 and the address 3 of the second memory group 23, which is a set of addition, and new data d (51) for the first memory group 22 Write data including and write data d (33) from memory block 22c to address 1 of buffer 25.

(ステップ114)加算の組となる第1メモリ群22のアドレス5と第2メモリ群23のアドレス1の各データの読み出し(積和演算)。   (Step 114) Reading of each data of the address 5 of the first memory group 22 and the address 1 of the second memory group 23 which is a set of addition (product-sum operation).

(ステップ115)加算の組となる第1メモリ群22のアドレス3と第2メモリ群23のアドレス5の各データの読み出し(積和演算)および第2メモリ群23に対するバッファ25のアドレス5のデータd(29)を含むデータ書き込み。   (Step 115) Reading (data sum operation) of each data of the address 3 of the first memory group 22 and the address 5 of the second memory group 23 and the data of the address 5 of the buffer 25 with respect to the second memory group 23 as a set of addition Write data including d (29).

上記のステップ113〜115の処理により、データの配列は図27の(b)に示す状態となり、この状態から次の処理を行う。   As a result of the processing in steps 113 to 115 described above, the data arrangement becomes the state shown in FIG. 27B, and the next processing is performed from this state.

(ステップ116)加算の組となる第1メモリ群22のアドレス0と第2メモリ群23のアドレス2の各データの読み出し(積和演算)、第1メモリ群22に対する新規データd(52)を含むデータ書き込みおよびメモリブロック22dからバッファ25のアドレス0へのデータd(28)の書き込み。   (Step 116) Reading (data sum operation) each data of the address 0 of the first memory group 22 and the address 2 of the second memory group 23 as a set of addition, and new data d (52) for the first memory group 22 Write data including and write data d (28) from memory block 22d to address 0 of buffer 25.

(ステップ117)加算の組となる第1メモリ群22のアドレス4と第2メモリ群23のアドレス0の各データの読み出し(積和演算)。   (Step 117) Reading each data of the address 4 of the first memory group 22 and the address 0 of the second memory group 23, which is a set of addition (product-sum operation).

(ステップ118)加算の組となる第1メモリ群22のアドレス2と第2メモリ群23のアドレス4の各データの読み出し(積和演算)および第2メモリ群23に対するバッファ25のアドレス0のデータd(28)を含むデータ書き込み。   (Step 118) Reading of each data of the address 2 of the first memory group 22 and the address 4 of the second memory group 23 to be a set of addition (product-sum operation) and data of the address 0 of the buffer 25 for the second memory group 23 Write data including d (28).

上記のステップ113〜118の処理により、47個のデータd(4)〜d(50)の読み出しが完了し、その47個のデータについての積和演算結果が得られる。また、このときのデータの配列は図28となり、これは、図25の(a)の初期状態と等しい。   Through the processing of steps 113 to 118 described above, reading of 47 pieces of data d (4) to d (50) is completed, and a product-sum operation result for the 47 pieces of data is obtained. Also, the data arrangement at this time is shown in FIG. 28, which is equal to the initial state of FIG.

以上ステップ101〜118の処理により、47個の各データd(0)〜d(46)、データd(2)〜d(48)およびデータd(4)〜d(50)の積和演算結果が順次得られることになり、以下これを繰り返すことで、奇数タップ、1/2デシメーションによるフィルタリング処理を行うことができる。   As a result of the processing in steps 101 to 118, the product-sum operation result of 47 pieces of data d (0) to d (46), data d (2) to d (48), and data d (4) to d (50) is obtained. Are sequentially obtained, and by repeating this, filtering processing by odd taps and 1/2 decimation can be performed.

なお、上記動作例は一例であり、他のデシメート処理等についても、第1メモリ群22、第2メモリ群23およびバッファ25に対する読み出しや書き込みの順序を適宜変更することで対応できる。また、バッファ25についてのみ読み書きアドレスを独立に制御するだけで、第1メモリ群22、第2メモリ群23については読み書き共通のアドレスを用いることができ、その制御も容易に行える。   Note that the above operation example is an example, and other decimation processing and the like can be handled by appropriately changing the order of reading and writing with respect to the first memory group 22, the second memory group 23, and the buffer 25. Further, by controlling the read / write address only for the buffer 25 independently, the read / write common address can be used for the first memory group 22 and the second memory group 23, and the control can be easily performed.

また、前記した各実施例では、第1メモリ群22の各メモリブロックに対してデータをアドレスの降順に記憶し、第2メモリ群23の各メモリブロックに対してデータをアドレスの昇順に記憶していたが、逆に、第1メモリ群22の各メモリブロックに対してデータをアドレスの昇順に記憶し、第2メモリ群23の各メモリブロックに対してデータをアドレスの降順に記憶してもよい。   In each of the above-described embodiments, data is stored in descending order of addresses for each memory block of the first memory group 22, and data is stored in ascending order of addresses for each memory block of the second memory group 23. However, conversely, data may be stored in ascending order of addresses for each memory block of the first memory group 22, and data may be stored in descending order of addresses for each memory block of the second memory group 23. Good.

本発明の実施形態の構成図Configuration diagram of an embodiment of the present invention 実施形態の動作説明図Operation explanatory diagram of the embodiment 実施形態の動作説明図Operation explanatory diagram of the embodiment 実施形態の動作説明図Operation explanatory diagram of the embodiment 実施形態の動作説明図Operation explanatory diagram of the embodiment 実施形態の動作説明図Operation explanatory diagram of the embodiment 係数非対称型の場合の構成図Configuration diagram for coefficient asymmetric type 本発明の他の実施形態の構成図Configuration of another embodiment of the present invention 他の実施形態の動作説明図Operation explanatory diagram of other embodiments 他の実施形態の動作説明図Operation explanatory diagram of other embodiments 他の実施形態の動作説明図Operation explanatory diagram of other embodiments 本発明の他の実施形態の構成図Configuration of another embodiment of the present invention 他の実施形態のデシメーション処理の動作説明図Operation explanatory diagram of decimation processing of another embodiment 他の実施形態の奇数タップ処理の動作説明図Operation explanatory diagram of odd tap processing of other embodiment 他の実施形態の奇数タップ処理の動作説明図Operation explanatory diagram of odd tap processing of other embodiment 他の実施形態の奇数タップ処理の動作説明図Operation explanatory diagram of odd tap processing of other embodiment 他の実施形態の奇数タップ処理の動作説明図Operation explanatory diagram of odd tap processing of other embodiment 他の実施形態の奇数タップ処理の動作説明図Operation explanatory diagram of odd tap processing of other embodiment 他の実施形態の奇数タップ処理とデシメーション処理の動作説明図Operation explanatory diagram of odd tap processing and decimation processing of other embodiment 他の実施形態の奇数タップ処理とデシメーション処理の動作説明図Operation explanatory diagram of odd tap processing and decimation processing of other embodiment メモリブロックのアドレス数を6にした場合のデシメーション処理の動作説明図Operation explanatory diagram of decimation processing when the number of addresses of the memory block is 6 メモリブロックのアドレス数を6にした場合のデシメーション処理の動作説明図Operation explanatory diagram of decimation processing when the number of addresses of the memory block is 6 メモリブロックのアドレス数を6にした場合のデシメーション処理の動作説明図Operation explanatory diagram of decimation processing when the number of addresses of the memory block is 6 メモリブロックのアドレス数を6にした場合のデシメーション処理の動作説明図Operation explanatory diagram of decimation processing when the number of addresses of the memory block is 6 メモリブロックのアドレス数を6にした場合の奇数タップとデシメーション処理の動作説明図Explanatory diagram of odd tap and decimation process when the number of addresses of the memory block is 6 メモリブロックのアドレス数を6にした場合の奇数タップとデシメーション処理の動作説明図Explanatory diagram of odd tap and decimation process when the number of addresses of the memory block is 6 メモリブロックのアドレス数を6にした場合の奇数タップとデシメーション処理の動作説明図Explanatory diagram of odd tap and decimation process when the number of addresses of the memory block is 6 メモリブロックのアドレス数を6にした場合の奇数タップとデシメーション処理の動作説明図Explanatory diagram of odd tap and decimation process when the number of addresses of the memory block is 6 FIR型デジタルフィルタの基本構成図Basic configuration of FIR type digital filter

符号の説明Explanation of symbols

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……総和演算器   20, 50, 60, 70... FIR digital filter, 21... Data storage unit, 22... First memory group, 22a to 22d... Memory block, 23. Memory block, 24... Latch circuit, 25... Buffer, 26... Data switch, 30... Controller, 30 a... Data reading means, 30 b ... First data writing means, 30 c. Write means, 30d... Buffer control means, 40... Product-sum operation unit, 41... Coefficient memory, 42... Coefficient selection means, 43a to 43d ... adder, 44a to 44h ... multiplier, 45 ... ... Sum calculator

Claims (7)

時系列に入力される最新の複数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個の新規データの書き込みが終了した段階で前記初期状態に戻るようにアドレスを切り換えるように構成され、
前記第1のデータ書込手段は、前記データ読出手段が前記第1メモリ群の各メモリブロックに記憶されているデータのうち最も古いデータのアドレスを指定して読み出しを指示した直後に前記第1メモリ群の各メモリブロックの当該アドレスへの書き込みを指示するように構成され、
前記第2のデータ書込手段は、前記データ読出手段が前記第2メモリ群の各メモリブロックに記憶されているデータのアドレスを指定して読み出しを指示した直後に前記第2メモリ群の各メモリブロックの当該アドレスへのデータ書き込みを指示するように構成され、
さらに、
前記第1メモリ群と第2メモリ群の間にラッチ回路(24)が設けられ、
前記第1のデータ書込手段は、前記第1メモリ群の各メモリブロックに書き込みを指示するときに、最終段のメモリブロックから読み出されているデータを前記ラッチ回路に書き込み、
前記第2のデータ書込手段は、前記第2メモリ群の各メモリブロックに書き込みを指示するときに、前記ラッチ回路に記憶されているデータを初段のメモリブロックに書き込むように構成されていることを特徴とするFIR型デジタルフィルタ。
Data storage unit (21) for storing the latest plural N data (N is an integer equal to 2 × m × p or 2 × m × p−1 for plural m and integer p) input in time series And a product-sum operation unit (40) that multiplies a predetermined number of N data stored in the data storage unit by a predetermined coefficient, and calculates and outputs the sum,
Wherein the data storage unit,
Memory blocks (22a to 22d) consisting of dual-port RAMs with an address number m that can independently read and write data are connected in series in p stages, receive new data, and count from the newest of the N consecutive data. A first memory group (22) for storing m × p data,
Memory blocks (23a to 23d) consisting of dual-port RAMs with the number of addresses m that can independently read and write data are connected in p stages in series, receive data read from the first memory group, and receive the continuous N A second memory group (23) for storing m × p data counted from the oldest of the data,
A state in which data is stored in descending order in each memory block of one of the first memory group and the second memory group and data is stored in ascending order in each memory block of the other memory group is an initial state From the initial state, the first memory group and the second memory group are instructed to read while sequentially changing the addresses, and the consecutive N data are sequentially read in 2p divided into m times, Data reading means (30a) for outputting to the product-sum operation unit;
Each time data reading by the data reading means is performed a predetermined number of times, each memory block of the first memory group is instructed to write to the address of the oldest stored data, and each data at the address is transferred to the subsequent stage. And first data writing means (30b) for writing new data to the memory block in the first stage,
Each time the data reading by the data reading means is performed a predetermined number of times, the memory block of the second memory group is instructed to write the read data to the address, and each data at the address is written to the subsequent stage. And a second data writing means (30c) for writing data read from the first memory group at the time of data writing by the first data writing means to the first-stage memory block,
Said data reading means, said first data writing means and the second data writing means, so that at the stage of the writing from an initial state of the m new data has been completed to switch the address to return to the initial state Composed of
The first data writing means immediately after the data reading means instructs to read by designating the address of the oldest data among the data stored in each memory block of the first memory group. It is configured to instruct writing to the corresponding address of each memory block of the memory group,
The second data writing means is configured such that each of the memories in the second memory group immediately after the data reading means designates an address of data stored in each memory block of the second memory group and instructs reading. It is configured to instruct to write data to the address of the block,
further,
A latch circuit (24) is provided between the first memory group and the second memory group;
The first data writing means writes the data read from the last memory block to the latch circuit when instructing to write to each memory block of the first memory group,
The second data writing means is configured to write the data stored in the latch circuit to the first-stage memory block when instructing writing to each memory block of the second memory group. FIR type digital filter characterized by the above.
時系列に入力される最新の複数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個の新規データの書き込みが終了した段階で前記初期状態に戻るようにアドレスを切り換えるように構成され、
前記第1のデータ書込手段は、前記データ読出手段が前記第1メモリ群の各メモリブロックに記憶されているデータのうち最も古いデータのアドレスを指定して読み出しを指示した直後に前記第1メモリ群の各メモリブロックの当該アドレスへの書き込みを指示するように構成され、
前記第2のデータ書込手段は、前記データ読出手段が前記第2メモリ群の各メモリブロックに記憶されているデータのアドレスを指定して読み出しを指示した直後に前記第2メモリ群の各メモリブロックの当該アドレスへのデータ書き込みを指示するように構成され、
さらに、
前記メモリブロックと等しいアドレス数mを有するデュアルポートRAMからなり、前記第1メモリ群から読み出されたデータを記憶し、該記憶したデータを前記第2メモリ群に出力するバッファ(25)と、
前記第1メモリ群の各メモリブロックのうち最終段と少なくともその前段のメモリブロックから出力されたデータのいずれかを選択して前記バッファに入力するデータスイッチ(26)と、
前記第1のデータ書込手段によるデータ書き込み時に前記第1メモリ群の各メモリブロックに指定したアドレスに対応するデータを前記データスイッチにより選択して前記バッファに入力し、且つ、当該アドレスを前記バッファに指定して書き込みを指示し、前記第2のデータ書込手段によるデータ書き込み時に、該書き込み対象のアドレスの初段のメモリブロックのデータからm個分新しいデータを前記バッファから読み出して前記初段のメモリブロックに入力するバッファ制御手段(30d)とが設けられ、
前記データ読出手段、第1のデータ書込手段、第2のデータ書込手段およびバッファ制御手段により、偶数タップ型のフィルタ処理、奇数タップ型のフィルタ処理およびそれらにデシメーション処理を加えたフィルタ処理にいずれにも対応できるように構成されたことを特徴とするFIR型デジタルフィルタ。
Data storage unit (21) for storing the latest plural N data (N is an integer equal to 2 × m × p or 2 × m × p−1 for plural m and integer p) input in time series And a product-sum operation unit (40) that multiplies a predetermined number of N data stored in the data storage unit by a predetermined coefficient, and calculates and outputs the sum,
The data storage unit
Memory blocks (22a to 22d) consisting of dual-port RAMs with the number of addresses m that can independently read and write data are connected in p stages in series, receive new data, and count from the newest of the N consecutive data. A first memory group (22) for storing m × p data,
Memory blocks (23a to 23d) consisting of dual-port RAMs with the number of addresses m that can independently read and write data are connected in p stages in series, receive data read from the first memory group, and receive the continuous N A second memory group (23) for storing m × p data counted from the oldest of the data,
A state in which data is stored in descending order in each memory block of one of the first memory group and the second memory group and data is stored in ascending order in each memory block of the other memory group is an initial state From the initial state, the first memory group and the second memory group are instructed to read while sequentially changing the addresses, and the consecutive N data are sequentially read in 2p divided into m times, Data reading means (30a) for outputting to the product-sum operation unit;
Each time data reading by the data reading means is performed a predetermined number of times, each memory block of the first memory group is instructed to write to the address of the oldest stored data, and each data at the address is transferred to the subsequent stage. And first data writing means (30b) for writing new data to the memory block in the first stage,
Each time the data reading by the data reading means is performed a predetermined number of times, the memory block of the second memory group is instructed to write the read data to the address, and each data at the address is written to the subsequent stage. And a second data writing means (30c) for writing data read from the first memory group at the time of data writing by the first data writing means to the first-stage memory block,
The data reading means, the first data writing means, and the second data writing means switch addresses so as to return to the initial state when m new data has been written from the initial state. Composed of
The first data writing means immediately after the data reading means instructs to read by designating the address of the oldest data among the data stored in each memory block of the first memory group. It is configured to instruct writing to the corresponding address of each memory block of the memory group,
The second data writing means is configured such that each of the memories in the second memory group immediately after the data reading means designates an address of data stored in each memory block of the second memory group and instructs reading. It is configured to instruct to write data to the address of the block,
further,
A buffer (25) comprising a dual port RAM having the same number of addresses m as the memory block, storing data read from the first memory group, and outputting the stored data to the second memory group;
A data switch (26) for selecting any of the data output from the last stage and at least the previous memory block among the memory blocks of the first memory group and inputting the selected data to the buffer;
When data is written by the first data writing means, data corresponding to an address specified for each memory block of the first memory group is selected by the data switch and input to the buffer, and the address is input to the buffer. When the data is written by the second data writing means, m new data from the data in the first memory block at the write target address is read from the buffer and the first memory is written. Buffer control means (30d) for input to the block, and
By the data reading means, the first data writing means, the second data writing means, and the buffer control means, the even tap type filter processing, the odd tap type filter processing, and the filter processing obtained by adding decimation processing thereto. F IR digital filter you characterized in that either configured to accommodate.
前記第1メモリ群の最終段のメモリブロックのデータと前記第2メモリ群の初段のメモリブロックのデータが重複しない状態で、且つ前記第1メモリ群の最終段のメモリブロックのデータのうち、その最も古いデータをさらにm個分古いデータに置き換えたデータが前記バッファに記憶された状態を初期状態とし、m個の新たなデータの書き込みが完了したときに前記初期状態に戻り、時系列に連続した2×m×p個のデータの積和演算結果が一つ得られるように前記バッファの読出アドレスと前記スイッチを制御して、偶数タップ1/mデシメーション型のフィルタ処理を行うこと特徴とする請求項2記載のFIR型デジタルフィルタ。 Of the data in the last memory block of the first memory group, the data in the last memory block in the first memory group and the data in the first memory block in the second memory group do not overlap. The state in which the oldest data is replaced with m older data is stored in the buffer as the initial state, and when the new data has been written, the initial state is restored and the time series continues. The even-number tap 1 / m decimation type filter processing is performed by controlling the read address of the buffer and the switch so that one product-sum operation result of 2 × m × p data is obtained. The FIR type digital filter according to claim 2. 前記第1メモリ群の最終段のメモリブロックの最も古いデータと前記第2メモリ群の初段のメモリブロックの最も新しいデータとが共通で、且つ前記第1メモリ群の最終段のメモリブロックと前記バッファの記憶内容が同一の状態を初期状態として、m個の新たなデータの書き込みが完了したときに前記初期状態に戻り、時系列に連続した2×m×p−1個のデータの積和演算結果がm個得られるようにように前記バッファの読出アドレスと前記スイッチを制御して、奇数タップ型のフィルタ処理を行うこと特徴とする請求項2記載のFIR型デジタルフィルタ。 The oldest data of the last memory block of the first memory group and the newest data of the first memory block of the second memory group are common, and the last memory block and the buffer of the first memory group The initial state is the state where the stored contents are the same, and when the writing of m new data is completed, the initial state is restored, and the product-sum operation of 2 × m × p−1 data continuous in time series 3. The FIR digital filter according to claim 2, wherein odd tap type filter processing is performed by controlling the read address of the buffer and the switch so that m results are obtained . 前記第1メモリ群の最終段のメモリブロックの最も古いデータと前記第2メモリ群の初段のメモリブロックの最も新しいデータとが共通で、且つ前記第1メモリ群の最終段のメモリブロックのデータのうち、その最も古いデータをm個分新しいデータに置き換えたデータが前記バッファに記憶された状態を初期状態とし、m個の新たなデータの書き込みが完了したときに前記初期状態に戻り、時系列に連続した2×m×p−1個のデータの積和演算結果が一つ得られるように前記バッファの読出アドレスと前記スイッチを制御して、奇数タップ1/mデシメーション型のフィルタ処理を行うこと特徴とする請求項2記載のFIR型デジタルフィルタ。 The oldest data in the last memory block of the first memory group and the newest data in the first memory block of the second memory group are common, and the data of the memory block in the last memory block of the first memory group Among them, the state in which the data obtained by replacing the oldest data with m new data is stored in the buffer is set as an initial state, and when the writing of m new data is completed, the initial state is restored, and time series Odd tap 1 / m decimation type filter processing is performed by controlling the read address and the switch of the buffer so that one product-sum operation result of 2 × m × p−1 continuous data is obtained. The FIR type digital filter according to claim 2 . 前記積和演算部は、
前記連続するN個のデータに乗じるための係数を記憶している係数メモリ(41)と、
前記データ読出手段によって前記第1メモリ群と第2メモリ群からそれぞれp個ずつ読み出されるデータに対応する係数を前記係数メモリから選択する係数選択手段(42)とを有しており、
前記データ読出手段によって2p個ずつm回に分けて読み出されるデータと、前記係数選択手段によって選択された係数とを用いて積和演算を行うように構成されていることを特徴とする請求項1〜5のいずれかに記載のFIR型デジタルフィルタ。
The product-sum operation unit
A coefficient memory (41) for storing coefficients for multiplying the continuous N pieces of data;
Coefficient selection means (42) for selecting, from the coefficient memory, coefficients corresponding to the data read by the data reading means from the first memory group and the second memory group, respectively.
2. The product-sum operation is performed using the data read by the data reading means in increments of 2p and the coefficients selected by the coefficient selection means. FIR type digital filter in any one of -5.
前記係数メモリには、前記第1メモリ群および第2メモリ群に記憶された連続するN個のデータのうち、新しい方から数えた順位と古い方から数えた順位が等しいデータの組にそれぞれ共通の係数が記憶しており、In the coefficient memory, among the consecutive N pieces of data stored in the first memory group and the second memory group, each of the sets of data in which the rank counted from the newest and the rank counted from the oldest is the same. The coefficient of
前記データ読出手段は、前記係数が共通のデータを前記第1メモリ群と第2メモリ群からp個ずつ読み出すように構成され、The data reading means is configured to read data having a common coefficient from the first memory group and the second memory group by p pieces,
前記積和演算部は、係数が共通のデータ同士をp個の加算器(43a〜43d)によりそれぞれ加算し、その加算結果をp個の乗算器(44a〜44d)にそれぞれ出力して前記共通の係数をそれぞれ乗じ、該p個の乗算器の乗算結果のm回分の総和を総和演算器(45)により求めることを特徴とする請求項6記載のFIR型デジタルフィルタ。The product-sum operation unit adds data having common coefficients to each other by p adders (43a to 43d), and outputs the addition results to p multipliers (44a to 44d), respectively. 7. The FIR type digital filter according to claim 6, wherein the sum of the multiplication results of the p multipliers is obtained by a sum calculator (45).
JP2005081510A 2005-03-22 2005-03-22 FIR type digital filter Active JP4295234B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2005081510A JP4295234B2 (en) 2005-03-22 2005-03-22 FIR type digital filter

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2005081510A JP4295234B2 (en) 2005-03-22 2005-03-22 FIR type digital filter

Publications (2)

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

Family

ID=37205712

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2005081510A Active JP4295234B2 (en) 2005-03-22 2005-03-22 FIR type digital filter

Country Status (1)

Country Link
JP (1) JP4295234B2 (en)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117110767B (en) * 2023-10-18 2024-01-26 广州新创航宇电子科技有限公司 Automatic screening method and system for frequency hopping filter data

Also Published As

Publication number Publication date
JP2006270178A (en) 2006-10-05

Similar Documents

Publication Publication Date Title
JP2003296096A (en) Serial arithmetic pipeline, arithmetic unit, arithmetic logic circuit, and arithmetic method by serial arithmetic pipeline
US4766561A (en) Method and apparatus for implementing multiple filters with shared components
EP4054077A1 (en) Interpolation filter system implemented by digital circuit
JPS6165616A (en) Digital filter integrated circuit device
US4939684A (en) Simplified processor for digital filter applications
JPS63278411A (en) Multistage digital filter
JP4295234B2 (en) FIR type digital filter
KR101008782B1 (en) Degital filter, its synthesizing device, and synthesizing program recording computer readable medium
JP4388141B2 (en) Shared resources for digital filters
US5886912A (en) Processing elements connected in cascade having a controllable bypass
JPH0767063B2 (en) Digital signal processing circuit
US5166895A (en) Input-weighted transversal filter
KR100235537B1 (en) Variable tap of digital filter and multiplier circuit thereof
JPH0335353A (en) Discrete cosine converting device
JPH0998069A (en) Fir type digital filter
JPH02264509A (en) Digital filter
JP2922451B2 (en) Signal processing device
JP2001160736A (en) Digital filter circuit
JP4413052B2 (en) Data flow graph processing apparatus and processing apparatus
JP3140853B2 (en) Data driven filter device
JP2010011493A (en) Digital filter
JP3125672B2 (en) Digital filter
JP2003332888A (en) Filter device
JP2004128858A (en) Fir digital filter
JP4586114B1 (en) Product-sum operation unit

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