(57)【要約】本発明は、入出力とFFT演算用メモリから入出力用メモリを選択し、メモリバンクのいずれか一つを選択して入出力を遂行する入出力インタフェース、インタフェースへの入出力とFFT演算を利用するNワードメモリ、インタフェースへの入出力とFFT演算用メモリからFFT演算用メモリを選択し、インプレース演算用に各バタフライ入出力に割り当てられたバンクをバタフライ演算回路の入力に接続する第1データ交換部、第1データ交換部から供給されるRadix-4バタフライとRadix-2バタフライを一回路で遂行し、対称的リバース出力を構成するバタフライ、インタフェース部への入出力とFFT演算用メモリからFFT演算用メモリを選択し、インプレース演算用に各バタフライ入出力に割り当てられたバンクをバタフライ演算回路の出力に接続する第2データ交換部、マルチバンクメモリ構造でインプレース演算を遂行するバンクインデックスとアドレスを生成するアドレス生成部を含む。
2005531252.tif 000002
【特許請求の範囲】
【請求項１】
入出力とＦＦＴ演算のためのメモリのうち、入出力のためのメモリを選択し、メモリの４つのバンクのうちのいずれか一つを選択して入力と出力を遂行する入出力インタフェースと、
前記インタフェースへの入出力とＦＦＴ演算を利用する４つのバンクで構成される２つのＮワードメモリと、
前記インタフェースへの入出力とＦＦＴ演算のためのメモリのうち、ＦＦＴ演算のためのメモリを選択し、インプレース演算のために各バタフライ入出力に割り当てられたバンクをバタフライ演算回路の４つの入力に接続するための第１のデータ交換部と、
前記第１のデータ交換部から供給されるRadix-４バタフライとRadix-２バタフライを一つの回路で遂行し、対称的リバース出力を構成するバタフライと、
前記インタフェース部への入出力とＦＦＴ演算のためのメモリのうち、ＦＦＴ演算のためのメモリを選択し、インプレース演算のために各バタフライ入出力に割り当てられたバンクをバタフライ演算回路の４つの出力に接続するための第２のデータ交換部と、
前記マルチバンクメモリ構造でインプレース演算を遂行するバンクインデックス及びアドレスを生成するアドレス生成部と、
を含むことを特徴とする高速フーリエ変換を用いた混合-基数方式の変調装置。
【請求項２】
前記バタフライは、
Radix-４バタフライと２つのRadix-２バタフライの出力を交換して、対称的リバース出力の順序を構成して順次的入出力を同時に遂行することにより、４つのバンクで構成された２つのＮワードメモリのみで連続処理を遂行するRadix-４/２バタフライ演算回路であること
を特徴とする請求項１記載の高速フーリエ変換を用いた混合-基数方式の変調装置。
【請求項３】
前記インプレースアルゴリズムは、
Radix-４アルゴリズムのマルチバンクメモリ構造のインプレースアルゴリズムを変形して決定されること
を特徴とする請求項１記載の高速フーリエ変換を用いた混合-基数方式の変調装置。
【請求項４】
前記インプレースアルゴリズムは、
バンクインデックス生成における２n-ポイント演算の実行中、ｎ-２番目のビットを別途にモジュロ-４加算に含むこと
を特徴とする請求項１記載の高速フーリエ変換を用いた混合-基数方式の変調装置。
【請求項５】
入力シンボルを貯蔵し、あるいは高速フーリエ演算が完了したシンボルを貯蔵する４つのバンクで構成される２つのメモリと、
前記メモリから出力されるシンボルの数に従って基数-４または基数-２の方式でバタフライ演算を遂行し、前記演算された値を対称的リバース形態で出力するバタフライと、
前記メモリのうちのいずれか一つのメモリの各バンクから一つずつのシンボルを読み出して、前記バタフライに出力する第１のデータ交換部と、
前記バタフライから演算出力されたシンボルを、前記第１のデータ交換部から読み出すシンボルのアドレスと同一のアドレスに貯蔵するようにマッチングする第２のデータ交換部と、
前記第１のデータ交換部から読み出したシンボルが演算以後に前記第２のデータ交換部を通じて出力されるときに、前記第１のデータ交換部から読み出したシンボルのバンク及びアドレスと前記第２のデータ交換部の出力バンク及びアドレスとが同一になるように、前記第２のデータ交換部の出力を制御するアドレス生成部と、
を含むことを特徴とする高速フーリエ変換を用いた混合-基数方式の変調装置。
【請求項６】
前記２つのメモリと入出力データとのインタフェースを遂行する入出力インタフェースを更に含むこと
を特徴とする請求項５記載の高速フーリエ変換を用いた混合-基数方式の変調装置。
【請求項７】
前記バタフライは、
Radix-４バタフライの構造を有し、Radix-２演算が必要な場合に、前記バタフライの内部に備えられたマルチプレクサを通じて２つのRadix-２演算を遂行するように構成されること
を特徴とする請求項５記載の高速フーリエ変換を用いた混合-基数方式の変調装置。
【請求項８】
前記バタフライの対称的リバースは、
前記バタフライ演算が遂行されるシンボルの総数によって決定される２進出力カウント値を、２ビットずつ一つの単位として対称的に変換してアドレスを決定すること
を特徴とする請求項５記載の高速フーリエ変換を用いた混合-基数方式の変調装置。
【請求項９】
前記２進出力カウント値のディジットが奇数の場合に、前記ディジットの中央ビットを基準として対称に変換することにより、アドレスを決定すること
を特徴とする請求項８記載の高速フーリエ変換を用いた混合-基数方式の変調装置。
【請求項１０】
前記アドレス生成部は、
前記バンクを決定するとき、前記演算されるシンボルに対応する２進入力カウントビット値をモジュロ-４演算を遂行した値によってバンクを決定すること
を特徴とする請求項５記載の高速フーリエ変換を用いた混合-基数方式の変調装置。
【請求項１１】
前記アドレス生成部は、
前記２進入力カウントビットのディジットが奇数の場合に、最上位２ビットの位置を交換し、下位２ビットずつモジュロ-４演算を遂行した後、位置交換された最上位ビットとモジュロ-４演算の遂行を通じてバンクを決定すること
を特徴とする請求項１０記載の高速フーリエ変換を用いた混合-基数方式の変調装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明はデータの変調装置に関して、特に、直交周波数分割多重(Orthogonal Frequency Division Multiplexing：以下、“ＯＦＤＭ”とする)方式または離散マルチトーン(Discrete Multi-Tone：以下、“ＤＭＴ”とする)方式の変調装置に関するものである。
【背景技術】
【０００２】
一般に、ディジタルデータ通信システムではデータの送信及び受信のときに変調と復調を通じてデータの伝送が行われる。このような変調と復調は、モデム(ＭＯＤＥＭ)装置によって遂行される。変調と復調のためのモデム装置は、各変調方式によって相互に異なる構成及び構造を有するようになる。データ通信で使用される一般の変調方式は、コード分割多重(ＣＤＭ)方式、周波数分割多重(ＦＤＭ)方式、直交周波数分割多重(以下、“ＯＦＤＭ”とする)方式、及びＤＭＴ変調方式などが存在する。
【０００３】
以下、ＯＦＤＭ方式とＤＭＴ変調方式について説明する。
【０００４】
ＯＦＤＭ方式は、無線通信システムで多重経路チャンネルを通じて高速データ伝送のために提案された。ＯＦＤＭ方式以前には単一搬送波伝送方式でデータの伝送を遂行した。すなわち、ＯＦＤＭ方式以前の無線通信システムでは伝送しようとする直列データを変調し、伝送の際に変調された各シンボルが全チャンネルの周波数帯域を使用して伝送した。しかしながら、ＯＦＤＭ方式またはＤＭＴ変調方式は変調されたデータを副搬送波(subcarrier)の数だけ直並列変換し、これをそれぞれに対応する副搬送波で変調する方式である。このような副搬送波を利用した変調は、離散フーリエ変換(Discrete Fourier Transform：以下、“ＤＦＴ”とする)を用いて実現する。しかしながら、実際のハードウェア設計にはＤＦＴや逆離散フーリエ変換(Inverse Discrete Fourier Transform：以下、“ＩＤＦＴ”とする)を使用せずに演算量を減少するために、高速フーリエ変換(Fast Fourier Transform：以下、“ＦＦＴ”とする)アルゴリズムを用いて実現する。このようなＦＦＴアルゴリズムを処理するためのプロセッサはＯＦＤＭシステムにおいて、一番大きな複雑度を持ち、高速演算が要求される。したがって、ＦＦＴアルゴリズムを処理するためのプロセッサは実現が難しい部分である。
【０００５】
このような高性能を要求する分野に使用されるＦＦＴプロセッサでは、主にパイプライン(pipe line)構造を有するＦＦＴプロセッサが使用される。しかしながら、この構造は、ステージ(stage)数だけの演算部を要求してポイント数が増加する場合に、実際のハードウェアで実現する際にそのサイズの増加をもたらす。したがって、このような問題点を解決してハードウェアのサイズ増加を防ぐために、メモリ構造と単一バタフライ演算部を使用するプロセッサが発表されている。
【０００６】
その一例として、基数-２(以下、“Radix-２”とする)ＦＦＴアルゴリズムを使用したメモリ構造ＦＦＴプロセッサが挙げられる。このメモリ構造ＦＦＴプロセッサは、メモリ構造にRadix-２アルゴリズムを使用するため、乗算器の数を最小化することができる。それにより、メモリ構造ＦＦＴプロセッサは小さいサイズのＦＦＴプロセッサの実現が可能になる。
【０００７】
しかしながら、Radix-２アルゴリズムを使用したメモリ構造ＦＦＴプロセッサは非常に多くの演算サイクルを必要とし、演算時間が非常に長くなるという問題があった。その結果、Radix-２アルゴリズムを使用したメモリ構造ＦＦＴプロセッサは高速演算が要求されるＯＦＤＭシステムまたはＤＭＴシステムに適合せず、これを満たすためには高い動作周波数が求められる。したがって、一般にRadix-２方式ではＯＦＤＭシステムまたはＤＭＴシステムにおいてRadix-４アルゴリズムを使用する方式が、主に利用されている。以下、現在まで発表されているRadix-４アルゴリズム方式のＦＦＴプロセッサについて説明する。
【０００８】
図１は、ＡＭＰＨＩＯＮ社で発表したRadix-４アルゴリズムに基づいたＦＦＴプロセッサを示すものである。Radix-４アルゴリズムの場合、Radix-２アルゴリズムに比べてステージ数が１/２に減少するようになる。また、各ステージ当たりバタフライ演算回数もRadix-２に比べて１/２になる。したがって、Radix-４アルゴリズムはRadix-２アルゴリズムに比べて一層少ないバタフライ演算回数を有する。このようなRadix-４アルゴリズム、Radix-２アルゴリズム、及び後述する混合-基数アルゴリズムのＦＦＴ長さによる演算回数を、下記の＜表１＞のように示す。
【０００９】
【表１】
2005531252.tif 000003
【００１０】
＜表１＞に示すように、Radix-４アルゴリズムは４ｎ(以下、ｎは整数を意味する)の長さを有するＦＦＴ演算のみが可能であり、Radix-２アルゴリズムは２ｎの長さを有するすべてのＦＦＴの長さに対して演算が可能である。これを、上記の＜表１＞に示したＦＦＴ長さを用いて説明すれば、下記のようになる。ＦＦＴ長さ２５６は２８なので、Radix-２アルゴリズムとRadix-４アルゴリズムで共に使用できる。しかしながら、ＦＦＴ長さ５１２は２９なので、Radix-４アルゴリズムはＦＦＴ長さ５１２の場合には演算の遂行ができない。したがって、２ｎの長さを有するすべてのＦＦＴ演算を可能にするために、Radix-４アルゴリズムを他のRadixと共に使用する混合-基数アルゴリズムが求められる。上記＜表１＞の最後列にはRadix-４アルゴリズムとRadix-２アルゴリズムを使用する混合-基数アルゴリズムにおけるバタフライ演算回数を示した。＜表１＞の混合-基数に対する演算回数は、図１のＡＭＰＨＩＯＮ社で提供する装置で遂行する演算回数となる。以下、図１を参照してＡＭＰＨＩＯＮ社で提供する装置について説明する。
【００１１】
混合-基数アルゴリズムを使用する図１のＦＦＴプロセッサは、Radix-４バタフライとRadix-４/Radix-２のバタフライを選択的に連動してRadix-４、Radix-８、Radix-１６の混合-基数演算を遂行する。入出力インタフェース及び制御器１１は外部から入力されるデータＸをＦＦＴ演算するように制御し、ＦＦＴ演算が遂行された結果、データＹをプロセッサの外部に出力する。ここで、入出力インタフェース及び制御器１１の入力データＸと出力データＹは、ＯＦＤＭシンボルあるいはＤＭＴシンボルになることができる。メモリ制御器１２は、入出力インタフェース及び制御器１１からＦＦＴ演算のために入力されるデータと演算中のデータの読み出し及び書き込みのために、メモリ１３のアドレス生成を制御する。メモリ１３は、１０２４-ワードデュアルポートメモリで構成されており、外部から入力されるデータ及びＦＦＴ演算の中間データ、結果データをメモリ制御器１２が指示するアドレスに貯蔵したり、読み取りを行ったりする。
【００１２】
また、バタフライ演算部１０はRadix-４バタフライ１４と回転因子ルックアップテーブル(Look Up Table：以下、“ＬＵＴ”とする)１６と、複素乗算器１５とを含んで構成される。Radix-４バタフライ１４は、Radix-４バタフライ演算のうち加算と減算の演算を遂行する。回転因子ＬＵＴ１６は、演算が遂行されるデータの回転因子を貯蔵し、回転因子の値を出力するメモリテーブルである。複素乗算器１５は、Radix-４バタフライの演算のうち、複素数に対する乗算を遂行し、その結果値を出力する。また、Radix-４/Radix-２の選択的バタフライ１７は、ＦＦＴ長さに応じて必要な最終演算を選択的に遂行するための装置である。すなわち、ＦＦＴ長さに応じて最終演算がRadix-２演算を必要とする場合には、Radix-２バタフライを選択してRadix-２演算を遂行するようにする。また、最終演算がRadix-４演算を必要とする場合に、Radix-４バタフライを選択してRadix-４演算を遂行するようにする。したがって、全体的なＦＦＴ演算が演算部１０のRadix-４バタフライ演算と連動してRadix-８演算またはRadix-１６演算を遂行可能にする。したがって、ＦＦＴプロセッサは、最後のステージのみでRadix-４/Radix-２選択的バタフライ１７を選択し、残った他のステージではRadix-４バタフライ演算部１０のみを選択するためのＭＵＸ１８を含む。Radix-４アルゴリズムの場合に、４つの入力と出力を有するバタフライで実現される。したがって、４つの入出力が一つのサイクルで遂行されなければ、演算サイクルを最小化することができない。このように、１つのサイクルで４つの入出力を遂行するために、メモリはマルチバンクに分けられて使用すべきである。しかしながら、図１に示したＦＦＴプロセッサは、マルチバンク構造を使用しない構造からなっている。したがって、図１のような構造で動作を遂行する場合に、ＦＦＴプロセッサは多くの演算サイクルを要求し、それによりRadix-４演算の長所を活用できなくなる。
【００１３】
図２は、Drey Enterprise社で発表した混合-基数アルゴリズムとマルチバンク構造を有するＦＦＴプロセッサのブロック構成図である。図２に示すように、Drey Enterprise社で発表したＦＦＴプロセッサもメモリ構造を有することがわかる。図２のＦＦＴプロセッサでは、２つの入力メモリ(ＲＡＭ)２１，２２のうちいずれか一つの入力ＲＡＭが外部入力データを貯蔵する間に、他の入力ＲＡＭはＦＦＴ演算に使用される。そして、ＭＵＸ２３は、入力ＲＡＭ２１，２２のうちのいずれか一つからバタフライ入力を受信するか、あるいは出力ＲＡＭ２８，２９のうちのいずれか一つからバタフライ入力を受信するかを決定する。Radix-２演算部２６，２７は、Radix-２演算を遂行するステージでRadix-２演算を遂行し、その結果を出力する。また、ＭＵＸ２４は、Radix-２演算部２６，２７からRadix-２バタフライ出力を受信し、入力ＲＡＭ２１，２２のうちのいずれか一つに貯蔵し、あるいは出力ＲＡＭ２８，２９のうちのいずれか一つに貯蔵するために、その結果値を多重化して出力する。Radix-２/Radix-４共通演算部２５は、Radix-４演算を遂行するステージではRadix-４演算を遂行し、Radix-２演算を遂行するステージではRadix-２演算を遂行してその結果値を出力する。２つの出力ＲＡＭ２８，２９のうちのいずれか一つの出力ＲＡＭがＦＦＴ演算に使用される間に、他の出力ＲＡＭはＦＦＴ演算の結果データを外部に出力する。図２に示す構造は、Radix-４とRadix-２の混合-基数アルゴリズムを使用し、さらにメモリもマルチバンク構造を使用する。したがって、マルチバンクメモリ構造を使用することによって、演算クロックサイクルが最小化するようになる。
【００１４】
しかしながら、図２に示した構造は、バタフライ入力をアクセスしたメモリ位置にバタフライ出力を貯蔵するインプレース(In-plase)アルゴリズムを適用しない構造である。したがって、ＦＦＴ演算にＮワードを有する２つのメモリを使用する構造である。すなわち、ＦＦＴ演算だけのためには、それぞれ４つのバンクで構成されたメモリのうちの２つのメモリのみでも可能であるが、連続処理を遂行するためには入力と出力のための２つのメモリを更に使用しなければならない。それにより、図２では合計４つのメモリが使用されることになる。このメモリは、ＦＦＴプロセッサにおいて大部分の面積を占めるブロックの一つである。したがって、上記のようなメモリ数の増加は、メモリの複雑度を高くし、ハードウェアのサイズが増大し、コストが上昇するという要因として作用する。
【００１５】
メモリ構造のメモリ複雑度を最小化するために、L. G. Johnsonが発表したインプレースアルゴリズムの１６-ポイントＦＦＴに関する実施形態は、図３に示すようになる。このインプレースアルゴリズムは、メモリをマルチバンクに分けて使用する場合のためのアルゴリズムである。Radix-４バタフライ演算のために４つのデータを同時にアクセスすべく、バタフライ演算が行われた４つの結果をアクセスした位置に同時に貯蔵すべきである。このために、主メモリは４つのバンク(バンク０、バンク１、バンク２、バンク３)に分けられて使用し、同時に一つのバンクで多数のデータをアクセスしないために適切なアドレシングを遂行すべきである。図３は、１６-ポイントＦＦＴに対するインプレースメモリアドレシングの例を示すものである。図３において、第１のバタフライ演算から第８のバタフライ演算までを遂行する構成を有する。また、各バタフライ演算を説明すると、１回に４つずつの入力を取る。このとき、４つの入力はそれぞれ異なるバンクから読み取られる。次に、第１のバタフライ演算と第２のバタフライ演算について説明する。第１のバタフライ演算において、４つの入力はバンク０のアドレス０、バンク１のアドレス１、バンク２のアドレス２、バンク３のアドレス３からそれぞれ読み出し、バタフライ演算結果を同一のバンク及びアドレスに貯蔵する。第２のバタフライ演算において、４つの入力はバンク１のアドレス０、バンク２のアドレス１、バンク３のアドレス２、バンク０のアドレス３から読み出し、バタフライ演算結果を同一の位置に貯蔵する。図３で、どのバンクを使用するかを示すバンクインデックスｉは、データ入力カウントビットを２ビットディジットに分けてモジュロ-４加算を遂行することによって容易に得られる。図３は１６-ポイントＦＦＴなので、１６個のデータをカウントするために４ビットカウンタが使用される。４ビットを上位２ビットと下位２ビットのディジットに分け、上位２ビットと下位２ビットをモジュロ-４加算を遂行する方式によって、バンクインデックスを求める。
【００１６】
しかしながら、上述したインプレースアルゴリズムは混合-基数でなく、固定した基数のみに使用するために提案された。したがって、このインプレースアルゴリズムを混合-基数方式にその通り適用できないという問題があった。
【００１７】
以下、連続処理構造を有する従来の構造について説明する。メモリ構造で入力と出力を同時に遂行することにより、Ｎワードのサイズを有する２つのメモリのみを使用して連続処理が可能なメモリ構造のＦＦＴプロセッサが、R. Radhouaneにより提案された。この構造は、Radix-２アルゴリズムでＤＩＦ(Decimation In Frequency)演算を遂行する場合とＤＩＴ(Decimation In Time)演算を遂行する場合に、それぞれ出力と入力がビットリバース特性を有する。この構造は、前記特性を利用して一度はＤＩＦ演算を遂行し、次はＤＩＴ演算を遂行する方式で連続処理を実現した。下記の＜表２＞に、２つのメモリを用いた連続処理構造の演算方式を示す。
【００１８】
【表２】
2005531252.tif 000004
【００１９】
＜表２＞において、ＯＦＤＭシンボルはＦＦＴ演算の長さに該当するデータを意味する。例えば、２５６-ポイントＦＦＴ演算の場合に一つのＯＦＤＭシンボルは２５６個のデータビットを意味する。＜表２＞で、ＣはＦＦＴ演算を意味し、Ｉ/Ｏは入出力を遂行することを意味する。ＮＡＴは、元のアドレス０，１，２，３，…,Ｎ-１の正しい順序でメモリアドレシングを遂行して入出力することを意味する。また、ＢＲは、ビットリバースアドレシングによってメモリ入出力を遂行することを意味する。そして、＜表２＞の０番目のＯＦＤＭシンボルにおいて、メモリ１がＤＩＦによって演算を遂行する間、メモリ２はＮＡＴ、すなわち正しい順序でアドレシングを遂行して入出力を行う。第１のＯＦＤＭシンボルにおいて、メモリ１はＢＲ、すなわちビットリバースアドレシングによって入出力を遂行し、メモリ２はＤＩＦによって演算を遂行する。第２のＯＦＤＭシンボルにおいて、メモリ１がＤＩＴによって演算を遂行し、メモリ２はＢＲ、すなわちビットリバースアドレシングによって入出力を遂行する。次の第３のＯＦＤＭシンボルにおいては、メモリ１がＮＡＴ、すなわち正しい順序で入出力を遂行し、メモリ２はＤＩＴによって演算を遂行する。第４のＯＦＤＭシンボルからは、０番目のＯＦＤＭシンボルから第３のＯＦＤＭシンボルまでの一連の演算が反復される。２つのメモリで連続処理を遂行するためには、一つのメモリが演算を遂行する間に他のメモリは順次的に入出力を同時に遂行すべきである。このような構造では、２つのメモリが入出力とＦＦＴ演算を交互に遂行する方式であって、この２つのメモリだけで連続処理が可能になる。
【００２０】
Alcatel社で発表した従来の構造は３つのメモリを使用して連続処理を実現した一方、上記した従来の連続処理構造は２つのメモリだけを使用してメモリ複雑度を最小化することができる。
【００２１】
しかしながら、この連続処理構造はRadix-２アルゴリズムを使用する場合だけのために構成されたものである。したがって、Radix-２演算のみを遂行するため、多くの演算サイクルと高い動作周波数が求められるという問題点を有する。
【発明の開示】
【発明が解決しようとする課題】
【００２２】
したがって、上述したような問題点を解決するために本発明の目的は、高速演算と同時に最小化した複雑度を有する回路を提供することにより、高性能を満たし、かつサイズを最小化することができるＦＦＴプロセッサを提供することにある。
【００２３】
本発明の他の目的は、ＦＦＴ演算を遂行する際にRadix-２/Radix-４アルゴリズムの混合-基数アルゴリズムを提供し、かつサイズと複雑度を低減することができるＦＦＴプロセッサを提供することにある。
【００２４】
また、本発明の目的は、Radix-２/Radix-４アルゴリズムの混合-基数アルゴリズムを提供し、かつ高速処理が可能なＦＦＴプロセッサを提供することにある。
【００２５】
本発明の他の目的は、Radix-２/Radix-４アルゴリズムの混合-基数アルゴリズムを提供し、かつ連続処理が可能なＦＦＴプロセッサを提供することにある。
【課題を解決するための手段】
【００２６】
上記の目的を達成するために本発明は、入出力とＦＦＴ演算のためのメモリのうち、入出力のためのメモリを選択し、メモリの４つのバンクのうちのいずれか一つを選択して入力と出力を遂行する入出力インタフェースと、前記インタフェースへの入出力とＦＦＴ演算を利用する４つのバンクで構成される２つのＮワードメモリと、前記インタフェースへの入出力とＦＦＴ演算のためのメモリのうち、ＦＦＴ演算のためのメモリを選択し、インプレース演算のために各バタフライ入出力に割り当てられたバンクをバタフライ演算回路の４つの入力に接続するための第１のデータ交換部と、前記第１のデータ交換部から供給されるRadix-４バタフライとRadix-２バタフライを一つの回路で遂行し、対称的リバース出力を構成するバタフライと、前記インタフェース部への入出力とＦＦＴ演算のためのメモリのうち、ＦＦＴ演算のためのメモリを選択し、インプレース演算のために各バタフライ入出力に割り当てられたバンクをバタフライ演算回路の４つの出力に接続するための第２のデータ交換部と、前記マルチバンクメモリ構造でインプレース演算を遂行するバンクインデックス及びアドレスを生成するアドレス生成部とを含むことを特徴とする高速フーリエ変換を用いた混合-基数方式の変調装置を提供する。
【００２７】
また本発明は、入力シンボルを貯蔵し、あるいは高速フーリエ演算が完了したシンボルを貯蔵する４つのバンクで構成される２つのメモリと、前記メモリから出力されるシンボルの数に従って基数-４または基数-２の方式でバタフライ演算を遂行し、前記演算された値を対称的リバース形態で出力するバタフライと、前記メモリのうちのいずれか一つのメモリの各バンクから一つずつのシンボルを読み出して、前記バタフライに出力する第１のデータ交換部と、前記バタフライから演算出力されたシンボルを、前記第１のデータ交換部から読み出すシンボルのアドレスと同一のアドレスに貯蔵するようにマッチングする第２のデータ交換部と、前記第１のデータ交換部から読み出したシンボルが演算以後に前記第２のデータ交換部を通じて出力されるときに、前記第１のデータ交換部から読み出したシンボルのバンク及びアドレスと前記第２のデータ交換部の出力バンク及びアドレスとが同一になるように、前記第２のデータ交換部の出力を制御するアドレス生成部とを含むことを特徴とする高速フーリエ変換を用いた混合-基数方式の変調装置を提供する。
【発明の効果】
【００２８】
本発明は、Radix-４アルゴリズムに基づいた混合-基数アルゴリズムを使用することによって、高速演算が可能になる。そして、混合-基数アルゴリズムにインプレース演算を適用し、入出力を同時に遂行することにより、４つのバンクで構成された２つのＮワードメモリによって連続処理を遂行するため、メモリサイズを最小化することができる。
【００２９】
また、マルチバンク構造を使用しないRadix-４アルゴリズムに基づいた従来の混合-基数ＦＦＴプロセッサと本発明とを比べる場合に、従来技術によるＦＦＴプロセッサは本発明に比べて約４倍程度長い演算サイクルを有する。
【００３０】
さらに、インプレースアルゴリズムと同時に入出力する構造を採択しない従来技術では、混合-基数ＦＦＴプロセッサが４つのバンクで構成された４つのＮワードメモリを求めるため、２つのＮワードメモリを求める本発明の構造に比べて２倍大きなメモリサイズを有する。
【００３１】
したがって、本発明は、高速演算だけでなく低いハードウェアの複雑度を満たすことによって、ＯＦＤＭまたはＤＭＴシステムに容易に適用できる効果がある。
【発明を実施するための最良の形態】
【００３２】
以下、本発明の望ましい実施形態を添付の図面を参照して詳細に説明する。
【００３３】
図４は、本発明によるインプレースアルゴリズムを適用して混合-基数構造と入出力を同時に遂行することにより、２Ｎワードのメモリで連続処理を遂行するＦＦＴプロセッサのブロック構成図である。
【００３４】
入出力インタフェース１０１は、入力されるデータをＦＦＴ演算のためにメモリ１０２，１０３のうちのいずれか一つを選択し、メモリの４つのバンクのうちの一つのバンクを選択してデータを記録する。そして、入力されたデータの演算が完了した場合に、入出力インタフェース１０１はＦＦＴ演算の完了したデータが記録されているメモリを選択し、この選択されたメモリの４つのバンクのうちの一つのバンクを選択し、データを読み出して出力する。４つのバンクを有する２つのＮワードメモリ１０２，１０３は、入出力インタフェース１０１から入力されるデータを貯蔵し、貯蔵されたデータをＦＦＴ演算のために第１のデータ交換部１０４に出力し、第２のデータ交換部１０６から受信されるデータを更に貯蔵する。そして、各メモリ１０２、１０３からＦＦＴ演算が完了したデータは、入出力インタフェース１０１に出力する。第１のデータ交換部１０４は、ＦＦＴ演算を遂行するデータが貯蔵されたメモリ及び前記メモリのバンクを選択し、本発明によりインプレース演算のために選択されたメモリのバンクから４つのデータを読み取る。そして、第１のデータ交換部１０４は、アドレス生成部１０７から出力されるアドレス生成値に従って読み取られたデータを交換し、Radix-４/２バタフライ１０５に出力する。また、本発明によるRadix-４/２バタフライ１０５は、第１のデータ交換部１０４から入力されるデータによりRadix-４方式またはRadix-２方式で演算を遂行する。Radix-４/２バタフライ１０５は、一つの回路で構成され、対称的リバース出力を有する。このように、Radix-４/２バタフライ１０５で演算されたデータは、第２のデータ交換部１０６に出力される。第２のデータ交換部１０６は、Radix-４/２バタフライ１０５から出力された値を貯蔵するメモリと前記メモリ内のバンクを選択して貯蔵する。アドレス生成部１０７は、上記マルチバンクメモリ構造で本発明によるインプレース演算を遂行するためのバンクインデックス及びアドレスを生成して出力する。
【００３５】
図４の構造を有するＦＦＴプロセッサは、図５に示すような信号流れ図を有する。図５は３２-ポイント混合-基数ＦＦＴ演算の例示図であって、ステージ１とステージ２はRadix-４で、ステージ３はRadix-２で演算が遂行される。図４に説明したように、本発明の構造では２つのメモリをそれぞれ４つのバンクに分け、４つのデータを同時にアクセスすることができる。したがって、２つのデータを使用するRaidx-２バタフライの場合に、同時に２つのバタフライ演算遂行が可能である。また、ステージ３の細い実線内に表示した２つのRadix-２バタフライは、同時に遂行可能なバタフライ対を示す。このように、２つのRadix-２バタフライを同時に一つのサイクルで遂行することにより、演算サイクルを短縮する利得が得られる。
【００３６】
ＦＦＴプロセッサにおいて、Radix-２バタフライ構造は、別途のバタフライで実現されず、Radix-４バタフライにデータスイッチング回路を加えて実現する。これを、図６Ａに示す。図６Ａでは、“Radix-２”というマルチプレクサ(Multiplexer)選択信号を通じてRadix-４バタフライと２つのRadix-２バタフライを実現する。次に、図６Ａについてより詳細に説明する。２つずつ入力される入力データシンボルｘ(０),ｘ(２)は、一つのRadix-２バタフライを構成する加算器に入力される。また、入力データシンボルｘ(１)，x(３)は、他のRadix-２バタフライを構成する加算器に入力される。このように、各Radix-２バタフライを構成する加算器は、その出力を２つに分岐して一つの出力をそれぞれマルチプレクサの一入力端に提供する。そして、分岐された他の一つの出力は、Radix-２バタフライを構成するそれぞれ異なる加算器からの出力との加算及び減算を遂行し、各マルチプレクサの他入力端に入力される。その後、各マルチプレクサの出力は、図面に示したように、再び分岐されて他のマルチプレクサを通じて選択され、あるいはそのまま出力される。このように出力された値は、本発明によりインプレースアドレスにマッピングされる。これについて、下記により詳細に説明する。図６Ａに示した等価回路は、図６Ｂのように構成される。図６Ｂは、Radix-４バタフライ回路でRadix-２バタフライを実現した場合に等価のRadix-２バタフライ対を示すものである。
【００３７】
次に、本発明のメモリ構造で連続処理を遂行するための構造について説明する。従来技術で説明したR.Radhouaneにより提案された連続処理構造は、Radix-２アルゴリズムのための構造である。しかしながら、本発明の構造はRadix-４アルゴリズムと混合-基数アルゴリズムのための構造である。また、従来の構造はＦＦＴとＤＩＴ演算を交互に遂行する方式である。しかしながら、本発明の構造はＤＩＦ演算のみを遂行し、メモリアドレシングの制御だけで連続処理を遂行する。
【００３８】
本発明のように連続処理を遂行するためには、復号が完了したシンボルの位置に新たに復号するシンボルが貯蔵されなければならない。このように復号するシンボルを読み出す動作と、新たに復号するシンボルが貯蔵される書き込む動作は、一つのクロックで同時に遂行される。また、Radix-４バタフライを満たすためには４つのバンクを有するメモリで、各バンクから出力されるシンボルが一つずつ出力されるべきである。そして、各ステージを経て演算が完了したとき、シンボルは読み出された位置に記録されなければならない。したがって、このような方法でアドレスを生成することが大きな課題になる。以上に説明した方法は、Radix-４アルゴリズムのみを使用するときに容易に実現可能である。したがって、図７にはRadix-４アルゴリズムのみを使用する１６-ポイントＦＦＴの例を示す。
【００３９】
図７で、列１と列２はデータシンボルを貯蔵するメモリバンクとアドレスを示し、列３はディジットリバース出力順序を示す。図７において、外部から受信された最初の入力データシンボルは列２のバンクとアドレスに記録される。入力されたデータは第１のステージで４回のバタフライ演算が行われ、第２のステージで４回のバタフライ演算が行われる。すなわち、図７で（１）〜(４)は第１のステージで遂行される４回のバタフライ演算を示し、(５)〜(８)は第２のステージで遂行される４回のバタフライ演算を示す。前記ステージの各バタフライ演算は、一つのメモリに備えられた４つの各バンクからデータシンボルが一つずつ読み出されることがわかる。１回目のバタフライ演算では、バンク０のアドレス０のデータ、バンク１のアドレス１のデータ、バンク２のアドレス２のデータ、及びバンク３のアドレス３のデータが読み出される。したがって、一つのデータシンボルは各バンクから読み取られる。このような方法で、４回のバタフライ演算が完了すれば、第２のステージで再び４回のバタフライ演算が遂行される。この方法で、演算が行われた出力は、図７の列３に示したような出力順序を有する。
【００４０】
上述したように、ＦＦＴ演算が遂行されると、列３のディジットリバース順序で出力が構成され、メモリ貯蔵位置はインプレース演算を遂行するため、列２のバンクとアドレスがその通り維持される。演算結果をディジットリバースアドレシングを通じて順次に出力し、同時に順番に次のデータを入力すると、列１のバンクとアドレスに新たな入力データが貯蔵される。列３の０番目の出力は、列２のバンク０のアドレス０に貯蔵されているため、次のＦＦＴ演算のための新たな０番目のシンボルをこの０番目の出力が遂行されたバンクとアドレスに貯蔵する。列３の第１の出力は列２のバンク１のアドレス１に貯蔵されており、新たなデータの第１のシンボルを第１の出力が遂行された位置に貯蔵する。列３の第２の出力は列２のバンク２のアドレス２に貯蔵されており、新たなデータの第２のシンボルをこの第２の出力が遂行された位置に貯蔵する。このような方法で、新たな入力を記録すると、列１のバンクとアドレスが形成される。これに対するＦＦＴ演算を遂行した後、そのＦＦＴ演算結果を順次に出力し、入力を順次に記録すると、列２のバンクとアドレスの割り当てによって更に復元される。したがって、列１及び列２のバンクとアドレスの割り当てが交互に遂行される。
【００４１】
上記のように順次に入出力を同時に遂行すると、一つのメモリが演算を遂行する間に他のメモリは入出力を遂行する方式で、２つのメモリのみで連続処理が可能になる。このとき、ＦＦＴ演算は入出力動作周波数に比べて２倍高い動作周波数で演算が遂行されるべきである。上記の＜表１＞からわかるように、ＦＦＴ演算クロックサイクルがＦＦＴ演算ポイントより高いためである。すなわち、Radix-４アルゴリズムの場合に、１０２４-ポイントＦＦＴより演算クロックサイクルがさらに長くなり、Radix-４/Radix-２アルゴリズムの混合-基数アルゴリズムの場合に、５１２-ポイントＦＦＴより演算クロックサイクルがさらに長くなる。
【００４２】
混合-基数アルゴリズムの場合に、連続処理のための順次的入出力のために別途の操作が必要である。３２-ポイント混合-基数アルゴリズムの場合に、出力は図５の列４に示すように与えられる。これは、図７の列３のRadix-４アルゴリズムのリバース順とは異なり、非対称的リバース形態を有する。まず、Radix-４アルゴリズムのみを使用する場合のディジットリバース順序について説明すると、Radix-４アルゴリズムの２ｎ-ポイントＦＦＴに対するディジットリバース順序を、図８Ａに示す。２ｎ個のデータシンボルをカウントするためにｎビットが必要なので、ｎビットカウンタが使用される。図８Ａにおいて、リバースは、(ｎ−１，ｎ−２)番目のビット対、(ｎ−３，ｎ−４)番目のビット対、…，(３，２)番目のビット対、及び(１，０)番目のビット対を一つのディジットとして遂行される。ここで、このように遂行されるリバースは、“ディジットリバース”と称する。図８Ａからわかるように、ディジットの中央を基準にして対称的にリバースが遂行される。
【００４３】
図８Ｂは、２ｎ-ポイントＦＦＴに対する混合-基数アルゴリズムのリバース順序を示す。混合-基数アルゴリズムの場合に、２３，２５，２７，２９などの２の奇数乗のポイント数を有するため、出力カウントビットの数が３，５，７，９ビットなどのように奇数である。それにより、混合-基数アルゴリズムは、Radix-４アルゴリズムのように２ビットディジットのみでリバースすることができない。最下位ビットが別途にリバースされるべく、それにより非対称的リバース形態を有するようになる。図８Ｂの例として、３２(２５)-ポイントに該当する図５の列４は図９に示すような非対称的リバース形態を有する。非対称的リバース出力を有する場合に、Radix-４アルゴリズムで構成された図７のように列１及び列２のバンクとアドレスが反復される構造で構成できない。混合-基数アルゴリズムでもRadix-４のみを使用する図７のように、連続処理のために列１と列２が繰り返される構造を持つためには、出力が対称的リバース形態を有するべきである。このため、混合-基数アルゴリズムで図５の列４のような非対称的出力順序を列３のような対称的出力順序を有するように変換するデータ交換が遂行される。それによる３２(２５)-ポイントの対称的リバース出力順序が図５の列３のようになり、図１０のように生成することができる。一般化した２ｎ-ポイント混合-基数ＦＦＴの場合に、出力の対称的リバース順序は図１１に示すようになる。上位２ビット(ｎ−１，ｎ−２)と下位２ビット(１，０)は、ディジットリバースが遂行され、中間(intermediate)ビット(ｎ−３，ｎ−４，…，３，２)はビットリバースが遂行される。つまり、元の図８Ｂの非対称的リバース形態が、データ交換過程を通じて図１１に示した対称的リバース形態に変換されることになる。
【００４４】
図１２に、図５の列３と図１０に示した３２-ポイントの対称的リバース順序を実現するためのデータ交換過程を示す。図１２は、図５の太い実線で示したボックスの８-ポイントＤＦＴ部分に該当する。図１２に示すように、第２のステージではRadix-４バタフライの２つの第２の出力ｇ′２(ｎ)、２つの第３の出力ｇ′３(ｎ)の記録位置を交換し、第３のステージでもRadix-２バタフライ対の出力Ｘ′２(ｎ)とＸ′３(ｎ)の記録位置を交換する。このように構成すると、図１２の列１に示すように、対称的リバース順序に変換される。図１２において、列２は、本発明のような記録位置が交換されない場合の非対称的リバース順序を示すものである。このようなデータ交換は、図６Ａのバタフライ回路で“交換(Exchange)”信号の制御を通じて遂行可能である。例として挙げた３２-ポイントＦＦＴだけでなく、すべての２ｎ-ポイントＦＦＴ(ｎ＝１，３，５，７，９，…)で第１のステージを除き、残りのステージでRadix-４バタフライの第２及び第３の出力貯蔵位置を交換する。そして、最後のステージで、２つのRadix-２バタフライの第２及び第３の出力貯蔵位置を交換することにより、対称的リバース出力順序を構成することが可能になる。
【００４５】
最終的に、混合-基数アルゴリズムにおいてバンクインデックス生成について説明する。本発明によるバンクインデックス生成方法は、上記図５の列１と列２に示したバンクインデックスを生成するものである。ＦＦＴ長さが２ｎの場合に、バンクインデックスと各バンクのアドレスは、ｎビットカウンタを使用して生成する。従来技術で説明したRadix-４アルゴリズムは、２２，２４，２６，２８などのポイント数を有する。したがって、バンクインデックスｉは、２ビットディジットに対してモジュロ-４加算を遂行することによって生成可能である。しかしながら、混合-基数アルゴリズムは２３，２５，２７，２９のようなポイント数を有するため、入力カウントビットの数は３ビット、５ビット、７ビット、９ビットのように奇数になる。したがって、２ビットディジットのモジュロ-４加算だけではバンクインデックスを生成することができない。本発明による混合-基数アルゴリズムにおいて、入力カウントビットのディジットが奇数の場合、バンクインデックスを生成する方法は下記の２つの過程を通じて遂行される。第１に、最上位２ビットの位置を交換する。第２に、前記位置交換されたカウント値を下位ビットから２ビットディジットに分け、この分けられた２ビットに対してモジュロ-４加算を遂行する。すると、最上位１ビットが残るようになるが、この最上位１ビットとのモジュロ-４加算によって演算された値はモジュロ-４で更に演算する。
【００４６】
図１３は、３２(２５)-ポイントＦＦＴの２ビットディジットと１ビットを構成する方法を示す図である。上述した方法により入力カウントビットの位置を交換し、演算を遂行すると、モジュロ-４の演算を遂行するとき、最後に１ビットの残るビットは、入力データカウントビットのうちの第３のビットに該当する。そして、下位ビットから２ビットディジットずつモジュロ-４加算を遂行するビットのマッチングは、(４，２)、(１，０)に該当する。このようにバンクインデックスを生成すると、ＦＦＴ演算の際に他のバンクからデータを読み出し、そのうえ、図５の列２から列１に変更するときにバンクインデックス順序はそのまま維持することができる。
【００４７】
図１４は、３２-ポイント混合-基数ＦＦＴのバンクインデックス生成方法を一般化することにより、２ｎ-ポイント混合-基数ＦＦＴのバンクインデックス生成方法を示すものである。図１４において、入力データカウントビットのうちの別途の１ビット位置はｎ-２番目のビットであり、２ビットディジットのモジュロ-４加算にこの別途のビットが含まれる。
【００４８】
本発明によるＦＦＴプロセッサの演算サイクルと、従来技術によるＦＦＴプロセッサの演算サイクルとを比べて、下記の＜表３＞に示す。この＜表３＞から、Radix-２アルゴリズムを使用した従来のメモリ構造に比べて、本発明の演算サイクルが約１/４に減少することがわかる。
【００４９】
【表３】
2005531252.tif 000005
【図面の簡単な説明】
【００５０】
【図１】従来のマルチバンク構造を使用しない混合-基数アルゴリズムＦＦＴプロセッサの構造を示すブロック図である。
【図２】従来のインプレースアルゴリズムを使用しない混合-基数アルゴリズムＦＦＴプロセッサの構造を示すブロック図である。
【図３】従来のマルチバンクメモリのためのRadix-４インプレースアルゴリズムを示す図である。
【図４】本発明による連続処理構造を有するインプレースアルゴリズム混合-基数ＦＦＴプロセッサの構造を示すブロック図である。
【図５】本発明による３２-ポイント混合-基数ＦＦＴプロセッサの演算流れ図である。
【図６Ａ】図４のＦＦＴプロセッサに使用されるRadix-４/Radix-２バタフライ回路のブロック図である。
【図６Ｂ】図６ＡのRadix-２バタフライの演算の際に等価バタフライ対を示す図である。
【図７】図４のRadix-４アルゴリズムのみを使用する場合に連続処理を実現するためのＦＦＴ演算を示す図である。
【図８Ａ】４n-ポイントＦＦＴ演算のために、Radix-４アルゴリズムのみを使用する場合に出力のディジットリバース順序を示す図である。
【図８Ｂ】２n-ポイントＦＦＴ演算(ｎ＝３，５，７，９，…)のために、Radix-２を共に使用する混合-基数アルゴリズムを使用する場合に出力の非対称リバース順序を示す図である。
【図９】３２-ポイント混合-基数ＦＦＴ演算の図５の列４に該当する非対称的リバス出力順序を示す図である。
【図１０】３２-ポイント混合-基数ＦＦＴ演算の図５の列３に該当する対称的リバース出力順序を示す図である。
【図１１】２n-ポイントＦＦＴ演算(ｎ＝３，５，７，９，…)のための混合-基数アルゴリズムの対称的リバース出力順序を示す図である。
【図１２】図５の列３に該当する対称的リバース出力順序を生成するためのデータ交換を示す流れ図である。
【図１３】３２-ポイント混合-基数ＦＦＴ演算の図５のバンクインデックス生成方法を示す図である。
【図１４】２n-ポイントＦＦＴ演算(ｎ＝３，５，７，９，…)のための混合-基数アルゴリズムのバンクインデックス生成方法を示す図である。
【符号の説明】
【００５１】
１０    バタフライ演算部
１１    入出力インタフェース及び制御器
１２    メモリ制御器
１３    メモリ
１４    Radix-４バタフライ
１５    複素乗算器
１６    回転因子ルックアップテーブル（ＬＵＴ)
１７    Radix-４/Radix-２選択的バタフライ
１８    ＭＵＸ
２１，２２    入力メモリ(ＲＡＭ)
２３    ＭＵＸ
２４    ＭＵＸ
２５    Radix-２/Radix-４共通演算部
２６，２７    Radix-２演算部
２８，２９    出力ＲＡＭ
１０１    入出力インタフェース
１０２，１０３    Ｎワードメモリ
１０４    第１のデータ交換部
１０５    Radix-４/２バタフライ
１０６    第２のデータ交換部
１０７    アドレス生成部
【図１】
2005531252.tif 000006
【図２】
2005531252.tif 000007
【図３】
2005531252.tif 000008
【図４】
2005531252.tif 000009
【図５】
2005531252.tif 000010
2005531252.tif 000011
2005531252.tif 000012
【図７】
2005531252.tif 000013
2005531252.tif 000014
2005531252.tif 000015
【図９】
2005531252.tif 000016
【図１０】
2005531252.tif 000017
【図１１】
2005531252.tif 000018
【図１２】
2005531252.tif 000019
【図１３】
2005531252.tif 000020
【図１４】
2005531252.tif 000021
【国際調査報告】
2005531252.tif 000022
2005531252.tif 000023