JPH11203272A - 高速フーリエ変換処理装置、高速フーリエ変換処理システムおよび高速フーリエ変換処理方法 - Google Patents

高速フーリエ変換処理装置、高速フーリエ変換処理システムおよび高速フーリエ変換処理方法

Info

Publication number
JPH11203272A
JPH11203272A JP10015971A JP1597198A JPH11203272A JP H11203272 A JPH11203272 A JP H11203272A JP 10015971 A JP10015971 A JP 10015971A JP 1597198 A JP1597198 A JP 1597198A JP H11203272 A JPH11203272 A JP H11203272A
Authority
JP
Japan
Prior art keywords
data
result
fast fourier
fourier transform
complex
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
JP10015971A
Other languages
English (en)
Other versions
JP3938238B2 (ja
Inventor
Hideo Mizutani
秀夫 水谷
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.)
Oki Electric Industry Co Ltd
Original Assignee
Oki Electric Industry 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 Oki Electric Industry Co Ltd filed Critical Oki Electric Industry Co Ltd
Priority to JP01597198A priority Critical patent/JP3938238B2/ja
Priority to TW087101271A priority patent/TW420907B/zh
Priority to US09/018,530 priority patent/US6230176B1/en
Priority to KR10-1998-0003103A priority patent/KR100390326B1/ko
Priority to EP98101915A priority patent/EP0856801A1/en
Publication of JPH11203272A publication Critical patent/JPH11203272A/ja
Application granted granted Critical
Publication of JP3938238B2 publication Critical patent/JP3938238B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related 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)【要約】 (修正有) 【課題】 基数2および基数4のフーリエ変換処理を高
速で行う。 【解決手段】 サンプル点数が4n ×2個または4n
の複素数データをA〜Dに4分割した後でA〜Dのi番
目の複素数データAi ,Bi ,Ci ,Di とひねり係数
i1,Wi2,Wi3,Wi4を用いたバタフライ演算ai
{(Ai +Ci )+(Bi +Di )}×Wi1、ci
{(Ai +Ci )−(Bi +Di )}×Wi3、bi
{(Ai −Ci )−j(Bi −Di )}×Wi2、di
{(Ai −Ci)+j(Bi −Di )}×Wi4を行う演
算処理をn回繰り返した後、サンプル点数が4n ×2個
の場合にはバタフライ演算ai =Ai +Bi 、bi =A
i −Bi、ci =Ci +Di 、di =Ci −Di を1回
行う。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】この発明は、例えば音声信号
等の信号解析やデジタル伝送の変復調処理に使用する高
速フーリエ変換処理に関するものであり、より詳細に
は、離散的な複素数入力信号の系列に対して可変サンプ
ル点の高速フーリエ変換処理またはその逆変換処理を実
行する高速フーリエ変換処理に関するものである。
【0002】
【従来の技術】従来、例えば音声信号の信号解析やデジ
タル伝送の変復調処理等において、高速フーリエ変換処
理装置が使用されている。かかる高速フーリエ変換処理
装置としては、例えば、“ISSCC89,Digest,pp166-167,3
27,THPM12.5:A200MIPS Single-Chip 1K FFT Processor
”に記載されたものが知られている。
【0003】この文献に記載された高速フーリエ変換処
理装置では、2ポートRAM、ひねり係数ROM、複数
の演算器からなるデータパスを用いて演算処理を行う構
成となっている。また、この装置では、複数のデータパ
スを備えており、並列処理を行うことによって内部演算
のスループットを向上させている。
【0004】このデータパスは、乗算器と加減算器とを
レジスタファイルで挟んでなるパイプライン構成を備え
ており、入力された複素数データを時間領域から周波数
領域へ変換するフーリエ変換や、周波数領域から時間領
域に変換するフーリエ逆変換を、パイプライン処理によ
って実行する。
【0005】また、このデータパスは、サンプル点数が
1024点の場合、256点の場合、64点の場合につ
いて、基数4のアルゴリズムに基づく高速フーリエ変換
を実行する。
【0006】しかしながら、上述の文献に開示されてい
るような従来の高速フーリエ変換処理装置は、データパ
スアーキテクチャが基数4の高速フーリエ変換アルゴリ
ズム用のものであるため、高速フーリエ変換のサンプル
点数が4のべき乗であるときは高速の処理が可能である
ものの、それ以外の数値である場合には処理効率が非常
に悪くなってしまうという欠点があった。例えば、サン
プル点数が512(44 ×2)点の場合や128(43
×2)点の場合は、高速フーリエ変換処理を行うこと自
体は可能であるものの、非常に効率が悪い処理を行わな
ければならないので、処理速度が遅くなる。
【0007】また、従来の高速フーリエ変換処理装置に
は、内部ワーキングメモリが不足する場合には複数個の
装置を並列接続して処理を行うことができるが、この処
理を行う場合には外付部品として複素加減算器、複素乗
算器、作業用メモリ等を新たに追加してシステムの構築
を行わなければならず、装置規模が非常に大きくなって
しまうという欠点があった。例えば、上述の文献に開示
されている高速フーリエ変換処理装置では、単一の装置
では1024点を越えるサンプル点数の高速フーリエ変
換を行うことができないため、例えばサンプル点数が2
048点の場合や4096点の場合には、上述のような
新たなシステムを構築しなければならない。
【0008】このような理由により、基数4または基数
2のいずれの高速フーリエ変換アルゴリズムにも対応す
ることができ、また、サンプル点数を2倍に拡張する場
合に外付部品を用いることなく単に複数個のチップを接
続するだけでよい高速フーリエ変換処理装置の登場が嘱
望されていた。
【0009】
【課題を解決するための手段】(1)第1の発明に係る
高速フーリエ変換処理装置は、離散値の複素数データを
入力して、可変サンプル点数の高速フーリエ変換演算を
基数4または基数2のアルゴリズムで実行する高速フー
リエ変換処理装置に関するものである。
【0010】そして、サンプル点数が4n ×2個または
n 個(nは自然数)の複素数データを外部から入力し
て1つのグループとして一時的に記憶する作業用記憶手
段と、この作業用記憶手段に記憶された複素数データの
各グループを計算列とサンプル点番号とにしたがって4
個のグループA,B,C,Dに分割し、分割後の各グル
ープA,B,C,Dに属するi番目の複素数データA
i ,Bi ,Ci ,Di とひねり係数Wi1,Wi2,Wi3
i4を用いた演算 ai ={(Ai +Ci )+(Bi +Di )}×Wi1 ・・・(1) ci ={(Ai +Ci )−(Bi +Di )}×Wi3 ・・・(2) bi ={(Ai −Ci )−j(Bi −Di )}×Wi2 ・・・(3) di ={(Ai −Ci )+j(Bi −Di )}×Wi4 ・・・(4) をすべてのiについて実行するとともにその結果である
i ,bi ,ci ,diを作業用記憶手段に複素数デー
タAi ,Bi ,Ci ,Di としてそれぞれ記憶する一連
の演算処理をn回繰り返し、サンプル点数が4n ×2個
の場合にはさらにこの演算処理によって得られた複素数
データAi ,Bi ,Ci ,Di を用いた演算 ai =Ai +Bi ・・・(5) bi =Ai −Bi ・・・(6) ci =Ci +Di ・・・(7) di =Ci −Di ・・・(8) をすべてのiについて実行するとともにその結果である
i ,bi ,ci ,diを作業用記憶手段にそれぞれ記
憶する演算処理を1回行う演算手段とを備える。
【0011】(2)第2の発明に係る高速フーリエ変換
処理装置は、離散値の複素数データを入力して、可変サ
ンプル点数の高速フーリエ変換演算を基数4または基数
2のアルゴリズムで実行する高速フーリエ変換処理装置
に関するものである。
【0012】そして、サンプル点数が4n ×2個または
n 個(nは自然数)の複素数データを外部から入力し
て1つのグループとして一時的に記憶する作業用記憶手
段と、この作業用記憶手段に記憶された複素数データの
各グループを計算列とサンプル点番号とにしたがって1
6個のグループAG1,BG1,CG1,DG1,AG2,BG2
G2,DG2,AG3,BG3,CG3,DG3,AG4,BG4,C
G4,DG4に分割し、分割後の各グループの組合せ
{AG1,BG1,CG1,DG1},{AG2,BG2,CG2,D
G2},{AG3,BG3,CG3,DG3},{AG4,BG4,C
G4,DG4}のそれぞれについて、各組合わせの各グルー
プに属するi番目の複素数データAi ,Bi ,Ci ,D
i とひねり係数Wi1,Wi2,Wi3,Wi4を用いた演算 ai ={(Ai +Ci )+(Bi +Di )}×Wi1 ・・・(1) ci ={(Ai +Ci )−(Bi +Di )}×Wi3 ・・・(2) bi ={(Ai −Ci )−j(Bi −Di )}×Wi2 ・・・(3) di ={(Ai −Ci )+j(Bi −Di )}×Wi4 ・・・(4) を実行する第1の演算手段と、この第1の演算手段の演
算結果ai ,bi ,ci,di を4個ずつ取り込んで4
行4列の行列を形成した後でこの行列を転置し、これに
より得られた転置行列を構成する複素数データを1列ず
つ出力する転置手段と、この転置手段から入力した複素
数データをAi ,Bi ,Ci ,Di として演算(1)〜
(4)を順次行うとともにその結果であるai ,bi
i ,diを作業用記憶手段にグループの組合せ
{AG1,AG2,AG3,AG4},{BG1,BG2,BG3,B
G4},{CG1,CG2,CG3,CG4},{DG1,DG2,D
G3,DG4}に順次記憶させる第2の演算手段とを備え
る。
【0013】(3)第3の発明に係る高速フーリエ変換
処理装置は、離散値の複素数データを入力して、可変サ
ンプル点数の高速フーリエ変換演算を基数4または基数
2のアルゴリズムで実行する高速フーリエ変換処理装置
に関するものである。
【0014】そして、サンプル点数が2N(N=4n ×
2または4n ;nは自然数)個の複素数データを外部か
ら入力して1つのグループとして一時的に記憶する作業
用記憶手段と、この作業用記憶手段に記憶された複素数
データの各グループを計算列とサンプル点番号とにした
がって8個のグループA1 ,B1 ,C1 ,D1 ,A2
2 ,C2 ,D2 に分割し、分割後の各グループA1
1 ,C1 ,D1 ,A2 ,B2 ,C2 ,D2 に属するi
番目の複素数データA1i,B1i,C1i,D1i,A2i,B
2i,C2i,D2iとひねり係数W1i1 ,W1i2 ,W1i3
1i4 ,W2i1,W2i2 ,W2i3 ,W2i4 を用いた演算 a1i={(A1i+C1i)+(B1i+D1i)}×W1i1 ・・・(1) c1i={(A1i+C1i)−(B1i+D1i)}×W1i3 ・・・(2) b1i={(A1i−C1i)−j(B1i−D1i)}×W1i2 ・・・(3) d1i={(A1i−C1i)+j(B1i−D1i)}×W1i4 ・・・(4) a2i={(A2i+C2i)+(B2i+D2i)}×W2i1 ・・・(5) c2i={(A2i+C2i)−(B2i+D2i)}×W2i3 ・・・(6) b2i={(A2i−C2i)−j(B2i−D2i)}×W2i2 ・・・(7) d2i={(A2i−C2i)+j(B2i−D2i)}×W2i4 ・・・(8) をすべてのiについて実行するとともにその結果である
1i,b1i,c1i,d1i,a2i,b2i,c2i,d2iを作
業用記憶手段に複素数データA1i,B1i,C1i,D1i
2i,B2i,C2i,D2iとしてそれぞれ記憶する一連の
演算処理を1回行った後、作業記憶手段に記憶された複
素数データを計算列とサンプル点番号とにしたがって4
個のグループに分割する処理を1回行い、さらに、これ
らの各グループを計算列とサンプル点番号とにしたがっ
て4個のグループA,B,C,Dに分割し、分割後の各
グループA,B,C,Dに属するi番目の複素数データ
i,Bi ,Ci ,Di とひねり係数Wi1,Wi2
i3,Wi4を用いた演算 ai ={(Ai +Ci )+(Bi +Di )}×Wi1 ・・・(9) ci ={(Ai +Ci )−(Bi +Di )}×Wi3 ・・・(10) bi ={(Ai −Ci )−j(Bi −Di )}×Wi2 ・・・(11) di ={(Ai −Ci )+j(Bi −Di )}×Wi4 ・・・(12) をすべてのiについて実行するとともにその結果である
i ,bi ,ci ,diを作業用記憶手段に複素数デー
タAi ,Bi ,Ci ,Di としてそれぞれ記憶する一連
の演算処理をn−1回繰り返し、N=4n ×2の場合に
はさらにこの演算処理によって得られた複素数データA
i ,Bi ,Ci ,Di を用いた演算 ai =Ai +Bi ・・・(13) bi =Ai −Bi ・・・(14) ci =Ci +Di ・・・(15) di =Ci −Di ・・・(16) をすべてのiについて実行するとともにその結果である
i ,bi ,ci ,diを作業用記憶手段にそれぞれ記
憶する演算処理を1回行う演算手段とを備える。
【0015】(4)第4の発明に係る高速フーリエ変換
処理システムは、離散値の複素数データを入力して、可
変サンプル点数の高速フーリエ変換演算を基数4または
基数2のアルゴリズムで実行する高速フーリエ変換処理
装置であって、サンプル点数が4n ×2個または4n
(nは自然数)の複素数データを外部から入力して1つ
のグループとして一時的に記憶する作業用記憶手段と、
この作業用記憶手段に記憶された複素数データの各グル
ープを計算列とサンプル点番号とにしたがって4個のグ
ループA,B,C,Dに分割し、分割後の各グループ
A,B,C,Dに属するi番目の複素数データAi ,B
i ,Ci ,Di とひねり係数Wi1,Wi2,Wi3,Wi4
用いた演算 ai ={(Ai +Ci )+(Bi +Di )}×Wi1 ・・・(1) ci ={(Ai +Ci )−(Bi +Di )}×Wi3 ・・・(2) bi ={(Ai −Ci )−j(Bi −Di )}×Wi2 ・・・(3) di ={(Ai −Ci )+j(Bi −Di )}×Wi4 ・・・(4) をすべてのiについて実行するとともにその結果である
i ,bi ,ci ,diを作業用記憶手段に複素数デー
タAi ,Bi ,Ci ,Di としてそれぞれ記憶する一連
の演算処理をn回繰り返し、サンプル点数が4n ×2個
の場合にはさらにこの演算処理によって得られた複素数
データAi ,Bi ,Ci ,Di を用いた演算 ai =Ai +Bi ・・・(5) bi =Ai −Bi ・・・(6) ci =Ci +Di ・・・(7) di =Ci −Di ・・・(8) をすべてのiについて実行するとともにその結果である
i ,bi ,ci ,diを作業用記憶手段にそれぞれ記
憶する演算処理を1回行う演算手段とを備えた高速フー
リエ変換処理装置の複数個と、これらの高速フーリエ変
換処理装置が、それぞれ、選択的に複素数データを入力
するための入力データ選択回路と、且つ、複数個の高速
フーリエ変換処理装置から選択的に演算処理後の複素数
データを出力させる出力データ選択回路とを備える。
【0016】(5)第5の発明に係る高速フーリエ変換
処理システムは、離散値の複素数データを入力して、可
変サンプル点数の高速フーリエ変換演算を基数4または
基数2のアルゴリズムで実行する高速フーリエ変換処理
装置であって、サンプル点数が4n ×2個または4n
(nは自然数)の複素数データを外部から入力して1つ
のグループとして一時的に記憶する作業用記憶手段と、
この作業用記憶手段に記憶された複素数データの各グル
ープを計算列とサンプル点番号とにしたがって4個のグ
ループA,B,C,Dに分割し、分割後の各グループ
A,B,C,Dに属するi番目の複素数データAi ,B
i ,Ci ,Di とひねり係数Wi1,Wi2,Wi3,Wi4
用いた演算 ai ={(Ai +Ci )+(Bi +Di )}×Wi1 ・・・(1) ci ={(Ai +Ci )−(Bi +Di )}×Wi3 ・・・(2) bi ={(Ai −Ci )−j(Bi −Di )}×Wi2 ・・・(3) di ={(Ai −Ci )+j(Bi −Di )}×Wi4 ・・・(4) をすべてのiについて実行するとともにその結果である
i ,bi ,ci ,diを作業用記憶手段に複素数デー
タAi ,Bi ,Ci ,Di としてそれぞれ記憶する一連
の演算処理をn回繰り返し、サンプル点数が4n ×2個
の場合にはさらにこの演算処理によって得られた複素数
データAi ,Bi ,Ci ,Di を用いた演算 ai =Ai +Bi ・・・(5) bi =Ai −Bi ・・・(6) ci =Ci +Di ・・・(7) di =Ci −Di ・・・(8) をすべてのiについて実行するとともにその結果である
i ,bi ,ci ,diを作業用記憶手段にそれぞれ記
憶する演算処理を1回行う演算手段とを備えた高速フー
リエ変換処理装置の複数個と、外部からの複素数データ
または他の高速フーリエ変換処理装置の出力した複素数
データを選択的に入力させるために、高速フーリエ変換
処理装置ごとに設けられた入力データ選択回路と、それ
ぞれの高速フーリエ変換処理装置から選択的に演算処理
後の複素数データを出力させる出力データ選択回路とを
備える。
【0017】(6)第6の発明に係る高速フーリエ変換
処理方法は、離散値の複素数データを入力して、可変サ
ンプル点数の高速フーリエ変換演算を基数4または基数
2のアルゴリズムで実行する高速フーリエ変換処理方法
に関するものである。
【0018】そして、サンプル点数が4n ×2個または
n 個(nは自然数)の複素数データを外部から入力し
て1つのグループとして一時的に記憶する第1の処理過
程と、一時的に記憶された複素数データの各グループを
計算列とサンプル点番号とにしたがって4個のグループ
A,B,C,Dに分割し、分割後の各グループA,B,
C,Dに属するi番目の複素数データAi ,Bi ,C
i ,Di とひねり係数W i1,Wi2,Wi3,Wi4を用いた
演算 ai ={(Ai +Ci )+(Bi +Di )}×Wi1 ・・・(1) ci ={(Ai +Ci )−(Bi +Di )}×Wi3 ・・・(2) bi ={(Ai −Ci )−j(Bi −Di )}×Wi2 ・・・(3) di ={(Ai −Ci )+j(Bi −Di )}×Wi4 ・・・(4) をすべてのiについて実行するとともにai ,bi ,c
i ,di をAi ,Bi ,Ci ,Di に代入する一連の演
算処理をn回繰り返し、サンプル点数が4n ×2個の場
合にはさらにこの演算処理によって得られた複素数デー
タAi ,Bi ,Ci ,Di を用いた演算 ai =Ai +Bi ・・・(5) bi =Ai −Bi ・・・(6) ci =Ci +Di ・・・(7) di =Ci −Di ・・・(8) をすべてのiについて実行するとともにその結果である
i ,bi ,ci ,diをそれぞれAi ,Bi ,Ci
i に代入する演算処理を1回行う第2の処理過程とを
備える。
【0019】(7)第7の発明に係る高速フーリエ変換
処理方法は、離散値の複素数データを入力して、可変サ
ンプル点数の高速フーリエ変換演算を基数4または基数
2のアルゴリズムで実行する高速フーリエ変換処理方法
に関する。
【0020】そして、サンプル点数が4n ×2個または
n 個(nは自然数)の複素数データを外部から入力し
て1つのグループとして一時的に記憶する第1の処理過
程と、一時的に記憶された複素数データの各グループを
計算列とサンプル点番号とにしたがって16個のグルー
プAG1,BG1,CG1,DG1,AG2,BG2,CG2,DG2
G3,BG3,CG3,DG3,AG4,BG4,CG4,DG4に分
割する第1の演算ステップと、分割後の各グループの組
合せ{AG1,BG1,CG1,DG1},{AG2,BG2
G2,DG2},{AG3,BG3,CG3,DG3},{AG4
G4,CG4,DG4}のそれぞれについて、各組合わせの
各グループに属するi番目の複素数データA i ,Bi
i ,Di とひねり係数Wi1,Wi2,Wi3,Wi4を用い
た演算 ai ={(Ai +Ci )+(Bi +Di )}×Wi1 ・・・(1) ci ={(Ai +Ci )−(Bi +Di )}×Wi3 ・・・(2) bi ={(Ai −Ci )−j(Bi −Di )}×Wi2 ・・・(3) di ={(Ai −Ci )+j(Bi −Di )}×Wi4 ・・・(4) をすべてのiについて実行する第2の演算ステップと、
この第2の演算ステップの演算結果ai ,bi ,ci
i を4個ずつ取り込んで4行4列の行列を形成した後
でこの行列を転置し、これにより得られた転置行列を構
成する複素数データを1列ずつ出力する第3の演算ステ
ップと、これらの複素数データをAi ,Bi ,Ci ,D
i として演算(1)〜(4)をすべてのiについて順次
実行するとともにai ,bi ,ci ,di をグループの
組合せ{AG1,AG2,AG3,AG4},{BG1,BG2,B
G3,BG4},{CG1,CG2,CG3,,CG4},{DG1
G2,DG3,DG4}の各複素数データAi ,Bi ,C
i ,Di に順次代入する第4の演算ステップとからなる
一連の演算処理を演算(1)〜(4)の実行回数が合計
n回となるまで繰り返し、サンプル点数が4n ×2個の
場合にはさらにこの演算処理によって得られた複素数デ
ータAi ,Bi ,Ci ,Di を用いた演算 ai =Ai +Bi ・・・(5) bi =Ai −Bi ・・・(6) ci =Ci +Di ・・・(7) di =Ci −Di ・・・(8) をすべてのiについて実行するとともにその結果である
i ,bi ,ci ,diをそれぞれAi ,Bi ,Ci
i に代入する演算処理を1回行う第2の処理過程とを
備える。
【0021】(8)第8の発明に係る高速フーリエ変換
処理方法は、離散値の複素数データを入力して、可変サ
ンプル点数の高速フーリエ変換演算を基数4または基数
2のアルゴリズムで実行する高速フーリエ変換処理方法
に関するものである。
【0022】そして、サンプル点数が2N(N=4n ×
2または4n ;nは自然数)個の複素数データを外部か
ら入力して1つのグループとして一時的に記憶する第1
の処理過程と、一時的に記憶された複素数データの各グ
ループを計算列とサンプル点番号とにしたがって8個の
グループA1 ,B1 ,C1 ,D1 ,A2 ,B2 ,C2
2 に分割し、分割後の各グループA1 ,B1 ,C1
1 ,A2 ,B2 ,C2 ,D2 に属するi番目の複素数
データA1i,B1i,C1i,D1i,A2i,B2i,C2i,D
2iとひねり係数W1i1 ,W1i2 ,W1i3 ,W1i4 ,W
2i1 ,W2i2 ,W2i3 ,W2i4 を用いた演算 a1i={(A1i+C1i)+(B1i+D1i)}×W1i1 ・・・(1) c1i={(A1i+C1i)−(B1i+D1i)}×W1i3 ・・・(2) b1i={(A1i−C1i)−j(B1i−D1i)}×W1i2 ・・・(3) d1i={(A1i−C1i)+j(B1i−D1i)}×W1i4 ・・・(4) a2i={(A2i+C2i)+(B2i+D2i)}×W2i1 ・・・(5) c2i={(A2i+C2i)−(B2i+D2i)}×W2i3 ・・・(6) b2i={(A2i−C2i)−j(B2i−D2i)}×W2i2 ・・・(7) d2i={(A2i−C2i)+j(B2i−D2i)}×W2i4 ・・・(8) をすべてのiについて実行するとともにその結果である
1i,b1i,c1i,d1i,a2i,b2i,c2i,d2iをA
1i,B1i,C1i,D1i,A2i,B2i,C2i,D2iに代入
する一連の演算処理を1回行った後、作業記憶手段に記
憶された複素数データを計算列とサンプル点番号とにし
たがって4個のグループに分割する処理を1回行い、さ
らに、これらの各グループを計算列とサンプル点番号と
にしたがってさらに4個のグループA,B,C,Dに分
割し、分割後の各グループA,B,C,Dに属するi番
目の複素数データAi ,Bi ,Ci ,Di とひねり係数
i1,Wi2,Wi3,Wi4を用いた演算 ai ={(Ai +Ci )+(Bi +Di )}×Wi1 ・・・(9) ci ={(Ai +Ci )−(Bi +Di )}×Wi3 ・・・(10) bi ={(Ai −Ci )−j(Bi −Di )}×Wi2 ・・・(11) di ={(Ai −Ci )+j(Bi −Di )}×Wi4 ・・・(12) をすべてのiについて実行するとともにその結果である
i ,bi ,ci ,diをAi ,Bi ,Ci ,Di に代
入する一連の演算処理をn−1回繰り返し、N=4n ×
2の場合にはさらにこの演算処理によって得られた複素
数データAi ,Bi ,Ci ,Di を用いた演算 ai =Ai +Bi ・・・(17) bi =Ai −Bi ・・・(18) ci =Ci +Di ・・・(19) di =Ci −Di ・・・(20) をすべてのiについて実行するとともにその結果である
i ,bi ,ci ,diをAi ,Bi ,Ci ,Di に代
入する演算処理を1回行う第2の処理過程とを備える。
【0023】(9)第9の発明に係る高速フーリエ変換
処理方法は、離散値の複素数データを入力して、サンプ
ル点数がN個の高速フーリエ変換演算を基数4または基
数2のアルゴリズムで実行する第1の高速フーリエ変換
処理装置および第2の高速フーリエ変換処理装置を設け
てなる高速フーリエ変換処理システムを用いて、サンプ
ル点数が2N個の高速フーリエ変換処理を行なう高速フ
ーリエ変換処理方法に関するものである。
【0024】そして、外部から入力された2N個(N=
n ×2個または4n 個;nは自然数)の複素数データ
を、サンプル点番号にしたがってN/4個ずつ第1の高
速フーリエ変換処理装置および第2の高速フーリエ変換
処理装置の各作業用記憶手段にそれぞれ交互に格納する
ことにより、これらの作業用記憶手段に複素数データを
それぞれ1グループとして記憶させる第1の処理過程
と、第1の高速フーリエ変換処理装置および第2の高速
フーリエ変換処理装置の作業用記憶手段に記憶された複
素数データの各グループを計算列とサンプル点番号とに
従って4個のグループA,B,C,Dにそれぞれ分割
し、分割後の各グループA,B,C,Dに属するi番目
の複素数データAi ,Bi ,Ci ,Di とひねり係数W
i1,Wi2,Wi3,Wi4を用いた演算 ai ={(Ai +Ci )+(Bi +Di )}×Wi1 ・・・(1) ci ={(Ai +Ci )−(Bi +Di )}×Wi3 ・・・(2) bi ={(Ai −Ci )−j(Bi −Di )}×Wi2 ・・・(3) di ={(Ai −Ci )+j(Bi −Di )}×Wi4 ・・・(4) をすべてのiについて実行するとともにその結果である
i ,bi ,ci ,diを作業用記憶手段に複素数デー
タAi ,Bi ,Ci ,Di としてそれぞれ記憶し、さら
に、第1の高速フーリエ変換処理装置のグループC,D
に属する複素数データと第2の高速フーリエ変換処理装
置のグループA,Bに属する複素数データとをそれぞれ
入れ替えたのち、第1の高速フーリエ変換処理装置およ
び第2の高速フーリエ変換処理装置のそれぞれについて
グループBに属する複素数データとグループCに属する
複素数データを入れ替える第2の処理過程と、第1の高
速フーリエ変換処理装置および第2の高速フーリエ変換
処理装置の作業用記憶手段に記憶された複素数データの
各グループを計算列とサンプル点番号とに従ってさらに
4個のグループA,B,C,Dにそれぞれ分割し、分割
後の各グループA,B,C,Dに属するi番目の複素数
データAi ,Bi ,Ci ,Di とひねり係数Wi1
i2,Wi3,Wi4を用いて演算(1)〜(4)をすべて
のiについて実行するとともにその結果であるai ,b
i ,ci ,di を作業用記憶手段に複素数データAi
i ,Ci ,Di としてそれぞれ記憶する一連の演算処
理をn−1回繰り返し、サンプル点数が4n ×2個の場
合にはさらにこの演算処理によって得られた複素数デー
タAi ,Bi ,Ci ,Di を用いた演算 ai =Ai +Bi ・・・(5) bi =Ai −Bi ・・・(6) ci =Ci +Di ・・・(7) di =Ci −Di ・・・(8) をすべてのiについて実行するとともにその結果である
i ,bi ,ci ,diを作業用記憶手段にAi ,B
i ,Ci ,Di としてそれぞれ記憶する演算処理を1回
行う第3の処理過程とを備える。
【0025】
【発明の実施の形態】以下、この発明の実施の形態につ
いて、図面を用いて説明する。なお、図中、各構成成分
の大きさ、形状および配置関係は、この発明が理解でき
る程度に概略的に示してあるにすぎず、また、以下に説
明する数値的条件は単なる例示にすぎないことを理解さ
れたい。
【0026】第1の実施の形態 以下、この発明の第1の実施の形態について、図1〜図
3を用いて説明する。なお、この実施の形態では、サン
プル点数が2048点の場合を例にとって説明する。
【0027】図1は、この実施の形態に係る高速フーリ
エ変換処理装置の構成を概略的に示すブロック図であ
る。
【0028】同図に示したように、外部データの実数部
を入力する入力端子101と虚数部を入力する入力端子
102とは、それぞれ、レジスタ103,104の入力
端に接続されている。そして、これらのレジスタ10
3,104の出力端は、セレクタ105,106の一方
の入力端に接続されている。また、セレクタ105,1
06の出力データは、作業用RAM107に取り込まれ
る。
【0029】この作業用RAM107は、データ入力バ
ッファ部107aと、実数データ記憶部107bと、虚
数データ記憶部107cと、データ出力バッファ部10
7dとを備えている。この作業用RAM107には、2
048点の複素数データを格納することができる。
【0030】かかる作業用RAM107の出力データ
は、第1のデータパス108および第2のデータパス1
09に入力される。また、sin/cos係数用ROM
110はひねり係数を記憶している。そして、このsi
n/cos係数用ROM110から出力されたひねり係
数も、第1のデータパス108および第2のデータパス
109に入力される。
【0031】第1のデータパス108および第2のデー
タパス109は、入力データおよびひねり係数を用いて
後述するような演算処理を行い、演算結果を示すデータ
を出力する。そして、この出力データは、作業用RAM
107に、セレクタ105,106を介して入力され
る。続いて、この作業用RAM107の出力信号が、そ
れぞれ、セレクタ111,112に入力される。そし
て、これらのセレクタ111,112の出力信号は、レ
ジスタ113,114を介して、実数部用の出力端子1
15および虚数部用の出力端子116に供給される。
【0032】セレクタ111,112には、上述したデ
ータパス108,109の出力信号の他、作業用RAM
107の出力信号およびsin/cos係数用ROM1
10の出力信号も入力される。そして、後述するシーケ
ンス制御部119の制御によって選択された信号を、レ
ジスタ113,114を介して、出力端子115,11
6に供給する。
【0033】クロック生成部117は、外部から入力し
たシステムクロック信号SCLKを変換して、メモリア
ドレス発生部118およびシーケンス制御部119に供
給する。
【0034】メモリアドレス発生部118は、クロック
生成部117から入力されたクロック信号のタイミング
にしたがってアドレス信号を発生させ、作業用RAM1
07およびsin/cos係数用ROM110に供給す
る。
【0035】シーケンス制御部119は、外部から入力
された状態制御信号およびクロック生成部117から入
力されたクロック信号にしたがって、作業用RAM10
7、データパス108,109およびsin/cos係
数用ROM110の動作を制御するとともに、セレクタ
105,106,111,112の出力信号を選択す
る。また、外部に対して、状態表示信号を出力すること
もできる。
【0036】図2(A)は、図1に示した第1のデータ
パス108および第2のデータパス109の内部構造を
概念的に示したものである。
【0037】同図に示したように、これらのデータパス
108,109は、一段目の演算器として、加算器20
1,202と、減算器203と、複素減算器204とを
備えている。そして、加算器201は演算Ai +C
i を、加算器202は演算Bi +Di を、減算器203
は演算Ai −Ci を、複素減算器204は演算j(Bi
−Di )を行う。また、これらの4個の演算器201〜
204は、それぞれバイパス211〜214を有してお
り、これらの演算を行うことなく、データAi ,Bi
i ,Di をそのまま二段目の演算器221〜224に
転送することもできる。なお、一段目の演算器201〜
204での演算を行うのか或いはバイパス211〜21
4を用いてデータをそのまま転送するのかの制御は、シ
ーケンス制御部119が行う。
【0038】また、二段目の演算器としては、図2
(A)に示したように、加算器221,223および減
算器222,224が設けられている。そして、加算器
221は一段目の加算器201,202の出力値(また
はバイパス211,212から取り込まれたデータ)の
加算を行い、減算器222は一段目の加算器201,2
02の出力値(またはバイパス211,212から取り
込まれたデータ)の減算を行い、加算器223は一段目
の減算器203の出力値と複素減算器204の出力値と
(またはバイパス213,214から取り込まれたデー
タ)の加算を行い、減算器224は一段目の減算器20
3の出力値と複素減算器204の出力値と(またはバイ
パス213,214から取り込まれたデータ)の減算を
行う。
【0039】さらに、三段目の演算器としては、図2
(A)に示したように、乗算器231,232,23
3,234が設けられている。そして、乗算器231は
二段目の加算器221の出力値に対してsin/cos
係数用ROM110から入力されたひねり係数W1 また
は「1」(同図では信号S1 )を掛けた数ai を出力
し、乗算器232は減算器222の出力値に対してひね
り係数W3 または「1」(同図では信号S2 )を掛けた
数ci を出力し、乗算器233は加算器223の出力値
に対してひねり係数W2 または「1」(同図では信号S
3 )を掛けた数bi を出力し、乗算器234は減算器2
24の出力値に対してひねり係数W4 または「1」(同
図では信号S4 )を掛けた数di を出力する。なお、こ
れらの乗算器231〜234で二段目の演算器221〜
224の出力値にsin/cos係数用ROM110か
ら入力されたひねり係数を掛けるか「1」を掛けるかの
制御は、シーケンス制御部119が行う。
【0040】この実施の形態では、後述するように、基
数が4の演算処理を行う場合には、一段目の各演算器2
01〜204による演算を行い(すなわちバイパス21
1〜214を使用せず)、且つ、三段目の各演算器23
1〜234ではひねり係数を掛ける。このときの第1の
データパス108および第2のデータパス109の等価
回路を図2(B)に示す。
【0041】一方、基数が2の演算処理を行う場合に
は、一段目はバイパス211〜214を使用してデータ
の転送のみを行い(すなわち演算器201〜204によ
る演算は行わず)、且つ、三段目の各演算器231〜2
34では「1」を掛ける。このときの第1のデータパス
および第2のデータパス109の等価回路を図2(C)
に示す。
【0042】この実施の形態に係る高速フーリエ変換処
理演算の演算式は周知であるが、例としてサンプル点数
が2048の場合を、表1、表2に示す。
【0043】
【表1】
【0044】
【表2】
【0045】次に、図1に示した作業用RAM107の
内部構造について、図3を用いて説明する。
【0046】同図に示したように、この作業用RAM1
07は、情報を記憶するためのメモリアレイ部301〜
304と、これらのメモリアレイ部301〜304に書
き込むデータを一時的に保持するための書き込みデータ
レジスタ311〜314と、書き込みデータあるいは読
み出しデータの番地を指定する際にアドレスデータを一
時的に保持するためのアドレスレジスタ321〜324
と、このメモリアレイ部301〜304から出力データ
を選択するための出力セレクタ331と、4個の出力セ
レクタから出力されたデータを一時的に保持するための
出力レジスタ332とを備えている。
【0047】なお、ここではメモリアレイ部や各レジス
タを4個づつに分離した構成を採用したが、この構成は
必須ではない。但し、リード/ライトを同時に行うため
には、2個以上に分離するか、または、マルチポートの
メモリアレイを用いた方がよい。
【0048】次に、図1に示した高速フーリエ変換処理
装置の動作について説明する。
【0049】まず、被処理データ(複素数)が、実数部
と虚数部とに分けられて、入力端子101,102から
装置内に入力される。このとき、セレクタ105,10
6では、シーケンス制御部119によって、レジスタ1
03,104からの入力が選択されている。このため、
被処理データのうち、実数部は作業用RAM107の実
数データ記憶部107bに、虚数部は同RAM107の
虚数データ記憶部107cに、それぞれ格納される。こ
のようにして、2048点分の複素数データが、順次、
作業用RAM107に格納される。
【0050】作業用RAM107への被処理データの格
納が終了すると、続いて、これらの被処理データを用い
て高速フーリエ変換処理を行う。
【0051】なお、この実施の形態ではサンプル点数を
2048(45 ×2)としているので、以下に説明する
ように、基数4の演算処理を5回繰り返した後、基数2
の演算処理を1回行う。
【0052】まず、1回目の演算処理(基数4)につい
て説明する。
【0053】この演算処理では、図4のステージ1(な
お、各ステージはこの発明の「計算列」に相当する)に
示したように、作業用RAM107に格納された複素数
データを、格納されたアドレス(この発明の「サンプル
点番号」と一致する)にしたがって4個のグループに分
けて扱う。すなわち、0番地から511番地までに格納
された複素数データをグループA、512番地から10
23番地までに格納された複素数データをグループB、
1024番地から1535番地までに格納された複素数
データをグループC、1536番地から2047番地ま
でに格納された複素数データをグループDとする。
【0054】最初に、作業用RAM107は、グループ
A,B,C,Dのそれぞれ最初の複素数データ(すなわ
ち、0番地、512番地、1024番地および1536
番地の複素数データ)を出力する。そして、これらの4
個の複素数データは、それぞれ、第1のデータパス10
8および第2のデータパス109に入力される。また、
これと同時に、sin/cos係数用ROM110が、
0番地、512番地、1024番地および1536番地
に対応するひねり係数W1 ,W2 ,W3 ,W4を出力す
る。そして、ひねり係数W1 ,W3 は第1のデータパス
108に入力され、ひねり係数W2 ,W4 は第2のデー
タパス109に入力される。
【0055】そして、第1のデータパス108は、次式
(1),(2)の演算を行うことにより、複素数データ
i ,ci を算出する。
【0056】 ai ={(Ai +Ci )+(Bi +Di )}×W1 ・・・(1) ci ={(Ai +Ci )−(Bi +Di )}×W3 ・・・(2) また、第2のデータパス109は、次式(3),(4)
の演算を行うことにより、複素数データbi ,di を算
出する。
【0057】 bi ={(Ai −Ci )−j(Bi −Di )}×W2 ・・・(3) di ={(Ai −Ci )+j(Bi −Di )}×W4 ・・・(4) なお、式(1)〜(4)において、Ai ,Bi ,Ci
i は、それぞれ作業用RAM107に格納された複素
数データのうち、グループA,B,C,Dの番地に属す
るデータを示している。すなわち、ここでは、0番地、
512番地、1024番地および1536番地の複素数
データを示している。
【0058】これらの式(1)〜(4)を用いたバタフ
ライ演算について、図2(B)用いて説明する。
【0059】同図に示したように、第1のデータパス1
08および第2のデータパス109にAi ,Bi
i ,Di に相当する複素数データを取り込んで、ま
ず、第1段階として(Ai +Ci ),(Bi +Di ),
(Ai −Ci ),j(Bi −Di )を算出し、次に、こ
れらの算出値を用いて第2段階で(Ai +Ci )+(B
i +Di ),(Ai +Ci )−(Bi +Di ),(Ai
−Ci )−j(Bi −Di ),(Ai −Ci )+j(B
i −Di )を算出し、さらに、これらの算出値を用いて
第3段階で{(Ai +Ci )+(Bi +Di )}×W
1 ,{(Ai +Ci )−(Bi +Di )}×W3
{(Ai −Ci )−j(Bi −Di )}×W2 ,{(A
i −Ci )+j(Bi −Di )}×W4 を算出して、そ
れぞれを演算結果ai,ci ,bi ,di として出力す
る。
【0060】演算が終了すると、データパス108,1
09から、この演算結果ai ,bi,ci ,di が出力
される。このとき、シーケンス制御部119の制御によ
り、セレクタ105,106は、データパス108,1
09からの入力を選択する。そして、データパス10
8,109の出力データが、作業用RAM107に格納
される。このとき、グループAに属する番地(ここでは
0番地)には式(1)の演算結果ai が、グループBに
属する番地(ここでは512番地)には式(3)の演算
結果bi が、グループCに属する番地(ここでは102
4番地)には式(2)の演算結果ci が、グループDに
属する番地(ここでは1536番地)には式(4)の演
算結果di が、それぞれ格納される。なお、複素数デー
タai ,bi ,ci ,di の格納場所は、シーケンス制
御部119がメモリアドレス発生部118を制御するこ
とによって決定する。
【0061】続いて、1番地、513番地、1025番
地および1537番地の複素数データを用いて同様の演
算処理を行ない、以下同様にしてすべての番地の複素数
データについて順次演算処理を行う。
【0062】このようにして1回目の演算処理が終了す
ると、次に、以下のようにして2回目の演算処理(基数
4)を行う。
【0063】2回目の演算処理では、図4のステージ2
に示したように、作業用RAM107の各番地のうち、
0番地〜511番地、512番地〜1023番地、10
24番地〜1535番地および1536番地〜2047
番地を、それぞれ、さらに4個のグループに分割する。
すなわち、この2回目の演算処理では、作業用RAM1
07の各番地を合計16個に分割する。
【0064】そして、例えば、0番地〜511番地のう
ち、0番地〜127番地をグループA、128番地〜2
55番地をグループB、156番地〜383番地をグル
ープC、384番地〜511番地をグループDとして、
上述の式(1)〜(4)を用いた演算処理を行う。
【0065】すなわち、最初に、0番地、128番地、
156番地および384番地の複素数データを作業用R
AM107から読み出すとともに、これらの番地に対応
するひねり係数をsin/cos係数用ROM110か
ら読み出し、データパス108,109に取り込む。続
いて、0番地の複素数データをAi 、128番地の複素
数データをBi 、156番地の複素数データをCi 、3
84番地の複素数データをDi として、上述の式(1)
〜(4)を実行する。そして、この演算によって得られ
た複素数データai ,bi ,ci ,di を、それぞれ、
作業用RAM107の0番地、128番地、156番地
および384番地に格納する。その後、これと同様にし
て、0番地〜511番地の各複素数データを用いた演算
処理を順次実行する。
【0066】このようにして0番地〜511番地の複素
数データを用いた演算処理が終了すると、次に、512
番地〜1023番地をグループA,B,C,Dに分割し
て、同様の演算処理を行う。さらに、1024番地〜1
535番地および1536番地〜2047番地の複素数
データについても、同様にして演算処理を行う。
【0067】以上のようにして2回目の演算処理が終了
すると、次に、以下のようにして3回目の演算処理(基
数4)を行う。
【0068】3回目の演算処理では、図4のステージ3
に示したように、作業用RAM107の各番地のうち、
2回目の演算処理で16分割した番地のそれぞれを、さ
らにグループA〜Dに4分割する。すなわち、この3回
目の演算処理では、作業用RAM107の各番地を合計
64個に分割する。
【0069】例えば、上述の2回目の演算処理で16分
割した最初の番地群である0番地〜127番地のうち、
0番地〜31番地はグループA、32番地〜63番地は
グループB、64番地〜95番地はグループC、96番
地〜127番地はグループDとなる。
【0070】3回目の演算処理においても、まず最初
に、0番地、32番地、64番地および96番地の複素
数データを作業用RAM107から読み出すとともに、
これらの番地に対応するひねり係数をsin/cos係
数用ROM110から読み出し、データパス108,1
09に取り込む。続いて、0番地の複素数データを
i、32番地の複素数データをBi 、64番地の複素
数データをCi 、96番地の複素数データをDi とし
て、上述の式(1)〜(4)を実行する。そして、この
演算によって得られた複素数データai ,bi ,ci
i を、それぞれ、作業用RAM107の0番地、32
番地、64番地および96番地に格納する。その後、こ
れと同様にして、他の番地の各複素数データを用いた演
算処理を順次実行する。
【0071】このようにして0番地〜127番地の複素
数データを用いた演算処理が終了すると、次に、128
番地〜255番地をグループA,B,C,Dに分割し
て、同様の演算処理を行う。さらに、残りの各番地ブロ
ックの複素数データについても、同様にして演算処理を
行う。
【0072】以上のようにして3回目の演算処理が終了
すると、次に、以下のようにして4回目の演算処理(基
数4)を行う。
【0073】4回目の演算処理では、図4のステージ4
に示したように、作業用RAM107の各番地のうち、
3回目の演算処理で64分割した番地のそれぞれを、さ
らにグループA〜Dに4分割する。すなわち、この4回
目の演算処理では、作業用RAM107の各番地を合計
256個に分割する。
【0074】例えば、上述の3回目の演算処理で64分
割した最初の番地ブロックである0番地〜31番地のう
ち、0番地〜7番地はグループA、8番地〜15番地は
グループB、16番地〜23番地はグループC、24番
地〜31番地はグループDとなる。
【0075】そして、最初に、0番地、8番地、16番
地および24番地の複素数データを作業用RAM107
から読み出すとともに、これらの番地に対応するひねり
係数をsin/cos係数用ROM110から読み出
し、データパス108,109に取り込む。続いて、0
番地の複素数データをAi 、8番地の複素数データをB
i 、16番地の複素数データをCi 、24番地の複素数
データをDi として、上述の式(1)〜(4)を実行す
る。その後、この演算によって得られた複素数データa
i ,bi ,ci ,di を、それぞれ、作業用RAM10
7の0番地、8番地、16番地および24番地に格納す
る。その後、これと同様にして、他の番地の各複素数デ
ータを用いた演算処理を順次実行する。
【0076】このようにして0番地〜31番地の複素数
データを用いた演算処理が終了すると、次に、32番地
〜63番地をグループA,B,C,Dに分割して、同様
の演算処理を行う。さらに、残りの各番地ブロックの複
素数データについても、同様にして演算処理を行う。
【0077】以上のようにして4回目の演算処理が終了
すると、次に、以下のようにして5回目の演算処理(基
数4)を行う。
【0078】5回目の演算処理でも、図4のステージ5
に示したように、作業用RAM107の各番地のうち、
4回目の演算処理で256分割した番地のそれぞれを、
さらにグループA〜Dに4分割する。すなわち、この4
回目の演算処理では、作業用RAM107の各番地を合
計1024個に分割する。
【0079】例えば、256分割した最初の番地ブロッ
クである0番地〜7番地のうち、0番地および1番地は
グループA、2番地および3番地はグループB、4番地
および5番地はグループC、6番地および7番地はグル
ープDとなる。
【0080】そして、最初に、0番地、2番地、4番地
および6番地の複素数データを作業用RAM107から
読み出すとともに、これらの番地に対応するひねり係数
をsin/cos係数用ROM110から読み出し、デ
ータパス108,109に取り込む。続いて、0番地の
複素数データをAi 、2番地の複素数データをBi 、4
番地の複素数データをCi 、6番地の複素数データをD
i として、上述の式(1)〜(4)を実行する。その
後、この演算によって得られた複素数データai
i ,ci ,di を、それぞれ、作業用RAM107の
0番地、2番地、4番地および6番地に格納する。その
後、これと同様にして、1番地、3番地、5番地、7番
地の各複素数データを用いた演算処理を実行する。
【0081】このようにして0番地〜7番地の複素数デ
ータを用いた演算処理が終了すると、次に、8番地〜1
5番地をグループA,B,C,Dに分割して、同様の演
算処理を行う。さらに、残りの各番地ブロックの複素数
データについても、同様にして演算処理を行う。
【0082】以上のようにして5回目の演算処理が終了
すると、次に、6回目の演算処理として、基数2の演算
処理を行う。
【0083】この演算処理では、図4のステージ6に示
したように、5回目の演算処理の場合と同様、作業用R
AM107の各番地を合計1024個に分割する。ま
た、この6回目の演算処理では、グループA,Bとグル
ープC,Dとは同じ演算処理を行なう。
【0084】例えば、1024分割した最初の番地群で
ある0番地、1番地および2番目の番地群である2番
地、3番地のうち、0番地はグループA、1番地はグル
ープB、2番地はグループC、3番地はグループDとな
る。
【0085】そして、最初に、0番地、1番地、2番地
および3番地の複素数データを作業用RAM107から
読み出す。
【0086】そして、第1のデータパス108は、これ
らの複素数データを用いて次式(5),(6)の演算を
行うことにより、複素数データai ,bi を算出する。
【0087】ai =Ai +Bi ・・・(5) bi =Ai −Bi ・・・(6) また、第2のデータパス109は、次式(7),(8)
の演算を行うことにより、複素数データci ,di を算
出する。
【0088】ci =Ci +Di ・・・(7) di =Ci −Di ・・・(8) なお、式(5)〜(8)において、Ai ,Bi ,Ci
i は、それぞれ作業用RAM107に格納された複素
数データのうち、グループA,B,C,Dの番地に属す
るデータを示している。すなわち、ここでは、0番地、
1番地、2番地および3番地の複素数データを示してい
る。
【0089】これらの式(5)〜(8)を用いたバタフ
ライ演算について、図2(C)を用いて説明する。
【0090】同図に示したように、まず、第1のデータ
パス108は複素数データAi ,Bi を、データパス1
09は複素数データCi ,Di を、それぞれ取り込む。
そして、第1のデータパス108は、Ai +Bi ,Ai
−Bi を算出し、演算結果a i ,bi を出力する。一
方、第2のデータパス109は、Ci +Di ,Ci −D
i を算出し、演算結果ci ,di を出力する。
【0091】このようにして得られた演算結果ai ,b
i ,ci ,di は、作業用RAM107の0番地、1番
地、2番地および3番地に格納される。
【0092】そして、このようにして0番地〜3番地の
複素数データを用いた演算処理が終了すると、残りの番
地ブロックの各複素数データについても、同様の演算処
理を行なう。
【0093】その後、作業用RAM107内に格納され
た複素数データが、レジスタ113,114を介して、
出力端子115,116から外部へ出力される。
【0094】次に、この実施の形態に係るデータパス1
08,109の他の構成例について、図12を用いて説
明する。同図において、図1と同じ符号を付した構成部
は、それぞれ図1の場合と同じものを示している。
【0095】図12に示した第1のデータパス108に
おいて、レジスタ1211は、作業用RAM107から
入力した複素数データAi 〜Di の実数部または虚数部
を、一時的に保持する。
【0096】また、加算器1212は、レジスタ121
1から入力したデータを用いて、後述のような演算を行
う。
【0097】セレクタ1213は、加算器1212から
入力したデータまたはレジスタ1211から入力したデ
ータを選択して、レジスタ1214に出力する。
【0098】レジスタ1214は、セレクタ1213か
ら入力したデータを、一時的に保持する。
【0099】加減算器1215は、レジスタ1214か
ら入力した複素数データを用いて、後述のような加算ま
たは減算を行う。
【0100】レジスタ1216,1217は、加減算器
1215が出力したデータを、交互に、一時的に保持す
る。
【0101】レジスタ1218は、sin/cos係数
用ROM110(図1参照)から入力したひねり係数W
1 を、一時的に保持する。また、レジスタ1219は、
sin/cos係数用ROM110から入力したひねり
係数W3 を、一時的に保持する。
【0102】乗算回路1220は、レジスタ1216か
ら入力したデータに、ひねり係数W1 、実数「1」、ま
たは実数「0」を乗算する。同様に、乗算回路1221
は、レジスタ1217から入力したデータに、ひねり係
数W3 、実数「1」、または実数「0」を乗算する。
【0103】レジスタ1222は、乗算回路1220が
出力した演算結果を、一時的に保持する。同様に、レジ
スタ1223は、乗算回路1221が出力した演算結果
を、一時的に保持する。
【0104】加減算回路1224は、レジスタ122
2,1223から入力したデータを用いて、後述のよう
な加算または減算を行う。
【0105】レジスタ1225は、加減算回路1224
から入力したデータを、一時的の保持する。このレジス
タ1225に保持されたデータは、セレクタ105,1
06を介して、作業用RAM107に格納される。
【0106】第2のデータパス109において、レジス
タ1231は、作業用RAM107から入力した複素数
データAi 〜Di の実数部または虚数部を、一時的に保
持する。
【0107】また、減算/複素減算器1232は、レジ
スタ1231から入力したデータを用いて、後述のよう
な演算を行う。
【0108】セレクタ1233は、減算/複素減算器1
232から入力したデータまたはレジスタ1231から
入力したデータを選択して、レジスタ1234に出力す
る。
【0109】レジスタ1234は、セレクタ1233か
ら入力したデータを、一時的に保持する。
【0110】加減算器1235は、レジスタ1234か
ら入力した複素数データを用いて、後述のような加算ま
たは減算を行う。
【0111】レジスタ1236,1237は、加減算器
1235が出力したデータを、交互に、一時的に保持す
る。
【0112】レジスタ1238は、sin/cos係数
用ROM110(図1参照)から入力したひねり係数W
2 を、一時的に保持する。また、レジスタ1239は、
sin/cos係数用ROM110から入力したひねり
係数W4 を、一時的に保持する。
【0113】乗算回路1240は、レジスタ1236か
ら入力したデータに、ひねり係数W2 、実数「1」、ま
たは実数「0」を乗算する。同様に、乗算回路1241
は、レジスタ1237から入力したデータに、ひねり係
数W4 、実数「1」、または実数「0」を乗算する。
【0114】レジスタ1242は、乗算回路1240が
出力した演算結果を、一時的に保持する。同様に、レジ
スタ1243は、乗算回路1241が出力した演算結果
を、一時的に保持する。
【0115】加減算回路1244は、レジスタ124
2,1243から入力したデータを用いて、後述のよう
な加算または減算を行う。
【0116】レジスタ1245は、加減算回路1244
から入力したデータを、一時的の保持する。このレジス
タ1245に保持されたデータは、セレクタ105,1
06を介して、作業用RAM107に格納される。
【0117】続いて、図12に示したデータパス10
8,109の動作について、図13〜図16を用いて説
明する。
【0118】図13は基数が4のときのデータパス10
8の動作を説明するためのタイミングチャートである。
【0119】図13に示したように、作業用RAM10
7は、システムクロックSCLKの立ち下がりタイミン
グで、複素数データAi ,Ci の実数部(図13ではR
(A),R(C) で表す)、複素数データBi ,Di の実数
部(図13ではR(B) ,R(D) で表す)、複素数データ
i ,Ci の虚数部(図13ではI(A) ,I(C) で表
す)、複素数データBi ,Di の虚数部(図13ではI
(B) ,I(D) で表す)を、順次出力する。これらのデー
タR(A) およびR(C) 、R(B) およびR(D) 、I(A) お
よびI(C) 、I(B) およびI(D) は、システムクロック
SCLKの立ち上がりタイミングで、レジスタ1211
に順次格納される。
【0120】加算器1212は、まず、レジスタ121
1からデータR(A) ,R(C) を入力して、演算R(A,C)
=R(A) +R(C) を行う。続いて、同様の演算R(B,D)
=R(B) +R(D) 、I(A,C) =I(A) +I(C) 、I(B,
D) =I(B) +I(D) を、順次実行する。これらの演算
結果R(A,C) 、R(B,D) 、I(A,C) 、I(B,D) は、セレ
クタ1213を介して、レジスタ1214に順次格納さ
れる。
【0121】加減算器1215は、まず、レジスタ12
14からデータR(A,C) およびデータR(B,D) を入力し
て演算R(+) =R(A,C) +R(B,D) を行い、続いて、レ
ジスタ1214からデータR(A,C) およびデータR(B,
D) を再び入力して演算R(-)=R(A,C) −R(B,D) を実
行する。さらに、レジスタ1214からデータI(A,C)
およびデータI(B,D) を入力して演算I(+) =I(A,C)
+I(B,D) を行い、続いて、レジスタ1214からデー
タI(A,C) およびデータI(B,D) を再び入力して演算I
(-) =I(A,C) −I(B,D) を実行する。そして、演算結
果R(+) ,I(+) はレジスタ1216に格納され、演算
結果R(-) ,I(-) はレジス1217に格納される。
【0122】乗算回路1220は、まず、レジスタ12
16から入力したデータR(+) に、レジスタ1218か
ら入力したひねり係数W1 の実数部W1Rを乗算すること
によってR1 を算出し、さらに、データR(+) にひねり
係数W1 の虚数部W1Iを乗算することによってI1 を算
出する。次に、レジスタ1216から入力したデータI
(+) に、ひねり係数W1 の虚数部W1Iを乗算することに
よってR2 を算出した後で、さらに、データI(+) にひ
ねり係数W1 の実数部W1Rを乗算することによってI2
を算出する。これらの演算結果R1 ,I1 ,R2 ,I2
は、レジスタ1222に格納される。
【0123】一方、乗算回路1221は、まず、レジス
タ1217から入力したデータR(-) に、レジスタ12
19から入力したひねり係数W3 の実数部W3Rを乗算す
ることによってR3 を算出し、さらに、データR(-) に
ひねり係数W3 の虚数部W3Iを乗算することによってI
3 を算出する。次に、レジスタ1217から入力したデ
ータI(-) に、ひねり係数W3 の虚数部W3Iを乗算する
ことによってR4 を算出し、さらに、データI(-) にひ
ねり係数W3 の実数部W3Rを乗算することによってI4
を算出する。これらの演算結果R3 ,I3 ,R4 ,I4
は、レジスタ1223に格納される。
【0124】加減算器1224は、まず、レジスタ12
22から読み込んだデータR1 ,R2 を用いてR
(ai )=R1 +R2 を算出し、続いて、レジスタ12
23から読み込んだデータR3 ,R4 を用いてR
(ci )=R3 +R4 を算出する。さらに、レジスタ1
222から読み込んだデータI1 ,I2 を用いてI(a
i )=I1+I2 を算出し、続いて、レジスタ1223
から読み込んだデータI3 ,I4 を用いてI(ci )=
3 +I4 を算出する。これにより、上式(1)に示し
た複素数データai の実数部R(ai )および虚数部I
(ai )と、上式(2)に示した複素数データci の実
数部R(ci )および虚数部I(ci )とを得ることが
できる。これらの演算結果は、レジスタ1225および
セレクタ105を介して、作業用RAM107に格納さ
れる。
【0125】また、図14は基数が4のときのデータパ
ス109の動作を説明するためのタイミングチャートで
ある。
【0126】上述の図13を用いて説明したように、作
業用RAM107がデータR(A) ,R(C) 、データR
(B) ,R(D) 、データI(A) ,I(C) 、データI(B) ,
I(D)を順次出力すると、これらのデータはレジスタ1
231にも順次格納される。
【0127】減算/複素減算器1232は、まず、レジ
スタ1231からデータR(A) ,R(C) を入力して、演
算R(A,C) =R(A) −R(C) を行う。続いて、同様の演
算I(B,D) =j(R(B) −R(D) )、I(A,C) =I(A)
−I(C) 、R(B,D) =j(I(B) −I(D) )を、順次実
行する。これらの演算結果R(A,C) 、I(B,D) 、I(A,
C) 、R(B,D) は、セレクタ1233を介して、レジス
タ1234に順次格納される。
【0128】加減算器1235は、まず、レジスタ12
34からデータR(A,C) およびデータI(B,D) を入力し
て演算R(+) =R(A,C) +R(B,D) を行い、続いて、レ
ジスタ1234からデータR(A,C) およびデータR(B,
D) を再び入力して演算R(-)=R(A,C) −R(B,D) を実行
する。さらに、レジスタ1234からデータI(A,C) お
よびデータI(B,D) を入力して演算I(-) =I(A,C) −
I(B,D) を行い、続いて、レジスタ1234からデータ
I(A,C) およびデータI(B,D) を再び入力して演算I
(+) =I(A,C) +I(B,D) を実行する。そして、演算結
果R(+) ,I(-) はレジスタ1236に格納され、演算
結果R(-) ,I(+) はレジスタ1237に格納される。
【0129】乗算回路1240は、まず、レジスタ12
36から入力したデータR(+) に、レジスタ1218か
ら入力したひねり係数W2 の実数部W2Rを乗算すること
によってR5 を算出し、さらに、データR(+) にひねり
係数W2 の虚数部W2Iを乗算することによってI5 を算
出する。次に、レジスタ1236から入力したデータI
(-) に、ひねり係数W2 の虚数部W2Iを乗算することに
よってR6 を算出した後で、さらに、データI(-) にひ
ねり係数W2 の実数部W2Rを乗算することによってI6
を算出する。これらの演算結果R5 ,I5 ,R6 ,I6
は、レジスタ1242に格納される。
【0130】一方、乗算回路1241は、まず、レジス
タ1237から入力したデータR(-) に、レジスタ12
39から入力したひねり係数W4 の実数部W4Rを乗算す
ることによってR7 を算出し、さらに、データR(-) に
ひねり係数W4 の虚数部W4Iを乗算することによってI
7 を算出する。次に、レジスタ1236から入力したデ
ータI(+) に、ひねり係数W4 の虚数部W4Iを乗算する
ことによってR8 を算出し、さらに、データI(+) にひ
ねり係数W4 の実数部W4Rを乗算することによってI8
を算出する。これらの演算結果R7 ,I7 ,R8 ,I8
は、レジスタ1243に格納される。
【0131】加減算器1244は、まず、レジスタ12
42から読み込んだデータR5 ,R6 を用いてR
(bi )=R5 +R6 を算出し、続いて、レジスタ12
43から読み込んだデータR7 ,R8 を用いてR
(di )=R7 +R8 を算出する。さらに、レジスタ1
242から読み込んだデータI5 ,I6 を用いてI(b
i )=I5+I6 を算出し、続いて、レジスタ1243か
ら読み込んだデータI7 ,I8 を用いてI(di )=I
7 +I8 を算出する。これらの演算結果は、レジスタ1
245およびセレクタ105を介して、作業用RAM1
07に格納される。
【0132】図15は、基数が2のときのデータパス1
08の動作を説明するためのタイミングチャートであ
る。
【0133】図15に示したように、まず、作業用RA
M107が、基数が4の場合と同様、システムクロック
SCLKの立ち下がりタイミングで、データR(A) ,R
(C)、データR(B) ,R(D) 、データI(A) ,I(C) お
よびデータI(B) ,I(D) を、順次出力すると、これら
のデータのうちR(A) ,R(B) ,I(A) ,I(B) が、シ
ステムクロックSCLKの立ち上がりタイミングで、レ
ジスタ1211に順次格納される。
【0134】ここで、基数が2の場合は、セレクタ12
13は、レジスタ1211から入力したデータを出力す
る。このため、レジスタ1214には、上述のデータR
(A),R(B) ,I(A) ,I(B) が、順次格納される。
【0135】加減算器1215は、まず、レジスタ12
14からデータR(A) およびデータR(B) を入力して演
算R(A,B) =R(A) +R(B) を行い、続いて、レジスタ
1214からデータR(A) およびデータR(B) を再び入
力して演算R(A,B) =R(A)−R(B) を実行する。さら
に、レジスタ1214からデータI(A) およびデータI
(B) を入力して演算I(A,B) =I(A) +I(B) を行い、
続いて、レジスタ1214からデータI(A) およびデー
タI(B) を再び入力して演算I(A,B) =I(A)−I(B)
を実行する。そして、演算結果R(A,B) ,I(A,B) はレ
ジスタ1216に格納され、演算結果R(A,B) ,I(A,
B) はレジスタ1217に格納される。
【0136】乗算回路1220は、基数が2の場合に
は、ひねり係数としてW=1+j・0を用いる。すなわ
ち、まず、レジスタ1216から入力したデータR(A,
B) に「1」を乗算し、さらに、データR(A,B) に
「0」を乗算する。次に、レジスタ1216から入力し
たデータI(A,B) に「1」乗算し、さらに、データI
(A,B) に「0」を乗算する。これらの演算結果R(A,B)
,0,I(A,B) ,0は、レジスタ1222に格納され
る。
【0137】また、乗算回路1221も、ひねり係数と
してW=1+j・0を用いる。すなわち、まず、レジス
タ1217から入力したデータR(A,B) に「1」を乗算
し、さらに、データR(A,B) に「0」を乗算する。次
に、レジスタ1217から入力したデータI(A,B) に
「1」を乗算し、さらに、データI(A,B) に「0」を乗
算する。これらの演算結果R(A,B) ,0,I(A,B) ,0
は、レジスタ1223に格納される。
【0138】加減算器1224は、まず、レジスタ12
22から読み込んだデータR(A,B),0を用いてR(a
i )=R(A,B) +0を算出し、続いて、レジスタ122
3から読み込んだデータR(A,B) ,0を用いてR
(bi )=R(A,B) +0を算出する。さらに、レジスタ
1222から読み込んだデータI(A,B) ,0を用いてI
(ai )=I(A,B) +0を算出し、続いて、レジスタ1
223から読み込んだデータI(A,B) ,0を用いてI
(bi )=I(A,B) +0を算出する。これらの演算結果
は、レジスタ1225およびセレクタ105を介して、
作業用RAM107に格納される。
【0139】図16は、基数が2のときのデータパス1
09の動作を説明するためのタイミングチャートであ
る。
【0140】上述の図15を用いて説明したように、ま
ず、作業用RAM107がデータR(A) ,R(C) 、デー
タR(B) ,R(D) 、データI(A) ,I(C) およびデータ
I(B) ,I(D) を順次出力すると、これらのデータのう
ちR(C) ,R(D) ,I(C) ,I(D) が、システムクロッ
クSCLKの立ち上がりタイミングで、レジスタ123
1に順次格納される。
【0141】そして、セレクタ1233が、レジスタ1
231から入力したデータを出力することにより、レジ
スタ1234には上述のデータR(C) ,R(D) ,I(C)
,I(D) が順次格納される。
【0142】加減算器1235は、このレジスタ123
4に格納されたデータR(C) ,R(D) を用いて、演算R
(C,D) =R(C) +R(D) および演算R(C,D) =R(C) −
R(D) を順次実行する。さらに、レジスタ1234に格
納されたデータI(C) ,I(D) を用いて演算I(C,D) =
I(C) +I(D) および演算I(C,D) =I(C) −I(D)を
実行する。そして、演算結果R(C,D) ,I(C,D) はレジ
スタ1236に格納され、演算結果R(C,D) ,I(C,D)
はレジスタ1237に格納される。
【0143】乗算回路1240は、図15の乗算回路1
220と同様、ひねり係数としてW=1+j・0を用い
た演算を行い、演算結果R(C,D) ,0,I(C,D) ,0を
レジスタ1242に格納する。
【0144】また、乗算回路1241も、ひねり係数と
してW=1+j・0を用いて演算処理を行い、演算結果
R(C,D) ,0,I(C,D) ,0をレジスタ1243に格納
する。
【0145】加減算器1244は、まず、レジスタ12
42から読み込んだデータR(C,D),0を用いてR(c
i )=R(C,D) +0を算出し、続いて、レジスタ124
3から読み込んだデータR(C,D) ,0を用いてR
(di )=R(C,D) +0を算出する。さらに、レジスタ
1242から読み込んだデータI(C,D) ,0を用いてI
(ci )=I(C,D) +0を算出し、続いて、レジスタ1
243から読み込んだデータI(C,D) ,0を用いてI
(di )=I(C,D) +0を算出する。これらの演算結果
は、レジスタ1245およびセレクタ105を介して、
作業用RAM107に格納される。
【0146】図12に示したようにデータパス108,
109を構成することにより、簡単な回路で効率よく演
算処理を行うことができる。
【0147】以上説明したように、この実施の形態に係
る高速フーリエ変換処理装置によれば、基数が4の演算
処理であっても基数が2の演算処理であっても高速で実
行することが可能なデータパス108,109を、簡単
な構成によって得ることができる。すなわち、この実施
の形態によれば、基数4または基数2のいずれの高速フ
ーリエ変換アルゴリズムにも対応することができる高速
フーリエ変換処理装置を安価に提供することができる。
【0148】第2の実施の形態 次に、この発明の第2の実施の形態について、図5を用
いて説明する。なお、この実施の形態に係る高速フーリ
エ変換処理装置は、ブロック浮動小数点演算処理機能を
有する点で、上述の第1の実施の形態と異なる。
【0149】この実施の形態でも、サンプル点数が20
48点の場合を例にとって説明する。
【0150】図5は、この実施の形態に係る高速フーリ
エ変換処理装置の構成を概略的に示すブロック図であ
る。
【0151】同図において、図1と同じ符号を付した構
成部は、それぞれ、図1の場合と同じものを示してい
る。
【0152】また、図5において、第1のデータパス5
01および第2のデータパス502は、ブロック浮動小
数点演算を行うためのシフト機能を有している点で、図
1に示した各データパス108,109と異なる。な
お、ブロック浮動小数点演算自体は公知の手法であるの
で、この演算で使用するシフト機能の詳細構成について
の説明は省略する。
【0153】また、ブロック浮動小数点検出記憶部50
3は、セレクタ105,106が出力した複素数データ
を取り込んでブロック浮動小数点を検出するとともに、
この検出値を一時的に記憶する。ここで、後述するよう
に、セレクタ105,106から出力されるのは、入力
端子101,102を介して外部から入力された複素数
データ或いはデータパス501,502が出力した複素
数データである。なお、このブロック浮動小数点検出記
憶部503が一時的に記憶したブロック浮動小数点の検
出値は、データパス501,502およびシーケンス制
御部119に転送される。
【0154】出力ビットシフタ504,505は、作業
用RAM107から複素数データを取り込むとともにシ
ーケンス制御部119から浮動小数点指数を取り込む。
そして、この浮動小数点指数の値に基づいて複素数デー
タをシフトさせ、その結果を出力する。
【0155】レジスタ506は、シーケンス制御部11
9から浮動小数点指数を入力し、外部に対して出力す
る。
【0156】続いて、図5に示した高速フーリエ変換処
理装置の動作について説明する。
【0157】まず、上述の第1の実施の形態の場合と同
様にして、最初の被処理データが、実数部と虚数部とに
分けられて、入力端子101,102から装置内に入力
され、さらに、作業用RAM107の実数データ記憶部
107bおよび虚数データ記憶部107cにそれぞれ格
納される。このとき、ブロック浮動小数点検出記憶部5
03は、この複素数データをセレクタ105,106か
ら入力して浮動小数点指数を検出し、記憶する。
【0158】続いて、入力端子101,102から2番
目の被処理データが入力されて作業用RAMに格納され
るときに、ブロック浮動小数点検出記憶部503は、こ
の被処理データをセレクタ105,106から入力して
浮動小数点指数を検出し、すでに記憶された検出値(こ
こでは1番目の被処理データの浮動小数点指数)と比較
する。そして、既に記憶されている検出値の方が2番目
の検出値よりも小さい場合は、記憶内容を変更すること
なく、既に記憶された検出値をそのまま保持する。一
方、2番目の検出値の方が既に記憶されている検出値よ
りも小さい場合は、ブロック浮動小数点検出記憶部50
3の記憶内容を2番目の検出値に変更する。
【0159】同様にして、3番目以降の被処理データに
ついても、ブロック浮動小数点検出記憶部503で浮動
小数点指数を検出し、これを、このブロック浮動小数点
検出記憶部503内に既に記憶されている検出値と比較
し、そのときの検出値の小さい方を記憶値とする。この
実施の形態では、このような検出動作を、0番地〜51
1番地、512番地〜1023番地、1024番地〜1
535番地および1536番地〜2047番地の4個の
ブロックについて、共通に行う。すなわち、このときの
浮動小数点指数の検出では、後述する1回目の演算処理
の時の各グループA,B,C,Dに対して共通の浮動小
数点指数が決定される。
【0160】これにより、作業用RAM107への20
48個の被処理データの格納が終了した時点では、各ブ
ロックに対して共通に、浮動小数点指数の検出値の中で
もっとも小さいものが、ブロック浮動小数点検出記憶部
503内に記憶されていることになる。
【0161】このようにして被処理データを作業用RA
M107に格納する動作が終了すると、続いて、これら
の被処理データを用いて高速フーリエ変換処理を行う。
【0162】この高速フーリエ変換処理は、上述の第1
の実施例の場合と同様、以下のようにして、基数が4の
演算処理を5回繰り返した後、基数が2の演算処理を1
回行う。
【0163】まず、1回目の演算処理(基数4)におい
ては、作業用RAM107に格納された2048個の複
素数データを、第1の実施の形態の場合と同様の4グル
ープA,B,C,Dに分割する(図4のステージ1参
照)。そして、データパス501,502が、作業用R
AM107の0番地、512番地、1024番地および
1536番地に格納された各複素数データとsin/c
os係数用ROM110に格納されたひねり係数を読み
込むと同時に、ブロック浮動小数点検出記憶部503か
らグループA,B,C,Dに対して共通な浮動小数点指
数の検出値を読み込む。そして、この検出値と上述の式
(1)〜(4)とを用いて、ブロック浮動小数点による
演算処理を行う。
【0164】演算が終了すると、データパス501,5
02から演算結果ai ,bi ,ci,di が出力され、
第1の実施の形態の場合と同様にして作業用RAM10
7に格納される。このときブロック浮動小数点検出記憶
部503は、各演算結果ai,bi ,ci ,di に対し
て浮動小数点指数を検出し、これらの検出結果をそのま
ま記憶する。
【0165】続いて、作業用RAM107の1番地、5
13番地、1025番地および1537番地の各複素数
データについてもブロック浮動小数点による演算処理を
行い、演算結果ai ,bi ,ci ,di を順次作業用R
AM107に格納する。また、この格納時に、ブロック
浮動小数点検出記憶部503が、これらの演算結果
i ,bi ,ci ,di の浮動小数点指数を検出し、こ
れらの検出値をそれぞれブロック浮動小数点検出記憶部
503内に記憶された浮動小数点指数と比較する。この
とき、演算結果ai の浮動小数点指数を前回の演算結果
i の浮動小数点指数と比較し、演算結果bi の浮動小
数点指数を前回の演算結果bi の浮動小数点指数と比較
するというように、それぞれ式(1)〜(4)の内の同
じ式で得られた演算結果どうしで浮動小数点指数を比較
する。そして、既に記憶されている浮動小数点指数が検
出値よりも小さいときは、記憶内容を変更することな
く、既に記憶された検出値をそのまま保持する。一方、
検出値の方が既に記憶されている浮動小数点指数よりも
小さい場合は、ブロック浮動小数点検出記憶部503の
記憶内容をこの検出値に変更する。
【0166】同様にして、他の番地の複素数データにつ
いても、ブロック浮動小数点による演算処理を行った
後、演算結果ai ,bi ,ci ,di を作業用RAM1
07に格納する際にブロック浮動小数点検出記憶部50
3で浮動小数点指数を検出し、これを、このブロック浮
動小数点検出記憶部503内に既に記憶されている値と
比較して、そのときの検出値の小さい方を記憶値とす
る。
【0167】この実施の形態では、このような検出動作
により、後述する2回目の演算処理の時の浮動小数点指
数が決定される。
【0168】このようにして1回目の演算処理と浮動小
数点指数の検出とが終了すると、次に、以下のようにし
て2回目の演算処理(基数4)を行う。
【0169】2回目の演算処理では、第1の実施の形態
の場合と同様、データRAM107の各番地のうち、0
番地〜511番地、512番地〜1023番地、102
4番地〜1535番地および1536番地〜2047番
地を、それぞれ、さらに4個のグループに分割する。す
なわち、この2回目の演算処理では、データRAM10
7の各番地を合計16個に分割する。
【0170】そして、第1の実施の形態の場合と同様に
して演算処理を行うとともに、演算結果を作業用RAM
107に格納する際にブロック浮動小数点検出記憶部5
03で浮動小数点指数を検出して、最も小さい検出値を
ブロック浮動小数点検出記憶部503内に記憶する。そ
して、このような検出動作により、後述する三回目の演
算処理の時の各グループA,B,C,Dに対して共通の
浮動小数点指数が決定される。
【0171】さらに、3回目〜6回目以降の演算処理に
ついても、上述した1回目および2回目の演算処理と同
様にして、ブロック浮動小数点による演算処理を行う。
【0172】なお、ここでは、ブロック浮動小数点検出
を演算処理のときの各グループA,B,C,Dについて
共通としたが、2回目以降の演算処理に用いるブロック
浮動小数点指数を各ステージ毎に全サンプル(この例で
は2048個)に対して共通に持ってもよい。
【0173】6回目の演算処理が終了すると、最後に、
演算結果を外部に出力する。このときは、まず、シーケ
ンス制御部119がブロック浮動小数点検出記憶部50
3から各サンプルに対する全ステージで用いた浮動小数
点指数の累算値を入力し、出力ビットシフタ504,5
05に送る。そして、出力ビットシフタ504,505
は、この浮動小数点指数に基づいて、作業用RAM10
7から入力した複素数データをシフトさせた後、セレク
タ111,112に対して出力する。これにより、デー
タパス108,109の出力データが、レジスタ11
3,114を介して、出力端子115,116から外部
へ出力される。
【0174】また、必要であれば、出力ビットシフタ5
04,505によるシフトを行わずに複素数データを出
力端子115,116から出力するとともに、最終的な
浮動小数点指数をレジスタ506から外部に出力するこ
ともできる。
【0175】次に、この実施の形態に係るデータパス1
08,109の他の構成例について、図17を用いて説
明する。同図において、図5或いは図12と同じ符号を
付した構成部は、これらの図面と同じものを示してい
る。
【0176】図17に示したデータパス108,109
は、シフタ1701,1702を備えている点で、図1
2に示したデータパス108,109と異なる。このシ
フタ1701,1702は、ブロック浮動小数点検出記
憶部503から、ブロック小数点指数を入力する。そし
て、このブロック小数点指数に基づいて、レジスタ12
11,1231から取り込んだデータを所定ビットだけ
シフトさせる。これにより、ブロック浮動小数点検出記
憶部503の制御に基づくブロック浮動小数点演算処理
が可能となる。
【0177】なお、他の構成部の動作は、上述の図12
に示したデータパス108,109と同様であるので、
説明を省略する。
【0178】図17に示したようにデータパス108,
109を構成することにより、簡単な回路で効率よく演
算処理を行うことができる。
【0179】以上説明したように、この実施の形態に係
る高速フーリエ変換処理装置によれば、浮動小数点によ
るバタフライ演算を行う際に、基数が4の演算処理であ
っても基数が2の演算処理であっても高速で実行するこ
とが可能となる。すなわち、この実施の形態によれば、
基数4または基数2のいずれの高速フーリエ変換アルゴ
リズムにも対応することができる、ブロック浮動小数点
法による高速フーリエ変換処理装置を、安価に提供する
ことができる。
【0180】第3の実施の形態 次に、この発明の第3の実施の形態について、図6を用
いて説明する。なお、この実施の形態は、第1の実施の
形態にかかる高速フーリエ変換処理装置を2個並列に接
続することによって、処理速度のさらなる向上を図った
ものである。
【0181】図6は、この実施の形態に係る高速フーリ
エ変換処理システムを概念的に示すブロック図である。
【0182】同図において、プロセッサ601,602
は、上述の第1の実施例で示した高速フーリエ変換処理
装置である。かかるプロセッサ601,602の内部構
成において、図1と同じ符号を付した構成成分は、それ
ぞれ、図1の高速フーリエ変換処理装置の場合と同じも
のを示している。
【0183】各プロセッサ601,602において、出
力回路611は、図1のセレクタ111,112、レジ
スタ113,114および出力端子115,116を略
記したものである。そして、この出力回路611は、そ
れぞれ、出力選択回路606に接続されている。また、
プロセッサ601のシーケンス制御部119から出力さ
れる状態表示信号は、NOTバッファ603を介して、
プロセッサ602のシーケンス制御部119に状態制御
信号として入力される。同様に、プロセッサ602のシ
ーケンス制御部119から出力される状態表示信号は、
NOTバッファ604を介して、プロセッサ601のシ
ーケンス制御部119に状態制御信号として入力され
る。また、各プロセッサ601,602のシーケンス制
御部119には、外部からシステム制御信号が入力され
る。
【0184】また、各プロセッサ601,602におい
て、セレクタ612は、図1のセレクタ105,10
6、レジスタ103,104および入力端子101,1
02を略記したものである。
【0185】データ入力ポート605は、外部から被処
理データを入力する。また、データ出力ポート607
は、出力選択回路606から入力された処理後の複素数
データを、外部に出力する。
【0186】次に、図6に示した高速フーリエ変換処理
システムの動作について説明する。
【0187】まず、外部からのシステム制御信号がプロ
セッサ601を選択した状態で、N個(たとえばN=2
048)の被処理データがデータ入力ポート605に入
力される。これにより、これらのN個の被処理データ
は、プロセッサ601に入力される。次に、外部からの
システム制御信号がプロセッサ602を選択した状態
で、例えばN個の被処理データがデータ入力ポート60
5に入力される。これにより、これらの被処理データ
は、プロセッサ602に入力される。
【0188】そして、2個のプロセッサ601,602
が、上述の第1の実施の形態の場合と同様の演算処理
を、それぞれ別個に行う。
【0189】各プロセッサ601,602が演算処理を
終了すると、処理後の複素数データが出力選択回路60
6を介して、データ出力ポート607から出力される。
【0190】この場合、例えばプロセッサ601が複素
数データを出力してしている最中は、このプロセッサ6
01のシーケンス制御部119が状態表示信号をオンす
る。この信号は、NOTゲート603を介し、状態制御
信号としてプロセッサ602のシーケンス制御部119
に入力される。これにより、データ出力ポート607は
プロセッサ601に占有され、プロセッサ602につい
ては処理後の複素数データの出力が禁止される。そし
て、プロセッサ601による複素数データの出力が終了
すると、このプロセッサ601のシーケンス制御部11
9が出力する状態表示信号(すなわちプロセッサ602
のシーケンス制御部119が入力する状態制御信号)が
オフし、プロセッサ602に対する複素数データ出力の
禁止が解除される。これにより、プロセッサ601が処
理後の複素数データを出力している最中にプロセッサ6
02による複素数データの出力が行われてしまうことを
防止することができる。
【0191】なお、プロセッサ602にデータ出力ポー
ト607を占有させる際の動作も同様である。
【0192】このように、この実施の形態の高速フーリ
エ変換処理システムによれば、この発明に係る高速フー
リエ変換処理装置(すなわちプロセッサ601,60
2)を並列に2個接続して2系統の被処理データ群を同
時に処理することとしたので、フーリエ変換処理の処理
速度をいっそう向上させることができる。
【0193】なお、この実施の形態では2個の高速フー
リエ変換処理装置を並列接続することとしたが、3個以
上の高速フーリエ変換処理装置を並列することもできる
ことはもちろんである。この場合には、処理速度のさら
なる向上を図ることができる。
【0194】また、この実施の形態に係る高速フーリエ
変換処理システムでは、上述の第1の実施の形態に係る
高速フーリエ変換処理装置を接続することとしたが、第
2の実施の形態に係る高速フーリエ変換処理装置を並列
接続してもよいことも、もちろんである。
【0195】第4の実施の形態 次に、この発明の第4の実施の形態について、図7〜図
10を用いて説明する。なお、この実施の形態は、第1
の実施の形態にかかる高速フーリエ変換処理装置であっ
て処理が可能なサンプル点数の最大値がN(この実施の
形態ではN=4096とする)を2個並列に接続するこ
とによって、サンプル点数が2N(すなわち8192)
の高速フーリエ変換処理を行うことができる高速フーリ
エ変換処理システムに関するものである。
【0196】図7は、この実施の形態に係る高速フーリ
エ変換処理システムを概念的に示すブロック図である。
【0197】同図において、マスタモード用プロセッサ
701およびスレーブモード用プロセッサ702は、と
もに、上述の第1の実施例で示した高速フーリエ変換処
理装置からなる。かかるプロセッサ701,702の内
部構成において、図1と同じ符号を付した構成成分は、
それぞれ、図1の高速フーリエ変換処理装置の場合と同
じものを示している。
【0198】各プロセッサ701,702において、出
力回路711は、図1のセレクタ111,112、レジ
スタ113,114および出力端子115,116を略
記したものである。そして、この出力回路711は、そ
れぞれ、出力選択回路706の入力端子に接続されてい
る。
【0199】また、各プロセッサ701,702におい
て、セレクタ712は図1のセレクタ105,106、
レジスタ103,104および入力端子101,102
を略記したものである。
【0200】マスタモード用プロセッサ701のセレク
タ712は、マスタモード用入力選択回路713の出力
端子に接続されている。そして、このマスタモード用入
力選択回路713の入力端子からは、外部から入力され
た複素数データ或いはスレーブモード用プロセッサ70
2が出力した複素数データが選択的に入力される。
【0201】同様に、スレーブモード用プロセッサ70
2のセレクタ712は、スレーブモード用入力選択回路
714の出力端子に接続されており、このマスタモード
用入力選択回路714の入力端子からは外部から入力さ
れた複素数データ或いはマスタモード用プロセッサ70
1が出力した複素数データが選択的に入力される。
【0202】また、マスタモード用プロセッサ701の
シーケンス制御部119から出力される状態表示信号
は、NOTバッファ703を介して、スレーブモード用
プロセッサ702のシーケンス制御部119に、状態制
御信号として入力される。同様に、スレーブモード用プ
ロセッサ702のシーケンス制御部119から出力され
る状態表示信号は、NOTバッファ704を介して、マ
スタモード用プロセッサ701のシーケンス制御部11
9に、状態制御信号として入力される。また、各プロセ
ッサ701,702のシーケンス制御部119には、外
部からシステム制御信号が入力される。
【0203】データ入力ポート705は、外部から被処
理データを入力する。また、データ出力ポート707
は、出力選択回路706から入力された処理後の複素数
データを、外部に出力する。
【0204】図8は、図7に示した作業用RAM107
の内部構成を示すブロック図である。同図において、図
3と同じ符号を付した構成部は、それぞれ図3と同じも
のを示している。図8からわかるように、この作業用R
AM107は、デコーダ333を備えている点で、図3
の場合と異なる。このデコーダ333は、外部から入力
されたアドレスデータの上位2ビットを変換して、4個
のメモリアレイ部301〜304のいずれかを指定する
信号を出力する。
【0205】次に、図7および図8に示した高速フーリ
エ変換処理システムの動作について説明する。
【0206】まず、8192点の被処理データのうち、
最初の1024点が、データ入力ポート705およびマ
スタモード用入力選択回路713を介して、マスタモー
ド用プロセッサ701内に入力される。そして、図9
(A)に示したように、これらの被処理データが、マス
タモード用プロセッサ701の作業用RAM107の0
番地〜1023番地に格納される。続いて、次の102
4点の被処理データが、データ入力ポート705および
スレーブモード用入力選択回路714を介して、スレー
ブモード用プロセッサ702内に入力され、作業用RA
M107の0番地〜1023番地に格納される。以下同
様にして、1024点ずつの被処理データが、各プロセ
ッサ701,702の作業用RAM107に交互に格納
される。そして、これにより、図9(A)に示したよう
な番地割付で、8192点の被処理データを格納するこ
とができる。なお、このような番地割付の各アドレス領
域(すなわち各プロセッサ701,702に設けられた
作業用RAM107の0番地〜1023番地、1024
番地〜2047番地、2048番地〜3071番地およ
び3072番地〜4095番地)は、図8に示した各メ
モリアレイ301〜304に対応している。
【0207】各プロセッサ701,702への複素数デ
ータの格納が終了すると、続いて、これらの複素数デー
タを用いて高速フーリエ変換処理を行う。
【0208】なお、この実施の形態では、サンプル点数
が8192(=46 ×2)なので、以下に説明するよう
に、基数が4の演算処理を6回繰り返した後、基数が2
の演算処理を1回行う。
【0209】まず、1回目の演算処理(基数4)につい
て説明する。
【0210】この演算処理では、各プロセッサ701,
702ごとに、作業用RAM107に格納された複素数
データを、格納されたアドレスにしたがって4個のグル
ープに分けて扱う。ここでは、図9(A)に示したよう
に、マスタモード用プロセッサ701に設けられた作業
用RAM107の0番地から1023番地までに格納さ
れた複素数データ(サンプル点番号では0〜1023)
をグループA1 、1024番地から2047番地までに
格納された複素数データ(サンプル点番号では2048
〜3071)をグループB1 、2048番地から307
1番地までに格納された複素数データ(サンプル点番号
では4096〜5119)をグループC1 、3072番
地から4095番地までに格納された複素数データ(サ
ンプル点番号では6144〜7167)をグループD1
とする。また、スレーブモード用プロセッサ702に設
けられた作業用RAM107の0番地から1023番地
までに格納された複素数データ(サンプル点番号では1
024〜2047)をグループA2 、1024番地から
2047番地までに格納された複素数データ(サンプル
点番号では3072〜4095)をグループB2 、20
48番地から3071番地までに格納された複素数デー
タ(サンプル点番号では5120〜6143)をグルー
プC2 、3072番地から4095番地までに格納され
た複素数データ(サンプル点番号では7168〜819
1)をグループD2 とする。
【0211】最初に、図10の第1ステージに示したよ
うに、マスタモード用プロセッサ701の第1のデータ
パス108および第2のデータパス109は、グループ
1,B1 ,C1 ,D1 のそれぞれ最初の複素数データ
(すなわち、0番地、1024番地、2048番地およ
び3072番地の複素数データ)を作業用RAM107
から取り込み、上述の第1の実施の形態の場合と同様に
して、式(1)〜(4)を用いた演算処理を行い、演算
結果ai ,bi ,ci ,di を得る。続いて、これらの
演算結果ai ,bi ,ci ,di が、データパス10
8,109から出力されて、作業用RAM107に格納
される。このとき、グループAに属する番地(ここでは
0番地)には式(1)の演算結果ai が、グループBに
属する番地(ここでは1024番地)には式(3)の演
算結果bi が、グループCに属する番地(ここでは20
48番地)には式(2)の演算結果ci が、グループD
に属する番地(ここでは3072番地)には式(4)の
演算結果di が、それぞれ格納される。
【0212】また、これと同時に、スレーブモード用プ
ロセッサ702の第1のデータパス108および第2の
データパス109は、グループA2 ,B2 ,C2 ,D2
のそれぞれ最初の複素数データ(すなわち、0番地、1
024番地、2048番地および3072番地の複素数
データ)を作業用RAM107から取り込んで式(1)
〜(4)を用いた演算処理を行い、演算結果a,b,
c,dを得る。そして、これらの演算結果が、マスタモ
ード用プロセッサ701の場合と同様にして、スレーブ
モード用プロセッサ702内の作業用RAM107に格
納される。
【0213】続いて、各プロセッサ701,702は、
1番地、1025番地、2049番地および3073番
地の複素数データを用いて同様の演算処理を行ない、以
下同様にしてすべての番地の複素数データについて順次
演算処理を行う。
【0214】このようにして1回目の演算処理が終了す
ると、入力選択回路713,714を用いて、マスタモ
ード用プロセッサ701およびスレーブモード用プロセ
ッサ702の間でデータの入れ替えを行う。すなわち、
図9(A)に示したように、マスタモード用プロセッサ
701に設けられた作業用RAM107の2048番地
から3071番地までに格納された複素数データ(すな
わちマスタモード用プロセッサ701の演算結果ci
とスレーブモード用プロセッサ702に設けられた作業
用RAM107の0番地から1023番地に格納された
複素数データ(すなわちスレーブモード用プロセッサ7
02の演算結果ai )とを入れ換え、さらに、マスタモ
ード用プロセッサ701に設けられた作業用RAM10
7の3072番地から4095番地までに格納された複
素数データ(すなわちマスタモード用プロセッサ701
の演算結果di )とスレーブモード用プロセッサ702
に設けられた作業用RAM107の1024番地から2
047番地に格納された複素数データ(すなわちスレー
ブモード用プロセッサ702の演算結果bi )とを入れ
換える。なお、このデータの入れ替えは、各プロセッサ
701,702の出力端子115,116から出力され
た複素数データを、入力選択回路714,713を介し
て他方のプロセッサに取り込むことによって行われる。
これにより、図9(B)に示したような、複素数データ
の番地割付を得ることができる。
【0215】このとき、図9(B)に示したように、各
プロセッサ701,702の作業用RAM107に格納
された複素数データは、サンプル点番号の小さい順には
並んでいない。すなわち、マスタモード用プロセッサ7
01に設けられた作業用RAM107の1024番地〜
2047番地にはサンプル点番号2048〜3071の
複素数データが格納され、作業用RAM107の204
8番地〜3071番地にはサンプル点番号1024〜2
047の複素数データが格納されている。また、スレー
ブモード用プロセッサ702に設けられた作業用RAM
107の1024番地〜2047番地にはサンプル点番
号6144〜7167の複素数データが格納され、作業
用RAM107の2048番地〜3071番地にはサン
プル点番号5120〜6143の複素数データが格納さ
れている。このため、この実施の形態では、各プロセッ
サ701,702の作業用RAM107に格納された複
素数データを、サンプル点番号の小さい順に並べ替え
る。実際には、この実施の形態では、この入れ替えは、
アドレス用のデコーダ333(図8参照)内のデコード
用データの変更によって行なう。すなわち、マスタモー
ド用プロセッサ701に設けられた作業用RAM107
の1024番地〜2047番地と2048番地〜307
1番地でメモリ番地のバイナリーコードの上位2ビット
を入れ替え、同様に、スレーブモード用プロセッサ70
2に設けられた作業用RAM107の1024番地〜2
047番地と2048番地〜3071番地でメモリ番地
のバイナリーコードの上位2ビットを入れ替える。これ
により、データ転送を行わずに、実質的にデータを入れ
換えることができる。したがって、処理時間の高速化を
図ることができる。但し、このようにデコーダ333内
のデコード用データを変更するのではなく、通常のデー
タ転送を行ってもよいことはもちろんである。
【0216】以上説明したようにしてデータの入れ替え
を行うことにより、2回目以降の演算処理を、各プロセ
ッサ701,702ごとに別個に行うことができる。
【0217】2回目の演算処理は、図10のステージ2
に示したように、各プロセッサ701,702におい
て、データRAM107の各番地を、0番地〜511番
地、512番地〜1023番地、1024番地〜153
5番地および1536番地〜2047番地の組み合わせ
と2048番地〜2559番地、2560番地〜307
1番地、3072番地〜3583番地、3584番地〜
4095番地に分割して演算処理を行う。
【0218】さらに、3回目〜7回目の演算処理につい
ても、図10のステージ3〜ステージ7に示したよう
に、第1の実施の形態の2回目〜6回目の演算処理と同
様の演算処理(但し、サンプル点数は異なる)を行う。
【0219】そして、上述の第1の実施の形態の場合と
同様にして、演算結果を外部に出力する。
【0220】このように、この実施の形態に係る高速フ
ーリエ変換処理システムでは、この発明に係る高速フー
リエ変換処理装置であってサンプル点数の最大がNのも
のを2個並列に接続することによって、サンプル点数が
2Nの高速フーリエ変換処理を行うことができる。した
がって、処理が可能なサンプル点数の最大値を安価に増
加させることができる。
【0221】また、このシステムを少数の外付部品の追
加によって構築することができるので、システムの規模
を小さくすることができる。
【0222】また、この実施の形態では2個の高速フー
リエ変換処理装置を並列接続することとしたが、4個以
上の高速フーリエ変換処理装置を並列することもできる
ことはもちろんである。この場合には、処理が可能なサ
ンプル点数の最大値をさらに多くすることができる。
【0223】第5の実施の形態 次に、この発明の第5の実施の形態について、図11を
用いて説明する。なお、この実施の形態は、処理が可能
なサンプル点数の最大値がN(この実施の形態ではN=
4096とする)を2個並列に接続することによってサ
ンプル点数が2N(すなわち8192点)の高速フーリ
エ変換処理を行うことができる高速フーリエ変換処理シ
ステムに関するものである点では上述の第4の実施の形
態と同様であるが、第2の実施の形態と同様のブロック
浮動小数点演算処理機能を有する点で第4の実施の形態
と異なる。
【0224】図11は、この実施の形態に係る高速フー
リエ変換処理システムを概念的に示すブロック図であ
る。
【0225】同図において、マスタモード用プロセッサ
1001およびスレーブモード用プロセッサ1002
は、ともに、上述の第2の実施例で示した高速フーリエ
変換処理装置からなる。かかるプロセッサ1001,1
002の内部構成において、図5と同じ符号を付した構
成成分は、それぞれ、図5の高速フーリエ変換処理装置
の場合と同じものを示している。
【0226】各プロセッサ1001,1002におい
て、出力回路1011は図5のセレクタ111,11
2、レジスタ113,114および出力端子115,1
16を略記したものである。そして、この出力回路10
11は、それぞれ、出力選択回路1006の入力端子に
接続されている。
【0227】また、各プロセッサ1001,1002に
おいて、セレクタ1012は、図5のセレクタ105,
106および入力端子101,102を略記したもので
ある。
【0228】マスタモード用プロセッサ1001のセレ
クタ1012は、マスタモード用入力選択回路1013
の出力端子に接続されている。また、このマスタモード
用入力選択回路1013の入力端子からは、外部から入
力された複素数データおよびスレーブモード用プロセッ
サ1002が出力した複素数データが入力される。
【0229】同様に、スレーブモード用プロセッサ10
02のセレクタ1012は、スレーブモード用入力選択
回路1014の出力端子に接続されており、このスレー
ブモード用入力選択回路1014の入力端子からは外部
から入力された複素数データおよびマスタモード用プロ
セッサ1001が出力した複素数データが入力される。
【0230】また、プロセッサ1001のシーケンス制
御部119から出力される状態表示信号は、NOTバッ
ファ1003を介して、プロセッサ1002のシーケン
ス制御部119に状態制御信号として入力される。同様
に、プロセッサ1002のシーケンス制御部119から
出力される状態表示信号は、NOTバッファ1004を
介して、プロセッサ1001のシーケンス制御部119
に状態制御信号として入力される。また、各プロセッサ
1001,1002のシーケンス制御部119には、外
部からシステム制御信号が入力される。
【0231】データ入力ポート1005は、外部から被
処理データを入力する。また、データ出力ポート100
7は、出力選択回路1006から入力された処理後の複
素数データを、外部に出力する。
【0232】次に、図11に示した高速フーリエ変換処
理システムの動作について説明する。
【0233】まず、8192点の被処理データのうち、
最初の1024点の被処理データが、データ入力ポート
1005およびマスタモード用入力選択回路1013を
介して、マスタモード用プロセッサ1001内に入力さ
れる。そして、上述の第1の実施例の場合と同様にし
て、これらの複素数データが、マスタモード用プロセッ
サ1001の作業用RAM107に格納される。このと
き、マスタモード用プロセッサ1001のブロック浮動
小数点検出記憶部503は、この複素数データをセレク
タ1012から入力して第2の実施の形態と同様の浮動
小数点指数検出を行い、記憶する。なお、これと同時
に、スレーブモード用プロセッサ1002のブロック浮
動小数点検出記憶部503も自動的に動作して浮動小数
点指数を検出するが、内部への記憶は行わない。
【0234】続いて、次の1024点の被処理データ
が、データ入力ポート1005およびスレーブモード用
入力選択回路1014を介して、スレーブモード用プロ
セッサ1002内に入力され、作業用RAM107に格
納される。このときも、スレーブモード用プロセッサ1
002のブロック浮動小数点検出記憶部503が、この
複素数データを入力して浮動小数点指数を検出し、記憶
する。なお、上述のマスタモード用プロセッサ1001
の場合と同様に、マスタモード用プロセッサ1001の
ブロック浮動小数点検出記憶部503も浮動小数点指数
を検出するが、内部への記憶は行わない。
【0235】このように、この実施の形態では各プロセ
ッサ1001,1002に設けられたブロック浮動小数
点検出記憶部503は別個に動作するが、結果としては
整合性のとれた浮動小数点指数の検出を行うことができ
る。
【0236】以下、残りの被処理データも、上述の第4
の実施の形態と同様にして、図9に示したような番地割
付で両プロセッサ1001,1002の作業用RAM1
07に格納される。
【0237】各プロセッサ1001,1002への複素
数データの格納が終了すると、続いて、これらの複素数
データを用いて高速フーリエ変換処理を行う。
【0238】なお、この実施の形態では、基数が4の演
算処理を6回繰り返した後、基数が2の演算処理を1回
行う。また、以下に説明するように、演算処理の動作
は、ブロック浮動小数点演算処理以外については、上述
の第4の実施の形態の場合と同じである。
【0239】まず、1回目の演算処理(基数4)につい
て説明する。
【0240】この演算処理では、各プロセッサ100
1,1002ごとに、作業用RAM107に格納された
複素数データを、格納されたアドレスにしたがって4個
のグループに分けて扱う。ここでは、図9に示したよう
に、マスタモード用プロセッサ1001に設けられた作
業用RAM107の0番地から1023番地までに格納
された複素数データ(サンプル点番号では0〜102
3)をグループA1 、1024番地から2047番地ま
でに格納された複素数データ(サンプル点番号では20
48〜3071)をグループB1 、2048番地から3
071番地までに格納された複素数データ(サンプル点
番号では4096〜5119)をグループC1 、307
2番地から4095番地までに格納された複素数データ
(サンプル点番号では6114〜7167)をグループ
1 とする。また、スレーブモード用プロセッサ100
2に設けられた作業用RAM107の0番地から102
3番地までに格納された複素数データ(サンプル点番号
では1024〜2047)をグループA2 、1024番
地から2047番地までに格納された複素数データ(サ
ンプル点番号では3072〜4095)をグループB
2 、2048番地から3071番地までに格納された複
素数データ(サンプル点番号では5120〜6143)
をグループC2 、3072番地から4095番地までに
格納された複素数データ(サンプル点番号では7168
〜8191)をグループD2 とする。
【0241】最初に、マスタモード用プロセッサ100
1の第1のデータパス501および第2のデータパス5
02は、グループA1 ,B1 ,C1 ,D1 のそれぞれ最
初の複素数データ(すなわち、0番地、1024番地、
2048番地および3072番地の複素数データ)とs
in/cos係数用ROM110に格納されたひねり係
数を読み込むと同時に、ブロック浮動小数点検出記憶部
503から最初のブロックの浮動小数点指数の検出値を
読み込む。そして、この検出値と上述の式(1)〜
(4)とを用いて、ブロック浮動小数点による演算処理
を行う。続いて、この演算結果ai ,bi ,ci ,di
が、作業用RAM107に格納される。このとき、グル
ープAに属する番地(ここでは0番地)には式(1)の
演算結果aiが、グループBに属する番地(ここでは1
024番地)には式(3)の演算結果bi が、グループ
Cに属する番地(ここでは2048番地)には式(2)
の演算結果ci が、グループDに属する番地(ここでは
3072番地)には式(4)の演算結果di が、それぞ
れ格納される。また、このとき、マスタモード用プロセ
ッサ1001内のブロック浮動小数点検出記憶部503
は、演算結果ai ,biの浮動小数点指数検出のみを行
い、演算結果ci ,di についての浮動小数点指数検出
は行わない。そして、これらの検出結果は、ブロック浮
動小数点検出記憶部503内に、そのまま記憶される。
【0242】また、これと同時に、スレーブモード用プ
ロセッサ1002の第1のデータパス108および第2
のデータパス109は、グループA2 ,B2 ,C2 ,D
2 のそれぞれ最初の複素数データ(すなわち、0番地、
1024番地、2048番地および3072番地の複素
数データ)を作業用RAM107から取り込んで式
(1)〜(4)を用いた演算処理を行い、演算結果
i ,bi ,ci ,di を得る。そして、これらの演算
結果が、マスタモード用プロセッサ1001の場合と同
様にして、スレーブモード用プロセッサ1002内の作
業用RAM107に格納される。このとき、スレーブモ
ード用プロセッサ1002内のブロック浮動小数点検出
記憶部503は、演算結果ci ,di の浮動小数点指数
検出のみを行い、演算結果ai ,bi についての浮動小
数点指数検出は行わない。そして、これらの検出結果
は、ブロック浮動小数点検出記憶部503内に、そのま
ま記憶される。
【0243】続いて、1番地、1025番地、2049
番地および3073番地の複素数データを用いて同様の
演算処理を行ない、さらに以下同様にしてすべての番地
の複素数データについて順次演算処理を行う。
【0244】このようにして1回目の演算処理が終了す
ると、入力選択回路1013,1014を用いて、マス
タモード用プロセッサ1001およびスレーブモード用
プロセッサ1002の間でデータの入れ替えを行う。す
なわち、マスタモード用プロセッサ1001に設けられ
た作業用RAM107の2048番地から3071番地
までに格納された複素数データ(すなわちマスタモード
用プロセッサ1001の演算結果ci )とスレーブモー
ド用プロセッサ1002に設けられた作業用RAM10
7の0番地から1023番地に格納された複素数データ
(すなわちスレーブモード用プロセッサ1002の演算
結果ai )とを入れ換え、さらに、マスタモード用プロ
セッサ1001に設けられた作業用RAM107の30
72番地から4095番地までに格納された複素数デー
タ(すなわちマスタモード用プロセッサ1001の演算
結果di )とスレーブモード用プロセッサ1002に設
けられた作業用RAM107の1024番地から204
7番地に格納された複素数データ(すなわちスレーブモ
ード用プロセッサ1002の演算結果bi )とを入れ換
える。このとき、この実施の形態では、入れ替えを行う
各複素数データのブロック浮動小数点指数の検出を行
う。これにより、1回目の演算処理で得られた演算結果
のすべてについてのブロック浮動小数点指数検出が行わ
れたことになる。
【0245】その後、上述の第4の実施の形態の場合と
同様にして、例えば作業用RAMに設けられたアドレス
用デコーダのデコード用データを変更することなどによ
り、各プロセッサ1001、1002内の作業用RAM
の1024番地〜2047番地と2048番地〜307
1番地の入れ換えを行う。
【0246】データの入れ替えが終了すると、次に、2
回目の演算処理(基数4)を、各プロセッサ1001,
1002ごとに独立させて行う。
【0247】2回目の演算処理は、第2の実施の形態に
おける1回目の演算処理の場合と同様であり、各プロセ
ッサ1001,1002において、データRAM107
の各番地を、図9に示したような番地割付で4分割して
ブロック浮動小数点による演算処理を行う。
【0248】さらに、3回目〜6回目以降の演算処理に
ついても、第2の実施の形態の2回目〜6回目の演算処
理と同様の演算処理を行う。
【0249】そして、上述の第2の実施の形態の場合と
同様にして、演算結果を外部に出力する。
【0250】このように、この実施の形態に係る高速フ
ーリエ変換処理システムでは、ブロック浮動小数点演算
が可能な高速フーリエ変換処理装置であってサンプル点
数の最大がNのものを2個並列に接続することによっ
て、サンプル点数が2Nの高速フーリエ変換処理を、ブ
ロック浮動小数点法を用いて行うことができる。
【0251】また、この実施の形態においても、4個以
上の高速フーリエ変換処理装置を並列することもできる
ことはもちろんである。
【0252】なお、この実施の形態では1回目〜7回目
のすべての演算処理でブロック浮動小数点法を用いるこ
ととしたが、例えば、1回目の演算処理は固定小数点法
を用いて行い、2回目以降の演算処理をブロック浮動小
数点法で行うこととしてもよい。この場合には、最初に
外部データを読み込む際には各プロセッサ1001,1
002に設けられたブロック浮動小数点検出記憶部50
3の検出動作を停止させ、検出を行わない。そして、1
回目の演算処理は第1の実施の形態と同様の固定小数点
法で行い、演算結果を格納する際および格納後に各プロ
セッサ1001,1002間で複素数データを入れ替え
る際に浮動小数点指数の検出を行う。そして、2回目以
降の演算処理では、第2の実施の形態で説明したような
浮動小数点指数を用いた演算処理を行えばよい。
【0253】このような方法によっても、この実施の形
態に係る高速フーリエ変換処理システムの効果を得るこ
とが可能である。
【0254】第6の実施の形態 次に、この発明の第6の実施の形態について、図18を
用いて説明する。なお、この実施の形態に係る高速フー
リエ変換処理装置は、データパスをさらに2個設けた点
と、転置用RAMを設けた点で、上述の第1の実施の形
態と異なる。
【0255】この実施の形態では、サンプル点数が20
48点の場合を例にとって説明する。
【0256】図18は、この実施の形態に係る高速フー
リエ変換処理装置の構成を概略的に示すブロック図であ
る。
【0257】同図において、図1と同じ符号を付した構
成部は、それぞれ、図1の場合と同じものを示してい
る。
【0258】また、同図において、出力回路1801
は、図1にセレクタ111,112、レジスタ113,
114および出力端子115,116を略記したもので
ある。さらに、セレクタ1802は、図1のセレクタ1
05,106、レジスタ103,104および入力ポー
ト101,102を略記したものである。
【0259】第3のデータパス1803は、第1のデー
タパス108と同じ内部構造、すなわち図2(A)に示
した構造または図12に示した構造のいずれかを使用す
ることができる。同様に、第4のデータパス1804
は、第2のデータパス109と同じ内部構造、すなわち
図2(A)に示した構造または図12に示した構造のい
ずれかを使用することができる。
【0260】転置用RAM1805は、第1のデータパ
ス108および第2のデータパス109で算出された複
素数データai 〜di を順次取り込んで一時的に記憶す
る。そして、後述するようにして、これらの複素数デー
タによって形成される4行4列の行列を転置して1列ず
つ出力する。
【0261】続いて、図18に示した高速フーリエ変換
処理装置の動作について、図19を用いて説明する。
【0262】まず、上述の第1の実施の形態の場合と同
様にして、2048点の被処理データが、実数部と虚数
部とに分けられて、セレクタ1802から作業用RAM
107に順次格納される。
【0263】被処理データを作業用RAM107に格納
する動作が終了すると、続いて、これらの被処理データ
を用いて高速フーリエ変換処理を行う。
【0264】この実施の形態では、以下に説明するよう
にして、1回目の演算処理と2回目の演算処理とを同時
に行う。
【0265】この演算処理では、作業用RAM107に
格納された2048個の複素数データが、第1の実施の
形態の場合と同様の4グループA,B,C,Dに分割さ
れ、さらに、各グループA,B,C,Dがそれぞれ4グ
ループAG1〜AG4,BG1〜BG4,CG1〜CG4,DG1〜D
G4に4分割される。すなわち、この実施の形態では、作
業用RAM107に格納された2048を最初に16分
割しており、この点で上述の各実施の形態と異なる。
【0266】そして、第1のデータパス108および第
2のデータパス109が、作業用RAM107の0番
地、512番地、1024番地および1536番地に格
納された各複素数データ(すなわちグループAG1
G1,CG1,DG1の最初の複素数データ)とsin/c
os係数用ROM110に格納されたひねり係数を読み
込む。そして、0番地のデータをAi 、512番地のデ
ータをBi 、1024番地のデータをCi 1536番地
のデータをDi として、上述の式(1)〜(4)の演算
を行う。
【0267】演算が終了すると、第1のデータパス10
8および第2のデータパス109から演算結果a1 ,b
1 ,c1 ,d1 が出力される。この実施の形態では、こ
れらの演算結果は、転置用RAM1805に格納され
る。
【0268】続いて、第1のデータパス108および第
2のデータパス109は、作業用RAM107の128
番地、640番地、1152番地および1644番地の
各複素数データ(すなわちグループAG2,BG2,CG2
G2の最初の複素数データ)をデータをAi ,Bi ,C
i ,Di として読み込んで、上式(1)〜(4)を用い
た演算を行い、演算結果a2 ,b2 ,c2 ,d2 を転置
用RAM1805に格納する。同様にして、グループA
G3,BG3,CG3,DG3の最初の複素数データおよびグル
ープAG4,BG4,CG4,DG4の最初の複素数データにつ
いても、上式(1)〜(4)を用いた演算を順次行い、
演算結果a3 ,b3 ,c3 ,d3 およびa4 ,b4 ,c
4 ,d4 を順次転置用RAM1805に格納する。
【0269】その後、第1のデータパス108および第
2のデータパス109は、各グループAG1〜AG4,BG1
〜BG4,CG1〜CG4,DG1〜DG4の2番目以降の複素数
データについても、同様の演算を行い、演算結果を順次
転置用RAM1805に格納していく。
【0270】転置用RAM1805は、図19に示した
ように、これらの演算結果を4行4列の行列に分割し、
これを転置して(すなわち行と列とを入れ替えて)、1
列ずつ出力する。
【0271】第3のデータパス1803および第4のデ
ータパス1804は、転置用RAM1805から入力し
た複素数データを読み込む。そして、1行目のデータを
i2行目のデータをBi 、3行目のデータをCi 4行
目のデータをDi として、上式(1)〜(4)の演算を
行う。例えば、最初の演算の場合であれば、a1
i ,a2 →Bi ,a3 →Ci ,a4 →Di として、上
式(1)〜(4)の演算を行う。そして、この演算によ
って得られた複素数データai ,bi ,ci ,diが、
作業用RAM107に格納される。このとき、例えば最
初の演算の場合であれば、グループAG1に属する番地
(ここでは0番地)には式(1)の演算結果ai が、グ
ループAG2に属する番地(ここでは128番地)には式
(3)の演算結果bi が、グループAG3に属する番地
(ここでは256番地)には式(2)の演算結果c
i が、グループAG4に属する番地(ここでは384番
地)には式(4)の演算結果di が、それぞれ格納され
る。
【0272】また、第3のデータパス1803および第
4のデータパス1804の2回目の演算では、b1 →A
i ,b2 →Bi ,b3 →Ci ,b4 →Di として上式
(1)〜(4)の演算が行われ、演算結果が作業用RA
M107に格納される。このとき、グループBG1に属す
る番地(ここでは512番地)には式(1)の演算結果
i が、グループBG2に属する番地(ここでは640番
地)には式(3)の演算結果bi が、グループBG3に属
する番地(ここでは768番地)には式(2)の演算結
果ci が、グループBG4に属する番地(ここでは896
番地)には式(4)の演算結果di が、それぞれ格納さ
れる。
【0273】さらに、転置用RAM1805から入力さ
れた複素数データc1 〜c4 ,d1〜d4 についても上
式(1)〜(4)の演算が順次行われ、各演算結果がグ
ループCG1〜CG4,DG1〜DG4の最初の番地に格納され
る。
【0274】以下同様にして、第3のデータパス180
3および第4のデータパス1804は、転置用RAM1
805から入力したすべての複素数データについての演
算を行い、作業用RAM107に順次格納する。
【0275】このように、この実施の形態では、作業用
RAM107を4分割して得られた各グループA,B,
C,Dをさらにそれぞれ4分割してグループAG1
G4,BG1〜BG4,CG1〜CG4,DG1〜DG4を得ること
とし、グループAG1,BG1,CG1,DG1の被処理データ
を用いた演算、グループAG2,BG2,CG2,DG2の被処
理データを用いた演算、グループAG3,BG3,CG3,D
G3の被処理データを用いた演算およびグループAG4,B
G4,CG4,DG4の被処理データを用いた演算を第1のデ
ータパス108および第2のデータパス109で交互に
繰り返して行うことにした。これにより、第3のデータ
パス1803および第4のデータパス1804が転置用
RAM1805の出力をそのまま用いて演算を行えるよ
うになり、従って高速の演算処理を実現することができ
る。
【0276】このようにして1回目および2回目の演算
処理が終了すると、次に、以下のようにして3回目およ
び4回目の演算処理(基数4)を同時に行う。
【0277】この演算処理では、作業用RAM107の
各グループAG1〜AG4,BG1〜BG4,CG1〜CG4,DG1
〜DG4のそれぞれを、さらに16個のグループに分割す
る。すなわち、この演算処理では、データRAM107
の各番地を合計256個に分割する。例えば、グループ
G1を4分割して得られた各グループをA,B,C,D
とし、さらに各グループをそれぞれ4分割してAG1〜A
G4,BG1〜BG4,CG1〜CG4,DG1〜DG4とする。例え
ば、上述の1回目および2回目の分割におけるグループ
G1(0番地〜128番地)をさらに16分割した結
果、AG1は0〜7番地、BG1は32〜39番地、CG1
64〜71番地、DG1は96〜103番地となる。
【0278】そして、第1のデータパス108および第
2のデータパス109が、作業用RAM107の0番
地、32番地、64番地および96番地に格納された各
複素数データとsin/cos係数用ROM110に格
納されたひねり係数とを読み込み、0番地のデータをA
i 、32番地のデータをBi 、64番地のデータをCi
96番地のデータをDi として、上式(1)〜(4)の
演算を行う。そして、この演算によって得られた複素数
データが、転置用RAM1805に格納される。以下、
1回目および2回目の場合と同様にして、第1のデータ
パス108および第2のデータパス109による演算が
繰り返される。
【0279】また、転置用RAM1805も、1回目お
よび2回目の場合と同様にして、演算結果を4行4列の
行列に分割して転置し、一列ずつ出力する動作を繰り返
す。
【0280】さらに、第3のデータパス1803および
第4のデータパス1804も、1回目および2回目の場
合と同様にして、転置用RAM1805から取り込んだ
複素数データを用いて上式(1)〜(4)の演算を行
い、演算結果ai ,bi ,ci,di を作業用RAM1
07の所定の番地に格納する。例えば、最初の演算の場
合であれば、ai を0番地に、bi を8番地に、ci
16番地に、di を24番地に、それぞれ格納する。
【0281】このようにして3回目および4回目の演算
処理が終了すると、次に、以下のようにして5回目の演
算処理(基数4)および6回目の演算処理(基数2)を
同時に行う。
【0282】この演算処理では、上述の3回目および4
回目の演算処理で分割されたデータRAM107の各グ
ループを、4個のグループに分割する。すなわち、この
演算処理では、データRAM107の各番地を合計10
24個に分割する。例えば、上述の3回目および4回目
の分割におけるグループAG1(0番地〜7番地)をさら
に4分割した結果、AG1は0番地および1番地、BG1
2番地および3番地、CG1は4番地および5番地、DG1
は6番地および7番地となる。なお、この演算処理で1
6分割ではなく4分割することとしたのは、基数2の演
算処理(すなわち6回目の演算処理)では作業用RAM
内の被処理データを4分割する必要がないことに起因す
るものである。
【0283】次に、第1のデータパス108および第2
のデータパス109が、作業用RAM107の0番地、
2番地、4番地および6番地に格納された各複素数デー
タとsin/cos係数用ROM110に格納されたひ
ねり係数とを読み込み、0番地のデータをAi 、2番地
のデータをBi 、4番地のデータをCi 6番地のデータ
をDi として、上式(1)〜(4)の演算を行う。そし
て、この演算によって得られた複素数データが、転置用
RAM1805に格納される。以下、1回目および2回
目の場合と同様にして、第1のデータパス108および
第2のデータパス109による演算が繰り返される。
【0284】また、転置用RAM1805も、1回目お
よび2回目の場合と同様にして、演算結果を4行4列の
行列に分割して転置し、一列ずつ出力する動作を繰り返
す。
【0285】第3のデータパス1803および第4のデ
ータパス1804は、基数2の演算処理を行う。すなわ
ち、これらのデータパス1803,1804は、転置用
RAM1805から取り込んだ複素数データを用いて上
式(5)〜(8)の演算を行い、演算結果ai ,bi
i ,di を作業用RAM107の所定の番地に格納す
る。例えば、最初の演算の場合であれば、ai を0番地
に、bi を1番地に、ci を8番地に、di を9番地
に、それぞれ格納する。
【0286】以下、同様の演算を繰り返し、演算結果を
作業用RAM107に順次格納する。
【0287】5回目および6回目の演算処理が終了する
と、最後に、上述の第1の実施の形態と同様にして、演
算結果を外部に出力する。
【0288】このように、この実施の形態では、第1の
データパス108および第2のデータパス109の演算
結果ai ,bi ,ci ,di を一旦作業用RAMに格納
する必要が無く、転置用RAM1805で転置してその
まま第3のデータパス1803および第4のデータパス
1804の被処理データとして使用することができるの
で、処理速度を飛躍的に向上させることができる。
【0289】なお、ここではデータパスを2段にした場
合を例にとって説明したが、4段以上の複数段して、各
段の間に転置用RAMを設けることとしてもよい。この
場合には、処理速度を一層向上させることができる。
【0290】第7の実施の形態 次に、この発明の第7の実施の形態について、図20を
用いて説明する。なお、この実施の形態に係る高速フー
リエ変換処理装置は、ブロック浮動小数点演算処理機能
を有する点で、上述の第6の実施の形態と異なる。
【0291】この実施の形態でも、サンプル点数が20
48点の場合を例にとって説明する。
【0292】図20は、この実施の形態に係る高速フー
リエ変換処理装置の構成を概略的に示すブロック図であ
る。
【0293】同図において、図1、図18と同じ符号を
付した構成部は、それぞれ、これらの図と同じものを示
している。
【0294】また、図20において、第1のデータパス
2001および第2のデータパス2002は、ブロック
浮動小数点演算を行うためのシフト機能を有している点
で、図18に示した各データパス108,109と異な
る。なお、このブロック浮動小数点演算で使用するシフ
ト機能の詳細構成については、説明を省略する。
【0295】また、ブロック浮動小数点検出記憶部20
03は、セレクタ1802が出力した複素数データを取
り込んでブロック浮動小数点を検出するとともに、この
検出値を一時的に記憶する。このブロック浮動小数点検
出記憶部2003が一時的に記憶したブロック浮動小数
点の検出値は、データパス2001,2002およびシ
ーケンス制御部119に転送される。
【0296】出力ビットシフタ2004,2005は、
作業用RAM107から複素数データを取り込むととも
にシーケンス制御部119から浮動小数点指数を取り込
み、この浮動小数点指数の値に基づいて複素数データを
シフトさせて、その結果を出力する。
【0297】レジスタ2006は、シーケンス制御部1
19から浮動小数点指数の累算値を入力し、外部に対し
て出力する。
【0298】続いて、図20に示した高速フーリエ変換
処理装置の動作を説明する。
【0299】まず、上述の第6の実施の形態の場合と同
様にして、2048点の被処理データが、実数部と虚数
部とに分けられて、セレクタ1802から作業用RAM
107に順次格納される。このとき、ブロック浮動小数
点検出記憶部2003は、これらの複素数データをセレ
クタ1802から順次入力して浮動小数点指数を検出
し、第2の実施の形態の場合と同様にして浮動小数点指
数を検出する。
【0300】被処理データを作業用RAM107に格納
する動作が終了すると、続いて、これらの被処理データ
を用いて高速フーリエ変換処理を行う。
【0301】この実施の形態では、以下に説明するよう
にして、1回目の演算処理と2回目の演算処理とを同時
に行う。
【0302】この演算処理では、作業用RAM107に
格納された2048個の複素数データが、第6の実施の
形態の場合と同様にして、グループAG1〜AG4,BG1
G4,CG1〜CG4,DG1〜DG4に分割される。
【0303】そして、第1のデータパス2001および
第2のデータパス2002が、作業用RAM107の0
番地、512番地、1024番地および1536番地に
格納された各複素数データ(すなわちグループAG1,B
G1,CG1,DG1の最初の複素数データ)とsin/co
s係数用ROM110に格納されたひねり係数を読み込
むと同時に、ブロック浮動小数点検出記憶部2003か
ら、各グループに共通な浮動小数点指数を読み込む。そ
して、この浮動小数点指数と上式(1)〜(4)とを用
いて、ブロック浮動小数点による演算を行う。
【0304】演算が終了すると、第1のデータパス20
01および第2のデータパス2002から演算結果
1 ,b1 ,c1 ,d1 が出力され、転置用RAM18
05に格納される。
【0305】その後、第1のデータパス2001および
第2のデータパス2002は、第6の実施の形態の場合
と同様にして、他の複素数データを順次作業用RAM1
07から読み出す。そして、ブロック浮動小数点による
演算処理を順次実行し、演算結果を順次転置用RAM1
805に格納していく。
【0306】このとき、転置用RAM1805は、第6
の実施の形態と同様、これらの演算結果を4行4列の行
列に分割し、これを転置して、1列ずつ出力する。
【0307】第3のデータパス1803および第4のデ
ータパス1804は、転置用RAM1805から入力し
た複素数データを読み込む。そして、a1 →Ai ,a2
→Bi ,a3 →Ci ,a4 →Di として、上式(1)〜
(4)の演算を固定小数点により行う。さらに、この演
算によって得られた複素数データai ,bi ,ci ,d
i を、作業用RAM107に格納する(格納する番地は
第6の実施の形態の場合と同様である)。
【0308】このとき、ブロック浮動小数点検出記憶部
2003は、各演算結果ai ,bi,ci ,di を入力
して、これらの演算結果ごとに浮動小数点指数を検出
し、記憶する。
【0309】次に、第3のデータパス1803および第
4のデータパス1804が、b1 →Ai ,b2 →Bi
3 →Ci ,b4 →Di として、2回目の演算を固定小
数点により行い、演算結果を作業用RAM107に格納
する(格納する番地は第6の実施の形態の場合と同様で
ある)。
【0310】このとき、ブロック浮動小数点検出記憶部
2003は、各演算結果ai ,bi,ci ,di を入力
して浮動小数点指数を検出し、これらの検出値をそれぞ
れブロック浮動小数点検出記憶部2003内に記憶され
た浮動小数点指数と比較する。そして、既に記憶された
浮動小数点指数の方が小さいときは記憶内容を変更せ
ず、今回の検出値の方が小さいときは記憶内容を今回の
検出値に変更する。
【0311】以下同様にして、第3のデータパス180
3および第4のデータパス1804は、転置用RAM1
805から入力したすべての複素数データについての演
算を行って作業用RAM107に順次格納し、ブロック
浮動小数点検出記憶部2003は、順次計算結果ごとの
浮動小数点検出を行って、この検出値が記憶内容よりも
小さいときは記憶内容を書き換える。
【0312】この実施の形態では、このようにして検出
した浮動小数点指数を、後述する3回目の演算処理で使
用する。
【0313】このようにして1回目および2回目の演算
処理が終了すると、次に、以下のようにして3回目およ
び4回目の演算処理(基数4)を同時に行う。
【0314】この演算処理では、第6の実施の形態の場
合と同様、作業用RAM107の各グループAG1
G4,BG1〜BG4,CG1〜CG4,DG1〜DG4のそれぞれ
を、さらに16個のグループに分割する。
【0315】そして、第1のデータパス2001および
第2のデータパス2002が、作業用RAM107の0
番地、32番地、64番地および96番地に格納された
各複素数データとsin/cos係数用ROM110に
格納されたひねり係数とを読み込むとともに、ブロック
浮動小数点検出記憶部2003から浮動小数点指数を読
み込み、上式(1)〜(4)の演算をブロック浮動小数
点によって実行する。以下、1回目の演算処理の場合と
同様にして、第1のデータパス2001および第2のデ
ータパス2002による演算が繰り返される。
【0316】また、転置用RAM1805も、1回目お
よび2回目の場合と同様にして、演算結果を4行4列の
行列に分割して転置し、一列ずつ出力する動作を繰り返
す。
【0317】さらに、第3のデータパス1803および
第4のデータパス1804も、1回目および2回目の場
合と同様にして、転置用RAM1805から取り込んだ
複素数データを用いて上式(1)〜(4)の演算を固定
小数点で行い、演算結果ai,bi ,ci ,di を作業
用RAM107の所定の番地に格納する。このとき、ブ
ロック浮動小数点検出記憶部2003は、2回目の演算
処理の場合と同様にして、計算結果ai ,bi ,ci
i ごとの浮動小数点検出を順次行い、この検出値が記
憶内容よりも小さいときは記憶内容を順次書き換える。
【0318】このようにして検出した浮動小数点指数
は、後述する5回目の演算処理で使用される。
【0319】以上のようにして3回目および4回目の演
算処理が終了すると、次に、5回目の演算処理(基数
4)および6回目の演算処理(基数2)を同時に行う。
【0320】この演算処理では、第6の実施の形態の場
合と同様、上述の3回目および4回目の演算処理で分割
されたデータRAM107の各グループを、4個のグル
ープに分割する。
【0321】そして、第1のデータパス2001および
第2のデータパス2002が、作業用RAM107の0
番地、2番地、4番地および6番地に格納された各複素
数データとsin/cos係数用ROM110に格納さ
れたひねり係数とを読み込み、これと同時にブロック浮
動小数点記憶検出部2003から浮動小数点指数を読み
込んで、上式(1)〜(4)の演算をブロック浮動小数
点により実行する。続いて、この演算によって得られた
複素数データが、転置用RAM1805に格納される。
以下、1回目および3回目の場合と同様にして、第1の
データパス2001および第2のデータパス2002に
よる演算が繰り返される。
【0322】また、転置用RAM1805も、1回目お
よび3回目の場合と同様にして、演算結果を4行4列の
行列に分割して転置し、一列ずつ出力する動作を繰り返
す。
【0323】第3のデータパス1803および第4のデ
ータパス1804は、基数2の演算処理を行う。すなわ
ち、これらのデータパス1803,1804は、転置用
RAM1805から取り込んだ複素数データを用いて上
式(5)〜(8)の演算を固定小数点で行い、演算結果
i ,bi ,ci ,di を作業用RAM107の所定の
番地に格納する。このとき、ブロック浮動小数点検出記
憶部2003は、演算結果ai ,bi ,ci ,di ごと
に浮動小数点検出を順次行い、この検出値が記憶内容よ
りも小さいときは記憶内容を順次書き換える。
【0324】5回目および6回目の演算処理が終了する
と、最後に、演算結果を外部に出力する。このときは、
まず、シーケンス制御部119がブロック浮動小数点検
出記憶部2003から各サンプルに対する全ステージで
用いた浮動小数点指数の累算値を入力し、出力ビットシ
フタ2004,2005に送る。そして、出力ビットシ
フタ2004,2005は、この浮動小数点指数に基づ
いて、作業用RAM107から入力した複素数データを
シフトさせた後、出力回路1801に送る。これによ
り、シフト後の複素数データが、出力回路1801から
外部へ出力される。
【0325】また、必要であれば、出力ビットシフタ2
004,2005によるシフトを行わずに複素数データ
を出力するとともに、最終的な浮動小数点指数の累算値
をレジスタ2006から外部に出力することもできる。
【0326】このように、この実施の形態では、第1の
データパス2001および第2のデータパス2002の
演算結果ai ,bi ,ci ,di を一旦作業用RAMに
格納する必要が無く、転置用RAM1805で転置して
そのまま第3のデータパス1803および第4のデータ
パス1804の被処理データとして使用することができ
るので、ブロック浮動小数点法による処理速度を飛躍的
に向上させることができる。
【0327】なお、ここではデータパスを2段にした場
合を例にとって説明したが、4段以上の複数段して、各
段の間に転置用RAMを設けることとしてもよい。この
場合には、処理速度を一層向上させることができる。
【0328】第8の実施の形態 次に、この発明の第8の実施の形態について、図21を
用いて説明する。なお、この実施の形態に係る高速フー
リエ変換処理装置は、セレクタ2101を設けた点で、
上述の第6の実施の形態と異なる。
【0329】この実施の形態では、サンプル点数が10
24点の場合を例にとって説明する。
【0330】図21は、この実施の形態に係る高速フー
リエ変換処理装置の構成を概略的に示すブロック図であ
る。
【0331】同図において、図18と同じ符号を付した
構成部は、それぞれ、図18の場合と同じものを示して
いる。
【0332】また、同図において、セレクタ2101
は、第1、第2ののデータパス108,109の出力ま
たは第3、第4ののデータパス1803,1804の出
力の一方を選択して、セレクタ1802の一方の入力端
子に供給する。この選択は、シーケンス制御部119に
よって行われる。
【0333】続いて、図21に示した高速フーリエ変換
処理装置の動作を説明する。
【0334】この実施の形態では、上述のようにサンプ
ル点数が1024(45 )点であるので、基数が4の演
算処理を5回行う。
【0335】まず、外部から入力された被処理データが
作業用RAM107に供給されるように、シーケンス制
御部119がセレクタ1802を設定する。そして、上
述の第1の実施の形態の場合と同様にして、被処理デー
タが、実数部と虚数部とに分けられて、セレクタ180
2から作業用RAM107に順次格納される。
【0336】次に、シーケンス制御部119は、第3、
第4のデータパス1803,1804の出力が作業用R
AM107に供給されるように、セレクタ1802,2
101を設定する。
【0337】そして、上述の第6の実施の形態と同様に
して、1回目および2回目の演算処理を同時に行い、さ
らに、3回目および4回目の演算処理を同時に行う。
【0338】1回目〜4回目の演算処理が終了すると、
次に、シーケンス制御部119は、第1、第2のデータ
パス108,109の出力が作業用RAM107に供給
されるように、セレクタ1802,2101を設定す
る。
【0339】そして、以下のようにして、5回目の演算
処理(基数4)を行う。
【0340】まず、この演算処理では、上述の3回目お
よび4回目の演算処理で256分割されたデータRAM
107の各グループを、さらに4個のグループに分割す
る。すなわち、この演算処理では、データRAM107
の各番地を合計1024個に分割する。
【0341】次に、第1のデータパス108および第2
のデータパス109が、作業用RAM107の0番地、
1番地、2番地および3番地に格納された各複素数デー
タとsin/cos係数用ROM110に格納されたひ
ねり係数とを読み込み、0番地のデータをAi 、1番地
のデータをBi 、2番地のデータをCi 3番地のデータ
をDi として、上式(1)〜(4)の演算を行う。
【0342】続いて、この演算によって得られた複素数
データai ,bi ,ci ,di を、セレクタ1802,
2101を介して、作業用RAM107の0番地、1番
地、2番地および3番地に格納する。その後、これと同
様にして、4番地、5番地、6番地および7番地の各複
素数データを用いた演算処理を行う。
【0343】以下、同様にして、各番地の複素数データ
を用いた演算を行う。
【0344】以上のようにして5回目の演算処理が終了
すると、最後に、上述の各実施の形態と同様にして、演
算結果を外部に出力する。
【0345】このように、この実施の形態では、セレク
タ2101を設けたので、演算処理の回数が奇数回の場
合に有効である。
【0346】なお、ここではデータパスを2段にした場
合を例にとって説明したが、4段以上の複数段して、各
段の間に転置用RAMを設けることとしてもよい。この
場合には、処理速度を一層向上させることができる。
【0347】第9の実施の形態 次に、この発明の第9の実施の形態について、図22を
用いて説明する。この実施の形態は、上述の第8の実施
の形態に示した高速フーリエ変換処理装置にブロック浮
動小数点演算処理機能を設けたものである。
【0348】この実施の形態でも、サンプル点数が10
24点の場合を例にとって説明する。
【0349】図22は、この実施の形態に係る高速フー
リエ変換処理装置の構成を概略的に示すブロック図であ
る。
【0350】同図において、図21と同じ符号を付した
構成部は、それぞれ、これらの図と同じものを示してい
る。
【0351】また、図22において、第1のデータパス
2201および第2のデータパス2202は、ブロック
浮動小数点演算を行うためのシフト機能を有している点
で、図21に示した各データパス108,109と異な
る。なお、このブロック浮動小数点演算で使用するシフ
ト機能の詳細構成については、説明を省略する。
【0352】また、ブロック浮動小数点検出記憶部22
03は、セレクタ1802が出力した複素数データを取
り込んでブロック浮動小数点を検出するとともに、この
検出値を一時的に記憶する。
【0353】出力ビットシフタ2204,2205は、
作業用RAM107から複素数データを取り込むととも
にシーケンス制御部119から浮動小数点指数の累算値
を取り込み、この浮動小数点指数の値に基づいて複素数
データをシフトさせて、その結果を出力する。
【0354】レジスタ2206は、シーケンス制御部1
19から浮動小数点指数の累算値を入力し、外部に対し
て出力する。
【0355】続いて、図22に示した高速フーリエ変換
処理装置の動作を説明する。
【0356】まず、外部から入力された被処理データが
作業用RAM107に供給されるように、シーケンス制
御部119がセレクタ1802を設定する。そして、上
述の第8の実施の形態の場合と同様にして、1024点
の被処理データが、実数部と虚数部とに分けられて、セ
レクタ1802から作業用RAM107に順次格納され
る。このとき、ブロック浮動小数点検出記憶部2203
は、これらの複素数データをセレクタ1802から順次
入力して浮動小数点指数を検出し、第2の実施の形態の
場合と同様にして浮動小数点指数を検出する。
【0357】次に、シーケンス制御部119は、第3、
第4のデータパス1803,1804の出力が作業用R
AM107に供給されるように、セレクタ1802,2
101を設定する。
【0358】そして、上述の第7の実施の形態と同様に
して、1回目および2回目の演算処理を同時に行い、さ
らに、3回目および4回目の演算処理を同時に行う。こ
のとき、第1のデータパス2201および第2のデータ
パス2202ではブロック浮動小数点検出記憶部220
3から取り込んだ浮動小数点指数を用いてブロック浮動
小数点による演算を行い、第3のデータパス1803お
よび第4のデータパス1804では固定小数点による演
算を行う。
【0359】1回目〜4回目の演算処理が終了すると、
次に、シーケンス制御部119は、第1、第2のデータ
パス2201,2202の出力が作業用RAM107に
供給されるように、セレクタ1802,2101を設定
する。
【0360】そして、以下のようにして、5回目の演算
処理(基数4)を行う。
【0361】まず、この演算処理では、上述の3回目お
よび4回目の演算処理で256分割されたデータRAM
107の各グループを、さらに4個のグループに分割す
る。すなわち、この演算処理では、データRAM107
の各番地を合計1024個に分割する。
【0362】次に、第1のデータパス2201および第
2のデータパス2202が、作業用RAM107の0番
地、1番地、2番地および3番地に格納された各複素数
データと、sin/cos係数用ROM110に格納さ
れたひねり係数と、ブロック浮動小数点検出記憶部22
03に格納された浮動小数点指数とを読み込み、0番地
のデータをAi 、1番地のデータをBi 、2番地のデー
タをCi 3番地のデータをDi として、上式(1)〜
(4)の演算をブロック浮動小数点で行う。
【0363】続いて、この演算によって得られた複素数
データai ,bi ,ci ,di を、セレクタ1802,
2101を介して、作業用RAM107の0番地、1番
地、2番地および3番地に格納する。このとき、ブロッ
ク浮動小数点検出記憶部2203は、浮動小数点指数の
検出を順次行い、この検出値が記憶内容よりも小さいと
きは記憶内容を順次書き換える。
【0364】その後、これと同様にして、4番地、5番
地、6番地および7番地の各複素数データを用いた演算
処理を行う。
【0365】以上のようにして5回目の演算処理が終了
すると、最後に、上述の各実施の形態と同様にして、演
算結果を外部に出力する。このときは、まず、シーケン
ス制御部119がブロック浮動小数点検出記憶部220
3から各サンプルに対する全ステージで用いた浮動小数
点指数の累算値を入力し、出力ビットシフタ2204,
2205に送る。そして、出力ビットシフタ2204,
2205は、この浮動小数点指数に基づいて、作業用R
AM107から入力した複素数データをシフトさせた
後、出力回路1801に送る。これにより、シフト後の
複素数データが、出力回路1801から外部へ出力され
る。
【0366】また、必要であれば、出力ビットシフタ2
204,2205によるシフトを行わずに複素数データ
を出力するとともに、最終的な浮動小数点指数をレジス
タ2206から外部に出力することもできる。
【0367】このように、この実施の形態では、セレク
タ2101を設けたので、演算処理の回数が奇数回の場
合でも、ブロック浮動小数点法による高速処理を実現す
ることができる。
【0368】なお、ここではデータパスを2段にした場
合を例にとって説明したが、4段以上の複数段して、各
段の間に転置用RAMを設けることとしてもよい。この
場合には、処理速度を一層向上させることができる。
【0369】第10の実施の形態 次に、この発明の第10の実施の形態について、図23
を用いて説明する。なお、この実施の形態に係る高速フ
ーリエ変換処理装置は、セレクタ2301を設けた点
で、上述の第6の実施の形態と異なる。
【0370】この実施の形態では、サンプル点数が10
24点の場合を例にとって説明する。
【0371】図23は、この実施の形態に係る高速フー
リエ変換処理装置の構成を概略的に示すブロック図であ
る。
【0372】同図において、図18と同じ符号を付した
構成部は、それぞれ、図18の場合と同じものを示して
いる。
【0373】また、同図において、セレクタ2301
は、作業用RAM107の出力または転置用RAM18
05の出力の一方を選択して、第3のデータパス180
3および第4のデータパス1804に供給する。この選
択は、シーケンス制御部119によって行われる。
【0374】続いて、図21に示した高速フーリエ変換
処理装置の動作を説明する。
【0375】この実施の形態では、上述のようにサンプ
ル点数が1024(45 )点であるので、基数が4の演
算処理を5回行う。
【0376】まず、外部から入力された被処理データ
が、実数部と虚数部とに分けられて、セレクタ1802
から作業用RAM107に順次格納される。
【0377】次に、シーケンス制御部119は、転置用
RAM1805の出力が第3、第4のデータパス180
3,1804に供給されるように、セレクタ2301を
設定する。
【0378】そして、上述の第6の実施の形態と同様に
して、1回目および2回目の演算処理を同時に行い、さ
らに、3回目および4回目の演算処理を同時に行う。
【0379】1回目〜4回目の演算処理が終了すると、
次に、シーケンス制御部119は、作業用RAM107
の出力が第3、第4のデータパス1803,1804に
供給されるように、セレクタ2301を設定する。
【0380】そして、以下のようにして、5回目の演算
処理(基数4)を行う。
【0381】まず、この演算処理では、上述の3回目お
よび4回目の演算処理で256分割されたデータRAM
107の各グループを、さらに4個のグループに分割す
る。すなわち、この演算処理では、データRAM107
の各番地を合計1024個に分割する。
【0382】次に、第3のデータパス1803および第
4のデータパス1804が、作業用RAM107の0番
地、1番地、2番地および3番地に格納された各複素数
データとsin/cos係数用ROM110に格納され
たひねり係数とを読み込み、0番地のデータをAi 、1
番地のデータをBi 、2番地のデータをCi 3番地のデ
ータをDi として、上式(1)〜(4)の演算を行う。
【0383】続いて、この演算によって得られた複素数
データai ,bi ,ci ,di を、作業用RAM107
の0番地、1番地、2番地および3番地に格納する。そ
の後、これと同様にして、4番地、5番地、6番地およ
び7番地の各複素数データを用いた演算処理を、第3の
データパス1803および第4のデータパス1804が
行う。
【0384】以下、同様にして、各番地の複素数データ
を用いた演算を行う。
【0385】以上のようにして5回目の演算処理が終了
すると、最後に、上述の各実施の形態と同様にして、演
算結果を外部に出力する。
【0386】このように、この実施の形態では、セレク
タ2301を設けたので、演算処理の回数が奇数回の場
合に有効である。
【0387】なお、ここではデータパスを2段にした場
合を例にとって説明したが、4段以上の複数段して、各
段の間に転置用RAMを設けることとしてもよい。この
場合には、処理速度を一層向上させることができる。
【0388】第11の実施の形態 次に、この発明の第11の実施の形態について、図24
を用いて説明する。なお、この実施の形態は、上述の第
10の実施の形態に示した高速フーリエ変換処理装置に
ブロック浮動小数点演算処理機構を設けたものである。
【0389】この実施の形態では、サンプル点数が10
24点の場合を例にとって説明する。
【0390】図24は、この実施の形態に係る高速フー
リエ変換処理装置の構成を概略的に示すブロック図であ
る。
【0391】同図において、図23と同じ符号を付した
構成部は、それぞれ、図23の場合と同じものを示して
いる。
【0392】また、同図において、第1のデータパス2
401および第2のデータパス2402は、ブロック浮
動小数点演算を行うためのシフト機能を有している点
で、図23に示した各データパス108,109と異な
る。また、この実施の形態では、第3のデータパス24
03および第4のデータパス2404も、かかるシフト
機能を有している。なお、ブロック浮動小数点演算で使
用するシフト機能の詳細構成については、説明を省略す
る。
【0393】また、ブロック浮動小数点検出記憶部24
05は、セレクタ1802が出力した複素数データを取
り込んでブロック浮動小数点を検出するとともに、この
検出値を一時的に記憶する。
【0394】出力ビットシフタ2406,2407は、
作業用RAM107から複素数データを取り込むととも
にシーケンス制御部119から浮動小数点指数を取り込
み、この浮動小数点指数の値に基づいて複素数データを
シフトさせて、その結果を出力する。
【0395】レジスタ2408は、シーケンス制御部1
19から浮動小数点指数を入力し、外部に対して出力す
る。
【0396】続いて、図24に示した高速フーリエ変換
処理装置の動作を説明する。
【0397】この実施の形態では、上述のようにサンプ
ル点数が1024(45 )点であるので、基数が4の演
算処理を5回行う。
【0398】まず、外部から入力された被処理データ
が、実数部と虚数部とに分けられて、セレクタ1802
から作業用RAM107に順次格納される。このとき、
ブロック浮動小数点検出記憶部2405は、これらの複
素数データをセレクタ1802から順次入力して浮動小
数点指数を検出し、第2の実施の形態の場合と同様にし
て浮動小数点指数を検出する。
【0399】次に、シーケンス制御部119は、転置用
RAM1805の出力が第3、第4のデータパス240
3,2404に供給されるように、セレクタ2301を
設定する。
【0400】そして、上述の第6の実施の形態と同様に
して、1回目および2回目の演算処理を同時に行い、さ
らに、3回目および4回目の演算処理を同時に行う。こ
のとき、第1のデータパス2401および第2のデータ
パス2402ではブロック浮動小数点検出記憶部240
5から取り込んだ浮動小数点指数を用いてブロック浮動
小数点による演算を行う。また、1回目〜4回目の演算
処理では、第3のデータパス2403および第4のデー
タパス2404は、ブロック浮動小数点ではなく、固定
小数点による演算を行う。
【0401】1回目〜4回目の演算処理が終了すると、
次に、シーケンス制御部119は、作業用RAM107
の出力が第3、第4のデータパス2403,2404に
供給されるように、セレクタ2301を設定する。
【0402】そして、以下のようにして、5回目の演算
処理(基数4)を行う。
【0403】まず、この演算処理では、上述の3回目お
よび4回目の演算処理で256分割されたデータRAM
107の各グループを、さらに4個のグループに分割す
る。すなわち、この演算処理では、データRAM107
の各番地を合計1024個に分割する。
【0404】次に、第3のデータパス2403および第
4のデータパス2404が、作業用RAM107の0番
地、1番地、2番地および3番地に格納された各複素数
データと、sin/cos係数用ROM110に格納さ
れたひねり係数と、ブロック浮動小数点検出記憶部24
05に格納された浮動小数点指数とを読み込み、0番地
のデータをAi 、1番地のデータをBi 、2番地のデー
タをCi 3番地のデータをDi として、上式(1)〜
(4)の演算を行う。
【0405】続いて、この演算によって得られた複素数
データai ,bi ,ci ,di を、作業用RAM107
の0番地、1番地、2番地および3番地に格納する。こ
のとき、ブロック小数点検出記憶部2405は、浮動小
数点指数の検出を順次行い、この検出値が記憶内容より
も小さいときは記憶内容を順次書き換える。
【0406】その後、これと同様にして、4番地、5番
地、6番地および7番地の各複素数データを用いた演算
処理を、第3のデータパス2403および第4のデータ
パス2404が行う。
【0407】以下、同様にして、各番地の複素数データ
を用いた演算を行う。
【0408】以上のようにして5回目の演算処理が終了
すると、最後に、上述の各実施の形態と同様にして、演
算結果を外部に出力する。このときは、まず、シーケン
ス制御部119がブロック浮動小数点検出記憶部240
5から各サンプルに対する第1,第3,第5ステージで
用いた浮動小数点指数の累算値を入力し、出力ビットシ
フタ2406,2407に送る。そして、出力ビットシ
フタ2406,2407は、この浮動小数点指数に基づ
いて、作業用RAM107から入力した複素数データを
シフトさせた後、出力回路1801に送る。これによ
り、シフト後の複素数データが、出力回路1801から
外部へ出力される。
【0409】また、必要であれば、出力ビットシフタ2
406,2407によるシフトを行わずに複素数データ
を出力するとともに、最終的な浮動小数点指数をレジス
タ2408から外部に出力することもできる。
【0410】このように、この実施の形態では、セレク
タ2301を設けたので、演算処理の回数が奇数回の場
合に有効である。
【0411】また、第1のデータパス2401および第
2のデータパス2402だけでなく、第3のデータパス
2403および第4のデータパス2404もブロック浮
動小数点演算を行うことができるように構成したので、
5回目の演算もブロック浮動小数点を用いて行うことが
でき、演算結果の精度を高めることができる。
【0412】なお、ここではデータパスを2段にした場
合を例にとって説明したが、4段以上の複数段して、各
段の間に転置用RAMを設けることとしてもよい。この
場合には、処理速度を一層向上させることができる。
【0413】第12の実施の形態 次に、この発明の第12の実施の形態について、図25
および図26を用いて説明する。
【0414】この実施の形態では、サンプル点数が81
92の高速フーリエ変換を行う場合を例に採って説明す
る。
【0415】図25は、この実施の形態に係る高速フー
リエ変換処理装置の構成を概略的に示すブロック図であ
る。
【0416】同図において、図1と同じ符号を付した構
成部は、それぞれ、図1の場合と同じものを示してい
る。
【0417】また、同図において、出力回路2501
は、図1にセレクタ111,112、レジスタ113,
114および出力端子115,116を略記したもので
ある。さらに、セレクタ2502は、図1のセレクタ1
05,106、レジスタ103,104および入力ポー
ト101,102を略記したものである。
【0418】第1のデータパス2503および第3のデ
ータパス2505としては、上述の第1の実施の形態の
第1のデータパス108と同じ内部構造のもの、すなわ
ち図2(A)に示したものまたは図12に示したものを
使用することができる。
【0419】同様に、第2のデータパス2504および
第4のデータパス2506としては、上述の第1の実施
の形態の第2のデータパス109と同じ内部構造のも
の、すなわち図2(A)に示したものまたは図12に示
したもののいずれかを使用することができる。
【0420】デマルチプレクサ2507は、後述するよ
うに、セレクタ2502から入力した複素数データを作
業用RAM107に格納する際の番地を選択する。な
お、この番地の選択は、シーケンス制御部119の制御
によって行われる。
【0421】マルチプレクサ2508は、後述するよう
に、作業用RAM107からデータパス2503〜25
06に複素数データを転送する際に、転送先となるデー
タパスを選択する。この転送先の選択も、シーケンス制
御部119の制御によって行われる。
【0422】図26は、マルチプレクサ2507の動作
を説明するための概念図である。なお、同図では、簡単
化のために、セレクタ2502を省略している。
【0423】同図に示したように、マルチプレクサ25
07において、セレクタ2601は、作業用RAM10
7の1024番地〜2047番地の複素数データまたは
4096番地〜5119番地の複素数データを選択し
て、セレクタ2603に出力する。
【0424】また、セレクタ2602は、作業用RAM
107の3072番地〜4095番地の複素数データま
たは6144番地〜7167番地の複素数データを選択
して、セレクタ2603に出力する。
【0425】セレクタ2604は、作業用RAM107
の1024番地〜2047番地の複素数データまたは4
096番地〜5119番地の複素数データを選択して、
セレクタ2606に出力する。
【0426】セレクタ2605は、作業用RAM107
の3072番地〜4095番地の複素数データまたは6
144番地〜7167番地の複素数データを選択して、
セレクタ2606に出力する。
【0427】セレクタ2603は、作業用RAM107
の0番地〜1023番地の複素数データ、2048番地
〜3071番地の複素数データ、セレクタ2601から
入力した複素数データまたはセレクタ2602から入力
した複素数データを選択して、第1,第2のデータパス
2503,2504に出力する。
【0428】セレクタ2606は、作業用RAM107
の5120番地〜6143番地の複素数データ、716
8番地〜8191番地の複素数データ、セレクタ260
4から入力した複素数データまたはセレクタ2605か
ら入力した複素数データを選択して、第3,第4のデー
タパス2505,2506に出力する。
【0429】次に、図25および図26に示した高速フ
ーリエ変換処理装置の動作について説明する。
【0430】まず、8192点の被処理データが、セレ
クタ2502およびデマルチプレクサ2506を介し
て、作業用RAM107に順次格納される。
【0431】作業用RAM107への複素数データの格
納が終了すると、続いて、これらの複素数データを用い
て高速フーリエ変換を行う。
【0432】なお、この実施の形態では、サンプル点数
が8192(=46 ×2)なので、基数が4の演算処理
を6回繰り返した後、基数が2の演算処理を行う。
【0433】最初に、1回目の演算処理(基数4)につ
いて、説明する。
【0434】まず、シーケンス制御部119が、セレク
タ2601が4096番地〜5119番地を、セレクタ
2602が6144番地〜7167番地を、セレクタ2
604が1024番地〜2047番地を、セレクタ26
05が3072番地〜4095番地を選択するように、
これらのセレクタ2601,2602,2604,26
05を設定する。そして、第1のデータパス2503お
よび第2のデータパス2504が、0番地の被処理デー
タをA1 、2048番地の被処理データをB1、409
6番地の被処理データをC1 、6144番地の被処理デ
ータをD1 として作業用RAM107から読み出し、上
式(1)〜(4)の演算処理を行う。また、これと平行
して、第3のデータパス2505および第4のデータパ
ス2506が、1024番地の被処理データをA1 、3
072番地の被処理データをB1、5120番地の被処
理データをC1 、7168番地の被処理データをD1
して作業用RAM107から読み出し、上式(1)〜
(4)の演算を行う。
【0435】続いて、第1のデータパス2503および
第2のデータパス2504の演算結果である複素数デー
タa1 ,b1 ,c1 ,d1 が、セレクタ2502を介し
てデマルチプレクサ2507に入力され、作業用RAM
107に書き込まれる。ここで、この実施の形態では、
演算結果a1 は0番地に書き込まれ、演算結果b1 は2
048番地に書き込まれ、演算結果c1 は4096番地
に書き込まれ、且つ、演算結果d1 は6144番地に書
き込まれる。
【0436】また、これと同時に、第3のデータパス2
505および第4のデータパス2506の演算結果であ
る複素数データa1 ,b1 ,c1 ,d1 が、セレクタ2
502およびデマルチプレクサ2507を介して、作業
用RAM107の1024番地、3072番地、512
0番地および7168番地に書き込まれる。
【0437】次に、第1のデータパス2503および第
2のデータパス2504は、1番地の被処理データをA
1 、2049番地の被処理データをB1 、4097番地
の被処理データをC1 、6145番地の被処理データを
1 として上式(1)〜(4)の演算処理を行い、ま
た、これと平行して第3のデータパス2505および第
4のデータパス2506が、1025番地の被処理デー
タをA1 、3073番地の被処理データをB1 、512
1番地の被処理データをC1 、7169番地の被処理デ
ータをD1 として上式(1)〜(4)の演算を行う。そ
して、第1のデータパス2503および第2のデータパ
ス2504の演算結果は1番地、2049番地、409
7番地および6145番地に格納され、また、第3のデ
ータパス2505および第4のデータパス2506の演
算結果は1025番地、3073番地、5121番地お
よび7169番地に格納される。
【0438】以下同様にして、各データパス2503〜
2506は、すべての番地の被処理データについて順次
演算を行い、演算結果を作業用RAM107に書き込
む。
【0439】このようにして1回目の演算処理が終了す
ると、続いて、2回目の演算処理が行われる。
【0440】なお、2回目の演算処理においては、第1
のデータパス2503および第2のデータパス2504
による演算では、被処理データの読み出しおよび演算結
果の書き込みは、作業用RAM107の0番地〜409
5番地のみに対して行われる。同様に、第3のデータパ
ス2505および第4のデータパス2506による演算
では、被処理データの読み出しおよび演算結果の書き込
みは、作業用RAM107の4096番地〜8191番
地のみに対して行われる。
【0441】まず、シーケンス制御部119が、セレク
タ2601が1024番地〜2047番地を、セレクタ
2602が3072番地〜4095番地を、セレクタ2
604が4096番地〜5119番地を、セレクタ26
05が6144番地〜7167番地を選択するように、
これらのセレクタ2601,2602,2604,26
05を設定する。そして、第1のデータパス2503お
よび第2のデータパス2504が、0番地の被処理デー
タをA1 、512番地の被処理データをB1 、1024
番地の被処理データをC1 、1536番地の被処理デー
タをD1 として作業用RAM107から読み出し、上式
(1)〜(4)の演算処理を行う。同様に、第3のデー
タパス2505および第4のデータパス2506が、4
096番地の被処理データをA1 、4608番地の被処
理データをB1 、5120番地の被処理データをC1
5632番地の被処理データをD1 として作業用RAM
107から読み出し、上式(1)〜(4)の演算を行
う。
【0442】続いて、第1のデータパス2503および
第2のデータパス2504の演算結果である複素数デー
タa1 ,b1 ,c1 ,d1 が、セレクタ2502および
デマルチプレクサ2507を介して、0番地、512番
地、1024番地、1536番地に書き込まれる。同様
に、第3のデータパス2505および第4のデータパス
2506の演算結果である複素数データa1 ,b1 ,c
1 ,d1 が、セレクタ2502およびデマルチプレクサ
2507を介して、作業用RAM107の4096番、
4608番地、5120番地および5632番地に書き
込まれる。
【0443】以下同様にして、各データパス2503〜
2506は、すべての番地の被処理データについて順次
演算を行い、演算結果を作業用RAM107に書き込
む。
【0444】その後、2回目の演算処理と同様にして、
3回目〜6回目の演算処理(基数4)を行い、さらに、
7回目の演算処理(基数2)を行う。
【0445】このように、この実施の形態にかかる高速
フーリエ変換処理装置によれば、4個のデータパスを用
いて2系統の演算処理を平行して行うことができるの
で、処理速度をさらに向上させることができる。また、
デマルチプレクサ2507およびマルチプレクサ250
8を用いて1回目の演算処理後のデータ転送を不要とし
たことによっても、処理速度の向上を図っている。
【0446】第13の実施の形態 次に、この発明の第13の実施の形態に係る高速フーリ
エ変換処理装置について、図27を用いて説明する。
【0447】この実施の形態は、上述の第12の実施の
形態に係る高速フーリエ変換処理装置に、ブロック浮動
小数点演算処理機能を付加したものである。
【0448】図27は、この実施の形態に係る高速フー
リエ変換処理装置の構成を概略的に示すブロック図であ
る。
【0449】同図において、図25と同じ符号を付した
構成部は、それぞれ、図25の場合と同じものを示して
いる。
【0450】また、同図において、データパス2701
〜2704は、ブロック浮動小数点演算を行うためのシ
フト機能を有している点で、図25に示した各データパ
ス2503〜2506と異なる。なお、かかるシフト機
能の詳細構成については、説明を省略する。
【0451】ブロック浮動小数点検出記憶部2705
は、データパス2701〜2704が出力した複素数デ
ータを取り込んでブロック浮動小数点を検出するととも
に、この検出値を一時的に記憶する。このブロック浮動
小数点検出記憶部2705が一時的に記憶したブロック
浮動小数点の検出値は、データパス2701〜2704
およびシーケンス制御部119に転送される。
【0452】出力ビットシフタ2706,2707は、
作業用RAM107から複素数データを取り込むととも
にシーケンス制御部119から浮動小数点指数を取り込
む。そして、この浮動小数点指数の値に基づいて複素数
データをシフトさせ、その結果を出力する。
【0453】レジスタ2708は、シーケンス制御部1
19から浮動小数点指数の各ステージの累算値を入力
し、外部に対して出力する。
【0454】次に、図27に示した高速フーリエ変換処
理装置の動作について説明する。なお、この実施の形態
でも、上述の第12の実施の形態と同様、サンプル点数
が8192(=46 ×2)なので、基数が4の演算処理
を6回繰り返した後、基数が2の演算処理を行う。
【0455】まず、8192点の被処理データが、セレ
クタ2502およびデマルチプレクサ2507を介して
作業用RAM107に、順次格納される。このとき、ブ
ロック浮動小数点検出記憶部2705は、これらの被処
理データを順次入力し、第2の実施の形態の場合と同様
にして浮動小数点指数を検出する。
【0456】続いて、1回目の演算処理(基数4)が、
開始される。
【0457】この演算処理でのセレクタ2601〜26
06の動作は上述の第12の実施の形態と同様である。
すなわち、この演算処理の最初の演算では、第1のデー
タパス2701および第2のデータパス2702は、0
番地の被処理データをA1 、2048番地の被処理デー
タをB1 、4096番地の被処理データをC1 、614
4番地の被処理データをD1 として作業用RAM107
から読み出し、第3のデータパス2703および第4の
データパス2704は、1024番地の被処理データを
1 、3072番地の被処理データをB1 、5120番
地の被処理データをC1 、7168番地の被処理データ
をD1 として作業用RAM107から読み出す。そし
て、これらのデータパス2701〜2704により、上
式(1)〜(4)の演算が行われる。このとき、データ
パス2701〜2704は、上述の第2の実施の形態の
場合と同様にして、浮動小数点演算を行う。
【0458】続いて、第1のデータパス2701および
第2のデータパス2702の演算結果である複素数デー
タa1 ,b1 ,c1 ,d1 が、セレクタ2502を介し
てデマルチプレクサ2507に入力され、作業用RAM
107の0番地、2048番地、4096番地、614
4番地に書き込まれる。同様に、第3のデータパス27
03および第4のデータパス2704の演算結果である
複素数データa1 ,b1 ,c1 ,d1 は、作業用RAM
107の1024番、3072番地、5120番地およ
び7168番地に書き込まれる。
【0459】以下、上述の第12の実施の形態の場合と
同様にして、データパス2701〜2704が、以降の
演算を行い、演算結果を作業用RAM107に書き込
む。このとき、ブロック浮動小数点検出記憶部2705
は、これらの演算結果を順次入力し、第2の実施の形態
の場合と同様にして浮動小数点指数を検出する。
【0460】このようにして1回目の演算処理が終了す
ると、続いて、2回目の演算処理が行われる。
【0461】上述の第12の実施の形態と同様、2回目
の演算処理においては、第1のデータパス2701およ
び第2のデータパス2702による演算では、被処理デ
ータの読み出しおよび演算結果の書き込みは、作業用R
AM107の0番地〜4095番地のみに対して行われ
る。同様に、第3のデータパス2703および第4のデ
ータパス2704による演算では、被処理データの読み
出しおよび演算結果の書き込みは、作業用RAM107
の4096番地〜8191番地のみに対して行われる。
また、それぞれの演算において、データパス2701〜
2704は、上述の第2の実施の形態の場合と同様にし
て、浮動小数点演算を行う。さらに、演算結果を作業用
RAM107に格納する際には、ブロック浮動小数点検
出記憶部2705が、これらの演算結果を順次入力し、
第2の実施の形態の場合と同様にして浮動小数点指数を
検出する。
【0462】その後、2回目の演算処理と同様にして、
3回目〜6回目の演算処理(基数4)を行い、さらに、
7回目の演算処理(基数2)を行う。
【0463】このように、この実施の形態にかかる高速
フーリエ変換処理装置によれば、上述の第12の実施の
形態と同様の高速フーリエ変換処理を、ブロック浮動小
数点法を用いて行うことができる。
【0464】
【発明の効果】以上詳細に説明したように、この発明に
係る高速フーリエ変換処理装置および高速フーリエ変換
処理方法によれば、フーリエ変換処理を高速で行うこと
ができ、また、基数4または基数2のいずれの高速フー
リエ変換アルゴリズムにも対応することができる。
【0465】また、この発明に係る高速フーリエ変換処
理システムによれば、外付部品を少数しか用いないでシ
ステムを構築して、処理が可能なサンプル点数の最大値
を増やすことができる。
【図面の簡単な説明】
【図1】第1の実施の形態に係る高速フーリエ変換処理
装置の構成を概略的に示すブロック図である。
【図2】(A)は図1に示した第1のデータパスおよび
第2のデータパスの内部構造を概念的に示すブロック
図、(B)および(C)は(A)の等価回路である。
【図3】図1に示した作業用RAMの内部構造を概略的
に示すブロック図である。
【図4】第1の実施の形態に係る高速フーリエ変換処理
装置の動作を説明するための概念図である。
【図5】第2の実施の形態に係る高速フーリエ変換処理
装置の構成を概略的に示すブロック図である。
【図6】第3の実施の形態に係る高速フーリエ変換処理
システムの構成を概略的に示すブロック図である。
【図7】第4の実施の形態に係る高速フーリエ変換処理
システムの構成を概略的に示すブロック図である。
【図8】図7に示した作業用RAMの内部構造を概略的
に示すブロック図である。
【図9】第4の実施の形態に係る高速フーリエ変換処理
装置の動作を説明するための概念図である。
【図10】第4の実施の形態に係る高速フーリエ変換処
理装置の動作を説明するための概念図である。
【図11】第5の実施の形態に係る高速フーリエ変換処
理システムの構成を概略的に示すブロック図である。
【図12】第1の実施の形態に係る第1のデータパスお
よび第2のデータパスの他の内部構造例を概念的に示す
ブロック図である。
【図13】図12に示した第1のデータパスの基数4の
ときの演算動作を説明するためのタイミングチャートで
ある。
【図14】図12に示した第2のデータパスの基数4の
ときの演算動作を説明するためのタイミングチャートで
ある。
【図15】図12に示した第1のデータパスの基数2の
ときの演算動作を説明するためのタイミングチャートで
ある。
【図16】図12に示した第2のデータパスの基数2の
ときの演算動作を説明するためのタイミングチャートで
ある。
【図17】第2の実施の形態に係る第1のデータパスお
よび第2のデータパスの他の内部構造例を概念的に示す
ブロック図である。
【図18】第6の実施の形態に係る高速フーリエ変換処
理装置の構成を概略的に示すブロック図である。
【図19】図18に示した高速フーリエ変換処理装置の
動作を説明するための概念図である。
【図20】第7の実施の形態に係る高速フーリエ変換処
理装置の構成を概略的に示すブロック図である。
【図21】第8の実施の形態に係る高速フーリエ変換処
理装置の構成を概略的に示すブロック図である。
【図22】第9の実施の形態に係る高速フーリエ変換処
理装置の構成を概略的に示すブロック図である。
【図23】第10の実施の形態に係る高速フーリエ変換
処理装置の構成を概略的に示すブロック図である。
【図24】第11の実施の形態に係る高速フーリエ変換
処理装置の構成を概略的に示すブロック図である。
【図25】第12の実施の形態に係る高速フーリエ変換
処理装置の構成を概略的に示すブロック図である。
【図26】図25に示したマルチプレクサの動作を説明
するための概念図である。
【図27】第13の実施の形態に係る高速フーリエ変換
処理装置の構成を概略的に示すブロック図である。
【符号の説明】
101,102 入力端子 103,104 レジスタ 105,106,111,112 セレクタ 107 作業用RAM 108,501 第1のデータパス 109,502 第2のデータパス 110 sin/cos係数用ROM 113,114 レジスタ 115,116 出力端子 117 クロック生成部 118 メモリアドレス発生部 119 シーケンス制御部 201,202,221,223 加算器 203,222,224 減算器 204 複素減算器 211,212,213,214 バイパス 231,232,233,234 乗算器 301,302,303,304 メモリアレイ部 311,312,313,314 データレジスタ 321,322,323,324 アドレスレジスタ 331 出力セレクタ 332 出力レジスタ 333 デコーダ 503 ブロック浮動小数点検出記憶部 504,505 出力ビットシフタ 601,602 プロセッサ 701,1001 マスタモード用プロセッサ 702,1002 スレーブモード用プロセッサ

Claims (37)

    【特許請求の範囲】
  1. 【請求項1】 離散値の複素数データを入力して、可変
    サンプル点数の高速フーリエ変換演算を基数4または基
    数2のアルゴリズムで実行する高速フーリエ変換処理装
    置において、 サンプル点数が4n ×2個または4n 個(nは自然数)
    の前記複素数データを外部から入力して1つのグループ
    として一時的に記憶する作業用記憶手段と、 この作業用記憶手段に記憶された前記複素数データの各
    グループを計算列とサンプル点番号とにしたがって4個
    のグループA,B,C,Dに分割し、分割後の各グルー
    プA,B,C,Dに属するi番目の前記複素数データA
    i ,Bi ,Ci,Di とひねり係数Wi1,Wi2,Wi3
    i4を用いた演算 ai ={(Ai +Ci )+(Bi +Di )}×Wi1 ・・・(1) ci ={(Ai +Ci )−(Bi +Di )}×Wi3 ・・・(2) bi ={(Ai −Ci )−j(Bi −Di )}×Wi2 ・・・(3) di ={(Ai −Ci )+j(Bi −Di )}×Wi4 ・・・(4) をすべてのiについて実行するとともにその結果である
    i ,bi ,ci ,diを前記作業用記憶手段に前記複
    素数データAi ,Bi ,Ci ,Di としてそれぞれ記憶
    する一連の演算処理をn回繰り返し、前記サンプル点数
    が4n ×2個の場合にはさらにこの演算処理によって得
    られた複素数データAi ,Bi ,Ci ,Di を用いた演
    算 ai =Ai +Bi ・・・(5) bi =Ai −Bi ・・・(6) ci =Ci +Di ・・・(7) di =Ci −Di ・・・(8) をすべてのiについて実行するとともにその結果である
    i ,bi ,ci ,diを前記作業用記憶手段にそれぞ
    れ記憶する演算処理を1回行う演算手段と、 を備えたことを特徴とする高速フーリエ変換処理装置。
  2. 【請求項2】 前記演算手段が、前記演算(1),
    (2),(5),(6)を適宜行なうように構成された
    第1のデータパスと、前記演算(3),(4),
    (7),(8)を適宜行なうように構成された第2のデ
    ータパスとを備えたことを特徴とする請求項1に記載の
    高速フーリエ変換処理装置。
  3. 【請求項3】 前記第1のデータパスが、 前記複素数データAi ,Ci を入力して加算する第1の
    加算器と、 前記複素数データAi ,Ci を前記第1の加算器で加算
    することなく通過させる第1のバイパスと、 前記複素数データBi ,Di を入力して加算する第2の
    加算器と、 前記複素数データBi ,Di を前記第2の加算器で加算
    することなく通過させる第2のバイパスと、 前記第1の加算器の出力または前記第1のバイパスの出
    力と前記第2の加算器の出力または前記第2のバイパス
    の出力とを入力して加算する第3の加算器と、 前記第1の加算器の出力または前記第1のバイパスの出
    力と前記第2の加算器の出力または前記第2のバイパス
    の出力とを入力して減算する第1の減算器と、 前記第3の加算器の演算結果に前記ひねり係数Wi1また
    は「1」を乗算して、演算結果ai を出力する第1の乗
    算器と、 前記第1の減算器の演算結果に前記ひねり係数Wi3また
    は「1」を乗算して、演算結果ci を出力する第2の乗
    算器と、 を備えたことを特徴とする請求項2に記載の高速フーリ
    エ変換処理装置。
  4. 【請求項4】 前記第2のデータパスが、 前記複素数データAi ,Ci を入力して減算する第2の
    減算器と、 前記複素数データAi ,Ci を前記第2の減算器で減算
    することなく通過させる第3のバイパスと、 前記複素数データBi ,Di を入力して減算したのちj
    を乗算する複素減算器と、 前記複素数データBi ,Di を前記複素減算器で複素減
    算することなく通過させる第4のバイパスと、 前記第2の減算器の出力または前記第3のバイパスの出
    力と前記複素減算器の出力または前記第4のバイパスの
    出力とを入力して加算する第4の加算器と、 前記第2の減算器の出力または前記第3のバイパスの出
    力と前記複素減算器の出力または前記第4のバイパスの
    出力とを入力して減算する第3の減算器と、 前記第4の加算器の演算結果に前記ひねり係数Wi2また
    は「1」を乗算して、演算結果bi を出力する第3の乗
    算器と、 前記減算器の演算結果に前記ひねり係数Wi4または
    「1」を乗算して、演算結果di を出力する第4の乗算
    器と、 を備えたことを特徴とする請求項2または3に記載の高
    速フーリエ変換処理装置。
  5. 【請求項5】 前記第1のデータパスが、 前記複素数データAi ,Ci ,Bi ,Di を入力して演
    算Ai +Ci ,Bi +D1 を行う第5の加算器と、 前記複素数データAi ,Ci ,Bi ,Di を前記第5の
    加算器で演算することなく通過させる第5のバイパス
    と、 前記第5の加算器または前記第5のバイパスから複素数
    データを2個ずつ取り込んで、両データの加算結果およ
    び減算結果を出力する第1の加減算器と、 この第1の加減算器の前記加算結果とひねり係数Wi1
    たは「1」との、実数部どうしの乗算、実数部と虚数部
    との乗算、虚数部どうしの乗算および虚数部と実数部と
    の乗算を順次行う第5の乗算器と、 前記第1の加減算器の前記減算結果とひねり係数Wi3
    たは「1」との、実数部どうしの乗算、実数部と虚数部
    との乗算、虚数部どうしの乗算および虚数部と実数部と
    の乗算を順次行う第6の乗算器と、 この第5の乗算器から入力した実数部どうしの乗算結果
    から虚数部どうしの乗算結果を減算するとともに、実数
    部と虚数部との乗算結果を虚数部と実数部との乗算結果
    に加算して、これらの演算結果を演算結果ai の実数部
    および虚数部として出力し、さらに、第6の乗算器から
    入力した実数部どうしの乗算結果から虚数部どうしの乗
    算結果を減算するとともに、実数部と虚数部との乗算結
    果を虚数部と実数部との乗算結果に加算して、これらの
    演算結果を演算結果ci の実数部および虚数部として出
    力する第2の加減算器と、 を備えたことを特徴とする請求項2に記載の高速フーリ
    エ変換処理装置。
  6. 【請求項6】 前記第2のデータパスが、 前記複素数データAi ,Ci ,Bi ,Di を入力して演
    算Ai −Ci ,j(Bi −D1 )を行う減算/複素減算
    器と、 前記複素数データAi ,Ci ,Bi ,Di を前記減算/
    複素減算器で演算することなく通過させる第6のバイパ
    スと、 前記減算/複素減算器または前記第6のバイパスから複
    素数データを2個ずつ取り込んで、両データの減算結果
    および加算結果を出力する第3の加減算器と、 この第3の加減算器の前記減算結果とひねり係数Wi2
    たは「1」との、実数部どうしの乗算、実数部と虚数部
    との乗算、虚数部どうしの乗算および虚数部と実数部と
    の乗算を順次行う第7の乗算器と、 前記第3の加減算器の前記加算結果とひねり係数Wi4
    たは「1」との、実数部どうしの乗算、実数部と虚数部
    との乗算、虚数部どうしの乗算および虚数部と実数部と
    の乗算を順次行う第8の乗算器と、 この第7の乗算器から入力した実数部どうしの乗算結果
    から虚数部どうしの乗算結果を減算するとともに、実数
    部と虚数部との乗算結果を虚数部と実数部との乗算結果
    に加算して、これらの演算結果を演算結果bi の実数部
    および虚数部として出力し、さらに、第8の乗算器から
    入力した実数部どうしの乗算結果から虚数部どうしの乗
    算結果を減算するとともに、実数部と虚数部との乗算結
    果を虚数部と実数部との乗算結果に加算して、これらの
    演算結果を演算結果di の実数部および虚数部として出
    力する第4の加減算器と、 を備えたことを特徴とする請求項2または5に記載の高
    速フーリエ変換処理装置。
  7. 【請求項7】 前記演算手段にブロック浮動小数点演算
    法を用いて高速フーリエ変換演算を実行させるためのブ
    ロック浮動小数点検出記憶手段を、さらに有することを
    特徴とする請求項1〜6のいずれかに記載の高速フーリ
    エ変換処理装置。
  8. 【請求項8】 離散値の複素数データを入力して、可変
    サンプル点数の高速フーリエ変換演算を基数4または基
    数2のアルゴリズムで実行する高速フーリエ変換処理装
    置において、 サンプル点数が4n ×2個または4n 個(nは自然数)
    の前記複素数データを外部から入力して1つのグループ
    として一時的に記憶する作業用記憶手段と、 この作業用記憶手段に記憶された前記複素数データの各
    グループを計算列とサンプル点番号とにしたがって16
    個のグループAG1,BG1,CG1,DG1,AG2,BG2,C
    G2,DG2,AG3,BG3,CG3,DG3,AG4,BG4
    G4,DG4に分割し、分割後の各グループの組合せ{A
    G1,BG1,CG1,DG1},{AG2,BG2,CG2
    G2},{AG3,BG3,CG3,DG3},{AG4,BG4
    G4,DG4}のそれぞれについて、各組合わせの各グル
    ープに属するi番目の前記複素数データAi,Bi ,Ci
    ,Di とひねり係数Wi1,Wi2,Wi3,Wi4を用いた
    演算 ai ={(Ai +Ci )+(Bi +Di )}×Wi1 ・・・(1) ci ={(Ai +Ci )−(Bi +Di )}×Wi3 ・・・(2) bi ={(Ai −Ci )−j(Bi −Di )}×Wi2 ・・・(3) di ={(Ai −Ci )+j(Bi −Di )}×Wi4 ・・・(4) を実行する第1の演算手段と、 この第1の演算手段の演算結果ai ,bi ,ci ,di
    を4個ずつ取り込んで4行4列の行列を形成した後でこ
    の行列を転置し、これにより得られた転置行列を構成す
    る複素数データを1列ずつ出力する転置手段と、 この転置手段から入力した前記複素数データをAi ,B
    i ,Ci ,Di として前記演算(1)〜(4)を順次行
    うとともにその結果であるai ,bi ,ci ,di を前
    記作業用記憶手段に前記グループの組合せ{AG1
    G2,AG3,AG4},{BG1,BG2,BG3,BG4},
    {CG1,CG2,CG3,CG4},{DG1,DG2,DG3,D
    G4}に順次記憶させる第2の演算手段と、 を備えたことを特徴とする高速フーリエ変換処理装置。
  9. 【請求項9】 前記第1の演算手段または前記第2の演
    算手段の一方が、 前記第1の演算手段および前記第2の演算手段による前
    記演算(1)〜(4)が合計でn回繰り返された後で、
    前記サンプル点数が4n ×2個の場合にはさらにこの演
    算処理によって得られた複素数データAi ,Bi ,C
    i ,Di を用いた演算 ai =Ai +Bi ・・・(5) bi =Ai −Bi ・・・(6) ci =Ci +Di ・・・(7) di =Ci −Di ・・・(8) をすべてのiについて実行するとともにその結果である
    i ,bi ,ci ,diを前記作業用記憶手段にそれぞ
    れ記憶する演算処理を1回行うように構成されたことを
    特徴とする請求項8に記載の高速フーリエ変換処理装
    置。
  10. 【請求項10】 前記第1の演算手段が、前記演算
    (1),(2),(5),(6)または前記演算
    (1),(2)を適宜行うように構成された第1のデー
    タパスと、前記演算(3),(4),(7),(8)ま
    たは前記演算(3),(4)を適宜行うように構成され
    た第2のデータパスとを備え、且つ、前記第2の演算手
    段が、前記演算(1),(2),(5),(6)または
    前記演算(1),(2)を適宜行うように構成された第
    3のデータパスと、前記演算(3),(4),(7),
    (8)または前記演算(3),(4)を適宜行うように
    構成された第4のデータパスとを備えたことを特徴とす
    る請求項9に記載の高速フーリエ変換処理装置。
  11. 【請求項11】 前記第1のデータパスまたは前記第3
    のデータパスの少なくとも一方が、 前記複素数データAi ,Ci を入力して加算する第1の
    加算器と、 前記複素数データAi ,Ci を前記第1の加算器で加算
    することなく通過させる第1のバイパスと、 前記複素数データBi ,Di を入力して加算する第2の
    加算器と、 前記複素数データBi ,Di を前記第2の加算器で加算
    することなく通過させる第2のバイパスと、 前記第1の加算器の出力または前記第1のバイパスの出
    力と前記第2の加算器の出力または前記第2のバイパス
    の出力とを入力して加算する第3の加算器と、 前記第1の加算器の出力または前記第1のバイパスの出
    力と前記第2の加算器の出力または前記第2のバイパス
    の出力とを入力して減算する第1の減算器と、 前記第3の加算器の演算結果に前記ひねり係数Wi1また
    は「1」を乗算して、演算結果ai を出力する第1の乗
    算器と、 前記第1の減算器の演算結果に前記ひねり係数Wi3また
    は「1」を乗算して、演算結果ci を出力する第2の乗
    算器と、 を備えたことを特徴とする請求項10に記載の高速フー
    リエ変換処理装置。
  12. 【請求項12】 前記第2のデータパスまたは前記第4
    のデータパスの少なくとも一方が、 前記複素数データAi ,Ci を入力して減算する第2の
    減算器と、 前記複素数データAi ,Ci を前記第2の減算器で減算
    することなく通過させる第3のバイパスと、 前記複素数データBi ,Di を入力して減算したのちj
    を乗算する複素減算器と、 前記複素数データBi ,Di を前記複素減算器で複素減
    算することなく通過させる第4のバイパスと、 前記第2の減算器の出力または前記第3のバイパスの出
    力と前記複素減算器の出力または前記第4のバイパスの
    出力とを入力して加算する第4の加算器と、 前記第2の減算器の出力または前記第3のバイパスの出
    力と前記複素減算器の出力または前記第4のバイパスの
    出力とを入力して減算する第3の減算器と、 前記第4の加算器の演算結果に前記ひねり係数Wi2また
    は「1」を乗算して、演算結果bi を出力する第3の乗
    算器と、 前記第3の減算器の演算結果に前記ひねり係数Wi4また
    は「1」を乗算して、演算結果di を出力する第4の乗
    算器と、 を備えたことを特徴とする請求項10または11に記載
    の高速フーリエ変換処理装置。
  13. 【請求項13】 前記第1のデータパスまたは前記第3
    のデータパスの少なくとも一方が、 前記複素数データAi ,Ci ,Bi ,Di を入力して演
    算Ai +Ci ,Bi +D1 を行う第5の加算器と、 前記複素数データAi ,Ci ,Bi ,Di を前記第5の
    加算器で演算することなく通過させる第5のバイパス
    と、 前記第5の加算器または前記第5のバイパスから複素数
    データを2個ずつ取り込んで、両データの加算結果およ
    び減算結果を出力する第1の加減算器と、 この第1の加減算器の前記加算結果とひねり係数Wi1
    たは「1」との、実数部どうしの乗算、実数部と虚数部
    との乗算、虚数部どうしの乗算および虚数部と実数部と
    の乗算を順次行う第5の乗算器と、 前記第1の加減算器の前記減算結果とひねり係数Wi3
    たは「1」との、実数部どうしの乗算、実数部と虚数部
    との乗算、虚数部どうしの乗算および虚数部と実数部と
    の乗算を順次行う第6の乗算器と、 前記第5の乗算器から入力した実数部どうしの乗算結果
    から虚数部どうしの乗算結果を減算するとともに、実数
    部と虚数部との乗算結果を虚数部と実数部との乗算結果
    に加算して、これらの演算結果を演算結果ai の実数部
    および虚数部として出力し、さらに、第6の乗算器から
    入力した実数部どうしの乗算結果から虚数部どうしの乗
    算結果を減算するとともに、実数部と虚数部との乗算結
    果を虚数部と実数部との乗算結果に加算して、これらの
    演算結果を演算結果ci の実数部および虚数部として出
    力する第2の加減算器と、 を備えたことを特徴とする請求項10に記載の高速フー
    リエ変換処理装置。
  14. 【請求項14】 前記第2のデータパスまたは前記第4
    のデータパスの少なくとも一方が、 前記複素数データAi ,Ci ,Bi ,Di を入力して演
    算Ai −Ci ,j(Bi −D1 )を行う減算/複素減算
    器と、 前記複素数データAi ,Ci ,Bi ,Di を前記減算/
    複素減算器で演算することなく通過させる第5のバイパ
    スと、 前記減算/複素減算器または前記第6のバイパスから複
    素数データを2個ずつ取り込んで、両データの減算結果
    および加算結果を出力する第3の加減算器と、 この第3の加減算器の前記減算結果とひねり係数Wi2
    たは「1」との、実数部どうしの乗算、実数部と虚数部
    との乗算、虚数部どうしの乗算および虚数部と実数部と
    の乗算を順次行う第7の乗算器と、 前記第3の加減算器の前記加算結果とひねり係数Wi4
    たは「1」との、実数部どうしの乗算、実数部と虚数部
    との乗算、虚数部どうしの乗算および虚数部と実数部と
    の乗算を順次行う第8の乗算器と、 前記第7の乗算器から入力した実数部どうしの乗算結果
    から虚数部どうしの乗算結果を減算するとともに、実数
    部と虚数部との乗算結果を虚数部と実数部との乗算結果
    に加算して、これらの演算結果を演算結果bi の実数部
    および虚数部として出力し、さらに、第8の乗算器から
    入力した実数部どうしの乗算結果から虚数部どうしの乗
    算結果を減算するとともに、実数部と虚数部との乗算結
    果を虚数部と実数部との乗算結果に加算して、これらの
    演算結果を演算結果di の実数部および虚数部として出
    力する第4の加減算器と、 を備えたことを特徴とする請求項10または13に記載
    の高速フーリエ変換処理装置。
  15. 【請求項15】 前記演算手段にブロック浮動小数点演
    算法を用いて高速フーリエ変換演算を実行させるための
    ブロック浮動小数点検出記憶手段を、さらに有すること
    を特徴とする請求項8〜14のいずれかに記載の高速フ
    ーリエ変換処理装置。
  16. 【請求項16】 離散値の複素数データを入力して、可
    変サンプル点数の高速フーリエ変換演算を基数4または
    基数2のアルゴリズムで実行する高速フーリエ変換処理
    装置において、 サンプル点数が2N(N=4n ×2または4n ;nは自
    然数)個の前記複素数データを外部から入力して1つの
    グループとして一時的に記憶する作業用記憶手段と、 この作業用記憶手段に記憶された前記複素数データの各
    グループを計算列とサンプル点番号とにしたがって8個
    のグループA1 ,B1 ,C1 ,D1 ,A2 ,B2
    2 ,D2 に分割し、分割後の各グループA1 ,B1
    1 ,D1 ,A2 ,B2 ,C2 ,D2 に属するi番目の
    前記複素数データA1i,B1i,C1i,D1i,A2i
    2i,C2i,D2iとひねり係数W1i1 ,W1i2
    1i3 ,W1i4 ,W2i1,W2i2 ,W2i3 ,W2i4 を用
    いた演算 a1i={(A1i+C1i)+(B1i+D1i)}×W1i1 ・・・(1) c1i={(A1i+C1i)−(B1i+D1i)}×W1i3 ・・・(2) b1i={(A1i−C1i)−j(B1i−D1i)}×W1i2 ・・・(3) d1i={(A1i−C1i)+j(B1i−D1i)}×W1i4 ・・・(4) a2i={(A2i+C2i)+(B2i+D2i)}×W2i1 ・・・(5) c2i={(A2i+C2i)−(B2i+D2i)}×W2i3 ・・・(6) b2i={(A2i−C2i)−j(B2i−D2i)}×W2i2 ・・・(7) d2i={(A2i−C2i)+j(B2i−D2i)}×W2i4 ・・・(8) をすべてのiについて実行するとともにその結果である
    1i,b1i,c1i,d1i,a2i,b2i,c2i,d2iを前
    記作業用記憶手段に前記複素数データA1i,B1i
    1i,D1i,A2i,B2i,C2i,D2iとしてそれぞれ記
    憶する一連の演算処理を1回行った後、前記作業記憶手
    段に記憶された前記複素数データを計算列とサンプル点
    番号とにしたがって4個のグループに分割する処理を1
    回行い、さらに、これらの各グループを計算列とサンプ
    ル点番号とにしたがって4個のグループA,B,C,D
    に分割し、分割後の各グループA,B,C,Dに属する
    i番目の前記複素数データAi ,Bi ,Ci ,Di とひ
    ねり係数Wi1,Wi2,Wi3,Wi4を用いた演算 ai ={(Ai +Ci )+(Bi +Di )}×Wi1 ・・・(9) ci ={(Ai +Ci )−(Bi +Di )}×Wi3 ・・・(10) bi ={(Ai −Ci )−j(Bi −Di )}×Wi2 ・・・(11) di ={(Ai −Ci )+j(Bi −Di )}×Wi4 ・・・(12) をすべてのiについて実行するとともにその結果である
    i ,bi ,ci ,diを前記作業用記憶手段に前記複
    素数データAi ,Bi ,Ci ,Di としてそれぞれ記憶
    する一連の演算処理をn−1回繰り返し、N=4n ×2
    の場合にはさらにこの演算処理によって得られた前記複
    素数データAi ,Bi ,Ci ,Di を用いた演算 ai =Ai +Bi ・・・(13) bi =Ai −Bi ・・・(14) ci =Ci +Di ・・・(15) di =Ci −Di ・・・(16) をすべてのiについて実行するとともにその結果である
    i ,bi ,ci ,diを前記作業用記憶手段にそれぞ
    れ記憶する演算処理を1回行う演算手段と、 を備えたことを特徴とする高速フーリエ変換処理装置。
  17. 【請求項17】 前記演算手段が、前記演算(1),
    (2),(9),(10),(13),(14)を適宜
    行うように構成された第1のデータパスと、前記演算
    (3),(4),(11),(12),(15),(1
    6)を適宜行うように構成された第2のデータパスと、
    前記演算(5),(6),(9),(10),(1
    3),(14)を適宜行うように構成された第3のデー
    タパスと、前記演算(7),(8),(11),(1
    2),(15),(16)を適宜行うように構成された
    第4のデータパスとを備えたことを特徴とする請求項1
    6に記載の高速フーリエ変換処理装置。
  18. 【請求項18】 前記第1のデータパスが、 複素数データAi ,Ci を入力して加算する第1の加算
    器と、 前記複素数データAi ,Ci を前記第1の加算器で加算
    することなく通過させる第1のバイパスと、 複素数データBi ,Di を入力して加算する第2の加算
    器と、 前記複素数データBi ,Di を前記第2の加算器で加算
    することなく通過させる第2のバイパスと、 前記第1の加算器の出力または前記第1のバイパスの出
    力と前記第2の加算器の出力または前記第2のバイパス
    の出力とを入力して加算する第3の加算器と、 前記第1の加算器の出力または前記第1のバイパスの出
    力と前記第2の加算器の出力または前記第2のバイパス
    の出力とを入力して減算する第1の減算器と、 前記第3の加算器の演算結果に前記ひねり係数Wi1また
    は「1」を乗算して、演算結果ai を出力する第1の乗
    算器と、 前記第1の減算器の演算結果に前記ひねり係数Wi3また
    は「1」を乗算して、演算結果ci を出力する第2の乗
    算器と、 を備えたことを特徴とする請求項17に記載の高速フー
    リエ変換処理装置。
  19. 【請求項19】 前記第2のデータパスまたは前記第4
    のデータパスの少なくとも一方が、 複素数データAi ,Ci を入力して減算する第2の減算
    器と、 前記複素数データAi ,Ci を前記第2の減算器で減算
    することなく通過させる第3のバイパスと、 複素数データBi ,Di を入力して減算したのちjを乗
    算する複素減算器と、 前記複素数データBi ,Di を前記複素減算器で複素減
    算することなく通過させる第4のバイパスと、 前記第2の減算器の出力または前記第3のバイパスの出
    力と前記複素減算器の出力または前記第4のバイパスの
    出力とを入力して加算する第4の加算器と、 前記第2の減算器の出力または前記第3のバイパスの出
    力と前記複素減算器の出力または前記第4のバイパスの
    出力とを入力して減算する第3の減算器と、 前記第4の加算器の演算結果に前記ひねり係数Wi2また
    は「1」を乗算して、演算結果bi を出力する第3の乗
    算器と、 前記第2の減算器の演算結果に前記ひねり係数Wi4また
    は「1」を乗算して、演算結果di を出力する第4の乗
    算器と、 を備えたことを特徴とする請求項17または18に記載
    の高速フーリエ変換処理装置。
  20. 【請求項20】 前記第1のデータパスまたは前記第3
    のデータパスの少なくとも一方が、 前記複素数データAi ,Ci ,Bi ,Di を入力して演
    算Ai +Ci ,Bi +D1 を行う第5の加算器と、 前記複素数データAi ,Ci ,Bi ,Di を前記第5の
    加算器で演算することなく通過させる第5のバイパス
    と、 前記第5の加算器または前記第5のバイパスから複素数
    データを2個ずつ取り込んで、両データの加算結果およ
    び減算結果を出力する第1の加減算器と、 この第1の加減算器の前記加算結果とひねり係数Wi1
    たは「1」との、実数部どうしの乗算、実数部と虚数部
    との乗算、虚数部どうしの乗算および虚数部と実数部と
    の乗算を順次行う第5の乗算器と、 前記第1の加減算器の前記減算結果とひねり係数Wi3
    たは「1」との、実数部どうしの乗算、実数部と虚数部
    との乗算、虚数部どうしの乗算および虚数部と実数部と
    の乗算を順次行う第6の乗算器と、 この第5の乗算器から入力した実数部どうしの乗算結果
    から虚数部どうしの乗算結果を減算するとともに、実数
    部と虚数部との乗算結果を虚数部と実数部との乗算結果
    に加算して、これらの演算結果を演算結果ai の実数部
    および虚数部として出力し、さらに、第6の乗算器から
    入力した実数部どうしの乗算結果から虚数部どうしの乗
    算結果を減算するとともに、実数部と虚数部との乗算結
    果を虚数部と実数部との乗算結果に加算して、これらの
    演算結果を演算結果ci の実数部および虚数部として出
    力する第2の加減算器と、 を備えたことを特徴とする請求項17に記載の高速フー
    リエ変換処理装置。
  21. 【請求項21】 前記第2のデータパスまたは前記第4
    のデータパスの少なくとも一方が、 前記複素数データAi ,Ci ,Bi ,Di を入力して演
    算Ai −Ci ,j(Bi −D1 )を行う減算/複素減算
    器と、 前記複素数データAi ,Ci ,Bi ,Di を前記第5の
    加算器で演算することなく通過させる第6のバイパス
    と、 前記第5の加算器または前記第6のバイパスから複素数
    データを2個ずつ取り込んで、両データの減算結果およ
    び加算結果を出力する第3の加減算器と、 この第3の加減算器の前記減算結果とひねり係数Wi2
    たは「1」との、実数部どうしの乗算、実数部と虚数部
    との乗算、虚数部どうしの乗算および虚数部と実数部と
    の乗算を順次行う第7の乗算器と、 前記第3の加減算器の前記加算結果とひねり係数Wi4
    たは「1」との、実数部どうしの乗算、実数部と虚数部
    との乗算、虚数部どうしの乗算および虚数部と実数部と
    の乗算を順次行う第8の乗算器と、 前記第7の乗算器から入力した実数部どうしの乗算結果
    から虚数部どうしの乗算結果を減算するとともに、実数
    部と虚数部との乗算結果を虚数部と実数部との乗算結果
    に加算して、これらの演算結果を演算結果bi の実数部
    および虚数部として出力し、さらに、第8の乗算器から
    入力した実数部どうしの乗算結果から虚数部どうしの乗
    算結果を減算するとともに、実数部と虚数部との乗算結
    果を虚数部と実数部との乗算結果に加算して、これらの
    演算結果を演算結果di の実数部および虚数部として出
    力する第4の加減算器と、 を備えたことを特徴とする請求項17または20に記載
    の高速フーリエ変換処理装置。
  22. 【請求項22】 前記演算手段にブロック浮動小数点演
    算法を用いて高速フーリエ変換演算を実行させるための
    ブロック浮動小数点検出記憶手段を、さらに有すること
    を特徴とする請求項16〜21のいずれかに記載の高速
    フーリエ変換処理装置。
  23. 【請求項23】 離散値の複素数データを入力して、可
    変サンプル点数の高速フーリエ変換演算を基数4または
    基数2のアルゴリズムで実行する高速フーリエ変換処理
    装置であって、サンプル点数が4n ×2個または4n
    (nは自然数)の前記複素数データを外部から入力して
    1つのグループとして一時的に記憶する作業用記憶手段
    と、この作業用記憶手段に記憶された前記複素数データ
    の各グループを計算列とサンプル点番号とにしたがって
    4個のグループA,B,C,Dに分割し、分割後の各グ
    ループA,B,C,Dに属するi番目の前記複素数デー
    タAi ,Bi ,Ci ,Di とひねり係数Wi1,Wi2,W
    i3,Wi4を用いた演算 ai ={(Ai +Ci )+(Bi +Di )}×Wi1 ・・・(1) ci ={(Ai +Ci )−(Bi +Di )}×Wi3 ・・・(2) bi ={(Ai −Ci )−j(Bi −Di )}×Wi2 ・・・(3) di ={(Ai −Ci )+j(Bi −Di )}×Wi4 ・・・(4) をすべてのiについて実行するとともにその結果である
    i ,bi ,ci ,diを前記作業用記憶手段に前記複
    素数データAi ,Bi ,Ci ,Di としてそれぞれ記憶
    する一連の演算処理をn回繰り返し、前記サンプル点数
    が4n ×2個の場合にはさらにこの演算処理によって得
    られた複素数データAi ,Bi ,Ci ,Di を用いた演
    算 ai =Ai +Bi ・・・(5) bi =Ai −Bi ・・・(6) ci =Ci +Di ・・・(7) di =Ci −Di ・・・(8) をすべてのiについて実行するとともにその結果である
    i ,bi ,ci ,diを前記作業用記憶手段にそれぞ
    れ記憶する演算処理を1回行う演算手段とを備えた高速
    フーリエ変換処理装置の複数個と、 これらの高速フーリエ変換処理装置が、それぞれ、選択
    的に前記複素数データを入力するための入力データ選択
    回路と、 且つ、前記複数個の高速フーリエ変換処理装置から選択
    的に演算処理後の複素数データを出力させる出力データ
    選択回路と、 を備えたことを特徴とする高速フーリエ変換処理システ
    ム。
  24. 【請求項24】 それぞれの前記高速フーリエ変換処理
    装置が、演算式(1),(2),(5),(6)を適宜
    行なうように構成された第1のデータパスと、演算式
    (3),(4),(7),(8)を適宜行なうように構
    成された第2のデータパスとを備えたことを特徴とする
    請求項23に記載の高速フーリエ変換処理システム。
  25. 【請求項25】 それぞれの前記高速フーリエ変換処理
    装置に設けられた前記演算手段が、それぞれブロック浮
    動小数点演算法を用いて高速フーリエ変換演算を実行す
    るためのブロック浮動小数点検出記憶部を有することを
    特徴とする請求項23または24に記載の高速フーリエ
    変換処理システム。
  26. 【請求項26】 離散値の複素数データを入力して、可
    変サンプル点数の高速フーリエ変換演算を基数4または
    基数2のアルゴリズムで実行する高速フーリエ変換処理
    装置であって、サンプル点数が4n ×2個または4n
    (nは自然数)の前記複素数データを外部から入力して
    1つのグループとして一時的に記憶する作業用記憶手段
    と、この作業用記憶手段に記憶された前記複素数データ
    の各グループを計算列とサンプル点番号とにしたがって
    4個のグループA,B,C,Dに分割し、分割後の各グ
    ループA,B,C,Dに属するi番目の前記複素数デー
    タAi ,Bi ,Ci ,Di とひねり係数Wi1,Wi2,W
    i3,Wi4を用いた演算 ai ={(Ai +Ci )+(Bi +Di )}×Wi1 ・・・(1) ci ={(Ai +Ci )−(Bi +Di )}×Wi3 ・・・(2) bi ={(Ai −Ci )−j(Bi −Di )}×Wi2 ・・・(3) di ={(Ai −Ci )+j(Bi −Di )}×Wi4 ・・・(4) をすべてのiについて実行するとともにその結果である
    i ,bi ,ci ,diを前記作業用記憶手段に前記複
    素数データAi ,Bi ,Ci ,Di としてそれぞれ記憶
    する一連の演算処理をn回繰り返し、前記サンプル点数
    が4n ×2個の場合にはさらにこの演算処理によって得
    られた複素数データAi ,Bi ,Ci ,Di を用いた演
    算 ai =Ai +Bi ・・・(5) bi =Ai −Bi ・・・(6) ci =Ci +Di ・・・(7) di =Ci −Di ・・・(8) をすべてのiについて実行するとともにその結果である
    i ,bi ,ci ,diを前記作業用記憶手段にそれぞ
    れ記憶する演算処理を1回行う演算手段とを備えた高速
    フーリエ変換処理装置の複数個と、 外部からの前記複素数データまたは他の前記高速フーリ
    エ変換処理装置の出力した前記複素数データを選択的に
    入力させるために、前記高速フーリエ変換処理装置ごと
    に設けられた入力データ選択回路と、 それぞれの前記高速フーリエ変換処理装置から選択的に
    演算処理後の複素数データを出力させる出力データ選択
    回路と、 を備えたことを特徴とする高速フーリエ変換処理システ
    ム。
  27. 【請求項27】 それぞれの前記高速フーリエ変換処理
    装置が、演算式(1),(2),(5),(6)を適宜
    行なうように構成された第1のデータパスと、演算式
    (3),(4),(7),(8)を適宜行なうように構
    成された第2のデータパスとを備えたことを特徴とする
    請求項26に記載の高速フーリエ変換処理システム。
  28. 【請求項28】 それぞれの前記高速フーリエ変換処理
    装置に設けられた前記演算手段が、それぞれブロック浮
    動小数点演算法を用いて高速フーリエ変換演算を実行す
    るためのブロック浮動小数点検出記憶部を有することを
    特徴とする請求項26または27に記載の高速フーリエ
    変換処理システム。
  29. 【請求項29】 離散値の複素数データを入力して、可
    変サンプル点数の高速フーリエ変換演算を基数4または
    基数2のアルゴリズムで実行する高速フーリエ変換処理
    方法において、 サンプル点数が4n ×2個または4n 個(nは自然数)
    の前記複素数データを外部から入力して1つのグループ
    として一時的に記憶する第1の処理過程と、 一時的に記憶された前記複素数データの各グループを計
    算列とサンプル点番号とにしたがって4個のグループ
    A,B,C,Dに分割し、分割後の各グループA,B,
    C,Dに属するi番目の前記複素数データAi ,Bi
    i ,Di とひねり係数Wi1,Wi2,Wi3,Wi4を用い
    た演算 ai ={(Ai +Ci )+(Bi +Di )}×Wi1 ・・・(1) ci ={(Ai +Ci )−(Bi +Di )}×Wi3 ・・・(2) bi ={(Ai −Ci )−j(Bi −Di )}×Wi2 ・・・(3) di ={(Ai −Ci )+j(Bi −Di )}×Wi4 ・・・(4) をすべてのiについて実行するとともにai ,bi ,c
    i ,di をAi ,Bi ,Ci ,Di に代入する一連の演
    算処理をn回繰り返し、前記サンプル点数が4n×2個
    の場合にはさらにこの演算処理によって得られた前記複
    素数データAi ,Bi ,Ci ,Di を用いた演算 ai =Ai +Bi ・・・(5) bi =Ai −Bi ・・・(6) ci =Ci +Di ・・・(7) di =Ci −Di ・・・(8) をすべてのiについて実行するとともにその結果である
    i ,bi ,ci ,diをそれぞれAi ,Bi ,Ci
    i に代入する演算処理を1回行う第2の処理過程と、 を備えたことを特徴とする高速フーリエ変換処理方法。
  30. 【請求項30】 前記第2の処理過程がブロック浮動小
    数点演算法を用いて高速フーリエ変換演算を実行する過
    程であることを特徴とする請求項29に記載の高速フー
    リエ変換処理方法。
  31. 【請求項31】 離散値の複素数データを入力して、可
    変サンプル点数の高速フーリエ変換演算を基数4または
    基数2のアルゴリズムで実行する高速フーリエ変換処理
    方法において、 サンプル点数が4n ×2個または4n 個(nは自然数)
    の前記複素数データを外部から入力して1つのグループ
    として一時的に記憶する第1の処理過程と、 一時的に記憶された前記複素数データの各グループを計
    算列とサンプル点番号とにしたがって16個のグループ
    G1,BG1,CG1,DG1,AG2,BG2,CG2,DG2,A
    G3,BG3,CG3,DG3,AG4,BG4,CG4,DG4に分割
    する第1の演算ステップと、分割後の各グループの組合
    せ{AG1,BG1,CG1,DG1},{AG2,BG2,CG2
    G2},{AG3,BG3,CG3,DG3},{AG4,BG4
    G4,DG4}のそれぞれについて、各組合わせの各グル
    ープに属するi番目の前記複素数データAi ,Bi ,C
    i ,Di とひねり係数Wi1,Wi2,Wi3,Wi4を用いた
    演算 ai ={(Ai +Ci )+(Bi +Di )}×Wi1 ・・・(1) ci ={(Ai +Ci )−(Bi +Di )}×Wi3 ・・・(2) bi ={(Ai −Ci )−j(Bi −Di )}×Wi2 ・・・(3) di ={(Ai −Ci )+j(Bi −Di )}×Wi4 ・・・(4) を実行する第2の演算ステップと、この第2の演算ステ
    ップの演算結果ai ,bi ,ci ,di を4個ずつ取り
    込んで4行4列の行列を形成した後でこの行列を転置
    し、これにより得られた転置行列を構成する複素数デー
    タを1列ずつ出力する第3の演算ステップと、これらの
    複素数データをAi ,Bi ,Ci ,Di として前記演算
    (1)〜(4)を順次実行するとともにai ,bi ,c
    i ,di を前記グループの組合せ{AG1,AG2,AG3
    G4},{BG1,BG2,BG3,BG4},{CG1,CG2
    G3,,CG4},{DG1,DG2,DG3,DG4}の各複素
    数データAi ,Bi ,Ci ,Di に順次代入する第4の
    演算ステップとからなる一連の演算処理を前記演算
    (1)〜(4)の実行回数が合計n回となるまで繰り返
    し、前記サンプル点数が4n ×2個の場合にはさらにこ
    の演算処理によって得られた前記複素数データAi ,B
    i ,Ci ,Di を用いた演算 ai =Ai +Bi ・・・(5) bi =Ai −Bi ・・・(6) ci =Ci +Di ・・・(7) di =Ci −Di ・・・(8) をすべてのiについて実行するとともにその結果である
    i ,bi ,ci ,diをそれぞれAi ,Bi ,Ci
    i に代入する演算処理を1回行う第2の処理過程と、 を備えたことを特徴とする高速フーリエ変換処理方法。
  32. 【請求項32】 前記第2の演算ステップまたは前記演
    算(5)〜(8)の少なくとも一方がブロック浮動小数
    点演算法を用いて高速フーリエ変換演算を実行する過程
    であることを特徴とする請求項31に記載の高速フーリ
    エ変換処理方法。
  33. 【請求項33】 離散値の複素数データを入力して、可
    変サンプル点数の高速フーリエ変換演算を基数4または
    基数2のアルゴリズムで実行する高速フーリエ変換処理
    方法において、 サンプル点数が2N(N=4n ×2または4n ;nは自
    然数)個の前記複素数データを外部から入力して1つの
    グループとして一時的に記憶する第1の処理過程と、 一時的に記憶された前記複素数データの各グループを計
    算列とサンプル点番号とにしたがって8個のグループA
    1 ,B1 ,C1 ,D1 ,A2 ,B2 ,C2 ,D2 に分割
    し、分割後の各グループA1 ,B1 ,C1 ,D1
    2 ,B2 ,C2 ,D2 に属するi番目の前記複素数デ
    ータA1i,B1i,C1i,D1i,A2i,B2i,C2i,D2i
    とひねり係数W1i1 ,W1i2 ,W1i3 ,W1i4
    2i1 ,W2i2 ,W2i3 ,W2i4 を用いた演算 a1i={(A1i+C1i)+(B1i+D1i)}×W1i1 ・・・(1) c1i={(A1i+C1i)−(B1i+D1i)}×W1i3 ・・・(2) b1i={(A1i−C1i)−j(B1i−D1i)}×W1i2 ・・・(3) d1i={(A1i−C1i)+j(B1i−D1i)}×W1i4 ・・・(4) a2i={(A2i+C2i)+(B2i+D2i)}×W2i1 ・・・(5) c2i={(A2i+C2i)−(B2i+D2i)}×W2i3 ・・・(6) b2i={(A2i−C2i)−j(B2i−D2i)}×W2i2 ・・・(7) d2i={(A2i−C2i)+j(B2i−D2i)}×W2i4 ・・・(8) をすべてのiについて実行するとともにその結果である
    1i,b1i,c1i,d1i,a2i,b2i,c2i,d2iをA
    1i,B1i,C1i,D1i,A2i,B2i,C2i,D2iに代入
    する一連の演算処理を1回行った後、作業記憶手段に記
    憶された複素数データを計算列とサンプル点番号とにし
    たがって4個のグループに分割する処理を1回行い、さ
    らに、これらの各グループを計算列とサンプル点番号と
    にしたがってさらに4個のグループA,B,C,Dに分
    割し、分割後の各グループA,B,C,Dに属するi番
    目の前記複素数データAi ,Bi ,Ci ,Di とひねり
    係数Wi1,Wi2,Wi3,Wi4を用いた演算 ai ={(Ai +Ci )+(Bi +Di )}×Wi1 ・・・(9) ci ={(Ai +Ci )−(Bi +Di )}×Wi3 ・・・(10) bi ={(Ai −Ci )−j(Bi −Di )}×Wi2 ・・・(11) di ={(Ai −Ci )+j(Bi −Di )}×Wi4 ・・・(12) をすべてのiについて実行するとともにその結果である
    i ,bi ,ci ,diをAi ,Bi ,Ci ,Di に代
    入する一連の演算処理をn−1回繰り返し、N=4n ×
    2の場合にはさらにこの演算処理によって得られた複素
    数データAi ,Bi ,Ci ,Di を用いた演算 ai =Ai +Bi ・・・(17) bi =Ai −Bi ・・・(18) ci =Ci +Di ・・・(19) di =Ci −Di ・・・(20) をすべてのiについて実行するとともにその結果である
    i ,bi ,ci ,diをAi ,Bi ,Ci ,Di に代
    入する演算処理を1回行う第2の処理過程と、 を備えたことを特徴とする高速フーリエ変換処理方法。
  34. 【請求項34】 前記第2の処理過程がブロック浮動小
    数点演算法を用いて高速フーリエ変換演算を実行する過
    程であることを特徴とする請求項33に記載の高速フー
    リエ変換処理方法。
  35. 【請求項35】 離散値の複素数データを入力して、
    サンプル点数がN個の高速フーリエ変換演算を基数4ま
    たは基数2のアルゴリズムで実行する第1の高速フーリ
    エ変換処理装置および第2の高速フーリエ変換処理装置
    を設けてなる高速フーリエ変換処理システムを用いて、
    サンプル点数が2N個の高速フーリエ変換処理を行なう
    高速フーリエ変換処理方法において、 外部から入力された2N個(=4n ×2個または4n
    個;nは自然数)の前記複素数データを、サンプル点番
    号にしたがってN/4個ずつ前記第1の高速フーリエ変
    換処理装置および前記第2の高速フーリエ変換処理装置
    の各作業用記憶手段にそれぞれ交互に格納することによ
    り、これらの作業用記憶手段に前記複素数データをそれ
    ぞれ1グループとして記憶させる第1の処理過程と、 前記第1の高速フーリエ変換処理装置および前記第2の
    高速フーリエ変換処理装置の前記作業用記憶手段に記憶
    された複素数データの各グループを計算列とサンプル点
    番号とに従って4個のグループA,B,C,Dにそれぞ
    れ分割し、分割後の各グループA,B,C,Dに属する
    i番目の複素数データAi ,Bi ,Ci,Di とひねり
    係数Wi1,Wi2,Wi3,Wi4を用いた演算 ai ={(Ai +Ci )+(Bi +Di )}×Wi1 ・・・(1) ci ={(Ai +Ci )−(Bi +Di )}×Wi3 ・・・(2) bi ={(Ai −Ci )−j(Bi −Di )}×Wi2 ・・・(3) di ={(Ai −Ci )+j(Bi −Di )}×Wi4 ・・・(4) をすべてのiについて実行するとともにその結果である
    i ,bi ,ci ,diを前記作業用記憶手段に前記複
    素数データAi ,Bi ,Ci ,Di としてそれぞれ記憶
    し、さらに、前記第1の高速フーリエ変換処理装置のグ
    ループC,Dに属する前記複素数データと前記第2の高
    速フーリエ変換処理装置のグループA,Bに属する前記
    複素数データとをそれぞれ入れ替えたのち、前記第1の
    高速フーリエ変換処理装置および前記第2の高速フーリ
    エ変換処理装置のそれぞれについてグループBに属する
    前記複素数データとグループCに属する前記複素数デー
    タを入れ替える第2の処理過程と、 前記第1の高速フーリエ変換処理装置および前記第2の
    高速フーリエ変換処理装置の前記作業用記憶手段に記憶
    された複素数データの各グループを計算列とサンプル点
    番号とに従ってさらに4個のグループA,B,C,Dに
    それぞれ分割し、分割後の各グループA,B,C,Dに
    属するi番目の複素数データAi ,Bi,Ci ,Di
    ひねり係数Wi1,Wi2,Wi3,Wi4を用いて前記演算
    (1)〜(4)をすべてのiについて実行するとともに
    その結果であるai ,bi ,ci ,di を前記作業用記
    憶手段に前記複素数データAi ,Bi ,Ci ,Di とし
    てそれぞれ記憶する一連の演算処理をn−1回繰り返
    し、前記サンプル点数が4n ×2個の場合にはさらにこ
    の演算処理によって得られた前記複素数データAi ,B
    i ,Ci ,Di を用いた演算 ai =Ai +Bi ・・・(5) bi =Ai −Bi ・・・(6) ci =Ci +Di ・・・(7) di =Ci −Di ・・・(8) をすべてのiについて実行するとともにその結果である
    i ,bi ,ci ,diを前記作業用記憶手段に前記Ai
    ,Bi ,Ci ,Di としてそれぞれ記憶する演算処理
    を1回行う第3の処理過程と、 を備えたことを特徴とする高速フーリエ変換処理方法。
  36. 【請求項36】 前記第2の処理過程または前記第3の
    処理過程の少なくとも一方がブロック浮動小数点演算法
    を用いて高速フーリエ変換演算を実行する過程であるこ
    とを特徴とする請求項35に記載の高速フーリエ変換処
    理方法。
  37. 【請求項37】 前記第3の処理過程のうち、演算式
    (5),(6),(7),(8)を行う演算処理のみが
    ブロック浮動小数点演算法を用いて高速フーリエ変換演
    算を実行する過程であることを特徴とする請求項35に
    記載の高速フーリエ変換処理方法。
JP01597198A 1997-02-04 1998-01-28 高速フーリエ変換処理装置 Expired - Fee Related JP3938238B2 (ja)

Priority Applications (5)

Application Number Priority Date Filing Date Title
JP01597198A JP3938238B2 (ja) 1997-02-04 1998-01-28 高速フーリエ変換処理装置
TW087101271A TW420907B (en) 1997-02-04 1998-02-03 Fast fourier transform processing device, fast fourier transform processing system, and fast fourier transform processing method
US09/018,530 US6230176B1 (en) 1997-02-04 1998-02-04 Fast fourier transform processing device, fast fourier transform processing system, and fast fourier transform processing method
KR10-1998-0003103A KR100390326B1 (ko) 1997-02-04 1998-02-04 고속푸리에변환처리장치,고속푸리에변환처리시스템및고속푸리에변환처리방법
EP98101915A EP0856801A1 (en) 1997-02-04 1998-02-04 Device, system and method for fast fourier transform processing

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
JP2179997 1997-02-04
JP31365997 1997-11-14
JP9-313659 1997-11-14
JP9-21799 1997-11-14
JP01597198A JP3938238B2 (ja) 1997-02-04 1998-01-28 高速フーリエ変換処理装置

Publications (2)

Publication Number Publication Date
JPH11203272A true JPH11203272A (ja) 1999-07-30
JP3938238B2 JP3938238B2 (ja) 2007-06-27

Family

ID=27281213

Family Applications (1)

Application Number Title Priority Date Filing Date
JP01597198A Expired - Fee Related JP3938238B2 (ja) 1997-02-04 1998-01-28 高速フーリエ変換処理装置

Country Status (5)

Country Link
US (1) US6230176B1 (ja)
EP (1) EP0856801A1 (ja)
JP (1) JP3938238B2 (ja)
KR (1) KR100390326B1 (ja)
TW (1) TW420907B (ja)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001083994A (ja) * 1999-08-09 2001-03-30 Deutsche Thomson Brandt Gmbh オーディオ信号のビット伝送速度を節約して符号化する方法及び符号化器
JP2008533873A (ja) * 2005-03-11 2008-08-21 クゥアルコム・インコーポレイテッド 高速フーリエ変換トゥイドル乗算
US8229014B2 (en) 2005-03-11 2012-07-24 Qualcomm Incorporated Fast fourier transform processing in an OFDM system
US10855255B2 (en) 2015-12-02 2020-12-01 Nec Corporation Digital filter, filter processing method, and recording medium

Families Citing this family (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6167416A (en) * 1997-09-26 2000-12-26 Xilinx, Inc. System and method for RAM-partitioning to exploit parallelism of radix-2 elements in FPGAS
EP0942379A1 (en) * 1998-03-13 1999-09-15 Alcatel Pipelined fast fourier transform processor
DE19930707C2 (de) * 1999-07-02 2003-04-10 Forschungszentrum Juelich Gmbh Meßverfahren, Meßvorrichtung sowie Auswerteelektronik
US6859816B2 (en) * 2000-07-31 2005-02-22 Sony Corporation Fast Fourier transform method and inverse fast Fourier transform method
US6625203B2 (en) * 2001-04-30 2003-09-23 Interdigital Technology Corporation Fast joint detection
US7088791B2 (en) * 2001-10-19 2006-08-08 Texas Instruments Incorporated Systems and methods for improving FFT signal-to-noise ratio by identifying stage without bit growth
ATE433160T1 (de) * 2002-08-20 2009-06-15 Interdigital Tech Corp Effiziente gemeinsame detektion
US7386703B2 (en) * 2003-11-18 2008-06-10 International Business Machines Corporation Two dimensional addressing of a matrix-vector register array
WO2006023770A2 (en) * 2004-08-18 2006-03-02 Nielsen Media Research, Inc. Methods and apparatus for generating signatures
US20060224652A1 (en) * 2005-04-05 2006-10-05 Nokia Corporation Instruction set processor enhancement for computing a fast fourier transform
US8396913B2 (en) 2005-04-12 2013-03-12 Nxp B.V. Fast fourier transform architecture
US8161093B2 (en) * 2006-12-06 2012-04-17 Samsung Electronics Co., Ltd. Complex multiplier and twiddle factor generator
US7675847B2 (en) 2007-07-10 2010-03-09 Wipro Limited Hardware implementation of a programmable FFT based on a half length FFT core
KR101189767B1 (ko) * 2008-12-17 2012-10-10 한국전자통신연구원 고속 푸리에 변환 장치 및 방법
US8370414B2 (en) * 2009-01-15 2013-02-05 Telefonaktiebolaget L M Ericsson (Publ) FFT-based parallel system with memory reuse scheme
US9952831B1 (en) * 2017-02-16 2018-04-24 Google Llc Transposing in a matrix-vector processor

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4689762A (en) * 1984-09-10 1987-08-25 Sanders Associates, Inc. Dynamically configurable fast Fourier transform butterfly circuit
US4872132A (en) * 1987-03-13 1989-10-03 Zoran Corporation Method and means for block floating point arithmetic
US5093801A (en) * 1990-07-06 1992-03-03 Rockwell International Corporation Arrayable modular FFT processor
US5293330A (en) * 1991-11-08 1994-03-08 Communications Satellite Corporation Pipeline processor for mixed-size FFTs
JP2950703B2 (ja) * 1992-04-30 1999-09-20 シャープ株式会社 高速フーリエ変換用ディジット反転のためのアドレス発生器及び反転フィールドシーケンス発生器並びにディジット反転シーケンス信号発生方法
FR2709007B1 (fr) * 1993-08-11 1995-09-29 Joanblanq Christophe Dispositif électronique de calcul d'une transformée de Fourier et procédé pour minimiser la taille des chemins de données internes d'un tel dispositif.
US5481488A (en) 1994-10-21 1996-01-02 United Microelectronics Corporation Block floating point mechanism for fast Fourier transform processor
US5717620A (en) * 1995-10-24 1998-02-10 Airnet Communications Corporation Improved-accuracy fast-Fourier-transform butterfly circuit
US5951627A (en) * 1996-06-03 1999-09-14 Lucent Technologies Inc. Photonic FFT processor

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001083994A (ja) * 1999-08-09 2001-03-30 Deutsche Thomson Brandt Gmbh オーディオ信号のビット伝送速度を節約して符号化する方法及び符号化器
JP2008533873A (ja) * 2005-03-11 2008-08-21 クゥアルコム・インコーポレイテッド 高速フーリエ変換トゥイドル乗算
US8229014B2 (en) 2005-03-11 2012-07-24 Qualcomm Incorporated Fast fourier transform processing in an OFDM system
US8266196B2 (en) 2005-03-11 2012-09-11 Qualcomm Incorporated Fast Fourier transform twiddle multiplication
US10855255B2 (en) 2015-12-02 2020-12-01 Nec Corporation Digital filter, filter processing method, and recording medium

Also Published As

Publication number Publication date
JP3938238B2 (ja) 2007-06-27
US6230176B1 (en) 2001-05-08
TW420907B (en) 2001-02-01
KR100390326B1 (ko) 2003-10-30
EP0856801A1 (en) 1998-08-05

Similar Documents

Publication Publication Date Title
JPH11203272A (ja) 高速フーリエ変換処理装置、高速フーリエ変換処理システムおよび高速フーリエ変換処理方法
US7337205B2 (en) Matrix multiplication in a vector processing system
KR101202445B1 (ko) 프로세서
US5293330A (en) Pipeline processor for mixed-size FFTs
US4241411A (en) FFT Parallel processor having mutually connected, multiple identical cards
US7043627B2 (en) SIMD operation system capable of designating plural registers via one register designating field
WO2001035224A1 (en) Bit-serial memory access with wide processing elements for simd arrays
KR20030064239A (ko) 화상을 처리하는 장치 및 방법과 이 장치에 이용되는컴파일러
JPWO2002069182A1 (ja) フーリェ変換装置
CN110851779A (zh) 用于稀疏矩阵运算的脉动阵列架构
JP2002351858A (ja) 処理装置
JP5601327B2 (ja) データ並べ替え回路、可変遅延回路、高速フーリエ変換回路、およびデータ並べ替え方法
US7653676B2 (en) Efficient mapping of FFT to a reconfigurable parallel and pipeline data flow machine
JPH06274528A (ja) ベクトル演算処理装置
JP7038608B2 (ja) 半導体装置
JPH06282432A (ja) 演算処理装置
JP4248027B2 (ja) データ要素の系列を変換する装置
JP3088472B2 (ja) フーリエ変換装置
JP2580501B2 (ja) 並列デ−タ処理装置
WO2008124061A1 (en) System for convolution calculation with multiple computer processors
KR0126109B1 (ko) 이산적 코사인변환 및 역변환을 위한 집적회로 프로세서
EP0988604A1 (en) Device for converting series of data elements
JPH07210540A (ja) 情報処理装置
JP2000137703A (ja) 離散コサイン変換装置及び逆離散コサイン変換装置
JP2002117015A (ja) 高速フーリエ変換回路

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20040830

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20040830

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20060619

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20060627

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20060811

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: 20070320

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20070320

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313111

S531 Written request for registration of change of domicile

Free format text: JAPANESE INTERMEDIATE CODE: R313531

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

Free format text: PAYMENT UNTIL: 20100406

Year of fee payment: 3

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

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

Free format text: PAYMENT UNTIL: 20110406

Year of fee payment: 4

LAPS Cancellation because of no payment of annual fees