JP2001101160A - 高速フーリエ変換用データ記憶パターン - Google Patents

高速フーリエ変換用データ記憶パターン

Info

Publication number
JP2001101160A
JP2001101160A JP2000245248A JP2000245248A JP2001101160A JP 2001101160 A JP2001101160 A JP 2001101160A JP 2000245248 A JP2000245248 A JP 2000245248A JP 2000245248 A JP2000245248 A JP 2000245248A JP 2001101160 A JP2001101160 A JP 2001101160A
Authority
JP
Japan
Prior art keywords
pattern
numbers
memory
storing
coefficient
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
JP2000245248A
Other languages
English (en)
Inventor
David Hertz
デヴィッド ハーツ
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.)
Rafael Advanced Defense Systems Ltd
State of Israel
Original Assignee
Rafael Advanced Defense Systems Ltd
State of Israel
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 Rafael Advanced Defense Systems Ltd, State of Israel filed Critical Rafael Advanced Defense Systems Ltd
Publication of JP2001101160A publication Critical patent/JP2001101160A/ja
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F17/00Digital computing or data processing equipment or methods, specially adapted for specific functions
    • G06F17/10Complex mathematical operations
    • G06F17/14Fourier, Walsh or analogous domain transformations, e.g. Laplace, Hilbert, Karhunen-Loeve, transforms
    • G06F17/141Discrete Fourier transforms
    • G06F17/142Fast Fourier transforms, e.g. using a Cooley-Tukey type algorithm

Landscapes

  • Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computational Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Pure & Applied Mathematics (AREA)
  • Data Mining & Analysis (AREA)
  • Theoretical Computer Science (AREA)
  • Discrete Mathematics (AREA)
  • Algebra (AREA)
  • Databases & Information Systems (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Complex Calculations (AREA)

Abstract

(57)【要約】 (修正有) 【課題】 高速フーリエ変換、より詳細には、特にイン
プレースFFTアルゴリズムのVLSI実装で役に立つ
データ記憶の方法を提供する。 【解決手段】 一連のN=Bn個の数(ここで、Bは2
の累乗、nは正の整数である)のFFTを実行する方
法。M(ここで、MはBよりも小さい2の累乗である)
個のインプレースメモリのBn個の数のための記憶位置
のパターンは反復して選択される。B/M個の連続する
セットの各々内のBn- 1個の数を記憶するパターンは、
相互に同一であり、任意の他のセットのBn-1個の数を
記憶するパターンとは異なる。この数は記憶位置に記憶
される。インプレース基数BのDFTは、記憶位置に記
憶された値のN/B個のグループの各々で実行される。

Description

【発明の詳細な説明】
【0001】(発明の分野および背景)本発明は、高速
フーリエ変換、より詳細には、特にインプレースFFT
アルゴリズムのVLSI実装で役に立つデータ記憶の方
法に関するものである。1965年にCooleyおよ
びTukeyによりその再発見以来、高速フーリエ変換
(FFT)は、ディジタル信号処理のような分野で幅広
い用途があった。FFTの最新技術の一般的な概説が、
あたかもここで完全に詳述されるように全ての目的に対
して参照して組み込まれるP.Duhamelおよび
M.Vetterli著の「高速フーリエ変換:チュー
トリアル概説および最新技術」(“Fast Four
ier Transforms:a tutorial
review and a state of th
e art”,SignalProcessing v
ol.19,pp.259−299(1990))にあ
った。1つの特定の種類のFFTはインプレースCoo
ley‐Tukey FFTである。Duhamelお
よびVetterliの図1から改造された図1は、こ
の種のFFTを示している。この特定の例は、15点の
FFTの実装を一連の基数5および基数3の離散的フー
リエ変換(DFT)として示している。15の複素数x
0〜x14の入力シーケンスは、図示されるような3行お
よび5列のアレイ10の列順に記憶されている。このF
FTの第1のステップは、アレイ10の3行の3つの基
数5のDFT12である。DFT12はその場で実行さ
れる。すなわち、アレイ10の各行に記憶された数は読
み出され、変換され、変換された数はアレイ10の元の
数と置換する。このFFTの第2のステップは、いまア
レイ10に記憶されている各数とexp(−2πj/1
5)(ここで、jは−1の平方根である)の整数累乗で
あるツウイドル係数wの3行、5列のアレイ14からの
対応する「ツウイドル係数」とのインプレースでの乗算
でもある。(一般に、ツウイドル係数はexp(−2π
j/N)(ここで、NはFFTの長さである)の整数累
乗である。)このFFTの第3のステップは、いまアレ
イ10に記憶されている5列の5つの基数3のDFT1
6である。この第3のステップもその場で実行される。
すなわち、アレイ10の各列に記憶されている数が読み
出され、変換され、変換された数は基数3のDFTより
前にアレイ10に記憶されている数と置換する。15の
複素数X0〜X14の変換の最終出力シーケンスは、図示
されるような行順でアレイ10から読み出される。Du
hamelおよびVetterliによって示されるよ
うに、FFTの実行の最適化に注がれる努力の大部分
は、実行される算術演算の数を減らす方に向けられた。
FFT実行の正味の速度は、数がメモリから引き出さ
れ、メモリに記憶される速度によっても決まる。これ
は、DFTが専用ハードウェアによって実行される超大
規模集積化(VLSI)実装の場合に特に当てはまる。
したがって、インプレースFFTに使用された数を記憶
し、引き出す有効な方法に対して幅広く認識された要求
があり、この方法を有することは非常に有利である。
【0002】(発明の概要)本発明によれば、(a)M
(ここで、MはBよりも小さい2の累乗である)個のイ
ンプレースメモリのBn個の数のための記憶位置のパタ
ーンを反復して選択するステップであって、n=1なら
ば、各インプレースメモリが、B個の数の異なるB/M
個のための記憶位置を有し、かつnが1より大きいなら
ば、Bn個の数を記憶するパターンがBn-1個の数を記憶
するB個のパターンの連結であり、nが1よりも大きい
場合、Bn個の数を記憶するパターンにはBn-1個の数を
記憶するB/M個の連続するセットのパターンがあり、
B/M個の連続するセットの各々内のBn-1個の数を記
憶するパターンが、相互に同一であり、かつ任意の他の
セットのBn-1個の数を記憶するパターンとは異なるこ
とと、(b)この数を記憶位置に記憶するステップと、
(c)記憶位置に記憶された値のN/B個のグループの
各々のインプレース基数BのDFTを実行するステップ
と、(d)nが1よりも大きいならば、記憶位置に記憶
されたN/B個の値のB個のグループの各々の長さN/
BのDFTを実行するステップとを含み、各グループが
インプレースメモリの各々に記憶されたN/(MB)個
の値を含む一連のN=Bn個の数(ここで、Bは2の累
乗であり、かつnは正の整数である)のFFTを実行す
る方法が提供される。
【0003】本発明によれば、(a)M(ここで、Mは
Bよりも小さい2の累乗である)個のインプレースメモ
リと、(b)前記記憶位置の反復して得られる複数のパ
ターンの中の1つによる前記インプレースメモリの対応
する記憶位置にN個の数を記憶する複数の命令を含むソ
フトウェアモジュールであって、n=1に対する前記パ
ターンが、N個の数の異なるB/M個が各前記インプレ
ースメモリに記憶されるようなものであり、かつ1より
も大きいnに対する前記パターンがn−1に対する前記
パターンのB個の連結であり、1よりも大きいnの場
合、前記パターンにはB/M個の連続するセットの前記
パターンがあり、前記B/M個の連続するセットの各々
内のn−1に対する前記パターンが、相互に同一であ
り、かつ任意の他の前記セットのn−1に対する前記パ
ターンと異なることと、(c)命令を実行し、それによ
ってN個の値をN個の記憶位置に記憶する主プロセッサ
と、(d)ある時点でB個をとられたN個の値の基数B
のFFTを実行する少なくとも1つのFFTプロセッサ
とを含む一連のN=Bn個の数(ここで、Bは2の累乗
であり、かつnは正の整数である)のFFTを実行する
装置が提供される。本発明によれば、(a)各複素数を
最上位係数および最下位係数に分解するステップと、
(b)最上位係数を最上位係数メモリに記憶するステッ
プと、(c)各最下位係数の少なくとも一部を最下位係
数メモリに記憶するステップとを含む複数の複素数のユ
ニット絶対値を計算処理に供給する方法が提供される。
【0004】本発明によれば、(a)B個の数に対する
ベース記憶パターンから始まるM(ここで、MはBより
も小さい2の累乗である)個のインプレースメモリのB
n+1個の数に対する記憶位置のパターンを反復して選択
するステップであって、各インプレースメモリがB個の
数の異なるB/M個のための記憶位置を有し、Bm(こ
こで、mは1よりも大きい整数である)個の数を記憶す
る各々の次に選択されるパターンがBm-1個の数を記憶
するB個のパターンの連結であり、Bm個の数を記憶す
るパターンにはBm-1個の数を記憶するB/M個の連続
するセットのパターンがあり、B/M個の連続するセッ
トの各々内のBm-1個の数を記憶するパターンが、相互
に同一であり、かつ任意の他のセットのBm-1個の数を
記憶するパターンとは異なることと、(b)N個の数を
n+1個の数のためのN個の記憶位置に記憶するステッ
プと、(c)N個の記憶位置に記憶された値のN/C個
のグループの各々のインプレース基数CのDFTを実行
するステップと、(d)N個の記憶位置に記憶されたB
n個の値のC個のグループの各々の長さBnのDFTを実
行するステップとを含み、各グループが、インプレース
メモリの各々に記憶されたBn/M個の値を含む一連の
N=CBn(ここで、Bは2の累乗、CはBよりも小さ
い2の累乗、かつnは正の整数である)個の数のFFT
を実行する方法が提供される。
【0005】本発明によれば、(a)M(ここで、Mは
Bよりも小さい2の累乗である)個のインプレースメモ
リと、(b)Bn+1個の数を記憶する記憶位置の反復し
て得られたパターンに従ってインプレースメモリの対応
する記憶位置にN個の数を記憶する複数の命令を含むソ
フトウェアモジュールであって、反復誘導のベースパタ
ーンが、B個の数の異なるB/M個がインプレースメモ
リの各々に記憶されるようなB個の数を記憶するパター
ンであり、かつBm(ここで、mは1よりも大きい整数
である)個の数を記憶する各々の次に得られたパターン
がBm-1個の数を記憶するパターンのB個の連結であ
り、Bm個の数を記憶するパターンにはBm -1個の数を記
憶するB/M個の連続するセットのパターンがあり、B
/M個の連続するセットの各々内のBm-1個の数を記憶
するパターンが、相互に同一であり、かつ任意の他のセ
ットのBm-1個の数を記憶する前記パターンとは異なる
ことと、(c)命令を実行し、それによってN個の値を
記憶位置のN個に記憶する主プロセッサと、(d)
(i)ある時点でB個をとられたN個の値の基数BのF
FT、および(ii)ある時点でC個をとられたN個の
値の基数CのFFTを実行する少なくとも1つのFFT
プロセッサとを含む一連のN=CBn(ここで、Bは2
の累乗、CはBよりも小さい2の累乗、かつnは正の整
数である)個の数のFFTを実行する装置が提供され
る。
【0006】本発明の主要な実施形態は、N=Bn(こ
こで、Bは2の累乗である)個の数の入力シーケンスの
FFTに向けられる。これらの数は、好ましくはデュア
ルポートメモリであるが、任意には単一ポートメモリで
あるM個のランダムアクセスメモリを使用する効率的な
記憶および引き出しができるようにアレイ10に記憶さ
れている。デュアルポートメモリは、2つの値が2つの
異なる記憶位置に同時に書き込みができるかあるいは2
つの値が2つの異なる記憶位置で同時に読みだしができ
るランダムアクセス装置である。入出力数および中間値
が複素数であるために、各記憶位置は、2つの実値、す
なわちそれに記憶された複素数値の実数部および虚数部
に十分な空間を含んでいる。記憶位置のアドレスは2つ
のデータバス上に備えられている。入力数、出力数およ
び中間値を記憶するために使用されるこれらのランダム
アクセスメモリは、ここでは「インプレースメモリ」と
呼ばれる。
【0007】FFTのあらゆる工程で、複素数値の等し
い数は、M個のインプレースメモリの各々に記憶され、
個別の複素数値(単一ポートの場合)あるいは複素数値
対(デュアルポートの場合)は、常に全てのM個のイン
プレースメモリから同時に引き出され、常に全てのM個
のインプレースメモリに同時に記憶されている。場合n
=1(N=B1=B)に対する基本記憶パターンは、M
個のインプレースメモリの各々に記憶されたN/M=B
/M個の複素数を有する。n>1に対する記憶パターン
は、n=1記憶パターンから反復して形成される。n=
1の基本的な場合、1つの基数BのFFT(あるいはD
FT)は、所望の変換を行うのに十分である。nが1よ
りも大きい場合、全FFTは、前述のように一連の基数
BのDFTとして実行される。第1のステップの行の方
へのDFTは基数BのDFTである。第3のステップの
列の方へのDFTは基数BのDFTで構成される。n=
2の場合、列の方へのDFTは基数BのDFTである。
nが2よりも大きい場合、列の方へのDFTは基数Bの
DFTから反復して形成される。基数BのDFTは専用
プロセッサのようなハードウェアで実行されてもよいし
あるいは基数BのFFTとしてソフトウェアで実行され
てもよい。
【0008】より一般的には、本発明の範囲は、CBn
(ここでは、Bは2の累乗であり、CはBよりも小さい
2の累乗である)個の入力数のシーケンスのFFTを含
む。Bn+1個の入力数のための記憶位置は、本発明の主
要実施形態におけるように反復して決定され、記憶位置
の中のCBn個だけが、好ましくはアレイ10に数を記
憶するために使用されるメモリ上の負荷をバランスさせ
るように実際に使用される。例えば、本発明の1つの好
ましい実施形態によれば、入力数の第1の半分は、B
n+1個の記憶位置の第1の半分の最後のCBn/2個に記
憶され、入力数の第2の半分は、Bn+1個の記憶位置の
最後の半分の第1のCBn/2個に記憶されている。第
1のステップの行の方へのDFTは基数CのDFTであ
る。第3のステップの列の方へのDFTは本発明の主要
実施形態におけるような基数BのDFTで構成されてい
る。
【0009】本発明はツウイドル係数を記憶する方法も
含んでいる。前述されるように、各ツウイドル係数はe
xp(−2πj/N)の整数累乗である。この整数は、
最下位部および最上位部に分割される。ツウイドル係数
は、整数累乗の指数の最上位部の累乗に累乗されるex
p(−2πj/N)および整数累乗の指数の最下位部の
累乗に累乗されるexp(−2πj/N)の積である。
整数累乗の指数の最上位部の累乗に累乗されるexp
(−2πj/N)は、ここでは「最上位係数」と呼ばれ
る。整数累乗の指数の最下位部の累乗に累乗されるex
p(−2πj/N)は、ここでは「最下位係数」と呼ば
れる。多数のツウイドル係数は、同じ最上位係数あるい
は同じ最下位係数を共有する。ツウイドル係数に専用さ
れる記憶装置を最少にするために、最上位係数および最
下位係数は、別々に記憶され、ツウイドル係数を復元す
るために乗算される。当業者は、ツウイドル係数を記憶
し、使用するこの方法がFFT以外の用途を有すると認
識している。この方法は、複数のユニット係数の複素数
z、すなわち最下位部および最上位部に分割できること
が最適である|z|=1のような複素数zを含む任意の
計算処理に適用可能である。このような用途は、レー
ダ、通信および信号処理の分野で生じる。
【0010】本発明の装置は、この装置の全制御のため
の主プロセッサと、2つあるいはそれ以上のインプレー
スメモリと、本発明の方法に従って入力数および中間値
を記憶する命令を含むソフトウェアモデルを含む読み出
し専用命令記憶装置と、第1および第3のステップの短
いDFTを実行する1つあるいはそれ以上の専用FFT
プロセッサとを含んでいる。好ましくは、この装置もツ
ウイドル係数の最上位係数および最下位係数のための2
つ以上の読み出し専用メモリと、最上位係数および最下
位係数を乗算し、ツウイドル係数を生成し、かつインプ
レースメモリに記憶された中間値と第2のステップのそ
のそれぞれのツウイドル係数とを乗算する複素乗算器と
を含んでいる。本発明が逆FFTならびに順FFTのた
めに使用されてもよいと当業者に理解される。
【0011】(好ましい実施形態の説明)ここでは本発
明は添付図面を参照して例としてだけ説明される。本発
明は、インプレースFFTで使用される数を記憶する方
法のものである。特に、本発明は、インプレースFFT
のVLSI実装を最適化するために使用できる。本発明
によるFFT記憶および引き出しの原理および動作は、
図面および添付説明を参照してより理解できる。再度図
面を参照すると、図2は、B=4および2つのデュアル
ポートインプレースメモリの場合に対する本発明の主要
な実施形態の基本記憶パターン(n=1)を示してい
る。入力シーケンス{x0...x3}の下つき数字だけ
が示されている。シーケンスの中の第1の2つの数x0
およびx1は、第1のデュアルポートメモリに記憶され
る。シーケンスの第2の2つの数x2およびx3は第2の
デュアルポートメモリに記憶される。したがって、図2
の「0」および「1」は、上つき文字「i」を有し、図
2の「2」および「3」は上つき文字「ii」を有す
る。
【0012】図3は、いかにn=2(N=16)の場合
のアレイ10の記憶パターンが図2のn=1の記憶パタ
ーンから構成されるかを示している。図3の記憶パター
ンは、図2の記憶パターンの中の4つの連結である。下
つき文字が16進表示で記述されることに注目された
い。図2におけるように、第1のデュアルポートメモリ
に記憶された数の下つき文字は上つき文字「i」を有
し、第2のデュアルポートメモリに記憶された数の下つ
き文字は上つき文字「ii」を有する。最後の2つのn
=1の記憶パターンは最初の2つのn=1の記憶パター
ンに対して反転される。すなわち、最後の2つのn=1
の記憶パターンにおいて、最初の2つの数は第2のデュ
アルポートメモリに記憶され、最後の2つの数は第1の
デュアルポートメモリに記憶されている。第1のステッ
プの4つの行の方への基数4のDFTの各々において、
2つの入力数は第1のデュアルポートメモリから引き出
され、2つの入力数は、DFTの始めに第2のデュアル
ポートメモリから引き出され、2つの中間値は第1のデ
ュアルポートメモリに記憶され、2つの中間値はDFT
の終わりで第2のデュアルポートメモリに記憶される。
同様に、第3のステップの4つの列の方への基数4のD
FTの各々において、2つの中間値は第1のデュアルポ
ートメモリから引き出され、2つの中間値はDFTの始
めに第2のデュアルポートメモリから引き出され、2つ
の出力数は第1のデュアルポートメモリに記憶され、2
つの出力数はDFTの終わりに第2のデュアルポートメ
モリに記憶される。
【0013】図4は、いかにn=3(N=64)の場合
のアレイ10の記憶パターンが図3のn=2の記憶パタ
ーンから構成されるかを示している。図4の記憶パター
ンは、図3の記憶パターンの中の4つの連結であり、最
後の2つのn=2記憶パターンは最初の2つのn=2の
記憶パターンに対して反転される。n=2の場合のよう
に、第1のステップの行の方への基数4のDFTの各々
において、2つの入力数は第1のデュアルポートメモリ
から引き出され、2つの入力数はDFTの始めに第2の
デュアルポートメモリから引き出され、2つの中間値は
第1のデュアルポートに記憶され、2つの中間値は、D
FTの終わりに第2のデュアルポートメモリに記憶され
る。第3のステップの4つの列の方へのDFTは16点
のDFTである。図4の各列の記憶パターンは、図3の
記憶パターンと同一であるかあるいは図3の記憶パター
ンの逆のいずれかであるために、これらの16点のDF
Tの各々は、図3を参照して前述されるように、基数4
のFFTで構成されるn=2のFFTとして行われる。
【0014】図5は、いかにn=4(N=256)の場
合のアレイ10の記憶パターンが図4のn=3の記憶パ
ターンから構成されるかを示している。図5の記憶パタ
ーンは図4の記憶パターンの中の4つの連結であり、最
後の2つのn=3の記憶パターンは、第1の2つのn=
3の記憶パターンに対して反転される。n=2およびn
=3の場合におけるように、第1のステップの行の方へ
の基数4のDFTの各々において、2つの入力数は第1
のデュアルポートメモリから引き出され、2つの入力数
はDFTの始めに第2のデュアルポートメモリから引き
出され、2つの中間値は第1のデュアルポートメモリに
記憶され、2つの中間値はDFTの終わりに第2のデュ
アルポートメモリに記憶される。第3のステップの4つ
の列の方へのDFTは64点のDFTである。図5の各
列の記憶パターンは、図4の記憶パターンと同一である
かあるいは図4の記憶パターンの逆のいずれかであるた
めに、これらの64点のDFTの各々は、図4を参照し
て前述されるように、基数4のFFTで構成されるn=
3のFFTとして行われる。この手順を反復してnのよ
り高い値にいかに一般化するかは当業者に明らかであ
る。
【0015】図6は、B=8および2つのデュアルポー
トインプレースメモリの場合に対して、本発明の主要な
実施形態の基本記憶パターン(n=1)を示している。
シーケンスx0〜x3の最初の4つの数は第1のデュアル
ポートメモリに記憶される。シーケンスx4〜x7の最後
の4つの数は第2のデュアルポートメモリに記憶され
る。図7は、いかにn=2(N=64)の場合のアレイ
10の記憶パターンが図6のn=1の記憶パターンから
構成されるかを示している。図7の記憶パターンは、図
6のn=1の記憶パターンの中の8つの連結であり、最
後の4つのn=1の記憶パターンは、最初の4つのn=
1の記憶パターンに対して反転される。図6におけるよ
うに、第1のデュアルポートメモリに記憶された数の下
つき文字は上つき文字「i」を有し、第2のデュアルポ
ートメモリに記憶された数の下つき文字は上つき文字
「ii」を有する。第1のステップの8つの行の方への
基数8のDFTの各々は、2つの引き出しサイクルおよ
び2つの記憶サイクルを必要とする。第1の引き出しサ
イクルでは、2つの入力数は、第1のデュアルポートメ
モリから引き出され、2つの入力数は第2のデュアルポ
ートメモリから引き出される。第2の引き出しサイクル
では、他の2つの入力数は、第1のデュアルポートメモ
リから引き出され、他の2つの入力数は第2のデュアル
ポートメモリから引き出される。例えば、第1の行の方
への第1の引き出しサイクルでは、x0およびx8は、第
1のデュアルポートメモリから引き出され、x20および
28は、第2のデュアルポートメモリから引き出され
る。それから、第1の行の方へのDFTの第2の引き出
しサイクルでは、x10およびx18は、第1のデュアルポ
ートメモリから引き出され、x30およびx 38は第2のデ
ュアルポートメモリから引き出される。同様に、第1の
記憶サイクルでは、2つの中間値は第1のデュアルポー
トメモリに記憶され、2つの中間値は第2のデュアルポ
ートメモリに記憶され、そして第2の記憶サイクルで
は、2つの他の中間値は第1のデュアルポートメモリに
記憶され、2つの他の中間値は第2のデュアルポートメ
モリに記憶される。例えば、第8の行の方へのDFTの
第1の記憶サイクルでは、x7およびxFは、DFTの第
1および第2の出力値によって第2のデュアルポートメ
モリに上書きされ、x27およびx2Fは、DFTの第5お
よび第6の出力値によって第1のデュアルポートメモリ
に上書きされる。それから、第8の行の方へのDFTの
第2の引き出しサイクルでは、x17およびx1Fは、DF
Tの第3および第4の出力値によって第2のデュアルポ
ートメモリに上書きされ、x37およびx3Fは、DFTの
第7および第8の出力値によって第1のデュアルポート
メモリに上書きされる。同様に、第3のステップの8つ
の列の方への基数8のDFTの各々は、2つの引き出し
サイクルおよび2つの記憶サイクルを必要とする。第1
の引き出しサイクルでは、2つの中間値は第1のデュア
ルポートメモリから引き出され、2つの中間値は第2の
デュアルポートメモリから引き出される。第2の引き出
しサイクルでは、他の2つの中間値は第1のデュアルポ
ートメモリから引き出され、他の2つの中間値は第2の
デュアルポートメモリから引き出される。第1の記憶サ
イクルでは、2つの出力数は第1のデュアルポートメモ
リに記憶され、2つの出力数は第2のデュアルポートメ
モリに記憶され、第2の記憶サイクルでは、2つの他の
出力数は第1のデュアルポートメモリに記憶され、2つ
の他の出力数は第2のデュアルポートメモリに記憶され
る。
【0016】図8は、いかにn=3(N=512)の場
合のアレイ10の記憶パターンが図7のn=2の記憶パ
ターンから構成されるかを示している。図8の記憶パタ
ーンは図7の記憶パターンの中の8つの連結である。最
後の4つのn=2の記憶パターンは、最初の4つのn=
2の記憶パターンに対して反転される。
【0017】n=2の場合におけるように、第1のステ
ップの64の行の方への基数8のDFTの各々は、2つ
の引き出しサイクルおよび2つの記憶サイクルを必要と
する。第1の引き出しサイクルでは、2つの入力数は第
1のデュアルポートメモリから引き出され、2つの入力
数は第2のデュアルポートメモリから引き出される。第
2の引き出しサイクルでは、他の2つの入力数は第1の
デュアルポートメモリから引き出され、他の2つの入力
数は第2のデュアルポートメモリから引き出される。第
1の記憶サイクルでは、2つの中間値は第1のデュアル
ポートメモリに記憶され、2つの中間値は第2のデュア
ルポートメモリに記憶され、第2の記憶サイクルでは、
2つの他の中間値は第1のデュアルポートメモリに記憶
され、2つの他の中間値は第2のデュアルポートメモリ
に記憶される。第3のステップの8つの列の方へのDF
Tは64点のDFTである。図8の各列の記憶パターン
は、図7の記憶パターンと同一であるかあるいは図7の
記憶パターンの逆のいずれかであるために、これらの6
4点のDFTの各々は、図7を参照して前述されるよう
に基数8のFFTで構成されているn=2のFFTとし
て行われる。この手順を反復してnのより高い値にいか
に一般化するかは当業者に明らかである。
【0018】図9は、B=8および4つのデュアルポー
トインプレースメモリの場合に対して、本発明の主要な
実施形態の基本記憶パターン(n=1)を示している。
入力シーケンスの第1および第2の数x0およびx1は第
1のデュアルポートメモリに記憶される。このシーケン
スの第3および第4の数x2およびx3は第2のデュアル
ポートメモリに記憶される。入力シーケンスの第5およ
び第6の数x4およびx5は第3のデュアルポートメモリ
に記憶される。この入力シーケンスの第7および第8の
数x6およびx7は第4のデュアルポートメモリに記憶さ
れている。したがって、図9の「0」および「1」は上
つき文字「i」を有し、図9の「2」および「3」は上
つき文字「ii」を有し、図9の「4」および「5」は
上つき文字「iii」を有し、図9の「6」および
「7」は上つき文字「iv」を有する。
【0019】図10は、いかにn=2(N=64)の場
合のアレイ10の記憶パターンが図9のn=1の記憶パ
ターンから構成されるかを示している。図10の記憶パ
ターンは、対でとられた図9のn=1の記憶パターンの
中の8つの連結である。第1の対のn=1の記憶パター
ンの各々は図9の記憶パターンと同一である。第2の対
のn=1の記憶パターンの各々は、図9の記憶パターン
に対して置換される。すなわち、第1および第2の入力
数は第2のデュアルポートメモリに記憶され、第3およ
び第4の入力数は第1のデュアルポートメモリに記憶さ
れ、第5および第6の入力数は第4のデュアルポートメ
モリに記憶され、第7および第8の入力数は第3のデュ
アルポートメモリに記憶される。第3の対のn=1の記
憶パターンの各々は、第1の対および第2の対の両方に
対して置換される。すなわち、第1および第2の入力数
は第3のデュアルポートメモリに記憶され、第3および
第4の入力数は第4のデュアルポートメモリに記憶さ
れ、第5および第6の入力数は第1のデュアルポートメ
モリに記憶され、第7および第8の入力数は第2のデュ
アルポートメモリに記憶される。第4の対のn=1の記
憶パターンの各々は、第1の3つの対に対して置換され
る。すなわち、第1および第2の入力数は第4のデュア
ルポートメモリに記憶され、第3および第4の入力数は
第3のデュアルポートメモリに記憶され、第5および第
6の入力数は第2のデュアルポートメモリに記憶され、
第7および第8の入力数は第1のデュアルポートメモリ
に記憶される。これらの置換は乱調であることに注意さ
れたい。(乱調は無固定点に対する置換である、すなわ
ち、要素がその元の位置に全然ないように順序付けられ
た要素セットの乱調である。) 第1のステップの8つの行の方への基数8のDFTの各
々において、2つの入力数は、DFTの始めに4つのデ
ュアルポートメモリの各々から引き出され、2つの中間
値はDFTの終わりに4つのデュアルポートメモリの各
々に記憶される。同様に、第3のステップの8つの列の
方への基数8のDFTの各々において、2つの中間値
は、DFTの始めに4つのデュアルポートメモリの各々
から引き出され、2つの出力数は、DFTの終わりに8
つのデュアルポートメモリの各々に記憶される。
【0020】図11は、いかにn=3(N=512)の
場合のアレイ10の記憶パターンが図10のn=2の記
憶パターンから構成されるかを示している。図11の記
憶パターンは、対でとられた図10の記憶パターンの中
の8つの連結である。第1の対のn=2の記憶パターン
の各々は図10の記憶パターンと同一である。第2の対
のn=2の記憶パターンの各々は、図10の第3列およ
び第4列の記憶パターンが図9の記憶パターンに対して
置換されるのと同様に図10の記憶パターンに対して置
換される。第3の対のn=2の記憶パターンの各々は、
図10の第5列および第6列の記憶パターンが図9の記
憶パターンに対して置換されるのと同様に図10の記憶
パターンに対して置換される。第4の対のn=2の記憶
パターンの各々は、図10の第7列および第8列の記憶
パターンが図9の記憶パターンに対して置換されるのと
同様に図10の記憶パターンに対して置換される。第1
のステップの64つの行の方への基数8のDFTの各々
において、2つの入力数は、DFTの始めに4つのデュ
アルポートメモリの各々から引き出され、2つの中間値
はDFTの終わりに4つのデュアルポートメモリに記憶
される。第3のステップの8つの列の方へのDFTは6
4点のDFTである。図11の各列の記憶パターンは、
図10の記憶パターンと同一であるかあるいは図10の
記憶パターンの置換のいずれかであるために、これらの
64点のDFTの各々は、図10を参照して前述された
ように基数8のFFTで構成されたn=2のFFTとし
て行われる。この手順を反復してnのより高い値にいか
に一般化するかは当業者に明らかである。
【0021】前述のように、本発明の範囲は、CB
n(ここで、Bは2の累乗であり、CはBよりも小さい
2の累乗である)個の数の入力シーケンスを記憶し、高
速フーリエ変換する方法を含んでいる。第1のステップ
の行の方へのDFTは基数CのDFTであり、第3のス
テップの列の方へのDFTは基数BのDFTで構成され
ている。例えば、一連の128の入力数のFFTを実行
する1つの方法は、これらの数を図5の位置40‐B
F、すなわち図5の第2列および第3列に記憶すること
である。図5の行で実行された第1のステップでは64
の行の方への基数2のDFTがある。図5の第2列およ
び第3列を選択することによりメモリへの負荷をバラン
スさせたままにしておくことに注目されたい。すなわ
ち、各基数2のDFTは、一方のメモリから一方の入力
値および他方のメモリから他方の入力値を得る。第3の
ステップでは2つの列の方への64点のDFTがある。
各64点のDFTは、図4を参照して前述されたように
基数4のFFTで構成されるn=3のFFTとして行わ
れる。一方、入力数は、図5の位置0‐3Fおよび80
‐BF、すなわち、図5の第1列および第3列、さもな
いと図5の位置40‐7FおよびC0‐FF、すなわち
図5の第2列および第4列に記憶される。
【0022】他の例として、一連の256の入力数のF
FTを実行する1つの方法は、これらの数を図8の位置
80‐17F、すなわち図8の第3列〜第6列に記憶す
ることである。図8の行で実行される第1のステップで
は64の行の方への基数4のDFTがある。図8の第3
列〜第6列を選択することによりメモリへの負荷をバラ
ンスさせたままにしておくことに注目されたい。すなわ
ち、各基数4のDFTは、一方のメモリから2つの入力
値および他方のメモリから他の2つの入力値を得る。第
3のステップでは4つの列の方への64点のDFTがあ
る。各64点のDFTは、図7を参照して前述されたよ
うに基数8のFFTで構成されるn=2のFFTとして
行われる。図8の列の他の組み合わせ、例えば列1、
2、7および8を使用することもまたメモリ負荷バラン
スを保持する。一連の256の入力数のFFTを実行す
る他の方法は、これらの数を図11の位置0‐3F、8
0‐BF、100‐13Fおよび180‐1BF、すな
わち図11の奇数番号の列に記憶することである。図8
の行で実行される第1のステップでは、64の行の方へ
の基数4のDFTがある。図11の奇数番号の列を選択
することによりメモリへの負荷をバランスさせたままに
しておくことに注目されたい。すなわち、各基数4のD
FTは4つのメモリの各々とは異なる入力値を得る。第
3のステップでは4つの列の方への64点のDFTがあ
る。各64点のDFTは、図10を参照して前述された
ように基数8のFFTで構成されるn=2のFFTとし
て行われる。図11の列の他の組み合わせ、例えば、偶
数番号の列を使用することもまたメモリ負荷バランスを
保持する。
【0023】ツウイドル係数wは、形式w=exp(2
πjp)の複素数である。pは形式λ/Nの有理数であ
り、ここでλは0とN−1との間の整数である。Nが2
の累乗、すなわちN=2I(ここで、Iは正の整数であ
る)であるならば、λはIビットの2進表示、すなわち
(p(I-1),p(I-2),....,p(0))であり、p(
I-1)はλの最上位ビットであり、p(0)はλの最下位ビ
ットである。明確にするために、Iは偶数であると仮定
すると、当然の結果として、 となる。その累乗指数がλのI/2最下位ビットを含む
(L)は、ここではwの最下位係数と呼ばれる。その累
乗指数がλのI/2最上位ビットを含むw(H)は、ここ
ではwの最上位係数と呼ばれる。w(L)およびw(H)の累
乗指数の中のλのビットの区分が50:50である必要
がないことは明らかである。すなわちw(L )の累乗指数
がp(0)から若干の中間ビットにわたるλの最下位ビッ
トを含み、w (H)の累乗指数がλのビットの残りを含む
限りでは、w(L)の累乗指数はλのビットの半分以上を
含んでもよいし、w(H)の累乗指数はλのビットの半分
よりも少ないビットを含んでもよい。奇数であるIの場
合をいかに処理するかは当業者にも明らかである。
【0024】その基数Nが2の累乗であるFFTでは、
多数のツウイドル係数wは同じ最上位係数w(H)を共有
し、多数のツウイドル係数wは同じ最下位係数w(L)
共有し、最上位係数および最下位係数w(H)およびw(L)
の数はNよりも非常に少ない。したがって、本発明によ
れば、全てのN個のツウイドル係数wを記憶する代わり
に、最上位係数w(H)だけおよび最下位係数w(L)だけが
記憶され、ツウイドル係数wは、必要に応じてw(H)
よびw(L)から再構成される。I=IH+ILであるなら
ば、ツウイドル係数のためのN=2Iの複素記憶位置を
必要とする代わりに、2IH+2ILの複素記憶位置だけが
必要とされる。IH=IL=I/2の場合、 の複素記憶位置だけが必要とされる。
【0025】図12は、図8のN=512のFFTのた
めにツウイドル係数wを再構成するための5ビットのw
(H)の(IH=5)および4ビットのw(L)の(IL=4)
を記憶するメモリの16進表示のアドレスパターンを示
している。図12の各エントリ(行、列)は一対のアド
レスである。第1のアドレス(2つの16進数字)は、
図8の対応する位置(行列)に記憶されている中間値を
乗算するツウイドル係数wを再構成する必要があるw
(H)の値を記憶されるw(H)メモリのアドレス(00〜1
F)である。第2のアドレス(1つの16進数字)は、
図8の対応する位置(行列)に記憶されている中間値を
乗算するツウイドル係数wを再構成する必要があるw
(L)の値を記憶されるw(L)メモリのアドレス(0〜F)
である。記憶装置の他の節約は、w(L)の全てのビット
が記憶される必要がないという事実によって行われる。
(L)は、形式exp(jθ)=cosθ+jsinθ
の複素数であり、θは非負で、ゼロに近似している。w
(L)全ての虚数部の2進表示の先行ビットは0であり、
(L)全ての実数部の2進表示の先行ビットは1であ
る。これらの先行ビットは記憶される必要がない。
【0026】図13は、本発明の原理によるN個の入力
数のインプレースのN=Bn個の点のFFTを行う装置
20の部分概略ブロック図である。装置20は、主プロ
セッサ22の全制御下で作動し、前述のような入力数お
よび中間値を記憶するM個のデュアルポートインプレー
スメモリ24、第1および第3のステップの基数BのF
FTを実行する少なくとも1つの専用FFTプロセッサ
26、複素最下位係数w(L)および複素最上位係数w(H)
の値を記憶する最下位係数メモリ30および最上位係数
メモリ32、第2のステップでツウイドル係数を生成す
るようにw(L)およびw(H)の選択値を乗算する複素乗算
器28、第2のステップでデュアルポートメモリ24に
記憶された値とそれぞれのツウイドル係数wとを乗算す
る複素乗算器29もまた含んでいる。w(L)の先行ビッ
トは公知の先験的観念であるという事実によって、複素
乗算器28が簡単にでき、すなわちw(L)の全2進表示
が記憶される場合に必要とされるよりも少ないゲートを
有することができることに注目されたい。図13の矢印
はデータの流れの方向を示す。特定の用途に応じて、複
素乗算器28および複素乗算器29は、固定小数点装
置、浮動小数点装置、あるいはブロック浮動小数点装置
であってもよい。特別の注意を計算負荷バランスの問題
に払わなければならない。例えば、B=8およびM=2
の場合、図7あるいは図8の各行の第1および第2のス
テップの動作を実行するのに4クロックサイクルかか
る。最初の2クロックサイクルの各々において、2つの
複素数が各デュアルポートメモリ24から読み出され、
FFTプロセッサ26に転送される。最後の2クロック
サイクルの各々において、FFTプロセッサ26によっ
て出力され、(装置20の動作が広くパイプライン化さ
れるために)既にそのそれぞれのツウイドル係数と乗算
される4つの複素数はデュアルポートメモリ24に書き
込まれる。これらの複素積の中の2つは各デュアルポー
トメモリ24に書き込まれる。これらの4クロックサイ
クル中、16の乗算が実行されねばならない。すなわ
ち、8つはツウイドル係数wを対応するw (H)およびw
(L)から再構成するためのもの、8つはFFTプロセッ
サ26の出力とツウイドル係数とを乗算するためのもの
である。これを行う1つの方法は、2つの複素乗算器2
8および2つの複素乗算器29とともにメモリ30およ
びメモリ32としてデュアルポートROMを使用する
(あるいはその代わりに各メモリ30およびメモリ32
の2つの複製を使用する)ことである。一方、乗算のよ
うな演算のためのクロックサイクルを半分にするために
位相ロックループを使用することによって乗算速度を2
倍にすることは、唯一の複素乗算器28および唯一の複
素乗算器29の使用を可能にする。
【0027】装置20によって変換されるN個の入力数
0〜xN-1のソースは入力装置38として図13に象徴
的に表示されている。例えば、自然現象の周波数スペク
トルを決定する実時間システムにおいて、入力装置38
は、自然現象に応じて電圧を発生するセンサと、等しい
間隔のサンプリング時間にこの電圧をサンプルするA/
D変換器とを含んでもよい。したがって、数x0〜xN-1
は、サンプリング時間にA/D変換器によって発生され
るディジタルサンプルである。装置20の出力は、更な
る処理のために出力装置40に送られるN個の出力数X
0〜XN-1からなる。一般的には、装置20の出力で実行
される最初の次の動作は、装置20によって生じるディ
ジット反転を取り消すために用いる。好ましくは、入力
装置38は2つのバッファで実現される。一方のバッフ
ァは変換する新しいデータを受信するのに対して、他方
のバッファはそれに予め記憶されたデータを装置20に
送る。それからその2つのバッファは役割を交換する。
それとは別に、入力装置38は、入力データの速度を装
置20がFFTを行う速度に調整するFIFOとして実
現される。
【0028】プロセッサ22は、命令メモリ34に記憶
された命令を実行する。特に、命令メモリ34は、前述
のようにN=Bn個の入力数x0〜xN-1をデュアルポー
トメモリ24に記憶する命令を含むソフトウェアモジュ
ール36を含んでいる。例えば、N=256、M=2お
よびB=4ならば、入力数x0〜xN-1は、図5に示され
るように2つのデュアルポートメモリ24に記憶され
る。一般的には、命令メモリ34は読み出し専用メモリ
であり、それに記憶された命令は機械言語で符号化され
る。メモリ24はランダムアクセスメモリである。メモ
リ30およびメモリ32は読み出し専用メモリである。
装置20のVLSI実装において、主プロセッサ22、
命令メモリ34およびソフトウェアモジュール36の全
ては状態機械の一部である。FFTプロセッサ26は、
第3のステップの基数BのFFTを実行するのに加え
て、第1のステップの基数C<BのFFTも実行するた
めに、装置20も、本発明の原理によるN個の入力数の
インプレースN=CBn個の点のFFTを行うのに適し
ている。ソフトウェアモジュール36は、N=CBn
の入力数x0〜x N-1を前述のようなデュアルポートメモ
リ24に記憶する命令を含むものとして理解されるべき
である。例えば、N=128、M=2、B=4およびC
=2ならば、入力数x0〜xN-1は、図5の第2列および
第3列に示されるように2つのデュアルポートメモリ2
4に記憶される。本発明は、デュアルポートインプレー
スメモリの入出力数および中間値の記憶および引き出し
に関して記載されているけれども、本発明の原理が記憶
/引き出しサイクルの2倍のサイクルを使用することに
よって単一ポートメモリに基づいてFFT装置に適用で
きることは明らかである。本発明は限られた数の実施形
態に関して記載されているが、本発明の多数の変更、修
正および他の応用を行ってもよいことが理解される。
【図面の簡単な説明】
【図1】従来のFFTを示す図である。
【図2】N=4、B=4、n=1、M=2の場合におけ
る本発明の記憶位置パターンを示す図である。
【図3】N=16、B=4、n=2、M=2の場合にお
ける本発明の記憶位置パターンを示す図である。
【図4】N=64、B=4、n=3、M=2の場合にお
ける本発明の記憶位置パターンを示す図である。
【図5】N=256、B=4、n=4、M=2の場合に
おける本発明の記憶位置パターンを示す図である。
【図6】N=8、B=8、n=1、M=2の場合におけ
る本発明の記憶位置パターンを示す図である。
【図7】N=64、B=8、n=2、M=2の場合にお
ける本発明の記憶位置パターンを示す図である。
【図8】N=512、B=8、n=3、M=2の場合に
おける本発明の記憶位置パターンを示す図である。
【図9】N=8、B=8、n=1、M=4の場合におけ
る本発明の記憶位置パターンを示す図である。
【図10】N=64、B=8、n=2、M=4の場合に
おける本発明の記憶位置パターンを示す図である。
【図11】N=512、B=8、n=3、M=4の場合
における本発明の記憶位置パターンを示す図である。
【図12】N=512、B=8、n=3、M=2の場合
におけるツウイドル係数の最上位係数および最下位係数
を記憶するアドレスパターンを示す図である。
【図13】本発明の装置の概略ブロック図である。
【符号の説明】
10、14 アレイ、12、16 DFT、20 装
置、22 プロセッサ、24 デュアルポートメモリ
(デュアルポートインプレースメモリ)、26 FFT
プロセッサ、28、29 複素乗算器、30 最下位係
数メモリ(メモリ)、32 最上位係数メモリ(メモ
リ)、34 命令メモリ、36 ソフトウェアモジュー
ル、38 入力装置、40 出力装置。
【手続補正書】
【提出日】平成12年9月14日(2000.9.1
4)
【手続補正1】
【補正対象書類名】図面
【補正対象項目名】図1
【補正方法】変更
【補正内容】
【図1】
【手続補正2】
【補正対象書類名】図面
【補正対象項目名】図13
【補正方法】変更
【補正内容】
【図13】

Claims (23)

    【特許請求の範囲】
  1. 【請求項1】 一連のN=Bn個の数(ここで、Bは2
    の累乗で、かつnは正の整数である)のFFTを実行す
    る方法であって、 (a)M(ここで、MはBよりも小さい2の累乗であ
    る)個のインプレースメモリのBn個の数のための記憶
    位置のパターンを反復して選択するステップであって、
    n=1ならば、各前記インプレースメモリが、前記B個
    の数の異なるB/M個のための記憶位置を有し、かつn
    が1よりも大きいならば、Bn個の数を記憶する前記パ
    ターンがBn-1個の数を記憶するB個の前記パターンの
    連結であり、nが1よりも大きい場合、Bn個の数を記
    憶する前記パターンにはBn-1個の数を記憶するB/M
    個の連続するセットの前記パターンがあり、前記B/M
    個の連続するセットの各々内のBn-1個の数を記憶する
    前記パターンが、相互に同一であり、かつ任意の他の前
    記セットのBn-1個の数を記憶する前記パターンとは異
    なることと、 (b)前記数を前記記憶位置に記憶するステップと、 (c)前記記憶位置に記憶された値のN/B個のグルー
    プの各々のインプレース基数BのDFTを実行するステ
    ップと、 (d)nが1よりも大きいならば、記憶位置に記憶され
    たN/B個の値のB個のグループの各々の長さN/Bの
    DFTを実行するステップとを含み、各前記グループが
    前記インプレースメモリの各々に記憶されたN/(M
    B)個の値を含むことを特徴とするFFTを実行する方
    法。
  2. 【請求項2】 前記インプレース基数BのDFTが実行
    される各前記グループが前記インプレースメモリの各々
    に記憶されたB/M個の値を含むことを特徴とする請求
    項1の方法。
  3. 【請求項3】 nが2よりも大きいならば、前記長さN
    /BのDFTが反復して実行され、前記反復の最低レベ
    ルが、各前記長さN/B個のDFTに対して、N/B2
    個のインプレースの基数BのDFTを含み、前記N/B
    2個のインプレース基数BのDFTの各々が前記インプ
    レースメモリの各々からのB/M個の値で実行されるこ
    とを特徴とする請求項1の方法。
  4. 【請求項4】 M=2であり、そのとき1よりも大きい
    nに対する前記パターンが、Bn個の数の第1の半分に
    加えられたBn-1個の数を記憶するB/2個の前記パタ
    ーンと、Bn個の数の第2の半分に加えられた前記Bn-1
    個の数を記憶する前記パターンのB/2個の反転との連
    結であることを特徴とする請求項1の方法。
  5. 【請求項5】 さらに、 (e)nが1よりも大きいならば、前記長さN/BのF
    FTを実行する前に前記記憶位置に記憶された前記値の
    各々とそれぞれのツウイドル係数とを乗算するステップ
    を含むことを特徴とする請求項1の方法。
  6. 【請求項6】 さらに、 (f)各前記ツウイドル係数を最上位係数および最下位
    係数に分解するステップと、 (g)前記最上位係数を最上位係数メモリに記憶するス
    テップと、 (h)前記最下位係数の各々の少なくとも一部を最下位
    係数メモリに記憶するステップとを含むことを特徴とす
    る請求項5の方法。
  7. 【請求項7】 前記各値と前記それぞれのツウイドル係
    数との乗算より前にさらに、 (i)前記それぞれのツウイドル係数の前記最上位係数
    を前記最上位係数メモリから引き出すステップと、 (j)前記それぞれのツウイドル係数の前記最下位係数
    を前記最下位係数メモリから引き出すステップと、 (k)前記それぞれのツウイドル係数の前記最上位係数
    と前記それぞれのツウイドル係数の前記最下位係数とを
    乗算し、前記それぞれのツウイドル係数を生じるステッ
    プとを含むことを特徴とする請求項6の方法。
  8. 【請求項8】 さらに、 (l)各前記それぞれのツウイドル係数に対して、前記
    各それぞれのツウイドル係数の前記最下位係数の一部だ
    けが前記最下位係数メモリに記憶される場合、前記各そ
    れぞれのツウイドル係数の前記最上位係数と前記各ツウ
    イドル係数の前記最下位係数との乗算より前に前記各そ
    れぞれのツウイドル係数の前記最下位係数を完了するス
    テップをさらに含むことを特徴とする請求項7の方法。
  9. 【請求項9】 前記DFTがFFTであることを特徴と
    する請求項1の方法。
  10. 【請求項10】 前記インプレースメモリがデュアルポ
    ートメモリであることを特徴とする請求項1の方法。
  11. 【請求項11】 前記インプレースメモリが単一ポート
    メモリであることを特徴とする請求項1の方法。
  12. 【請求項12】 一連のN=Bn個の数(ここで、Bは
    2の累乗で、かつnは正の整数である)のFFTを実行
    する装置であって、 (a)M(ここで、MはBよりも小さい2の累乗であ
    る)個のインプレースメモリと、 (b)前記記憶位置の反復して得られる複数のパターン
    の中の1つによる前記インプレースメモリの対応する記
    憶位置にN個の数を記憶する複数の命令を含むソフトウ
    ェアモジュールであって、n=1に対する前記パターン
    が、N個の数の異なるB/M個が各前記インプレースメ
    モリに記憶されるようなものであり、かつ1よりも大き
    いnに対する前記パターンがn−1に対する前記パター
    ンのB個の連結であり、1よりも大きいnの場合、前記
    パターンにはB/M個の連続するセットの前記パターン
    があり、前記B/M個の連続するセットの各々内のn−
    1に対する前記パターンが、相互に同一であり、かつ任
    意の他の前記セットのn−1に対する前記パターンと異
    なることと、 (c)前記命令を実行し、それによってN個の値をN個
    の前記記憶位置に記憶する主プロセッサと、 (d)ある時点でB個をとられた前記N個の値の基数B
    のFFTを実行する少なくとも1つのFFTプロセッサ
    とを備えていることを特徴とする装置。
  13. 【請求項13】 nが1よりも大きいならば、さらに
    (e)前記N個の値の各々とそれぞれのツウイドル係数
    とを乗算する乗算器を備えていることを特徴とする請求
    項12の装置。
  14. 【請求項14】 さらに、 (f)前記ツウイドル係数の最下位係数および最上位係
    数を記憶する少なくとも1つのツウイドル係数メモリを
    備えていることを特徴とする請求項13の装置。
  15. 【請求項15】 2つの前記ツウイドル係数メモリを備
    え、第1の前記ツウイドル係数メモリが前記最下位係数
    を記憶し、かつ第2の前記ツウイドル係数メモリが前記
    最上位係数を記憶することを特徴とする請求項14の装
    置。
  16. 【請求項16】 前記インプレースメモリがデュアルポ
    ートメモリであることを特徴とする請求項12の装置。
  17. 【請求項17】 前記インプレースメモリが単一ポート
    メモリであることを特徴とする請求項12の装置。
  18. 【請求項18】 複数の複素数のユニット絶対値を計算
    処理に供給する方法であって、 (a)各複素数を最上位係数および最下位係数に分解す
    るステップと、 (b)前記最上位係数を最上位係数メモリに記憶するス
    テップと、 (c)各前記最下位係数の少なくとも一部を最下位係数
    メモリに記憶するステップとを含むことを特徴とする複
    数の複素数のユニット絶対値を計算処理に供給する方
    法。
  19. 【請求項19】 各複素数に対して、さらに、 (d)前記各複素数の前記最上位係数を前記最上位係数
    メモリから引き出すステップと、 (e)前記各複素数の前記最下位係数を前記最下位係数
    メモリから引き出すステップと、 (f)前記各複素数の前記最上位係数と前記各複素数の
    前記最下位係数とを乗算し、前記各複素数を生じるステ
    ップとを含むことを特徴とする請求項18の方法。
  20. 【請求項20】 各複素数に対して、さらに、 (g)前記各複素数の前記最下位係数の一部だけが前記
    最下位係数メモリに記憶される場合、前記各複素数の前
    記最上位係数と前記各複素数の前記最下位係数との乗算
    より前に前記各複素数の前記最下位係数を全部そろえる
    ことを特徴とする請求項19の方法。
  21. 【請求項21】 一連のN=CBn(ここで、Bは2の
    累乗、CはBよりも小さい2の累乗、かつnは正の整数
    である)個の数のFFTを実行する方法であって、 (a)B個の数に対するベース記憶パターンから始まる
    M(MはBよりも小さい2の累乗である)個のインプレ
    ースメモリのBn+1個の数に対する記憶位置のパターン
    を反復して選択するステップであって、各前記インプレ
    ースメモリがB個の数の異なるB/M個のための記憶位
    置を有し、Bm(ここで、mは1よりも大きい整数であ
    る)個の数を記憶する各々の次に選択されるパターンが
    m-1個の数を記憶するB個の前記パターンの連結であ
    り、Bm個の数を記憶する前記パターンにはBm-1個の数
    を記憶するB/M個の連続するセットの前記パターンが
    あり、前記B/M個の連続するセットの各々内のBm-1
    個の数を記憶する前記パターンが、相互に同一であり、
    かつ任意の他のセットのBm-1個の数を記憶する前記パ
    ターンとは異なることと、 (b)前記N個の数をBn+1個の数のためのN個の前記
    記憶位置に記憶するステップと、 (c)前記N個の記憶位置に記憶された値のN/C個の
    グループの各々のインプレース基数CのDFTを実行す
    るステップと、 (d)前記N個の記憶位置に記憶されたBn個の値のC
    個のグループの各々の長さBnのDFTを実行するステ
    ップとを含み、各前記グループが、前記インプレースメ
    モリの各々に記憶されたBn/M個の値を含むことを特
    徴とするFFTを実行する方法。
  22. 【請求項22】 前記N個の数の前記記憶が、前記イン
    プレース基数CのDFTが実行されるN/C個の値の前
    記グループの各々が前記インプレースメモリに記憶され
    たC/M個の値を含むように実行されることを特徴とす
    る請求項21の方法。
  23. 【請求項23】 一連のN=CBn(ここで、Bは2の
    累乗、CはBよりも小さい2の累乗、かつnは正の整数
    である)個の数のFFTを実行する装置であって、 (a)M(ここで、MはBよりも小さい2の累乗であ
    る)個のインプレースメモリと、 (b)Bn+1個の数を記憶する記憶位置の反復して得ら
    れたパターンに従って前記インプレースメモリの対応す
    る記憶位置にN個の数を記憶する複数の命令を含むソフ
    トウェアモジュールであって、前記反復誘導のベースパ
    ターンが、前記B個の数の異なるB/M個が前記インプ
    レースメモリの各々に記憶されるようなB個の数を記憶
    するパターンであり、かつBm(ここで、mは1よりも
    大きい整数である)個の数を記憶する各々の次に得られ
    たパターンがBm-1個の数を記憶する前記パターンのB
    個の連結であり、Bm個の数を記憶する前記パターンに
    はBm-1個の数を記憶するB/M個の連続するセットの
    前記パターンがあり、前記B/M個の連続するセットの
    各々内のBm-1個の数を記憶する前記パターンが、相互
    に同一であり、かつ任意の他のセットのBm-1個の数を
    記憶する前記パターンとは異なることと、 (c)前記命令を実行し、それによってN個の値を前記
    記憶位置のN個に記憶する主プロセッサと、 (d)(i)ある時点でB個をとられた前記N個の値の
    基数BのFFT、および(ii)ある時点でC個をとら
    れた前記N個の値の基数CのFFTを実行する少なくと
    も1つのFFTプロセッサとを備えていることを特徴と
    するFFTを実行する装置。
JP2000245248A 1999-08-11 2000-08-11 高速フーリエ変換用データ記憶パターン Pending JP2001101160A (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
IL131350 1999-08-11
IL13135099A IL131350A0 (en) 1999-08-11 1999-08-11 Data storage patterns for fast fourier transforms

Publications (1)

Publication Number Publication Date
JP2001101160A true JP2001101160A (ja) 2001-04-13

Family

ID=11073136

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2000245248A Pending JP2001101160A (ja) 1999-08-11 2000-08-11 高速フーリエ変換用データ記憶パターン

Country Status (4)

Country Link
US (1) US6728742B1 (ja)
EP (1) EP1076296A3 (ja)
JP (1) JP2001101160A (ja)
IL (1) IL131350A0 (ja)

Families Citing this family (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2004004265A1 (en) * 2002-06-27 2004-01-08 Samsung Electronics Co., Ltd. Modulation apparatus using mixed-radix fast fourier transform
US7430575B2 (en) * 2003-12-19 2008-09-30 Fujitsu Limited One-dimensional fourier transform program, method and apparatus
US20060075010A1 (en) * 2004-10-05 2006-04-06 Wadleigh Kevin R Fast fourier transform method and apparatus
US20070299903A1 (en) * 2006-06-27 2007-12-27 Nokia Corporation Optimized DFT implementation
KR100836624B1 (ko) * 2006-12-08 2008-06-10 한국전자통신연구원 가변 고속 푸리에 변환 장치 및 그 방법
CN101630308B (zh) * 2008-07-16 2013-04-17 财团法人交大思源基金会 以内存为基础的任意点数快速傅立叶转换器的设计与寻址方法
US8549059B2 (en) * 2009-01-08 2013-10-01 Texas Instruments Incorporated In-place fast fourier transform processor
JP5763911B2 (ja) * 2010-12-07 2015-08-12 インターナショナル・ビジネス・マシーンズ・コーポレーションInternational Business Machines Corporation ルートi(√i)演算の保持を特徴とする基数8固定小数点FFT論理回路
WO2013137759A1 (en) * 2012-03-12 2013-09-19 Intel Corporation Method and apparatus for reduced memory footprint fast fourier transforms
WO2014203027A1 (en) * 2013-06-17 2014-12-24 Freescale Semiconductor, Inc. Processing device and method for performing a round of a fast fourier transform

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5091875A (en) * 1990-03-23 1992-02-25 Texas Instruments Incorporated Fast fourier transform (FFT) addressing apparatus and method
SE507529C2 (sv) * 1996-10-21 1998-06-15 Ericsson Telefon Ab L M Anordning och förfarande vid beräkning av FFT
US6122703A (en) * 1997-08-15 2000-09-19 Amati Communications Corporation Generalized fourier transform processing system

Also Published As

Publication number Publication date
IL131350A0 (en) 2001-01-28
EP1076296A2 (en) 2001-02-14
US6728742B1 (en) 2004-04-27
EP1076296A3 (en) 2004-01-02

Similar Documents

Publication Publication Date Title
Despain Fourier transform computers using CORDIC iterations
US6035313A (en) Memory address generator for an FFT
Swarztrauber Vectorizing the ffts
US6609140B1 (en) Methods and apparatus for fast fourier transforms
US5093801A (en) Arrayable modular FFT processor
US4821224A (en) Method and apparatus for processing multi-dimensional data to obtain a Fourier transform
JPH02501601A (ja) 2次元離散余弦変換プロセッサ
US20050256917A1 (en) Address generators integrated with parallel FFT for mapping arrays in bit reversed order
CN101847986B (zh) 一种实现fft/ifft变换的电路及方法
AU579621B2 (en) Computer and method for discrete transforms
JP2007513431A (ja) Fftアーキテクチャおよび方法
US7792892B2 (en) Memory control method for storing operational result data with the data order changed for further operation
CN100592285C (zh) 一种信号处理方法、装置和系统
CN101937424A (zh) 基于fpga实现高速fft处理的方法
US20050278405A1 (en) Fourier transform processor
US20030041080A1 (en) Address generator for fast fourier transform processor
JP2001101160A (ja) 高速フーリエ変換用データ記憶パターン
Swarztrauber et al. Vector and parallel methods for the direct solution of Poisson's equation
US6658441B1 (en) Apparatus and method for recursive parallel and pipelined fast fourier transform
US7653676B2 (en) Efficient mapping of FFT to a reconfigurable parallel and pipeline data flow machine
US6460061B1 (en) 2-dimensional discrete cosine transform using a polynomial transform
Cui-xiang et al. Some new parallel fast Fourier transform algorithms
WO2023045516A1 (zh) 执行fft的方法、装置及设备
CN113111300A (zh) 具有优化资源消耗的定点fft实现架构
US4823297A (en) Digit-reversal method and apparatus for computer transforms