(57)【要約】  ＦＦＴおよびＩＦＦＴを用いたフィルタ処理において、回路規模や消費電力を小さくすることが可能なデジタルフィルタ装置を提供する。  第１のデータを第１の順序で入力して高速フーリエ変換および逆高速フーリエ変換を含む第１のフィルタ処理を行い、第１の順序で第２のデータを出力する第１のフィルタ処理部を備える。
2015045310.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）やレジスタ等の記憶手段が用いられる。特許文献３には、ＲＡＭを用いたデータの並べ替えについての記載がある。【００１１】
ところで、ＦＤＥ方式等の信号処理では、ＦＦＴ処理は複数のデータからなるブロックの単位で行われる。従って、フィルタ処理もブロック単位で行われるため、例えば、短い時間ごとにフィルタ係数が変わるような適応的なフィルタ処理などを実現することが困難である。そのため、実現するフィルタ処理によっては、時間領域上の信号データをそのまま時間領域上で等化のためのフィルタ処理を実施する時間領域等化（Time domain equalization（ＴＤＥ））技術の適用が望ましい場合がある。【００１２】
そこで、周波数領域でのフィルタ処理、および時間領域でのフィルタ処理のそれぞれについて、実現したいフィルタ処理に応じた、より適切な実現方法を選択するという方法が考えられる。例えば、光伝送システムにおいて、線形波形歪の補償を周波数領域のフィルタ処理で実現し、非線形波形歪の補償を時間領域のフィルタ処理で実現することが行われることがある。さらに、それらの周波数領域のフィルタ処理、および時間領域のフィルタ処理が、複数回繰り返して処理されることもある（例えば、特許文献４、特許文献５）。【００１３】
また、その他にも、周波数領域でのフィルタ処理と時間領域でのフィルタ処理を併用する適応等化処理技術がある（特許文献６）。
【先行技術文献】
【特許文献】
【００１４】
【特許文献１】特開平８−１３７８３２号公報  （第３−５頁、図２５）
【特許文献２】特開２００５−１０１６９５公報  （第５頁、図２、３）
【特許文献３】特開２００１−５６８０６号公報  （第５頁、図１）
【特許文献４】特開２０１０−２８４７０公報
【特許文献５】特開２０１０−５０５７８公報
【特許文献６】国際公開第２０１３／０５７８５６号（第１５頁、第２７頁、図６、図１５）
【非特許文献】
【００１５】
【非特許文献１】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)，ｘ(8)，ｘ(16)，・・・，ｘ(56)の８データが入力される。そして、２サイクル目に、データ組Ｐ２を構成するｘ(1)，ｘ(9)，ｘ(17)，・・・，ｘ(57)の８データが入力される。以降同様に、３サイクル目から８サイクル目まで、データ組Ｐ３〜Ｐ８を構成するデータが入力される。
【００３７】
同様に、出力データＸ(k)として、８データずつ、８サイクルの期間に、図４に示す「ビットリバース順序」で、６４データが出力される。なお、ここでは、図４の表の内容として示された、0から63までの数字は、Ｘ(k)の添え字kを意味する。
【００３８】
具体的には、１サイクル目に、データ組Ｐ１を構成するＸ(0)，Ｘ(8)，・・・，Ｘ(56)の８データが出力される。２サイクル目に、データ組Ｐ２を構成するＸ(1)，Ｘ(9)，・・・，Ｘ(57)の８データが出力される。以降同様に、３サイクル目から８サイクル目まで、データ組Ｐ３〜Ｐ８を構成するデータが出力される。
【００３９】
ここで、デジタルフィルタ装置４００に入力されるデータの入力順序である「逐次順序」（図３参照）から、第１のデジタルフィルタ回路１１１ａを構成するＦＦＴ回路２１１に入力されるデータの入力順序である「ビットリバース順序」（図４参照）への並べ替えは、第１のデータ並べ替え処理回路１１３が行う。
【００４０】
図４に示すビットリバース順序は、図６に示したデータフロー図における、１段目の基数８のバタフライ処理５０２への入力データ組に対応する。具体的には、具体的には、１サイクル目に、データ組Ｐ１を構成するｘ(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）を、同じくビットリバース順序で出力する。
【００５１】
データ並べ替え処理部１２は、入力されたデータを一旦記憶し、記憶したデータの選択および出力を制御することによって、図３の逐次順序、図４のビットリバース順序、のそれぞれに従ったデータの並べ替え処理が実現される。以下に、データ並べ替え処理部の具体例を示す。
【００５２】
データ並べ替え処理部１２は、例えば図５に示すデータ並べ替え処理部１００で実現することができる。
【００５３】
データ並べ替え処理部１００は、入力情報１０３として入力される８個のデータからなるデータ組Ｄ１〜Ｄ８を、ＦＩＦＯバッファ（First In First Out Buffer。先入れ先出しバッファ）における先入れ順序で入力して、データ記憶位置１０１ａ〜１０１ｈに書き込み、記憶する。具体的には、データ記憶位置１０１ａ〜１０１ｈのそれぞれに、データ組Ｄ１〜Ｄ８が記憶される。
【００５４】
次に、データ並べ替え処理部１００は、ＦＩＦＯバッファにおける先出し順序で、記憶しているデータを出力する。具体的には、データ並べ替え処理部１００は、データ読み出し位置１０２ａ〜１０２ｈのそれぞれから８個のデータを読み出して１つのデータ組とし、８つのデータ組Ｄ１’〜Ｄ８’を出力情報１０４として出力する。このように、データ組Ｄ１’〜Ｄ８’は、サイクル順に並べられたデータ組Ｄ１〜Ｄ８に含まれるデータを、データ位置の順に並べ替えて１つの組としたものである。
【００５５】
以上説明したように、ＦＦＴ回路２１１において、データ並べ替え処理部１２によって、図３の逐次順序、図４のビットリバース順序、のそれぞれに従った並べ替え処理が必要となる。なぜなら、ＦＦＴ回路２１１は、８データ並列で６４ポイントＦＦＴ処理を行うため、ＦＦＴ処理に８サイクルが必要であり、サイクル間をまたがったデータの並べ替えが必要となるからである。
【００５６】
第１のデジタルフィルタ回路１１１ａ、第２のデジタルフィルタ回路１１１ｂ、および第３のデジタルフィルタ回路１１１ｃを構成するＩＦＦＴ回路２１３も、ＦＦＴ回路２１１と同様の構成で実現することができる。
【００５７】
また、第１のデジタルフィルタ回路１１１ａ、第２のデジタルフィルタ回路１１１ｂ、および第３のデジタルフィルタ回路１１１ｃを構成するフィルタ演算回路２１２は、ＦＦＴ回路２１１によって変換された周波数領域上の信号に対してフィルタ処理を行い、処理結果をＩＦＦＴ回路２１３へ出力する。例えば、デジタルフィルタ装置４００が通信チャネルにおける信号歪みの等化処理を実行する場合、フィルタ演算回路２１２は、複素乗算器で構成することができる。
【００５８】
（第１の実施形態の動作）
第１のデジタルフィルタ回路１１１ａ、第２のデジタルフィルタ回路１１１ｂ、および第３のデジタルフィルタ回路１１１ｃを構成するＦＦＴ回路２１１は、図４のビットリバース順序でデータを入力して、ＦＦＴ処理を行い、同じくビットリバース順序でデータを出力する。
【００５９】
同様に、第１のデジタルフィルタ回路１１１ａ、第２のデジタルフィルタ回路１１１ｂ、および第３のデジタルフィルタ回路１１１ｃを構成するＩＦＦＴ回路２１３も、ビットリバース順序でデータを入力して、ＩＦＦＴ処理を行い、同じくビットリバース順序でデータを出力する。
【００６０】
従って、第１のデジタルフィルタ回路１１１ａ、第２のデジタルフィルタ回路１１１ｂ、および第３のデジタルフィルタ回路１１１ｃを構成するフィルタ演算回路２１２は、ビットリバース順序でフィルタ演算処理を行い、ビットリバース順序でデータを出力する。
同様に、第４のデジタルフィルタ回路１１２ａ、および第５のデジタルフィルタ回路１１２ｂも、ビットリバース順序でフィルタ演算処理を行い、ビットリバース順序でデータを出力する。
【００６１】
デジタルフィルタ装置４００に入力されるデータの入力順序である逐次順序から、第１のデジタルフィルタ回路１１１ａが入力するデータの入力順序であるビットリバース順序への並べ替えは、第１のデータ並べ替え処理回路１１３が処理する。一方、第３のデジタルフィルタ回路１１１ｃが出力するデータの出力順序であるビットリバース順序から、デジタルフィルタ装置４００が出力するデータの出力順序である逐次順序への並べ替えは、第２のデータ並べ替え処理回路１１４が処理する。
【００６２】
（第１の実施形態の効果）
以上のように、本実施形態では、デジタルフィルタ装置４００に逐次順序で入力されるデータを、第１のデジタルフィルタ回路１１１ａによりビットリバース順序へ並べ替えたのち、そのままビットリバース順序で、第１のデジタルフィルタ回路１１１ａ、第２のデジタルフィルタ回路１１１ｂ、および第３のデジタルフィルタ回路１１１ｃを構成するフィルタ演算回路２１２による周波数領域でのフィルタ処理を行う。同様に、ビットリバース順序で、第４のデジタルフィルタ回路１１２ａ、および第５のデジタルフィルタ回路１１２ｂによる時間領域でのフィルタ処理を行う。
【００６３】
従って、本実施形態では、第１のデジタルフィルタ回路１１１ａ、第２のデジタルフィルタ回路１１１ｂ、および第３のデジタルフィルタ回路１１１ｃを構成するＦＦＴ回路２１１およびＩＦＦＴ回路２１３において、ＦＦＴ回路２１１の入力における逐次順序からビットリバース順序への並べ替え処理、ＦＦＴ回路２１１の出力におけるビットリバース順序から逐次順序への並べ替え処理、ＩＦＦＴ回路２１３の入力における逐次順序からビットリバース順序への並べ替え処理、ＩＦＦＴ回路２１３の出力におけるビットリバース順序から逐次順序への並べ替え処理、を行わなくてよいので、ＦＦＴ回路２１１の入力および出力、ＩＦＦＴ回路２１３の入力および出力におけるデータ並べ替え処理回路が不要となる。その結果、回路規模や消費電力を小さくすることができる。
【００６４】
なお、本実施形態では、ＦＤＥ方式による周波数領域におけるフィルタ処理回路が３つ、ＴＤＥ方式による時間領域におけるフィルタ処理回路が２つ、からなる構成としたが、この個数に限らなくてもよい。
【００６５】
（第２の実施形態）
第１の実施形態では、３回の周波数領域のフィルタ、および２回の時間領域のフィルタ処理が交互に実行される。しかし、本発明では、それぞれのフィルタ処理の回数および順序は任意である。すなわち、時間領域でのフィルタ処理または周波数領域でのフィルタ処理が連続して実行されてもよい。さらには、時間領域でのフィルタ処理または周波数領域でのフィルタ処理の一方のみが複数回実行されてもよい。
【００６６】
要するに、本発明は、次段のＦＦＴ／ＩＦＦＴ処理の直前では並べ替え処理が行われず、前段のＦＦＴ／ＩＦＦＴ処理の結果として出力された順序で次段のＦＦＴ／ＩＦＦＴ処理がデータを入力し、処理するところに特徴がある。
【００６７】
また、データ並べ替え回路は、デジタルフィルタ装置４００に含まれなくてもよい。すなわち、デジタルフィルタ装置４００の前段で第１のデータ並べ替え回路１１３と同等の処理が行われたり、デジタルフィルタ装置４００の後段で第２のデータ並べ替え回路１１４と同等の処理が行われたりしてもよい。
【００６８】
第２の実施形態のデジタルフィルタ装置６００は、第１の実施形態の、第１のデジタルフィルタ回路１１１ａのみを備える。すなわち、第１のデジタルフィルタ回路１１１ａ以降においてもフィルタ処理を行うか否かは任意である。ＦＦＴ回路２１１、ＩＦＦＴ回路２１３の内部の構成は、例えば図２に示されたものを使用することができる。
【００６９】
第１のデジタルフィルタ回路１１１ａに入力されたデータは、例えば図２のように、並べ替え処理を行うことなく、バタフライ演算が行われる。従って、バタフライ演算処理へデータを入力するためのデータの並べ替えは、外部に備えられた第１のデータ並べ替え処理回路１１３に相当する回路を用いて行うことができる。ただし、上記のバタフライ演算によってデータの順序が変更される場合は、それを他の順序に変更するための並べ替えは行ってもよい。
【００７０】
なお、第１のデジタルフィルタ回路１１１ａに入力されるデータは、入力直後に実行されるバタフライ演算に適した順序で入力されればよい。従って、その順序は、ビットリバース順序であっても、逐次順序であってもよい。
【００７１】
以上のように、本実施形態のデジタルフィルタ装置６００は、所定の順序で入力されるデータを並べ替えることなく、演算処理を行う。従って、本実施形態のデジタルフィルタ装置６００は、データの並べ替えの回数を必要最小限に留められるので、回路規模や消費電力を削減することができる。
【００７２】
第１および第２の実施形態では、ＦＦＴ、ＩＦＦＴの各処理は、すべて個別の回路等の構成要素によって処理されることが想定されている。しかし、各実施形態の処理は、所定の装置が備えるコンピュータ、例えば、ＤＳＰ（Digital Signal Processor）等を用いたソフトウェアによって実行されてもよい。すなわち、各処理を行うコンピュータ記憶媒体は、ＤＳＰ（図示なし）によって読み込まれ、実行される。
【００７３】
また、第１のデータ並べ替え回路１１３、第２のデータ並べ替え回路１１４によるデータの並べ替え処理を、記憶媒体を用いて行ってもよい。すなわち、ＤＳＰとメモリを用いて、メモリへのデータの書き込みおよびメモリからのデータの読み出しを記憶媒体によって制御することによって、データの並べ替え処理を行ってもよい。  なお、上記の記憶媒体は、ＲＯＭ（Read Only Memory）、ＲＡＭ（Random Access Memory）、フラッシュメモリ等の半導体記憶装置、光ディスク、磁気ディスク、光磁気ディスク等、非一時的な媒体に格納されてもよい。
【００７４】
以上、上述した実施形態を模範的な例として本発明を説明した。しかしながら、本発明は、上述した実施形態には限定されない。即ち、本発明は、本発明のスコープ内において、当業者が理解し得る様々な態様を適用することができる。
【００７５】
この出願は、２０１３年９月２４日に出願された日本出願特願２０１３−１９６６３８を基礎とする優先権を主張し、その開示の全てをここに取り込む。
【符号の説明】
【００７６】
１２    データ並べ替え処理部
２１    第１のバタフライ演算処理部
２２    第２のバタフライ演算処理部
３１    ひねり乗算処理部
１００    データ並べ替え処理部
１０３    入力情報
１０１ａ〜１０１ｈ    データ記憶位置
１０２ａ〜１０２ｈ    データ読み出し位置
１０４    出力情報
１１１ａ    第１のデジタルフィルタ回路
１１１ｂ    第２のデジタルフィルタ回路
１１１ｃ    第３のデジタルフィルタ回路
１１２ａ    第４のデジタルフィルタ回路
１１２ｂ    第５のデジタルフィルタ回路
１１３    第１のデータ並べ替え処理回路
１１４    第２のデータ並べ替え処理回路
２１１    ＦＦＴ回路
２１２    フィルタ演算回路
２１３    ＩＦＦＴ回路
４００    デジタルフィルタ装置
５００    データフロー
５０１    データ並べ替え処理
５０２、５０３    バタフライ演算処理
５０４    ひねり乗算処理
５０５    部分データフロー
６００    デジタルフィルタ装置
【図１】
2015045310.tif 000003
【図２】
2015045310.tif 000004
【図３】
2015045310.tif 000005
【図４】
2015045310.tif 000006
【図５】
2015045310.tif 000007
【図６】
2015045310.tif 000008
【図７】
2015045310.tif 000009
【手続補正書】
【提出日】平成28年3月10日(2016.3.10)
【手続補正２】
【補正対象書類名】特許請求の範囲
【補正対象項目名】請求項８
【補正方法】変更
【補正の内容】
【請求項８】
デジタルフィルタ装置が備えるコンピュータを、
第１のデータを第１の順序で入力して高速フーリエ変換および逆高速フーリエ変換を含む第１のフィルタ処理を行い、前記第１の順序で第２のデータを出力するフィルタ処理手段として機能させるためのプログラム。
【国際調査報告】
2015045310.tif 000010
2015045310.tif 000011