JPH06105458B2 - ベクトル計算機 - Google Patents
ベクトル計算機Info
- Publication number
- JPH06105458B2 JPH06105458B2 JP62219154A JP21915487A JPH06105458B2 JP H06105458 B2 JPH06105458 B2 JP H06105458B2 JP 62219154 A JP62219154 A JP 62219154A JP 21915487 A JP21915487 A JP 21915487A JP H06105458 B2 JPH06105458 B2 JP H06105458B2
- Authority
- JP
- Japan
- Prior art keywords
- vector
- coefficient
- stage
- data
- elements
- 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.)
- Expired - Lifetime
Links
- 239000013598 vector Substances 0.000 title claims description 97
- 238000000034 method Methods 0.000 claims description 7
- 238000010586 diagram Methods 0.000 description 5
Landscapes
- Complex Calculations (AREA)
Description
【発明の詳細な説明】 [発明の目的] (産業上の利用分野) 本発明は、高速フーリエ変換(以下、FFTという)装置
に使用されるベクトル計算機に関する。
に使用されるベクトル計算機に関する。
(従来の技術) FFTをベクトル計算機で実行する場合、従来の算法で
は、バタフライ演算の際に、ステージが進む毎にベクト
ル長が短くなるため、処理性能が低下するという問題が
あった。これを第6図に基づき説明すると、ベクトル計
算機は、データ長n=8の入力データX0(m)(m=0
〜n)に対し、第1ステージにおいて、 で表すベクトル長4のバタフライ演算を行なう。なお、
ここで、Wk=e−2πk/nで、Wk=−Wk+n/2であ
る。また、ベクトル計算機はステージ1で得られた結果
に対し、ステージ2で、 で表すベクトル長2のバタフライ演算を行ない、ステー
ジ3では、 X3(0)=X2(0)+W0・X2(1) X3(1)=X2(0)+W4・X2(1) X3(2)=X2(2)+W2・X2(3) X3(3)=X2(2)+W6・X2(3) X3(4)=X2(4)+W1・X2(5) X3(5)=X2(4)+W5・X2(5) X3(6)=X2(6)+W3・X2(7) X3(7)=X2(6)+W7・X2(7) で表すベクトル長1のバタフライ演算を行なう。
は、バタフライ演算の際に、ステージが進む毎にベクト
ル長が短くなるため、処理性能が低下するという問題が
あった。これを第6図に基づき説明すると、ベクトル計
算機は、データ長n=8の入力データX0(m)(m=0
〜n)に対し、第1ステージにおいて、 で表すベクトル長4のバタフライ演算を行なう。なお、
ここで、Wk=e−2πk/nで、Wk=−Wk+n/2であ
る。また、ベクトル計算機はステージ1で得られた結果
に対し、ステージ2で、 で表すベクトル長2のバタフライ演算を行ない、ステー
ジ3では、 X3(0)=X2(0)+W0・X2(1) X3(1)=X2(0)+W4・X2(1) X3(2)=X2(2)+W2・X2(3) X3(3)=X2(2)+W6・X2(3) X3(4)=X2(4)+W1・X2(5) X3(5)=X2(4)+W5・X2(5) X3(6)=X2(6)+W3・X2(7) X3(7)=X2(6)+W7・X2(7) で表すベクトル長1のバタフライ演算を行なう。
このように、従来のFFTをベクトル計算機によって実行
する装置では、ベクトル計算機の性能を左右するベクト
ル長がステージが増す毎に短くなった。通常、ベクトル
計算機はベクトル長の長いデータを扱う場合には高速に
処理することが可能であるが、ベクトル長が短い場合に
は、演算処理時間に比べてセットアップ処理時間の割合
いが大きくなってくるなど、高速処理が図れなくなると
いう問題がある。このため、従来のベクトル計算機で
は、その性能を十分に発揮させることができないという
問題があった。
する装置では、ベクトル計算機の性能を左右するベクト
ル長がステージが増す毎に短くなった。通常、ベクトル
計算機はベクトル長の長いデータを扱う場合には高速に
処理することが可能であるが、ベクトル長が短い場合に
は、演算処理時間に比べてセットアップ処理時間の割合
いが大きくなってくるなど、高速処理が図れなくなると
いう問題がある。このため、従来のベクトル計算機で
は、その性能を十分に発揮させることができないという
問題があった。
(発明が解決しようとする問題点) このように、従来のベクトル計算機では、FFTの計算の
際、ステージを重ねる毎にベクトル長が短くなり、高速
処理のメリットを十分に発揮させることができないとい
う問題があった。
際、ステージを重ねる毎にベクトル長が短くなり、高速
処理のメリットを十分に発揮させることができないとい
う問題があった。
本発明は、上記の点に鑑み、ベクトル計算機の高速処理
の利点を十分に生かし、FFTを高速に実行できるベクト
ル計算機を提供することを目的とする。
の利点を十分に生かし、FFTを高速に実行できるベクト
ル計算機を提供することを目的とする。
[発明の構成] (問題点を解決するための手段) 本発明は、n(=2r)個の要素からなるベクトルデー
タを、n/2個の要素からなる第1のデータベクトルと第
2のデータベクトルとに分割するとともに、これら両デ
ータベクトルとn/2個の要素からなる係数ベクトルとを
用いてバタフライ演算を行ない、得られた演算結果ベク
トルのn個の要素を1つおきに配置し直す処理を、rス
テージ繰返す手段と、この手段で第iステージに使用さ
れる係数ベクトルとして、0から2i−1−1までの一
連の値を2r−i回繰返してなる数値列に対し、各数値
のビットの順序を逆順にした数値列を要素番号列とする
係数ベクトルを与える手段とを備えたものである。
タを、n/2個の要素からなる第1のデータベクトルと第
2のデータベクトルとに分割するとともに、これら両デ
ータベクトルとn/2個の要素からなる係数ベクトルとを
用いてバタフライ演算を行ない、得られた演算結果ベク
トルのn個の要素を1つおきに配置し直す処理を、rス
テージ繰返す手段と、この手段で第iステージに使用さ
れる係数ベクトルとして、0から2i−1−1までの一
連の値を2r−i回繰返してなる数値列に対し、各数値
のビットの順序を逆順にした数値列を要素番号列とする
係数ベクトルを与える手段とを備えたものである。
(作用) 本発明によれば、n個の要素からなるベクトルデータを
分割したn/2個の要素からなる第1及び第2のデータベ
クトルと、n/2個の要素からなる係数ベクトルとをバタ
フライ演算し、得られた演算結果ベクトルのn個の要素
を1つおきに配置し直す処理をステージ毎に行なってい
る。このような置換えを行なうと、置換え後のベクトル
を連続するn/2個の要素毎に2つに分割した場合、分割
後の両ベクトルに乗ずるべき係数データが丁度+−の関
係になる。したがって、次のステージにおいても、両ベ
クトルに対し1つの係数ベクトルを用いたバタフライ演
算が可能になる。したがって、ベクトル長は全てのステ
ージにおいて変動しない。
分割したn/2個の要素からなる第1及び第2のデータベ
クトルと、n/2個の要素からなる係数ベクトルとをバタ
フライ演算し、得られた演算結果ベクトルのn個の要素
を1つおきに配置し直す処理をステージ毎に行なってい
る。このような置換えを行なうと、置換え後のベクトル
を連続するn/2個の要素毎に2つに分割した場合、分割
後の両ベクトルに乗ずるべき係数データが丁度+−の関
係になる。したがって、次のステージにおいても、両ベ
クトルに対し1つの係数ベクトルを用いたバタフライ演
算が可能になる。したがって、ベクトル長は全てのステ
ージにおいて変動しない。
本発明では、このような演算を可能にするため、係数デ
ータとして演算結果データの置換えを考慮した係数デー
タを与えるようにしている。即ち、第iステージの係数
ベクトルとして0から2i−1−1までの一連の値を2
r−i回繰返してなる数値列に対し、各数値のビットの
順序を逆順にした数値列を要素番号列とする係数ベクト
ルを生成して与えているので、ベクトル長が各ステージ
で変動せず、結局、ベクトル演算機の利点を最大限に発
揮した高速処理が可能なベクトル演算機を提供すること
ができる。
ータとして演算結果データの置換えを考慮した係数デー
タを与えるようにしている。即ち、第iステージの係数
ベクトルとして0から2i−1−1までの一連の値を2
r−i回繰返してなる数値列に対し、各数値のビットの
順序を逆順にした数値列を要素番号列とする係数ベクト
ルを生成して与えているので、ベクトル長が各ステージ
で変動せず、結局、ベクトル演算機の利点を最大限に発
揮した高速処理が可能なベクトル演算機を提供すること
ができる。
(実施例) 以下、本発明を図示の実施例に基づき説明する。
第3図はFFTの全体の流れを示す図である。n(=
2r)個の要素のベクトルデータである入力データと、
係数ベクトル生成部10で生成されたn/2個の要素からな
る係数ベクトルとはバタフライ演算部11に導かれ、ここ
でn/2個の要素からなるベクトルのバタフライ演算とデ
ータの置換えとが行われる。この処理がrステージ行わ
れると、得られたn個の要素のベクトルはデータ順序復
元部12においてビット反転されることによって変換デー
タとして出力される。
2r)個の要素のベクトルデータである入力データと、
係数ベクトル生成部10で生成されたn/2個の要素からな
る係数ベクトルとはバタフライ演算部11に導かれ、ここ
でn/2個の要素からなるベクトルのバタフライ演算とデ
ータの置換えとが行われる。この処理がrステージ行わ
れると、得られたn個の要素のベクトルはデータ順序復
元部12においてビット反転されることによって変換デー
タとして出力される。
以上の処理のうちバタフライ演算部11における処理を、
n=8とした場合について説明する。
n=8とした場合について説明する。
ここで行われるバタフライ演算は、第1図に示すよう
に、各ステージにおいて、第1のデータベクトルaと、
第2のデータベクトルbと、係数ベクトルKとを用いて
バタフライ演算を行ない、その演算結果ベクトルの各要
素を1つおきに配置したデータが次のステージの入力デ
ータとなる。ここでは、n=8=23であるから、3段の
ステージについてこの処理が行われる。そして、最後に
ビット反転してフーリエ変換結果が得られる。なお、ビ
ット反転の内容については、E.ORAN BRIGHAM,宮川洋・
今井秀樹訳,『高速フーリエ変換』(科学技術出版社,1
978)に詳しい。
に、各ステージにおいて、第1のデータベクトルaと、
第2のデータベクトルbと、係数ベクトルKとを用いて
バタフライ演算を行ない、その演算結果ベクトルの各要
素を1つおきに配置したデータが次のステージの入力デ
ータとなる。ここでは、n=8=23であるから、3段の
ステージについてこの処理が行われる。そして、最後に
ビット反転してフーリエ変換結果が得られる。なお、ビ
ット反転の内容については、E.ORAN BRIGHAM,宮川洋・
今井秀樹訳,『高速フーリエ変換』(科学技術出版社,1
978)に詳しい。
バタフライ演算での第iステージでのベクトル演算の様
子を第2図に示す。使用するベクトルは、第iステージ
の図中上下に分割されたベクトル長4の第1のデータベ
クトルa(i)及び第2のデータベクトルb(i)と、
係数ベクトル生成部10において後述する方法で生成され
る係数ベクトルK(i)である。そして、ベクトル演算
により、 p=a(i)+K(i)*b(i) q=a(i)−K(i)*b(i) を計算する。
子を第2図に示す。使用するベクトルは、第iステージ
の図中上下に分割されたベクトル長4の第1のデータベ
クトルa(i)及び第2のデータベクトルb(i)と、
係数ベクトル生成部10において後述する方法で生成され
る係数ベクトルK(i)である。そして、ベクトル演算
により、 p=a(i)+K(i)*b(i) q=a(i)−K(i)*b(i) を計算する。
次に、得られたp,qを連結したn要素のベクトルの各要
素を1つおきに配置していくことにより、i+1段のデ
ータベクトルa(i+1),b(i+1)が求められる。
素を1つおきに配置していくことにより、i+1段のデ
ータベクトルa(i+1),b(i+1)が求められる。
次に係数ベクトルKについて説明する。係数ベクトルK
は、第1図に示すように、第1ステージではW0を4回繰
返したベクトル、第2ステージではW0,W2を2回繰返し
たベクトル、第3ステージではW0,W2,W1,W3からなるベ
クトルである。つまり、第iステージの係数ベクトルK
(i)は、0から2i−1−1までの一連の値を2
r−i回繰返してなる数値列に対し、ビット反転(ビッ
トの順序を変える)処理を行なった数値列をWの添字と
するベクトルである。
は、第1図に示すように、第1ステージではW0を4回繰
返したベクトル、第2ステージではW0,W2を2回繰返し
たベクトル、第3ステージではW0,W2,W1,W3からなるベ
クトルである。つまり、第iステージの係数ベクトルK
(i)は、0から2i−1−1までの一連の値を2
r−i回繰返してなる数値列に対し、ビット反転(ビッ
トの順序を変える)処理を行なった数値列をWの添字と
するベクトルである。
この係数ベクトルは、例えば第4図に示すような回路に
よって得ることができる。係数テーブル100は、係数デ
ータKの各要素Wをビット逆順に格納したテーブルであ
る。カウンタ(RA)110は、係数テーブル100から係数ベ
クトルKを1要素読出す毎にインクリメントされる。第
1のレジスタ(RB)120は、第iステージで2i−1−
1にセットされる。この例では、第1ステージで00、第
2ステージで01、第3ステージで11がセットされる。第
2のレジスタ(A)130は、前記係数テーブル100の先頭
アドレス(この例では0)が格納されている。そして、
上記カウンタ(RA)110の出力と第1のレジスタ(RB)1
20の出力とはアンドゲート140で論理積されることによ
り、第1ステージでは全て0、第2ステージではRAの1
ビット目を有効にし、第3ステージではRAの全てのビッ
トを有効にするようにしている。そして、このアンドゲ
ート140の出力とレジスタ(A)130に格納された係数テ
ーブルの先頭アドレスとを加算器150において加算する
ことにより、その加算結果を係数テーブル110のアドレ
スとして与えるようにしている。このような回路を用い
れば前述した各ステージの係数が得られる。
よって得ることができる。係数テーブル100は、係数デ
ータKの各要素Wをビット逆順に格納したテーブルであ
る。カウンタ(RA)110は、係数テーブル100から係数ベ
クトルKを1要素読出す毎にインクリメントされる。第
1のレジスタ(RB)120は、第iステージで2i−1−
1にセットされる。この例では、第1ステージで00、第
2ステージで01、第3ステージで11がセットされる。第
2のレジスタ(A)130は、前記係数テーブル100の先頭
アドレス(この例では0)が格納されている。そして、
上記カウンタ(RA)110の出力と第1のレジスタ(RB)1
20の出力とはアンドゲート140で論理積されることによ
り、第1ステージでは全て0、第2ステージではRAの1
ビット目を有効にし、第3ステージではRAの全てのビッ
トを有効にするようにしている。そして、このアンドゲ
ート140の出力とレジスタ(A)130に格納された係数テ
ーブルの先頭アドレスとを加算器150において加算する
ことにより、その加算結果を係数テーブル110のアドレ
スとして与えるようにしている。このような回路を用い
れば前述した各ステージの係数が得られる。
さて、第1図に戻って、各ステージでの演算結果を追っ
て行くと、まず、第1ステージでは、 で表すベクトル長4のバタフライ演算が行なわれる。こ
の結果を1つおきに配置した後、第2ステージでは、 で表すベクトル長4のバタフライ演算が行なわれる。さ
らに、この結果を1つおきに配置した後、第3ステージ
では、 で表すベクトル長4のバタフライ演算を行なう。ここ
で、得られた結果を更に1おきに配置し、Wk=−W
k+n/2であることを考慮すると、前述した従来の結果
と同一の結果が得られたことが分る。そして、このベク
トル計算機によれば、第1ステージから第3ステージの
全てのバタフライ演算がベクトル長4のベクトル演算に
よって行われているので、ベクトル計算機の性能を十分
に発揮させることができる。
て行くと、まず、第1ステージでは、 で表すベクトル長4のバタフライ演算が行なわれる。こ
の結果を1つおきに配置した後、第2ステージでは、 で表すベクトル長4のバタフライ演算が行なわれる。さ
らに、この結果を1つおきに配置した後、第3ステージ
では、 で表すベクトル長4のバタフライ演算を行なう。ここ
で、得られた結果を更に1おきに配置し、Wk=−W
k+n/2であることを考慮すると、前述した従来の結果
と同一の結果が得られたことが分る。そして、このベク
トル計算機によれば、第1ステージから第3ステージの
全てのバタフライ演算がベクトル長4のベクトル演算に
よって行われているので、ベクトル計算機の性能を十分
に発揮させることができる。
なお、上記実施例では、係数ベクトルを得るのに、第4
図で示した回路を用いたが、例えば第5図に示すよう
に、係数テーブル200には係数ベクトルKの各要素Wを
正規の順番に格納し、加算器150の出力をビット反転部2
10によってビット反転させた値をアドレスとして上記係
数テーブル200をアクセスするようにしても良い。
図で示した回路を用いたが、例えば第5図に示すよう
に、係数テーブル200には係数ベクトルKの各要素Wを
正規の順番に格納し、加算器150の出力をビット反転部2
10によってビット反転させた値をアドレスとして上記係
数テーブル200をアクセスするようにしても良い。
また、上記実施例ではn=8の場合について説明した
が、その他の数についても、本発明の要旨を逸脱しない
範囲で適用可能であることはいうまでもない。
が、その他の数についても、本発明の要旨を逸脱しない
範囲で適用可能であることはいうまでもない。
[発明の効果] 以上述べたように、本発明によれば、各ステージにおけ
るバタフライ演算結果を1つおきに配置し直し、これに
対応した係数データを生成するようにしているので、各
ステージにおいてベクトル長を長く保ったままでベクト
ル演算を行なうことができる。このため、本発明によれ
ば、FFTにおいて更に高速な処理を行なうことができ
る。
るバタフライ演算結果を1つおきに配置し直し、これに
対応した係数データを生成するようにしているので、各
ステージにおいてベクトル長を長く保ったままでベクト
ル演算を行なうことができる。このため、本発明によれ
ば、FFTにおいて更に高速な処理を行なうことができ
る。
第1図は本発明一実施例に係るベクトル計算機における
バタフライ演算処理の流れを説明するための図、第2図
は同バタフライ処理における第iステージの処理を説明
するための図、第3図はFFT処理の流れ図、第4図は本
実施例における係数ベクトル生成部の詳細な構成を示す
回路図、第5図は係数ベクトルの他の構成例を示す回路
図、第6図は従来のバタフライ演算を説明するための図
である。 10……係数ベクトル生成部、11……バタフライ演算部、
12……データ順序復元部、100,200……係数テーブル、1
10……カウンタ、120……第1のレジスタ、130……第2
のレジスタ、140……アンドゲート、150……加算器、21
0……ビット反転部。
バタフライ演算処理の流れを説明するための図、第2図
は同バタフライ処理における第iステージの処理を説明
するための図、第3図はFFT処理の流れ図、第4図は本
実施例における係数ベクトル生成部の詳細な構成を示す
回路図、第5図は係数ベクトルの他の構成例を示す回路
図、第6図は従来のバタフライ演算を説明するための図
である。 10……係数ベクトル生成部、11……バタフライ演算部、
12……データ順序復元部、100,200……係数テーブル、1
10……カウンタ、120……第1のレジスタ、130……第2
のレジスタ、140……アンドゲート、150……加算器、21
0……ビット反転部。
Claims (2)
- 【請求項1】n(=2r)個の要素からなるベクトルデ
ータを、n/2個の要素からなる第1のデータベクトルと
第2のデータベクトルとに分割するとともに、これら両
データベクトルとn/2個の要素からなる係数ベクトルと
を用いてバタフライ演算を行ない、得られた演算結果ベ
クトルのn個の要素を1つおきに配置し直す処理を、r
ステージ繰返す手段と、この手段で各ステージ毎に使用
される前記係数ベクトルを生成する手段とを具備し、前
記係数ベクトルを生成する手段は、第iステージの係数
ベクトルとして、0から2i−1−1までの一連の値を
2r−i回繰返してなる数値列に対し、各数値のビット
の順序を逆順にした数値列を要素番号列とする係数ベク
トルを与えるものであることを特徴とするベクトル計算
機。 - 【請求項2】前記係数ベクトルを生成する手段は、前記
係数ベクトルの各要素をその要素番号のビット逆順に記
憶した係数テーブルと、前記係数テーブルから係数ベク
トルを1要素読出す毎にカウントアップするカウンタ
と、第iステージで2i−1−1にセットされる第1の
レジスタと、前記係数テーブルの先頭アドレスが格納さ
れた第2のレジスタと、前記カウンタの出力と前記第1
のレジスタの出力との論理積に前記第2のレジスタの値
を加算して前記係数データのアドレスとして出力する演
算手段とを具備したものであることを特徴とする特許請
求の範囲第1項記載のベクトル計算機。
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP62219154A JPH06105458B2 (ja) | 1987-09-03 | 1987-09-03 | ベクトル計算機 |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP62219154A JPH06105458B2 (ja) | 1987-09-03 | 1987-09-03 | ベクトル計算機 |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| JPS6462765A JPS6462765A (en) | 1989-03-09 |
| JPH06105458B2 true JPH06105458B2 (ja) | 1994-12-21 |
Family
ID=16731048
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP62219154A Expired - Lifetime JPH06105458B2 (ja) | 1987-09-03 | 1987-09-03 | ベクトル計算機 |
Country Status (1)
| Country | Link |
|---|---|
| JP (1) | JPH06105458B2 (ja) |
-
1987
- 1987-09-03 JP JP62219154A patent/JPH06105458B2/ja not_active Expired - Lifetime
Also Published As
| Publication number | Publication date |
|---|---|
| JPS6462765A (en) | 1989-03-09 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| JP3749022B2 (ja) | 高速フーリエ変換を用いて短い待ち時間でアレイ処理を行う並列システム | |
| JP2744091B2 (ja) | 有限体の乗法的逆数元を計算するデータ処理方法及び装置 | |
| US3517173A (en) | Digital processor for performing fast fourier transforms | |
| JPS58169675A (ja) | モノリシツク型高速フ−リエ変換回路 | |
| JP5549442B2 (ja) | Fft演算装置 | |
| JPH0514936B2 (ja) | ||
| JPH06105458B2 (ja) | ベクトル計算機 | |
| JP2737933B2 (ja) | 除算装置 | |
| JPH0148582B2 (ja) | ||
| JP2835366B2 (ja) | 高速フーリエ変換用アドレス情報発生装置 | |
| JPS6259828B2 (ja) | ||
| JPH04364525A (ja) | 並列演算装置 | |
| JP3135252B2 (ja) | アドレス指定装置 | |
| JP2696903B2 (ja) | 数値計算装置 | |
| JP3693873B2 (ja) | マスクビット数演算装置、ベクトル処理装置、情報処理装置 | |
| JPS6041391B2 (ja) | バタフライ演算回路 | |
| JP2025184236A (ja) | 数論変換装置、数論変換方法及び数論変換用プログラム | |
| JP2751531B2 (ja) | ループコードfft演算方式 | |
| JPH02134919A (ja) | クロック分配回路の製造方法 | |
| CN117763273A (zh) | 复数向量卷积处理方法、装置、计算机设备及存储介质 | |
| JPS58205281A (ja) | 高速フ−リエ変換装置 | |
| JPS58205256A (ja) | データ処理方法 | |
| JPH01177637A (ja) | アドレス計算回路 | |
| JPS6151268A (ja) | デ−タ処理装置 | |
| JPH0230062B2 (ja) |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| EXPY | Cancellation because of completion of term |