JP4295234B2 - FIR type digital filter - Google Patents
FIR type digital filter Download PDFInfo
- 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.)
- Expired - Lifetime
Links
- 230000015654 memory Effects 0.000 claims description 566
- 238000013500 data storage Methods 0.000 claims description 20
- 230000001174 ascending effect Effects 0.000 claims description 12
- 230000009977 dual effect Effects 0.000 claims description 7
- 238000007792 addition Methods 0.000 description 53
- 238000010586 diagram Methods 0.000 description 26
- 238000000034 method Methods 0.000 description 26
- 238000001914 filtration Methods 0.000 description 9
- 238000004364 calculation method Methods 0.000 description 4
- 230000000694 effects Effects 0.000 description 1
Images
Landscapes
- Complex Calculations (AREA)
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
このFIR型デジタルフィルタ10は、データ記憶部11および積和演算部15とにより構成されている。
The FIR type
データ記憶部11は、複数N段直列に接続されたラッチ回路12(1)〜12(N)により構成され、クロックに同期して入力されるデータd(0)、d(1)、…、d(N−1)を初段のラッチ回路12(1)から最終段のラッチ回路12(N)まで順次シフトし、最新のN個のデータを常に記憶する。
The
積和演算部15は、各ラッチ回路12(1)〜12(N)にラッチされたデータを乗算器16(1)〜16(N)でそれぞれ受け、係数設定器17から出力された係数a(0)、a(1)、…、a(N−1)と乗算し、その乗算結果の総和を総和演算器18によって求め、その結果D(i)を処理結果として出力する。
The product-
この構成のFIR型デジタルフィルタ10は、データ記憶部11のラッチ回路12の段数N(遅延段数)と係数a(0)〜a(N−1)の値によって決まるフィルタリング処理を行っている。
The FIR
このような基本構成を有するFIR型デジタルフィルタにおいて、遅延段数が多い場合、それに応じて積和演算に必要な乗算器16の数も多くなり、ハードウエアが膨大化するという問題がある。
In the FIR type digital filter having such a basic configuration, when the number of delay stages is large, the number of
これを解決するために、演算処理をパイプライン処理する技術が次の特許文献1に開示されている。
In order to solve this problem, a technique for performing pipeline processing for arithmetic processing is disclosed in the following
この文献では、連続する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
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
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
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型デジタルフィルタは、請求項2記載のFIR型デジタルフィルタにおいて、
前記第1メモリ群の最終段のメモリブロックの最も古いデータと前記第2メモリ群の初段のメモリブロックの最も新しいデータとが共通で、且つ前記第1メモリ群の最終段のメモリブロックと前記バッファの記憶内容が同一の状態を初期状態として、m個の新たなデータの書き込みが完了したときに前記初期状態に戻り、時系列に連続した2×m×p−1個のデータの積和演算結果がm個得られるようにように前記バッファの読出アドレスと前記スイッチを制御して、奇数タップ型のフィルタ処理を行うことを特徴としている。
The FIR digital filter according to
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型デジタルフィルタは、請求項2記載のFIR型デジタルフィルタにおいて、
前記第1メモリ群の最終段のメモリブロックの最も古いデータと前記第2メモリ群の初段のメモリブロックの最も新しいデータとが共通で、且つ前記第1メモリ群の最終段のメモリブロックのデータのうち、その最も古いデータをm個分新しいデータに置き換えたデータが前記バッファに記憶された状態を初期状態とし、m個の新たなデータの書き込みが完了したときに前記初期状態に戻り、時系列に連続した2×m×p−1個のデータの積和演算結果が一つ得られるように前記バッファの読出アドレスと前記スイッチを制御して、奇数タップ1/mデシメーション型のフィルタ処理を行うことを特徴としている。
The FIR digital filter according to
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
また、本発明の請求項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
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
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
この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
なお、図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
第1メモリ群22は、アドレス数をm(=3)とするデュアルポートRAMからなるメモリブロック22a〜22dがp(=4)段直列に接続されて構成されている。
The
デュアルポート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
コントローラ30は、第1メモリ群22と第2メモリ群23に対するアドレス指定や読み書き制御を行うためのものであり、データ読出手段30a、第1のデータ書込手段30b、第2のデータ書込手段30cを有している。
The
データ読出手段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
前記したように、積和演算に用いる係数が偶数タップ対称型であるので、データ読出手段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
第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
また、第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
上記データ読出手段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-
係数メモリ41には連続するN個のデータに乗じるためのN/2(=12)個の係数a(0)〜a(11)が記憶されており、係数選択手段42は、データ読出手段30aによって読み出されたデータに対応する係数を係数メモリ41から選択的に読み出し、乗算器44a〜44dにそれぞれ出力する。
The
加算器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
次に、上記構成の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
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
この状態から、データ読出手段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
これらの読み出された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-
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
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-
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
これらの読み出された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-
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
ここで、各メモリブロックはデュアルポート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
上記書き込まれた各データは、次に各メモリブロックが読み出し指示されたときに読出可能となる。 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
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
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
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
このため、マルチプレクサが不要となり、また、乗算器の数も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
なお、偶数タップで非対称型の場合には、図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
上記実施形態では、計算対象のデータの読み出しとは別のタイミング(クロック)でデータ書き込みを一括に行っているが、図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
即ち、図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
また、第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
次に、図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-
続いて、図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-
また、第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
上記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
また、第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
次に、図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-
続いて、図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
上記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
また、第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
次に、図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-
続いて、図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-
また、第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
上記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
上記実施例は、新規データが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
バッファ制御手段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
次に、この構成のFIR型デジタルフィルタ70により、1/3デシメーション処理を行う場合の動作について説明する。
Next, the operation when the 1/3 decimation process is performed by the FIR
この場合、図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
これにより加算の組となる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
これにより、第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
次に、図13の(b)のように、第1メモリ群22および第2メモリ群23に対してアドレス1を指定し、バッファ25に対しては読み出しアドレス1、書き込みアドレス1を指定して、第1メモリ群22、第2メモリ群23およびバッファ25に対して読み出しを指示する。
Next, as shown in FIG. 13B,
これにより加算の組となる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
これにより、第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
最後に、図13の(c)のように、第1メモリ群22および第2メモリ群23に対してアドレス0を指定し、バッファ25に対しては読み出しアドレス2、書き込みアドレス0を指定して、第1メモリ群22、第2メモリ群23およびバッファ25に対して読み出しを指示する。
Finally, as shown in FIG. 13C, the
これにより加算の組となる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
これにより、第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
上記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
図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
この初期状態から、コントローラ30は、図14の(b)のように、第1メモリ群22および第2メモリ群23に対してアドレス2を指定してデータの読み出しを指示するとともにバッファ25に対してもアドレス22を指定し、その直後に第1メモリ群22とバッファッファ25に対してデータの書き込みを指示する。
From this initial state, the
これにより、前記同様に、加算の組となる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-
なお、第1メモリ群22および第2メモリ群23から読み出される中間のデータd(11)に対しては、積和演算部40におい、その加算結果に対し本来の係数の1/2が乗算される。
Note that the intermediate data d (11) read from 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
次に、図15(a)のように、第1メモリ群22および第2メモリ群23に対してアドレス1が指定されて、加算の組となる4個ずつのデータd(12)〜d(21)、d(1)〜d(10)が読み出されて積和演算部40に出力されて演算処理される。
Next, as shown in FIG. 15 (a),
さらに、図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
また、この3回のデータの読み出し時にはバッフア25に対してアドレス1が指定されて読み出し指示がなされ、その直後に第2メモリ群23に対する書き込み指示がなされる。これにより、第2メモリ群23の各メモリブロックのアドレス0には、データd(3)〜d(12)がそれぞれ書き込まれる。
Further, at the time of reading data three times, an
次に、図16の(a)のように、第1メモリ群22に対してアドレス1、第2メモリ群23に対してアドレス0が指定されてデータ読み出しが指示され、バッファ25に対してアドレス1が指定される。
Next, as shown in FIG. 16A,
これにより、加算の組となる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-
このとき、第1メモリ群22および第2メモリ群23から読み出される中間のデータd(12)に対しては、前記同様に、積和演算部40においてその加算結果に対して本来の係数の1/2が乗算される。
At this time, for the intermediate data d (12) read from the
また、第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
続いて、図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),
さらに、図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
また、このときバッファ25に対してアドレス0が指定されて読み出され、その直後に第2メモリ群23に対する書き込み指示がなされる。
At this time, the
これにより、第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
次に、図17の(b)のように、第1メモリ群22に対してアドレス0が指定され、第2メモリ群23に対してアドレス1が指定されデータ読み出しが指示されるとともに、バッファ25に対してアドレス0が指定され、その直後に第1メモリ群22とバッファ25に対する書き込みが指示される。
Next, as shown in FIG. 17B, the
これにより、第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
続いて、図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
さらに、図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
また、この読み出し時にはバッファ25に対してアドレス0が指定され読み出し指示がなされ、その直後に第2メモリ群23に対してデータの書き込みが指示される。
これにより、第2メモリ群23の各メモリブロックのアドレス2には、4個のデータd(5)〜d(14)がそれぞれ書き込まれる。
At the time of reading,
As a result, four pieces of data d (5) to d (14) are written in the
このときのデータ配列は、図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
次に、図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,
最後に、図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
この図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
図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
この初期状態から始めに図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
次に、図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
その次のステップでは、図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
次に、図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
次に、図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
続いて、図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
上記の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
(ステップ8)加算の組となる第1メモリ群22のアドレス1と第2メモリ群23のアドレス5の各データの読み出し(積和演算)。
(Step 8) Reading each data of the
(ステップ9)加算の組となる第1メモリ群22のアドレス5と第2メモリ群23のアドレス3の各データの読み出し(積和演算)および第2メモリ群23に対するバッファ25のアドレス2のデータd(27)を含むデータの書き込み。
(Step 9) Reading (data sum operation) of each data of the
(ステップ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
(Step 11) Reading each data of the
(ステップ12)加算の組となる第1メモリ群22のアドレス4と第2メモリ群23のアドレス2の各データの読み出し(積和演算)、および第2メモリ群23に対するバッファ25のアドレス2のデータd(26)を含むデータの書き込み。
(Step 12) Reading of each data of the
上記ステップ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
そして、この状態から、前記同様に次の処理が行われる。
(ステップ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
(ステップ14)加算の組となる第1メモリ群22のアドレス5と第2メモリ群23のアドレス1の各データの読み出し(積和演算)。
(Step 14) Reading of each data of the
(ステップ15)加算の組となる第1メモリ群22のアドレス3と第2メモリ群23のアドレス5の各データの読み出し(積和演算)および第2メモリ群23に対するバッファ25のアドレス0のデータd(29)を含む書き込み。
(Step 15) Reading of each data of the
(ステップ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
(ステップ17)加算の組となる第1メモリ群22のアドレス4と第2メモリ群23のアドレス0の各データの読み出し(積和演算)。
(Step 17) Reading of each data of the
(ステップ18)加算の組となる第1メモリ群22のアドレス2と第2メモリ群23のアドレス4の各データの読み出し(積和演算)および第2メモリ群23に対するバッファ25のアドレス1のデータd(28)を含むデータの書き込み。
(Step 18) Reading of each data of the
上記ステップ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
以上のステップ1〜18の処理で、48個の各データd(0)〜d(47)、データd(2)〜d(49)およびデータd(4)〜d(51)の積和演算結果が順次得られることになる。
In the
したがって、上記ステップ1〜18の処理を繰り返すことにより、1/2デシメーションでフィルタリング処理できる。
Therefore, the filtering process can be performed with 1/2 decimation by repeating the processes of
次に、上記したアドレス数6のメモリブロックとバッファ25を用いた構成で奇数タップ対称型の処理を説明する。
Next, an odd-tap symmetric type process using the above-described memory block having 6 addresses and a
図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
この状態から次の一連の処理がなされる。
(ステップ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
(ステップ102)加算の組となる第1メモリ群22と第2メモリ群23のアドレス3の各データの読み出し(積和演算)。
(Step 102) Reading of each data of the
(ステップ103)加算の組となる第1メモリ群22と第2メモリ群23のアドレス1の各データの読み出し(積和演算)および第2メモリ群23に対するバッファ25のアドレス3のデータd(25)によるアドレス1のデータ書き込み。
(Step 103) Reading of each data at the
上記ステップ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
(ステップ105)加算の組となる第1メモリ群22と第2メモリ群23のアドレス2の各データの読み出し(積和演算)。
(Step 105) Reading of each data of the
(ステップ106)加算の組となる第1メモリ群22と第2メモリ群23のアドレス0の各データの読み出し(積和演算)および第2メモリ群23に対するバッファ25のアドレス4のデータd(24)を含むデータ書き込み。
(Step 106) Reading (data sum operation) of each data at the
上記のステップ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
(ステップ108)加算の組となる第1メモリ群22のアドレス1と第2メモリ群23のアドレス5の各データの読み出し(積和演算)。
(Step 108) Reading out each data of the
(ステップ109)加算の組となる第1メモリ群22のアドレス5と第2メモリ群23のアドレス3の各データの読み出し(積和演算)および第2メモリ群23に対するバッファ25のアドレス1のデータd(27)を含むデータ書き込み。
(Step 109) Reading of each data of the
上記のステップ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
(ステップ111)加算の組となる第1メモリ群22のアドレス0と第2メモリ群23のアドレス4の各データの読み出し(積和演算)。
(Step 111) Reading of each data of the
(ステップ112)加算の組となる第1メモリ群22のアドレス4と第2メモリ群23のアドレス2の各データの読み出し(積和演算)および第2メモリ群23に対するバッファ25のアドレス2のデータd(26)を含むデータ書き込み。
(Step 112) Reading of each data of the
上記のステップ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
(ステップ114)加算の組となる第1メモリ群22のアドレス5と第2メモリ群23のアドレス1の各データの読み出し(積和演算)。
(Step 114) Reading of each data of the
(ステップ115)加算の組となる第1メモリ群22のアドレス3と第2メモリ群23のアドレス5の各データの読み出し(積和演算)および第2メモリ群23に対するバッファ25のアドレス5のデータd(29)を含むデータ書き込み。
(Step 115) Reading (data sum operation) of each data of the
上記のステップ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
(ステップ117)加算の組となる第1メモリ群22のアドレス4と第2メモリ群23のアドレス0の各データの読み出し(積和演算)。
(Step 117) Reading each data of the
(ステップ118)加算の組となる第1メモリ群22のアドレス2と第2メモリ群23のアドレス4の各データの読み出し(積和演算)および第2メモリ群23に対するバッファ25のアドレス0のデータd(28)を含むデータ書き込み。
(Step 118) Reading of each data of the
上記のステップ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
また、前記した各実施例では、第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
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)
前記データ記憶部は、
データの読み書きを独立に行えるアドレス数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.
前記データ記憶部は、
データの読み書きを独立に行えるアドレス数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.
前記連続する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メモリ群から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).
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 Expired - Lifetime 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 (2)
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 |
CN118074673B (en) * | 2024-04-25 | 2024-08-16 | 上海金卓科技有限公司 | Multi-bandwidth real-time switching filter, filtering method and chip |
-
2005
- 2005-03-22 JP JP2005081510A patent/JP4295234B2/en not_active Expired - Lifetime
Also Published As
Publication number | Publication date |
---|---|
JP2006270178A (en) | 2006-10-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP4054077A1 (en) | Interpolation filter system implemented by digital circuit | |
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 | |
JPS6165616A (en) | Symmetrical FIR digital filter | |
US4939684A (en) | Simplified processor for digital filter applications | |
KR101008782B1 (en) | A computer-readable recording medium on which a digital filter, a synthesizing apparatus, and a synthesizing program are recorded | |
JP4295234B2 (en) | FIR type digital filter | |
JP4388141B2 (en) | Shared resources for digital filters | |
US5886912A (en) | Processing elements connected in cascade having a controllable bypass | |
JPH0767063B2 (en) | Digital signal processing circuit | |
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 | |
JP3125672B2 (en) | Digital filter | |
JP2010011493A (en) | Digital filter | |
JP2004128858A (en) | Fir digital filter | |
JP4586114B1 (en) | Product-sum operation unit | |
KR100324729B1 (en) | Finite Shock Response Filter | |
JP3120435B2 (en) | Digital arithmetic circuit | |
JPH0795671B2 (en) | Digital Filter |
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 |