特許第5768819号(P5768819)IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ 日本電気株式会社の特許一覧

特許5768819デジタルフィルタ回路およびデジタルフィルタ制御方法
<>
  • 特許5768819-デジタルフィルタ回路およびデジタルフィルタ制御方法 図000006
  • 特許5768819-デジタルフィルタ回路およびデジタルフィルタ制御方法 図000007
  • 特許5768819-デジタルフィルタ回路およびデジタルフィルタ制御方法 図000008
  • 特許5768819-デジタルフィルタ回路およびデジタルフィルタ制御方法 図000009
  • 特許5768819-デジタルフィルタ回路およびデジタルフィルタ制御方法 図000010
  • 特許5768819-デジタルフィルタ回路およびデジタルフィルタ制御方法 図000011
  • 特許5768819-デジタルフィルタ回路およびデジタルフィルタ制御方法 図000012
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】5768819
(24)【登録日】2015年7月3日
(45)【発行日】2015年8月26日
(54)【発明の名称】デジタルフィルタ回路およびデジタルフィルタ制御方法
(51)【国際特許分類】
   H03H 17/02 20060101AFI20150806BHJP
   H03H 17/00 20060101ALI20150806BHJP
   H04J 11/00 20060101ALI20150806BHJP
【FI】
   H03H17/02 671C
   H03H17/00 601C
   H04J11/00 Z
【請求項の数】6
【全頁数】17
(21)【出願番号】特願2012-549664(P2012-549664)
(86)(22)【出願日】2011年8月18日
(86)【国際出願番号】JP2011069098
(87)【国際公開番号】WO2012086262
(87)【国際公開日】20120628
【審査請求日】2014年7月16日
(31)【優先権主張番号】特願2010-284137(P2010-284137)
(32)【優先日】2010年12月21日
(33)【優先権主張国】JP
【国等の委託研究の成果に係る記載事項】(出願人による申告)平成22年度、総務省「超高速光エッジノード技術の研究開発」、産業技術力強化法第19条の適用を受ける特許出願
(73)【特許権者】
【識別番号】000004237
【氏名又は名称】日本電気株式会社
(74)【代理人】
【識別番号】100109313
【弁理士】
【氏名又は名称】机 昌彦
(74)【代理人】
【識別番号】100124154
【弁理士】
【氏名又は名称】下坂 直樹
(72)【発明者】
【氏名】柴山 充文
【審査官】 ▲高▼橋 義昭
(56)【参考文献】
【文献】 特開2010−124334(JP,A)
【文献】 特開平08−023262(JP,A)
【文献】 特開2002−108490(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
H03H 17/02
H03H 17/00
H04J 11/00
(57)【特許請求の範囲】
【請求項1】
時間領域上の入力データから、N個のデータ(Nは正整数)からなるブロックを、直前のブロックとはM個のデータ(Mは正整数)だけオーバーラップさせて生成するオーバーラップ付加手段と、
前記生成したブロックをFFT処理により周波数領域上のブロックに変換するFFT手段と、
前記変換した周波数領域上のブロックに対してフィルタ処理を行うフィルタ演算手段と、
前記フィルタ処理したブロックをIFFT処理により時間領域上のブロックに変換するIFFT手段と、
前記変換した時間領域上のブロックの両端から合計M個のデータを除去して出力信号を生成するオーバーラップ除去手段と、
前記オーバーラップ付加手段のデータ出力部と前記FFT手段と前記フィルタ演算手段と前記IFFT手段と前記オーバーラップ除去手段のデータ入力部とを駆動するフィルタ処理クロック信号の周波数を、前記オーバーラップ数Mの値に基づいて設定するクロック生成手段と、
を備えることを特徴とするデジタルフィルタ回路。
【請求項2】
前記クロック生成手段は、前記フィルタ処理クロック信号の周波数を、前記オーバーラップ付加手段のデータ入力部、および前記オーバーラップ除去手段のデータ出力部と、を駆動する入出力クロック信号の周波数のN/(N−M)倍に設定することを特徴とする請求項2記載のデジタルフィルタ回路。
【請求項3】
前記デジタルフィルタ回路は、さらに、
前記オーバーラップ数Mに対して、前記ブロックを構成するデータ数Nを示すFFTサイズ設定、およびクロック周波数設定を保持する設定テーブル手段を備え、
前記クロック生成手段は、入力する前記オーバーラップ数の設定値Mに応じて前記設定テーブル手段が出力する、前記FFTサイズ設定、および前記クロック周波数設定に基づいて前記フィルタ処理クロック信号の周波数を設定することを特徴とする請求項1または2に記載のデジタルフィルタ回路。
【請求項4】
時間領域上の入力データから、N個のデータ(Nは正整数)からなるブロックを、直前のブロックとはM個のデータ(Mは正整数)だけオーバーラップさせるオーバーラップ付加処理を行って生成し、
前記生成したブロックをFFT処理により周波数領域上のブロックに変換し、
前記変換した周波数領域上のブロックに対してフィルタ処理を行い、
前記フィルタ処理したブロックをIFFT処理により時間領域上のブロックに変換し、
前記変換した時間領域上のブロックの両端から合計M個のデータを除去するオーバーラップ除去処理を行って出力信号を生成し、
前記オーバーラップ付加処理の出力と、前記FFT処理と、前記フィルタ処理と、前記IFFT処理と、前記オーバーラップ除去処理の入力とに関わるフィルタ処理クロック信号の周波数を、前記オーバーラップ数Mの値に基づいて設定することを特徴とするデジタルフィルタ制御方法。
【請求項5】
前記フィルタ処理クロック信号の周波数を、前記オーバーラップ付加処理の入力と前記オーバーラップ除去処理の出力とに関わる入出力クロック信号の周波数の、N/(N−M)倍に設定すること、を特徴とする請求項4に記載のデジタルフィルタ制御方法。
【請求項6】
前記デジタルフィルタ制御方法は、さらに、
前記オーバーラップ数Mに対して、前記ブロックを構成するデータ数Nを示すFFTサイズ設定、およびクロック周波数設定を保持し、
入力する前記オーバーラップ数の設定値Mに応じて、前記保持された前記FFTサイズ設定、および前記クロック周波数設定に基づいて前記フィルタ処理クロック信号の周波数を設定すること、を特徴とする請求項4または5に記載のデジタルフィルタ制御方法。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、デジタル信号処理における演算処理回路に関し、特にデジタルフィルタ回路およびデジタルフィルタ制御方法に関する。
【背景技術】
【0002】
無線通信や有線通信における信号伝送中の波形歪みを補償する技術として、周波数領域等化(Frequency domain equalization:FDE)技術が知られている。FDEでは、まず、高速フーリエ変換(Fast Fourier Transform、FFT)により時間領域上の信号データを周波数領域上のデータに変換する。その後に、等化のためのフィルタ処理を実施し、逆高速フーリエ変換(Inverse FFT、IFFT)により時間領域上の信号データに再変換する。FDEでは、以上の処理により、信号の波形歪みを補償する。
ところで、FFTは、信号が周期的に繰り返すことを仮定しているため、FFTの処理ブロックの両端付近の信号に演算歪みが発生するという問題がある。この問題を解消する技術として、例えば、特許文献1、特許文献2、および特許文献3に記載されている、オーバーラップFDE方式を挙げることができる。オーバーラップFDE方式は、隣接する処理ブロック同士を所定のデータ数だけオーバーラップさせてFFT処理を行い、次にフィルタ処理を実行した上で、IFFT処理により時間領域信号に再変換した後、演算歪みの生じた処理ブロック両端の信号データのみを除去する。
また、その他の関連する技術としては、特許文献4に記載の、デジタルデータのサンプリング間隔を変更するデジタルフィルタ装置が挙げられる。
【先行技術文献】
【特許文献】
【0003】
【特許文献1】特開2006−304192号公報
【特許文献2】特開2010−130355号公報
【特許文献3】特開2007−201523号公報
【特許文献4】特開平09−135151号公報
【発明の概要】
【発明が解決しようとする課題】
【0004】
しかしながら、オーバーラップFDE方式において、FFT処理をオーバーラップさせる部分では、同じ入力信号に対してオーバーラップしてFDE処理を行う必要がある。すなわち、オーバーラップ部分に対する演算量の増加により、FDE処理には、信号データの入出力のスループットに比べて、オーバーラップの分だけ高い処理スループットが要求される。
例えば、FFTブロックサイズが4096データ、オーバーラップ数が1024データの場合、必要なFDEの処理スループットは、データの入出力スループットの4/3倍になる。
このオーバーラップ部分の演算量増加に対するFDEの処理スループットの向上方法として、FDE処理回路を並列化することによる方法が考えられる。しかしながら、回路を並列化する方法は、回路規模や消費電力が増大するという課題がある。
本発明は、上述した課題を解決することが可能な、デジタルフィルタ回路およびデジタルフィルタ制御方法を提供することを目的としている。
【課題を解決するための手段】
【0005】
本発明によるデジタルフィルタ回路は、時間領域上の入力データから、N個のデータ(Nは正整数)からなるブロックを、直前のブロックとはM個のデータ(Mは正整数)だけオーバーラップさせて生成するオーバーラップ付加手段と、前記生成したブロックをFFT処理により周波数領域上のブロックに変換するFFT手段と、前記変換した周波数領域上のブロックに対してフィルタ処理を行うフィルタ演算手段と、前記フィルタ処理したブロックをIFFT処理により時間領域上のブロックに変換するIFFT手段と、前記変換した時間領域上のブロックの両端から合計M個のデータを除去して出力信号を生成するオーバーラップ除去手段と、前記オーバーラップ付加手段のデータ出力部と前記FFT手段と前記フィルタ演算手段と前記IFFT手段と前記オーバーラップ除去手段のデータ入力部とを駆動するフィルタ処理クロック信号の周波数を、前記オーバーラップ数Mの値に基づいて設定するクロック生成手段と、を備えることを特徴とする。
本発明によるデジタルフィルタ制御方法は、時間領域上の入力データから、N個のデータ(Nは正整数)からなるブロックを、直前のブロックとはM個のデータ(Mは正整数)だけオーバーラップさせるオーバーラップ付加処理を行って生成し、前記生成したブロックをFFT処理により周波数領域上のブロックに変換し、前記変換した周波数領域上のブロックに対してフィルタ処理を行い、前記フィルタ処理したブロックをIFFT処理により時間領域上のブロックに変換し、前記変換した時間領域上のブロックの両端から合計M個のデータを除去するオーバーラップ除去処理を行って出力信号を生成し、前記オーバーラップ付加処理の出力と、前記FFT処理と、前記フィルタ処理と、前記IFFT処理と、前記オーバーラップ除去処理の入力とに関わるフィルタ処理クロック信号の周波数を、前記オーバーラップ数Mの値に基づいて設定することを特徴とする。
【発明の効果】
【0006】
本発明によれば、オーバーラップFDE方式などの周波数領域におけるフィルタ処理において、回路規模および消費電力を小さくすることが可能となる。
【図面の簡単な説明】
【0007】
図1】本発明の第1の実施形態に係るデジタルフィルタ回路の構成例を示すブロック図である。
図2図1に示すデジタルフィルタ回路の動作の一例を示す動作図である。
図3図1に示すデジタルフィルタ回路の動作の一例を示すタイミング図である。
図4】本発明の第2の実施形態に係るデジタルフィルタ回路の構成例を示すブロック図である。
図5図4に示すデジタルフィルタ回路の消費電力の一例を示すグラフである。
図6図4に示すデジタルフィルタ回路が備える設定テーブルの構成例を示すテーブル図である。
図7】本発明の第3の実施形態に係るデジタルフィルタ回路の構成例を示すブロック図である。
【発明を実施するための形態】
【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を基礎とする優先権を主張し、その開示の全てをここに取り込む。
【符号の説明】
【0009】
10 オーバーラップ付加回路
11 FFT回路
12 フィルタ演算回路
13 IFFT回路
14 オーバーラップ除去回路
15 クロック生成回路
25 フィルタクロック
26 FFTブロックサイズ設定信号
27 フィルタクロック周波数設定信号
28 オーバーラップ数設定信号
30 オーバーラップ付加回路
31 FFT回路
32 フィルタ演算回路
33 IFFT回路
34 オーバーラップ除去回路
35 クロック生成回路
36 設定テーブル
100、101、1000 デジタルフィルタ回路
1001 オーバーラップ付加手段
1002 FFT手段
1003 フィルタ演算手段
1004 IFFT手段
1005 オーバーラップ除去手段
1006 クロック生成手段
図1
図4
図5
図6
図7
図2
図3