(57)【要約】  ＦＦＴ処理と周波数領域のフィルタ処理とを併用する場合の消費電力を削減するため、本発明のデジタルフィルタ装置は、オーバーラップされたデータを含む第１の入力ブロックに、第１のデータ並べ替え処理を用いた第１の高速フーリエ変換、周波数領域の第１のフィルタ、第２のデータ並べ替え処理を用いた第１の逆高速フーリエ変換、及びオーバーラップ除去を行う第１のフィルタリング手段と、オーバーラップされたデータを含む第２の入力ブロックのすべてのデータを同時に処理する第２の高速フーリエ変換、周波数領域の第２のフィルタ処理、フィルタ処理後のすべての入力データを同時に処理する第２の逆高速フーリエ変換、及びオーバーラップ除去を行う第２のフィルタリング手段と、第１のフィルタリング手段又は第２のフィルタリング手段を選択するデータ選択手段とを備え、データ選択手段によって選択されていない方のフィルタリング手段の動作を停止する。
2015011874.tif 000002
【特許請求の範囲】
【請求項１】
時間領域の連続するＮ−Ｍ個の入力データ（Ｎは正整数、ＭはＮ以下の正整数）を含む第１の入力ブロックに前記第１の入力ブロックの直前の連続するＭ個のデータが付加された第１のオーバーラップブロックを生成する第１のオーバーラップ付加手段、前記第１のオーバーラップブロックを第１のデータ並べ替え処理を用いた高速フーリエ変換処理により周波数領域の第１の周波数領域ブロックに変換する第１の高速フーリエ変換手段、前記第１の周波数領域ブロックに対して第１のフィルタ処理を行う第１のフィルタ演算手段、前記第１のフィルタ処理がなされた第１の処理後ブロックを第２のデータ並べ替え処理を用いた逆高速フーリエ変換処理により第１の時間領域ブロックに変換する第１の逆高速フーリエ変換手段、及び前記第１の時間領域ブロックの時間軸の両端から合計Ｍ個のデータを除去して第１の出力データを生成する第１のオーバーラップ除去手段を含む第１のデジタルフィルタリング手段と、
時間領域の連続するＱ−Ｐ個の入力データ（Ｑは正整数、ＰはＱ以下の正整数）を含む第２の入力ブロックに前記第２の入力ブロックの直前の連続するＰ個のデータが付加された第２のオーバーラップブロックを生成する第２のオーバーラップ付加手段、前記第２のオーバーラップブロックに含まれるすべての前記第２の入力ブロックを同時に入力し、高速フーリエ変換処理により周波数領域の第２の周波数領域ブロックに変換する第２の高速フーリエ変換手段、前記第２の周波数領域ブロックに対して第２のフィルタ処理を行う第２のフィルタ演算手段、前記第２のフィルタ処理がなされた第２の処理後ブロックに含まれるすべての処理後データを同時に入力し、逆高速フーリエ変換処理により第２の時間領域ブロックに変換する第２の逆高速フーリエ変換手段、及び前記第２の時間領域ブロックの時間軸の両端から合計Ｐ個のデータを除去して第２の出力データを生成する第２のオーバーラップ除去手段を含む第２のデジタルフィルタリング手段と、
実行対象のフィルタ処理を選択する選択信号に従って、前記第１の出力データ又は前記第２の出力データを選択するデータ選択手段とを備え、
前記第２のデジタルフィルタリング手段は、前記データ選択手段によって前記第１の出力データが選択されたとき、動作を停止し、
前記第１のデジタルフィルタリング手段は、前記データ選択手段によって前記第２の出力データが選択されたとき、動作を停止する
ことを特徴とするデジタルフィルタ装置。
【請求項２】
前記第１のデータ並べ替え処理は、前記第１のオーバーラップブロックに含まれる複数の前記入力データを、前記第１の高速フーリエ変換手段における演算対象となる順序に並べ替える処理であり、
前記第２のデータ並べ替え処理は、前記第１の処理後ブロックに含まれる複数の処理後データを、前記第１の逆高速フーリエ変換手段における演算対象となる順序に並べ替える処理である
ことを特徴とする請求項１に記載のデジタルフィルタ装置。
【請求項３】
前記第１のフィルタ処理の第１のインパルス応答長は、前記第２のフィルタ処理の第２のインパルス応答長よりも長く、
前記Ｍは前記第１のインパルス応答長に基づいて決定され、
前記Ｐは前記第２のインパルス応答長に基づいて決定される
ことを特徴とする請求項１又は２に記載のデジタルフィルタ装置。
【請求項４】
前記Ｎは前記Ｑよりも大きく、
前記Ｍは前記Ｐよりも大きい
ことを特徴とする請求項３に記載のデジタルフィルタ装置。
【請求項５】
前記選択信号は、
入力データに対して適用すべき適用フィルタ処理のインパルス応答長が前記Ｐより大きい場合は、前記第１のフィルタ処理を選択し、
前記適用フィルタ処理のインパルス応答長が前記Ｐ以下の場合は、前記第２のフィルタ処理を選択する
ことを特徴とする請求項１乃至４のいずれかに記載のデジタルフィルタ装置。
【請求項６】
実行対象のフィルタ処理を選択する選択信号に従って、
時間領域の連続するＮ−Ｍ個の入力データ（Ｎは正整数、ＭはＮ以下の正整数）を含む第１の入力ブロックに前記第１の入力ブロックの直前の連続するＭ個のデータが付加された第１のオーバーラップブロックを生成し、前記第１のオーバーラップブロックを第１のデータ並べ替え処理を用いた高速フーリエ変換処理により周波数領域の第１の周波数領域ブロックに変換し、前記第１の周波数領域ブロックに対して第１のフィルタ処理を行い、前記第１のフィルタ処理がなされた第１の処理後ブロックを第２のデータ並べ替え処理を用いた逆高速フーリエ変換処理により第１の時間領域ブロックに変換し、前記第１の時間領域ブロックの時間軸の両端から合計Ｍ個のデータを除去して第１の出力データを生成する第１のデジタルフィルタ処理、又は
時間領域の連続するＱ−Ｐ個の入力データ（Ｑは正整数、ＰはＱ以下の正整数）を含む第２の入力ブロックに前記第２の入力ブロックの直前の連続するＰ個のデータが付加された第２のオーバーラップブロックを生成し、前記第２のオーバーラップブロックに含まれるすべての前記第２の入力ブロックを同時に入力し、高速フーリエ変換処理により周波数領域の第２の周波数領域ブロックに変換し、前記第２の周波数領域ブロックに対して第２のフィルタ処理を行い、前記第２のフィルタ処理がなされた第２の処理後ブロックに含まれるすべての処理後データを同時に入力し、逆高速フーリエ変換処理により第２の時間領域ブロックに変換し、前記第２の時間領域ブロックの時間軸の両端から合計Ｐ個のデータを除去して第２の出力データを生成する第２のデジタルフィルタ処理を選択し、
前記第２のデジタルフィルタ処理を選択したとき、前記第１のデジタルフィルタ処理を停止し、
前記第１のデジタルフィルタ処理を選択したとき、前記第２のデジタルフィルタ処理を停止する
ことを特徴とするデジタルフィルタ処理方法。
【請求項７】
デジタルフィルタ装置が備えるコンピュータを、
時間領域の連続するＮ−Ｍ個の入力データ（Ｎは正整数、ＭはＮ以下の正整数）を含む第１の入力ブロックに前記第１の入力ブロックの直前の連続するＭ個のデータが付加された第１のオーバーラップブロックを生成し、前記第１のオーバーラップブロックを第１のデータ並べ替え処理を用いた高速フーリエ変換処理により周波数領域の第１の周波数領域ブロックに変換し、前記第１の周波数領域ブロックに対して第１のフィルタ処理を行い、前記第１のフィルタ処理がなされた第１の処理後ブロックを第２のデータ並べ替え処理を用いた逆高速フーリエ変換処理により第１の時間領域ブロックに変換し、前記第１の時間領域ブロックの時間軸の両端から合計Ｍ個のデータを除去して第１の出力データを生成する第１のデジタルフィルタ処理手段、
時間領域の連続するＱ−Ｐ個の入力データ（Ｑは正整数、ＰはＱ以下の正整数）を含む第２の入力ブロックに前記第２の入力ブロックの直前の連続するＰ個のデータが付加された第２のオーバーラップブロックを生成し、前記第２のオーバーラップブロックに含まれるすべての前記第２の入力ブロックを同時に入力し、高速フーリエ変換処理により周波数領域の第２の周波数領域ブロックに変換し、前記第２の周波数領域ブロックに対して第２のフィルタ処理を行い、前記第２のフィルタ処理がなされた第２の処理後ブロックに含まれるすべての処理後データを同時に入力し、逆高速フーリエ変換処理により第２の時間領域ブロックに変換し、前記第２の時間領域ブロックの時間軸の両端から合計Ｐ個のデータを除去して第２の出力データを生成する第２のデジタルフィルタ処理手段、
実行対象のフィルタ処理を選択する選択信号に従って、前記第１のデジタルフィルタ処理手段又は前記第２のデジタルフィルタ処理手段を選択する選択手段、及び
前記第２のデジタルフィルタ処理手段を選択したとき前記第１のデジタルフィルタ処理手段を停止し、前記第１のデジタルフィルタ処理手段を選択したとき前記第２のデジタルフィルタ処理手段を停止する停止手段
として機能させるためのデジタルフィルタプログラムが記憶された記憶媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、デジタル信号処理における演算処理回路に関し、特にデジタルフィルタ装置に関する。
【背景技術】
【０００２】
デジタル信号処理における重要な処理の１つに、高速フーリエ変換（Fast Fourier Transform。以降、「ＦＦＴ」という。）処理がある。また、例えば、無線通信や有線通信における信号伝送中の波形歪みを補償する技術として、周波数領域等化（Frequency domain equalization（ＦＤＥ））技術がある。周波数領域等化では、まず高速フーリエ変換により時間領域の信号データが周波数領域のデータに変換され、次に等化のためのフィルタ処理が行われる。そして、フィルタ処理後のデータは、逆高速フーリエ変換（Inverse ＦＦＴ。以降、「ＩＦＦＴ」という。）により時間領域の信号データに再変換されることによって、元の時間領域の信号の波形歪みが補償される。以降、ＦＦＴとＩＦＦＴとを区別しないときは、「ＦＦＴ／ＩＦＦＴ」と表記する。【０００３】
一般に、ＦＦＴ／ＩＦＦＴ処理では、「バタフライ演算」が用いられる。例えば、特許文献１に、バタフライ演算を用いたＦＦＴ装置について記載されている。特許文献１には、後述の「ひねり乗算」、すなわち、ひねり係数を用いた乗算についても記載されている。【０００４】
例えば、非特許文献１に、効率的なＦＦＴ／ＩＦＦＴ処理方式としてCooley-Tukeyによるバタフライ演算が記載されている。しかし、ポイント数の大きいCooley-TukeyによるＦＦＴ／ＩＦＦＴは回路が複雑になる。そのため、ＦＦＴ／ＩＦＦＴ処理は、例えば、非特許文献２に記載されたPrime Factor法に基づいて２つの小さなＦＦＴ／ＩＦＦＴに分解されて行われる。【０００５】
図８には、例えばPrime Factor法を利用して２段階の基数８のバタフライ処理で分解された、６４ポイントＦＦＴのデータフロー５００が示されている。データフロー５００は、データ並べ替え処理５０１、バタフライ演算処理５０２、５０３からなる延べ１６回の基数８のバタフライ演算処理、およびひねり乗算処理５０４を含む。【０００６】
図８に示すデータフローでは、入力された時間領域のデータｘ(n)（n＝0，1，・・・，63）が、ＦＦＴ処理により、周波数領域の信号Ｘ(k)（k＝0，1，・・・，63）にフーリエ変換されている。図８では、一部のデータフローの図示は省略されている。なお、図８に示すデータフローは、ＩＦＦＴ処理を行う場合であっても、基本構成は同じである。【０００７】
ＦＦＴのポイント数が大きい場合、図８に示すデータフローのすべてを回路で実現すると膨大な規模になる。そのため、ＦＦＴのポイント数が大きい場合、一般に、必要な処理性能に応じて、データフローの一部分の処理を実現する回路を繰り返し使用することで、ＦＦＴ処理の全体を実現する方法が採られる。【０００８】
例えば、図８に示すデータフローにおいて、８個のデータに対して並列に（以降、単に「８データ並列で」という。）ＦＦＴ処理を行うＦＦＴ装置を物理的な回路として作成した場合、合計８回の繰り返し処理により６４ポイントＦＦＴ処理を実現することができる。【０００９】
８回の繰り返し処理は、８個のデータに対して行われる部分データフロー５０５ａ〜５０５ｈの、それぞれにあたる処理が順に行われるものであり、具体的には、次のように行われる。すなわち、１回目には、部分データフロー５０５ａにあたる処理が、２回目には、部分データフロー５０５ｂにあたる処理が、３回目には、部分データフロー５０５ｃ（図示せず）にあたる処理が、それぞれ行われる。以降同様に、８回目の部分データフロー５０５ｈにあたる処理までが順にそれぞれ行われる。以上の処理により、６４ポイントＦＦＴ処理が実現される。【００１０】
バタフライ演算では、逐次的な順序に並べられたデータが、所定の規則に従った順序で読み出されて、処理される。そのため、バタフライ演算では、データの並べ替えが必要であり、そのためにはＲＡＭ（Random Access Memory）が用いられる。例えば、特許文献２に、バタフライ演算においてＲＡＭを用いてデータの並べ替えを行うＦＦＴ装置について記載されている。【００１１】
また、例えば、特許文献３に、メモリ使用量を削減したＦＦＴ演算装置におけるバタフライ演算の並列処理による高速化技術が記載されている。【００１２】
ところで、ＦＦＴでは、処理対象である、切り出された入力信号の範囲、すなわち連続する入力データの集合（以降、「処理ブロック」という。）と同じデータが周期的に繰り返されることが仮定されている。ところが、実際の入力信号は必ずしも周期信号ではないため、ＦＦＴ処理後の処理ブロックの両端付近に演算歪みが発生するという問題がある。【００１３】
この問題を解消する技術として、例えば、「オーバーラップ方式」を挙げることができる。オーバーラップ方式では、互いに隣接する処理ブロック同士が所定のデータ数だけオーバーラップされて構成された入力信号に、ＦＦＴ処理が行われる。そして、ＦＦＴ処理後のデータはフィルタ処理された上で、ＩＦＦＴ処理により時間領域信号に再変換された後、演算歪みが生じた処理ブロック両端の信号データのみが除去される。【００１４】
オーバーラップ方式は、ＦＤＥにも適用されている（例えば、特許文献４、５参照）。
オーバーラップＦＤＥ方式について説明する。図９は、オーバーラップＦＤＥ方式によるデジタルフィルタ回路７００の構成例を示すブロック図である。デジタルフィルタ回路７００は、周波数領域でフィルタ処理を行う周波数領域フィルタ回路である。具体的には、入力データとして入力される時間領域の信号は、ＦＦＴにより周波数領域のデータに変換された後にフィルタ処理が施される。そして、フィルタ処理後の信号は、ＩＦＦＴにより時間領域の信号に再変換されて出力信号として出力される。【００１５】
デジタルフィルタ回路７００は、オーバーラップ付加回路７１０と、ＦＦＴ回路７１１と、フィルタ演算回路７１２と、ＩＦＦＴ回路７１３と、オーバーラップ除去回路７１４と、を備える。【００１６】
オーバーラップ付加回路７１０は、時間領域の入力信号である入力データから、Ｎ個のデータ（Ｎは正整数）からなるブロックを順次生成し、ＦＦＴ回路７１１へ出力する。このとき、オーバーラップ付加回路７１０は、各ブロックに対して、直前のブロックとＭ個のデータ（Ｍは正整数）だけオーバーラップさせる。オーバーラップするデータ数Ｍを、予め決定された固定値として回路を構成してもよいし、例えば、ＣＰＵ（Central Processing Unit）などの上位回路（図示せず）から与えられるオーバーラップ数の設定値を参照して、動作時に設定してもよい。なお、オーバーラップ付加回路７１０は、例えば、２ポートメモリにより構成することができる。【００１７】
ＦＦＴ回路７１１は、オーバーラップ付加回路７１０から出力される、Ｍ個のデータがオーバーラップされた時間領域の入力信号に対して、ＦＦＴ処理を行い、周波数領域の信号に変換して、フィルタ演算回路７１２へ出力する。【００１８】
フィルタ演算回路７１２は、ＦＦＴ回路７１１によって変換された周波数領域の信号に対してフィルタ処理を行い、ＩＦＦＴ回路７１３へ出力する。例えば、デジタルフィルタ回路７００が通信チャネルにおける信号歪みの等化処理を実行する場合、フィルタ演算回路７１２を、複素数乗算器で構成することができる。【００１９】
ＩＦＦＴ回路７１３は、フィルタ演算回路７１２から出力されるフィルタ処理後の周波数領域の信号に対してＩＦＦＴ処理を行い、時間領域の信号に再変換してオーバーラップ除去回路７１４へ出力する。【００２０】
オーバーラップ除去回路７１４は、ＩＦＦＴ回路７１３によって再変換された時間領域の信号であるＮ個のデータからなる各ブロックの両端から合計Ｍ個のデータを除去して、ブロックの中央部分のみを取り出し、出力データとして出力する。【００２１】
以下、図９に示すデジタルフィルタ回路７００の動作について、図１０を参照して説明する。図１０は、図９に示すデジタルフィルタ回路の動作の一例を示す動作図である。以下の説明において、処理ステップ（１）〜（５）は、図１０における処理ステップ（１）〜（５）にそれぞれ対応する。
（１）オーバーラップ付加処理
オーバーラップ付加回路７１０は、時間領域の入力信号である入力データから、Ｎ個のデータ（Ｎは正整数）からなるブロックを順次生成する。このとき、オーバーラップ付加回路７１０は、直前のブロックとはＭ個のデータ（Ｍは正整数）だけ重複（オーバーラップ）させる。【００２２】
入力データを
ｘ[i] (i ＝ 0, 1, ・・・)
としたとき、Ｎ個のデータによるブロックは
ｘ[j] (j ＝ m（N−M）−N 〜 m（N−M）−1）, mは正整数)
で表される。ここで、ＮはＦＦＴブロックサイズ、Ｍはオーバーラップ数である。
（２）ＦＦＴ処理
ＦＦＴ回路７１１は、時間領域の信号データからなるブロックに対して、ＦＦＴ処理を行い、周波数領域の信号データからなるブロックに変換する。【００２３】
Ｎ個の時間領域の信号データからなるブロックをあらためて
ｘ[n] (n = 0, 1, ・・・, N-1)
とおくと、ＦＦＴ処理後の周波数領域のブロックは
Ｘ[k] (k = 0, 1, ・・・, N-1)
で与えられる。
（３）周波数領域フィルタ処理
フィルタ演算回路７１２は、ＦＦＴ処理後のブロックを構成する周波数領域の各信号データに対して、フィルタ処理を行う。【００２４】
フィルタ処理前のブロック Ｘ[k] に対するフィルタ処理後のブロックは
Ｘ'[k] = Ｈ(k)・Ｘ[k] (k ＝0, 1, ・・・, N-1)
で与えられる。ここで、Ｈ(k) はフィルタ係数を示す。
（４）ＩＦＦＴ処理
ＩＦＦＴ回路７１３は、フィルタ処理後の周波数領域の信号データからなるブロックに対して、ＩＦＦＴ処理を行い、時間領域の信号データからなるブロックに再変換する。【００２５】
ＩＦＦＴ処理前のブロック Ｘ'[k] に対するＩＦＦＴ処理後のブロックは、
ｙ[n] (n ＝0, 1, ・・・, N-1)
で与えられる。
（５）オーバーラップ除去処理
オーバーラップ除去回路７１４は、ＩＦＦＴ処理後のＮ個の信号データからなるブロック ｙ[n] から、ブロック先頭及び末端からそれぞれＭ／２個のオーバーラップ分のデータを除いた中央部分を切り出す。【００２６】
これにより、オーバーラップが除去された（Ｎ−Ｍ）個の信号データ系列
ｙ'[j] (j ＝M／2 〜（N−1）−M／2)
が生成される。【００２７】
処理の内容を、ＦＤＥ等には限定しない一般のフィルタ処理でオーバーラップ処理を用いるデジタルフィルタ回路もある（例えば、特許文献６参照）。特許文献６に記載されているデジタルフィルタ回路も、オーバーラップ付加処理、ＦＦＴ処理、周波数領域フィルタ処理、ＩＦＦＴ処理、およびオーバーラップ除去処理を行う。【００２８】
ところで、オーバーラップ処理に用いられるフィルタに必要なオーバーラップ量は、実行されるフィルタ処理のインパルス応答長により決定される。さらに、ＦＦＴ処理の処理ブロックの大きさは、必要なオーバーラップ量より大きい必要がある。従って、ＦＦＴ処理の処理ブロックの大きさは、フィルタ処理のインパルス応答長に応じて決定される。【００２９】
サイズが変動するブロックに対してＦＦＴを行う処理装置の、ハードウェア量を減少させる技術もある（例えば、特許文献７参照）。特許文献７の直交変換プロセッサは、ＦＦＴベクトル（「処理ブロック」に相当）の長さに適合して、メモリサイズを決定したり、不要な回路ブロックを無効にしたり、ハードウェアを時分割で動作させたりする。
【先行技術文献】
【特許文献】
【００３０】
【特許文献１】特開平８−１３７８３２号公報  （第３−５頁、図２５）
【特許文献２】特開２００１−５６８０６号公報  （第５頁、図１）
【特許文献３】特開２０１２−２２５００号公報  （第５頁、図１）
【特許文献４】特開２００６−３０４１９２号公報  （第４−５頁、図４）
【特許文献５】特開２０１０−１３０３５５号公報  （第３−６頁、図６）
【特許文献６】国際公開第２０１２／０８６２６２号  （第３−４頁、図１）
【特許文献７】特表２００８−５０６１９１号公報  （第１１−１２頁、図１１、１２）
【非特許文献】
【００３１】
【非特許文献１】J. W. Cooley, J. W. Tukey, "An Algorithm for the Machine Calculation of Complex Fourier Series," Mathematics of Computation, US, American Mathematical Society, Apr. 1965, Vol.19, No. 90, pp. 297-301
【非特許文献２】D. P. Kolba, "A Prime Factor FFT Algorithm Using High-Speed Convolution," IEEE Trans. on Acoustics, US, IEEE Signal Processing Society, Aug. 1977, Vol.29, No.4 , pp. 281-294
【発明の概要】
【発明が解決しようとする課題】
【００３２】
上記のように、ＦＦＴの処理ブロックの大きさは、フィルタ処理のインパルス応答長に依存する。従って、インパルス応答長が大きくなると、必要なオーバーラップ量、及びＦＦＴの処理ブロックの大きさも増大する。その結果、処理に必要な回路規模や消費電力が増大するという問題がある。【００３３】
このように、一般に、ＦＦＴ処理と周波数領域のフィルタ処理とを併用し、さらに、オーバーラップ処理を用いるときは、フィルタのインパルス応答長が長いほど、処理に必要な回路規模や消費電力が大きくなる。従って、フィルタの特性に合わせて、動作する回路の規模を最適化し、消費電力を最小限に抑えることが望ましい。【００３４】
これに対して、特許文献１−３や非特許文献１、２に記載されたＦＦＴ装置では、処理ブロックの変更に対応した、動作回路の規模の最適化や消費電力制御等の制御は特に行われない。【００３５】
また、特許文献４−６に記載されたオーバーラップを用いるフィルタ方式でも、フィルタのインパルス応答に着目した処理は行われていない。従って、特許文献４−６に記載された方式でも上記の問題を解決することができない。【００３６】
特許文献７に記載されている直交変換プロセッサは、メモリサイズを決定したり、不要な回路ブロックを無効にしたり、ハードウェアを時分割で動作させたりするものの、ＦＦＴ／ＩＦＦＴ処理自体における並べ替え処理は必要である。一般に並べ替え処理には、処理ブロックのデータをすべて記憶できる容量のメモリが必要である。そのため、フィルタ処理のインパルス応答長が大きく、処理ブロックの大きさが大きいときには大きな容量のメモリが必要となり、処理に必要な回路規模や消費電力が増大するという問題がある。
（発明の目的）
本発明は、ＦＦＴ処理と周波数領域におけるフィルタ処理とを併用する場合に、消費電力を削減することができるデジタルフィルタ装置を提供することを目的とする。
【課題を解決するための手段】
【００３７】
本発明のデジタルフィルタ装置は、時間領域の連続するＮ−Ｍ個の入力データ（Ｎは正整数、ＭはＮ以下の正整数）を含む第１の入力ブロックに第１の入力ブロックの直前の連続するＭ個のデータが付加された第１のオーバーラップブロックを生成する第１のオーバーラップ付加手段、第１のオーバーラップブロックを第１のデータ並べ替え処理を用いた高速フーリエ変換処理により周波数領域の第１の周波数領域ブロックに変換する第１の高速フーリエ変換手段、第１の周波数領域ブロックに対して第１のフィルタ処理を行う第１のフィルタ演算手段、第１のフィルタ処理がなされた第１の処理後ブロックを第２のデータ並べ替え処理を用いた逆高速フーリエ変換処理により第１の時間領域ブロックに変換する第１の逆高速フーリエ変換手段、及び第１の時間領域ブロックの時間軸の両端から合計Ｍ個のデータを除去して第１の出力データを生成する第１のオーバーラップ除去手段を含む第１のデジタルフィルタリング手段と、時間領域の連続するＱ−Ｐ個の入力データ（Ｑは正整数、ＰはＱ以下の正整数）を含む第２の入力ブロックに第２の入力ブロックの直前の連続するＰ個のデータが付加された第２のオーバーラップブロックを生成する第２のオーバーラップ付加手段、第２のオーバーラップブロックに含まれるすべての第２の入力ブロックを同時に入力し、高速フーリエ変換処理により周波数領域の第２の周波数領域ブロックに変換する第２の高速フーリエ変換手段、前第２の周波数領域ブロックに対して第２のフィルタ処理を行う第２のフィルタ演算手段、第２のフィルタ処理がなされた第２の処理後ブロックに含まれるすべての処理後データを同時に入力し、逆高速フーリエ変換処理により第２の時間領域ブロックに変換する第２の逆高速フーリエ変換手段、及び第２の時間領域ブロックの時間軸の両端から合計Ｐ個のデータを除去して第２の出力データを生成する第２のオーバーラップ除去手段を含む第２のデジタルフィルタリング手段と、実行対象のフィルタ処理を選択する選択信号に従って、第１の出力データ又は第２の出力データを選択するデータ選択手段とを備え、第２のデジタルフィルタリング手段は、データ選択手段によって第１の出力データが選択されたとき、動作を停止し、第１のデジタルフィルタリング手段は、データ選択手段によって第２の出力データが選択されたとき、動作を停止することを特徴とする。【００３８】
本発明のデジタルフィルタ処理方法は、実行対象のフィルタ処理を選択する選択信号に従って、時間領域の連続するＮ−Ｍ個の入力データ（Ｎは正整数、ＭはＮ以下の正整数）を含む第１の入力ブロックに第１の入力ブロックの直前の連続するＭ個のデータが付加された第１のオーバーラップブロックを生成し、第１のオーバーラップブロックを第１のデータ並べ替え処理を用いた高速フーリエ変換処理により周波数領域の第１の周波数領域ブロックに変換し、第１の周波数領域ブロックに対して第１のフィルタ処理を行い、第１のフィルタ処理がなされた第１の処理後ブロックを第２のデータ並べ替え処理を用いた逆高速フーリエ変換処理により第１の時間領域ブロックに変換し、第１の時間領域ブロックの時間軸の両端から合計Ｍ個のデータを除去して第１の出力データを生成する第１のデジタルフィルタ処理、又は時間領域の連続するＱ−Ｐ個の入力データ（Ｑは正整数、ＰはＱ以下の正整数）を含む第２の入力ブロックに第２の入力ブロックの直前の連続するＰ個のデータが付加された第２のオーバーラップブロックを生成し、第２のオーバーラップブロックに含まれるすべての第２の入力ブロックを同時に入力し、高速フーリエ変換処理により周波数領域の第２の周波数領域ブロックに変換し、前第２の周波数領域ブロックに対して第２のフィルタ処理を行い、第２のフィルタ処理がなされた第２の処理後ブロックに含まれるすべての処理後データを同時に入力し、逆高速フーリエ変換処理により第２の時間領域ブロックに変換し、第２の時間領域ブロックの時間軸の両端から合計Ｐ個のデータを除去して第２の出力データを生成する第２のデジタルフィルタ処理を選択し、第２のデジタルフィルタ処理を選択したとき、第１のデジタルフィルタ処理を停止し、第１のデジタルフィルタ処理を選択したとき、第２のデジタルフィルタ処理を停止することを特徴とする。【００３９】
本発明のデジタルフィルタプログラムが記憶された記憶媒体には、時間領域の連続するＮ−Ｍ個の入力データ（Ｎは正整数、ＭはＮ以下の正整数）を含む第１の入力ブロックに第１の入力ブロックの直前の連続するＭ個のデータが付加された第１のオーバーラップブロックを生成し、第１のオーバーラップブロックを第１のデータ並べ替え処理を用いた高速フーリエ変換処理により周波数領域の第１の周波数領域ブロックに変換し、第１の周波数領域ブロックに対して第１のフィルタ処理を行い、第１のフィルタ処理がなされた第１の処理後ブロックを第２のデータ並べ替え処理を用いた逆高速フーリエ変換処理により第１の時間領域ブロックに変換し、第１の時間領域ブロックの時間軸の両端から合計Ｍ個のデータを除去して第１の出力データを生成する第１のデジタルフィルタ処理手段、時間領域の連続するＱ−Ｐ個の入力データ（Ｑは正整数、ＰはＱ以下の正整数）を含む第２の入力ブロックに第２の入力ブロックの直前の連続するＰ個のデータが付加された第２のオーバーラップブロックを生成し、第２のオーバーラップブロックに含まれるすべての第２の入力ブロックを同時に入力し、高速フーリエ変換処理により周波数領域の第２の周波数領域ブロックに変換し、前第２の周波数領域ブロックに対して第２のフィルタ処理を行い、第２のフィルタ処理がなされた第２の処理後ブロックに含まれるすべての処理後データを同時に入力し、逆高速フーリエ変換処理により第２の時間領域ブロックに変換し、第２の時間領域ブロックの時間軸の両端から合計Ｐ個のデータを除去して第２の出力データを生成する第２のデジタルフィルタ処理手段、実行対象のフィルタ処理を選択する選択信号に従って、第１のデジタルフィルタ処理手段又は第２のデジタルフィルタ処理手段を選択する選択手段、及び第２のデジタルフィルタ処理手段を選択したとき第１のデジタルフィルタ処理手段を停止し、第１のデジタルフィルタ処理手段を選択したとき第２のデジタルフィルタ処理手段を停止する停止手段としてデジタルフィルタ装置が備えるコンピュータを機能させることを特徴とするデジタルフィルタプログラムが記憶されている。
【発明の効果】
【００４０】
本発明によれば、ＦＦＴ処理と周波数領域におけるフィルタ処理とを併用する場合に、消費電力を削減することができる。
【図面の簡単な説明】
【００４１】
【図１】本発明の実施形態に係るデジタルフィルタ回路の構成を示すブロック図である。
【図２】本発明の実施形態に係るＦＦＴ回路の構成を示すブロック図である。
【図３】本発明の実施形態に係る逐次順序に従うデータ組の配列を示す図である。
【図４】本発明の実施形態に係るビットリバース順序に従うデータ組の配列を示す図である。
【図５】本発明の実施形態に係るデータ並べ替え処理部の構成例を示すブロック図である。
【図６】本発明の実施形態に係るＦＦＴ回路の構成を示すブロック図である。
【図７】２段階のバタフライ演算を用いる１６ポイントＦＦＴ処理のデータフローを示す図である。
【図８】２段階のバタフライ演算を用いる６４ポイントＦＦＴ処理のデータフローを示す図である。
【図９】ＦＦＴ回路の構成を示すブロック図である。
【図１０】オーバーラップＦＤＥ方式による示すデジタルフィルタ回路の動作の一例を示す動作図である。
【発明を実施するための形態】
【００４２】
次に本発明の実施の形態について図面を参照して詳細に説明する。図１は、本発明の実施形態に係るデジタルフィルタ回路４００の構成例を示すブロック図である。
【００４３】
デジタルフィルタ回路４００は、第１のデジタルフィルタ回路２００と、第２のデジタルフィルタ回路３００と、データ選択部４１０とを備える。このように、デジタルフィルタ回路４００は、２つのデジタルフィルタ回路２００、３００が互いに並列に接続されて構成されている。
【００４４】
デジタルフィルタ回路４００に入力される入力データには、ＣＰＵなどの上位回路（図示せず）から与えられる選択信号４１１に基づいて、第１のデジタルフィルタ回路２００、又は、第２のデジタルフィルタ回路３００の、いずれかによってフィルタ処理が行われる。
【００４５】
データ選択部４１０は、第１のデジタルフィルタ回路２００、又は、第２のデジタルフィルタ回路３００の、いずれかがフィルタ処理した処理データを、選択信号４１１に基づいて選択し、出力データとして出力する。
【００４６】
第１のデジタルフィルタ回路２００、及び、第２のデジタルフィルタ回路３００は、オーバーラップ方式により、ＦＤＥ等のフィルタ処理を行う。
【００４７】
第１のデジタルフィルタ回路２００は、オーバーラップ付加回路２１０と、ＦＦＴ回路２１１と、フィルタ演算回路２１２と、ＩＦＦＴ回路２１３と、オーバーラップ除去回路２１４と、を備える。
【００４８】
オーバーラップ付加回路２１０は、時間領域の入力信号である入力データから、連続するＮ個のデータ（Ｎは正整数）からなる入力ブロックを順次生成し、ＦＦＴ回路２１１へ出力する。このとき、オーバーラップ付加回路２１０は、各入力ブロックに対して、直前のブロックの最後のＭ個のデータ（Ｍは正整数）をオーバーラップさせる。「オーバーラップ」とは、各入力ブロックの先頭の所定のＸ個のデータ（Ｘは正整数）を、直前のブロックの最後のＸ個のデータと同一データとし、２つのブロックに重複したＸ個のデータがそれぞれのブロックに含まれるようにすることを意味する。オーバーラップ付加回路２１０は、オーバーラップされたＭ個のデータを含む、連続するＮ個のデータからなる「オーバーラップブロック」を生成する。なお、オーバーラップ付加回路２１０は、例えば、２ポートメモリにより構成される。
【００４９】
ＦＦＴ回路２１１は、オーバーラップ付加回路２１０から出力されるオーバーラップブロックに対して、Ｎポイントの高速フーリエ変換（ＦＦＴ）を行い、周波数領域の信号に変換する。そして、ＦＦＴ回路２１１は、Ｎ個の周波数領域のデータからなる「周波数領域ブロック」をフィルタ演算回路２１２へ出力する。
【００５０】
フィルタ演算回路２１２は、ＦＦＴ回路２１１から出力される周波数領域ブロックに対してフィルタ処理を行い、「処理後ブロック」をＩＦＦＴ回路２１３へ出力する。例えば、デジタルフィルタ回路２００が通信チャネルにおける信号歪みの等化処理、すなわちＦＤＥを実行する場合であれば、フィルタ演算回路２１２は、複素数乗算器で構成することができる。
【００５１】
ＩＦＦＴ回路２１３は、フィルタ演算回路２１２から出力される処理後ブロックに対して、Ｎポイントの逆高速フーリエ変換（ＩＦＦＴ）を行い、時間領域の信号に再変換する。そして、ＩＦＦＴ回路２１３は、Ｎ個の時間領域のデータからなる「時間領域ブロック」をオーバーラップ除去回路２１４へ出力する。
【００５２】
オーバーラップ除去回路２１４は、ＩＦＦＴ回路２１３から出力される各時間領域ブロックの時間軸の両端から合計Ｍ個のデータを除去して、時間領域ブロックの中央部分のみを取り出し、「出力データ」として出力する。
【００５３】
オーバーラップ数Ｍは、予め決定された固定値であってもよい。その場合、オーバーラップ数Ｍに合わせて、オーバーラップ付加回路２１０、およびオーバーラップ除去回路２１４を構成することができる。あるいは、オーバーラップ数Ｍは、ＣＰＵ（図示せず）などの上位回路から与えられ、オーバーラップ数設定として動作時に設定されてもよい。以上のように、オーバーラップ数Ｍは、固定値であってもよいし、外部からの設定値であってもよいが、ＦＦＴのブロックサイズＮよりも小さい値である必要がある。本実施形態では、Ｍ＝１６、Ｎ＝６４に設定される。
【００５４】
同様に、第２のデジタルフィルタ回路３００は、オーバーラップ付加回路３１０と、ＦＦＴ回路３１１と、フィルタ演算回路３１２と、ＩＦＦＴ回路３１３と、オーバーラップ除去回路３１４と、を備える。
【００５５】
オーバーラップ付加回路３１０は、時間領域の入力信号である入力データから、連続するＱ個のデータ（Ｑは正整数）からなる入力ブロックを順次生成し、ＦＦＴ回路３１１へ出力する。このとき、オーバーラップ付加回路３１０は、各ブロックに対して、直前のブロックの最後のＰ個のデータ（Ｐは正整数）をオーバーラップさせる。オーバーラップ付加回路３１０は、オーバーラップされたＰ個のデータを含む、連続するＱ個のデータからなるオーバーラップブロックを生成する。
【００５６】
ＦＦＴ回路３１１は、オーバーラップ付加回路３１０から出力されるオーバーラップブロックに対して、Ｑポイントの高速フーリエ変換（ＦＦＴ）を行い、周波数領域の信号に変換する。そして、ＦＦＴ回路３１１は、Ｑ個の周波数領域のデータからなる周波数領域ブロックをフィルタ演算回路３１２へ出力する。
【００５７】
フィルタ演算回路３１２は、ＦＦＴ回路３１１から出力される周波数領域ブロックに対してフィルタ処理を行い、処理後ブロックをＩＦＦＴ回路３１３へ出力する。
【００５８】
ＩＦＦＴ回路３１３は、フィルタ演算回路３１２から出力される処理後ブロックに対して、Ｑポイントの逆高速フーリエ変換（ＩＦＦＴ）を行い、時間領域の信号に再変換する。そして、ＩＦＦＴ回路３１３は、Ｑ個の時間領域のデータからなる時間領域ブロックをオーバーラップ除去回路３１４へ出力する。
【００５９】
オーバーラップ除去回路３１４は、ＩＦＦＴ回路３１３から出力される各時間領域ブロックの時間軸の両端から合計Ｐ個のデータを除去して、時間領域ブロックの中央部分のみを取り出し、出力データとして出力する。
【００６０】
オーバーラップ数Ｑも、予め決定された固定値であってもよいし、ＣＰＵなどの上位回路から与えられ、動作時に設定されてもよい。いずれの場合であっても、ＦＦＴのブロックサイズＱよりも小さい値である必要がある。さらに、本実施形態では、第２のデジタルフィルタ回路３００のＦＦＴのブロックサイズＱは、第１のデジタルフィルタ回路２００のＦＦＴのブロックサイズＮよりも小さい値とする。具体的には、Ｐ＝４、Ｑ＝１６に設定される。
【００６１】
次に、第１のデジタルフィルタ回路２００を構成するＦＦＴ回路２１１の構成を説明する。
【００６２】
図２は、本発明の実施形態に係るＦＦＴ回路２１１の構成例を示すブロック図である。
ＦＦＴ回路２１１は、図８に示されたデータフロー５００に従って、２段階の基数８のバタフライ処理で分解された６４ポイントＦＦＴを、パイプライン回路方式によって処理する。ＦＦＴ回路２１１は、時間領域のデータｘ(n)（n＝0，1，・・・，63）が入力されると、ｘ(n)をＦＦＴ処理によりフーリエ変換して周波数領域の信号Ｘ(k)（k＝0，1，・・・，63）を生成し、出力する。
【００６３】
図８のデータフローに示した６４ポイントＦＦＴ処理、すなわち各々８データを含む、８組のデータの組に対する処理のすべてを、組ごとに個別の回路で実行するためには、膨大な規模の回路を要する。そのため、ＦＦＴ回路２１１は、８データ並列で６４ポイントＦＦＴ処理を行うものとする。この場合、ＦＦＴ回路２１１は、入力された時間領域のデータｘ(n)をＦＦＴ処理によりフーリエ変換して周波数領域の信号Ｘ(k)を生成して出力する。このとき、入力データｘ(n)として、８データずつ、８サイクルの期間に、図３に示す順序で、合計で６４個のデータが入力される。なお、ここでは、図３の表の内容として示された、0から63までの数字は、ｘ(n)におけるnを意味する。
【００６４】
具体的には、１サイクル目に、データ組Ｐ１を構成するｘ(0)，ｘ(1)，・・・，ｘ(7)の８データが入力される。そして、２サイクル目に、データ組Ｐ２を構成するｘ(8)，ｘ(9)，・・・，ｘ(15)の８データが入力される。以降同様に、３サイクル目から８サイクル目まで、データ組Ｐ３〜Ｐ８を構成するデータがそれぞれ入力される。
【００６５】
同様に、出力データＸ(k)として、８データずつ、８サイクルの期間に、図３に示す順序で、６４データが出力される。なお、ここでは、図３の表の内容として示された、0から63までの数字は、Ｘ(k) におけるkを意味する。
【００６６】
具体的には、１サイクル目に、データ組Ｐ１を構成するＸ(0)，Ｘ(1)，・・・，Ｘ(7)の８データが出力される。２サイクル目に、データ組Ｐ２を構成するＸ(8)，Ｘ(9)，・・・，Ｘ(15)の８データが出力される。以降同様に、３サイクル目から８サイクル目まで、データ組Ｐ３〜Ｐ８を構成するデータがそれぞれ出力される。
【００６７】
ＦＦＴ回路２１１は、第１のデータ並べ替え処理部１１、第１のバタフライ演算処理部２１、第２のデータ並べ替え処理部１２、ひねり乗算処理部３１、第２のバタフライ演算処理部２２、および第３のデータ並べ替え処理部１３、を備える。ＦＦＴ回路２１１は、第１のデータ並べ替え処理、第１のバタフライ演算処理、第２のデータ並べ替え処理、ひねり乗算処理、第２のバタフライ演算処理、および第３のデータ並べ替え処理を、パイプライン処理する。
【００６８】
第１のデータ並べ替え処理部１１、第２のデータ並べ替え処理部１２は、データ並べ替えのためのバッファ回路である。第１のデータ並べ替え処理部１１、および第２のデータ並べ替え処理部１２は、それぞれ、第１のバタフライ演算処理部２１の前と後とで、それぞれＦＦＴ処理のアルゴリズム上のデータの依存関係に基づいた、データシーケンスの並べ替えを行う。
【００６９】
第３のデータ並べ替え処理部１３も、同様に、データ並べ替えのためのバッファ回路である。すなわち、第３のデータ並べ替え処理部１３は、第２のバタフライ演算処理部２２の後で、ＦＦＴ処理のアルゴリズム上のデータの依存関係に基づいた、データシーケンスの並べ替えを行う。さらに、第３のデータ並べ替え処理部１３は、上記の並べ替えに加えて、ＦＦＴ回路２１１の出力Ｘ(k)において、任意のkに対して、出力Ｘ(k)とＸ(N-k)とを高々１サイクル以内の時間差で出力するための並べ替え処理も行う。
【００７０】
具体的には、第１のデータ並べ替え処理部１１は、入力データｘ(n)の入力順序である図３に示す「逐次順序」を、第１のバタフライ演算処理部２１に入力する順序である図４に示す「ビットリバース順序」に並べ替える。
【００７１】
図４に示すビットリバース順序は、図８に示したデータフロー図における、１段目の基数８のバタフライ処理５０２への入力データ組に対応する。具体的には、１サイクル目に、データ組Ｐ１を構成するｘ(0)，ｘ(8)，・・・，ｘ(56)の８データが設定される。そして、２サイクル目に、データ組Ｐ２を構成するｘ(1)，ｘ(9)，・・・，ｘ(57)の８データが設定される。以降、３サイクル目から８サイクル目まで同様にして、データ組Ｐ３〜Ｐ８を構成するデータが設定される。
【００７２】
ここで、「逐次順序」と「ビットリバース順序」とについて、具体的に説明する。「逐次順序」とは、図３に示された、８つのデータ組Ｐ１、Ｐ２、Ｐ３、Ｐ４、Ｐ５、Ｐ６、Ｐ７、およびＰ８の順序をいう。データ組Ｐs（ｓは処理サイクルの順を示す値。s＝1，・・・，8）は、それぞれ、ｐs(0)からｐs(7)まで、順に並んだ８個のデータからなり、ｐs(i)は、
ｐs(i)＝8（s−1）＋i
である。そして、各データ組は、処理のサイクルの進行に対応して、Ｐ１、Ｐ２、Ｐ３、Ｐ４、Ｐ５、Ｐ６、Ｐ７、およびＰ８の順に並べられている。つまり、逐次順序とは、is個のデータを、先頭のデータからｉ個ずつデータ順に並べたデータ組をｓ個作成し、そのデータ組をサイクル順に並べたものである。
【００７３】
「ビットリバース順序」とは、図４に示された、８つのデータ組Ｑ１、Ｑ２、Ｑ３、Ｑ４、Ｑ５、Ｑ６、Ｑ７、およびＱ８の順序をいう。データ組Ｑｓは、それぞれ、ｑs(0)からｑs(7)までの８個のデータからなり、ｑs(i)は、
ｑs(i)＝（s−1）＋8i
である。そして、各データ組は、処理のサイクルの進行に対応して、Ｑ１、Ｑ２、Ｑ３、Ｑ４、Ｑ５、Ｑ６、Ｑ７、およびＱ８の順に並べられている。つまり、ビットリバース順序とは、逐次順序で入力されたis個のデータを、先頭のデータからｓ個ずつサイクル順に並べ、同じサイクルのｉ個のデータを１つの組としてデータ順に並べたものである。
【００７４】
以上のように、ビットリバース順序の各データ組は、逐次順序の各組が設定されれば一意に定まる。ビットリバース順序の各データ組Ｑs（s＝1，・・・，8）を構成するデータのｉ番目のデータは、逐次順序に従ったｉ番目のサイクルにおける、ｓ番目のデータである。すなわち、
Ｑs(i)＝Ｐi(s)
である。このように、Ｑs(i)とＰi(s)とは、各データ組を構成するデータについての、サイクルの進行に対する順序とデータ位置に対する順序とが入れ替えられた関係にある。従って、ビットリバース順序で入力されたデータを、ビットリバース順序に従って並べ替えると、逐次順序になる。
【００７５】
図３における各行ｐs(i)、及び図４における８つの行ｑs(i)は、それぞれ、次段のｉ番目に入力されるデータを示す。各データ組に含まれる８個の数字は、ＦＦＴのポイントのうちの１個を特定する識別情報であり、具体的にはｘ(n)におけるｎの値である。
【００７６】
なお、逐次順序及びビットリバース順序は、図３、４に例示されたものに限定されない。すなわち、逐次順序の各データ組は、上記のように、ＦＦＴのポイント数、サイクル数、並列に処理するデータ数に応じて、順にデータを並べて作成すればよい。そして、ビットリバース順序の各データ組は、上記のように、逐次順序で入力されるデータの、サイクルの進行に対する順序とデータ位置に対する順序とを入れ替えて作成すればよい。
【００７７】
第１のバタフライ演算処理部２１は、図８のデータフロー５００において２回行われる基数８のバタフライ演算処理において、１回目のバタフライ演算処理５０２（第１のバタフライ演算処理）を処理するバタフライ回路である。第１のバタフライ演算処理部２１は、バタフライ演算処理の結果を、データｙ(n)（n＝0，1，・・・，63）として、図３に示されている逐次順序で出力する。
【００７８】
第２のデータ並べ替え処理部１２は、第１のバタフライ演算処理部２１が逐次順序で出力したデータｙ(n)を、第２のバタフライ演算処理部２２に入力するために、図４に示されているビットリバース順序に並べ替える。
【００７９】
ひねり乗算処理部３１は、第１のバタフライ演算処理後に、ＦＦＴ処理における複素平面上の複素回転を処理する回路であり、図８に示すデータフロー５００における、ひねり乗算処理５０４に対応する。なお、ひねり乗算処理では、データの並べ替えは行われない。
【００８０】
第２のバタフライ演算処理部２２は、図８のデータフロー図における、２回目の基数８のバタフライ処理５０３を処理するバタフライ回路である。第２のバタフライ演算処理部２２は、ビットリバース順序で入力されるひねり乗算処理後のデータｙ'(n)（n＝0，1，・・・，63）に対してバタフライ演算処理を行い、その結果Ｘ(k)（n＝0，1，・・・，63）を、同じくビットリバース順序で出力する。
【００８１】
第３のデータ並べ替え処理部１３は、第２のバタフライ演算処理部２２がビットリバース順序で出力するデータＸ(k)を、図３の逐次順序に並べ替える。
【００８２】
データ並べ替え処理部は、入力されたデータを一旦記憶し、記憶したデータの選択及び出力を制御することによって、図３の逐次順序、図４のビットリバース順序のそれぞれに従ったデータの並べ替え処理を実現する。以下に、データ並べ替え処理部の具体例を示す。
【００８３】
第１のデータ並べ替え処理部１１、第２のデータ並べ替え処理部１２、及び、第３のデータ並べ替え処理部１３は、例えば図５に示すデータ並べ替え処理部１００で実現することができる。
【００８４】
データ並べ替え処理部１００は、入力情報１０３として入力される８個のデータからなるデータ組Ｄ１〜Ｄ８を、ＦＩＦＯバッファ（First In First Out Buffer。先入れ先出しバッファ）における先入れ順序で入力して、データ記憶位置１０１ａ〜１０１ｈに書き込み、記憶する。具体的には、データ記憶位置１０１ａ〜１０１ｈのそれぞれに、データ組Ｄ１〜Ｄ８が記憶される。
【００８５】
次に、データ並べ替え処理部１００は、ＦＩＦＯバッファにおける先出し順序で、記憶されているデータを出力する。具体的には、データ並べ替え処理部１００は、データ読み出し位置１０２ａ〜１０２ｈのそれぞれから８個のデータを読み出して１つのデータ組とし、８つのデータ組Ｄ１’〜Ｄ８’を出力情報１０４として出力する。このように、データ組Ｄ１’〜Ｄ８’は、サイクル順に並べられたデータ組Ｄ１〜Ｄ８に含まれるデータが、データ位置の順に並べ替えられて１つの組とされたものである。
【００８６】
以上説明したように、ＦＦＴ回路２１１において、第１のデータ並べ替え処理部１１、第２のデータ並べ替え処理部１２、及び第３のデータ並べ替え処理部１３によって、図３の逐次順序、図４のビットリバース順序、のそれぞれに従った３回の並べ替え処理が必要となる。なぜなら、ＦＦＴ回路２１１は、８データ並列で６４ポイントＦＦＴ処理を行うため、ＦＦＴ処理に８サイクルが必要であり、サイクル間をまたがったデータの並べ替えが必要となるからである。
【００８７】
ＩＦＦＴ回路２１３もＦＦＴ回路２１１と同様の構成で実現することができる。
【００８８】
次に、第２のデジタルフィルタ回路３００を構成するＦＦＴ回路３１１の構成を説明する。
【００８９】
図６は、本発明の実施形態に係るＦＦＴ回路３１１の構成例を示すブロック図である。
【００９０】
ＦＦＴ回路３１１は、図７に示されたデータフロー６００に従って、２段階の基数４のバタフライ処理で分解された１６ポイントＦＦＴを、パイプライン回路方式によって処理する。ＦＦＴ回路３１１は、時間領域のデータｘ(n)（n＝0，1，・・・，15）を入力し、ｘ(n)をＦＦＴ処理によりフーリエ変換して周波数領域の信号Ｘ(k)（k＝0，1，・・・，15）を生成し、出力する。
【００９１】
図７に示すデータフロー６００における１６ポイントＦＦＴ処理は、図８に示すデータフロー５００における６４ポイントＦＦＴ処理に比べて演算処理量が少ない。そのため、１６ポイントＦＦＴ処理、すなわち１６個のデータに対する処理のすべてを、一括して一つの回路で実現しても回路規模は小さい。そこで、ＦＦＴ回路３１１は、データフロー６００におけるすべての処理を一体の回路で実現し、１６データ並列で１６ポイントＦＦＴ処理を行うものとする。この場合、ＦＦＴ回路３１１は、時間領域のデータｘ(n)を入力し、ＦＦＴ処理でフーリエ変換した周波数領域の信号Ｘ(k)を生成して出力する。このとき、入力データｘ(n)として、１６データのすべてが１サイクルの期間内に入力される。
【００９２】
同様に、出力データＸ(k)として、１６データのすべてが１サイクルの期間内に出力される。
【００９３】
ＦＦＴ回路３１１は、第１のバタフライ演算処理部５１、ひねり乗算処理部６１、および第２のバタフライ演算処理部５２、を備える。ＦＦＴ回路３１１は、第１のバタフライ演算処理、ひねり乗算処理、および第２のバタフライ演算処理を、パイプライン処理する。
【００９４】
第１のバタフライ演算処理部２１は、図７に示すデータフロー６００において２回行われる基数４のバタフライ演算処理における、１回目のバタフライ演算処理６０２（第１のバタフライ演算処理）を実行するバタフライ回路である。第１のバタフライ演算処理部２１は、バタフライ演算処理の結果を、データｙ(n)（n＝0，1，・・・，63）として、並列に出力する。
【００９５】
ひねり乗算処理部６１は、第１のバタフライ演算処理後に、ＦＦＴ演算における複素平面上の複素回転を処理する回路であり、図７に示すデータフロー６００における、ひねり乗算処理６０４に対応する。なお、ひねり乗算処理では、データの並べ替えは行われない。
【００９６】
第２のバタフライ演算処理部５２は、図７に示すデータフロー図における、２回目の基数４のバタフライ処理６０３を実行するバタフライ回路である。第２のバタフライ演算処理部２２は、並列に入力されるバタフライ演算処理後のデータｙ(n)（n＝0，1，・・・，63）に対してバタフライ演算処理を行い、その結果Ｘ(k)（n＝0，1，・・・，63）を、同じく並列に出力する。
【００９７】
以上説明したように、ＦＦＴ回路３１１は、ＦＦＴ回路２１１が必要としたデータ並べ替え処理部を必要としない。なぜなら、ＦＦＴ回路３１１は、１６データ並列で１６ポイントＦＦＴ処理を行い、ＦＦＴ処理を１サイクルで完了させるため、サイクル間をまたがったデータの並べ替えが必要でないからである。なお、データ並べ替え処理部とは、例えば図７に示す例ではデータ並べ替え処理６０１、図８に示す例ではデータ並べ替え処理５０１である。
【００９８】
ＩＦＦＴ回路３１３も、ＦＦＴ回路３１１と同様の構成で実現することができる。
【００９９】
以上のように、ＦＦＴ回路３１１はデータ並べ替え処理部を必要としないため、データ並べ替え処理部を必要とするＦＦＴ回路２１１よりも、回路規模が小さい。その結果、ＦＦＴ回路３１１によるＦＦＴ処理は、データ並べ替え処理部を必要としない分だけ、ＦＦＴ回路２１１によるＦＦＴ処理よりも消費電力が小さい。
【０１００】
従って、ＦＦＴ処理のポイント数が少ないときは、ＦＦＴ回路３１１によるＦＦＴ処理を用いることにより、ＦＦＴ処理による消費電力を削減することができる。また、ＦＦＴ処理のポイント数が、並列処理を行うには多く、回路規模が問題になる場合には、ＦＦＴ回路２１１、すなわちデータ並べ替え処理を用いるＦＦＴ回路を使用することができる。
この場合は、データ並べ替え処理の効果により、１サイクル以内にすべての出力データを得ることができる。
（実施形態の動作）
第１のデジタルフィルタ回路２００のオーバーラップ数Ｍ＝１６である。すなわち、第１のデジタルフィルタ回路２００は、インパルス応答長が１６タップまでのフィルタ処理を行うことができる。
【０１０１】
一方、第２のデジタルフィルタ回路３００のオーバーラップ数Ｑ＝４である。すなわち、第２のデジタルフィルタ回路３００は、インパルス応答長が４タップまでのフィルタ処理を行うことができる。
【０１０２】
デジタルフィルタ回路４００は、実行するフィルタ処理のインパルス応答長が４タップ以下の場合は、第２のデジタルフィルタ回路３００を使用してフィルタ処理を行い、実行するフィルタ処理のインパルス応答長が５タップ以上の場合は、第１のデジタルフィルタ回路２００を使用してフィルタ処理を行う。
【０１０３】
具体的には、デジタルフィルタ回路４００は、デジタルフィルタ回路４００が実行するフィルタ処理のインパルス応答長に従って、以下のように動作する。
１）インパルス応答長が４タップ以下の場合
ＣＰＵなどの上位回路（図示せず）から、第２のデジタルフィルタ回路３００の選択を指示する選択信号４１１が与えられる。選択信号４１１によって指定された第２のデジタルフィルタ回路３００は、フィルタ処理を実行する。
【０１０４】
一方、選択信号４１１によって指定されていない第１のデジタルフィルタ回路２００は、フィルタ処理の実行を停止する。このとき、第１のデジタルフィルタ回路２００は、クロック・ゲーティングやパワー・ゲーティング等により回路動作を停止することで、消費電力を低減することができる。
【０１０５】
データ選択部４１０は、選択信号４１１に従って、第２のデジタルフィルタ回路３００が出力するデータを、出力データとして出力する。
２）インパルス応答長が５タップ以上の場合
上位回路から、第１のデジタルフィルタ回路２００の選択を指示する選択信号４１１が与えられる。選択信号４１１に指定された第１のデジタルフィルタ回路２００は、フィルタ処理を実行する。選択信号４１１に指定されていない第２のデジタルフィルタ回路３００は、フィルタ処理の実行を停止する。このとき、第２のデジタルフィルタ回路３００は、クロック・ゲーティングやパワー・ゲーティング等により回路動作を停止することで、消費電力を低減することができる。
【０１０６】
データ選択部４１０は、選択信号４１１に従って、第１のデジタルフィルタ回路２００が出力するデータを、出力データとして出力する。
（実施形態の効果）
以上のように、本実施形態のデジタルフィルタ回路４００は、対応可能なインパルス応答長が大きい第１のデジタルフィルタ回路２００と、対応可能なインパルス応答長が小さい第２のデジタルフィルタ回路３００とが互いに並列に接続されて構成されている。動作時の消費電力は、第２のデジタルフィルタ回路３００の方が第１のデジタルフィルタ回路２００よりも小さい。第１のデジタルフィルタ回路２００又は第２のデジタルフィルタ回路３００のいずれを用いてフィルタ処理を行うかは、実行対象のフィルタ処理のインパルス応答長に応じて選択することができる。
【０１０７】
実行対象のフィルタ処理のインパルス応答長が所定値より大きい場合は、第１のデジタルフィルタ回路２００が使用され、実行対象のフィルタ処理のインパルス応答長が所定値以下の場合は、第２のデジタルフィルタ回路３００が使用される。従って、インパルス応答長が所定値以下の場合に、フィルタ処理に要する消費電力を小さくすることができる。
インパルス応答長が所定値より大きい場合は、データ並べ替え処理が行われるため、消費電力は増加するが、並列処理を行うにもかかわらず、１サイクル以内にすべての出力データを出力することができる
なお、本実施形態では、第１のデジタルフィルタ回路２００のオーバーラップ数Ｍ＝１６、ＦＦＴブロックサイズＮ＝６４、第２のデジタルフィルタ回路３００のオーバーラップ数Ｐ＝４、ＦＦＴブロックサイズＱ＝１６、としたが、これらの値には限定されない。第２のデジタルフィルタ回路３００のオーバーラップ数、及び、ＦＦＴブロックサイズは、ＦＦＴ処理が１サイクルで実行可能な任意の値に設定することができる。第１のデジタルフィルタ回路２００のオーバーラップ数、及び、ＦＦＴブロックサイズは、第２のデジタルフィルタ回路３００のオーバーラップ数、及び、ＦＦＴブロックサイズよりも大きい任意の値に設定することができる。
【０１０８】
本実施形態では、ＦＦＴ、ＩＦＦＴ、フィルタ処理等、各処理は、すべて個別の回路等の構成要素によって処理されることが想定されている。しかし、各実施形態の処理は、所定の装置が備えるコンピュータ、例えば、ＤＳＰ（Digital Signal Processor）等が、搭載されたソフトウェアに従って実行してもよい。すなわち、各処理を行うコンピュータプログラムは、ＤＳＰ（図示なし）によって読み込まれ、実行される。
【０１０９】
例えば、データの並べ替え処理を、プログラムを用いて行ってもよい。すなわち、ＤＳＰとメモリとを用いて、メモリへのデータの書き込み及びメモリからのデータの読み出しをプログラムによって制御することによって、データの並べ替え処理を行ってもよい。さらに、本実施形態では、ＦＦＴ処理はプログラム制御に従って行われてもよい。
【０１１０】
以上のように、プログラムを用いて各処理を行っても、上述の実施形態の処理と同内容の処理を行うことができる。
【０１１１】
なお、上記の処理プログラムは、ＲＯＭ（Read Only Memory）、ＲＡＭ（Random Access Memory）、フラッシュメモリ等の半導体記憶装置、あるいは光ディスク、磁気ディスク、光磁気ディスク等、非一時的な媒体に格納されてもよい。
【０１１２】
以上、実施形態を参照して本願発明を説明したが、本願発明は上記実施形態に限定されるものではない。本願発明の構成や詳細には、本願発明のスコープ内で当業者が理解し得る様々な変更をすることができる。
【０１１３】
この出願は、２０１３年７月２３日に出願された日本出願特願２０１３−１５２７０５を基礎とする優先権を主張し、その開示の全てをここに取り込む。
【符号の説明】
【０１１４】
１１  第１のデータ並べ替え処理部
１２  第２のデータ並べ替え処理部
１３  第３のデータ並べ替え処理部
２１  第１のバタフライ演算処理部
２２  第２のバタフライ演算処理部
３１  ひねり乗算処理部
５１  第１のバタフライ演算処理部
５２  第２のバタフライ演算処理部
６１  ひねり乗算処理部
１００  データ並べ替え処理部
１０１ａ〜１０１ｈ  データ記憶位置
１０２ａ〜１０２ｈ  データ読み出し位置
１０３  入力情報
１０４  出力情報
２００  第１のデジタルフィルタ回路
２１０  オーバーラップ付加回路
２１１  ＦＦＴ回路
２１２  フィルタ演算回路
２１３  ＩＦＦＴ回路
２１４  オーバーラップ除去回路
３００  第２のデジタルフィルタ回路
３１０  オーバーラップ付加回路
３１１  ＦＦＴ回路
３１２  フィルタ演算回路
３１３  ＩＦＦＴ回路
３１４  オーバーラップ除去回路
４００  デジタルフィルタ回路
４１０  データ選択部
４１１  選択信号
５００  データフロー
５０１  データ並べ替え処理
５０２、５０３  バタフライ演算処理
５０４  ひねり乗算処理
５０５ａ〜５０５ｈ  部分データフロー
６００  データフロー
６０１  データ並べ替え処理
６０２、６０３  バタフライ演算処理
６０４  ひねり乗算処理
７００  デジタルフィルタ回路
７１０  オーバーラップ付加回路
７１１  ＦＦＴ回路
７１２  フィルタ演算回路
７１３  ＩＦＦＴ回路
７１４  オーバーラップ除去回路
【図１】
2015011874.tif 000003
【図２】
2015011874.tif 000004
【図３】
2015011874.tif 000005
【図４】
2015011874.tif 000006
【図５】
2015011874.tif 000007
【図６】
2015011874.tif 000008
【図７】
2015011874.tif 000009
【図８】
2015011874.tif 000010
【図９】
2015011874.tif 000011
【図１０】
2015011874.tif 000012
【手続補正書】
【提出日】平成27年12月18日(2015.12.18)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】請求項７
【補正方法】変更
【補正の内容】
【請求項７】
デジタルフィルタ装置が備えるコンピュータを、
時間領域の連続するＮ−Ｍ個の入力データ（Ｎは正整数、ＭはＮ以下の正整数）を含む第１の入力ブロックに前記第１の入力ブロックの直前の連続するＭ個のデータが付加された第１のオーバーラップブロックを生成し、前記第１のオーバーラップブロックを第１のデータ並べ替え処理を用いた高速フーリエ変換処理により周波数領域の第１の周波数領域ブロックに変換し、前記第１の周波数領域ブロックに対して第１のフィルタ処理を行い、前記第１のフィルタ処理がなされた第１の処理後ブロックを第２のデータ並べ替え処理を用いた逆高速フーリエ変換処理により第１の時間領域ブロックに変換し、前記第１の時間領域ブロックの時間軸の両端から合計Ｍ個のデータを除去して第１の出力データを生成する第１のデジタルフィルタ処理手段、
時間領域の連続するＱ−Ｐ個の入力データ（Ｑは正整数、ＰはＱ以下の正整数）を含む第２の入力ブロックに前記第２の入力ブロックの直前の連続するＰ個のデータが付加された第２のオーバーラップブロックを生成し、前記第２のオーバーラップブロックに含まれるすべての前記第２の入力ブロックを同時に入力し、高速フーリエ変換処理により周波数領域の第２の周波数領域ブロックに変換し、前記第２の周波数領域ブロックに対して第２のフィルタ処理を行い、前記第２のフィルタ処理がなされた第２の処理後ブロックに含まれるすべての処理後データを同時に入力し、逆高速フーリエ変換処理により第２の時間領域ブロックに変換し、前記第２の時間領域ブロックの時間軸の両端から合計Ｐ個のデータを除去して第２の出力データを生成する第２のデジタルフィルタ処理手段、
実行対象のフィルタ処理を選択する選択信号に従って、前記第１のデジタルフィルタ処理手段又は前記第２のデジタルフィルタ処理手段を選択する選択手段、及び
前記第２のデジタルフィルタ処理手段を選択したとき前記第１のデジタルフィルタ処理手段を停止し、前記第１のデジタルフィルタ処理手段を選択したとき前記第２のデジタルフィルタ処理手段を停止する停止手段
として機能させるためのデジタルフィルタプログラム。
【国際調査報告】
2015011874.tif 000013
2015011874.tif 000014
2015011874.tif 000015
2015011874.tif 000016