【0008】
[第1の実施形態]
図1は、本発明の第1の実施形態に係るデジタルフィルタ回路100の構成例を示すブロック図である。デジタルフィルタ回路100は、周波数領域でフィルタ処理を行う周波数領域フィルタ回路である。具体的には、デジタルフィルタ回路100は、まず入力データとして入力する時間領域上の信号をFFTにより周波数領域上のデータに変換した後にフィルタ処理を実施する。その後、デジタルフィルタ回路100は、IFFTにより時間領域上の信号データに再変換して出力データとして出力する。
デジタルフィルタ回路100は、例えば、CPU(Central Processing Unit)などの上位回路(図示せず)から与えられるオーバーラップ数設定信号28を参照して、オーバーラップ数を決定する。
デジタルフィルタ回路100は、オーバーラップ付加回路10と、FFT回路11と、フィルタ演算回路12と、IFFT回路13と、オーバーラップ除去回路14と、クロック生成回路15と、を少なくとも備える。
オーバーラップ付加回路10は、時間領域上の入力信号である入力データから、N個のデータからなるブロックを順次生成し、FFT回路11へ出力する。このとき、オーバーラップ付加回路10は、各ブロックに対して、直前のブロックとM個のデータだけオーバーラップさせる。なお、N、Mはともに正整数である。オーバーラップするデータ数Mは、オーバーラップ数設定信号28に基づいて決定される。オーバーラップ付加回路10は、クロックDに同期して入力データを入力する。また、オーバーラップ付加回路10は、フィルタクロック25に同期して生成したブロックをFFT回路11に出力する。
なお、オーバーラップ付加回路10は、例えば、2ポートメモリにより構成することができる。このとき、2ポートメモリへの書き込みはクロックDに同期して行い、2ポートメモリからの読み出しはフィルタクロック25に同期して行えばよい。
FFT回路11は、オーバーラップ付加回路10から出力される、M個のデータがオーバーラップされた時間領域上の入力信号に対して、FFTを行い、周波数領域上の信号に変換して、フィルタ演算回路12へ出力する。FFT回路11は、フィルタクロック25に同期して動作する。
フィルタ演算回路12は、FFT回路11によって変換された周波数領域上の信号に対してフィルタ処理を行い、IFFT回路13へ出力する。例えば、デジタルフィルタ回路100が通信チャネルにおける信号歪みの等化処理を実行する場合、フィルタ演算回路12は、複素数乗算器で構成することができる。フィルタ演算回路12は、フィルタクロック25に同期して動作する。
IFFT回路13は、フィルタ演算回路12から出力されるフィルタ処理後の周波数領域上の信号に対して、IFFTを行い、時間領域上の信号に再変換して、オーバーラップ除去回路14へ出力する。IFFT回路13は、フィルタクロック25に同期して動作する。
オーバーラップ除去回路14は、IFFT回路13によって再変換された時間領域上の信号であるN個のデータからなる各ブロックの両端から合計M個のデータを除去して、ブロックの中央部分のみを取り出し、出力データとして出力する。除去するデータ数Mは、オーバーラップ数設定信号28に基づいて決定される。
オーバーラップ除去回路14は、フィルタクロック25に同期して、IFFT回路13からデータを入力する。また、オーバーラップ除去回路14は、クロックDに同期して、出力データを出力する。
なお、オーバーラップ除去回路14は、例えば、2ポートメモリにより構成することができる。このとき、2ポートメモリへの書き込みはフィルタクロック25に同期して行い、2ポートメモリからの読み出しはクロックDに同期して行えばよい。
クロック生成回路15は、クロックSから、新たなクロック信号であるフィルタクロック25を生成し、オーバーラップ付加回路10、FFT回路11、フィルタ演算回路12、IFFT回路13、およびオーバーラップ除去回路14へ出力する。
クロック生成回路15は、フィルタクロック25の周波数を、入力するオーバーラップ数設定信号28に基づいて決定する。
なお、クロックSの周波数がフィルタクロック25の周波数よりも高い場合、クロック生成回路15は、例えば、分周回路で構成し、クロックSを分周することで、フィルタクロック25を生成することができる。一方、クロックSの周波数がフィルタクロック25の周波数よりも低い場合、クロック生成回路15は、例えば、PLL(Phase Locked Loop)回路で構成し、クロックSを逓倍することで、フィルタクロック25を生成することができる。
以下、
図1に示すデジタルフィルタ回路100の動作について、
図2および
図3を参照して説明する。
図2は、
図1に示すデジタルフィルタ回路の動作の一例を示す動作図である。
図3は、
図1に示すデジタルフィルタ回路の動作の一例を示すタイミング図である。以下の説明において、処理ステップ(1)〜(5)は、
図2および
図3における処理ステップ(1)〜(5)にそれぞれ対応する。
(1)オーバーラップ付加処理
オーバーラップ付加回路10は、時間領域上の入力信号である入力データから、N個のデータからなるブロックを順次生成する。このとき、オーバーラップ付加回路10は、各ブロックに対して、直前のブロックとM個のデータだけオーバーラップさせる。
入力データをx[i](i=0、1、...)としたとき、
Nデータのブロックは、
x[j](j=m(N−M)−N〜m(N−M)−1)、
で表される。ここで、NはFFTブロックサイズ、Mはオーバーラップ数である。また、mは正整数である。
(2)FFT処理
FFT回路11は、時間領域上の信号データからなるブロックに対して高速フーリエ変換(FFT)を行い、周波数領域上の信号データからなるブロックに変換する。
N個の時間領域上の信号データからなるブロックをあらためて、
x[n](n=0、1、...、N−1)
とおくと、FFT処理後の周波数領域上のブロックX[k]は、
(k=0,1,...,N−1)
により与えられる。
(3)周波数領域フィルタ処理
フィルタ演算回路12は、FFT処理後のブロックを構成する周波数領域上の各信号データに対して、フィルタ処理を行う。
フィルタ処理前のブロックX[k]に対するフィルタ処理後のブロックX’[k]は、
k=0、1、...、N−1
により与えられる。(式2)において、H(k)は、フィルタ係数を示す。
(4)IFFT処理
IFFT回路13は、フィルタ処理後の周波数領域上の信号データからなるブロックに対して、IFFTを行い、時間領域上の信号データからなるブロックに再変換する。
IFFT処理前のブロックX’[k]に対するIFFT処理後のブロックy[n]は、
(n=0,1,...,N−1)
により与えられる。
(5)オーバーラップ除去処理
オーバーラップ除去回路14は、IFFT処理後のN個の信号データからなるブロックy[n]から、ブロック先頭及び末端からそれぞれM/2個のオーバーラップ分のデータを除いた中央部分を切り出すことで、
オーバーラップを除去した(N−M)個の信号データ系列
y’[j](j=M/2〜N−1−M/2)
を生成する。
上述したように、デジタルフィルタ回路100は、N個のデータに対して、M個のオーバーラップを付加してフィルタ処理を行い、再びM個のオーバーラップを除去する。したがって、データの入力及び出力のスループットよりも、オーバーラップの分だけ高い処理スループットが、フィルタ処理に要求される。具体的には、データの入力及び出力のスループットに対して、N/(N−M)倍以上の処理スループットが、フィルタ処理に要求される。
本実施形態では、デジタルフィルタ回路100におけるデータの入力および出力スループットは、クロックDの周波数によって決定される。なぜならば、オーバーラップ付加回路10におけるデータの入力およびオーバーラップ除去回路14におけるデータの出力は、クロックDに同期して動作するからである。
一方、デジタルフィルタ回路100におけるフィルタ処理の処理スループットは、フィルタクロック25の周波数によって決定される。なぜならば、オーバーラップ付加回路10におけるデータの出力およびオーバーラップ除去回路14におけるデータの入力と、FFT回路11と、フィルタ演算回路12と、IFFT回路13とは、フィルタクロック25に同期して動作するからである。
ここで、本実施形態では、フィルタクロック25の周波数をクロックDのN/(N−M)倍にすることで、データの入力および出力のスループットのN/(N−M)倍のスループットでフィルタ処理を実行する。
具体的には、フィルタクロック25の周波数fFは、クロックDの周波数をfDとし、FFTブロックサイズをNとし、オーバーラップ数をMとしたとき、以下の(式4)により設定される。
このとき、デジタルフィルタ回路100は、クロックDの毎サイクルにおいて入力されるデータに対して、フィルタクロック25の毎サイクルにおいてフィルタ処理を行い、クロックDの毎サイクルにおいてフィルタ処理したデータを出力することになる。
一般に、デジタルフィルタ回路では、入出力データと、フィルタ処理双方のスループットとが合わない場合に、データの入出力の停止や開始の制御、フィルタ処理の停止や開始の制御、などのフロー制御が必要となる。一方、本実施形態のデジタルフィルタ回路100によれば、このフロー制御は不要となる。その結果、回路が簡単にできるので、回路規模や消費電力を小さくすることができる。
具体的には、例えば、オーバーラップ付加回路10やオーバーラップ除去回路14を2ポートメモリで実現する場合、メモリがデータで一杯になることや、空になることがない。したがって、メモリへの書き込みや、メモリからの読み出しを停止したり開始したりするフロー制御が不要になる。その結果、回路が簡単にできるので、回路規模や消費電力を小さくすることができる。
以上説明した第1の実施形態によれば、オーバーラップFFTを使用した周波数領域フィルタ処理において、必要なオーバーラップ数M、およびFFTブロックサイズNに応じて、フィルタ処理の動作周波数をデータの入出力の動作周波数のN/(N−M)倍に設定している。
したがって、第1の実施形態によるデジタルフィルタ回路100は、必要なオーバーラップ数に応じて、入力する入力信号を滞りなくフィルタ処理するのに必要十分な動作周波数で動作する。このため、消費電力を小さくすることができる。
また、データの入出力やフィルタ処理に関するフロー制御が必要ないので、デジタルフィルタ回路100において、必要なメモリ量が少なく、かつ回路構成を単純化できる。このため、回路規模や消費電力を小さくすることができる。
[第2の実施形態]
図4は、本発明の第2の実施形態に係るデジタルフィルタ回路101の構成例を示すブロック図である。デジタルフィルタ回路101は、第1の実施形態のデジタルフィルタ回路100と同様に、周波数領域でフィルタ処理を行う周波数領域フィルタ回路である。周波数領域フィルタ回路の基本的な動作は、第1の実施形態にて説明したとおりである。
デジタルフィルタ回路101は、第1の実施形態のデジタルフィルタ回路100と同様に、CPUなどの上位回路から与えられるオーバーラップ数設定信号28を参照して、オーバーラップ数を決定する。
デジタルフィルタ回路101の特徴は、第1の実施形態のデジタルフィルタ回路100に、設定テーブル36を追加する点にある。なお、設定テーブル36以外の各構成要素の基本的な機能は、
図1のデジタルフィルタ回路100における各構成要素と同一であるが、設定テーブル36の追加に伴い、一部機能が第1の実施形態とは異なっている。従って、上記各構成要素に関し、
図4では、
図1と別の符号を付すことにする。
デジタルフィルタ回路101は、オーバーラップ付加回路30と、FFT回路31と、フィルタ演算回路32と、IFFT回路33と、オーバーラップ除去回路34と、クロック生成回路35と、設定テーブル36と、を少なくとも備える。
オーバーラップ付加回路30は、時間領域上の入力信号である入力データから、N個のデータからなるブロックを順次生成し、FFT回路31へ出力する。このとき、オーバーラップ付加回路30は、各ブロックに対して、直前のブロックとM個のデータだけオーバーラップさせる。なお、第1の実施形態と同様、N、M双方ともに正整数である。ブロックを構成するデータ数Nは、設定テーブル36から出力されるFFTブロックサイズ設定信号26に基づいて決定される。また、オーバーラップするデータ数Mは、オーバーラップ数設定信号28に基づいて決定される。オーバーラップ付加回路30は、クロックDに同期して入力データを入力する。また、オーバーラップ付加回路30は、フィルタクロック25に同期して生成したブロックをFFT回路31に出力する。
なお、オーバーラップ付加回路30は、例えば、2ポートメモリにより構成することができる。このとき、2ポートメモリへの書き込みはクロックDに同期して行い、2ポートメモリからの読み出しはフィルタクロック25に同期して行えばよい。
FFT回路31は、オーバーラップ付加回路30から出力される、M個のデータがオーバーラップされた時間領域上の入力信号に対して、FFTを行い、周波数領域上の信号に変換して、フィルタ演算回路32へ出力する。このとき、FFTの処理単位(ブロックサイズ)は、設定テーブル36から出力されるFFTブロックサイズ設定信号26に基づいて決定される。ここで、ブロックサイズは、FFT回路31を構成するバタフライ回路の段数を切り替えることで容易に変更することができる。FFT回路31は、フィルタクロック25に同期して動作する。
フィルタ演算回路32は、FFT回路31によって変換された周波数領域上の信号に対してフィルタ処理を行い、IFFT回路33へ出力する。例えば、デジタルフィルタ回路101が通信チャネルにおける信号歪みの等化処理を実行する場合、フィルタ演算回路32は、複素数乗算器で構成することができる。このとき、フィルタ処理の処理単位(ブロックサイズ)は、設定テーブル36から出力されるFFTブロックサイズ設定信号26に基づいて決定される。フィルタ演算回路32は、フィルタクロック25に同期して動作する。
IFFT回路33は、フィルタ演算回路32から出力されるフィルタ処理後の周波数領域上の信号に対して、IFFTを行い、時間領域上の信号に再変換して、オーバーラップ除去回路34へ出力する。このとき、IFFTの処理単位(ブロックサイズ)は、設定テーブル36から出力されるFFTブロックサイズ設定信号26に基づいて決定される。ここで、ブロックサイズは、IFFT回路33を構成するバタフライ回路の段数を切り替えることで容易に変更することができる。IFFT回路33は、フィルタクロック25に同期して動作する。
オーバーラップ除去回路34は、IFFT回路33によって再変換された時間領域上の信号であるN個のデータからなる各ブロックの両端から合計M個のデータを除去して、ブロックの中央部分のみを取り出し、出力データとして出力する。ブロックを構成するデータ数Nは、設定テーブル36から出力されるFFTブロックサイズ設定信号26に基づいて決定される。また、除去するデータ数Mは、オーバーラップ数設定信号28に基づいて決定される。
オーバーラップ除去回路34は、フィルタクロック25に同期して、IFFT回路33からデータを入力する。また、オーバーラップ除去回路34は、クロックDに同期して、出力データを出力する。
なお、オーバーラップ除去回路34は、例えば、2ポートメモリにより構成することができる。このとき、2ポートメモリへの書き込みはフィルタクロック25に同期して行い、2ポートメモリからの読み出しはクロックDに同期して行えばよい。
クロック生成回路35は、クロックSから、新たなクロック信号であるフィルタクロック25を生成し、オーバーラップ付加回路30、FFT回路31、フィルタ演算回路32、IFFT回路33、およびオーバーラップ除去回路34へ出力する。
フィルタクロック25の周波数は、設定テーブル36が出力するフィルタクロック周波数設定信号27に基づいて決定される。クロックSの周波数がフィルタクロック25の周波数よりも高い場合、クロック生成回路35は、例えば、分周回路で構成し、クロックSを分周することで、フィルタクロック25を生成することができる。一方、クロックSの周波数がフィルタクロック25の周波数よりも低い場合、クロック生成回路35は、例えばPLL回路で構成し、クロックSを逓倍することで、フィルタクロック25を生成することができる。
設定テーブル36は、入力したオーバーラップ数設定信号28に応じたFFTブロックサイズの設定値を保持し、オーバーラップ付加回路30、FFT回路31、IFFT回路33、およびオーバーラップ除去回路34に出力する。設定テーブル36はまた、入力するオーバーラップ数設定に応じたフィルタクロック周波数の設定値を保持し、クロック生成回路35に出力する。
以下、
図4に示すデジタルフィルタ回路101の動作について説明する。デジタルフィルタ回路101のフィルタ処理に関する動作は、
図2および
図3において処理ステップ(1)〜(5)で示す第1の実施形態のデジタルフィルタ回路100のフィルタ処理に関する動作と同等である。
すなわち、デジタルフィルタ回路101は、デジタルフィルタ回路100と同様に、N個のデータに対して、M個のオーバーラップを付加してフィルタ処理を行い、再びM個のオーバーラップを除去する。したがって、データの入力及び出力のスループットよりも、オーバーラップの分だけ高い処理スループットが、フィルタ処理に要求される。具体的には、データの入力及び出力のスループットに対して、N/(N−M)倍以上の処理スループットが、フィルタ処理に要求される。
本実施形態においても、デジタルフィルタ回路101におけるデータの入力および出力スループットは、クロックDの周波数によって決定される。なぜならば、オーバーラップ付加回路30におけるデータの入力およびオーバーラップ除去回路34におけるデータの出力は、クロックDに同期して動作するからである。
一方、デジタルフィルタ回路101におけるフィルタ処理の処理スループットは、フィルタクロック25の周波数によって決定される。なぜならば、オーバーラップ付加回路30におけるデータの出力およびオーバーラップ除去回路34におけるデータの入力と、FFT回路31と、フィルタ演算回路32と、IFFT回路33とは、フィルタクロック25に同期して動作するからである。
ここで、本実施形態においても、フィルタクロック25の周波数をクロックDのN/(N−M)倍にすることで、データの入力および出力のスループットのN/(N−M)倍のスループットでフィルタ処理を実行する。具体的には、フィルタクロック25の周波数fFは、前述の(式4)により設定される。
このとき、デジタルフィルタ回路101は、クロックDの毎サイクルにおいて入力するデータに対して、フィルタクロック25の毎サイクルにおいてフィルタ処理を行い、クロックDの毎サイクルにおいてフィルタ処理したデータを出力することになる。
一般に、デジタルフィルタ回路では、データの入出力と、フィルタ処理双方のスループットとが合わない場合に、データの入出力の停止や開始の制御、フィルタ処理の停止や開始の制御、などのフロー制御が必要となる。一方、本実施形態のデジタルフィルタ回路101によれば、このフロー制御は不要となる。その結果、回路が簡単にできるので、回路規模や消費電力を小さくすることができる。
具体的には、例えば、オーバーラップ付加回路30やオーバーラップ除去回路34を2ポートメモリで実現する場合、メモリがデータで一杯になることや、空になることがない。したがって、メモリへの書き込みや、メモリからの読み出しを停止したり開始したりするフロー制御が不要になる。その結果、回路が簡単にできるので、回路規模や消費電力を小さくすることができる。
ところで、上記したフィルタクロック25の周波数fFの(式4)から明らかなように、オーバーラップ数Mが小さいほど、またFFTブロックサイズNが大きいほど、フィルタクロック25の周波数を低くすることができる。
しかしながら、必要なオーバーラップ数Mは、主にデジタルフィルタ回路101で実現するフィルタのインパルス応答長で決定されるため、自由に設定することが困難である。したがって、必要なオーバーラップ数Mに対してFFTブロックサイズNを大きくする方が、フィルタクロック25の周波数を低くすることができる。周波数が低いほうが消費電力も小さいが、一方で、FFTブロックサイズNを大きくすると、FFT回路31およびIFFT回路33自体の消費電力は大きくなってしまう。
したがって、必要なオーバーラップ数Mに対して、消費電力がもっとも小さくなるFFTブロックサイズNが存在するはずである。すなわち、オーバーラップ数Mに対して、消費電力がもっとも小さくなるFFTブロックサイズNを決定することができる。さらに、オーバーラップ数MとFFTブロックサイズNが決定されれば、(式2)からフィルタクロック25の周波数fFが決定される。
以下、第1の実施形態と第2の実施形態との差分について説明する。
図5は、オーバーラップ数Mを0〜1280まで128刻みで変えた場合に対して、FFTブロックサイズNを2048、4096、8192と変えた場合の、デジタルフィルタ回路101の消費電力の一例を示すグラフである。
図5から、少なくともFFTブロックサイズN=2048、4096、8192において、オーバーラップ数Mによって、上記3つのFFTブロックサイズNの中で消費電力が最小となるFFTブロックサイズNが異なることが諒解できる。具体的には、オーバーラップ数Mが0、128、256の場合(
図5における領域(a))、FFTブロックサイズNが2048の場合に消費電力が最小になる。オーバーラップ数Mが384、512の場合(
図5における領域(b))、FFTブロックサイズNが4096の場合に消費電力が最小になる。オーバーラップ数Mが640、768、896、1024、1152、1280の場合(
図5における領域(c))、FFTブロックサイズNが8192の場合に消費電力が最小になる。
設定テーブル36は、オーバーラップ数設定信号26に基づくオーバーラップ数の設定値に対して、FFTブロックサイズ設定信号26に基づくFFTブロックサイズの設定値およびフィルタクロック周波数設定信号27に基づくフィルタクロック周波数の設定値を保持する。設定テーブル36は、入力されたオーバーラップ数に対応するFFTブロックサイズ設定信号26およびフィルタクロック周波数設定信号27を出力する。
図6は、設定テーブル36の構成例を示すテーブル図である。
図6において、設定テーブル36には、0〜1280まで128ステップの各オーバーラップ数設定に対して、
図5に示した消費電力を最小にするFFTブロックサイズが設定されている。さらに、各オーバーラップ数設定とFFTブロックサイズから、(式4)によりフィルタクロック25の周波数が設定されている。
すなわち、オーバーラップ数設定信号28に必要なオーバーラップ数を設定すると、設定テーブル36は、消費電力を最小にするFFTブロックサイズ設定信号26と、必要なフィルタ処理スループットを実現するフィルタクロック周波数設定信号27を出力する。
その結果、デジタルフィルタ回路101は、入力するオーバーラップ数設定信号28に対して、消費電力を最小にするFFTブロックサイズおよびフィルタクロック25の周波数の設定のもとで、動作することができる。
なお、設定テーブル36の内容は、
図5で示したような消費電力特性を参照して設定することもできる。この場合、消費電力特性は、シミュレーションにより求めてもよいし、実際の回路の消費電力を測定して求めてもよい。
また、設定テーブル36の内容は、デジタルフィルタ回路101の設計時や製造時に設定してもよいし、CPUなどデジタルフィルタ回路101を制御する上位回路により、デジタルフィルタ回路101の動作時に設定してもよい。
また、設定テーブル36は専用の回路でなくてもよい。例えば、デジタルフィルタ回路101を制御するCPUが使用するメインメモリ上に設置してもよい。
以上説明した第2の実施形態によれば、オーバーラップFFTを使用した周波数領域フィルタ処理において、必要なオーバーラップ数M、およびFFTブロックサイズNに応じて、フィルタ処理の動作周波数をデータの入出力の動作周波数のN/(N−M)倍に設定している。
したがって、必要なオーバーラップ数に応じて、入力する入力信号を滞りなくフィルタ処理するのに必要十分な動作周波数で動作するため、消費電力を小さくすることができる。
また、データの入出力やフィルタ処理に関するフロー制御が必要ないので、必要なメモリ量が少なく、かつ回路構成を単純化できるため、回路規模や消費電力が小さくすることができる。
さらに、第2の実施形態では、必要なオーバーラップ数に応じてFFTブロックサイズを調整するので、消費電力をより小さくすることができる。
[第3の実施形態]
図7は、本発明の第3の実施形態によるデジタルフィルタ回路1000の構成例を示した図である。
図7によれば、デジタルフィルタ回路1000は、オーバーラップ付加手段1001、FFT手段1002、フィルタ演算手段1003、IFFT手段1004、オーバーラップ除去手段1005、およびクロック生成手段1006を備える。
オーバーラップ付加手段1001は、時間領域上の入力データから、N個のデータからなるブロックを、直前のブロックとはM個のデータだけオーバーラップさせて生成する。なお、NおよびMは、正整数である。
FFT手段1002は、オーバーラップ付加手段1001で生成したブロックを、FFT処理によって、周波数領域上のブロックに変換する。
フィルタ演算手段1003は、FFT手段1002で変換した周波数領域上のブロックに対して、フィルタ処理を行う。
IFFT手段1004は、フィルタ演算手段1003でフィルタ処理を行ったブロックを、IFFT処理によって、時間領域上のブロックに変換する。
オーバーラップ除去手段1005は、IFFT手段1004で変換した時間領域上のブロックの両端から、合計M個のデータを除去することで、出力信号を生成する。
クロック生成手段1006は、オーバーラップ付加手段1001のデータ出力部と前記FFT手段1002と前記フィルタ演算手段1003と前記IFFT手段1004と前記オーバーラップ除去手段1005のデータ入力部と、を駆動するフィルタ処理クロック信号の周波数を、前記オーバーラップ数Mの値に基づいて設定する。
以上説明した通り、第3の実施形態では、フィルタ処理クロック信号の周波数を、オーバーラップ数Mの値に基づいて設定している。従って、第3の実施形態によるデジタルフィルタ回路1000においては、データの入出力やフィルタ処理に関するフロー制御を行う必要がない。よって、第3の実施形態によるデジタルフィルタ回路1000では、必要なメモリ量が少なく、かつ回路構成を単純化することが可能となる。
従って、第3の実施形態によれば、オーバーラップFDE方式などの周波数領域におけるフィルタ処理において、回路規模および消費電力を小さくすることが可能となる。
[その他の実施形態]
本発明によるその他の実施形態は、デジタルフィルタ回路であって、時間領域上の入力データから、N個のデータ(Nは正整数)からなるブロックを、直前のブロックとはM個のデータ(Mは正整数)だけオーバーラップさせて生成するオーバーラップ付加手段と、前記生成したブロックをFFT処理により周波数領域上のブロックに変換するFFT手段と、前記変換した周波数領域上のブロックに対してフィルタ処理を行うフィルタ演算手段と、前記フィルタ処理したブロックをIFFT処理により時間領域上のブロックに変換するIFFT手段と、前記変換した時間領域上のブロックの両端から合計M個のデータを除去して出力信号を生成するオーバーラップ除去手段と、を備え、前記オーバーラップ付加手段のデータ出力部と前記FFT手段と前記フィルタ演算手段と前記IFFT手段と前記オーバーラップ除去手段のデータ入力部とを駆動するフィルタ処理クロック信号の周波数を、前記オーバーラップ付加手段のデータ入力部と前記オーバーラップ除去手段のデータ出力部とを駆動する入出力クロック信号の周波数の、N/(N−M)倍に設定する。
本発明のその他の実施形態によるデジタルフィルタ制御方法は、時間領域上の入力データから、N個のデータ(Nは正整数)からなるブロックを、直前のブロックとはM個のデータ(Mは正整数)だけオーバーラップさせて生成するオーバーラップ付加手段と、前記生成したブロックをFFT処理により周波数領域上のブロックに変換するFFT手段と、前記変換した周波数領域上のブロックに対してフィルタ処理を行うフィルタ演算手段と、前記フィルタ処理したブロックをIFFT処理により時間領域上のブロックに変換するIFFT手段と、前記変換した時間領域上のブロックの両端から合計M個のデータを除去して出力信号を生成するオーバーラップ除去手段と、を備えるデジタルフィルタの制御方法であって、前記オーバーラップ付加手段のデータ出力部と前記FFT手段と前記フィルタ演算手段と前記IFFT手段と前記オーバーラップ除去手段のデータ入力部とを駆動するフィルタ処理クロック信号の周波数を、前記オーバーラップ付加手段のデータ入力部と前記オーバーラップ除去手段のデータ出力部とを駆動する入出力クロック信号の周波数の、N/(N−M)倍に設定する。
本発明のその他の実施形態によるデジタルフィルタ制御方法は、時間領域上の入力データから、N個のデータ(Nは正整数)からなるブロックを、直前のブロックとはM個のデータ(Mは正整数)だけオーバーラップさせて生成するオーバーラップ付加手段と、前記生成したブロックをFFT処理により周波数領域上のブロックに変換するFFT手段と、前記変換した周波数領域上のブロックに対してフィルタ処理を行うフィルタ演算手段と、前記フィルタ処理したブロックをIFFT処理により時間領域上のブロックに変換するIFFT手段と、前記変換した時間領域上のブロックの両端から合計M個のデータを除去して出力信号を生成するオーバーラップ除去手段と、前記オーバーラップ数Mに対して、前記ブロックを構成するデータ数Nを示すFFTサイズ設定、およびクロック周波数設定を保持する設定テーブル手段と、を備えるデジタルフィルタの制御方法であって、入力する前記オーバーラップ数の設定値Mに応じて前記設定テーブル手段が出力する、前記FFTサイズ設定、および前記クロック周波数設定に基づいてフィルタ処理を行う。
以上、実施形態を参照して本願発明を説明したが、本願発明は上記実施形態に限定されるものではない。本願発明の構成や詳細には、本願発明のスコープ内で当業者が理解し得る様々な変更をすることができる。
この出願は、2010年12月21日に出願された日本出願特願2010−284137を基礎とする優先権を主張し、その開示の全てをここに取り込む。