説明

フーリエ変換処理装置

【課題】消費電力を抑制すると共に、小型化したフーリエ変換処理装置を提供することである。
【解決手段】無線通信に用いられるフーリエ変換処理装置10であって、バタフライ演算回路20を含み、装置に入力されたデータに対してフーリエ変換を行うフーリエ変換機構11と、フーリエ変換機構11へ入力するデータを格納する第一のメモリ13と、第一のメモリ13へ入力するデータの配列を並び替える第一のコミュテータ15と、第一のメモリ13から出力され、バタフライ演算回路20へ入力するデータの配列を並び替える第二のコミュテータ16とを備える。

【発明の詳細な説明】
【技術分野】
【0001】
この発明は、フーリエ変換処理装置に関し、特に、無線通信に用いられるフーリエ変換処理装置に関するものである。
【背景技術】
【0002】
昨今の無線通信に利用されているIEEE802.11n規格には、MIMO−OFDM(Multi Input Multi Output − Orthogonal Frequency Division Multiplexing)伝送方式が採用されている。MIMO−OFDM伝送方式では、データを無線で送受信するために、フーリエ変換および逆変換が必要である。
【0003】
ここで、IEEE802.11n規格では、1個のデータストリームで128ポイントのフーリエ変換を実行する。このようなフーリエ変換処理装置は、例えば、Yu-Wei Lin, et al.,”Design of an FFT/IFFT Processor for MIMO OFDM Systems,” IEEE Trans, CAS-I, vol. 54, pp. 807-815, April 2007.(非特許文献1)に開示されている。
【先行技術文献】
【非特許文献】
【0004】
【非特許文献1】Yu-Wei Lin, et al.,”Design of an FFT/IFFT Processor for MIMO OFDM Systems,” IEEE Trans, CAS-I, vol. 54, pp. 807-815, April 2007.
【発明の概要】
【発明が解決しようとする課題】
【0005】
図11は、非特許文献1に開示の従来のフーリエ変換処理装置100の回路構成を示す図である。図11を参照して、フーリエ変換処理装置100は、R8MDC(Radix‐8 Multi‐Path Delay Commutator)101と、R2SDF(Radix‐2 Single‐Path Delay Feedback)104と、R8MDC101へ入力するデータを格納する第一のメモリ102と、R2SDF104から出力するデータを格納する第二のメモリ103とを備える。フーリエ変換処理装置100は、データストリームが8であり、各データストリームのフーリエ変換ポイント数が128ポイントである。
【0006】
図12は、従来のR8MDC101の回路構成を示す図である。図12を参照して、R8MDC101は、遅延要素(Delay Elements:DE)200と、コミュテータ(Commutator)201と、遅延要素202と、第一のバタフライ演算回路(Butterfly Unit)203と、複素乗算器(Non−Trivial Multiplier)204と、遅延要素205と、コミュテータ206と、遅延要素207と、第二のバタフライ演算回路208とを含む。遅延要素200は、複数の遅延ユニットを含み、複数の遅延ユニットは、それぞれ異なる遅延量を有している。それぞれの遅延量xを図12中の遅延ユニット毎に示しており(DE:x)、例えば遅延ユニット200aの遅延量xは56である。他の遅延要素202,205,207においても同様に、複数の遅延ユニットを含み、それぞれ異なる遅延量を有している。また、図13は、R2SDF104の回路構成を示す図である。図13を参照して、R2SDF104においても、遅延ユニット104aを含む構成である。
【0007】
図14は、第一のメモリ102から出力され、R8MDC101に入力されるデータを示す図である。図15は、R8MDC101の第一のバタフライ演算回路203に入力されるデータを示す図である。R8MDC101は、遅延要素200,202、およびコミュテータ201により、図14に示すデータの配列を図15に示すデータの配列とするようデータの順番を並び替える。すなわち、図14に示すデータに対して、第一のバタフライ演算回路203に入力されるデータは、図15に示す配列でなければならず、データの配列の並び替えを行う必要がある。
【0008】
ここで、ハードウェアにおいて、上記したような遅延要素を実現しようとすると、シフトレジスタ等が必要となり、フーリエ変換処理装置の構成が大型化する。したがって、なるべく遅延要素を設ける数を少なくすることが好ましい。また、遅延要素を複数設けると、その消費電力も大きくなり、フーリエ変換処理装置そのものの消費電力も大きくなってしまう。
【0009】
この発明の目的は、消費電力を抑制すると共に、小型化したフーリエ変換処理装置を提供することである。
【課題を解決するための手段】
【0010】
この発明に係るフーリエ変換処理装置は、無線通信に用いられる。フーリエ変換処理装置は、バタフライ演算回路を含み、装置に入力されたデータに対してフーリエ変換を行うフーリエ変換機構と、フーリエ変換機構へ入力するデータを格納する第一のメモリと、第一のメモリへ入力するデータの配列を並び替える第一のコミュテータと、第一のメモリから出力され、バタフライ演算回路へ入力するデータの配列を並び替える第二のコミュテータとを備える。
【0011】
こうすることにより、フーリエ変換処理装置は、装置に入力されたデータに対し、第一のコミュテータおよび第二のコミュテータを用いることにより、バタフライ演算回路へ入力する際の配列を並び替えることができる。したがって、遅延要素を設ける必要なく、データの配列を並び替えることができる。その結果、フーリエ変換処理装置を小型化することができ、消費電力を抑制することができる。
【0012】
好ましくは、フーリエ変換処理装置は、フーリエ変換機構から出力するデータを格納する第二のメモリと、第二のメモリへ入力するデータの配列を並び替える第三のコミュテータと、第二のメモリから出力するデータの配列を並び替える第四のコミュテータとをさらに備える。
【0013】
さらに好ましくは、フーリエ変換処理装置は、データストリーム数をmとし、sを自然数とすると、m=2であり、各データストリームのフーリエ変換ポイント数をnとし、tを自然数とすると、n=2である。こうすることにより、フーリエ変換処理装置を様々なストリーム数、およびポイント数に適用させることができる。
【0014】
一実施形態として、フーリエ変換処理装置は、データストリーム数が8であり、各データストリームのフーリエ変換ポイント数が128ポイントである。
【発明の効果】
【0015】
この発明に係るフーリエ変換処理装置は、装置に入力されたデータに対し、第一のコミュテータおよび第二のコミュテータを用いることにより、バタフライ演算回路へ入力する際の配列を並び替えることができる。したがって、遅延要素を設ける必要なく、データの配列を並び替えることができる。その結果、フーリエ変換処理装置を小型化することができ、消費電力を抑制することができる。
【図面の簡単な説明】
【0016】
【図1】この発明の一実施形態に係るフーリエ変換処理装置の回路構成を示す図である。
【図2】第一のコミュテータ、第二のコミュテータ、および第一のメモリの詳細な回路構成を示す図である。
【図3】第一のメモリを示す模式図である。
【図4】第一のコミュテータに入力されるデータの一例を示す図である。
【図5】図4に示すデータを16ポイント毎に集約した場合を示す図である。
【図6】図5に示すデータを並び替えることにより、第一のコミュテータから出力する際のデータの配列を示す図である。
【図7】書き込み位置を制御されて、図6に示すデータから第一のメモリに書き込まれたデータの配列を示す図である。
【図8】図7に示すデータを並び替えることにより、第二のコミュテータから第一のバタフライ演算回路に出力する際のデータの配列を示す図である。
【図9】消費電力を示す表である。
【図10】回路面積を示す表である。
【図11】非特許文献1に開示の従来のフーリエ変換処理装置の回路構成を示す図である。
【図12】従来のR8MDCの回路構成を示す図である。
【図13】R2SDFの回路構成を示す図である。
【図14】第一のメモリから出力され、R8MDCに入力されるデータを示す図である。
【図15】R8MDCの第一のバタフライ演算回路に入力されるデータを示す図である。
【発明を実施するための形態】
【0017】
以下、図面を参照して、この発明の一実施形態に係るフーリエ変換処理装置について説明する。図1は、この発明の一実施形態に係るフーリエ変換処理装置10の回路構成を示す図である。図1を参照して、フーリエ変換処理装置10は、フーリエ変換処理装置10に入力されたデータに対してフーリエ変換を行うフーリエ変換機構11と、R2SDF(Radix‐2 Single‐Path Delay Feedback)12と、フーリエ変換機構11へ入力するデータを格納する第一のメモリ(Input RAM)13と、フーリエ変換機構11から出力するデータを格納する第二のメモリ(Output RAM)14と、第一のメモリ13へ入力するデータの配列を並び替える第一のコミュテータ(Pre−Commutator)15と、第一のメモリ13から出力するデータの配列を並び替える第二のコミュテータ(Post−Commutator)16と、第二のメモリ14へ入力するデータの配列を並び替える第三のコミュテータ(Pre−Commutator)17と、第二のメモリ14から出力するデータの配列を並び替える第四のコミュテータ(Post−Commutator)18とを備える。フーリエ変換処理装置10は、データストリームが8であり、各データストリームのフーリエ変換ポイント数が128ポイントである。すなわち、フーリエ変換処理装置10は、8ストリーム型の装置である。
【0018】
第一のコミュテータ15、第二のコミュテータ16、および第一のメモリ13は、フーリエ変換機構11の入力側に位置し、第三のコミュテータ17、第四のコミュテータ18、および第二のメモリ14は、フーリエ変換機構11の出力側に位置している。そして、フーリエ変換処理装置10は、入力側の第一のコミュテータ15に対してデータが入力されると、データのフーリエ変換を行い、出力側の第四のコミュテータ18まで出力する。すなわち、データの流れは、図1中の矢印で示すようになる。
【0019】
図2は、第一のコミュテータ15、第二のコミュテータ16、および第一のメモリ13の詳細な回路構成を示す図である。図2を参照して、第一のコミュテータ15は、8ストリームのデータの入力を受け付けると共に、出力する。第二のコミュテータ16においても同様である。第一のメモリ13は、8−Bank Dual Port RAMである。図3は、第一のメモリ13を示す模式図である。図3を参照して、第一のメモリ13は、8個のバンク(Bank)19a〜19hを備える。なお、図2においては、バンク19a,19hのみ符号を付している。8個のバンク19a〜19hは、データストリーム毎であって、1ストリームにつき1バンクを使用し、8ストリームで8バンクを備える。そして、第一のメモリ13は、1バンクにおいて、1ストリーム(128ポイント)のデータを8個に分割して書き込みを行う。すなわち、データは、第一のメモリ13上で8行8列で書き込まれることとなる。また、第一のメモリ13は、アドレスコンバータ13aを備え、アドレスコンバータ13aは、第一のメモリ13に対して、データの書き込み位置を制御する。データは、第一のコミュテータ15から第一のメモリ13を介して第二のコミュテータ16に出力される。
【0020】
フーリエ変換機構11は、R8MDC(Radix‐8 Multi‐Path Delay Commutator)である。そして、第一のバタフライ演算回路(Butterfly Unit)20と、複素乗算器(Non−Trivial Multiplier)21と、遅延要素(Delay Elements:DE)22と、第五のコミュテータ(Commutator)23と、遅延要素24と、第二のバタフライ演算回路25とを含む。
【0021】
遅延要素22は、複数の遅延ユニットを含み、複数の遅延ユニットは、それぞれ異なる遅延量を有している。それぞれの遅延量xを図1中の遅延ユニット毎に示しており(DE:x)、例えば遅延ユニット22aの遅延量xは7である。他の遅延要素24においても同様に、複数の遅延ユニットを含み、それぞれ異なる遅延量を有している。
【0022】
図4は、第一のコミュテータ15に入力されるデータの一例を示す図である。図4を参照して、データは、ストリームAからストリームHまで、8ストリームで構成される。そして、1個のデータストリームにつき、0から127までの128ポイントで構成される。例えば、ストリームAにおいては、A0からA127までであり、ストリームBにおいては、B0からB127までである。すなわち、第一のコミュテータ15に入力されるデータは、8行128列となる。そして、第一のコミュテータ15に入力されるデータとは、フーリエ変換処理装置10に入力されるデータである。なお、図4のデータは、上記した図14のデータと同じである。
【0023】
ここで、説明のために、ポイントを16ポイント毎に集約する。図5は、図4に示すデータを16ポイント毎に集約した場合を示す図である。図5を参照して、0列目のA行目に配置されるa0は、図4のストリームAに配置されるA0からA15までを指し、0列目のB行目に配置されるb0は、図4のストリームBに配置されるB0からB15までを指す。他のストリームに配置されるc0、d0・・h0においても同様に、それぞれ0から15までのポイントを指す。そして、1列目のA行目に配置されるa1は、A16からA31までを指し、b1、c1・・h1においても同様に、それぞれ16から31までのポイントを指す。このように16ポイント毎に集約すると、第一のコミュテータ15に入力されるデータは、8行8列となる。
【0024】
ここで、第一のコミュテータ15は、図5のようにデータが入力されると、データを並び替える。図6は、図5に示すデータを並び替えることにより、第一のコミュテータ15から出力する際のデータの配列を示す図である。図5および図6を参照して、0列目は同じである。すなわち、0列目においては、各データを0行移動する。1列目は、a1がA行目からB行目に1行下へ移動し、b1、c1・・g1においても同様に1行下へ移動する。そして、h1においては、図5ではH行目に配置されており、1行下へ移動できないため、H行目から上のA行目に移動する。すなわち、1列目においては、各データを1行下に移動する。そして、他の列、例えば6列目においては、各データを6行下に移動し、7列目においては、各データを7行下に移動する。すなわち、各データを当該列の分だけ下の行に移動する。このようにして、第一のコミュテータ15は、行を下に移動することにより、データを並び替える。そして、第一のコミュテータ15は、図6に示す配列に並び替えたデータを第一のメモリ13に向けて出力する。
【0025】
そして、第一のメモリ13に向けて出力されたデータは、アドレスコンバータ13aにより、第一のコミュテータ15から第一のメモリ13に書き込まれる。このとき、アドレスコンバータ13aは、データの書き込み位置を制御する。図7は、書き込み位置を制御されて、図6に示すデータから第一のメモリ13に書き込まれたデータの配列を示す図である。図6および図7を参照して、a0はA行目の0列目で同じ位置である。すなわち、A行目の0列目は、同じ書き込み位置となるよう制御される。a1は、B行目の1列目から0列目へ書き込むよう書き込み位置を制御される。そして、a6は、G行目の6列目から0列目へ書き込むよう書き込み位置を制御され、a7は、H行目の7列目から0列目へ書き込むよう書き込み位置を制御される。a2、a3・・a5においても同様に、書き込み位置を制御される。すなわち、アドレスコンバータ13aは、ストリームAを集約したデータであるa0、a1・・a7において、当該行の各列から0列目へ書き込むよう書き込み位置を制御する。
【0026】
そして、ストリームBのデータ、例えば、b7は、A行目の7列目から1列目へ書き込むよう書き込み位置を制御する。そして、b0、b1・・b6においても同様に、当該行の各列から1列目へ書き込むよう書き込み位置を制御する。そして、ストリームCのデータにおいては、当該行の各列から2列目へ書き込むよう書き込み位置を制御し、ストリームD、E・・Hにおいても同様に、当該行の各列から3、4・・7列目へ書き込むよう書き込み位置を制御する。このようにして、アドレスコンバータ13aは、データの書き込む位置を制御して、第一のメモリ13にデータを書き込む。
【0027】
図7を参照して、0列目に、ストリームAのa0からa7までのデータが順に配置されている。また、1列目に、ストリームBのb0からb7までのデータが順に配置されている。そして、2列目以降においても同様に、順に配置されている。そして、データは、図7に示す配列で、第一のメモリ13から読み出され、第二のコミュテータ16に入力される。
【0028】
そして、第二のコミュテータ16は、図7のようにデータが入力されると、データを並び替え、並び替えたデータをフーリエ変換機構11の第一のバタフライ演算回路20に出力する。図8は、図7に示すデータを並び替えることにより、第二のコミュテータ16から第一のバタフライ演算回路20に出力する際のデータの配列を示す図である。図7および図8を参照して、0列目は同じである。すなわち、0列目においては、各データを0行移動する。1列目は、b0がB行目からA行目に1行上へ移動し、b1、b2・・b6においても同様に1行上へ移動する。そして、b7においては、A行目に配置され、1行上へ移動できないため、A行目から下のH行目に移動する。すなわち、1列目においては、各データを1行上に移動する。そして、他の列、例えば6列目においては、各データを6行上に移動し、7列目においては、各データを7行上に移動する。すなわち、各データを当該列の分だけ上の行に移動する。このようにして、第二のコミュテータ16は、行を上に移動することにより、データを並び替える。そして、第二のコミュテータ16は、図8に示す配列に並び替えたデータを第一のバタフライ演算回路20に向けて出力する。
【0029】
図8を参照して、従来の図15と同じデータの配列になっている。すなわち、図8を参照して、0列目のA行目に配置されるa0は、ストリームAに配置されるA0からA15までであり、0列目のB行目に配置されるa1は、A16からA31までである。したがって、0列目にストリームAとなる。これにより、本願発明のフーリエ変換処理装置10では、従来のような遅延要素を設ける必要なく、第一のバタフライ演算回路20に向けて出力するデータの配列を並び替えることができる。そして、データを並び替える前の図5と図8とを比較すると、データの行列が入れ替わっている。
【0030】
このように、フーリエ変換処理装置10は、フーリエ変換機構11の第一のバタフライ演算回路20へ入力するデータの配列を第一のコミュテータ15および第二のコミュテータ16を用いて並び替えることができる。したがって、従来のような遅延要素を設ける必要なく、データの配列を並び替えることができる。その結果、フーリエ変換処理装置10を小型化することができ、消費電力を抑制することができる。
【0031】
さらに、遅延要素を少なくすることで、より高速に処理を行うことができる。
【0032】
すなわち、図1に示す本願発明におけるフーリエ変換処理装置10と、図11および図12に示す従来のフーリエ変換処理装置100とを比較すると、従来において、第一のメモリ102から第一のバタフライ演算回路203までの間に設けられていた遅延要素200,202を削減することができる。
【0033】
また、図9は、消費電力を示す表であって、図1に示す本願発明におけるフーリエ変換処理装置10と図11に示す従来のフーリエ変換処理装置100とを90nmのCMOS技術で実装した場合の消費電力(mW)を示している。図9を参照して、従来のフーリエ変換処理装置では、46.6mWの消費電力であったのに対し、本願発明では、15.3mWの消費電力であり、従来と比較すると1/3の消費電力とすることができた。なお、この消費電力の評価は、電源電圧を1.0Vとし、クロック周波数を100MHzと設定したときのCADシステムによる消費電力の見積もりである。
【0034】
また、図10は、回路面積を示す表であって、図1に示す本願発明におけるフーリエ変換処理装置10と図11に示す従来のフーリエ変換処理装置100とを90nmのCMOS技術で実装した場合の回路面積(μm)を示している。図10を参照して、従来のフーリエ変換処理装置では、799,002μmであったのに対し、本願発明では、405,183μmであり、従来と比較すると49%の面積を削減することができた。
【0035】
なお、上記の実施の形態においては、フーリエ変換機構11の入力側である、第一のコミュテータ15、第二のコミュテータ16、および第一のメモリ13において、データの並び替えを行う例について説明したが、これに限ることなく、フーリエ変換機構11の出力側である、第三のコミュテータ17、第四のコミュテータ18、および第二のメモリ14においても同様の処理を行うことができる。すなわち、出力側では、図5から図8へ入力側で並び替えられたデータの配列を、図8から図5へ元の配列に戻ることとなる。
【0036】
具体的には、第一のコミュテータ15が第三のコミュテータ17に対応し、第二のコミュテータ16が第四のコミュテータ18に対応し、第一のメモリ13が第二のメモリ14に対応する。そして、ストリームAは、図8のA行目、すなわち、a0、b0・・・h0である。ストリームB、C・・Hにおいても同様に、図8のB行目、C行目・・H行目である。そして、第三のコミュテータ17において、図8に示す配列のデータが入力されて、図7に示す配列のデータが、第三のコミュテータ17から出力される。そして、第二のメモリ14において、図6に示すデータが書き込まれる。そして、第四のコミュテータ18において、図6に示す配列のデータが入力されて、図5に示す配列のデータが、第四のコミュテータ18から出力される。
【0037】
なお、上記の実施の形態においては、フーリエ変換の例について説明したが、これに限ることなく、フーリエ逆変換に用いることもできる。すなわち、上記した出力側と同様に、図8から図5へ元の配列に戻ることとなる。
【0038】
また、上記の実施の形態においては、データストリームの数が8個の例について説明したが、2以上のマルチストリームに適用することができる。例えば、データストリーム数をmとし、sを自然数(s=1,2・・)とすると、m=2のマルチストリームに適用することができる。また、フーリエ変換ポイント数においても、128ポイントに限ることなく、任意のポイント数に適用することができる。例えば、ポイント数をnとし、tを自然数(t=1,2・・)とすると、mに依存しないn=2のポイント数に適用することができる。
【0039】
また、フーリエ変換処理装置10は、フルカスタムLSI(大規模集積回路)による実装に限ることなく、ディスクリート型のディジタル回路や、セミカスタムLSIや、FPGA(Field−Programmable Gate Array)による実装に適用することもできる。
【0040】
以上、図面を参照してこの発明の実施形態を説明したが、この発明は、図示した実施形態のものに限定されない。図示された実施形態に対して、この発明と同一の範囲内において、あるいは均等の範囲内において、種々の修正や変形を加えることが可能である。
【産業上の利用可能性】
【0041】
この発明は、無線通信を用いたネットワークに、有効に利用される。
【符号の説明】
【0042】
10 フーリエ変換処理装置、11 フーリエ変換機構、12 R2SDF、13 第一のメモリ、13a アドレスコンバータ、14 第二のメモリ、15 第一のコミュテータ、16 第二のコミュテータ、17 第三のコミュテータ、18 第四のコミュテータ、19a〜19h バンク、20 第一のバタフライ演算回路、21 複素乗算器、22,24 遅延要素、22a 遅延ユニット、23 第五のコミュテータ、25 第二のバタフライ演算回路。

【特許請求の範囲】
【請求項1】
無線通信に用いられるフーリエ変換処理装置であって、
バタフライ演算回路を含み、装置に入力されたデータに対してフーリエ変換を行うフーリエ変換機構と、
前記フーリエ変換機構へ入力するデータを格納する第一のメモリと、
前記第一のメモリへ入力するデータの配列を並び替える第一のコミュテータと、
前記第一のメモリから出力され、前記バタフライ演算回路へ入力するデータの配列を並び替える第二のコミュテータとを備える、フーリエ変換処理装置。
【請求項2】
前記フーリエ変換処理装置は、
前記フーリエ変換機構から出力するデータを格納する第二のメモリと、
前記第二のメモリへ入力するデータの配列を並び替える第三のコミュテータと、
前記第二のメモリから出力するデータの配列を並び替える第四のコミュテータとをさらに備える、請求項1に記載のフーリエ変換処理装置。
【請求項3】
前記フーリエ変換処理装置は、データストリーム数をmとし、sを自然数とすると、m=2であり、
各データストリームのフーリエ変換ポイント数をnとし、tを自然数とすると、n=2である、請求項1または2に記載のフーリエ変換処理装置。
【請求項4】
前記フーリエ変換処理装置は、データストリーム数が8であり、各データストリームのフーリエ変換ポイント数が128ポイントである、請求項3に記載のフーリエ変換処理装置。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate

【図11】
image rotate

【図12】
image rotate

【図13】
image rotate

【図14】
image rotate

【図15】
image rotate


【公開番号】特開2012−89053(P2012−89053A)
【公開日】平成24年5月10日(2012.5.10)
【国際特許分類】
【出願番号】特願2010−237225(P2010−237225)
【出願日】平成22年10月22日(2010.10.22)
【出願人】(501321394)株式会社レイトロン (14)
【Fターム(参考)】