JP2008186396A - 高速フーリエ変換装置 - Google Patents

高速フーリエ変換装置 Download PDF

Info

Publication number
JP2008186396A
JP2008186396A JP2007021584A JP2007021584A JP2008186396A JP 2008186396 A JP2008186396 A JP 2008186396A JP 2007021584 A JP2007021584 A JP 2007021584A JP 2007021584 A JP2007021584 A JP 2007021584A JP 2008186396 A JP2008186396 A JP 2008186396A
Authority
JP
Japan
Prior art keywords
memory
radix
butterfly
input
fast fourier
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2007021584A
Other languages
English (en)
Other versions
JP4755610B2 (ja
Inventor
Kazuaki Ishioka
和明 石岡
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Mitsubishi Electric Corp
Original Assignee
Mitsubishi Electric Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Mitsubishi Electric Corp filed Critical Mitsubishi Electric Corp
Priority to JP2007021584A priority Critical patent/JP4755610B2/ja
Publication of JP2008186396A publication Critical patent/JP2008186396A/ja
Application granted granted Critical
Publication of JP4755610B2 publication Critical patent/JP4755610B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Complex Calculations (AREA)

Abstract

【課題】回路規模を大きくすることなく、メモリを分割して高速な演算を行う高速フーリエ変換器を得ることを得ること。
【解決手段】4以上を最大基数とするバタフライ演算器1を備える高速フーリエ変換装置であって、最大基数個の分割メモリで構成されバタフライ演算器の入出力データの記憶に使用するメモリ部2と、最大基数の2を底とする指数をビット数とする切り換え制御信号を生成する制御信号生成器5と、最大基数の1/2の個数を1組とする2入力2出力の信号切り換え器を前記ビット数に相当する数だけ含み、書き込み先の分割メモリを切り換える入力信号切り換え部3と、最大基数の1/2の個数を1組とする2入力2出力の信号切り換え器を前記ビット数に相当する数だけ含み、読み出し元の分割メモリを切り換る出力信号切り換え部4と、を備える。
【選択図】 図1

Description

本発明は、高速フーリエ変換装置に関するものである。
従来、無線通信において用いられるOFDM(Orthogonal Frequency Division Multiplexing)方式の送受信機のシステム構成例を図22に示す。図22に示すように、このシステムは、送信機100と受信機200で構成される。送信機100においては、送信データを誤り訂正符号化部101により誤り訂正符号化し、インターリーバ102によりインターリーブを行い、16QAM(Quadrature Amplitude Modulation)やQPSK(Quadrature Phase Shift Keying)等によるシンボルマッピングをシンボルマッパ103により行う。そして、シンボルマッパ103の出力をS/P(シリアル/パラレル変換器)104によりシリアルパラレル変換し、IFFT(Inverse Fast Fourier Transform:高速フーリエ逆変換)部105でIFFTし、IFFT部の出力をP/S(パラレル/シリアル変換器)106によりパラレルシリアル変換して周波数変換部107で送信周波数に変換したのちに、増幅器108で増幅してアンテナ109から送信する。
一方、受信機200においては、アンテナ201から入力した信号を増幅器202により増幅し、周波数変換部203によりベースバンド信号に変換する。そして、ベースバンド信号をS/P204によりシリアルパラレル変換し、FFT(Fast Fourier Transform:高速フーリエ変換)部205でFFTし、P/S206によりパラレルシリアル変換し、シンボルデマッパ207により16QAMやQPSK等の信号をビット単位の軟判定情報に変換し、デインターリーバ208でデインターリーブして誤り訂正復号部209で誤り訂正復号を行うことにより、受信データを得る。
このように、OFDM方式では、高速フーリエ逆変換を用いて送信信号を生成し、高速フーリエ変換を用いて復調を行う。また、高速フーリエ逆変換と高速フーリエ変換は、演算内部における位相回転方向が逆方向となるが、演算アルゴリズムは同一である。
高速フーリエ変換とは、離散フーリエ変換(DFT:Discrete Fourier Transform)を高速に実行するためのアルゴリズムである。離散フーリエ変換は以下の式(1)によって定義される。
Figure 2008186396
ここで、Nは離散フーリエ変換を行うデータの個数、xkは時系列の入力データでありkは0〜N−1の値を取る。Fiは離散フーリエ変換結果であり、iは周波数に対応し0〜N−1の値を取る。また、eは自然対数の底,jは虚数単位,wは回転因子である。式(1)では、乗算がN2回発生するため、Nが大きくなると演算量が膨大となる。
このためNが2のべき乗の場合は、乗算回数をNlog2Nに削減することができる高速フーリエ変換と呼ばれる手法が一般に用いられている。高速フーリエ変換には、周波数間引き型と時間間引き型の2種類があり、以下にそれぞれ説明する。
まず、周波数間引き型高速フーリエ変換について説明する。周波数間引き型高速フーリエ変換においては、式(1)におけるiが偶数の場合と奇数の場合に場合分けを行うことにより演算量を削減できることを利用する。iが偶数の場合と奇数の場合に分けることにより、式(1)は以下の式(2)に示す2つの式に変換できる。
Figure 2008186396
上記式(2)もさらにiが偶数奇数の場合に分けることができ、この操作を繰り返すことで演算量を削減することができる。例えば16ポイント(N=16)の周波数間引き型高速フーリエ変換の場合は図23に示すシグナルフローで演算を行う。この種の演算はシグナルフローの形からバタフライ演算と呼ばれる。また、図23に示す16ポイントの周波数間引き型高速フーリエ変換は図24の様に並び替えて表す場合もある。図23と図24は表記上の並び順を変えただけで処理は同じである。
つぎに、時間間引き型高速フーリエ変換について説明する。式(1)は、kが偶数の場合と奇数の場合に分けて以下の式(3)のように2つの式に変換できる。
Figure 2008186396
上記式(3)も周波数間引き型高速フーリエ変換と同様に、偶数と奇数の場合分けを繰り返すことにより演算量を削減することができる。例えば16ポイントの時間間引き型高速フーリエ変換の場合は図25に示すシグナルフローで演算を行う。図25に示す16ポイント時間間引き型高速フーリエ変換シグナルフローを、xkが連続する様に並び順を修正すると図26のようになる。
このように、高速フーリエ変換により乗算回数をNlog2Nに削減することができるが、近年、無線通信においてはOFDM方式,周波数領域等化,大規模な相関演算など高速フーリエ変換を用いる機会が増加しており、特に、第4世代無線通信システムでは100MHz以上の帯域幅の信号を処理する必要があるなど、伝送速度の高速化に伴い、より少ない回路規模と消費電力で高速フーリエ変換の処理を高速に実行することが求められている。このため、さらに演算量を削減する手法として基数4(Radix−4)高速フーリエ変換と呼ばれる手法が用いられる。
以下、Radix−4高速フーリエ変換について説明する。図25に示した時間間引き型高速フーリエ変換シグナルフローは、図27に定義するバタフライ演算ブロックにより図28のブロック図で示すことができる。図28に示すバタフライ演算ブロックは、x0,x1を入力、y0,y1を出力とするとき下記式(4)に示す演算を行う。
a = wk1
0 = x0+a
1 = x0−a …(4)
kは、回転因子を指定する数値であり、図28のブロック中に示される数値も、kと同様に回転因子を指定する数値である。図28の図は、図29に示すように4個のバタフライ演算ブロックを1つのまとまりとする基数4のバタフライ演算ブロックを定義すると、図30のブロック図に変換することができる。基数4高速フーリエ変換では、このように基数4のバタフライ演算ブロックを用いるため、1演算ブロックの乗算回数が3回となり乗算回数を削減することができる。さらに、演算ブロックの数が1/4に削減されることから、ハードウエアで1つの演算ブロックを実装してメモリ上のデータに複数クロックを用いてアクセスして高速フーリエ変換を行う場合には、基数4高速フーリエ変換では、従来の高速フーリエ変換に比べ1/4の時間で演算を行うことができる。
同様な手法により、基数8や基数16を用いて高速フーリエ変換を高速化することが可能であるが、1演算ブロックへの入出力が増大する。したがって、メモリを用いて演算する場合はマルチポートメモリが必要となる。一般に、マルチポートメモリの回路はポート数の増大とともにLSI(Large Scale Integration)上の面積が増大するためコストが高く現実的ではない。
この問題を解決する方法として、メモリを高速フーリエ変換の基数の値に分割して、並列に読み書きを行うことにより高速化を行う高速フーリエ装置が、下記特許文献1に示されている。
特開2001−331473号公報
しかしながら、上記特許文献1に示される高速フーリエ変換装置においては、メモリを分割した個数をnとするとn入力1出力の切り換え器を2n個必要とするため、回路規模が大きく、また、さらに、この切り換え器の制御信号の生成に加算器を用いることからさらに回路規模が増大する、という問題があった。
本発明は、上記に鑑みてなされたものであって、回路規模を大きくすることなく、メモリを分割して高速な演算を行う高速フーリエ変換器を得ることを目的とする。
上述した課題を解決し、目的を達成するために、本発明は、4以上を最大基数とするバタフライ演算器を備える高速フーリエ変換装置であって、前記最大基数の個数の分割メモリで構成され、前記バタフライ演算器の入出力データの記憶に使用する記憶手段と、前記最大基数の2を底とする指数をビット数とする切り換え制御信号を生成する制御手段と、前記最大基数の1/2の個数を1組とする2入力2出力の信号切り換え器を、前記ビット数に相当する数だけ含み、入力データまたはバタフライ演算の演算結果の書き込み先の分割メモリを切り換える入力信号切り換え手段と、前記最大基数の1/2の個数を1組とする2入力2出力の信号切り換え器を、前記ビット数に相当する数だけ含み、読み出し元の分割メモリを切り換え、前記バタフライ演算器にデータを出力する出力信号切り換え手段と、を備え、前記制御手段は、前記入力信号切り換え手段の各々の組に切り換え制御信号のビットをそれぞれ対応させ、前記出力信号切り換え手段の各々の組に、前記入力信号切り換え手段の各々の組に対応させたビットと対象となるように前記切り換え制御信号のビットをそれぞれ対応させ、前記入力信号切り換え手段を構成する信号切り換え器、および、前記出力信号切り換え手段を構成する信号切り換え器は、第1の入力および第2の入力をそれぞれ第1の出力および第2の出力に接続する状態と、第1の入力および第2の入力をそれぞれ第2の出力および第1の出力に接続する状態と、を前記切り換え制御信号の対応ビットに基づいて切り換えることを特徴とする。
この発明によれば、最大基数が2mのバタフライ演算器の入出力時に使用するメモリ部を、最大基数と同一の数の分割メモリに分割し、2m-1個の2入力2出力の切り換え器で1段を構成する3段の切り換え部によりメモリ部への入力信号切り換えを行うようにした。このため、バタフライ演算器への入出力を並列に行うことにより、演算処理を高速化することができ、また、従来のメモリ分割方式にくらべ、信号の切り換え器の数を削減することができるという効果を奏する。
以下に、本発明にかかる高速フーリエ変換装置の実施の形態を図面に基づいて詳細に説明する。なお、この実施の形態によりこの発明が限定されるものではない。
実施の形態1.
図1は、本発明にかかる高速フーリエ変換装置の実施の形態1の機能構成例を示す図である。図1に示すように、本実施の形態の高速フーリエ変換装置は、基数8のバタフライ演算を行うバタフライ演算器1と、バタフライ演算器1の入出力データが記憶され、8個の分割メモリ#0〜#7で構成されるメモリ部2と、入力データの書き込み先の分割メモリ#0〜#7を切り換える入力信号切り換え部3と、分割メモリ#0〜#7からの出力データの出力先を切り換える出力信号切り換え部4と、入力信号切り換え部3と出力信号切り換え部4の切り換えを制御するための切り換え制御信号を生成するとともに分割メモリ#0〜#7に対して書き込みおよび読み出しメモリアドレスを指示する制御信号生成器5と、メモリを分割しない場合のメモリアドレスに相当する未分割メモリアドレス(分割されていない状態の1つのメモリを想定した場合におけるメモリアドレスに相当する数値)を生成するアドレス生成器6と、で構成される。さらに、入力信号切り換え部3は、2入力2出力の信号切り換え器7−1〜7−12で構成され、出力信号切り換え部4は、2入力2出力の信号切り換え器8−1〜8−12で構成される。入力信号切り換え部3は、4つの切り換え器ごとに、同じ制御信号に基づき同一の切り換えを行う。この同一の切り換えを行う信号切り換え器7−1〜7−4,信号切り換え器7−5〜7−8,信号切り換え器7−9〜7−12この同じ制御信号に基づき同一の切り換えを行う4つの切り換え器で1段の切り換え器を行い、合計3段の切り換えを行う。
図1において、バタフライ演算器1のなかには、基数8のバタフライ演算のシグナルフローの例を記載している。シグナルフローにおいて、wはバタフライ演算における回転因子であり、kは回転因子を指定するための整数、jは虚数単位を表す。本実施の形態では、バタフライ演算器1として、基数8のバタフライ演算器を用いているため、バタフライ演算器1の基数にあわせて、メモリ部2を8個に分割している。このようにメモリ部2を分割して1回のバタフライ演算への入力を並列に行うことができ、演算処理の高速化が可能となる。
つづいて、本実施の形態の分割メモリ#0〜#7のメモリアドレス制御方法について説明する。本実施の形態では、メモリ部2を分割しているため、分割メモリ#0〜#7の指定と分割メモリ#0〜#7内のアドレスの組み合わせによりメモリ部2への書き込みおよび読み出しアドレスを指定することになる。
ここでは、基数4のバタフライ演算を行う場合について説明する。基数4のバタフライ演算は、4入力4出力の演算器で、x0,x1,x2,x3を入力データ、y0,y1,y2,y3を出力データとし、wを高速フーリエ変換における回転因子、kを回転因子を指定するための整数、jを虚数単位とするとき、たとえば、下記式(5)で示される演算を行う演算器である。
1 = w2k1
2 = wk2
3 = w3k3
0 = x0+a1
1 = x0−a1
2 = a2+a3
3 = −j(a2−a3)
0 = b0+b2
1 = b1+b3
2 = b0−b2
3 = b1−b3 …(5)
図2は、1つの基数4のバタフライ演算を行うバタフライ演算器10を用い、分割しない1つのメモリ9を用いて高速フーリエ変換処理を行う場合のメモリアクセスを説明するための図である。図2に示したバタフライ演算器10は基数4のバタフライ演算器であり、メモリ9は分割されていないメモリである。メモリ9内の数値“0”〜“15”はメモリ9のアドレス(未分割メモリアドレス)を表す。この例では入力データ数を16個とし、入力データは“0”〜“15”の16個のアドレスのいずれかに書き込まれる。バタフライ演算器10内の数値は、式(5)におけるkを表す。E0〜E7は、バタフライ演算器10が演算を行うバタフライ演算の番号を示す。x0〜x15は、高速フーリエ変換処理への入力データを示し、F0〜F15は、高速フーリエ変換処理の出力データを示す。ここでは、図2に示すように出力データ(F0〜F15)が連続するような高速フーリエ変換処理とし、入力データは図2に示すように、0〜15までを2進数表示した場合のビットの並び順を逆にした順番(たとえば、2番目のデータは、“1(10進表示)”=“0001(2進表示)"のビットの並びを逆にすると“1000(2進表示)"=”8(10進表示)“となるためx8)で、図2に示す順(x0,x8,x4,…)に4個(バタフライ演算の基数)ずつ入力されるものとする。
図3は、処理ごとのアクセスするメモリアドレスを示す図である。図3では、処理の順番に使用するメモリアドレスを記載している。処理の順番は、まず、データ入力、つぎにバタフライ演算E0,バタフライ演算E1,…,バタフライ演算E7を行い、最後にデータ出力となる。中央の列は、メモリアドレスの10進表示を表し、2進表示をしたアドレスであり、最下位のbitをb0,最上位のbitをb3として示している。表では、参考のため、データ入力およびデータ出力の読み出しアドレスも記載しているが、データ入力およびデータ出力は本実施の形態の高速フーリエ変換処理に含まないため、ここでは、バタフライ演算E0〜E7のメモリアドレス制御を説明の対象とする。
バタフライ演算E0〜E3においては、メモリアドレス“0”〜“15”を、数値順にアクセスするが、バタフライ演算E4〜E7においては、“0”〜“15”を2進数表示した場合に下位2ビットと上位2ビットを入れ替えた順にメモリアクセスを行う。なお、以下、高速フーリエ変換処理への入力データを処理するバタフライ演算(この例では、バタフライ演算E0〜E3)を初段のバタフライ演算とよび、初段のバタフライ演算の結果を用いて演算するバタフライ演算を2段目のバタフライ演算とよぶこととする。
図2の例のようにメモリが1つの場合はメモリアクセスがシリアルに行われるため、基数4のバタフライ演算器10により高速に演算を行ったとしてもメモリアクセスがネックとなる。バタフライ演算の基数と同じ4個にメモリを分割すると、メモリアクセスの並列化により処理が高速化できる。したがって、以下にメモリを4個に分割する例についてメモリアドレス制御方法に説明する。
本実施の形態では、分割したメモリ(分割メモリ)を識別するための2bitのメモリ番号とその分割メモリ内の2bitのアドレスの組み合わせによりアクセスするアドレスを特定することとする。まず、本実施の形態のメモリ番号の生成方法について説明する。1回のバタフライ演算のメモリアクセスは、全て並列して行うと高速化の効果が最も高い。このためには、バタフライ演算E0〜E7ごとに、それぞれ4つの互いに異なるメモリ番号を生成する必要がある。
つぎに、図3によると、バタフライ演算E0〜E7において、各々のバタフライ演算の4回のメモリアクセスのなかで、変化しているbitはb0〜b3のうちの2bitのみであることがわかる。具体的には、バタフライ演算E0〜E4では下位2bit、バタフライ演算E4〜E7では上位2ビットのみが変化している。これは基数が4であるためであり、基数が2n(nは正の整数)の場合はnbitのみが変化することになる。この性質を利用すると、基数が4の場合は1つとびに排他的論理和をとることで、1つのバタフライ演算の4回のメモリアクセスのメモリアドレスから4個の異なるメモリ番号を生成できる。メモリ番号(“0”〜“3”)を表す2ビットをc0,c1とし、式で表すと下記式(6)となる。
c0=EXOR(b0,b2)
c1=EXOR(b1,b3) …(6)
EXORは、排他的論理和を示し、以下の式(7)に示す演算である。
EXOR(0,0)=0
EXOR(0,1)=1
EXOR(1,0)=1
EXOR(1,1)=0 …(7)
式(6)に示す演算を行い、メモリ番号を求めた場合のメモリ番号と各分割メモリ内のメモリアドレスを図4に示す。各分割メモリ内のメモリアドレスとしては、図3で示したb0およびb1を用いているが、これに限らず、たとえば、図3で示したb2およびb3を用いるなど、1組の演算であるバタフライ演算E0〜E3およびバタフライ演算E0〜E7において、それぞれ、メモリ番号との組み合わせで一意に識別できるようなメモリアドレスであればどのようなものを用いてもよい。このように1つのバタフライ演算で、メモリアクセスを一度に4並列で行うことができるので、1つのメモリを用いる場合にくらべ処理時間を1/4に削減することができる。
ここで、図4に示したc0、c1に注目すると、図5に示すパターンP1〜パターンP4の4パターンに限られることがわかる。これは、図3に示したように、1つのバタフライ演算の4回のメモリアクセスに注目すると、変化しているbitはb0〜b3のうち2bitのみであるため、c0,c1は、パターンP1に対して、c0またはc1を反転したパターン、またはc0およびc1を反転したパターンのみとなり、その組み合わせが4通りしかないためである。このため、4回のメモリアクセスの最初の1パターン(この場合はパターンP1)から残りのパターンを生成することが可能である。
図6−1〜6−3はパターンP1からパターンP2〜P4を生成する方法の一例を示す図である。図6−1は、パターンP1からパターンP2を生成する例を示し、パターンP1のc0を1段目と2段目、3段目と4段目をそれぞれ入れ替えることによりパターンP2が生成できる。図6−2は、パターンP1からパターンP3を生成する例を示し、パターンP1のc1を上の2段と下の2段を入れ替えることによりパターンP3が生成できる。図6−3は、パターンP1からパターンP4を生成する例を示し、パターンP1のc0を1段目と2段目,3段目と4段目をそれぞれ入れ替え、さらに、c1を上2段とした2段を入れ替えることによりパターンP4が生成できる。すなわち、c0,c1について、入れ替えるか入れ替えないかを示す1bitの信号(入れ替え制御信号とよぶ)が各々あれば、パターンP1からパターンP2〜パターンP4が生成できることになる。
図7は、4分割メモリに対するメモリアクセスを行う切り換え器とメモリの一構成例を示す図である。図7に示すように、メモリ部11は分割メモリ#0〜#3に分割されており、分割メモリ#0〜#3のメモリ番号はそれぞれメモリ#と同一の数値“0”〜“3”とする。4つの信号切り換え器で構成される入力信号切り換え部12が、メモリ部11への入力を切り換え、4つの信号切り換え器で構成される出力信号切り換え部13がメモリ部11からの出力の切り換えを行う。c0´,c1´は、それぞれc0,c1に対する入れ替え制御信号を示している。また、x0,x1,x2,x3,x4は入力データを示し、y0,y1,y2,y3は出力データを示している。なお、出力信号切り換え部13は、入力信号切り換え部12と鏡像の関係にあり、読み出しと書き込みを矛盾なく行うことができる。
図8−1〜8−3に、信号切り換え器の接続切り換えを説明するための図を示す。sは切り換え制御信号を表し、x1、x2は入力データを、y1,y2は出力データを表す。図8−1は、入力側と出力側が接続されていない状態を示している。切り換え制御信号sは“0”または"1"の値をとり、その値により信号切り換え器を制御する。図8−2は、切り換え制御信号sが0の場合を表し、切り換え制御信号sが“0”の場合には、y1=x1,y2=x2となり、入力データの順に出力データが出力される。図8−3は、制御信号sが“1”の場合を表し、切り換え制御信号sが0の場合には、y2=x1,y1=x2と入力データの順と出力データの順が入れ替わる。
図8−1〜図8−3に示した4つの信号切り換え器を図7の入力信号切り換え部12のように4つ用いることにより、図6−1〜6−3に示した4パターンに対応するメモリアクセスが可能となる。入力信号切り換え部12の左側のc0´の信号を受け取る2つの信号切り換え器は、同一の切り換え制御信号c0´により動作する。
c1´の切り換え制御信号に対しても同様に切り換えが行われ、たとえば、c0´=0,c1´=0の場合(図5のパターンP1に相当)には、x0は、2段目の信号切り換え器(c1´による切り換え)の後に、分割メモリ#0に出力される。c0´=1,c1´=0の場合(図5のパターンP2に相当)には、x0は、分割メモリ#1に出力される。c0´=0,c1´=0の場合に、x0,x1,x2,x3が、それぞれ分割メモリ#0,#1,#2,#3に入力されるようにメモリを配置する。そして、バタフライ演算ごとの最初のメモリ番号(図4に示したバタフライ演算ごとの一番上の段のc1,c0)を切り換え制御信号として入力すると、各バタフライ演算に対応するメモリ番号のパターンにしたがったメモリアクセスが可能である。たとえば、バタフライ演算E0,E1,E2,E3に対応する切り換え制御信号(“c1´c0´”)は、それぞれ“00”,“01",“10“,“11"となる。
c1´,c0´は、メモリを分割しない場合の各バタフライ演算(各パターン)の最初のメモリアドレスを示すビット(図3に示したバタフライ演算ごとの一番上の段のb0,b1,b2,b3)をa0,a1,a2,a3とすると、以下の式(8)で表すことができる。
c0´=EXOR(a0,a2)
c1´=EXOR(a1,a3) …(8)
つづいて、メモリを8分割する場合について説明する。図9は、メモリを8分割する場合のメモリと入出力制御に関する部分の構成例を示す図である。図9において、12個の信号切り換え器で構成される入力信号切り換え部12aが、メモリ部11aへの入力を切り換え、4つの信号切り換え器で構成される出力信号切り換え部13aがメモリ部11aからの出力の切り換えを行う。図9では、メモリを分割メモリ#0〜#7に8分割しており基数8のバタフライ演算に対応したものである。この場合には、8つの入力データで1つのパターンを構成することになる。基数8の場合も、メモリ4分割の場合と同様に切り換え制御信号を生成するが、この場合には、図5で示したパターンは8種類となる。したがって、メモリ番号を表すためには、3ビット(c0、c1、c2)が必要であり、たとえば、入力データを64個とし、分割しないメモリを用いたときの各々のアドレスをb0〜b5の6ビットで表すとき、メモリ番号を生成するための式は以下の式(9)のようになる。
c0=EXOR(b0,b3)
c1=EXOR(b1,b4)
c2=EXOR(b2,b5) …(9)
そして、この場合も、メモリ4分割の場合と同様に、各バタフライ演算の最初のメモリ番号を用いて切り換え制御信号を生成すると、はじめのメモリ番号のパターンから残りのパターン(この場合は7種類)が生成できる。c0´,c1´,c2´の3ビットで制御信号を表すとすると、c0´,c1´は、分割数4と同じく、上下2段の入れ替え,連続する2個ずつ単位の入れ替えをそれぞれ表し、c2´は連続する4個単位の入れ替えを表すことになる。
このような3ビットの制御信号は、基数4の場合と同様に、メモリを分割しない場合の各バタフライ演算の最初のメモリアドレスを表すビットをa0〜a5とすると、以下の式(10)で表すことができる。
c0´=EXOR(a0,a3)
c1´=EXOR(a1,a4)
c2´=EXOR(a2,a5) …(10)
このように、n=2mをバタフライ演算の基数とし、メモリ分割数をnとするときには、mビットの切り換え制御信号を用いm段のm×2m-1個の切り換え器により入力信号切り換え部を構成し、信号切り換えを行う切り換え器と鏡像関係になるように、m×2m-1個の切り換え器を用いて出力信号切り換え部を構成するようにすればよい。この場合、入力データの数をN=2L+1個とし、バタフライ演算ごとのメモリを分割しない場合の入力データの最初のメモリアドレスの2進表示のビットをa0〜aLとするとき、制御信号c0´〜c(m−1)´は、以下の式(11)のように表すことができる。
c0´=EXOR(a0,am,…,a(L−m+1))
c1´=EXOR(a1,a(m+1),…,a(L−m+2))
c2´=EXOR(a2,a(m+2),…,a(L−m+3))

c(m−1)´=EXOR(a(m−1),a(2m−1),…,aL) …(11)
また、このとき各入力データに対するメモリ番号を2進表示でc0〜c(m-1)とし、各入力データのメモリを分割しない場合のメモリアドレスを2進表示でb0〜bLとすると、以下の式(12)のようになる。
c0=EXOR(b0,bm,…,b(L−m+1))
c1=EXOR(b1,b(m+1),…,b(L−m+2))
c2=EXOR(b2,b(m+2),…,b(L−m+3))

c(m−1)=EXOR(b(m−1),b(2m−1),…,bL) …(12)
つづいて、図1にもどり、本実施の形態の高速フーリエ変換装置の動作について説明する。ここでは、入力データの数を212=4096個とする。まず、高速フーリエ変換処理の開始時には、高速フーリエ変換装置に対して高速フーリエ変換処理の入力データが信号のならび順に入力される。ここでは、入力データをx0,x1,x2,…,入力データをF0,F1,F2,…とするとき、図2と同様に、出力データが、F0,F1,F2,…と順番に並ぶような処理とし、入力データは、0,1,2,…を2進数表示した場合のビットの並び順を逆にした順番で、8個(=メモリの分割数)ずつ入力されるものとする。たとえば、最初のデータは、x0で、つぎのデータは、“100000000000(2進)”=“2048(10進)”であることからx2048という順番となる。
本実施の形態では、これらの外部から入力された入力データは、上述のとおり順番を並びかえた後に入力するため、外部から入力された入力データの書き込みのための未分割アドレスは、昇順となり初段のバタフライ演算と同じものとなる。したがって、アドレス生成器6は、初段のバタフライ演算について、バタフライ演算ごとに未分割メモリアドレスを生成し、制御信号生成器5に出力する。つぎに、制御信号生成器5は、受け取った未分割メモリアドレスのうちの最初の未分割メモリアドレス(2進表示の各ビットをa0〜a11とする)を用いて、式(11)に基づき切り換え制御信号c0´〜c3´を生成し、生成した切り換え制御信号を、入力信号切り換え部3の信号切り換え器7−1〜7−12へ出力する。具体的には、c0´については信号切り換え器7−1〜7−4へ、c1´については信号切り換え器7−5〜7−8へ、c2´については信号切り換え器7−9〜7−12へ出力する。図1の例では、メモリの分割数nは、8=23であるため、切り換え制御信号は3ビットとなり、式(11)においてm=3の場合となる。また、入力データは212個であるため、L=11となる。図10に、このようなメモリを8分割した場合の切り換え信号を生成するための論理回路の一例を示す。
また、制御信号生成器5は、受け取った未分割メモリアドレスに基づき、メモリ番号と各分割メモリ#0〜#7内のメモリアドレスを生成し、メモリ番号に対応する分割メモリ#0〜#7にそれぞれ対応するメモリアドレスを保持する。メモリ番号は、式(12)に基づいて算出する。本実施の形態では、メモリ番号と各分割メモリ内のメモリアドレスの組み合わせで書き込みおよび読み込みアドレスを指定することになるため、メモリ番号の使用ビット数と各分割メモリ内のメモリアドレスの使用ビット数が入力データの個数となる。したがって、この場合は、入力データの個数が12ビット、メモリ番号が3ビットであるため、各分割メモリ#0〜#7内のメモリアドレスは9ビットとなる。このメモリアドレスは、入力データごとの未分割メモリアドレスの12ビットのうちの任意の9ビットを用いることができるが、ここでは、たとえば、下位9ビットを使用することとする。
つぎに、信号切り換え器7−1〜7−12は、制御信号生成器5から受け取った切り換え制御信号c0´,c1´,c2´に基づきそれぞれ切り換えを行う。信号切り換え器7−1〜7−12および信号切り換え器8−1〜8−12は、それぞれ図8−1〜8−3で示した2入力2出力の信号切り換え器とし、切り換え制御信号c0´,c1´,c2´に基づき、入力データと出力信号の接続を変更することにより、信号を切り換える。そして、信号切り換え器7−1〜7〜4に入力データが入力された場合には、信号切り換え器7−1〜7〜4は、切り換え制御信号c0´に従ったそれぞれの出力先の信号切り換え器7−5〜7〜8に出力する。信号切り換え器7−5〜7〜8は、信号切り換え器7−1〜7〜4から出力された信号を切り換え制御信号c1´に従ったそれぞれの出力先の信号切り換え器7−9〜7〜12に出力する。そして、信号切り換え器7−9〜7〜12は、信号切り換え器7−5〜7〜8から出力された信号を切り換え制御信号c2´に従ったそれぞれの出力先のメモリ#0〜#7に出力する。そして、制御信号生成器5は、信号切り換え器7−5〜7〜8から出力された信号をメモリ#0〜#7にそれぞれ対応する保持しているメモリアドレスに書き込む。以上の、外部からの入力データの入力からメモリアドレスに書き込むまでの処理を、8個の入力データごとにすべての外部からの入力データの書き込みが終了するまで(この場合は212/8回)行うと、以降のバタフライ演算処理を行う。
制御信号生成器5は、外部からの入力データのメモリ#0〜#7への書き込みが終了すると、バタフライ演算処理として、まず、アドレス生成器6に初段のバタフライ演算の未分割アドレスの生成を指示する。そして、アドレス生成器6は、バタフライ演算ごとに未分割メモリアドレスを生成し、制御信号生成器5に出力する。つぎに、制御信号生成器5は、受け取った未分割メモリアドレスのうちの最初の未分割メモリアドレスを用いて、式(11)に基づき切り換え制御信号c0´〜c3´を生成し、生成した切り換え制御信号を、入力信号切り換え部3の信号切り換え器7−1〜7−12および出力信号切り換え部4の信号切り換え器8−1〜8−12へ、それぞれ出力する。具体的には、c0´については信号切り換え器7−1〜7−4および信号切り換え器8−9〜8−12へ、c1´については信号切り換え器7−5〜7−8および信号切り換え器8−5〜8−8へ、c2´については信号切り換え器7−9〜7−12および8−1〜8−4へ出力する。信号切り換え器7−1〜7−12および信号切り換え器8−1〜8−12は、制御信号生成器5から受け取った切り換え制御信号c0´,c1´,c2´に基づきそれぞれ切り換えを行う。
また、制御信号生成器5は、受け取った未分割メモリアドレスに基づき、メモリ番号と各分割メモリ#0〜#7内のメモリアドレスを生成し、メモリ番号に対応する分割メモリ#0〜#7にそれぞれ対応するメモリアドレスを保持する。メモリ番号は、式(12)に基づいて算出する。
そして、制御信号生成器5は、メモリ#0〜#7から保持しているメモリアドレスに基づき信号の読み出しを行い、信号切り換え器8−1〜8−4に出力する。そして、信号切り換え器8−1〜8〜4は、メモリ#0〜#7から読み出された信号を切り換え制御信号c1´に従ったそれぞれの出力先の信号切り換え器8−5〜8〜8に出力する。信号切り換え器8−5〜8〜8は、信号切り換え器8−1〜8〜4から出力された信号を切り換え制御信号c1´に従ったそれぞれの出力先の信号切り換え器8−9〜8〜12に出力する。そして、信号切り換え器8−9〜8〜12は、信号切り換え器8−5〜8〜8から出力された信号を切り換え制御信号c0´に従った接続によりバタフライ演算器1へ出力する。
そして、バタフライ演算器1は、信号切り換え器8−9〜8〜12から入力された信号を用いてバタフライ演算を行った後に、演算結果である演算結果信号を入力信号切り換え部3に出力する。入力信号切り換え部3は、すでに制御信号生成器5から指示されたc0´,c1´,c2´に従った切り換え状態となっているため、c0´,c1´,c2´に従った接続により、演算結果信号をメモリ#0〜#7に出力し、制御信号生成器5は、信号切り換え器7−5〜7〜8から出力された信号をメモリ#0〜#7にそれぞれ対応する保持しているメモリアドレスに書き込む。
そして、制御信号生成器5は、初段のバタフライ演算が終了するまで、未分割メモリアドレスの生成から演算結果信号のメモリ#0〜#7への書き込みまでの上述の処理を繰り返す。初段のバタフライ演算が終了すると、全てのバタフライ演算の終了まで、順次次の段のバタフライ演算を同様に行っていく。
最後のバタフライ演算の演算結果がメモリ#0〜#7に書き込まれると、演算結果は、高速フーリエ変換結果の出力データF0,F1,F2,…として外部に出力されるが、出力のためのメモリ#0〜#7からの信号の読み出しの処理はバタフライ演算処理の場合と同様である。出力信号切り換え部4は、このように読み出した演算結果を外部に出力する。ただし、出力の場合の未分割メモリアドレスは、外部からの入力データと同様に昇順となるため、初段のバタフライ演算の未分割メモリアドレスと同じである。
なお、本実施の形態では、出力データF0,F1,F2,・・・を並び順に出力するバタフライ演算処理としたが、入力データx0,x1,x2,・・・を並び順とするバタフライ演算処理としてもよい。その場合は、外部からの入力のデータの並び順をバタフライ演算処理に対応する並び順とし、出力データを外部で並びかえるようにすればよい。
このように、本実施の形態では、基数2mのバタフライ演算器1の入出力時に使用するメモリ部2を、基数と同一の数の分割メモリに分割し、制御信号生成器5が未分割メモリアドレスに基づきmビットの制御信号を生成し、2m-1個の2入力2出力の切り換え器で1段を構成するm段の入力信号切り換え部3および出力信号切り換え部4が、制御信号に基づきバタフライ演算器と分割メモリの入出力を切り換えるようにした。このため、バタフライ演算器への入出力を並列に行うことができ演算処理を高速化することができる。また、従来のメモリ分割方式にくらべ、信号の切り換え器の数を削減することができる。
実施の形態2.
図11は、本発明にかかる高速フーリエ変換装置の実施の形態2の機能構成例を示す図である。本実施の形態の高速フーリエ変換装置は、実施の形態1の高速フーリエ変換装置のバタフライ演算器1,メモリ部2,入力信号切り換え部3,出力信号切り換え部4,制御信号生成部5を、それぞれバタフライ演算器1a,メモリ部2a,入力信号切り換え部3a,出力信号切り換え部4a,制御信号生成器5aに、替えている。それ以外の構成は実施の形態1と同様である。実施の形態1と同様の機能のものは、同一の符号を付して説明を省略する。
高速フーリエ変換を行う入力データ信号の数(データポイント数)がバタフライ演算の基数のべき乗でない場合には、混合基数と呼ばれる手法を用いる。本実施の形態では、混合基数の例として、入力データの数を32とし、基数2と基数4の混合基数のバタフライ演算を行う場合について説明する。ここでは、バタフライ演算器1aは、基数2と基数4のバタフライ演算の両方を行うことができ、切り換え信号(Radix−2/4切り換え信号)によって、基数2と基数4のバタフライ演算が切り換えられる。本実施の形態では、メモリ部2aは、分割される数が異なる(分割数がバタフライ演算の基数と同一でない)以外は、実施の形態1のメモリ部2と同様である。
入力信号切り換え部3aは、実施の形態1と同様の信号切り換え器7−1〜7−4と、アクセスするメモリをメモリ#1とメモリ#2との間で切り換えるメモリ入れ替えスイッチ14で構成される。出力信号切り換え部4aは、実施の形態1の同様の信号切り換え器8−1〜8−4と、アクセスするメモリをメモリ#1とメモリ#2との間で切り換えるメモリ入れ替えスイッチ15で構成される。メモリ入れ替えスイッチ14,15は、2入力2出力の切り換えを行うものであり、信号切り換え器7−1〜7−4,8−1〜8−4と同様の切り換え器である。
つづいて、本実施の形態のメモリアドレス制御方法について説明する。本実施の形態では、入力データの数が32であるが、32は2×4×4と3つに分解できる。したがって、本実施の形態の高速フーリエ変換処理は、基数4のバタフライを2段、基数2のバタフライ演算を1段行うことにより実現できる。
まず、メモリ分割をしない場合のバタフライ演算ごとのメモリアドレスについて説明する。図12は、混合基数のバタフライ演算を、分割しない1つのメモリ9aを用いて行う場合のメモリアクセスを説明するための図である。時間間引き(DIT:Decimation In Time)型フーリエ変換の場合は最初の段(ステージ)においては乗算が発生せず、後段になると乗算の割合が増大する。このため演算効率のより大きな基数4のバタフライ演算を後段に配置する。一方、周波数間引き(DIF:Decimation In Frequency)型高速フーリエ変換ではDIT型とは逆に後段ほど乗算回数が減るので、後段に少ない基数の演算を配置する。本実施の形態では、DFT型の高速フーリエ変換を行うものとし、初段で基数2のバタフライ演算を行い、残りの2段で基数4のバタフライ演算を行うものとする。
また、図12においては、基数4のバタフライ演算の場合の入出力データ数にあわせ、基数2のバタフライ演算については2つの演算をあわせて1つのバタフライ演算として表している。図12に示したバタフライ演算E´0〜E´23は、1つのバタフライ演算器でされる演算であり、バタフライ演算E´0,E´1,…,E´23と数値の順に演算が行われる。メモリ9a内の数値“0”〜“31”はメモリ9aのアドレス(未分割メモリアドレス)を表す。この例では入力データ数を32個とし、入力データは“0”〜“31”の32個のアドレスのいずれかに書き込まれる。バタフライ演算内の数値は、回転因子を指定するための整数を表す。x0〜x31は、高速フーリエ変換処理への入力データを示し、F0〜F31は、高速フーリエ変換処理の出力データを示す。ここでは、図12に示すように出力データ(F0〜F31)が連続するような高速フーリエ変換処理とし、入力データは図12に示すように、0〜31までを2進数表示した場合のビットの並び順を逆にした順番(たとえば、2番目のデータは、“1(10進表示)”=“00001(2進表示)"のビットの並びを逆にすると“10000(2進表示)"=”16(10進表示)“となるためx16)で、図12に示す順(x0,x16,x8,…)に4個ずつ入力されるものとする。
ここで、“0”〜“31”を2進で表した各ビットをe0〜e4とし、e0を最下位ビットとする。図13はステージごとにメモリアドレスを示すビットの位置がシフトする様子を示す図である。図中のb0〜b4は、メモリアドレスを2ビット表示した場合の各ビットを示しており、b0が最下位ビットである。図13に示すように、e0〜e4の並び順を替えることで、各ステージの未分割メモリアドレスを生成することができる。たとえば、ステージ1の未分割メモリアドレスは、“e4,e3,e2,e1,e0”であり、ステージ2の未分割メモリアドレスは“e4,e3,e1,e0,e2”であり、ステージ3の未分割メモリアドレスは“e1,e0,e4,e3,e2”である。
これは、“e2,e3,e4”に対して、ステージごとに“e1,e0”を、それぞれ異なる位置に挿入したと考えればよい。直前のステージのバタフライ演算の基数に依存して決めることができる。ステージ1では直前のバタフライ演算はなく“e1,e0”の挿入位置は一番右側である。ステージ2では、直前のバタフライ演算の基数は2であり、“e1,e0”の挿入位置はステージ1の挿入位置より1ビット左へシフトした位置である。ステージ3では、直前のステージのバタフライ演算の基数が4であり、“e1,e0”の挿入位置はステージ2の挿入位置より2ビット左へシフトした位置となる。このように、“e1,e0”の挿入位置は一番右側を初期の位置とし、n段目のステージにおける“e1,e0”の挿入位置は、(n−1)段目のバタフライ演算の基数をB(n−1)とするとき「log2(B(n−1))」ビット左にシフトした位置となる。
ステージ1の場合には、“b4,b3,b2,b1,b0”は、それぞれ“e4,e3,e2,e1,e0”と等しくなる。ステージ2では、上述のとおり、“e1,e0”の挿入位置が左へ1ビットシフトするため、“b4,b3,b2,b1,b0”は、それぞれ“e4,e3,e1,e0,e2”と等しくなる。
つづいて、メモリ分割を行った場合について説明する。本実施の形態では、メモリ分割数を、バタフライ演算の基数の最大値4と同一とする。図14−1〜14−3にメモリ分割を行った場合のメモリ番号と分割メモリ内のメモリアドレスを示す。ここでバタフライ演算E´0〜E´23は、図12に示した演算であり、基数2の場合には2つのバタフライ演算を1つのバタフライ演算として示している。ステージ1のメモリ番号は、実施の形態1で示した基数4の場合と同様にm=2とした場合の式(12)に準じた方法により求める。本実施の形態では、入力データの数がバタフライ演算のべき乗でないため、排他論理和(EXOR)の対象の数が、c0とc1で異なることになるが、それ以外は実施の形態1と同様である。本実施の形態では、メモリアドレスは、以下の式(13)に従って求めることができる。
c0=EXOR(b0,b2,b4)=EXOR(e0,e2,e4)
c1=EXOR(b1,b3)=EXOR(e1,e3) …(13)
また、図14−1〜14−3では、各分割メモリ内のメモリアドレスとして、b2,b1,b0を用いている。なお、このメモリアドレスは、実施の形態1で述べたように、各々のメモリに格納される(入力データの数/メモリ分割数)個のデータ数を一意に識別できるメモリアドレスであれば、これに限らずどのような生成方法でもよい。たとえば、b4,b3,b2を用いてもよい。
ステージ1の切り換え制御信号c0´,c1´については、各バタフライ演算の最初のメモリアドレスを示すビット(図14−1〜14−3に示したバタフライ演算ごとの一番上の段のb4,b3,b2、b1、b0)をそれぞれa4,a3,a2,a1,a0とすると、以下の式(14)に従って求めることができる。また、このような切り換え制御信号を生成するための制御信号生成回路例を図15に示す。
c0´=EXOR(a0,a2,a4)
c1´=EXOR(a1,a3) …(14)
n=2mをバタフライ演算の最大基数とし、メモリ分割数をnとするときには、mビットの切り換え制御信号を用いm段のm×2m-1個の切り換え器により入力信号切り換え部を構成し、信号切り換えを行う切り換え器と鏡像関係になるように、m×2m-1個の切り換え器を用いて出力信号切り換え部を構成するようにすればよい。この場合、入力データの数をN=2L+1個とし、バタフライ演算ごとのメモリを分割しない場合の入力データの最初のメモリアドレスの2進表示のビットをa0〜aLとし、(L+1)をmで割った商をS(整数)、余りをRE(整数)とするとき、制御信号c0´〜c(m−1)´は、以下の式(15)のように表すことができる。式(11)との違いは、混合基数の場合は、Nがnのべき乗でないため、EXORの対象とするメモリアドレスの2進表示のビットの個数に余りが生じる点である。したがって、制御信号c0´〜c(RE−1)´までの制御信号がcRE´〜c(m−1)´の制御信号より、排他論理和の対象のメモリアドレスビットが1つ多くなる。
c0´=EXOR(a0,am,…,a(S×m−m),a(S×m))
c1´=EXOR(a1,a(m+1),…,a(S×m−m+1),a(S×m+1))

c(RE−1)´=EXOR(a2,a(m+2),…,a(L―m),aL)

c(m−1)´
=EXOR(a(m−1),a(2m−1),…,a(S×m−1)) …(15)
一方、ステージ2およびステージ3については、上述のとおり、“e0,e1”が途中の位置に挿入されることになるため、ステージ1とはメモリ番号のパターン(各バタフライ演算ごとの4つのメモリ番号)が異なる。ステージ2のメモリ番号は、以下の式(16)に従って求めることができる。
c0=EXOR(b0,b2,b4)=EXOR(e2,e1,e4)
c1=EXOR(b1,b3)=EXOR(e0,e3) …(16)
ここで、式(13)と式(16)を比較すると、e0とe1がそれぞれ入れ替わっていることがわかる。この場合、たとえば、EXOR(e2,e4)とe3の値が等しい場合に、e0とe1の値が等しければ、式(13)と式(16)の値は同じになる(“c1,c0”は、“00”または“11”となる)。また、この性質を利用すると、EXOR(e2,e4)とe3の値が等しい場合に、e0とe1の値が異なれば、式(13)と式(16)の値はc0とc1の値が逆となる。このような性質から、ステージ2においては、ステージ1のメモリ番号のパターンに対して、メモリ番号“1(10進)”(=“01(2進)”)と、メモリ番号“2(10進)”(=“10(2進)”)を入れ替えればよいことになる。
また、ステージ3の場合には、以下の式(17)に従ってメモリ番号を求めることができる。式(17)は、式(17)の結果と同じになるため、ステージ3はステージ2と同様にメモリの切り換えを行えばよい。
c0=EXOR(b0,b2,b4)=EXOR(e2,e4,e1)
c1=EXOR(b1,b3)=EXOR(e3,e0) …(17)
以上のように、ステージ1とステージ2,3では、アクセスする分割メモリのうち、分割メモリ#1と分割メモリ#2とを入れ替えればよいことになる。本実施の形態では、図11に示したように、この入れ替えをメモリ入れ替えスイッチ14,15が行う。メモリ入れ替えスイッチ14,15は、制御信号生成器5aが送出するメモリ入れ替え制御信号に基づいてメモリの入れ替えを行うが、本実施の形態では、たとえば、メモリ入れ替え制御信号が“0”の場合には入れ替えをせず、“1”の場合には入れ替えを行うこととする。
つづいて、本実施の形態のメモリ制御動作について説明する。実施の形態1と同様の動作については説明を省略し、実施の形態1と異なる部分について説明する。本実施の形態では、実施の形態1と同様にバタフライ演算ごとに分割メモリの数ずつ高速フーリエ変換器に入力されるものとする。入力データの書き込み動作は、実施の形態1と同様とする。入力データの書き込み後、まず、アドレス生成器6は、未分割メモリアドレスを生成する。ここで生成する未分割アドレスは、バタフライ演算器1aの基数に応じたメモリ分割を行わない場合のメモリアドレスとする。つぎに、制御信号生成器5aは、まず、ステージ1の基数2の演算を行うために、式(13)に基づき、バタフライ演算ごとに切り換え制御信号c0´,c1´を生成する。そして、c0´を信号切り換え器7−1,7−2,8−3,8−4に出力し、c1´を信号切り換え器7−3,7−4,8−1,8−2に出力する。また、制御信号生成器5aは、バタフライ演算器1aに対して基数2の演算に切り換えるよう指示し、メモリ入れ替えスイッチ14,15に対して、メモリ入れ替え制御信号を“0”(メモリ入れ替え無し)として送出する。
信号切り換え器7−1〜7−4,8−1〜8−4は、切り換え制御信号に基づき、実施の形態1と同様各々入出力の接続の切り換えを行う。メモリ入れ替えスイッチ14,15は、メモリ入れ替え制御信号に基づきスイッチを切り換える。また、制御信号生成器5aは、分割メモリ内のメモリアドレスを算出し、入力信号切り換え部3aを経由した入力データに対して、対応するメモリアドレスに基づき各分割メモリアドレスへの書き込みを行う。
入力データが、入力信号切り換え部3a,メモリ部2a,出力信号切り換え部4aを経由してバタフライ演算器1aに入力されると、バタフライ演算器1aが演算を行い、演算の出力を入力信号切り換え部3aに出力し、出力結果がメモリ部2aに書き込まれる。ステージ1のバタフライ演算がすべて終了すると、制御信号生成器5aは、ステージ2の演算のために、バタフライ演算器1aに基数4への切り換えを指示し、メモリ入れ替えスイッチ14,15に対して、メモリ入れ替え制御信号を“1”(メモリ入れ替え有り)として送出する。また、制御信号生成器5aは、ステージ1と同様に、切り換え制御信号c0´,c1´を生成し、c0´を信号切り換え器7−1,7−2,8−3,8−4に出力し、c1´を信号切り換え器7−3,7−4,8−1,8−2に出力する。以降は、ステージ1と同様にバタフライ演算が行われる。
ステージ2のバタフライ演算が全て終了すると、ステージ2と同様に、制御信号生成器5aは、バタフライ演算器1aに基数4への切り換えを指示し、メモリ入れ替えスイッチ14,15に対して、メモリ入れ替え制御信号を“1”(メモリ入れ替え有り)として送出する。また、制御信号生成器5aは、ステージ1と同様に、切り換え制御信号c0´,c1´を生成し、c0´を信号切り換え器7−1,7−2,8−3,8−4に出力し、c1´を信号切り換え器7−3,7−4,8−1,8−2に出力する。以降は、ステージ1と同様にバタフライ演算が行われ、ステージ3のバタフライ演算が全て終了すると、出力信号切り換え部4aは、高速フーリエ演算結果としてメモリ部2aに書き込まれている演算結果を、実施の形態1と同様に読み出し外部に出力する。
なお、基数2は最初の1回しか行うことがないため、k=0と決まっており乗算は無い。このため、バタフライ演算器1aの回転因子の乗算器は混合基数でない場合の基数4の場合と同じでよい。図16に本実施の形態のバタフライ演算器1aの構成例を示す。
なお、本実施の形態では、入力のデータポイント数を32としたが、基数4と基数2の混合基数によりバタフライ演算を行うことのできるデータポイント数であれば、これに限らず、どのような数でもよい。この場合入力のデータポイント数に応じて、アドレス生成器6が、図12に相当するメモリを分割しない場合の未分割メモリアドレスを生成し、その未分割メモリアドレスと直前のステージの基数に基づき、切り換え制御信号とメモリ入れ替え信号を生成するようにすればよい。
また、基数2と基数4のバタフライ演算器を別個に備えることとし、データ入力時に基数2のバタフライ演算を実行することにしてもよい。図17は、基数2と基数4のバタフライ演算器を別個に備える場合の本実施の形態の高速フーリエ変換器の機能構成例を示す図である。図17の例では、図11のバタフライ演算器1aを基数4のバタフライ演算を行うバタフライ演算器1dに替え、基数2のバタフライ演算を行うバタフライ演算器1cとセレクタ16を追加している。また、さらに、入力信号切り換え部3a,出力信号切り換え部4aをそれぞれ入力信号切り換え部3b,出力信号切り換え部4bに替えている。また、分割メモリの配置は、ステージ2,3にあわせ、図11の場合と分割メモリ#1と分割メモリ#2が入れ替わっている。
図17の例の場合には、データの入力時に、まず、バタフライ演算器1cで基数2のバタフライ演算を行い入力信号切り換え部3bに入力する。入力信号切り換え部3bは、図11の入力信号切り換え部3aからメモリ切り換えスイッチ14を削除したものである。出力信号切り換え部4bは、図11の出力信号切り換え部4aからメモリ切り換えスイッチ15を削除したものである。本実施の形態では、図11の例のステージ1に相当するバタフライ演算を入力信号切り換え部3bの入力前に行ってしまうため、制御信号生成器5aは、図11の例のステージ2以降のメモリ制御動作を行えばよい。ただし、このとき、基数2と基数4の切り換え指示,メモリ切り換えスイッチ14,15に対するメモリ入れ替え信号は不要となる。
また、セレクタ16は、log2(入力データポイント数)が、偶数(4のべき乗の場合)であるか奇数(4のべき乗でない場合)であるかによって、バタフライ演算器1cの演算を用いるか否かの切り換えを行う。このように、セレクタ16を用いることにより、基数4のみのバタフライ演算と基数4と基数2の混合基数の演算を同一の高速フーリエ変換器で行うことができる。この場合、メモリ生成器で生成する未分割メモリアドレスは、それぞれのデータポイント数に応じたものとして生成する。なお、log2(入力データポイント数)が奇数に固定の場合には、セレクタ16を設けず、必ずバタフライ演算器1cを用いるようにしても良い。
つづいて、最大の基数を8とした混合基数の場合について説明する。ここでは、基数2,基数4,基数8の混合基数のバタフライ演算を行うものとする。そして、最大基数8と同一の数にメモリを分割するものとする。この場合、使用する基数は、入力のデータポイント数に応じて3種類に分けることができる。ここで、Nを入力のデータポイント数、nmを最大の基数とし、dを以下の式(17)で定義する。
d=log2(N) mod log2(nm) …(17)
なお、x mod y は、xをyで割った余りを意味する。上記式(17)で定義されるdの値に応じて以下の3ケースに分類する。d=0の場合は、基数8のみを用いる。d=1の場合は、基数2と基数8を用いる。d=2の場合は、基数4と基数8を用いる。d=1の場合の基数2の演算、d=1の場合の基数4の演算は、それぞれデータポイント数によらず1回となる。この3通りの場合について、いずれも最大基数が8であることから、切り換え制御信号は3ビット(c2´,c1´,c0´)とする。
d=0の場合の、切り換え制御信号のパターンを基本パターン“z0,z1,z0”とすると、d=1の場合は、基数8の演算を行うステージにおける切り換え制御信号は、“z0、z2、z1”(パターン1とする)となる。また、d=2の場合は、基数8の演算を行うステージにおける切り換え制御信号は、“z1、z0、z2”(パターン2とする)となる。このように、d=0,1,2の場合の切り換え制御信号は、z2、z1、z0の順番をサイクリックにシフトしたものとなっている。このサイクリックシフトの関係は、基数8より大きな基数の場合においても成り立つ。
図18は、以上の3通りの切り換え制御信号パターンの場合について、それぞれアクセスする分割メモリのメモリ番号を示したものである。図19−1〜19−3は、図18に示すメモリアクセスの様子を図示したものである。図19−1,図19−2,図19−3は、それぞれ基本パターン,パターン1,パターン2に対応するメモリアクセスを示している。
入力のデータポイント数が固定の場合で、基数ごとに別のバタフライ演算器で演算を行う場合には、基数8のバタフライ演算に対しては、dの数値に応じて、基本パターン,パターン1,パターン2の基数ごとに対応するパターンに基づきメモリ番号の変換を配線により行い、基本パターンの切り換え制御信号を生成するようにすればよい。なお、基数8以外の基数の演算(基数2または基数4)については、図17の例で述べたように、入力時に演算を行うようにすればよい。
また、入力のデータポイント数が可変である場合、および、1つのバタフライ演算器で複数の基数をバタフライ演算を行う場合には、基本パターン,パターン1,パターン2の接続を用意し、dの値に応じて、これらの接続をセレクタで切り換えるようにすればよい。なお、このとき、基数8以外の基数の演算(基数2または基数4)は、基本パターンのアクセスとなる。
なお、実施の形態1で説明した図1,本実施の形態で説明した図11,図12は、いずれもメモリの読み出しと書き込みが同時に行えるデュアルポートメモリを用いることを想定しているが、以下のようにシングルポートメモリを用いるようにしてもよい。この場合、1回の演算で読み出しと書き込みに分けて2回のメモリアクセスを行うようにすればよい。また、図20−1,20−2に示すように、読み出しメモリと書き込みメモリを別として、交互に切り換えて用いるようにしてもよい。図20−1,20−2では、メモリ部2bを、分割メモリ#0−1と分割メモリ#0−2に分割し、読み出し,書き込みを行う先を、分割メモリ#0−1と分割メモリ#0−2とで交互にスイッチにより切り換えるようにしている。図1,図11,図17の例の分割メモリを、それぞれ同様に、分割メモリ#j(jは分割メモリの番号)を分割メモリ#j−1と分割メモリ#j−2に分け各々をスイッチで切り換えるようにしてもよい。このようにメモリをさらに分割する場合、メモリ容量は、図1の場合などに比べて2倍必要となるが、シングルポートメモリを用いることができる。
また、入出力に使用するメモリとバタフライ演算に使用するメモリに分けて、パイプラインで動作させるようにしてもよい。図21は、入出力に使用するメモリとバタフライ演算に使用するメモリに分けた場合の高速フーリエ変換装置の機能構成例である。図21に示すように、メモリ部2cを、4つのメモリで構成し、切り換え器を追加する。このような構成の場合、入力処理,バタフライ演算器1eの処理,出力処理,バタフライ演算器1eを同時に行うことができる。
このように、本実施の形態では、混合基数のバタフライ演算器1aを用いて、基数の最大値にメモリ部2aを分割し、メモリ入れ替えスイッチ14,15を用いて分割メモリ#1と分割メモリ#2を入れ替えられるようにし、基数2の演算を行うステージ1では、メモリの入れ替えなしで、基数4の演算を行うステージ2,3では、分割メモリ#1と分割メモリ#2の入れ替えを行うようにした。このため、混合基数の場合においても、メモリ分割を行うことができ、従来のメモリ分割方式にくらべ、信号の切り換え器の数を削減することができる。
以上のように、本発明にかかる高速フーリエ変換装置は、メモリを分割して高速処理を行う高速フーリエ変換処理に有用であり、特に、ハードウェア構成を簡略化する必要のある高速フーリエ変換処理に適している。
本発明にかかる高速フーリエ変換装置の実施の形態1の機能構成例を示す図である。 メモリを分割しない場合のメモリアクセスを示す図である。 処理ごとのアクセスするメモリアドレスを示す図である。 メモリ番号と各分割メモリ内のメモリアドレスを示す図である。 メモリ番号の4パターンを示す図である。 パターンP1からパターンP2を生成する方法の一例を示す図である。 パターンP1からパターンP3を生成する方法の一例を示す図である。 パターンP1からパターンP4を生成する方法の一例を示す図である。 4分割メモリに対するメモリアクセスを行う切り換え器とメモリの一構成例を示す図である。 入力側と出力側が接続されていない状態の信号切り換え器の接続を示す図である。 切り換え制御信号が0の場合の信号切り換え器の接続を示す図である。 切り換え制御信号が1の場合の信号切り換え器の接続を示す図である。 メモリを8分割する場合のメモリと入出力制御に関する部分の構成例を示す図である。 メモリを8分割した場合の切り換え信号を生成するための論理回路の一例を示す図である。 本発明にかかる高速フーリエ変換装置の実施の形態2の機能構成例を示す図である。 混合基数のバタフライ演算を、分割しない1つのメモリ用いて行う場合のメモリアクセスを説明するための図である ステージごとにメモリアドレスを示すビットの位置がシフトする様子を示す図である。 メモリ分割を行った場合のステージ1のメモリ番号と分割メモリ内のメモリアドレスを示す図である。 メモリ分割を行った場合のステージ2のメモリ番号と分割メモリ内のメモリアドレスを示す図である。 メモリ分割を行った場合のステージ3のメモリ番号と分割メモリ内のメモリアドレスを示す図である。 実施の形態2の切り換え制御信号を生成するための制御信号生成回路例を示す図である。 実施の形態2のバタフライ演算器の構成例を示す図である。 基数2と基数4のバタフライ演算器を別個に備える場合の高速フーリエ変換器の機能構成例を示す図である。 制御信号パターンごとのアクセスする分割メモリのメモリ番号を示す図である。 基本パターンのメモリアクセスを示す図である。 パターン1のメモリアクセスを示す図である。 パターン2のメモリアクセスを示す図である。 読み出しメモリと書き込みメモリを別とした場合の切り換えを示す図である。 読み出しメモリと書き込みメモリを別とした場合の切り換えを示す図である。 入出力とバタフライ演算で使用するメモリを別とし場合の高速フーリエ変換装置の機能構成例を示す図である。 従来の送受信機のシステム構成例を示す図である。 周波数間引き型高速フーリエ変換のシグナルフローを示す図である。 データの並び順を変えた周波数間引き型高速フーリエ変換のシグナルフローを示す図である。 時間間引き型高速フーリエ変換のシグナルフローを示す図である。 データの並び順を変えた時間間引き型高速フーリエ変換のシグナルフローを示す図である。 バタフライ演算ブロックを示す図である。 バタフライ演算ブロックを用いた時間間引き型高速フーリエ変換シグナルフローを示す図である。 基数4のバタフライ演算ブロックを示す図である。 基数4のバタフライ演算ブロックを用いた時間間引き型高速フーリエ変換シグナルフローを示す図である。
符号の説明
1,1a,1c,1d,1e,10 バタフライ演算器
2,2a,2b,2c,11,11a メモリ部
3,3a,3b,12,12a 入力信号切り換え部
4,4a,4b,13,13a 出力信号切り換え部
5,5a 制御信号生成器
6 アドレス生成器
7−1〜7−12,8−1〜8−12 信号切り換え器
9,9a メモリ
14,15 メモリ入れ替えスイッチ
16 セレクタ

Claims (6)

  1. 4以上を最大基数とするバタフライ演算器を備える高速フーリエ変換装置であって、
    前記最大基数の個数の分割メモリで構成され、前記バタフライ演算器の入出力データの記憶に使用する記憶手段と、
    前記最大基数の2を底とする指数をビット数とする切り換え制御信号を生成する制御手段と、
    前記最大基数の1/2の個数を1組とする2入力2出力の信号切り換え器を、前記ビット数に相当する数だけ含み、入力データまたはバタフライ演算の演算結果の書き込み先の分割メモリを切り換える入力信号切り換え手段と、
    前記最大基数の1/2の個数を1組とする2入力2出力の信号切り換え器を、前記ビット数に相当する数だけ含み、読み出し元の分割メモリを切り換え、前記バタフライ演算器にデータを出力する出力信号切り換え手段と、
    を備え、
    前記制御手段は、前記入力信号切り換え手段の各々の組に切り換え制御信号のビットをそれぞれ対応させ、前記出力信号切り換え手段の各々の組に、前記入力信号切り換え手段の各々の組に対応させたビットと対象となるように前記切り換え制御信号のビットをそれぞれ対応させ、
    前記入力信号切り換え手段を構成する信号切り換え器、および、前記出力信号切り換え手段を構成する信号切り換え器は、第1の入力および第2の入力をそれぞれ第1の出力および第2の出力に接続する状態と、第1の入力および第2の入力をそれぞれ第2の出力および第1の出力に接続する状態と、を前記切り換え制御信号の対応ビットに基づいて切り換えることを特徴とする高速フーリエ変換装置。
  2. 前記切り換え制御信号を、分割されていない状態の1つのメモリを想定した場合におけるメモリアドレスに相当する数値、を示す各ビットの排他的論理和により生成することを特徴とする請求項1に記載の高速フーリエ変換装置。
  3. 前記バタフライ演算器を単一基数とし、前記最大基数をNとし、入力データ数を2の(L+1)乗個とし、a0、a1、…、aLをそれぞれバタフライ演算ごとの前記数値から選択した最小の数値を示す各ビットとするとき、mビットの切り換え制御信号c0´、c1´、・・・、c(m−1)´を、
    c0´=EXOR(a0,am,…,a(L−m+1))
    c1´=EXOR(a1,a(m+1),…,a(L−m+2))
    c2´=EXOR(a2,a(m+2),…,a(L−m+3))

    c(m−1)´=EXOR(a(m−1),a(2m−1),…,aL)
    により生成することを特徴とする請求項2に記載の高速フーリエ変換装置。
  4. 前記バタフライ演算器を混合基数とし、前記最大基数をNとし、入力データ数を2の(L+1)乗個とし、a0、a1、…、aLをそれぞれバタフライ演算ごとの前記数値から選択した最小の数値を示す各ビットとし、(L+1)が切り換え制御信号のビット数mで割り切れない場合に、(L+1)をmで割った商をS、余りをREとするとき、mビットの切り換え制御信号c0´、c1´、・・・、c(m−1)´を、
    c0´=EXOR(a0,am,…,a(S×m−m),a(S×m))
    c1´=EXOR(a1,a(m+1),…,a(S×m−m+1),a(S×m+1))

    c(RE−1)´=EXOR(a2,a(m+2),…,a(L―m),aL)

    c(m−1)´
    =EXOR(a(m−1),a(2m−1),…,a(S×m−1))
    により生成することを特徴とする請求項2に記載の高速フーリエ変換装置。
  5. 2つの分割メモリの接続先の入れ替えを行うメモリ接続入れ替え手段、
    をさらに備え、
    前記バタフライ演算器を混合基数とし、前記最大基数を4とし、
    前記制御手段は、前記最大基数のバタフライ演算と、前記最大基数以外の基数のバタフライ演算と、の切り換えを指示し、前記最大基数のバタフライ演算の指示を行う場合には、前記メモリ接続切り換え手段にメモリの入れ替えを行わない旨を指示し、前記最大基数以外の基数のバタフライ演算の指示を行う場合には、前記メモリ接続切り換え手段にメモリの入れ替えを指示し、
    前記バタフライ演算器は、前記最大基数のバタフライ演算と前記最大基数以外の基数のバタフライ演算とを前記制御手段からの指示に基づき切り換えることを特徴とする請求項4に記載の高速フーリエ変換装置。
  6. 前記分割メモリをさらに分割して記憶するための2つのシングルポートメモリと、
    前記入力信号切り換え手段と前記分割メモリとの接続を前記2つのシングルポートメモリ間で切り換える入力メモリ切り換え手段と、
    前記出力信号切り換え手段と前記分割メモリとの接続を前記2つのシングルポートメモリ間で切り換える出力メモリ切り換え手段と、
    をさらに備えることを特徴とする請求項1〜5のいずれか1つに記載の高速フーリエ変換装置。
JP2007021584A 2007-01-31 2007-01-31 高速フーリエ変換装置 Active JP4755610B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2007021584A JP4755610B2 (ja) 2007-01-31 2007-01-31 高速フーリエ変換装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2007021584A JP4755610B2 (ja) 2007-01-31 2007-01-31 高速フーリエ変換装置

Publications (2)

Publication Number Publication Date
JP2008186396A true JP2008186396A (ja) 2008-08-14
JP4755610B2 JP4755610B2 (ja) 2011-08-24

Family

ID=39729366

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2007021584A Active JP4755610B2 (ja) 2007-01-31 2007-01-31 高速フーリエ変換装置

Country Status (1)

Country Link
JP (1) JP4755610B2 (ja)

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2011070392A (ja) * 2009-09-25 2011-04-07 Nec Corp 離散フーリエ変換装置および離散フーリエ変換方法
WO2011074128A1 (en) * 2009-12-16 2011-06-23 Telefonaktiebolaget L M Ericsson (Publ) Information processing apparatus, control method thereof, program, and computer-readable storage medium
WO2011102291A1 (ja) * 2010-02-16 2011-08-25 日本電気株式会社 高速フーリエ変換回路
KR101074112B1 (ko) 2008-12-12 2011-10-17 한국전자통신연구원 푸리에 변환 장치 및 방법
JP2014059542A (ja) * 2012-08-24 2014-04-03 Nippon Telegr & Teleph Corp <Ntt> 光合分波器
JP2014511062A (ja) * 2011-02-28 2014-05-01 オランジュ Oqam型マルチキャリア信号を変調するための方法、並びに対応するコンピュータプログラム及び変調装置
JP2021508380A (ja) * 2017-12-19 2021-03-04 ドルビー・インターナショナル・アーベー 音声音響統合復号および符号化の改良のための方法、機器、およびシステム

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS6210730A (ja) * 1985-07-08 1987-01-19 Matsushita Electric Ind Co Ltd デ−タ処理装置
JPS63292267A (ja) * 1987-05-25 1988-11-29 Nippon Telegr & Teleph Corp <Ntt> 高速フ−リエ変換用アドレス生成回路
JP2001331473A (ja) * 2000-05-23 2001-11-30 Ntt Electornics Corp メモリアドレス変換方法及び高速フーリエ変換装置
JP2002215455A (ja) * 2001-01-19 2002-08-02 Sony Corp インタリーブ装置
JP2005101695A (ja) * 2003-09-22 2005-04-14 Hitachi Kokusai Electric Inc 相関検出装置
WO2005086020A2 (en) * 2004-03-02 2005-09-15 Advanced Micro Devices, Inc. Fast fourier transform circuit having partitioned memory for minimal latency during in-place computation

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS6210730A (ja) * 1985-07-08 1987-01-19 Matsushita Electric Ind Co Ltd デ−タ処理装置
JPS63292267A (ja) * 1987-05-25 1988-11-29 Nippon Telegr & Teleph Corp <Ntt> 高速フ−リエ変換用アドレス生成回路
JP2001331473A (ja) * 2000-05-23 2001-11-30 Ntt Electornics Corp メモリアドレス変換方法及び高速フーリエ変換装置
JP2002215455A (ja) * 2001-01-19 2002-08-02 Sony Corp インタリーブ装置
JP2005101695A (ja) * 2003-09-22 2005-04-14 Hitachi Kokusai Electric Inc 相関検出装置
WO2005086020A2 (en) * 2004-03-02 2005-09-15 Advanced Micro Devices, Inc. Fast fourier transform circuit having partitioned memory for minimal latency during in-place computation

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101074112B1 (ko) 2008-12-12 2011-10-17 한국전자통신연구원 푸리에 변환 장치 및 방법
JP2011070392A (ja) * 2009-09-25 2011-04-07 Nec Corp 離散フーリエ変換装置および離散フーリエ変換方法
WO2011074128A1 (en) * 2009-12-16 2011-06-23 Telefonaktiebolaget L M Ericsson (Publ) Information processing apparatus, control method thereof, program, and computer-readable storage medium
WO2011102291A1 (ja) * 2010-02-16 2011-08-25 日本電気株式会社 高速フーリエ変換回路
JP2014511062A (ja) * 2011-02-28 2014-05-01 オランジュ Oqam型マルチキャリア信号を変調するための方法、並びに対応するコンピュータプログラム及び変調装置
JP2014059542A (ja) * 2012-08-24 2014-04-03 Nippon Telegr & Teleph Corp <Ntt> 光合分波器
JP2021508380A (ja) * 2017-12-19 2021-03-04 ドルビー・インターナショナル・アーベー 音声音響統合復号および符号化の改良のための方法、機器、およびシステム

Also Published As

Publication number Publication date
JP4755610B2 (ja) 2011-08-24

Similar Documents

Publication Publication Date Title
JP4755610B2 (ja) 高速フーリエ変換装置
JP4022546B2 (ja) 高速フーリエ変換を用いた混合−基数方式の変調装置
EP0855657B1 (en) Fast fourier transforming apparatus and method
CN102652315B (zh) 信息处理设备及其控制方法
Chen et al. Continuous-flow parallel bit-reversal circuit for MDF and MDC FFT architectures
CN111737638A (zh) 基于傅里叶变换的数据处理方法及相关装置
US9727531B2 (en) Fast fourier transform circuit, fast fourier transform processing method, and program recording medium
JPH11203272A (ja) 高速フーリエ変換処理装置、高速フーリエ変換処理システムおよび高速フーリエ変換処理方法
CN114968173A (zh) 基于ntt和intt结构的多项式乘法运算方法和多项式乘法器
CN115706799A (zh) 用于视频编码器中的率失真优化和重构的有效变换和转置
JP5601327B2 (ja) データ並べ替え回路、可変遅延回路、高速フーリエ変換回路、およびデータ並べ替え方法
JP2006221648A (ja) メモリサイズを減少させうる高速フーリエ変換プロセッサ及び高速フーリエ変換方法
JP2015503785A (ja) Fft/dftの逆順ソーティングシステム、方法およびその演算システム
US9268744B2 (en) Parallel bit reversal devices and methods
CN103186476B (zh) 一种用于多流的数据缓存方法和装置
KR100557160B1 (ko) 고속 퓨리에 변환을 이용한 혼합-기수 방식의 변조 장치
JPH11110370A (ja) 高速フーリエ変換装置および方法、可変ビットリバース回路、逆高速フーリエ変換装置および方法、並びにofdm受信および送信装置
JP4995987B2 (ja) 信号受信装置および通信システム
KR20070061357A (ko) 고속 푸리에 변환 시스템의 메모리 주소 계산 방법 및 그를이용한 트위들 팩터 생성 장치
CN114422315B (zh) 一种超高吞吐量ifft/fft调制解调方法
JP5131346B2 (ja) 無線通信装置
CN113626364B (zh) 一种高速串行接口以及用于高速串行接口的转换电路
KR19980070691A (ko) 고속 푸리에 변환장치 및 방법, 가변 비트 리버스 회로, 역고속푸리에 변환장치 및 방법과 직교 주파수 분할 다중 수신 및송신장치
JPH05266059A (ja) アドレス発生回路
CN117785128A (zh) 一种可用于任意素数域椭圆曲线的计算系统

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20091006

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20110223

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20110301

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20110428

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20110524

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20110527

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20140603

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Ref document number: 4755610

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250