JP6311601B2 - 多段フィルタ処理装置及び方法 - Google Patents

多段フィルタ処理装置及び方法 Download PDF

Info

Publication number
JP6311601B2
JP6311601B2 JP2014519704A JP2014519704A JP6311601B2 JP 6311601 B2 JP6311601 B2 JP 6311601B2 JP 2014519704 A JP2014519704 A JP 2014519704A JP 2014519704 A JP2014519704 A JP 2014519704A JP 6311601 B2 JP6311601 B2 JP 6311601B2
Authority
JP
Japan
Prior art keywords
data
stage
filter
processing
coefficient
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
JP2014519704A
Other languages
English (en)
Other versions
JPWO2013183096A1 (ja
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.)
NEC Corp
Original Assignee
NEC 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 NEC Corp filed Critical NEC Corp
Priority to JP2014519704A priority Critical patent/JP6311601B2/ja
Publication of JPWO2013183096A1 publication Critical patent/JPWO2013183096A1/ja
Application granted granted Critical
Publication of JP6311601B2 publication Critical patent/JP6311601B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03HIMPEDANCE NETWORKS, e.g. RESONANT CIRCUITS; RESONATORS
    • H03H9/00Networks comprising electromechanical or electro-acoustic devices; Electromechanical resonators
    • H03H9/46Filters
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03HIMPEDANCE NETWORKS, e.g. RESONANT CIRCUITS; RESONATORS
    • H03H17/00Networks using digital techniques
    • H03H17/02Frequency selective networks
    • H03H17/04Recursive filters
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03HIMPEDANCE NETWORKS, e.g. RESONANT CIRCUITS; RESONATORS
    • H03H17/00Networks using digital techniques
    • H03H17/02Frequency selective networks
    • H03H17/04Recursive filters
    • H03H17/0416Recursive filters with input-sampling frequency and output-delivery frequency which differ, e.g. extrapolation; Anti-aliasing
    • H03H17/0427Recursive filters with input-sampling frequency and output-delivery frequency which differ, e.g. extrapolation; Anti-aliasing characterized by the ratio between the input-sampling and output-delivery frequencies
    • H03H17/0438Recursive filters with input-sampling frequency and output-delivery frequency which differ, e.g. extrapolation; Anti-aliasing characterized by the ratio between the input-sampling and output-delivery frequencies the ratio being integer
    • H03H17/045Recursive filters with input-sampling frequency and output-delivery frequency which differ, e.g. extrapolation; Anti-aliasing characterized by the ratio between the input-sampling and output-delivery frequencies the ratio being integer where the output-delivery frequency is lower than the input sampling frequency, i.e. decimation
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03HIMPEDANCE NETWORKS, e.g. RESONANT CIRCUITS; RESONATORS
    • H03H2220/00Indexing scheme relating to structures of digital filters
    • H03H2220/04Pipelined

Landscapes

  • Physics & Mathematics (AREA)
  • Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Mathematical Physics (AREA)
  • Acoustics & Sound (AREA)
  • Complex Calculations (AREA)

Description

本発明は、入力データに対して多段のフィルタ演算処理を実行することにより出力データを生成する多段フィルタ処理装置及び方法に関する。
無線信号処理において、干渉波、スプリアス等の信号に含まれる不要成分の除去のために、フィルタリング処理が用いられている。フィルタリング処理を行う回路として、アナログ回路を用いるアナログフィルタ回路とデジタル回路を用いるデジタルフィルタ回路とがあるが、近年ではデジタルフィルタ回路が多用されるようになっている。LSIの高速化等により、デジタル回路によって高精度且つ低コストでフィルタリング処理を行うことが可能となったためである。
デジタルフィルタの一種としてデジタルレート変換フィルタが存在する。デジタルレート変換フィルタは、デジタル化された中間周波数信号(IF信号)、ベースバンド信号等のサンプリングレートを調整し、同時にスプリアスの除去、エイリアシング等を防ぐ目的で利用される。デジタルレート変換フィルタのうち、元信号よりサンプリングレートを低くするために用いるものをデシメーションフィルタ、サンプリングレートを高くするために用いるものをインタポレーションフィルタという。
このようなデジタルレート変換フィルタにおいては、例えば入力データ及び出力データのレート比が高い場合に、演算量を削減するためにFIR(Finite Impulse Response)フィルタを直列且つ多段に接続する構成が多く利用されている。
例えば、特許文献1には、1/12のデシメーションフィルタと1/2のデシメーションフィルタを組み合わせて1/24のデシメーションフィルタを構成する多段フィルタ処理装置が開示されている。また、特許文献2には、1/16のデシメーションフィルタと1/4のデシメーションフィルタを組み合わせて、1/64のデシメーションフィルタを構成する多段フィルタ処理装置が開示されている。
また、従来の多段フィルタ処理装置を開示するものとして、特許文献3〜6が挙げられる。
特開2000−269785号公報(図8等参照) 特開2005−318204号公報(図3等参照) 特開2007−67646号公報 特開2006−260411号公報 特開2005−149009号公報 特開2005−128174号公報
図14は、一般的な多段フィルタ処理装置の第1の実装例を示している。本例においては、フィルタ演算処理を行う複数(3つ)のFIRフィルタ回路101,102,103が直列に接続されることにより、1/16のデシメーションフィルタが構成されている。
図15は、一般的な多段フィルタ処理装置の第2の実装例を示している。図16は、図15の例における処理の流れを示している。本例においては、1つの入力データに対して1つのFIRフィルタ回路111によりフィルタ演算処理を繰り返すことにより、1/16のデシメーションフィルタが構成されている。即ち、ある段(例えばステージ0)のフィルタ演算処理においてFIRフィルタ回路111が一定期間の入力データに対して行った演算結果は、一旦ローカルメモリ112に格納される。その後、次段(例えばステージ1)のフィルタ演算処理において、FIRフィルタ回路111は、ローカルメモリ112に格納された前段の演算結果に対してフィルタ演算処理を行う。
上記図14に示すような、FIRフィルタ回路を複数直列に接続する手法においては、連続的にデータ処理を行えるため、レイテンシが小さくなるというメリットがあるが、演算回路が大きくなるというデメリットがある。また、多段のデシメーションフィルタの場合には、後段のフィルタの方が前段のフィルタよりもデータレートが低いため、後段の演算回路の動作率が低くなり、演算効率が低くなるという問題がある。
また、上記図15及び図16に示すような、1つの回路でフィルタ処理を繰り返し実行する手法では、演算回路が小さくなるというメリットがあるが、レイテンシが大きくなること、ある程度大きな容量を有するローカルメモリ112が必要となる等のデメリットがある。
そこで、本発明は、多段フィルタ処理装置において処理効率の低下を招くことなく回路規模を縮小することを目的とする。
本発明の第1の態様は、入力データに対して複数のステージからなるフィルタ演算処理を実行することにより出力データを生成する多段フィルタ処理装置であって、前記各ステージにおける前記フィルタ演算処理を実行するフィルタ演算回路と、前記入力データ又は最終の前記ステージに至る前の前記ステージにおける前記フィルタ演算処理により生成される中間データを保持する処理データ保持回路と、前記入力データ又は前記中間データのデータ数を前記ステージ毎に測定するデータ数測定回路と、前記フィルタ演算処理を実行するに足る前記データ数を前記ステージ毎に規定する係数データを保持する係数データ保持回路と、前記フィルタ演算処理における前記ステージの切り替えを制御するものであって、前記係数データに基づいて前記データ数が現在の前記ステージにおける前記フィルタ演算処理を実行するに足るデータ数に達するまでの間、前記入力データ又は現在の前記ステージにおいて生成された前記中間データを前記処理データ保持回路に保持させ、前記データ数が前記フィルタ演算処理を実行するに足るデータ数に達したときに、当該処理データ保持回路に保持されていた全入力データ又は全中間データを前記フィルタ演算回路に入力し、現在の前記ステージにおける前記フィルタ演算処理を実行させるステージ切り替え制御回路とを備えるものである。
本発明の第2の態様は、入力データに対して複数のステージからなるフィルタ演算処理を実行することにより出力データを生成する多段フィルタ処理方法であって、前記入力データ又は最終の前記ステージに至る前の前記ステージにおける前記フィルタ演算処理により生成される中間データのデータ数を前記ステージ毎に測定するステップと、前記フィルタ演算処理を実行するに足る前記データ数を前記ステージ毎に規定する係数データを読み出すステップと、前記係数データに基づいて、前記データ数が現在の前記ステージにおける前記フィルタ演算処理を実行するに足るデータ数に達するまでの間、前記入力データ又は現在の前記ステージにおいて生成された前記中間データをメモリに保持するステップと、前記データ数が前記フィルタ演算処理を実行するに足るデータ数に達したときに、前記保持されていた全入力データ又は全中間データに対して現在の前記ステージの前記フィルタ演算処理を実行するステップとを備えるものである。
本発明によれば、多段フィルタ処理装置において処理効率の低下を招くことなく回路規模を縮小することが可能となる。
本発明の実施の形態1に係る多段フィルタ処理装置の構成を示す図である。 実施の形態1に係る多段フィルタ処理装置におけるフィルタ演算回路の具体的構成を例示する図である。 実施の形態1に係る多段フィルタ処理装置におけるデータ数測定回路の具体的構成を例示する図である。 実施の形態1に係る多段フィルタ処理装置における係数メモリ読み出し制御回路の具体的構成を例示する図である。 実施の形態1に係る多段フィルタ処理装置におけるローカルメモリ書き込み制御回路の具体的構成を例示する図である。 実施の形態1に係る多段フィルタ処理装置におけるローカルメモリ読み出し制御回路の具体的構成を例示する図である。 実施の形態1に係る多段フィルタ処理装置におけるローカルメモリ読み出し制御回路から生成されるローカルメモリ読み出しアドレス信号を例示する図である。 実施の形態1に係る多段フィルタ処理装置におけるデータの流れの例示する図である。 IIRフィルタの一般的な構成を例示する図である。 IIRフィルタの一般的な構成を例示する図である。 IIRフィルタにおける一般的なデータの流れを例示する図である。 IIRフィルタにおける一般的なデータの流れを例示する図である。 実施の形態1に係る多段フィルタ装置を用いたときのIIRフィルタにおけるデータの流れを例示する図である。 一般的な多段フィルタ処理装置の第1の実装例を示す図である。 一般的な多段フィルタ処理装置の第2の実装例を示す図である。 図15の例における処理の流れを示す図である。
実施の形態1
以下、図面を参照して本発明の実施の形態について説明する。図1は、本実施の形態に係る多段フィルタ処理装置1の構成を示している。多段フィルタ処理装置1は、入力データに対して複数のステージからなる多段のフィルタ演算処理を実行することにより、出力データを生成するものである。多段フィルタ処理装置1は、フィルタ演算回路2、処理データ保持回路3、データ数測定回路4、係数データ保持回路5、及びステージ切り替え制御回路6を有する。
フィルタ演算回路2は、各ステージにおいてフィルタ演算処理を実行する。フィルタ演算回路2は、外部からの入力データ、処理データ保持回路3からの読み出しデータ、読み出しデータのステージ番号、及び係数データ保持回路5からの係数データを入力し、入力データ、中間データ、ステージ番号、及び出力データを出力する。入力データは、フィルタ演算回路2によるフィルタ演算処理が施される前のデータである。中間データは、最終のステージに至る前の各ステージにおけるフィルタ演算処理により生成されるデータである。出力データは、最終のステージにおけるフィルタ演算処理により生成されるデータである。
処理データ保持回路3は、入力データ又は中間データを保持する。本実施の形態に係る処理データ保持回路3は、ローカルメモリ11、ローカルメモリ書き込み制御回路12、及びローカルメモリ読み出し制御回路13を有する。ローカルメモリ11は、入力データ又は中間データを格納する。ローカルメモリ書き込み制御回路12は、ローカルメモリ11の記憶領域を指定し所定の周期で循環するアドレス信号をステージ毎に生成し、当該アドレス信号に基づいて入力データ又は中間データをローカルメモリ11に格納する。ローカルメモリ読み出し制御回路13は、現在のステージに対応するアドレス信号に対応する記憶領域に格納された入力データ又は中間データを読み出し、フィルタ演算回路2に出力する。
データ数測定回路4は、入力データ又は中間データのデータ数をステージ毎に測定する。本実施の形態に係るデータ数測定回路4は、処理データ保持回路3から供給されるデータ数測定要求信号に基づいて、入力データ又は中間データのデータ数が現在のステージにおけるフィルタ演算処理を実行するに足るデータ数に達したか否かを判定し、達した場合にはステージ切り替え制御回路6にステージ切り替え要求信号を出力する。
係数データ保持回路5は、フィルタ演算処理を実行するに足るデータ数(以降、規定データ数と略記する)をステージ毎に規定する係数データを保持する。本実施の形態に係る係数データ保持回路5は、係数データを格納する係数メモリ14、及び現在のステージに対応する係数データを読み出し、フィルタ演算回路2に出力する係数メモリ読み出し制御回路15を有する。
ステージ切り替え制御回路6は、フィルタ演算回路2によるフィルタ演算処理のステージを切り替えるものである。ステージ切り替え制御回路6は、データ数測定回路4により測定されたデータ数が現在のステージにおける規定データ数に達するまでの間、入力データ又は中間データを処理データ保持回路3に保持させ、当該データ数が現在のステージの規定データ数に達したときに、当該保持されていた入力データ又は中間データをフィルタ演算回路2に入力し、フィルタ演算回路2に現在のステージのフィルタ演算処理を実行させる。
先ず、外部から供給された入力データは、フィルタ演算回路2を通してローカルメモリ書き込み制御回路12に入力され、ローカルメモリ11に書き込まれる。このとき、入力データは、ステージ0用の入力データとして書き込まれる。
その後、上記書き込まれたステージ0用の入力データは、ローカルメモリ読み出し制御回路13により読み出され、フィルタ演算回路2に出力される。これと同時に、係数メモリ読み出し制御回路15により係数メモリ14から読み出されたステージ0用の係数データがフィルタ演算回路2に供給される。フィルタ演算回路2は、ステージ0におけるフィルタ演算処理として、これらステージ0用の入力データ及び係数データに対して積和演算を実行し、その演算結果を内部のレジスタに格納する。
ステージ0において、上記積和処理が所定の回数繰り返された結果として得られる最終的な積和演算結果は、ステージ1のフィルタ演算処理の対象となる中間データとして、ローカルメモリ書き込み制御回路12に入力され、ローカルメモリ11に書き込まれる。このとき、このステージ1の中間データは、ステージ0の入力データとは別のアドレス範囲へ循環的に書き込まれる。
その後、ステージ1のフィルタ演算処理がステージ0と同様に行われ、その最終的な積和演算結果がステージ2のフィルタ演算処理の対象となる中間データとしてローカルメモリ11に書き込まれる。
このような処理がステージの段数分行われ、最終的なフィルタ演算処理の結果が出力データとして多段フィルタ処理装置1の外部に出力される。
ステージ0におけるフィルタ演算処理は、当該処理を実行するに足る入力データがローカルメモリ11に蓄積された時点、即ち入力データのデータ数がステージ0について設定された規定データ数に到達した時点で実行される。当該データ数のカウントは、データ数測定回路4により行われ、データ数が規定データ数に到達すると、その旨がステージ切り替え制御回路6に伝達される。これと同様に、ステージ1のフィルタ演算処理は、当該処理を実行するに足る中間データがローカルメモリ11に蓄積された時点で実行される。後段のステージにおける処理も同様に行われる。
上記構成により、共有される演算回路及び小規模なメモリによって各段のフィルタ演算処理を最適なタイミングで実行することが可能となる。これにより、処理効率を向上させ、回路規模を小さくすることが可能となる。
図2は、フィルタ演算回路2の具体的な構成を例示している。本例に係るフィルタ演算回路2は、演算結果レジスタ21、乗算器22、加算器23、セレクタ24,25,27、インクリメンタ26、フィルタ演算制御回路28等を有する。
演算結果レジスタ21は、多段フィルタ処理のステージ分だけ用意されている。書き込み・読み出しの対象となる演算結果レジスタ21は、フィルタ演算制御回路28により選択される。
読み出しデータ及び係数データは、乗算器22により乗算された後、加算器23により、0又は現在のステージに対応する演算結果レジスタ21が保持する値が加算される。当該積和演算結果は、演算結果レジスタ21に格納される。このようにして、連続して入力される読み出しデータ及び係数データの積和演算結果が演算結果レジスタ21に順次格納され、この値がFIRフィルタ演算の演算結果となる。
FIRフィルタ演算の演算結果と入力データとは調停され、セレクタ205によって選択され、入力データ、中間データ、又は出力データとして出力される。このとき、セレクタ27から出力される書き込みデータのステージ番号には、入力データが出力されるときには0が設定され、FIRフィルタ演算結果(中間データ又は出力データ)が出力されるときには現在ステージ番号に1を加算した値が設定される。
図3は、データ数測定回路4の具体的な構成を例示している。データ数測定回路4は、データ数カウントレジスタ31、繰り返し数保存レジスタ32、比較器35、加算器33、セレクタ34、データ数測定制御回路36等を有する。
データ数カウントレジスタ31及び繰り返し数保存レジスタ32は、多段フィルタ処理のステージ分だけ用意されている。書き込み・読み出しの対象となるレジスタ31,32は、データ数測定制御回路36により選択される。
データ数測定要求信号によりデータ数のカウントアップが指示されると、現在実行中のステージに対応するデータ数カウントレジスタ31の値に1が加算され、この加算された値がデータ数カウントレジスタ31に書き戻される。
繰り返し数保存レジスタ32には、フィルタ演算処理の実行に必要なステージ毎に設定されたデータ数(規定データ数)が格納されている。比較器35は、現在のステージのデータ数カウントレジスタ31の値と、繰り返し数保存レジスタ32の値とを比較し、結果が一致する場合にステージ切り替え要求信号を出力する。
図4は、係数メモリ読み出し制御回路15の具体的な構成を例示している。係数メモリ読み出し制御回路15は、係数カウントレジスタ41、係数開始アドレスレジスタ42、タップ数保存レジスタ43、インクリメンタ44、セレクタ45、比較器46、加算器47、係数アドレス生成制御回路49、FIFO回路48等を有する。
係数カウントレジスタ41、係数開始アドレスレジスタ42、及びタップ数保存レジスタ43は、多段フィルタ処理のステージ分だけ用意されている。書き込み・読み出しの対象となるレジスタ41,42,43は、アドレス生成制御回路49により選択される。
係数開始アドレスレジスタ42には、各ステージにおける係数メモリ14の開始アドレスが格納されている。タップ数保存レジスタ43には、各ステージにおける規定データ数に対応するタップ数から1を引いた値が格納されている。係数カウントレジスタ41の値と係数開始アドレスレジスタ42の値とが加算されることにより、係数メモリアドレス信号が生成される。ここで、タップ数とは、1回のフィルタ演算処理における繰り返し回数である。1回のフィルタ演算処理におけるタップ数と規定データ数とは、通常一致するが、例えば下記式(1)のFIRフィルタを実行する場合、規定データ数はタップ数の2倍となる。
Figure 0006311601
xi:入力信号、yj:出力信号、ci:フィルタ係数、N:タップ数
先ず、係数カウントレジスタ41に0が書き込まれ、アドレス生成が開始される。次に、インクリメンタ44が係数カウントレジスタ41に格納されている値に1を加算し、その加算結果が係数カウントレジスタ41に格納される。比較器46は、係数カウントレジスタ41の値とタップ数保存レジスタ43の値とを比較し、一致する場合には、係数カウントレジスタ41に再び0がロードされる。このような構成により、ステージ毎に設定されたアドレス範囲を循環するようなリングバッファを形成することが可能になる。
係数メモリ14から読み出された係数データ入力信号は、FIFO回路48に一旦蓄えられ、係数データ出力信号として出力される。係数アドレス生成制御回路49は、FIFO回路48がオーバーフローしないようにアドレスの生成を制御する。
図5は、ローカルメモリ書き込み制御回路12の具体的な構成を例示している。ローカルメモリ書き込み制御回路12は、書き込みデータカウントレジスタ51、書き込み開始アドレスレジスタ52、バッファ長保存レジスタ53、インクリメンタ54、セレクタ55、比較器56、加算器57、書き込みアドレス生成制御回路59、FIFO回路58等を有する。
書き込みデータカウントレジスタ51、書き込み開始アドレスレジスタ52、及びバッファ長保存レジスタ53は、多段フィルタ処理のステージ分だけ用意されている。書き込み・読み出しの対象となるレジスタ51,52,53は、アドレス生成制御回路59により選択される。
書き込み開始アドレスレジスタ52には、各ステージにおける書き込みメモリの開始アドレスが格納されている。バッファ長保存レジスタ53には、各ステージにおけるローカルメモリのバッファ長から1を引いた値が格納されている。
書き込みカウントレジスタ51の値と書き込み開始アドレスレジスタ52の値とが加算されることにより、ローカルメモリ書き込みアドレス信号が生成される。
先ず、書き込みデータカウントレジスタ51に0が書き込まれ、アドレス生成が開始される。次に、インクリメンタ54が書き込みデータカウントレジスタ51に格納されている値に1を加算し、その加算結果が書き込みデータカウントレジスタ51に格納される。比較器56は、書き込みデータカウントレジスタ51の値とバッファ長保存レジスタ53の値とを比較し、一致する場合には、書き込みデータカウントレジスタ51に再び0がロードされる。このような構成により、ステージ毎に設定されたアドレス範囲を循環するようなリングバッファを形成することが可能になる。
フィルタ演算回路2から出力された入力データ又は中間データは、FIFO回路58に一旦蓄えられ、ローカルメモリ書き込みアドレス信号と同期して、ローカルメモリ11に出力される。書き込みアドレス生成制御回路59は、FIFO回路58がオーバーフローしないようにアドレスの生成を制御する。
ローカルメモリ11からのデータの読み出しにおいては、1回のフィルタ演算毎に読み出すデータを少しずつずらしながら、同じデータを繰り返し読み出す必要がある。そのために、ローカルメモリ読み出し制御回路13は、係数メモリ読み出し制御回路15及びローカルメモリ書き込み制御回路12よりも若干複雑な構成となる。
図7は、ローカルメモリ読み出し制御回路13から生成されるローカルメモリ読み出しアドレス信号を例示している。本例に係るローカルメモリ読み出しアドレス信号は、レート変換率が1/2のデシメーションフィルタの場合であって、フィルタ演算処理の規定データ数が12、ローカルメモリのバッファ長が16と設定された場合のものである。ローカルメモリ11のバッファ長は、常に規定データ数と同じか、それ以上でなければならない。
最初のフィルタ演算処理においては、0,1,2,3,〜10,11という12個のアドレスに格納されたデータを読み出して演算を行う。次のフィルタ演算処理においては、レート変換率が1/2であるため、読み出しアドレスを2つずらし、2,3,4,5,〜12,13という12個のアドレスに格納されたデータを読み出して演算を行う。次のフィルタ演算処理においては、4,5,6,7,〜14,15となり、その次のフィルタ演算処理においては、バッファ長が16であるので、アドレスが16で剰余した値となり、6,7,8,9,〜15,0,1となる。
図6は、ローカルメモリ読み出し制御回路13の具体的な構成例を示す。ローカルメモリ読み出し制御回路13は、読み出しデータカウントレジスタ61、タップ数保存レジスタ62、通常ステップレジスタ63、最終ステップレジスタ64、バッファ長保存レジスタ65、読み出しアドレスレジスタ66、読み出し開始アドレスレジスタ67、インクリメンタ68、セレクタ69,71、比較器70、加算器72,74、剰余演算回路73、FIFO回路75、読み出しアドレス生成制御回路76等を有する。
読み出しデータカウントレジスタ61、タップ数保存レジスタ62、通常ステップレジスタ63、最終ステップレジスタ64、バッファ長保存レジスタ65、読み出しアドレスレジスタ66、及び読み出し開始アドレスレジスタ67は、多段フィルタ処理のステージ分だけ用意されている。書き込み・読み出しの対象となるレジスタ61,62,63,64,65,66、67は、読み出しアドレス生成制御回路76により選択される。
読み出し開始アドレスレジスタ67には、各ステージにおける読み出しメモリの開始アドレスが格納されており、図7の例では0となる。バッファ長保存レジスタ65には、各ステージにおけるフィルタ演算のバッファ長が格納されており、図7の例では16となる。タップ数保存レジスタ62には、各ステージにおける規定データ数に対応するタップ数から1を引いた値が格納されており、図7の例では11となる。通常ステップレジスタ63には、通常時の読み出しアドレスの差が格納されており、図7の例では1となる。最終ステップレジスタ64には、フィルタ演算終了時の読み出しアドレスの差にバッファ長を加算してバッファ長で剰余演算を行った値が格納されており、図7の例では、7となる。
読み出しアドレスレジスタ66の値と読み出し開始アドレスレジスタ67の値とが加算されることにより、ローカルメモリ読み出しアドレス信号が生成される。
先ず、読み出しデータカウントレジスタ61及び読み出しアドレスレジスタ66に0が書き込まれ、アドレス生成が開始される。読み出しデータカウントレジスタ61及び読み出しアドレスレジスタ66の更新は同時に行われる。
読み出しデータカウントレジスタ61は、インクリメンタ68によってインクリメントされ、タップ数保存レジスタ62に格納された値と一致すると0にクリアされる。つまり、タップ数周期で同じ値を繰り返すカウンタとなっている。
通常は、読み出しアドレスレジスタ66の値に通常ステップレジスタ63の値を加算し、剰余演算回路73によりバッファ長保存レジスタ65に格納された値で剰余演算し、その結果により読み出しアドレスレジスタ66の値が更新される。しかし、読み出しデータカウントレジスタ61の値とタップ数保存レジスタ62の値とが一致するときは、通常ステップレジスタ63の値を用いずに、最終ステップレジスタ64の値が用いられる。
このような構成にすることによって、ステージ毎に設定されたアドレス範囲を循環し、且つフィルタ演算処理毎に値をずらすようなアドレス生成が可能となる。
ローカルメモリ11から読み出された読み出しデータは、FIFO回路75に一旦蓄えられ、フィルタ演算回路2に出力される。このとき、FIFO回路75がオーバーフローしないようにアドレス生成が制御される。
以下に、多段フィルタ処理装置1の詳細な動作を例示する。フィルタ演算回路2では、連続する読み出しデータ及び係数データを用いてFIRフィルタ演算が行われ、その演算結果は、当該読み出しデータのステージ番号に相当する演算結果レジスタ21に格納される。演算結果レジスタ21に格納されたFIRフィルタ演算結果と、入力データ又は中間データとは、フィルタ演算回路2内にあるアービタで調停され、入力データ、中間データ、又は出力データとして出力される。このとき、調停の結果、入力データがそのまま入力データとして出力されるときは、ステージ番号には0が設定される。一方、演算結果レジスタの値が中間データとして出力されるときは、読み出しデータステージ番号の値に1を加算した値がデータステージ番号として設定される。
ローカルメモリ書き込み制御回路12では、複数のパラメータレジスタのうちステージ番号に対応するパラメータレジスタを選択し、そのパラメータの値に従って、フィルタ演算回路2から供給された入力データ又は中間データをローカルメモリ11に格納する。このとき、ローカルメモリ11の一定のアドレス範囲に循環的にデータが格納される。同時に、ローカルメモリ書き込み制御回路12から、ローカルメモリ11に書き込まれたデータ数をステージ番号毎に測定するためのデータ数測定要求信号がデータ数測定回路4に出力される。
データ数測定回路4では、ステージ番号毎に、ローカルメモリ11に格納された入力データ又は中間データのデータ数が測定される。そして、当該データ数がそのステージにおいてフィルタ演算処理を実行するために必要な数(規定データ数)に到達したことが検出されると、ステージ切り替え要求信号が出力される。
ステージ切り替え制御回路6は、ステージ切り替え要求信号を入力すると、ローカルメモリ読み出し制御回路13及び係数メモリ読み出し制御回路15に対して、ステージ切り替え制御信号を出力する。
ローカルメモリ読み出し制御回路13は、入力されるステージ切り替え制御信号が指定するステージに対応するパラメータを用いて、ローカルメモリ11から連続的に入力データ又は中間データを読み出し、これらの読み出しデータ及びステージ番号をフィルタ演算回路2に出力する。
係数メモリ読み出し制御回路15は、ステージ番号に対応するパラメータを用いて係数メモリ14から連続的に係数データを読み出し、フィルタ演算回路2に出力する。
次に、全体的なデータの流れを具体的に例示する。先ず、入力データに対してステージ0のフィルタ演算処理が行われる。多段フィルタ処理回路1に入力された入力データは、フィルタ演算回路2を通じてローカルメモリ書き込み制御回路12に入力される。
ローカルメモリ書き込み制御回路12は、入力データをステージ0用のパラメータを用いてローカルメモリ11に書き込むと同時に、ステージ0用のデータ数測定要求信号を出力する。
データ数測定回路4は、ステージ0用のデータ数カウントレジスタ31をインクリメントし、当該インクリメントされる値が予め指定されたデータ数(規定データ数)と一致するときは、ステージ切り替え要求信号を出力する。
ステージ切り替え制御回路6は、ステージ切り替え要求信号を入力すると、ステージ0用のステージ切り替え制御信号をローカルメモリ読み出し制御回路13及び係数メモリ読み出し制御回路15に出力する。
ローカルメモリ読み出し制御回路13は、ステージ0用のパラメータレジスタを用いて、ローカルメモリ11からデータを読み出し、この読み出しデータをフィルタ演算回路2に出力する。これと同時に、読み出しデータのステージ番号として0を出力する。
係数メモリ読み出し制御回路15は、ステージ0用のパラメータレジスタを用いて、係数メモリ14から係数データを読み出し、フィルタ演算回路2に出力する。
フィルタ演算回路2は、入力された読み出しデータ及び係数データを用いてFIRフィルタ演算を行い、ステージ0用の演算結果レジスタ21にその演算結果を格納する。FIRフィルタ演算が終了すると、その演算結果を中間データとして、ローカルメモリ書き込み制御回路12に出力する。これと同時に、現在のステージ番号に1を加算した値である1が出力される。
ローカルメモリ書き込み制御回路12は、上記演算結果を、ステージ1用のパラメータを用いてローカルメモリ11に書き込むと同時に、ステージ1用のデータ数測定要求信号を出力する。
データ数測定回路4は、ステージ1用のデータ数カウントレジスタ31をインクリメントし、このインクリメントされた値が予め指定されたデータ数(規定データ数)と一致するときは、ステージ切り替え要求信号を発行する。
ステージ切り替え制御回路6は、ステージ切り替え要求信号を入力すると、ステージ1用のステージ切り替え制御信号をローカルメモリ読み出し制御回路13及び係数メモリ読み出し制御回路15に発行する。
ローカルメモリ読み出し制御回路13は、ステージ1用のパラメータレジスタを用いて、ローカルメモリ11からデータを読み出し、この読み出しデータをフィルタ演算回路2に出力する。これと同時に、読み出しデータのステージ番号として1を出力する。
係数メモリ読み出し制御回路15は、ステージ1用のパラメータレジスタを用いて、係数メモリ14から係数データを読み出し、フィルタ演算回路2に出力する。
フィルタ演算回路2は、入力された読み出しデータ及び係数データを用いて、FIRフィルタを行い、ステージ1用の演算結果レジスタ21にその演算結果を格納する。FIRフィルタ演算が終了すると、その演算結果を中間データとして、ローカルメモリ書き込み制御回路12に出力する。これと同時に、現在のステージ番号に1を加算した値である2が出力される。
以後同様の処理を繰り返すことにより、各ステージのFIRフィルタ演算が行われる。フィルタ演算回路2において、最終段のFIRフィルタ演算が終了すると、その演算結果が出力データとして外部に出力される。
上記構成によれば、ローカルメモリ11の記憶領域は、次段のフィルタ演算処理に必要な分だけ残されていればよい。そのため、所定の記憶領域内に上記入力データ又は中間データを循環させて格納するようにローカルメモリ11を実装することにより、ローカルメモリ11の回路規模を最小限に抑えることが可能になる。
図8は、上記多段フィルタ処理装置1におけるデータの流れの例示している。本例においては、ステージ0の演算結果が4つたまったらステージ1のフィルタ処理を実行し、ステージ1の演算結果が2つたまったらステージ2の処理を実行する。
このような構成とし、且つローカルメモリ11に格納するデータを一定のアドレス範囲に循環的に格納することにより、ローカルメモリ11に保存されるデータ量を最小にすることが可能となり、ローカルメモリ11のサイズを最小化できる。また、ステージ0、ステージ1、ステージ2のフィルタ処理を順次行うことにより、繰り返し処理を行う場合に比べレイテンシを最小化することができる。
また、本発明の他の応用例として、IIRフィルタの処理の効率化がある。図9及び図10は、IIRフィルタの一般的な構成を例示している。このIIRフィルタは、図10に示すように、前段と後段の処理に分解することができ、これにより多段フィルタとすることができる。このようなIIRフィルタにおいては、通常のFIRフィルタと異なり、演算結果を次のフィルタ演算処理に用いるため、フィルタの演算がパイプライン処理されていると、どうしてもレイテンシが発生し、次段のフィルタ演算処理を実行するまでに空き時間が必要となる。
図11及び図12は、IIRフィルタにおける一般的なデータの流れを例示している。図11は、前段及び後段の両方に演算回路を持ち、演算をパラレルに実行する場合を示している。図12は、前段及び後段で演算回路を共有し、演算をシリアルに行う場合を示している。これらの場合、IIRフィルタの演算処理時においてパイプライン処理に伴う一定の空き時間が発生し、処理効率が低下する。
図13は、本実施の形態に係る多段フィルタ装置1を用いたときのIIRフィルタにおけるデータの流れを例示している。この場合、IIRフィルタの前段処理を行い、その空き時間に後段処理を行うことができるので、処理効率の低下を防ぐことができる。このように、本実施の形態によれば、多段フィルタ処理の効率を向上させると共に、回路規模の削減、省面積化等を実現することができる。
尚、本発明は上記実施の形態に限られるものではなく、趣旨を逸脱しない範囲で適宜変更することが可能なものである。
以上、実施の形態を参照して本願発明を説明したが、本願発明は上記によって限定されるものではない。本願発明の構成や詳細には、発明のスコープ内で当業者が理解し得る様々な変更をすることができる。
この出願は、2012年6月8日に出願された日本出願特願2012−131270を基礎とする優先権を主張し、その開示の全てをここに取り込む。
1 多段フィルタ処理装置
2 フィルタ演算回路
3 処理データ保持回路
4 データ数測定回路
5 係数データ保持回路
6 ステージ切り替え制御回路
11 ローカルメモリ
12 ローカルメモリ書き込み制御回路
13 ローカルメモリ読み出し制御回路
14 係数メモリ
15 係数メモリ読み出し制御回路
21 演算結果レジスタ
22 乗算器
23,33,47,57,72,74 加算器
24,25,27,34,45,55,69,71 セレクタ
26,44,54,68 インクリメンタ
28 フィルタ演算制御回路
31 データ数カウントレジスタ
32 繰り返し数保存レジスタ
35,46,56,70 比較器
36 データ数測定制御回路
41 係数カウントレジスタ
42 係数開始アドレスレジスタ
43 タップ数保存レジスタ
48,58,75 FIFO
49 係数アドレス生成制御回路
51 書き込みデータカウントレジスタ
52 書き込み開始アドレスレジスタ
53 バッファ長保存レジスタ
59 書き込みアドレス生成制御回路
61 読み出しデータカウントレジスタ
62 タップ数保存レジスタ
63 通常ステップレジスタ
64 最終ステップレジスタ
65 バッファ長保存レジスタ
66 読み出しアドレスレジスタ
67 読み出し開始アドレスレジスタ
73 剰余演算回路
76 読み出しアドレス生成制御回路

Claims (5)

  1. 入力データに対して複数のステージからなるフィルタ演算処理を実行することにより出力データを生成する多段フィルタ処理装置であって、
    前記各ステージにおける前記フィルタ演算処理を実行するフィルタ演算手段と、
    前記入力データ又は最終の前記ステージに至る前の前記ステージにおける前記フィルタ演算処理により生成される中間データを保持する処理データ保持手段と、
    前記入力データ又は前記中間データのデータ数を前記ステージ毎に測定するデータ数測定手段と、
    前記フィルタ演算処理を実行するに足る前記データ数を前記ステージ毎に規定する係数データを保持する係数データ保持手段と、
    前記フィルタ演算処理における前記ステージの切り替えを制御するものであって、前記係数データに基づいて前記データ数が現在の前記ステージにおける前記フィルタ演算処理を実行するに足るデータ数に達するまでの間、前記入力データ又は現在の前記ステージにおいて生成された前記中間データを前記処理データ保持手段に保持させ、前記データ数が前記フィルタ演算処理を実行するに足るデータ数に達したときに、当該処理データ保持手段に保持されていた全入力データ又は全中間データを前記フィルタ演算手段に入力し、現在の前記ステージにおける前記フィルタ演算処理を実行させるステージ切り替え制御手段と、
    を備え、
    前記フィルタ演算手段は、
    前記全ステージ分のレジスタを備え、
    前記処理データ保持手段から読み出された前記入力データ又は前記中間データと前記係数データとの積和演算結果を、現在の前記ステージに対応する前記レジスタに格納し、
    前記入力データ又は前記レジスタに格納されたデータのうちいずれかをセレクタにより選択し、
    当該選択されたデータと共に当該現在のステージを示すデータを出力する、
    多段フィルタ処理装置。
  2. 前記処理データ保持手段は、
    前記入力データ又は前記中間データを、所定の物理的記憶領域内に所定の周期で循環するように格納する、
    請求項1に記載の多段フィルタ処理装置。
  3. 前記処理データ保持手段は、
    前記入力データ又は前記中間データを格納するローカルメモリと、
    前記ローカルメモリの記憶領域を指定し所定の周期で循環するアドレス信号を前記ステージ毎に生成し、当該アドレス信号に基づいて前記入力データ又は前記中間データを前記ローカルメモリに格納するローカルメモリ書き込み制御手段と、
    現在の前記ステージに対応する前記アドレス信号に対応する前記記憶領域に格納された前記入力データ又は前記中間データを読み出し、前記フィルタ演算手段に供給するローカルメモリ読み出し制御手段と、
    を備える請求項2に記載の多段フィルタ処理装置。
  4. 前記係数データ保持手段は、
    前記係数データを格納する係数メモリと、
    現在の前記ステージに対応する前記係数データを読み出し、前記フィルタ演算手段に供給する係数メモリ読み出し制御手段と、
    を備える請求項1〜3のいずれか1項に記載の多段フィルタ処理装置。
  5. 入力データに対して複数のステージからなるフィルタ演算処理を実行することにより出力データを生成する多段フィルタ処理方法であって、
    前記入力データ又は最終の前記ステージに至る前の前記ステージにおける前記フィルタ演算処理により生成される中間データのデータ数を前記ステージ毎に測定するステップと、
    前記フィルタ演算処理を実行するに足る前記データ数を前記ステージ毎に規定する係数データを読み出すステップと、
    前記係数データに基づいて、前記データ数が現在の前記ステージにおける前記フィルタ演算処理を実行するに足るデータ数に達するまでの間、前記入力データ又は現在の前記ステージにおいて生成された前記中間データをメモリに保持するステップと、
    前記データ数が前記フィルタ演算処理を実行するに足るデータ数に達したときに、前記保持されていた全入力データ又は全中間データに対して現在の前記ステージの前記フィルタ演算処理を実行するステップとを有し、
    前記ステージのそれぞれにおける前記フィルタ演算処理は、
    前記メモリから読み出された前記入力データ又は前記中間データと前記係数データとの積和演算結果を、各ステージに対応して設けられたレジスタのうち、現在の前記ステージに対応するレジスタに格納し、
    前記入力データ又は前記レジスタに格納されたデータのうちいずれかをセレクタにより選択し、
    当該選択されたデータと共に当該現在のステージを示すデータを出力することを含む、
    多段フィルタ処理方法。
JP2014519704A 2012-06-08 2012-12-19 多段フィルタ処理装置及び方法 Active JP6311601B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2014519704A JP6311601B2 (ja) 2012-06-08 2012-12-19 多段フィルタ処理装置及び方法

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
JP2012131270 2012-06-08
JP2012131270 2012-06-08
JP2014519704A JP6311601B2 (ja) 2012-06-08 2012-12-19 多段フィルタ処理装置及び方法
PCT/JP2012/008113 WO2013183096A1 (ja) 2012-06-08 2012-12-19 多段フィルタ処理装置及び方法

Publications (2)

Publication Number Publication Date
JPWO2013183096A1 JPWO2013183096A1 (ja) 2016-01-21
JP6311601B2 true JP6311601B2 (ja) 2018-04-18

Family

ID=49711517

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2014519704A Active JP6311601B2 (ja) 2012-06-08 2012-12-19 多段フィルタ処理装置及び方法

Country Status (3)

Country Link
US (1) US9673780B2 (ja)
JP (1) JP6311601B2 (ja)
WO (1) WO2013183096A1 (ja)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP7078129B2 (ja) * 2018-10-24 2022-05-31 富士通株式会社 演算処理装置及び演算処理装置の制御方法
JP7299134B2 (ja) * 2019-11-05 2023-06-27 ルネサスエレクトロニクス株式会社 データ処理装置及びその動作方法、プログラム

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH06103825B2 (ja) * 1986-12-17 1994-12-14 横河電機株式会社 ストレ−ジ回路
US5157395A (en) * 1991-03-04 1992-10-20 Crystal Semiconductor Corporation Variable decimation architecture for a delta-sigma analog-to-digital converter
JP2000269785A (ja) 1999-03-17 2000-09-29 Hitachi Ltd ディジタルフィルタ、復調回路、およびそれを用いた無線端末装置
US6470365B1 (en) * 1999-08-23 2002-10-22 Motorola, Inc. Method and architecture for complex datapath decimation and channel filtering
JP4364598B2 (ja) 2003-10-22 2009-11-18 株式会社神戸製鋼所 フィルタ処理装置,フィルタ処理方法及びそのプログラム
JP4273323B2 (ja) 2003-11-13 2009-06-03 セイコーエプソン株式会社 積和演算回路
JP2005318204A (ja) 2004-04-28 2005-11-10 Matsushita Electric Ind Co Ltd デジタルフィルタ
US7472150B2 (en) * 2004-09-09 2008-12-30 Broadcom Corporation Method and system for time sharing N consecutive half-band decimating-by-2-filters using a single filter
JP2006260411A (ja) * 2005-03-18 2006-09-28 Japan Radio Co Ltd 信号処理装置およびそれを利用した通信機器
JP2007067646A (ja) 2005-08-30 2007-03-15 Oki Electric Ind Co Ltd サンプリングレート変換方法及びその回路
JP5059508B2 (ja) * 2007-07-26 2012-10-24 ルネサスエレクトロニクス株式会社 マイクロプロセッサ
TWI390841B (zh) * 2009-10-14 2013-03-21 Novatek Microelectronics Corp 多速率濾波器組
TWI482427B (zh) * 2010-03-17 2015-04-21 Novatek Microelectronics Corp 分時降頻濾波器與分時降頻濾波方法

Also Published As

Publication number Publication date
WO2013183096A1 (ja) 2013-12-12
JPWO2013183096A1 (ja) 2016-01-21
US9673780B2 (en) 2017-06-06
US20150127696A1 (en) 2015-05-07

Similar Documents

Publication Publication Date Title
JP5544240B2 (ja) マルチmacアーキテクチャにおける低電力firフィルタ
KR100893740B1 (ko) 데시메이션 필터
WO2021056711A1 (zh) 一种用数字电路实现的插值滤波器系统
KR20080053327A (ko) 디지털 필터를 구현하는 집적 회로, 디지털 필터 구현방법, 캐스케이드 디지털 필터 구현 방법 및 컴퓨터판독가능 매체
JP3066241B2 (ja) ディジタルフィルタ及び同ディジタルフィルタを用いたオーバサンプリング型アナログ/ディジタル変換器
US10949493B2 (en) Multi-functional computing apparatus and fast fourier transform computing apparatus
JP6311601B2 (ja) 多段フィルタ処理装置及び方法
JP2008021119A (ja) デジタルフィルタおよびこれを用いた画像処理装置
JPWO2008018197A1 (ja) デジタルフィルタ、その合成装置、合成プログラム、及び合成プログラム記録媒体
KR101584917B1 (ko) 멀티 스테이지 필터 장치 및 그것을 이용한 필터링 방법
JP5262248B2 (ja) 積和演算回路
JP4464380B2 (ja) デジタルフィルタ
JP6262621B2 (ja) 画像の拡大縮小処理装置および画像の拡大縮小処理方法
US9621130B2 (en) Configurable generic filter hardware block and methods
US20240056058A1 (en) Fir filter, filtering method by fir filter, and non-transitory computer readable medium storing control program
JP2005353094A (ja) 積和演算器
JP2005149517A (ja) 積和演算器
JP2001177378A (ja) Firデジタルフィルタ
CN108140017B (zh) 用于线性相位有限脉冲响应抽取滤波器的方法和装置
JP2006197637A (ja) ディジタルフィルタおよび情報通信機器
JP2012085177A (ja) デシメータ回路及びデシメータ回路の演算方法
Zhang et al. An efficient VLSI architecture for the Rader algorithm based DFT prime-factor
WO2021008711A1 (en) Advanced finite impulse response system and method for real coefficients and complex data
JPH10322164A (ja) ディジタルフィルタ
JP2005149518A (ja) 積和演算器

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20151111

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20170131

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20170330

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20170829

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20171024

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: 20180220

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20180305

R150 Certificate of patent or registration of utility model

Ref document number: 6311601

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150