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

高速フーリエ変換装置

Info

Publication number
JP2001056806A
JP2001056806A JP2000171643A JP2000171643A JP2001056806A JP 2001056806 A JP2001056806 A JP 2001056806A JP 2000171643 A JP2000171643 A JP 2000171643A JP 2000171643 A JP2000171643 A JP 2000171643A JP 2001056806 A JP2001056806 A JP 2001056806A
Authority
JP
Japan
Prior art keywords
address
fourier transform
fast fourier
bank
data
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.)
Pending
Application number
JP2000171643A
Other languages
English (en)
Inventor
Yuji Nakai
祐二 中居
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.)
Panasonic Holdings Corp
Original Assignee
Matsushita Electric Industrial Co Ltd
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 Matsushita Electric Industrial Co Ltd filed Critical Matsushita Electric Industrial Co Ltd
Priority to JP2000171643A priority Critical patent/JP2001056806A/ja
Publication of JP2001056806A publication Critical patent/JP2001056806A/ja
Pending legal-status Critical Current

Links

Landscapes

  • Complex Calculations (AREA)

Abstract

(57)【要約】 【課題】 入出力データ及び演算時の中間データをRA
Mに格納する高速フーリエ変換装置を高速化する。 【解決手段】 第1及び第2のRAM111,112
は、高速フーリエ変換装置の入出力データ及びバタフラ
イ演算時の中間データを格納する。アドレス生成部10
1は、バタフライ演算に必要となるデータの順を考慮し
てアドレスADを規則的に生成する。アドレス変換部1
02は、アドレスADを、第1及び第2のRAM11
1,112のいずれかを選択するバンク選択信号BK
と、RAM内のデータに対応したバンクアドレスBAD
とに変換する。バタフライ演算部104は、基数2のバ
タフライ演算を行う際に、第1及び第2のRAM11
1,112との間で並列にデータの読み出し、書き込み
を行う。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、高速フーリエ変換
装置に関し、特に入出力データ及び演算時の中間データ
をメモリに格納して行う高速フーリエ変換処理の高速化
に関する。
【0002】
【従来の技術】近年、デジタル通信技術と半導体集積技
術の進歩に伴い、テレビ、ラジオ放送のデジタル化が進
められている。地上波を用いたデジタル放送では、多く
の場合、変復調方式にOFDM(Orthogonal Frequency
Division Multiplex:直交周波数分割多重)が採用さ
れている。OFDMは、多くの情報を限られた周波数帯
域の中で効率よく伝送する方式であり、マルチパス妨害
に強いという地上波放送に適した特徴を持つ。
【0003】OFDMによる変復調を行う場合、数千サ
ンプルの大規模な高速フーリエ変換を行う必要があり、
送信機及び受信機においては高速フーリエ変換装置が主
要なブロックとなる。送信機及び受信機における高速フ
ーリエ変換装置は、周波数解析等を行う測定器に用いら
れる高速フーリエ変換装置とは異なり、連続して送信又
は受信される信号をリアルタイムで高速に処理する必要
がある。
【0004】数千サンプルの大規模な高速フーリエ変換
装置では、演算部とRAM(Random-Access Memory)を
備える構成が一般的である。図19は従来の高速フーリ
エ変換装置の構成を示すブロック図である。図19の高
速フーリエ変換装置は、アドレスを生成するアドレス生
成部501、バタフライ演算部504、入出力データ及
び演算時の中間データを格納するRAM511を備えて
いる。サンプル数Nの高速フーリエ変換を行う場合、R
AM511の容量はNワードである。
【0005】この高速フーリエ変換装置では、アドレス
生成部501が出力するアドレスADに従って、バタフ
ライ演算部504はRAM511に格納された複数のデ
ータを順次読み出し、高速フーリエ変換における基本演
算であるバタフライ演算を行う。バタフライ演算部50
4は演算で得られた複数のデータをRAM511に順次
格納する。このようなバタフライ演算をすべてのサンプ
ルデータに対して繰り返し行うことで、高速フーリエ変
換を行うことができる。
【0006】従来の高速フーリエ変換装置の第1の例と
して、特開昭58−219669号公報に開示されたも
のがある。この第1の従来例では、内部処理(高速フー
リエ変換処理)と外部処理(データ入出力処理)とを並
列に行うため、2つのRAMを備えているが、高速フー
リエ変換処理に着目すると、RAMとバタフライ演算部
との関係は図19の高速フーリエ変換装置と同様の構成
であるといえる。
【0007】高速フーリエ変換を行う場合、入力データ
又は出力データに対してデータの順序の並び替え処理を
行う必要がある。第1の従来例をOFDM方式による変
復調に用いるには、高速フーリエ変換を並び替え処理の
ために中断することなく連続して行う必要があるため、
少なくとも1つの並び替え処理用のRAMを更に備える
必要があった。
【0008】従来の高速フーリエ変換装置の第2の例と
して、特開平11−110370号公報に開示されたも
のがある。この第2の従来例では、アドレスの変換処理
(ビットリバース処理)を行うことにより、並び替え処
理用のRAMを用いることなく、入力データ又は出力デ
ータの並び替え処理を実現している。この第2の従来例
においても、内部処理(高速フーリエ変換処理)と外部
処理(データ入出力処理)とを並列に行うため、2つの
RAMを備えている。しかし、高速フーリエ変換処理に
着目すると、RAMとバタフライ演算部との関係につい
ては図19の高速フーリエ変換装置と同様の構成であ
る。
【0009】高速フーリエ変換装置を高速化するには、
バタフライ演算のパイプライン処理や並列処理等の手法
が一般的に用いられている。
【0010】
【発明が解決しようとする課題】高速フーリエ変換で
は、バタフライ演算を繰り返し行うため、RAMへの多
くのアクセスを必要とする。しかしながら、従来の高速
フーリエ変換装置の構成では、バタフライ演算前に複数
のデータをRAMから順次読み出し、バタフライ演算後
に複数の演算結果のデータをRAMに順次格納するた
め、RAMアクセスがバタフライ演算部の動作速度を制
限することになり、高速フーリエ変換装置を高速化する
際の妨げになるという問題点があった。
【0011】RAMアクセスを高速化する方法として、
複数データへの同時アクセスが可能な多ポートRAMを
用いる手法がある。しかし、多ポートRAMは、メモリ
セルの面積増大に伴い回路規模が増大するという問題点
と、メモリセルの容量増大に伴い速度低下が生じ、複数
データへの同時アクセスによる高速化のメリットが生き
てこないという問題点を有していた。
【0012】そこで、本発明は、バタフライ演算部から
RAMへのアクセスの高速化を図り、多ポートRAMを
用いることなく、より高速な高速フーリエ変換装置を提
供することを課題とする。
【0013】
【課題を解決するための手段】前記課題を解決するた
め、請求項1の発明が講じた手段は、高速フーリエ変換
装置として、入出力データ及び演算時の中間データを格
納する第1及び第2の2つのRAMと、アドレスを生成
するアドレス生成部と、前記アドレスに基づいて、バン
ク選択信号とバンクアドレスとを生成して出力するアド
レス変換部と、前記バンク選択信号の値に応じて、前記
バンクアドレスを前記第1及び第2のRAMのうちのい
ずれかへ供給するアドレス選択部と、前記第1及び第2
のRAMが格納する、前記バンクアドレスで指定される
データを対象にして、基数2のバタフライ演算を行うバ
タフライ演算部とを備えたものである。
【0014】請求項1の発明によると、高速フーリエ変
換装置は独立してアクセス可能な2つのRAMを有して
いるため、バタフライ演算の際に入力データを2つのR
AMから同時に並列して読み出し、演算結果を2つのR
AMへ同時に並列して書き込むことができ、RAMアク
セスを高速化できる。
【0015】また、請求項2の発明は、高速フーリエ変
換装置として、入出力データ及び演算時の中間データを
格納する第1及び第2の2つのRAMと、アドレスを生
成するアドレス生成部と、前記アドレスに基づいて、バ
ンク選択信号とバンクアドレスとを生成して出力するア
ドレス変換部と、前記バンク選択信号の値に応じて、前
記バンクアドレスを前記第1及び第2のRAMのうちの
いずれかへ供給するアドレス選択部と、前記第1及び第
2のRAMが格納する、前記バンクアドレスで指定され
るデータを対象にして、基数4のバタフライ演算を行う
バタフライ演算部とを備えたものである。
【0016】請求項2の発明によると、高速フーリエ変
換装置は独立してアクセス可能な2つのRAMを有して
いるため、2つのRAMに並列してアクセスすることが
でき、基数4のバタフライ演算を行う場合でも、RAM
アクセスを高速化できる。
【0017】さらに、請求項3の発明では、請求項1又
は2に記載の高速フーリエ変換装置において、前記アド
レス変換部は、前記アドレスの各ビット間の排他的論理
和をバンク選択信号として出力し、前記アドレスを1ビ
ットだけ下位へビットシフトしたものをバンクアドレス
として出力するものである。
【0018】請求項3の発明によると、簡単な演算によ
り、バタフライ演算時に2つのRAMに並列にアクセス
するための、バンク選択信号とバンクアドレスとを生成
することができる。
【0019】また、請求項4の発明は、高速フーリエ変
換装置として、入出力データ及び演算時の中間データを
格納する第1〜第4の4つのRAMと、アドレスを生成
するアドレス生成部と、前記アドレスに基づいて、バン
ク選択信号とバンクアドレスとを生成して出力するアド
レス変換部と、前記バンク選択信号の値に応じて、前記
バンクアドレスを前記第1〜第4のRAMのうちのいず
れかへ供給するアドレス選択部と、前記第1〜第4のR
AMが格納する、前記バンクアドレスで指定されるデー
タを対象にして、基数4のバタフライ演算を行うバタフ
ライ演算部とを備えたものである。
【0020】請求項4の発明によると、高速フーリエ変
換装置は独立してアクセス可能な4つのRAMを有して
いるため、基数4のバタフライ演算の際に入力データを
4つのRAMから同時に並列して読み出し、演算結果を
4つのRAMへ同時に並列して書き込むことができ、R
AMアクセスを高速化できる。
【0021】さらに、請求項5の発明では、請求項4に
記載の高速フーリエ変換装置において、前記アドレス変
換部は、前記アドレスの最下位ビットから順に2ビット
ずつを組とし、各組の値の総計の最下位ビットから2ビ
ットをバンク選択信号として出力し、前記アドレスを2
ビットだけ下位へビットシフトしたものをバンクアドレ
スとして出力するものである。
【0022】請求項5の発明によると、簡単な演算によ
り、バタフライ演算時に4つのRAMに並列にアクセス
するための、バンク選択信号とバンクアドレスとを生成
することができる。
【0023】また、請求項6の発明は、高速フーリエ変
換装置として、入出力データ及び演算時の中間データを
格納する第1及び第2の2つのRAMと、第1のアドレ
スを生成するアドレス生成部と、前記第1のアドレス
を、そのビットの位置を入れ換えるビットリバース処理
を行うことにより、第2のアドレスに変換して出力する
ビットリバース部と、前記第2のアドレスに基づいて、
バンク選択信号とバンクアドレスとを生成して出力する
アドレス変換部と、前記バンク選択信号の値に応じて、
前記バンクアドレスを前記第1及び第2のRAMのうち
のいずれかへ供給するアドレス選択部と、前記第1及び
第2のRAMが格納する、前記バンクアドレスで指定さ
れるデータを対象にして、バタフライ演算を行うバタフ
ライ演算部とを備えたものである。
【0024】請求項6の発明によると、高速フーリエ変
換装置は独立してアクセス可能な2つのRAMを有して
いるため、バタフライ演算の際に入力データを2つのR
AMから同時に並列して読み出し、演算結果を2つのR
AMへ同時に並列して書き込むことができ、RAMアク
セスを高速化できる。また、ビットリバース処理を行う
ことにより、第1及び第2のRAMにおけるデータのア
クセス順を変更することができる。
【0025】また、請求項7の発明では、請求項6に記
載の高速フーリエ変換装置において、前記アドレス変換
部は、前記第2のアドレスの各ビット間の排他的論理和
をバンク選択信号として出力し、前記第2のアドレスを
1ビットだけ下位へビットシフトしたものをバンクアド
レスとして出力するものである。
【0026】請求項7の発明によると、簡単な演算によ
り、バタフライ演算時に2つのRAMに並列にアクセス
するための、バンク選択信号とバンクアドレスとを生成
することができる。
【0027】また、請求項8の発明では、請求項6又は
7に記載の高速フーリエ変換装置において、前記ビット
リバース部は、高速フーリエ変換処理後の出力データ
と、次の高速フーリエ変換処理の入力データとに対する
前記第2のアドレスが、シンボル内のデータの順序を表
すインデックスが同一の場合は同一となるように、前記
第1のアドレスにビットリバース処理を行うことを特徴
とする。
【0028】請求項8の発明によると、高速フーリエ変
換処理によって得られたデータの順序を、次の高速フー
リエ変換を行うために並べ替える必要がない。このた
め、並び替え用のRAMを備える必要がなくなる。
【0029】また、請求項9の発明では、請求項6〜8
のいずれかに記載の高速フーリエ変換装置において、前
記ビットリバース部は、前記第1のアドレスを1以上の
ビットを含むグループに分割し、グループ単位で位置を
入れ換えるビットリバース処理を行うことを特徴とす
る。
【0030】請求項9の発明によると、基数が4以上の
バタフライ演算を行う場合において、高速フーリエ変換
処理によって得られたデータの順序を、次の高速フーリ
エ変換を行うために並べ替える必要がない。このため、
並び替え用のRAMを備える必要がなくなる。
【0031】また、請求項10の発明では、請求項6〜
9のいずれかに記載の高速フーリエ変換装置において、
前記バタフライ演算部は、基数2又は基数4のバタフラ
イ演算を行うことを特徴とする。
【0032】請求項10の発明によると、バタフライ演
算部を比較的簡単に実現することができる。
【0033】
【発明の実施の形態】以下、本発明の実施形態に係る高
速フーリエ変換装置について、図面を参照しながら説明
する。
【0034】(第1の実施形態)図1は本発明の第1の
実施形態に係る高速フーリエ変換装置の構成を示すブロ
ック図である。図1の高速フーリエ変換装置は、アドレ
ス生成部101と、アドレス変換部102と、アドレス
選択部103と、バタフライ演算部104と、第1のR
AM111と、第2のRAM112とを備えている。第
1及び第2のRAM111,112は、高速フーリエ変
換装置の入出力データ及びバタフライ演算時の中間デー
タを格納する。サンプル数Nの高速フーリエ変換を行う
場合、第1及び第2のRAM111,112の容量は、
ともにN/2ワードである。
【0035】図1の高速フーリエ変換装置の動作につい
て説明する。ここでは例として、サンプル数Nが8であ
り、基数2のバタフライ演算を3段繰り返して高速フー
リエ変換を行う場合について説明する。
【0036】まず、フーリエ変換の対象となるデータ
は、第1及び第2のRAM111,112に格納され
る。アドレス生成部101は、バタフライ演算に必要と
なるデータの順を考慮してアドレスADを規則的に生成
し、アドレス変換部102に出力する。アドレスAD
は、従来のようにRAMを1つしか備えない高速フーリ
エ変換装置の場合と同じ順に生成される。アドレス変換
部102は、アドレスADをバンク選択信号BKとバン
クアドレスBADとに変換してアドレス選択部103に
出力する。バンク選択信号BKは、同時に出力されたバ
ンクアドレスBADが、第1又は第2のRAM111,
112のいずれにアクセスするためのアドレスであるか
を示す信号である。バンクアドレスBADは、バンク選
択信号BKで示された第1又は第2のRAM111,1
12にアクセスするためのアドレスである。
【0037】アドレス選択部103は、バンク選択信号
BKの値に応じて、バンクアドレスBADをバンクアド
レスBAD0として第1のRAM111に、又はバンク
アドレスBADをバンクアドレスBAD1として第2の
RAM112に出力する。バタフライ演算部104は、
第1及び第2のRAM111,112のそれぞれのバン
クアドレスBAD0,BAD1に対応したデータDO
0,DO1を並列に読み出し、これらを対象として基数
2のバタフライ演算を行い、演算結果であるデータDI
0,DI1をそれぞれ第1及び第2のRAM111,1
12に並列に書き込む。
【0038】次に、アドレス変換部102におけるアド
レス変換方法について説明する。以下では、nビットの
幅を持つデータSの最下位ビットをS[0]、データSの
最下位ビットの隣から上位ビットに向かって数えてi番
目のビットをS[i](0≦i≦n-1)と表し、データSの下
位kビットをS[k-1:0]と表すこととする。
【0039】バンク選択信号BKは、アドレスADの各
ビット間の排他的論理和である。すなわち、アドレスA
Dがmビット(mは自然数)の幅を持つデータであると
して、バンク選択信号BKは、 という式で求められる。^は排他的論理和を表す。ま
た、バンクアドレスBADは、アドレスADを1ビット
だけ下位へビットシフトしたものである。すなわち、バ
ンクアドレスBADは、 BAD[m-2:0]=AD[m-1:0]>>1 …(2) という式で求められる。>>は右シフト演算である。例
えば、サンプル数Nが8とすれば、mの値は3である。
【0040】図2は、図1のアドレス生成部101の構
成を示すブロック図である。アドレス生成部101は、
タイミングカウンタ161と、ビット位置変換部162
とを備えている。このアドレス生成部101は、基数2
のバタフライ演算を行うためのアドレスを生成する。
【0041】タイミングカウンタ161は、カウント値
CNTをビット位置変換部162に出力する。サンプル
数がNの場合、カウント値CNTは0〜N−1の整数値
を巡回する値であって、順に1ずつ値が増加し、値がN
−1に達した後は0に変化する。ビット位置変換部16
2は、何段目のバタフライ演算を行っているかに応じ
て、カウント値CNTをアドレスADに変換して出力す
る。
【0042】図3は、図2のビット位置変換部162の
動作についての説明図である。図3(a)は第1段のバ
タフライ演算の場合、図3(b)は第2段のバタフライ
演算の場合、図3(c)は第3段のバタフライ演算の場
合について示している。
【0043】図3において、高速フーリエ変換のサンプ
ル数Nが8であるので、カウント値CNT及びアドレス
ADは3ビットで表されている。カウント値CNTの各
ビットの値を、最下位ビット(LSB)から最上位ビッ
ト(MSB)に向かって順にb0,b1及びb2で表す
こととする。また、図3では、0から7まで順に変化す
るカウント値CNTと、各値に対応するアドレスADの
値を表に2進数で表示している。
【0044】第1段のバタフライ演算を行う場合は、ビ
ット位置変換部162は、図3(a)のように、アドレ
スADとしてカウント値CNTをそのまま出力する。し
たがって、アドレスADは、0,1,2,3,4,5,
6,7の順で出力される。
【0045】第2段のバタフライ演算を行う場合は、ビ
ット位置変換部162は、図3(b)のように、カウン
ト値CNTの最下位ビットb0と最下位ビットから2番
目のビットb1とを入れ換え、アドレスADとして出力
する。したがって、アドレスADは、0,2,1,3,
4,6,5,7の順で出力される。
【0046】第3段のバタフライ演算を行う場合は、ビ
ット位置変換部162は、図3(c)のように、カウン
ト値CNTの最下位ビットb0をアドレスADの最上位
ビットにし、カウント値CNTの最下位ビットから2番
目のビットb1及び最上位ビットb2をそれぞれアドレ
スADの最下位ビット及び最下位ビットから2番目のビ
ットとする。したがって、アドレスADは、0,4,
1,5,2,6,3,7の順で出力される。
【0047】図4はアドレス変換部102及びアドレス
選択部103の具体的な構成の例を示す回路図である。
図4のアドレス変換部102は、排他的論理和ゲート1
21と、1ビット右シフト回路122とを備えている。
アドレス選択部103は、イネーブル付きDフリップフ
ロップ131,132と、Dフリップフロップ133,
134と、選択回路135,136と、論理否定ゲート
137とを備えている。
【0048】図4の回路の動作について説明する。以下
において、サイクルは、第1及び第2のRAM111,
112の読み出し、書き込みのサイクルを示す。
【0049】排他的論理和ゲート121は、式(1)の
ように、入力されたアドレスADの各ビット間の排他的
論理和をバンク選択信号BKとして求め、イネーブル付
きDフリップフロップ132に出力するとともに、イネ
ーブル付きDフリップフロップ131には論理否定ゲー
ト137を介して出力する。1ビット右シフト回路12
2は、式(2)のように、アドレスADを1ビットだけ
右にシフトしてバンクアドレスBADを求め、イネーブ
ル付きDフリップフロップ131,132に出力する。
【0050】イネーブル付きDフリップフロップ131
は、バンク選択信号BKの信号レベルが論理的に低電位
(以下では“L”と表記する)のとき(バンク選択信号
BKの値が0のとき)にバンクアドレスBADを格納す
る一方、イネーブル付きDフリップフロップ132は、
バンク選択信号BKの信号レベルが論理的に高電位(以
下では“H”と表記する)のとき(バンク選択信号BK
の値が1のとき)にバンクアドレスBADを格納する。
【0051】イネーブル付きDフリップフロップ131
は、格納しているバンクアドレスBADをバンクアドレ
スBAD0RとしてDフリップフロップ133及び選択
回路135に出力する。イネーブル付きDフリップフロ
ップ132は、格納しているバンクアドレスBADをバ
ンクアドレスBAD1RとしてDフリップフロップ13
4及び選択回路136に出力する。
【0052】Dフリップフロップ133は、入力された
バンクアドレスBAD0Rを次のサイクルにおいてバン
クアドレスBAD0Wとして選択回路135に出力す
る。Dフリップフロップ134は、入力されたバンクア
ドレスBAD1Rを次のサイクルにおいてバンクアドレ
スBAD1Wとして選択回路136に出力する。
【0053】選択信号NWEは、第1又は第2のRAM
111,112に対して、読み出し又は書き込みのいず
れを行うかを選択する信号であって、選択回路135,
136に入力される。選択回路135,136は、選択
信号NWEの信号レベルが“H”のとき、読み出し用の
バンクアドレスBAD0R,BAD1Rをそれぞれバン
クアドレスBAD0,BAD1として出力し、選択信号
NWEの信号レベルが“L”のとき、書き込み用のバン
クアドレスBAD0W,BAD1Wをそれぞれバンクア
ドレスBAD0,BAD1として出力する。
【0054】図5は図1の高速フーリエ変換装置におけ
るバタフライ演算動作を説明するシグナルフローグラフ
である。高速フーリエ変換では、バタフライ演算と呼ば
れる基本演算を繰り返し行う。複数のバタフライ演算の
流れを時間軸に沿って表示した図5のようなグラフをシ
グナルフローグラフと呼び、シグナルフローグラフ中の
丸がバタフライ演算を示している。図5は、2個のデー
タを入力として2個のデータを出力する基数2のバタフ
ライ演算を繰り返すことにより、サンプル数Nが8の高
速フーリエ変換を行う場合の例である。この場合、3段
の演算過程が必要であり、各段ではバタフライ演算が4
回行われる。第1段の演算結果は中間データ1として、
第2段の演算結果は中間データ2として、第1又は第2
のRAM111,112に一時保存される。
【0055】また、図5の中の表は、シグナルフローグ
ラフ中の各データが格納される場所が第1又は第2のR
AM111,112のいずれであるかを示すとともに、
そのデータに対するアドレスAD、バンクアドレスBA
D、バンク選択信号BKの値を示している。図5の表の
各段は、それぞれシグナルフローグラフ中の同じ段の各
データに対応している。
【0056】バタフライ演算に関係する各データが実際
に格納される第1又は第2のRAM111,112のア
ドレスは、バンクアドレスBAD0,BAD1そのもの
であってもよいし、バンクアドレスBAD0,BAD1
に対応したアドレスであってもよい。
【0057】図6はバタフライ演算を説明する図であっ
て、基数2の場合と基数4の場合のバタフライ演算につ
いて示している。
【0058】図7はアドレス生成部101の動作を示す
タイミングチャートである。カウント値CNTは、0,
1,2,…,7,0,1,2,…の順に値が変化するこ
とを繰り返す。ビット位置変換部162は、図3におい
て説明したように、第1段から第3段のうち、何段目の
バタフライ演算を行っているかに応じて、カウント値C
NTをアドレスADに変換して出力する。
【0059】図8は図1の高速フーリエ変換装置の動作
を示すタイミングチャートである。図8において、アド
レスAD、バンクアドレスBAD、バンク選択信号B
K、バンクアドレスBAD0R,BAD1R,BAD
0,BAD1、データDO0,DO1,DI0,DI1
は、図1〜図5,図7で示したものである。信号Rea
d/Writeは、その値が“R”のときには第1又は
第2のRAM111,112からの読み出しを、その値
が“W”のときには第1又は第2のRAM111,11
2への書き込みをするべきことを示すものである。信号
Read/Writeの値“R”及び“W”は、選択信
号NWEの信号レベル“H”及び“L”にそれぞれ対応
している。データDO0,DO1はバタフライ演算部1
04の入力、データDI0,DI1はバタフライ演算部
104の出力であり、BTFLY−iはi番目のバタフ
ライ演算の入出力データである。
【0060】図1の高速フーリエ変換装置において、バ
タフライ演算の対象となるデータの流れの例について、
図8を参照しながら説明する。
【0061】まず、フーリエ変換の入力データx0〜x
7は、図5のシグナルフローグラフに示すように格納さ
れる。各入力データx0〜x7は、図5の表の同一の段
に示されたように、第1又は第2のRAM111,11
2内のバンクアドレスBADに対応したアドレスに格納
される。
【0062】アドレス生成部101は、バタフライ演算
が順に行えるようにアドレスADを規則的に生成する。
第1段のバタフライ演算では、アドレス生成部101
は、アドレスADとしてまず0を生成する。
【0063】アドレス変換部102では、アドレスAD
に基づき、式(1)及び式(2)に従って、バンク選択
信号BKとして0、バンクアドレスBADとして0を出
力する。このため、アドレス選択部103の内部では、
図4のイネーブル付きDフリップフロップ131がバン
クアドレスBAD0Rとして0を次のサイクルで出力す
る。
【0064】このサイクルでは、アドレス生成部101
は、次のアドレスADとして1を発生する。アドレス変
換部102では、アドレスADに基づき、バンク選択信
号BKとして1、バンクアドレスBADとして0を出力
する。このため、アドレス選択部103の内部では、図
4のイネーブル付きDフリップフロップ132がバンク
アドレスBAD1Rとして0を次のサイクルで出力す
る。
【0065】このとき、信号Read/Writeの値
が“R”、すなわち、選択信号NWEの信号レベルが
“H”となり、選択回路135,136において、バン
クアドレスBAD0,BAD1としてバンクアドレスB
AD0R,BAD1Rがそれぞれ選択される。したがっ
て、選択回路135,136はともに0を出力する。
【0066】すると、バタフライ演算部104は、バン
クアドレスBAD0を用いて第1のRAM111からデ
ータI0−0を、バンクアドレスBAD1を用いて第2
のRAM112からデータI1−0を同時に並列に読み
出し、これらのデータを対象にして基数2のバタフライ
演算を行う。
【0067】次のサイクルで、信号Read/Writ
eの値が“W”、すなわち、選択信号NWEの信号レベ
ルが“L”となり、選択回路135,136において、
バンクアドレスBAD0,BAD1としてバンクアドレ
スBAD0W,BAD1Wがそれぞれ選択される。バン
クアドレスBAD0W,BAD1Wの値は、1サイクル
前のバンクアドレスBAD0R,BAD1Rと同じなの
で、選択回路135,136は出力を変えず、ともに0
を出力する。
【0068】したがって、バタフライ演算部104は、
第1及び第2のRAM111,112内の読み出したデ
ータが格納されていたのと同じ場所に、演算結果である
2個のデータを中間データ1として1個ずつ同時に並列
に書き込む。
【0069】その後、アドレス生成部101は、アドレ
スADを図8に示すように2,3,4,5,6,7の順
に生成する。バタフライ演算部104は、同様に第1及
び第2のRAM111,112からデータを1個ずつ並
列に読み出してバタフライ演算を行って、読み出したデ
ータが格納されていた場所に、演算結果である2個のデ
ータを中間データ1として並列に書き込むことを繰り返
す。すべての入力データx0〜x7についてバタフライ
演算が行われると、高速フーリエ変換の第1段の演算が
終了する。
【0070】同様にして、高速フーリエ変換の第2段の
演算を行う。アドレス生成部101は、アドレスADを
図8に示すように0,2,1,3,4,6,5,7の順
に生成する。バタフライ演算部104は、第1及び第2
のRAM111,112から中間データ1を1個ずつ並
列に読み出してバタフライ演算を行い、読み出したデー
タが格納されていた場所に、演算結果である2個のデー
タを中間データ2として並列に書き込む。
【0071】さらに、高速フーリエ変換の第3段の演算
を行う。アドレス生成部101は、アドレスADを図8
に示すように0,4,1,5,2,6,3,7の順に生
成する。バタフライ演算部104は、第1及び第2のR
AM111,112から中間データ2を1個ずつ並列に
読み出してバタフライ演算を行い、読み出したデータが
格納されていた場所に、演算結果である2個のデータを
出力データX0〜X7として並列に書き込む。
【0072】このようにして、フーリエ変換結果が第1
及び第2のRAM111,112にデータX0〜X7と
して得られる。
【0073】以上のように、本実施形態の高速フーリエ
変換装置は、第1及び第2の2つのRAM111,11
2を備えたことにより、バタフライ演算における2個の
入力データを常に異なるRAMから1個ずつ並列に読み
出し、2個の出力データも常に異なるRAMに1個ずつ
並列に書き込むため、RAMアクセスを実質的に高速化
することができる。
【0074】また、第1及び第2の2つのRAM11
1,112の総容量は、従来のようにRAMを1つしか
備えない場合と同じでよい。
【0075】さらに、式(1)及び式(2)に示すよう
な簡単な演算によって、アドレスADをバンク選択信号
BKとバンクアドレスBADとに変換するため、第1及
び第2の2つのRAM111,112へ並列にアクセス
することを簡単に行うことができる。
【0076】(変形例)図9は図1の高速フーリエ変換
装置の変形例の構成を示すブロック図である。この変形
例は、図1の高速フーリエ変換装置において、基数2の
バタフライ演算部104の代わりに基数4のバタフライ
演算部204を用い、アドレス生成部101をアドレス
生成部201で置き換えたものである。本変形例では、
サンプル数Nが16であり、基数4のバタフライ演算を
2段繰り返して高速フーリエ変換を行う場合について説
明する。
【0077】基数4のバタフライ演算による高速フーリ
エ変換は、基数2のバタフライ演算による高速フーリエ
変換に比べて演算量が少ない。このため、大規模な高速
フーリエ変換装置では、基数4のバタフライ演算がよく
行われている。
【0078】図10は、図9のアドレス生成部201の
構成を示すブロック図である。アドレス生成部201
は、タイミングカウンタ261と、ビット位置変換部2
62とを備えている。このアドレス生成部201は、基
数4のバタフライ演算を行うためのアドレスを生成す
る。
【0079】タイミングカウンタ261は、カウント値
CNTをビット位置変換部262に出力する。サンプル
数がNの場合、カウント値CNTは0〜N−1の整数値
を巡回する値であって、順に1ずつ値が増加し、値がN
−1に達した後は0に変化する。ビット位置変換部26
2は、何段目のバタフライ演算を行っているかに応じ
て、カウント値CNTをアドレスADに変換して出力す
る。
【0080】図11は、図10のビット位置変換部26
2の動作についての説明図である。図11(a)は第1
段のバタフライ演算の場合、図11(b)は第2段のバ
タフライ演算の場合について示している。
【0081】図11において、高速フーリエ変換のサン
プル数Nが16であるので、カウント値CNT及びアド
レスADは4ビットで表されている。カウント値CNT
の各ビットの値を、最下位ビットから最上位ビットに向
かって順にb0,b1,b2及びb3で表すこととす
る。また、図11では、0から15まで順に変化するカ
ウント値CNTと、各値に対応するアドレスADの値を
表に2進数で表示している。
【0082】第1段のバタフライ演算を行う場合は、ビ
ット位置変換部262は、図11(a)のように、アド
レスADとしてカウント値CNTをそのまま出力する。
したがって、アドレスADは、0,1,2,…,15の
順で出力される。
【0083】第2段のバタフライ演算を行う場合は、ビ
ット位置変換部262は、カウント値CNTの最下位ビ
ットb0と最下位ビットから2番目のビットb1とを組
にする一方、最下位ビットから3番目のビットb2と最
上位ビットb3とを組にし、図11(b)のように、2
つの組の位置を入れ換えて得た値をアドレスADとして
出力する。したがって、アドレスADは、0,4,8,
12,1,5,9,13,2,6,10,14,3,
7,11,15の順で出力される。
【0084】図12は図9の高速フーリエ変換装置にお
けるバタフライ演算動作を説明するシグナルフローグラ
フである。図12は、4個のデータを入力として4個の
データを出力する基数4のバタフライ演算を繰り返すこ
とにより、サンプル数Nが16の高速フーリエ変換を行
う場合の例である。この場合、2段の演算過程が必要で
あり、各段ではバタフライ演算が4回行われる。第1段
の演算結果は中間データとして第1又は第2のRAM1
11,112に一時保存される。
【0085】また、図12の中の表は、シグナルフロー
グラフ中の各データが格納される場所が第1又は第2の
RAM111,112のいずれであるかを示すととも
に、そのデータに対するアドレスAD、バンクアドレス
BAD、バンク選択信号BKの値を示している。図12
の表の各段は、それぞれシグナルフローグラフ中の同じ
段の各データに対応している。
【0086】図9の高速フーリエ変換装置において、バ
タフライ演算の対象となるデータの流れについて説明す
る。
【0087】まず、フーリエ変換の入力データx0〜x
15は、図12のシグナルフローグラフに示すように格
納される。各データは、図12の表の同一の段に示され
たように、第1又は第2のRAM111,112に格納
される。
【0088】アドレス生成部201は、図11で説明し
たように、第1段のバタフライ演算に必要となるデータ
の順を考慮してアドレスADを規則的に生成する。図1
の回路と同様に、アドレス変換部102は、式(1)及
び式(2)に従ってバンク選択信号BK及びバンクアド
レスBADを生成し、アドレス選択部103はバンクア
ドレスBAD0及びBAD1をそれぞれ第1及び第2の
RAM111,112に与える。
【0089】バタフライ演算部204は、第1及び第2
のRAM111,112からそれぞれデータを2個ずつ
読み出し、これらのデータを対象にして基数4のバタフ
ライ演算を行って、読み出したデータが格納されていた
場所に、演算結果である4個のデータを中間データとし
て書き込むことを繰り返す。第1及び第2のRAM11
1,112へのアクセスは並列に行われる。すべての入
力データx0〜x15についてバタフライ演算が行われ
ると、高速フーリエ変換の第1段の演算が終了する。
【0090】同様にして、高速フーリエ変換の第2段の
演算を行う。アドレス生成部201は、図11で説明し
たように、第2段のバタフライ演算に必要となるデータ
の順を考慮してアドレスADを規則的に生成する。バタ
フライ演算部204は、第1及び第2のRAM111,
112から中間データを2個ずつ読み出してバタフライ
演算を行い、読み出したデータが格納されていた場所
に、演算結果である4個のデータを出力データX0〜X
15として書き込む。
【0091】このようにして、フーリエ変換結果が第1
及び第2のRAM111,112にデータX0〜X15
として得られる。
【0092】以上のように、本変形例によれば、基数4
のバタフライ演算部204を用いた高速フーリエ変換装
置においても、第1及び第2の2つのRAM111,1
12を備えたことにより、バタフライ演算における4個
の入力データを2つの異なるRAMから2個ずつ並列に
読み出し、また、4個の出力データも2つの異なるRA
Mに2個ずつ並列に書き込むため、RAMアクセスを実
質的に高速化することができる。
【0093】(第2の実施形態)図13は本発明の第2
の実施形態に係る高速フーリエ変換装置の構成を示すブ
ロック図である。これは、図9の高速フーリエ変換装置
において、第1のRAM111と、第2のRAM112
との代わりに、第1のRAM311と、第2のRAM3
12と、第3のRAM313と、第4のRAM314と
を用いたものである。サンプル数Nの高速フーリエ変換
を行う場合、第1〜第4のRAM311〜314の容量
は、それぞれN/4ワードである。また、アドレス生成
部201は図9〜11において説明したものと同じであ
る。
【0094】図13の高速フーリエ変換装置の動作につ
いて説明する。
【0095】まず、フーリエ変換の対象となるデータ
は、第1〜第4のRAM311〜314に格納される。
アドレス生成部201は、図11で説明したように、バ
タフライ演算に必要となるデータの順を考慮してアドレ
スADを規則的に生成し、アドレス変換部302に出力
する。アドレスADは、従来のようにRAMを1つしか
備えない高速フーリエ変換装置の場合と同じ順に生成さ
れる。アドレス変換部302は、アドレスADをバンク
選択信号BKとバンクアドレスBADとに変換してアド
レス選択部303に出力する。バンク選択信号BKは、
同時に出力されたバンクアドレスBADが、第1〜第4
の4つのRAM311〜314のいずれにアクセスする
ためのアドレスであるかを示す2ビットの信号である。
バンクアドレスBADは、バンク選択信号BKで示され
た第1〜第4のRAM311〜314のいずれかにアク
セスするためのアドレスである。
【0096】アドレス選択部303は、バンク選択信号
BKの値に応じて、第1〜第4の4つのRAM311〜
314のうちの1つに、バンクアドレスBADをバンク
アドレスBAD0〜BAD3として出力する。バタフラ
イ演算部304は、第1〜第4の4つのRAM311〜
314のそれぞれのバンクアドレスBAD0〜BAD3
に対応したデータDO0〜DO3を並列に読み出し、こ
れらを対象として基数4のバタフライ演算を行い、演算
結果であるデータDI0〜DI3をそれぞれ第1〜第4
の4つのRAM311〜314に並列に書き込む。
【0097】次に、アドレス変換部302におけるアド
レス変換方法について説明する。
【0098】バンク選択信号BKは、アドレスADの最
下位ビットから順に2ビットずつを組とし、各組の値の
総計の最下位ビットから2ビットを取り出したものであ
る。すなわち、アドレスADがmビットの幅を持つデー
タであるとして、バンク選択信号BKは、 という式で求められる。また、バンクアドレスBAD
は、アドレスADを2ビットだけ下位へビットシフトし
たものである。すなわち、バンクアドレスBADは、 BAD[m-3:0]=AD[m-1:0]>>2 …(4) という式で求められる。例えば、サンプル数Nが16と
すれば、mの値は4である。
【0099】図14は図13の高速フーリエ変換装置に
おけるバタフライ演算動作を説明するシグナルフローグ
ラフである。図14は、4個のデータを入力として4個
のデータを出力する基数4のバタフライ演算を繰り返す
ことにより、サンプル数Nが16の高速フーリエ変換を
行う場合の例である。この場合、2段の演算過程が必要
であり、各段ではバタフライ演算が4回行われる。第1
段の演算結果は中間データとして第1〜第4のRAM3
11〜314に一時保存される。
【0100】また、図14の中の表は、シグナルフロー
グラフ中の各データが格納される場所が第1〜第4の4
つのRAM311〜314のいずれであるかを示すとと
もに、そのデータに対するアドレスAD、バンクアドレ
スBAD、バンク選択信号BKの値を示している。図1
4の表の各段は、それぞれシグナルフローグラフ中の同
じ段の各データに対応している。
【0101】図13の高速フーリエ変換装置において、
バタフライ演算の対象となるデータの流れについて説明
する。
【0102】まず、フーリエ変換の入力データx0〜x
15は、図14のシグナルフローグラフに示すように格
納される。各データは、図14の表の同一の段に示され
たように、第1〜第4の4つのRAM311〜314に
格納される。
【0103】アドレス生成部201は、図11で説明し
たように、第1段のバタフライ演算に必要となるデータ
の順を考慮してアドレスADを規則的に生成する。アド
レス変換部302は、式(3)及び式(4)に従ってバ
ンク選択信号BK及びバンクアドレスBADを生成し、
アドレス選択部303は、バンクアドレスBAD0〜B
AD3をそれぞれ第1〜第4の4つのRAM311〜3
14に与える。
【0104】バタフライ演算部304は、第1〜第4の
RAM311〜314からそれぞれデータを1個ずつ読
み出し、これらのデータを対象にして基数4のバタフラ
イ演算を行って、読み出したデータが格納されていた場
所に、演算結果である4個のデータを中間データとして
書き込むことを繰り返す。第1〜第4のRAM311〜
314へのアクセスは並列に行われる。すべての入力デ
ータx0〜x15についてバタフライ演算が行われる
と、高速フーリエ変換の第1段の演算が終了する。
【0105】同様にして、高速フーリエ変換の第2段の
演算を行う。アドレス生成部201は、図11で説明し
たように、第2段のバタフライ演算に必要となるデータ
の順を考慮してアドレスADを規則的に生成する。バタ
フライ演算部304は、第1〜第4のRAM311〜3
14から中間データを1個ずつ読み出してバタフライ演
算を行い、読み出したデータが格納されていた場所に、
演算結果である4個のデータを出力データX0〜X15
として書き込む。
【0106】このようにして、フーリエ変換結果が第1
〜第4のRAM311〜314にデータX0〜X15と
して得られる。
【0107】以上のように本実施形態によれば、大規模
な高速フーリエ変換装置で一般的な基数4のバタフライ
演算を行う高速フーリエ変換装置において、第1〜第4
の4つのRAM311〜314を備えたことにより、バ
タフライ演算における4個の入力データを第1〜第4の
4つのRAM311〜314から並列に読み出して演算
を行い、演算後の4個の出力データを第1〜第4の4つ
のRAM311〜314に並列に書き込むので、RAM
アクセスを実質的に高速化することができ、より高速な
高速フーリエ変換装置を実現することができる。
【0108】また、第1〜第4の4つのRAM311〜
314の総容量は、従来のようにRAMを1つしか備え
ない場合と同じでよい。
【0109】さらに、式(3)及び式(4)に示すよう
な簡単な演算によって、アドレスADをバンク選択信号
BKとバンクアドレスBADとに変換するため、第1〜
第4の4つのRAM311〜314へ並列にアクセスす
ることを簡単に行うことができる。
【0110】また、本実施形態では、基数4のバタフラ
イ演算の際に、4つの入力データを得るための同一のR
AMに対する読み出し、書き込みは1回ずつでよく、図
9の高速フーリエ変換装置のように、読み出し、書き込
みを2回ずつ行う必要がないため、基数4のバタフライ
演算を行う際のRAMアクセスをより高速に行うことが
できる。
【0111】(第3の実施形態)本実施形態は、第2の
従来例に開示された発明と、本発明の第1の実施形態で
示したような、高速フーリエ変換処理に複数のRAMを
用いる高速フーリエ変換装置とを組み合わせたものであ
る。
【0112】図15は本発明の第3の実施形態に係る高
速フーリエ変換装置の構成を示すブロック図である。こ
れは、図1の高速フーリエ変換装置において、ビットリ
バース部605を更に備えたものである。また、アドレ
ス生成部101は図1〜3において説明したものと同じ
である。本実施形態では、アドレス生成部101の出力
を第1のアドレスADと称する。
【0113】ビットリバース部605は、第1のアドレ
スADを入力とし、これを第2のアドレスADRに変換
してアドレス変換部102に出力する。ビットリバース
部605は、第1のアドレスADを、各ビットの位置を
必要に応じて入れ換える処理を行って第2のアドレスA
DRに変換する。ここでは、この処理の例として、ビッ
トリバースと呼ばれる処理を行う。
【0114】図16はビットリバース部605における
ビットリバース処理についての説明図である。図16
(a)は奇数回目の高速フーリエ変換におけるビットリ
バース処理について、図16(b)は偶数回目の高速フ
ーリエ変換におけるビットリバース処理について説明す
る図である。
【0115】ここでは、高速フーリエ変換のサンプル数
Nが8であるとし、図16において、第1及び第2のア
ドレスAD及びADRは3ビットで表されている。第1
のアドレスADの各ビットの値を、最下位ビットから最
上位ビットに向かって順にa0,a1及びa2で表すこ
ととする。また、図16では、第1のアドレスADと第
2のアドレスADRとの対応を表に2進数で表示してい
る。
【0116】奇数回目の高速フーリエ変換を行う場合
は、ビットリバース部605は、図16(a)のよう
に、第1のアドレスADをそのまま第2のアドレスAD
Rとして出力する。
【0117】偶数回目の高速フーリエ変換を行う場合
は、ビットリバース部605は、図16(b)のよう
に、各ビットa0〜a2の位置を入れ換える。すなわ
ち、最下位ビットから最上位ビットに向かって、第1の
アドレスADにおいてはa0,a1,a2の順であった
ものを、第2のアドレスADRにおいてはa2,a1,
a0のように逆の順になるようにビットの位置を入れ換
える。
【0118】図17は、図15の高速フーリエ変換装置
におけるバタフライ演算動作を説明するシグナルフロー
グラフである。図17は、基数2のバタフライ演算を繰
り返すことにより、サンプル数Nが8の高速フーリエ変
換を複数回行う場合について示している。この場合、1
回の高速フーリエ変換において3段の演算過程が必要で
あり、各段ではバタフライ演算が4回行われる。第1段
の演算結果は中間データ1として、第2段の演算結果は
中間データ2として、第1又は第2のRAM111,1
12に一時保存される。
【0119】また、図17の中の表は、シグナルフロー
グラフ中の各データが格納される場所が第1又は第2の
RAM111,112のいずれであるかを示すととも
に、そのデータに対する第2のアドレスADR、バンク
アドレスBAD、バンク選択信号BKの値を示してい
る。図17の表の各段は、それぞれシグナルフローグラ
フ中の同じ段の各データに対応している。
【0120】1回の高速フーリエ変換の対象となるNサ
ンプルのデータを1シンボルといい、シンボル内のデー
タの順序はインデックスで表される。1回目の高速フー
リエ変換において、入力データx0〜x7はそれぞれイ
ンデックスが0〜7であり、出力データX0〜X7は、
それぞれインデックスが0〜7である。
【0121】一般に高速フーリエ変換では、入力データ
と同一のインデックスを持つ出力データは異なる場所に
格納される。図17の第1回目の高速フーリエ変換にお
いて、入力データのインデックスが上から0,4,2,
6,1,5,3,7の順であるのに対し、出力データの
インデックスは上から0,1,2,3,4,5,6,7
の順となる。
【0122】2回目の高速フーリエ変換を行うために
は、一般に、この出力データのインデックスの順を再び
入力データのインデックスの順と同じにする必要があ
る。このため、データ並び替え用のRAMを用いて、出
力データの並び替えを行っていた。
【0123】本実施形態では、図16(b)のように第
1のアドレスADを第2のアドレスADRにビットリバ
ース処理を行って変換するため、出力データの並び替え
を行う必要がなく、出力データX0〜X7はそれぞれ次
回の高速フーリエ変換の入力データx0〜x7として用
いられる。
【0124】例えば、第1段のバタフライ演算について
見ると、1回目の高速フーリエ変換において第2のアド
レスADRは0,1,2,3,4,5,6,7の順に変
化し、2回目の高速フーリエ変換において第2のアドレ
スADRは0,4,2,6,1,5,3,7の順に変化
する。したがって、いずれの高速フーリエ変換において
も、入力データx0とx4との組、入力データx2とx
6との組、入力データx1とx5との組、及び入力デー
タx3とx7との組を入力とするバタフライ演算が行わ
れる。第2段、第3段のバタフライ演算についても同様
に、1回目及び2回目の高速フーリエ変換において、同
じインデックスの入力データから得られた中間データを
対象にしたバタフライ演算が行われる。
【0125】2回目の高速フーリエ変換における出力デ
ータは、インデックスの順序が1回目の高速フーリエ変
換の入力データと同じになる。その後、奇数回目の高速
フーリエ変換では1回目の高速フーリエ変換と同様の処
理を行い、偶数回目の高速フーリエ変換では2回目の高
速フーリエ変換と同様の処理を行う。
【0126】このように、本実施形態の高速フーリエ変
換装置によると、出力データと次回の高速フーリエ変換
における入力データとでインデックスの順序を同一のも
のとすることができるので、出力データを並び替える必
要がなく、データの並び替えを行うためのRAMを用い
る必要がなくなる。また、データ出力と次回の高速フー
リエ変換のデータ入力とをオーバーラップして行うこと
ができるため、連続した高速フーリエ変換処理が可能に
なる。
【0127】また、本実施形態においても、第1の実施
形態と同様に、基数2のバタフライ演算における2個の
入力データを常に異なるRAMから1個ずつ並列に読み
出し、2個の出力データも常に異なるRAMに1個ずつ
並列に書き込むため、RAMアクセスを実質的に高速化
することができる。
【0128】図18は基数4のバタフライ演算を行う場
合の、ビットリバース部におけるビットリバース処理に
ついての説明図である。このビットリバース部は、図1
5において、バタフライ演算部104に代えて基数4の
バタフライ演算部204を用いる場合に、ビットリバー
ス部605に代えて用いられるものである。図18
(a)は奇数回目の高速フーリエ変換におけるビットリ
バース処理について、図18(b)は偶数回目の高速フ
ーリエ変換におけるビットリバース処理について説明す
る図である。
【0129】ここでは、高速フーリエ変換のサンプル数
Nが16であるとし、図18において、第1及び第2の
アドレスAD及びADRは4ビットで表されている。第
1のアドレスADの各ビットの値を、最下位ビットから
最上位ビットに向かって順にa0,a1,a2及びa3
で表すこととする。
【0130】奇数回目の高速フーリエ変換を行う場合
は、ビットリバース部は、図18(a)のように、第1
のアドレスADをそのまま第2のアドレスADRとして
出力する。
【0131】偶数回目の高速フーリエ変換を行う場合
は、ビットリバース部は、図18(b)のように、各ビ
ットa0〜a3の位置を入れ換える。すなわち、最下位
ビットから順に2ビットずつをグループにして、最下位
のグループから最上位のグループに向かってのグループ
の順序が逆の順序になるように、各グループの位置を入
れ換える。
【0132】図18のビットリバース部を用いることに
より、基数4のバタフライ演算を行う場合においても、
基数2のバタフライ演算を行う場合と同様に、出力デー
タを並べ替える必要がなくなる。また、第2の実施形態
のように、第1〜第4の4つのRAMを備えるようにし
てもよい。
【0133】また、基数2のバタフライ演算と基数4の
バタフライ演算とを組み合わせて高速フーリエ変換を行
う場合も同様である。この場合、ビットリバース部にお
いて、第1のアドレスADを1ビット又は2ビットずつ
グループにしたものに対して、何回目の高速フーリエ変
換であるかに応じた回数(0回を含む)のビットリバー
ス処理を行う。1ビットのグループ数又は2ビットのグ
ループ数は、1回の高速フーリエ変換において、それぞ
れ基数2又は基数4のバタフライ演算を行う段数に応じ
た数である。
【0134】なお、ビットリバース処理の詳細について
は、第2の従来例(特開平11−110370号公報)
に開示されている。
【0135】基数2のバタフライ演算を行う場合には、
1ビットを単位としてビットリバースを行う。式(1)
で求められるバンク選択信号BKは、値が“1”である
ビットの数によって決まるので、バンク選択信号BKの
値はビットリバースを行っても変わらない。基数4のバ
タフライ演算を行う場合には、2ビットを1グループに
してグループ単位でビットリバースを行う。式(3)で
求められるバンク選択信号BKは、2ビットを1グルー
プにした後に加算して求められるので、バンク選択信号
BKの値はビットリバースを行っても変わらない。した
がって、ビットリバースを行う場合においても、ビット
リバースを行わない場合と同様に、複数のRAMに同時
にアクセスしてRAMアクセスを実質的に高速化するこ
とができる。
【0136】アドレス生成部101,201内のビット
位置変換部161,261におけるビットを入れ換える
操作についても同様のことが言える。すなわち、ビット
位置変換部161においては1ビットを単位としてビッ
トの位置を入れ換え、ビット位置変換部261において
は2ビットを1グループにしたものの位置を入れ換える
ため、これらの操作はバンク選択信号BKの値に影響し
ない。したがって、各段のバタフライ演算において、複
数のRAMに同時にアクセスすることができる。
【0137】なお、以上の実施形態における高速フーリ
エ変換は、広義の高速フーリエ変換であり、時間領域か
ら周波数領域への変換である狭義の高速フーリエ変換ば
かりではなく、周波数領域から時間領域への変換である
逆高速フーリエ変換をも含む。したがって、狭義の高速
フーリエ変換及び逆高速フーリエ変換のいずれにおいて
も、本発明を適用することができる。
【0138】また、以上の実施形態においては、時間間
引き方法による高速フーリエ変換を行う場合について説
明したが、周波数間引き方法による高速フーリエ変換を
行う場合に本発明を適用することも同様に可能である。
【0139】
【発明の効果】以上のように、高速フーリエ変換装置に
おいて、フーリエ変換の入出力データ及びバタフライ演
算時の中間データを格納するRAMを複数備えているた
め、複数のRAMに対して並列に読み出し、書き込みを
することができる。このため、多ポートRAMを用いる
ことなく、複数のデータに同時に並列してアクセスを行
うことができ、RAMアクセスを高速化することができ
る。したがって、高速フーリエ変換装置をより高速化す
ることが可能となる。
【図面の簡単な説明】
【図1】本発明の第1の実施形態に係る高速フーリエ変
換装置の構成を示すブロック図である。
【図2】図1のアドレス生成部の構成を示すブロック図
である。
【図3】図2のビット位置変換部の動作についての説明
図である。
【図4】アドレス変換部及びアドレス選択部の具体的な
構成の例を示す回路図である。
【図5】図1の高速フーリエ変換装置におけるバタフラ
イ演算動作を説明するシグナルフローグラフである。
【図6】バタフライ演算を説明する図である。
【図7】アドレス生成部の動作を示すタイミングチャー
トである。
【図8】図1の高速フーリエ変換装置の動作を示すタイ
ミングチャートである。
【図9】図1の高速フーリエ変換装置の変形例の構成を
示すブロック図である。
【図10】図9のアドレス生成部の構成を示すブロック
図である。
【図11】図10のビット位置変換部の動作についての
説明図である。
【図12】図9の高速フーリエ変換装置におけるバタフ
ライ演算動作を説明するシグナルフローグラフである。
【図13】本発明の第2の実施形態に係る高速フーリエ
変換装置の構成を示すブロック図である。
【図14】図13の高速フーリエ変換装置におけるバタ
フライ演算動作を説明するシグナルフローグラフであ
る。
【図15】本発明の第3の実施形態に係る高速フーリエ
変換装置の構成を示すブロック図である。
【図16】ビットリバース部におけるビットリバース処
理についての説明図である。
【図17】図15の高速フーリエ変換装置におけるバタ
フライ演算動作を説明するシグナルフローグラフであ
る。
【図18】基数4のバタフライ演算を行う場合の、ビッ
トリバース部におけるビットリバース処理についての説
明図である。
【図19】従来の高速フーリエ変換装置の構成を示すブ
ロック図である。
【符号の説明】
101,201 アドレス生成部 102,302 アドレス変換部 103,303 アドレス選択部 104 バタフライ演算部(基数2) 204,304 バタフライ演算部(基数4) 111,311 第1のRAM 112,312 第2のRAM 313 第3のRAM 314 第4のRAM 121 排他的論理和ゲート 122 1ビット右シフト回路 131,132 イネーブル付きDフリップフロップ 133,134 Dフリップフロップ 135,136 選択回路 137 論理否定ゲート 161,261 タイミングカウンタ 162,262 ビット位置変換部 605 ビットリバース部 AD アドレス、第1のアドレス ADR 第2のアドレス BK バンク選択信号 BAD バンクアドレス BAD0R,BAD1R,BAD0W,BAD1W,B
AD0,BAD1 バンクアドレス CNT カウント値 DO0,DO1,DI0,DI1 データ NWE 選択信号

Claims (10)

    【特許請求の範囲】
  1. 【請求項1】 入出力データ及び演算時の中間データを
    格納する第1及び第2の2つのRAM(Random-Access
    Memory)と、 アドレスを生成するアドレス生成部と、 前記アドレスに基づいて、バンク選択信号とバンクアド
    レスとを生成して出力するアドレス変換部と、 前記バンク選択信号の値に応じて、前記バンクアドレス
    を前記第1及び第2のRAMのうちのいずれかへ供給す
    るアドレス選択部と、 前記第1及び第2のRAMが格納する、前記バンクアド
    レスで指定されるデータを対象にして、基数2のバタフ
    ライ演算を行うバタフライ演算部とを備えた高速フーリ
    エ変換装置。
  2. 【請求項2】 入出力データ及び演算時の中間データを
    格納する第1及び第2の2つのRAMと、 アドレスを生成するアドレス生成部と、 前記アドレスに基づいて、バンク選択信号とバンクアド
    レスとを生成して出力するアドレス変換部と、 前記バンク選択信号の値に応じて、前記バンクアドレス
    を前記第1及び第2のRAMのうちのいずれかへ供給す
    るアドレス選択部と、 前記第1及び第2のRAMが格納する、前記バンクアド
    レスで指定されるデータを対象にして、基数4のバタフ
    ライ演算を行うバタフライ演算部とを備えた高速フーリ
    エ変換装置。
  3. 【請求項3】 請求項1又は2に記載の高速フーリエ変
    換装置において、 前記アドレス変換部は、 前記アドレスの各ビット間の排他的論理和をバンク選択
    信号として出力し、 前記アドレスを1ビットだけ下位へビットシフトしたも
    のをバンクアドレスとして出力するものであることを特
    徴とする高速フーリエ変換装置。
  4. 【請求項4】 入出力データ及び演算時の中間データを
    格納する第1〜第4の4つのRAMと、 アドレスを生成するアドレス生成部と、 前記アドレスに基づいて、バンク選択信号とバンクアド
    レスとを生成して出力するアドレス変換部と、 前記バンク選択信号の値に応じて、前記バンクアドレス
    を前記第1〜第4のRAMのうちのいずれかへ供給する
    アドレス選択部と、 前記第1〜第4のRAMが格納する、前記バンクアドレ
    スで指定されるデータを対象にして、基数4のバタフラ
    イ演算を行うバタフライ演算部とを備えた高速フーリエ
    変換装置。
  5. 【請求項5】 請求項4に記載の高速フーリエ変換装置
    において、 前記アドレス変換部は、 前記アドレスの最下位ビットから順に2ビットずつを組
    とし、各組の値の総計の最下位ビットから2ビットをバ
    ンク選択信号として出力し、 前記アドレスを2ビットだけ下位へビットシフトしたも
    のをバンクアドレスとして出力するものであることを特
    徴とする高速フーリエ変換装置。
  6. 【請求項6】 入出力データ及び演算時の中間データを
    格納する第1及び第2の2つのRAMと、 第1のアドレスを生成するアドレス生成部と、 前記第1のアドレスを、そのビットの位置を入れ換える
    ビットリバース処理を行うことにより、第2のアドレス
    に変換して出力するビットリバース部と、 前記第2のアドレスに基づいて、バンク選択信号とバン
    クアドレスとを生成して出力するアドレス変換部と、 前記バンク選択信号の値に応じて、前記バンクアドレス
    を前記第1及び第2のRAMのうちのいずれかへ供給す
    るアドレス選択部と、 前記第1及び第2のRAMが格納する、前記バンクアド
    レスで指定されるデータを対象にして、バタフライ演算
    を行うバタフライ演算部とを備えた高速フーリエ変換装
    置。
  7. 【請求項7】 請求項6に記載の高速フーリエ変換装置
    において、 前記アドレス変換部は、 前記第2のアドレスの各ビット間の排他的論理和をバン
    ク選択信号として出力し、 前記第2のアドレスを1ビットだけ下位へビットシフト
    したものをバンクアドレスとして出力するものであるこ
    とを特徴とする高速フーリエ変換装置。
  8. 【請求項8】 請求項6又は7に記載の高速フーリエ変
    換装置において、 前記ビットリバース部は、 高速フーリエ変換処理後の出力データと、次の高速フー
    リエ変換処理の入力データとに対する前記第2のアドレ
    スが、シンボル内のデータの順序を表すインデックスが
    同一の場合は同一となるように、前記第1のアドレスに
    ビットリバース処理を行うことを特徴とする高速フーリ
    エ変換装置。
  9. 【請求項9】 請求項6〜8のいずれかに記載の高速フ
    ーリエ変換装置において、 前記ビットリバース部は、 前記第1のアドレスを1以上のビットを含むグループに
    分割し、グループ単位で位置を入れ換えるビットリバー
    ス処理を行うことを特徴とする高速フーリエ変換装置。
  10. 【請求項10】 請求項6〜9のいずれかに記載の高速
    フーリエ変換装置において、 前記バタフライ演算部は、 基数2又は基数4のバタフライ演算を行うことを特徴と
    する高速フーリエ変換装置。
JP2000171643A 1999-06-10 2000-06-08 高速フーリエ変換装置 Pending JP2001056806A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2000171643A JP2001056806A (ja) 1999-06-10 2000-06-08 高速フーリエ変換装置

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
JP11-163257 1999-06-10
JP16325799 1999-06-10
JP2000171643A JP2001056806A (ja) 1999-06-10 2000-06-08 高速フーリエ変換装置

Publications (1)

Publication Number Publication Date
JP2001056806A true JP2001056806A (ja) 2001-02-27

Family

ID=26488760

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2000171643A Pending JP2001056806A (ja) 1999-06-10 2000-06-08 高速フーリエ変換装置

Country Status (1)

Country Link
JP (1) JP2001056806A (ja)

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100836050B1 (ko) * 2001-05-23 2008-06-09 엘지전자 주식회사 고속 푸리에 변환 연산 장치
US9785614B2 (en) 2013-01-23 2017-10-10 Nec Corporation Fast Fourier transform device, fast Fourier transform method, and recording medium storing fast Fourier transform program
US9880975B2 (en) 2013-12-13 2018-01-30 Nec Corporation Digital filter device, digital filter processing method, and storage medium having digital filter program stored thereon
US9934199B2 (en) 2013-07-23 2018-04-03 Nec Corporation Digital filter device, digital filtering method, and storage medium having digital filter program stored thereon
US9952648B2 (en) 2013-09-24 2018-04-24 Nec Corporation Digital filtering device, digital filtering method, and storage media storing program
WO2019031418A1 (ja) 2017-08-07 2019-02-14 日本電気株式会社 高速フーリエ変換装置、データ並べ替え処理装置、高速フーリエ変換処理方法およびプログラム記録媒体
US10853445B2 (en) 2016-04-19 2020-12-01 Nec Corporation Digital filter device, digital filtering method, and program recording medium
US11604852B2 (en) 2017-12-27 2023-03-14 Nec Corporation Signal processing apparatus, method, program, and recording medium

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100836050B1 (ko) * 2001-05-23 2008-06-09 엘지전자 주식회사 고속 푸리에 변환 연산 장치
US9785614B2 (en) 2013-01-23 2017-10-10 Nec Corporation Fast Fourier transform device, fast Fourier transform method, and recording medium storing fast Fourier transform program
US9934199B2 (en) 2013-07-23 2018-04-03 Nec Corporation Digital filter device, digital filtering method, and storage medium having digital filter program stored thereon
US9952648B2 (en) 2013-09-24 2018-04-24 Nec Corporation Digital filtering device, digital filtering method, and storage media storing program
US9880975B2 (en) 2013-12-13 2018-01-30 Nec Corporation Digital filter device, digital filter processing method, and storage medium having digital filter program stored thereon
US10853445B2 (en) 2016-04-19 2020-12-01 Nec Corporation Digital filter device, digital filtering method, and program recording medium
WO2019031418A1 (ja) 2017-08-07 2019-02-14 日本電気株式会社 高速フーリエ変換装置、データ並べ替え処理装置、高速フーリエ変換処理方法およびプログラム記録媒体
US11604852B2 (en) 2017-12-27 2023-03-14 Nec Corporation Signal processing apparatus, method, program, and recording medium

Similar Documents

Publication Publication Date Title
US6115728A (en) Fast fourier transforming apparatus and method, variable bit reverse circuit, inverse fast fourier transforming apparatus and method, and OFDM receiver and transmitter
US7233968B2 (en) Fast fourier transform apparatus
US7164723B2 (en) Modulation apparatus using mixed-radix fast fourier transform
JP2950703B2 (ja) 高速フーリエ変換用ディジット反転のためのアドレス発生器及び反転フィールドシーケンス発生器並びにディジット反転シーケンス信号発生方法
KR100836050B1 (ko) 고속 푸리에 변환 연산 장치
IT8322620A1 (it) Circuito di verifica di ridondanza ciclica in parallelo
JP2001056806A (ja) 高速フーリエ変換装置
JP2002351858A (ja) 処理装置
EP0936564A2 (en) Bit and digit reversal methods
JP2008186396A (ja) 高速フーリエ変換装置
EP1481319B1 (en) Method and apparatus for parallel access to multiple memory modules
US7979485B2 (en) Circuit for fast fourier transform operation
US20200334321A1 (en) Signal processing apparatus, method, program, and recording medium
JP3065979B2 (ja) 高速フーリエ変換装置および方法、可変ビットリバース回路、逆高速フーリエ変換装置および方法、並びにofdm受信および送信装置
JPS63244245A (ja) 並列アクセス可能な多次元メモリ装置
CN1601913B (zh) 平行化循环冗余码计算方法及系统
US6789097B2 (en) Real-time method for bit-reversal of large size arrays
JP4159761B2 (ja) Fftのためのインプレイスメモリ管理
US20210342102A1 (en) Signal processing apparatus, method, program, and recording medium
KR100484418B1 (ko) 고속푸리에변환장치및방법,가변비트리버스회로,역고속푸리에변환장치및방법과직교주파수분할다중수신및송신장치
US8572148B1 (en) Data reorganizer for fourier transformation of parallel data streams
EP4325726A1 (en) Interleave circuit and communication device
JP2009140040A (ja) データ処理装置
JPH05266059A (ja) アドレス発生回路
JP2022152001A (ja) 高速フーリエ変換装置及びデジタルフィルタ装置

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20050301

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20050502

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20050920

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20051118

A911 Transfer of reconsideration by examiner before appeal (zenchi)

Free format text: JAPANESE INTERMEDIATE CODE: A911

Effective date: 20051129

A912 Removal of reconsideration by examiner before appeal (zenchi)

Free format text: JAPANESE INTERMEDIATE CODE: A912

Effective date: 20051228