(57)【要約】  メモリを分割することなく、高速フーリエ変換の個々のステージの演算で処理されるデータを高速に読み出し・書き込みできる高速フーリエ変換回路を提供する。複数のデジタルフーリエ変換を構成要素とする高速フーリエ演算を行う演算部（１）と、演算部（１）の入出力データを格納するメモリ（２Ａ、２Ｂ）と、処理対象のデータに対して演算部（１１）が行う複数ステージの演算に対して、メモリ（２Ａ、２Ｂ）からのデータの読み出し順が各ステージで同じとなるように、演算部（１１）による演算結果のメモリ（２Ａ、２Ｂ）への書き込みを制御する手段（７）とを有する。【選択図】図１
2011102291.tif 000002
【特許請求の範囲】
【請求項１】
複数のデジタルフーリエ変換を構成要素とする高速フーリエ演算を行う演算部と、
上記演算部の入出力データを格納するメモリと、
処理対象のデータに対して上記演算部が行う複数ステージの演算に対して、上記メモリからのデータの読み出し順が各ステージで同じとなるように、上記演算部による演算結果の上記メモリへの書き込みを制御する手段と
を有することを特徴とする高速フーリエ変換回路。
【請求項２】
請求項１記載の高速フーリエ変換回路において、
前記演算部は、基数Ｂ、ただしＢは２以上の整数、のデジタルフーリエ変換を構成要素とし、
前記制御する手段は、データ数Ｎが上記基数Ｂのべき数のデータに対して前記演算部が行うＰ＝ｌｏｇＢＮステージの演算に対して、次のステージでの演算対象となるデータが前記高速フーリエ演算の順番ｋ＝０，１,・・，Ｎ／Ｂ−１に対してデータ数Ｎを上記基数Ｂで割った値ごとに同じアドレスでメモリから読み出すことのできるアドレス順に、前記メモリへの書き込みを行う
ことを特徴とする高速フーリエ変換回路。
【請求項３】
請求項２記載の高速フーリエ変換回路において、
前記制御する手段は、第Ｓ＝１，２，・・，Ｐステージのそれぞれにおける前記メモリへの書き込みアドレスＷＡ（Ｓ，ｋ，ｍ）、ただしｍ＝０，１，・・，Ｂ−１、を、前記基数Ｂを残りステージ数に１を加えた値Ｐ−Ｓ＋１乗した値で前記データ数Ｎを割った値にｍを乗じた値と、前記基数ＢをＳ−１乗した値で前記順番ｋの値を割った値に前記基数ＢのＳ乗を乗じた値と、前記基数ＢをＳ−１乗した値で前記順番ｋの値を割っときの余りの値とを加算した値に設定し、
第Ｓ＝１，２，・・，Ｐステージのそれぞれにおける前記メモリからの読み出しアドレスＲＡ（Ｓ，ｋ，ｍ）を、前記基数Ｂで前記データ数Ｎを割った値にｍを乗じた値と、前記順番ｋの値とを加算した値に設定する
ことを特徴とする高速フーリエ変換回路。
【請求項４】
請求項１記載の高速フーリエ変換回路において、
前記演算部は、４以上の複数Ｂ点またはＢ／２点のいずれかのデジタルフーリエ変換を１サイクルで実行する構成であり、
データ数Ｎが上記Ｂ／２のべき乗であるが上記Ｂのべき乗ではないデータに対して、前記演算部による演算が、Ｂ／２点のデジタルフーリエ変換を２組実行するひとつのステージと、Ｂ点のデジタルフーリエ変換を実行するｌｏｇＢ（Ｎ／２）ステージとに分解され、
前記制御する手段は、上記ひとつのステージおよび上記ｌｏｇＢ（Ｎ／２）ステージのそれぞれにおいて、次のステージでの演算対象となるデータが前記高速フーリエ演算の順番ｋ＝０，１,・・，Ｎ／Ｂ−１に対してデータ数Ｎを上記Ｂの値で割った値ごとに同じアドレスでメモリから読み出すことのできるアドレス順に、前記メモリへの書き込みを行う
ことを特徴とする高速フーリエ変換回路。
【請求項５】
請求項４記載の高速フーリエ変換回路において、
前記制御する手段は、
前記ひとつのステージにおける前記メモリへの書き込みアドレスＷＡ（Ｓ，ｋ，ｍ）、ただしｍ＝０，１，・・，Ｂ−１、を、ｍ＝０，１，．．，Ｂ／２−１のときにはｋの２倍にｍを加算した値、ｍ＝Ｂ／２，．．，Ｂ−１のときにはＮ／２とｋの２倍とｍ−Ｂ／２とを加算した値に設定し、
前記ｌｏｇＢ（Ｎ／２）ステージのそれぞれにおける前記メモリへの書き込みアドレスＷＡ（Ｓ，ｋ，ｍ）を、前記Ｂの値を残りステージ数に１を加えた値Ｐ−Ｓ＋１乗した値で前記データ数Ｎを割った値にｍを乗じた値と、前記Ｂの値をＳ−１乗した値で前記順番ｋの２倍の値を割った値に前記基数ＢのＳ乗の半分の値を乗じた値と、前記基数ＢをＳ−１乗した値の半分の値で前記順番ｋの値を割ったときの余りの値とを加算した値に設定し、
前記ひとつのステージおよびｌｏｇＢ（Ｎ／２）ステージのそれぞれにおける前記メモリからの読み出しアドレスＲＡ（Ｓ，ｋ，ｍ）を、前記Ｂの値で前記データ数Ｎを割った値にｍを乗じた値と、前記順番ｋの値とを加算した値に設定する
ことを特徴とする高速フーリエ変換回路。
【請求項６】
請求項１から５のいずれか１項に記載の高速フーリエ変換回路において、
前記メモリから読み出されたデータを格納し、前記演算部に出力するリードバッファと、
前記演算部による演算結果を格納し、前記メモリに書き込むライトバッファと
をさらに有する
ことを特徴とする高速フーリエ変換回路。
【請求項７】
請求項６記載の高速フーリエ変換回路において、
前記演算部の構成要素である前記複数のデジタルフーリエ変換を、前記リードバッファおよび前記ライトバッファの１サイクルのデータ転送で実行する
ことを特徴とする高速フーリエ変換回路。
【請求項８】
請求項２から５のいずれか１項に記載の高速フーリエ変換回路において、前記Ｂの値は４であることを特徴とする高速フーリエ変換回路。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、フーリエ変換を高速に処理する高速フーリエ変換回路に関する。
【背景技術】
【０００２】
クーリー・チューキー型の高速フーリエ変換（以下、単に「高速フーリエ変換」という）では、一般的に、２点ＤＦＴ（デジタルフーリエ変換Ｄｉｓｃｒｅｔｅ  Ｆｏｕｒｉｅｒ  Ｔｒａｎｓｆｏｒｍ）を構成要素として演算が行われる（引用文献１〜３参照）。また、さらに高速に処理を行うために、４点ＤＦＴを構成要素とする演算（基数４の高速フーリエ変換）も可能である。ただし、基数２の高速フーリエ変換は、データ数Ｎが２のべき数である必要があり、基数４の高速フーリエ変換は、データ数Ｎが４のべき数である必要がある。【０００３】
高速化のために、データ数Ｎが２のべき乗の場合には、２点ＤＦＴと４点ＤＦＴとを組み合わせて処理することも可能である。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００６−１５５４８７号公報
【特許文献２】特開２００７−１４８６２３号公報
【特許文献３】特表２００４−５１６５５１号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
高速フーリエ変換において、メモリ上に格納されている複素データを処理する場合、基数４の高速フーリエ変換では、１回の４点ＤＦＴにつき４複素データをメモリから読み取り、演算の結果出力される４複素データをメモリに書き込む必要がある。【０００６】
一般的な高速フーリエ変換処理では、各ステージの演算において、メモリに対する読み出し、書き込みのアドレス間隔が変わるため、４データを同時に読み出し、書き込みを行うことができない。このため、１回の４点ＤＦＴを処理するのに必要なサイクル数として、シングルポートメモリを使用した場合には、４サイクルが必要になる。【０００７】
シングルポートメモリでも、４個のデータを同時に読み書きできるように、４分割することも考えられる。しかし、ＬＳＩ化する際は、メモリマクロに付加されるテスト回路などにより、分割する個数が多いほど必要面積が大きくなると同時に、配置の難易度が上がってしまう。このため、実装率が上がらず、チップ面積が大きくなってしまう。【０００８】
本発明は、このような課題を解決し、メモリを分割することなく、高速フーリエ変換の個々のステージの演算で処理されるデータを高速に読み出し・書き込みできる高速フーリエ変換回路を提供することを目的とする。
【課題を解決するための手段】
【０００９】
本発明の高速フーリエ変換回路は、複数のデジタルフーリエ変換を構成要素とする高速フーリエ演算を行う演算部と、演算部の入出力データを格納するメモリと、処理対象のデータに対して演算部が行う複数ステージの演算に対して、メモリからのデータの読み出し順が各ステージで同じとなるように、演算部による演算結果のメモリへの書き込みを制御する手段とを有することを特徴とする。
【発明の効果】
【００１０】
本発明によると、メモリを分割することなく、高速フーリエ変換の個々のステージの演算で処理されるデータを高速に読み出し・書き込みでき、ＬＳＩ面積の増加を抑えつつ高速化を図ることができる。
【図面の簡単な説明】
【００１１】
【図１】本発明の第１の実施の形態に係る高速フーリエ変換回路を示すブロック構成図である。
【図２】図１に示す高速フーリエ変換回路中の４点ＤＦＴ演算部の動作を説明するシグナルフロー図である。
【図３】基数４の高速フーリエ変換における４点ＤＦＴの構成を説明する図である。
【図４】複素データのメモリへの格納例を説明する図である。
【図５】メモリへの書き込みアドレスの従来の計算方法を説明する図である。
【図６】図１に示す高速フーリエ変換回路中のメモリへの書き込みアドレスの計算方法を説明する図である。
【図７】図１に示す高速フーリエ変換回路によるデータの処理の流れを説明する図であり、読み出し対象となるメモリからデータを読み出してリードバッファに格納する処理の流れを示す図である。
【図８】図１に示す高速フーリエ変換回路によるデータの処理の流れを説明する図であり、メモリからのデータの読み出し、リードバッファへの格納、４点ＤＦＴ演算部による演算、および演算結果のライトバッファへの格納の処理の流れを示す図である。
【図９】図１に示す高速フーリエ変換回路によるデータの処理の流れを説明する図であり、メモリからのデータの読み出し、リードバッファへの格納、４点ＤＦＴ演算部による演算、および演算結果のライトバッファへの格納の処理の流れを示す図である。
【図１０】図１に示す高速フーリエ変換回路によるデータの処理の流れを説明する図であり、メモリからのデータの読み出し、リードバッファへの格納、４点ＤＦＴ演算部による演算、および演算結果のライトバッファへの格納の処理の流れを示す図である。
【図１１】図１に示す高速フーリエ変換回路によるデータの処理の流れを説明する図であり、メモリからのデータの読み出し、リードバッファへの格納、４点ＤＦＴ演算部による演算、および演算結果のライトバッファへの格納の処理の流れを示す図である。
【図１２】図１に示す高速フーリエ変換回路によるデータの処理の流れを説明する図であり、メモリからのデータの読み出し、リードバッファへの格納、４点ＤＦＴ演算部による演算、演算結果のライトバッファへの格納およびライトバッファからメモリへのデータの書き込みの処理の流れを示す図である。
【図１３】図１に示す高速フーリエ変換回路によるデータの処理の流れを説明する図であり、メモリからのデータの読み出し、リードバッファへの格納、４点ＤＦＴ演算部による演算、演算結果のライトバッファへの格納およびライトバッファからメモリへのデータの書き込みの処理の流れを示す図である。
【図１４】図１に示す高速フーリエ変換回路によるデータの処理の流れを説明する図であり、メモリからのデータの読み出し、リードバッファへの格納、４点ＤＦＴ演算部による演算、演算結果のライトバッファへの格納およびライトバッファからメモリへのデータの書き込みの処理の流れを示す図である。
【図１５】図１に示す高速フーリエ変換回路によるデータの処理の流れを説明する図であり、メモリからのデータの読み出し、リードバッファへの格納、４点ＤＦＴ演算部による演算、演算結果のライトバッファへの格納およびライトバッファからメモリへのデータの書き込みの処理の流れを示す図である。
【図１６】図１に示す高速フーリエ変換回路によるデータの処理の流れを説明する図であり、第１ステージの処理完了時におけるライトバッファからメモリへのデータの書き込み処理の流れを示す図である。
【図１７】図１に示す高速フーリエ変換回路によるデータの処理の流れを説明する図であり、第２ステージにおけるメモリへのデータの書き込みを説明する図である。
【図１８】図１に示す高速フーリエ変換回路によるデータの処理の流れを説明する図であり、第３ステージにおけるメモリへのデータの書き込みを説明する図である。
【図１９】本発明の第２の実施の形態に係る高速フーリエ変換回路を示すブロック構成図である。
【図２０】図１９に示す高速フーリエ変換回路中の２点／４点ＤＦＴ演算部の演算構成例を示す図である。
【図２１】図１９に示す高速フーリエ変換回路中の２点／４点ＤＦＴ演算部が第１ステージの処理で使用する２点ＤＦＴの構成図を示す図である。
【図２２】図１９に示す高速フーリエ変換回路中の２点／４点ＤＦＴ演算部が第１ステージの演算を行う際の、メモリからのデータの読み出し、リードバッファへの格納、２点／４点ＤＦＴ演算部による演算、および演算結果のライトバッファへの格納の処理の流れを示す図である。
【図２３】図１９に示す高速フーリエ変換回路中の２点／４点ＤＦＴ演算部が第１ステージの演算を行う際の、メモリからのデータの読み出し、リードバッファへの格納、２点／４点ＤＦＴ演算部による演算、および演算結果のライトバッファへの格納の処理の流れを示す図である。
【図２４】図１９に示す高速フーリエ変換回路中の２点／４点ＤＦＴ演算部が第１ステージの演算を行う際の、メモリからのデータの読み出し、リードバッファへの格納、２点／４点ＤＦＴ演算部による演算、および演算結果のライトバッファへの格納の処理の流れを示す図である。
【図２５】図１９に示す高速フーリエ変換回路中の２点／４点ＤＦＴ演算部が第１ステージの演算を行う際の、メモリからのデータの読み出し、リードバッファへの格納、２点／４点ＤＦＴ演算部による演算、および演算結果のライトバッファへの格納の処理の流れを示す図である。
【図２６】図１９に示す高速フーリエ変換回路中の２点／４点ＤＦＴ演算部が第１ステージの演算を行う際の、ライトバッファからメモリへのデータの書き込みの処理の流れを示す図である。
【図２７】図１９に示す高速フーリエ変換回路中の２点／４点ＤＦＴ演算部が第２ステージの演算を行う際の、メモリからのデータの読み出し、リードバッファへの格納、２点／４点ＤＦＴ演算部による演算、および演算結果のライトバッファへの格納の処理の流れを示す図である。
【図２８】図１９に示す高速フーリエ変換回路中の２点／４点ＤＦＴ演算部が第２ステージの演算を行う際の、メモリからのデータの読み出し、リードバッファへの格納、２点／４点ＤＦＴ演算部による演算、および演算結果のライトバッファへの格納の処理の流れを示す図である。
【図２９】図１９に示す高速フーリエ変換回路中の２点／４点ＤＦＴ演算部が第２ステージの演算を行う際の、メモリからのデータの読み出し、リードバッファへの格納、２点／４点ＤＦＴ演算部による演算、および演算結果のライトバッファへの格納の処理の流れを示す図である。
【図３０】図１９に示す高速フーリエ変換回路中の２点／４点ＤＦＴ演算部が第２ステージの演算を行う際の、メモリからのデータの読み出し、リードバッファへの格納、２点／４点ＤＦＴ演算部による演算、および演算結果のライトバッファへの格納の処理の流れを示す図である。
【図３１】図１９に示す高速フーリエ変換回路中の２点／４点ＤＦＴ演算部が第２ステージの演算を行う際の、ライトバッファからメモリへのデータの書き込みの処理の流れを示す図である。
【図３２】図１９に示す高速フーリエ変換回路中の２点／４点ＤＦＴ演算部が第３ステージの演算を行う際の、２点／４点ＤＦＴ演算部の演算結果のライトバッファへの格納、およびライトバッファからメモリへのデータの書き込みの処理の流れを示す図である。
【図３３】ＯＦＤＭ方式を用いた通信システムの全体構成例を示す図であり、一方向の通信に関する構成のみを示す図である。
【発明を実施するための形態】
【００１２】
以下、図面を参照して本発明の実施の形態について説明する。
【００１３】
［第１の実施の形態］
図１は本発明の第１の実施の形態に係る高速フーリエ変換回路を示すブロック構成図である。ここでは、高速フーリエ変換の基数Ｂ＝４の場合の構成例を示す。
【００１４】
この高速フーリエ変換回路は、４点ＤＦＴ演算部１、メモリ２Ａ、２Ｂ、リードバッファ３、ライトバッファ４、セレクタ５、回転子生成部６および制御部７を備える。
【００１５】
４点ＤＦＴ演算部１は、基数Ｂ＝４のデジタルフーリエ変換を構成要素とする高速フーリエ演算を行う。
【００１６】
メモリ２Ａ、２Ｂは、データ数Ｎが基数Ｂのべき数のデータに対して４点ＤＦＴ演算部１が行うＰ＝ｌｏｇＢＮステージの演算のそれぞれの入出力データ、および中間値を格納する。これらのメモリ２Ａ、２Ｂは、Ｎ複素データ分を格納する容量をもち、１アドレスに４複素データを格納することができる。
【００１７】
リードバッファ３は、Ｂ個の複素データ×（Ｎ／Ｂ）×２バンク構成を有し、メモリ２Ａ、２Ｂから読み出されたデータを格納し、基数Ｂのデータごとに４点ＤＦＴ演算部１に出力する。リードバッファ３がＮ個の複素データに対して２バンク構成なので、一方のバンクでメモリ２Ａ、２Ｂからデータを読み出している間に、他方のバンクで４点ＤＦＴ演算部１へデータを出力することができる。
【００１８】
ライトバッファ４は、Ｂ複素データ×（Ｎ／Ｂ）×２バンク構成を有し、４点ＤＦＴ演算部１による各ステージの演算結果を格納し、メモリ２Ａ、２Ｂに書き込む。ライトバッファ４がＮ複素データに対して２バンク構成なので、一方のバンクでメモリ２Ａ、２Ｂへの書き込みを行っている間に、他方のバンクで４点ＤＦＴ演算部１からの演算結果を受け取ることができる。
【００１９】
セレクタ５は、メモリ２Ａ、２Ｂの読み出し、書き込み先を選択する。すなわち、メモリ２Ａ、２Ｂの一方が読み出し側で、他方が書き込み側となるように制御する。同一のメモリ２Ａまたは２Ｂに対して同時に読み出しと書き込みが生じることはない。
【００２０】
回転子生成部６は、４ＤＦＴ演算部１の出力に乗じる回転子を生成する。回転子については、高速フーリエ変換の分野ではよく知られた事項であり、ここでは説明を省略する。図６に示す例では、回転子生成部１６の出力である回転子と４点ＤＦＴ演算部１５の出力との乗算を、ライトバッファ４に書き込む前に行っているが、ライトバッファ４からメモリに書き込むときに行ってもよい。
【００２１】
制御部７は、メモリ２Ａ、２Ｂの読み出し、書き込みアドレスの生成、リードバッファ３およびライトバッファ４のアドレスの生成を行い、処理対象のデータに対して演算部が行う複数ステージの演算に対して、メモリからのデータの読み出し順が各ステージで同じとなるように、演算部による演算結果のメモリへの書き込みを制御する。制御部７はまた、回転子生成部６における回転子の生成制御、および４点ＤＦＴ演算部の回数および処理ステージの管理ならびに制御を行う。
【００２２】
メモリＡ１０、メモリＢ１１の他に、入力メモリ、出力メモリを別々に設けることもできる。その場合、セレクタ１２は、それらのメモリに対してアクセスできるような構成をとる。
【００２３】
［高速フーリエ変換の説明］
図２は、図１に示す高速フーリエ変換回路中の４点ＤＦＴ演算部１の動作を説明するシグナルフロー図である。ここでは、基数Ｂ＝４、データ数Ｎ＝１６の場合を示す。
【００２４】
クーリー・チューキー型の高速フーリエ変換は、データ数をＮ（Ｎは基数Ｂのべき乗）とすると、Ｐ＝ｌｏｇＢＮ回のＤＦＴ演算処理群に分解される。１回のＤＦＴ演算処理群をステージと呼び、入力側から第１ステージ、第２ステージ、・・・、第Ｐステージとする。基数Ｂ＝４、データ数Ｎ＝１６の場合には、ステージ数Ｐ＝２であり、それぞれのステージで４つの４点ＤＦＴ演算が行われる。
【００２５】
クーリー・チューキー型の高速フーリエ変換は、２点あるいは４点ＤＦＴへの分解のしかたによって、時間間引き型と周波数間引き型の２種類の構成をとりうることが知られている。ここでは、基数４の周波数間引き型の構成である高速フーリエ変換を例にとって説明する。
【００２６】
図３は、基数４の高速フーリエ変換における４点ＤＦＴの構成を説明する図である。４点ＤＦＴでは、４点の複素データｘ’（ｍ）、ｍ＝０，１，２，３に対して、４点の複素データＸ’（ｍ）を出力する。出力される複素データＸ’（ｍ）は、以下の通り表されるものとする。ここで、ｊは虚数単位である。
【数１】
2011102291.tif 000003
【００２７】
なお、図２および図３を参照して説明した高速フーリエ変換は、一般的なものである。
【００２８】
［メモリへのデータ格納方法］
図４は、複素データのメモリへの一般的な格納例を説明する図である。１複素データを１アドレスに格納した場合のアドレスをＡｉ（ｉ＝０，１，…，（Ｎ−１）、Ｎはデータ数（ＦＦＴポイント数））とするとき、連続する４個の複素データをメモリの１物理アドレス（ひとつのアドレスを指定することで、複数のアドレスの内容を連続的に読み出すことができる）に格納する。図４に示す例では、右からＡｉ，Ａｉ+1，Ａｉ+2，Ａｉ+3の４複素データを１物理アドレスＢ（ｉ／４）に格納しているが、回路構成が複雑にならなければ、格納する場所は特に限定されるものではない。以下では、簡単のため、図４に示すとおりに格納されるものとして説明する。
【００２９】
［メモリへの書き込み・読み出しアドレス］
図５は、メモリへの書き込みアドレスの従来の計算方法を説明する図である。ここでは、基数Ｂ＝４に対してデータ数Ｎ＝１６の場合を示す。
【００３０】
周波数間引き型高速フーリエ変換において、第Ｓ（Ｓ＝１，２，…，Ｐ）ステージにおけるＤＦＴ演算の出力データは、一般的には以下のように格納される。入力データ系列ｘ（ｎ）は、時間軸上で昇順になるように、メモリの最下位アドレス側から格納されているものとする。ここで、以降の書き込みアドレスＷＡ（Ｓ，ｋ，ｍ）、読み出しアドレスＲＡ（Ｓ，ｋ，ｍ）は、個々の複素データが格納されるアドレスとして説明する。ｋは４点ＤＦＴ演算の順番を示すもので、ｋ＝０〜（Ｎ／４−１）とする。
【００３１】
書き込みアドレスＷＡ（Ｓ，ｋ，ｍ）は、以下の式で算出される。ここで、ｍ＝０，１，２，３であり、４点ＤＦＴのため、１回のＤＦＴ演算で４複素データが出力される。
【数２】
2011102291.tif 000004
（ａ  ｍｏｄ  ｂ）は、ａをｂで割ったときの余りを取ることを示す。Ｎ＝１６の例は図２に示したとおりである。このとき、読み出しアドレスＲＡ（Ｓ，ｋ，ｍ）は、ＲＡ（Ｓ，ｋ，ｍ）＝ＷＡ（Ｓ，ｋ，ｍ）となる。
【００３２】
このように計算されるアドレスを用い、最終ステージ（Ｐステージ）終了後のメモリに格納されているアドレスをビットリバースして取り出すことによって、変換後のデータが昇順に並べ替えられる。
【００３３】
図６は、図１に示す高速フーリエ変換回路中のメモリ２Ａ、２Ｂへの書き込みアドレスの計算方法を説明する図である。
【００３４】
図１に示す実施の形態において、制御部１は、メモリ２Ａ、２Ｂの書き込みアドレスおよび読み出しアドレスを設定し、データ数Ｎが基数Ｂのべき数のデータに対して４点ＤＦＴ演算部１が行うＰ＝ｌｏｇＢＮステージの演算に対して、次のステージでの演算対象となるデータが高速フーリエ演算の順番ｋ＝０，１,・・，Ｎ／Ｂ−１に対してデータ数Ｎを基数Ｂで割った値ごとに同じアドレスでメモリから読み出すことのできるアドレス順に、メモリ２Ａ、２Ｂへの書き込みを行う。
【００３５】
具体的には、制御部１は、第Ｓ＝１，２，・・，Ｐステージのそれぞれにおけるライトバッファ４からメモリ２Ａまたは２Ｂへの書き込みアドレスＷＡ（Ｓ，ｋ，ｍ）、ただしｍ＝０，１，・・，Ｂ−１、を、基数Ｂを残りステージ数に１を加えた値Ｐ−Ｓ＋１乗した値でデータ数Ｎを割った値にｍを乗じた値と、基数ＢをＳ−１乗した値で順番ｋの値を割った値に基数ＢのＳ乗を乗じた値と、基数ＢをＳ−１乗した値で順番ｋの値を割っときの余りの値とを加算した値に設定する。また、第Ｓ＝１，２，・・，Ｐステージのそれぞれにおけるメモリ２Ｂまたは２Ａからリードバッファ３への読み出しアドレスＲＡ（Ｓ，ｋ，ｍ）を、基数Ｂでデータ数Ｎを割った値にｍを乗じた値と、順番ｋの値とを加算した値に設定する。
【００３６】
基数Ｂ＝４の場合の書き込みアドレスＷＡ（Ｓ，ｋ，ｍ）を式で表すと、次のようになる。
【数３】
2011102291.tif 000005
【００３７】
また、基数Ｂ＝４の場合の読み出しアドレスＲＡ（Ｓ，ｋ，ｍ）を式で表すと、次のようになる。
【数４】
2011102291.tif 000006
【００３８】
このように計算されるアドレスを用いることで、ビットリバース処理が不要となり、各ステージでのＤＦＴ演算の読み出しアドレスを一定にすることができ、リードバッファ３およびライトバッファ４の導入が可能になる。また、基数Ｂ＝２のＤＦＴと基数Ｂ＝４のＤＦＴとを組み合わせた構成を容易にとることができる。
【００３９】
［リードバッファ、ライトバッファ］
リードバッファ３およびライトバッファ４は、それぞれともに２バンク構成で、１バンク当たり、Ｎ個の複素データを格納できる容量を有し、基数Ｂ＝４で４複素データをメモリ２Ａ、２Ｂの１アドレスに格納する場合に、１バンクにメモリ２Ａ、２ＢのＮ／４アドレス分のデータを格納できる構成となっている。説明のため、これらのバンクをバンク＃０、バンク＃１とする
【００４０】
１ステージ分のＤＦＴ処理を開始するに際し、メモリ２Ａ、２Ｂの４アドレス分のデータを読み出し、リードバッファ３の一方のバンクに格納しておく。メモリ２Ａ、２ＢのアドレスＢｉに対する読み出しデータをＲＤ（Ｂｉ’）とするとき、ＲＤ（Ｂｉ’）には、４複素データが含まれる。これを、図３に示すＡｉを用いて、以下のように表現するものとする。
【数５】
2011102291.tif 000007
【００４１】
リードバッファ３のバンク番号をｒｂ（＝｛０，１｝）、リードバッファ３のアドレス（１複素データ分）をｒｎとするとき、ｋ番目のＤＦＴ処理実行時のリードバッファ３のデータＲＢ（ｒｂ，ｒｎ）は、以下で表される。
【数６】
2011102291.tif 000008
【００４２】
このように格納されたリードバッファ３のデータを使用して、４点ＤＦＴ演算部１で４点ＤＦＴ処理を行う。リードバッファ３には、４点ＤＦＴ処理Ｎ／４回分のデータが保持されている。４点ＤＦＴ処理を実行するのと並行して、次の４点ＤＦＴ処理Ｎ／４回分のデータをメモリ２Ａ、２Ｂから読み出し、リードバッファ３のもう一方のバンクに格納する。メモリ２Ａ、２Ｂの１アドレスに４複素データを格納しているため、１サイクルで４点ＤＦＴ処理１回分に相当するデータをメモリ２Ａ、２Ｂから読み出すことができる。４点ＤＦＴ処理１回分のデータを、ＤＦＴ処理と同時にメモリ２Ａ、２Ｂから読み出すことが可能となるため、４点ＤＦＴ処理を１サイクルで実行することが可能となる。
【００４３】
書き込み側も同様である。１回の４点ＤＦＴ処理で出力される４複素データをライトバッファ４の一方のバンクに格納し、もう一方のバンクに格納されている４複素データ分をメモリ２Ａ、２Ｂに書き込む。１回のＤＦＴ処理実行中に、１回のメモリへの書き込みが実現できる。
【００４４】
ライトバッファ４のバンク番号をｗｂ（＝｛０，１｝）、ライトバッファ４のアドレスをｗｎ、ｋ番目のＤＦＴ処理の出力データをＸ’（ｋ、ｍ）（ｍ＝｛０，１，２，３｝）とするとき、ライトバッファ４のデータＷＢ（ｗｂ，ｗｎ）は、以下で表される。
（ａ）Ｓ＝１のとき
【数７】
2011102291.tif 000009
（ｂ）Ｓ≧２のとき
【数８】
2011102291.tif 000010
【００４５】
各ステージとも、４点ＤＦＴ演算部１における４点ＤＦＴ処理Ｎ／４回分のデータが、リードバッファ３に格納されている必要がある。このため、各ステージの開始直後の４サイクルは、４点ＤＦＴ演算部１による処理は行わず、その処理に必要なデータをメモリ２Ａ、２Ｂから読み出して、リードバッファ３に格納する。４×（Ｎ／４）複素データ分の読み出し終了後、リードバッファ３のバンクを切り替え、メモリ２Ａ、２Ｂからのデータの読み出しと、リードバッファ３への格納を行う。これと同時に、リードバッファ３のもう一方のバンクからデータを読み出し、４点ＤＦＴ演算部１による処理を実行する。
【００４６】
ライトバッファ４は、４点ＤＦＴ処理４回分の結果が格納されるまで、メモリ２Ａ、２Ｂへの書き込みは行わない。処理開始後、４点ＤＦＴ処理Ｎ／４回分の結果が格納されたら、ライトバッファ４は、バンクを切り替え、切り替え後のバンクに続くＤＦＴ処理結果を格納していく。それと並行して、ライトバッファ４は、もう一方のバンクに格納されているＤＦＴ処理結果をメモリ２Ａ、２Ｂに書き込む。
【００４７】
１ステージ分の処理では、メモリ２Ａ、２Ｂからリードバッファ３への読み出しと、メモリ２Ａ、２Ｂへのライトバッファ４の書き込みとに、それぞれ４サイクルが必要である。このため、最小の実行サイクルは、Ｎ／４＋４×２サイクルとなる。
【００４８】
［詳細な動作の説明］
図７から図１８は、図１に示す高速フーリエ変換回路によるデータの処理の流れを説明する図である。これらの図を参照して、高速フーリエ変換回路の動作を詳細に説明する。ここでは、Ｎ＝６４の場合を例に説明する。以下の動作は、制御部７が各部を制御することにより実行される。処理の対象となる入力データは、メモリ２Ａに格納されているものとする。
【００４９】
メモリ２Ａに入力データが格納されると、制御部７は、各部を制御し、第１ステージから処理を開始する。セレクタ５は、入力データが格納されているメモリ２Ａから読み出しを行うように、接続を切り替える。
【００５０】
図７は、読み出し対象となるメモリ２Ａからデータを読み出して、リードバッファ１３に格納する処理の流れを示す図である。処理開始直後、メモリ２Ａから４ワード分（１６複素データ）が読み出されるまでは、４点ＤＦＴ演算部１での演算に必要なデータは揃わない。このため、４点ＤＦＴ演算部１による演算は行わず、リードバッファ３へのデータの格納のみを行う。
【００５１】
図８から図１１はそれぞれ、メモリ２Ａからのデータの読み出し、リードバッファ３への格納、４点ＤＦＴ演算部１による演算、および演算結果のライトバッファ４への格納の処理の流れを示す図である。
【００５２】
メモリ２Ａから最初の４ワード分のデータｘ（０）〜ｘ（３）、ｘ（１６）〜ｘ（１９）、ｘ（３２）〜ｘ（３５）、ｘ（４８）〜ｘ（５１）が読み出されてリードバッファ３に格納されたら、４点ＤＦＴ演算部１により、４点ＤＦＴ演算を順次行う（図８）。４点ＤＦＴ演算の演算結果ｚ（１，０）〜ｚ（１，３）をライトバッファ４に格納すると同時に、メモリ２Ａから次の４点ＤＦＴ演算に必要なデータを１ワードずつ読み出し、リードバッファ３に格納する。１回の４点ＤＦＴ演算につき、メモリ２Ａから最低１ワード(４複素データ)分のデータを読み出し、リードバッファ３に格納するものとする。すなわち、４点ＤＦＴ演算部１が最初の４点のデータｘ（０）、ｘ（１６）、ｘ（３２）、ｘ（４８）の処理を行っているときに、リードバッファ３には、メモリ２Ａからの最低１ワード分のデータｘ（４）〜ｘ（７）を格納する。
【００５３】
以下同様に、４点ＤＦＴ演算部１による演算と、その演算結果のライトバッファ４への格納と、メモリ２Ａからの読み出しと、リードバッファ３への格納を順次行う（図９〜図１１）。
【００５４】
図１２から図１５はそれぞれ、メモリ２Ａからのデータの読み出し、リードバッファ３への格納、４点ＤＦＴ演算部１による演算、演算結果のライトバッファ４への格納およびライトバッファ４からメモリ２Ｂへのデータの書き込みの処理の流れを示す図である。処理開始時点からライトバッファ４にＮ／４＝１６複素データ分の結果が格納された後、ライトバッファ４からメモリ２Ｂに、書き込みを行う。４複素データ分を、メモリ２Ｂの１ワードに順次書き込む。この際、４点ＤＦＴ演算処理、メモリ２Ａからのデータの読み出しおよびリードバッファ３への格納は、並行して行うものとする。
【００５５】
以上の動作を、４点ＤＦＴ演算回数がＮ／４回になるまで繰り返す。
【００５６】
図１６は、第１ステージの処理完了時におけるライトバッファ４からメモリ２Ｂへのデータの書き込み処理の流れを示す図である。４点ＤＦＴ演算回数がＮ／４回に達したとき、ライトバッファ４には、メモリ２Ｂにまだ書き込まれていないデータｚ（１，４８）〜ｚ（１，６０）が、４ワード(１６複素データ)分残っている。このデータを順次メモリに書き込み、第１ステージの処理を完了する（図１６）。
【００５７】
以上にて説明した動作を、第２ステージから第Ｐステージまで繰り返し、ＦＦＴ処理を完了する。
【００５８】
図１７は、第２ステージにおけるメモリ２Ａへのデータの書き込みを説明する図である。また、図１８は、第３ステージにおけるメモリ２Ｂへのデータの書き込みを説明する図である。第２ステージ以降は、ステージごとにセレクタ５が接続を切り替え、その前のステージで演算結果が蓄えられたメモリ２Ｂまたは２Ａからデータを読み出して演算を行い、その結果を他方のメモリ２Ａまたは２Ｂに格納する。したがって、この場合には、第２ステージではメモリ２Ａにデータが書き込まれ、第３ステージではメモリ３Ａにデータが書き込まれる。
【００５９】
第２ステージ以降は、式（８）に示したとおり、４点ＤＦＴの演算結果のライトバッファ４への書き込み方が、第１ステージとは異なる。そして、メモリ２Ａまたは２Ｂへのデータの書き込みアドレスは、式（３）にしたがって、Ｎ／４Ｐ−Ｓ+１間隔となる。この例ではＮ＝６４であり、Ｐ＝ｌｏｇ４６４＝３なので、第２ステージではアドレス（１複素データを格納するアドレス）間隔は４となり、第３ステージでは１６となる。
【００６０】
なお、図８〜図１８中のｚ（Ｓ，４×ｋ＋ｉ）、ただしｋ＝０〜（Ｎ／４−１）、ｉ＝０〜３は、ｋ番目の４点ＤＦＴの出力であることを示す。
【００６１】
図７から図１８を参照した説明では、処理の対象となる入力データが、メモリ２Ａに格納されているものとしたが、入力データがメモリ２Ｂに格納されている場合にも、演算結果をメモリ２Ａに書き込むものとして、同様に処理することができる。また、図１に示す高速フーリエ変換回路は、４点ＤＦＴ演算部１の出力をライトバッファに書き込む際に、回転子生成部６の生成した回転子を乗算しているが、これに関しては、高速フーリエ変換の分野では自明のことであるため、説明は省略した。
【００６２】
［効果］
以上説明した実施の形態においては、複素データのメモリ２Ａ、２Ｂへの配置方法と、４点ＤＦＴ演算部１の出力のメモリ２Ａ、２Ｂへの書き込み方法を工夫することで、リードバッファ３およびライトバッファ４を導入している。これによって、１サイクルで４点ＤＦＴを行う場合においても、メモリ２Ａ、２Ｂを不必要に分割する必要がなくなる。メモリ２Ａ、２Ｂに付加するデコード回路やテスト回路が不要となり、回路規模削減が可能となる。たとえば、メモリ２Ａ、２Ｂをそれぞれ４分割した場合、メモリ６個分のデコード回路とテスト回路が必要となるが、本実施の形態によれば、そのような回路を削減することが可能となる。
【００６３】
さらに、メモリ個数を減らすことによって、ＬＳＩ製作時の物理配置を行う際、配線数を約１／４にすることができ、レイアウトが容易になる。これにより、省面積性（チップコストの削減）を実現することができる。
【００６４】
［第２の実施の形態］
図１９は、本発明の第２の実施の形態に係る高速フーリエ変換回路を示すブロック構成図である。この実施の形態の基本的な構成は、第１の実施の形態と同等である。ただし、Ｂ／２＝２のべき乗ではあるが、Ｂ＝４のべき乗ではないデータ数Ｎ（ｌｏｇ２Ｎが奇数）の高速フーリエ変換処理を実行できる構成となっていることが異なる。
【００６５】
図１９に示す高速フーリエ変換回路は、メモリ２Ａ、２Ｂ、リードバッファ３、ライトバッファ４、セレクタ５、回転子生成部６、２点／４点ＤＦＴ演算部１１および制御部１２を備える。メモリ２Ａ、２Ｂ、リードバッファ３、ライトバッファ４、セレクタ５、回転子生成部６は図１に示したものと同じであり、以下では説明を省略する。２点／４点ＤＦＴ演算部１１は、１回の４点ＤＦＴ演算、または２回の２点ＤＦＴ演算を１サイクルで実行できる。その制御は、制御部１２により行う。
【００６６】
図２０は、図１９に示す高速フーリエ変換回路中の２点／４点ＤＦＴ演算部１１の演算構成例を示す図である。データ数Ｎの高速フーリエ変換は、Ｐ＝ｌｏｇ2（Ｎ／２）＋１回のＤＦＴ演算処理群（ステージ）に分解される。図２０に示す例では、第１ステージをふたつの２点ＤＦＴで構成し、第２ステージ以降を４点ＤＦＴ演算で構成する。
【００６７】
図２１は、第１ステージの処理で使用する２点ＤＦＴの構成図を示す図である。ここで、ふたつの２点ＤＦＴの出力Ｘ’（ｍ）は、以下の通りに表すものとする。Ｘ’（ｍ）、ｘ’（ｍ）は複素数であり、ｊは虚数単位である。
【数９】
2011102291.tif 000011
【００６８】
この構成において、制御部１２は、Ｐ＝ｌｏｇＢ/２（Ｎ／２）＋１ステージのそれぞれにおいて、次のステージでの演算対象となるデータが高速フーリエ演算の順番ｋ＝０，１,・・，Ｎ／Ｂ−１に対してデータ数ＮをＢの値で割った値ごとに同じアドレスでメモリから読み出すことのできるアドレス順に、メモリへの書き込みを行う。
【００６９】
具体的には、制御部１２は、Ｂ／２点のデジタルフーリエ変換を２組実行するステージにおけるメモリ２Ａ、２Ｂへの書き込みアドレスＷＡ（Ｓ，ｋ，ｍ）、ただしｍ＝０，１，・・，Ｂ−１、を、ｍ＝０，１，．．，Ｂ／２−１のときにはｋの２倍にｍを加算した値、ｍ＝Ｂ／２，．．，Ｂ−１のときにはＮ／２とｋの２倍とｍ−Ｂ／２とを加算した値に設定する。また、制御部１２は、Ｂ点のデジタルフーリエ変換を実行するステージのそれぞれにおけるメモリ２Ａ、２Ｂへの書き込みアドレスＷＡ（Ｓ，ｋ，ｍ）を、Ｂの値を残りステージ数に１を加えた値Ｐ−Ｓ＋１乗した値でデータ数Ｎを割った値にｍを乗じた値と、Ｂの値をＳ−１乗した値で順番ｋの２倍の値を割った値にＢのＳ乗の半分の値を乗じた値と、ＢをＳ−１乗した値の半分の値で順番ｋの値を割ったときの余りの値とを加算した値に設定する。さらに、制御部１２は、全Ｐステージのそれぞれにおけるメモリ２Ａ、２Ｂからの読み出しアドレスＲＡ（Ｓ，ｋ，ｍ）を、Ｂの値でデータ数Ｎを割った値にｍを乗じた値と、順番ｋの値とを加算した値に設定する。
【００７０】
図２０に示す構成の場合には、第１ステージでは２組の２点ＤＦＴ演算を行うため、書き込みアドレスが、式（３）とは異なり、以下の通りとなる。読み出しアドレスは式（４）と同じである。
【数１０】
2011102291.tif 000012
【００７１】
第２ステージ以降は４点ＤＦＴによる演算であるが、書き込みアドレスは式（３）と異なり、以下の通りとなる（Ｓ≧２）。読み出しアドレスは、第１ステージ同様、式（４）と同じである。
【数１１】
2011102291.tif 000013
【００７２】
メモリ２Ａ、２Ｂから読み出したデータのリードバッファ３への格納アドレスは、式（６）と同じである。ライトバッファ４への書き込みアドレスは、以下のように、処理ステージによって異なる。
ａ）第１ステージにおけるライトバッファ４への書き込みアドレス
【数１２】
2011102291.tif 000014
ｂ）第２ステージにおけるライトバッファへの書き込みアドレス
【数１３】
2011102291.tif 000015
ｃ）第３ステージ以降におけるライトバッファへの書き込みアドレス
式（８）と同じ。
【００７３】
［動作例］
これらのアドレスを用いた動作例を図２２から図３２を参照して説明する。以下の説明では、データ数Ｎ＝３２とする。
【００７４】
図２２から図２５はそれぞれ、第１ステージにおけるメモリ２Ａからのデータの読み出し、リードバッファ３への格納、２点／４点ＤＦＴ演算部１１による演算、および演算結果のライトバッファ４への格納の処理の流れを示す図である。
【００７５】
まず、２点ＤＦＴ処理開始前に、メモリ２Ａから最初の４ワード分のデータｘ（０）〜ｘ（３）、ｘ（８）〜ｘ（１１）、ｘ（１６）〜ｘ（１９）、ｘ（２４）〜ｘ（２７）を読み出して、リードバッファ３に格納する。この後、これらのデータに対して２点／４点ＤＦＴ演算部１１により２点ＤＦＴ演算を行うとともに、メモリ２Ａから次のデータｘ（４）〜ｘ（７）を読み出し、リードバッファ３に格納する。２点／４点ＤＦＴ演算部１１の演算結果は、ライトバッファ４に格納する（以上、図２２）。以下同様に、メモリ２Ａから１ワード（４複素データ）ずつ読み出してリードバッファ３に格納し、２点／４点ＤＦＴ演算部１１により２点ＤＦＴ演算を行い、演算結果をライトバッファ４に格納する（図２３から図２５）。
【００７６】
図２６は、第１ステージにおけるライトバッファ４からメモリ２Ｂへのデータの書き込みの処理の流れを示す図である。
【００７７】
２点／４点ＤＦＴ演算部１１による５回目から８回目の２点ＤＦＴ演算の結果をライトバッファ４に書き込むのと並行して、メモリ２Ｂに、ライトバッファ４に格納されているデータを１ワード（４複素データ）ずつ書き込む。８回の２点ＤＦＴ演算終了後、メモリＢにライトバッファに格納されているデータを書き込む。このとき、メモリ２Ｂへの書き込みアドレス間隔は１となっている。
【００７８】
図２７から図３１はそれぞれ、第２ステージにおける動作を説明する図２２から図２６と同等の図である。第２ステージの動作は、ライトバッファ４への書き込みアドレスが異なることを除いて、図２２から図２６を参照して説明した第１ステージの動作と同じであるので、説明を省略する。
【００７９】
図３２は、第３ステージにおける２点／４点ＤＦＴ演算部１１の演算結果のライトバッファ４への格納、およびライトバッファ４からメモリ２Ｂへのデータの書き込みの処理の流れを示す図である。この場合の動作は、メモリ２Ｂへ書き込みアドレスの間隔が次式で表されることを除いて、図８から図１６を参照して説明した第１の実施形態の動作と同じであるので、説明を省略する。
【数１４】
2011102291.tif 000016
【００８０】
以上の説明では、周波数間引き型の高速フーリエ変換を例に説明したが、時間間引き型の高速フーリエ変換でも本発明を実施することができる。
【産業上の利用可能性】
【００８１】
近年、無線通信分野では、通信速度向上のため、周波数利用効率の高い無線アクセス方式である直交波周波数分割多重（ＯＦＤＭ；Ｏｒｔｈｏｇｏｎａｌ  Ｆｒｅｑｕｅｎｃｙ  Ｄｉｖｉｓｉｏｎ  Ｍｕｌｔｉｐｌｅｘｉｎｇ）が用いられている。地上波デジタル放送、無線ＬＡＮ（Ｌｏｃａｌ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）をはじめとし、移動体通信においても、３ＧＰＰ（Ｔｈｉｒｄ  Ｇｅｎｅｒａｔｉｏｎ  Ｐａｒｔｎｅｒｓｈｉｐ  Ｐｒｏｊｅｃｔ  ）において新しい通信方式での標準化が進められているＬＴＥ（Ｌｏｎｇ  Ｔｅｒｍ  Ｅｖｏｌｕｔｉｏｎ）でも、ＯＦＤＭが採用されている。【００８２】
図３３は、ＯＦＤＭ方式を用いた通信システムの全体構成例を示す図である。ここでは、説明を簡単にするため、一方向の通信に関する構成のみを示す。【００８３】
この通信システムは、基地局１０１を備える。基地局１０１は、符号化部１０２、変調部１０３、ＯＦＤＭ信号生成部、Ｄ／Ａ変換部１０５および複数のアンテナ１０６（図ではひとつのみ示す）を備える。この通信システムはまた、基地局１０１と通信を行うユーザ端末などの移動局１１１を備える。移動局１１１は、復号部１１２、復調部１１３、ＯＦＤＭ信号復調部１１４、Ａ／Ｄ変換部１１５および複数のアンテナ１１６（図ではひとつのみ示す）を備える。【００８４】
基地局１０１では、たとえば基地局１０１のＣＰＵ（不図示）が、送信したいデータを情報ビットとして符号化部１０２に入力する。符号化部１０２は、入力された情報ビットに対し、ＣＲＣ（Ｃｙｃｌｉｃ  Ｒｅｄｕｎｄａｎｃｙ  Ｃｈｅｃｋ）付加や畳み込み符号化を施す。変調部１０３は、入力された符号データを変調する。ＯＦＤＭ信号生成部１０４は、変調後のデータを周波数軸上にマッピングし、デジタルフーリエ逆変換によって、周波数軸上のデータを時間軸上のデータに変換する。変換後のデータをＤ／Ａ変換部１０５に出力する。Ｄ／Ａ変換部１０５は、ＯＦＤＭ信号生成部１０４が出力したデジタル信号をアナログ信号に変換する。そしてアナログ信号に変換された変調データは、複数のアンテナ１０６を介して送信される。【００８５】
受信側の移動局１１１は、複数のアンテナ１１６を介して、送信側１０１のアンテナ１０６から送信されたデータを受信する。ただし、アンテナ１１６が受信したデータは、アンテナ１０６から出力された後、空間を伝播する際のノイズの影響を受けていることに留意する。アンテナ１１６が受信したデータは、Ａ／Ｄ変換部１１５に入力される。Ａ／Ｄ変換部１１５は、入力されたデータをアナログ信号からデジタル信号に変換する。Ａ／Ｄ変換部１１５は、変換後のデジタル信号をＯＦＤＭ信号復調部１１４に出力する。ＯＦＤＭ信号復調部１１４は、Ａ／Ｄ変換部１１５から出力される時間軸上のデジタル信号を、デジタルフーリエ変換によって周波数軸上のデータに変換し、ＩＱ平面上にマッピングする。復調部１１３は、ＯＦＤＭ信号復調部１１４が出力したデータを復調する。復調部１１３は、復調して得た復調データを復号化部１１２に出力する。復号化部１１２は、入力された復調データに対して、誤り訂正復号化を行う。その結果得られる復号データを使用して、後段のＣＰＵなどの処理回路が所定の処理を実施する。【００８６】
このＯＦＤＭ方式を用いた通信システムのＯＦＤＭ信号生成部１０４、およびＯＦＤＭ信号復調部１１４では、デジタルフーリエ変換が用いられる。ＤＦＴは、演算量が非常に大きい。ＬＴＥでは、２０ＭＨｚ帯域のサブキャリア数は１２００である。これをＤＦＴで演算するには、１１９９回の複素乗算と複素加算を、１２００回行う必要がある。しかかも、これを、１ＯＦＤＭシンボル期間６６．６７マイクロ秒以内に行う必要がある。【００８７】
演算量を小さくするためのアルゴリズムとして、たとえば、上述したようなクーリー・チューキー型の高速フーリエ変換が用いられる。２点ＤＦＴと４点ＤＦＴを組み合わせることによって、サブキャリア数１２００の場合の演算量は
２０４８回の複素乗算と複素加算＋（３回の複素加算と１回の複素乗算を２０４８回）×５回
となる。ここで、クーリー・チューキー型の高速フーリエ変換ではデータ数が２のべき乗であることが必要であるため、１２００より大きく、かつ最も小さな２のべき乗である２０４８がデータ数となる。【００８８】
実際の演算では、複素乗算の対象となる回転子が実数部のみ、あるいは虚数部のみで表される場合もあるため、乗算回数はこれより少なくてよいこともある。しかし、それでも、演算量が多いことにかわりはない。【００８９】
４点ＤＦＴを構成要素とした高速フーリエ変換を行うことによって、演算量を小さくできる。しかし、これをハードウェアで実現する場合は、一般的に、入出力データはメモリに格納する構成となる。４点ＤＦＴを実行する場合、その入力となる４つの複素データをメモリから取り出す必要があるが、メモリがシングルポートである場合は、４サイクルを要する。複数ポートのメモリ、あるいは、シングルポートのメモリを４分割することで、１サイクルで４複素データをメモリから読み出すことが可能となる。しかし、前者はメモリセルそのものの面積が大きくなり、後者はメモリマクロに付随するテスト回路、あるいはデコーダ回路により面積の増加に繋がる。また、メモリを分割することによって配線数が４倍となり、ＬＳＩ作製時のレイアウト設計の難易度が上がり、配線が出来るようにＬＳＩ面積を大きくしなければならない場合も考えられる。【００９０】
このような場合に、上述の実施の形態で示した高速フーリエ変換回路を用いることで、複数ポートのメモリを用いたり、メモリを分割したりすることなく、１サイクルで１回の４点ＤＦＴ演算が可能となり、処理時間を短縮することができる。【００９１】
また、スペクトラムアナライザなど、フーリエ変換を行う測定装置に本発明を利用することもできる。
【符号の説明】
【００９２】
１  ４点ＤＦＴ演算部
２Ａ、２Ｂ  メモリ
３  リードバッファ
４  ライトバッファ
５  セレクタ
６  回転子生成部
７、１２  制御部
１１  ２点／４点ＤＦＴ演算部
【図１】
2011102291.tif 000017
【図２】
2011102291.tif 000018
【図３】
2011102291.tif 000019
【図４】
2011102291.tif 000020
【図５】
2011102291.tif 000021
【図６】
2011102291.tif 000022
【図７】
2011102291.tif 000023
【図８】
2011102291.tif 000024
【図９】
2011102291.tif 000025
【図１０】
2011102291.tif 000026
【図１１】
2011102291.tif 000027
【図１２】
2011102291.tif 000028
【図１３】
2011102291.tif 000029
【図１４】
2011102291.tif 000030
【図１５】
2011102291.tif 000031
【図１６】
2011102291.tif 000032
【図１７】
2011102291.tif 000033
【図１８】
2011102291.tif 000034
【図１９】
2011102291.tif 000035
【図２０】
2011102291.tif 000036
【図２１】
2011102291.tif 000037
【図２２】
2011102291.tif 000038
【図２３】
2011102291.tif 000039
【図２４】
2011102291.tif 000040
【図２５】
2011102291.tif 000041
【図２６】
2011102291.tif 000042
【図２７】
2011102291.tif 000043
【図２８】
2011102291.tif 000044
【図２９】
2011102291.tif 000045
【図３０】
2011102291.tif 000046
【図３１】
2011102291.tif 000047
【図３２】
2011102291.tif 000048
【図３３】
2011102291.tif 000049
【国際調査報告】
2011102291.tif 000050
2011102291.tif 000051
2011102291.tif 000052
2011102291.tif 000053
2011102291.tif 000054
2011102291.tif 000055
2011102291.tif 000056
2011102291.tif 000057