JP2751531B2 - ループコードfft演算方式 - Google Patents

ループコードfft演算方式

Info

Publication number
JP2751531B2
JP2751531B2 JP2042642A JP4264290A JP2751531B2 JP 2751531 B2 JP2751531 B2 JP 2751531B2 JP 2042642 A JP2042642 A JP 2042642A JP 4264290 A JP4264290 A JP 4264290A JP 2751531 B2 JP2751531 B2 JP 2751531B2
Authority
JP
Japan
Prior art keywords
butterfly
processing means
stage
executing
butterfly operation
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Lifetime
Application number
JP2042642A
Other languages
English (en)
Other versions
JPH03246763A (ja
Inventor
信哉 川田
淳 志村
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.)
Fuji Electric Co Ltd
Original Assignee
Fuji Electric 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 Fuji Electric Co Ltd filed Critical Fuji Electric Co Ltd
Priority to JP2042642A priority Critical patent/JP2751531B2/ja
Publication of JPH03246763A publication Critical patent/JPH03246763A/ja
Application granted granted Critical
Publication of JP2751531B2 publication Critical patent/JP2751531B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Landscapes

  • Complex Calculations (AREA)

Description

【発明の詳細な説明】 〔概要〕 ループコードFFT演算方式におけるプログラム容量と
処理時間を改善した改良形ループコードFFT演算方式に
関し、 目的に応じたプログラム容量の増加だけで、大幅な処
理時間の短縮を可能とし、これにより制御分野等におけ
るFFTの適用範囲を拡大することを目的とし、 インプレース形FFTアルゴリズムに基づいて、複数組
のバタフライ演算によってFFT演算を実行するFFT演算方
式において、所定の複数組のバタフライ演算を連続して
実行する処理プログラムを有し、それを実行するバタフ
ライ演算群処理手段と、該バタフライ演算群処理手段を
繰り返し実行させることによりFFT演算を実行する繰り
返し処理手段と、を有するように構成する。
〔産業上の利用分野〕
本発明は、ループコードFFT演算方式におけるプログ
ラム容量と処理時間を改善した改良形ループコードFFT
演算方式に関する。
〔従来の技術〕
FFT(高速フーリエ変換)演算方式は、様々な信号を
解析する上で非常に有用かつ実用的な周波数解析方式で
あり、ディジタルシグナルプロセッサ等を用いたFFT演
算装置が数多く開発されている。FFTは、N個の入力サ
ンプル系列xp(0≦p≦N−1)に対して、 W=exp(−j2π/N) ・・・(2) で定義されるN個のフーリエ変換(DFT)Xk(0≦k≦
N−1)を求める計算において、同じ乗算を何回も繰り
返すことがないように、演算手順を合理化する演算方式
である。以下に、FFTアルゴリズムを説明する。
まず、入力サンプルル系列xp(0≦p≦N−1)を、
偶数番目のサンプル系列bpと奇数番目のサンプル系列cp
とに分割する。すなわち、 とする。
bpとcpは、0≦k≦N/2−1の範囲で、次式で定義さ
れるフーリエ変換Bk及びCkを有する。但し、Wは、前述
の(2)式で定義される。
従って、上記(4)式と(5)式及び前述の(1)式
よりxpの0≦k≦N/2−1の範囲でのフーリエ変換X
kは、 と表現することができる。N/2≦k≦N−1の範囲で
は、BkとCkは0≦k≦N/2−1における各値を繰り返し
て巡回的な値をとり、また、WN/2=exp(−jπ)=−
1より、N/2≦n≦N−1とした場合のフーリエ変換Xn
は、 Xn=XN/2+k=Bk+CkWN/2+k =Bk−CkWk (0≦k≦N/2−1) ・・・(7) と表現できる。
(6)式及び(7)式より、入力サンプル系列xpを偶
数番目と奇数番目に分割した各サンプル系列bp及びcp
各フーリエ変換Bk及びCk(0≦k≦N/2−1)が求まれ
ば、xpのフーリエ変換Xk(0≦k≦N−1)が求まる。
第7図(a)に、N=8とした場合の、(6)式及び
(7)式に基づく信号の流れ図を示す。(6)式のよう
に、B0、B1、B2及びB3の各々に、C0W0、C1W1、C2W2及び
C3W3の各々を加えたものが、X0、X1、X2及びX3である。
また、(7)式のようにB0、B1、B2及びB3の各々から、
C0W0、C1W1、C2W2及びC3W3の各々を引いたものが、X4
X5、X6及びX7である。すなわち、 X0=B0+C0W0 X1=B1+C1W1 X2=B2+C2W2 X3=B3+C3W3 X4=B0+C0W4=B0−C0W0 X5=B1+C1W5=B1−C1W1 X6=B2+C2W6=B2−C2W2 X7=B3+C3W7=B3−C3W3 ・・・(8) として求まる。
ここで、フーリエ変換Bk及びCkは、第7図(a)のよ
うに、各々N=4のDFTを実行することにより求まる。
そして、B0〜B3は、(6)式及び(7)式の場合と同様
に入力サンプル系列x0、x2、x4及びx6の偶数番目(x0
x4)のフーリエ変換D0、D1と、奇数番目(x2、x6)のフ
ーリエ変換E0、E1にW0、W2を乗じたものとの和及び差の
形で求めることができる。同様に、C0〜C3は、入力サン
プル系列x1、x3、x5及びx7の偶数番目(x1、x5)のフー
リエ変換F0、F1と、奇数番目(x3、x7)のフーリエ変換
G0、G1にW0、W2を乗じたものとの和及び差の形で求める
ことができる。すなわち、 B0=D0+E0W0 B1=D1+E1W2 B2=D0+E0W4=D0−E0W0 B3=D1+E1W6=D1−E1W2 C0=F0+G0W0 C1=F1+G1W2 C2=F0+G0W4=F0−G0W0 C3=F1+G1W6=F1−G1W2 ・・・(9) として求まる。この場合の信号の流れ図を第7図(b)
に示す。
更に、フーリエ変換Dk、Ek、Fk及びGkは、第7図
(b)のように、各々N=2のDFTを実行することによ
り求まる。すなわち、x0とx4、x2とx6、x1とx5及びx3
x7とから、 D0=x0+x4、D1=x0−x4 E0=x2+x6、E1=x2−x6 F0=x1+x5、F1=x1−x5 G0=x3+x7、G1=x3−x7 ・・・(10) によって、直接求めることができる。この場合の信号の
流れ図を第7図(c)に示す。ここで、同図の左端の入
力サンプル系列は、x0、x1、・・・、x7の順番に並んで
いない。そこで、入力サンプル系列x0、x1、・・・、x7
の各々を2進数で表して順番に配置し、各数の左右の桁
の順序を逆にして10進数に直し同じ順番で取り出すこと
により、x0、x4、x2、x6、x1、x5、x3及びx7を自動的に
得ることができる。このような処理は「ビット逆順によ
る並び替え」と呼ばれている。
以上からわかるように、入力サンプル系列x0、x1、・
・・・、x7に対して、ヒット逆順による並び替えの処理
を行った後、(10)式→(9)式→(8)式の順に計算
を行うことにより、入力サンプル系列x0〜x7のフーリエ
変換X0〜X7を求めることができる。
ここで、第7図(c)又は前述の(8)式〜(10)式
よりわかるように、FFTの演算は、第8図に示されるよ
うなバタフライ演算と呼ばれる演算が基本となっている
ことがわかる。なお、同図では、横方向の信号の流れは
省略してある。同図で、交点部分の数nは、Wのベキ乗
の数を表しており、バタフライ演算の線形結合を作る際
の係数である。そして、第8図のバタフライ演算は以下
のようにして実行される。
まず、入力i1に複素数Wnを乗算する演算を行い、その
乗算結果i1・Wnを入力i0に加算する。すなわち、 j0=i0+i1・Wn とする。そして、乗算結果i1・Wnと入力i0にレジスタ等
に退避した後、j0をi0が格納されていたメモリ番地に重
ね書きする。更に、退避しておいた乗算結果i1・Wnと入
力i0を読み出し、i0にi1・Wnの符号を反転した値を加算
する。すなわち、 j1=i0−i1・Wn とする。そして、j1をi1が格納されていたメモリ番地に
重ね書きする。
以上のように、1回のバタフライ演算は、複素数につ
いての1回の乗算と2回の加算によって構成されてい
る。一般に、N個の入力サンプル系列x0〜xN-1に対する
FFT演算を、N=8の例である前述の(8)式〜(10)
式又は第7図(c)の場合と同様に実行すると、第8図
のようなバタフライ演算の個数は、(N/2)log2Nとな
る。従って、乗算回数も、(N/2)log2N回となる。今、
前述の(1)式で定義されるDFTをまともに計算する
と、N2回の乗算が必要となるため、理論的には大幅な演
算量の減少が実現できる。
ここで、第8図のバタフライ演算では、各出力j0、j1
が、各入力i0、i1が格納されていたメモリ番地に重ね書
きされながら計算が進むため、第8図のバタフライ演算
に基づくFFTアルゴリズムは、インプレース(in−plac
e)形FFTアルゴリズムと呼ばれている。
第9図に、N=32とした場合の入力サンプル系列x0
x31に対するフーリエ変換X0〜X31の求めるFFTの信号の
流れ図を示す。始めに、x0〜x31に対してビット逆順に
よる並び替えの処理が実行されて第9図左端の入力が得
られた後、第8図の場合と同様の交差する2本の実線の
組で示される各バタフライ演算が、第1ステージ→第2
ステージ→第3ステージ→第4ステージ→第5ステージ
の順に実行される。この計算の流れは、前述の(10)式
→(9)式→(8)式の流れに対応している。また、第
9図の各バタフライ演算の交点の数字の意味は、第8図
の場合と同様である。
上述のようなインプレース形FFTアルゴリズムを、汎
用計算機システム又はディジタルシグナルプロセッサ等
によって実行されるプログラムとして実現することを考
えた場合、一般的に、以下に示されるループ・コード法
とストレート・コード法と呼ばれる2つの実現の仕方が
ある。
ループ・コード法:1つのバタフライ演算をサブルー
チン化し、FFTの各バタフライ演算を繰り返し命令によ
り実行する方式。すなわち、第8図の入力i0とi1及び変
数nを引数とするバタフライ演算のサブルーチンプログ
ラムを作成し、i0とi1及びnを順次変化させながら、FF
Tの各バタフライ演算を実行する方式。
ストレート・コード法:1回のFFTにおける全てのバ
タフライ演算の処理を、連続して実行する処理プログラ
ムを有し、順次実行する方式。すなわち、前述の(10)
式→(9)式→(8)式の例で示される流れを、直接処
理プログラムとして記述する方式。
〔発明が解決しようとする課題〕
前述のループ・コード法の場合、バタフライ演算のサ
ブルーチンプログラムを反復使用するため、全体のプロ
グラム容量は小さくて済む反面、入力i0とi1及び変数n
の値を決定したり、得られた出力j0とj1(第8図参照)
を対応するメモリ番地に振り分けたり等するための判断
処理が各繰り返し毎に必要となり、その判断処理に必要
な時間がFFTの全計算時間の数十%にも及ぶことがあ
り、FFTを高速に実行できないという問題点を有してい
る。
一方、前述のストレート・コード法の場合、演算処理
を順番に実行するだけでよく、判断処理はほとんど必要
ないため、FFTの大部分の計算時間をバタフライ演算に
割り当てることができ、FFTを非常に高速に実行でき
る。しかし、FFTのポイント数がN=32(第9図)、6
4、128、256、1024、・・・と増加するに従って、プロ
グラム容量が爆発的に増加してしまう。汎用の大型計算
機等でメモリ容量に余裕があればストレート・コード法
を適用することも可能であるが、一般にFFTは、パソコ
ンレベルの中・小型のコンピュータ等で行う場合が多
く、上述のような容量の大きなプログラムを格納できる
場合はむしろ少ない。従って、高速なFFTが必要な場合
であっても、処理速度の遅いループ・コード法を使用せ
ざるを得ない場合が多く、FFTの適用範囲が限定されて
しまうという問題点を有している。
一方、例えば第9図において、FFTの実際の信号解析
に用いる場合、入力サンプル系列x0〜x31は実数データ
である場合が多いが、このような場合、第9図の右端か
ら得られるフーリエ変換X0〜X31のうち、X16〜X31はX0
〜X15を折り返した値となっている。従って、このよう
な場合には、X16〜X31を計算する処理が無駄な処理とな
ってしまっているという問題点を有している。
更に、周波数解析にFFTを使用するような場合、有効
に得られる例えば第9図のフーリエ変換X0〜X15のう
ち、高次端側の高調波成分に対応するデータ(例えばX8
〜X15付近)は、折り返し雑音の影響を受け易いため実
際には使用しない場合が多い。従って、このような場合
には、高次端側のデータを計算する処理が無駄な処理と
なってしまっているという問題点を有している。
本発明は、目的に応じたプログラム容量の増加だけ
で、大幅な処理時間の短縮を可能とし、これにより制御
分野等におけるFFTの適用範囲を拡大することを目的と
する。
〔課題を解決するための手段〕
第1図に本発明のブロック図を示す。本発明は、イン
プレース形FFTアルゴリズムに基づいて、複数組のバタ
フライ演算によってFFT演算を実行するFFT演算方式を前
提とする。
本発明は、所定の複数組のバタフライ演算を連続して
実行する処理プログラムを有し、それを実行するバタフ
ライ演算群処理手段101と、該バタフライ演算群処理手
段を繰り返し実行させることによりFFT演算を実行する
繰り返し処理手段102とを有する。
具体的には、入力サンプル系列に対してビット逆順に
よる並び替えを行った後に、インプレース形FFTアルゴ
リズムに基づいて、複数組の複数段のバタフライ演算に
よってFFT演算を実行するFFT演算方式の場合、例えば以
下の第1及び第2バタフライ演算群処理手段と、第1及
び第2の繰り返し処理手段とを有するように構成でき
る。
すなわち、第1バタフライ演算群処理手段は、第1段
及び第2段の2組ずつのバタフライ演算を連続して実行
する処理プログラムを有し、それを実行する。
第1繰り返し処理手段は、該第1バタフライ演算群処
理手段を繰り返し実行させることにより第1段及び第2
段のバタフライ演算を実行する。
第2バタフライ演算群処理手段は、第2段以降の各段
の4組のバタフライ演算を連続して実行する処理プログ
ラムを有し、それを実行する。
第2繰り返し処理手段は、該第2バタフライ演算群処
理手段を繰り返し実行させることにより第2段以降の各
段のバタフライ演算を実行する。
また、上述の各処理手段に加えて、入力サンプル系列
が実数の場合、前段の2つの出力から1つのフーリエ変
換出力を演算する変形バタフライ演算を行なう処理プロ
グラムを有し、それを実行する変形バタフライ演算処理
手段と、該変形バタフライ演算処理手段を繰り返し実行
させることにより最終段の演算を実行する第3繰り返し
処理手段とを有するようにも構成できる。
更に、上述の第3繰り返し処理手段は、変形バタフラ
イ演算処理手段に対して、必要なフーリエ変換出力に対
応する変形バタフライ演算のみを実行させるように構成
することもできる。
〔作用〕
本発明では、所定の複数組のバタフライ演算を連続し
て実行する処理プログラムを有し、それを繰り返し実行
する形態を有する。これにより、判断処理を大幅に削減
することが可能となって計算時間を短縮できると共に、
プログラム容量の増大も一定の範囲内に抑えることがで
き、バタフライ演算をまとめる組数を目的に応じて変更
することにより、適用条件に応じたプログラム容量と計
算速度を有するFFT演算装置を提供することができる。
具体的には、第1バタフライ演算群処理手段で実行さ
れる第1バタフライ演算群においては、各入力に乗算さ
れる複素係数は、単純な実数又は虚数となる場合が多い
ため、実質的に加減算のみで処理が実行され、この部分
の計算時間を大幅に短縮できる。また、2組ずつ2段分
のバタフライ演算を連続して実行する処理プログラムに
したことにより、1つのバタフライ演算を繰り返し実行
する場合に比較して判断処理を大幅に減少させることが
でき、計算時間を削減できる。
次に、第2バタフライ演算群処理手段で実行される第
2バタフライ演算群では、4組のバタフライ演算を連続
して実行する処理プログラムにしたことにより、上述の
場合と同様、計算時間を削減できる。
更に、変形バタフライ演算処理手段で実行される変形
バタフライ演算では、通常のバタフライ演算による出力
のうち無駄な半分が計算されず、また、第3繰り返し処
理手段が高次端側の高調波成分に対応するデータの計算
をしないように制御できるため、この部分でも計算量を
削減することができる。
〔実施例〕
以下、本発明の実施例につき図面を参照しながら説明
する。
第2図は、本発明の実施例の構成図である。
実数の入力サンプル系列xpは、ビット逆順による並び
替え処理部201に入力し、ビット逆順による並び替えの
処理が実行される。ここでの処理は、前述の「従来の技
術」の項で説明した通りである。
ビット逆順による並べ替えが行われた入力サンプル系
列xpは、第1繰り返し処理部202に入力する。同処理部
は、入力サンプル系列xpを選択しながら予め定められた
回数だけ第1バタフライ演算群処理部203を起動し、後
述する第1バタフライ演算群を実行する。
第1繰り返し処理部202による処理の結果得られる中
間出力は、第2繰り返し処理部204に入力する。同処理
部は、入力を選択しながら予め定められた回数だけ第2
バタフライ演算群処理部205を起動し、後述する第2バ
タフライ演算群を実行する。
第2繰り返し処理部204による処理の結果得られる中
間出力は、第3繰り返し処理部206に入力する。同処理
部は、入力を選択しながら予め定められた回数だけ変形
バタフライ演算処理部207を起動し、後述する変形バタ
フライ演算を実行する。
第3繰り返し処理部206による処理の結果、フーリエ
変換Xkが得られる。
上述の構成の実施例における、第1バタフライ演算群
処理部203、第2バタフライ演算群処理部205及び変形バ
タフライ演算処理部207の処理構成について、次に説明
する。
まず、第2図の第1バタフライ演算処理部203での処
理構成を第3図に示す。第1バタフライ演算群は、4個
の入力p0〜p3に対して、同図に示される2組ずつ2段の
バタフライ演算を行って、4個の出力r0〜r3を得る演算
である。
すなわち、まず、入力p0及びp1に対して、次式で示さ
れる第1のバタフライ演算を行って中間出力q0及びq1
得る。
q0=p0+p1・W0 q1=p0−p1・W0 ・・・(11) このバタフライ演算は、前述の第8図の場合と同様の
手順で行われる。交点部分の数0は、第8図の場合と同
様、Wのベキ乗の数を表しており、上述の(11)式のバ
タフライ演算の線形結合を作る際の係数である。Wは、
前述の(2)式で定義される。また、入力q0及びq1は、
第1繰り返し処理部202から与えられる。
次に、入力p2及びp3に対して、次式で示される第2の
バタフライ演算を行って中間出力q2及びq3を得る。
q2=p2+p3・W0 q3=p2−p3・W0 ・・・(12) このバタフライ演算も、前述の第8図の場合と同様の
手順で行われ、入力q2及びq3は、第1繰り返し処理部20
2から与えられる。
上述の(11)式及び(12)式のバタフライ演算の後、
中間出力q0及びq2に対して、次式で示される第3のバタ
フライ演算を行って出力r0及びr2を得る。
r0=q0+q2・W0 r2=q0−q2・W0 ・・・(13) このバタフライ演算も、前述の第8図の場合と同様の
手順で行われる。
最後に、中間出力q1及びq3に対して、次式で示される
第4のバタフライ演算を行い出力r1及びr3を得る。
r1=q1+q3・W8 r3=q1−q3・W8 ・・・(14) このバタフライ演算も、前述の第8図の場合と同様の
手順で行われるが、Wのベキ乗の数は8である。
第1バタフライ演算群処理部203では、以上の(11)
式〜(14)式で示される4組のバタフライ演算に対し
て、個別に連続して実行する処理プログラムを有し、こ
の処理プログラムが第1繰り返し処理部202からの処理
要求に基づいて実行される。
次に、第2図の第2バタフライ演算群処理部205での
処理構成を第4図に示す。第2バタフライ演算群は、8
個の入力s0〜s7に対して、同図に示される4組のバタフ
ライ演算を行って、8個の出力t0〜t7を得る演算であ
る。
すなわち、まず、入力s0及びs4に対して、次式で示さ
れる第1のバタフライ演算を行って出力t0及びt4を得
る。
t0=s0+s4・Wn1 t4=s0−s4・Wn1 ・・・(15) このバタフライ演算は、前述の第8図の場合と同様の
手順で行われる。交点部分の数n1は、第8図の場合と同
様、Wのベキ乗の数で、上述の(15)式のバタフライ演
算の線形結合を作る際の係数であり、n1は第2繰り返し
処理部204から与えられる。wは前述の(2)式で定義
される。また、入力s0及びs4も、第2繰り返し処理部20
4から与えられる。
次に、入力s1及びs5に対して、次式で示される第2の
バタフライ演算を行って出力t1及びt5を得る。
t1=s1+s5・Wn2 t5=s1−s5・Wn2 ・・・(16) このバタフライ演算も、前述の第8図の場合と同様の
手順で行われ、Wのベキ乗の数n2及び入力s1及びs5は、
第2繰り返し処理部204から与えられる。
更に、入力s2及びs6に対して、次式で示される第3の
バタフライ演算を行って出力t2及びt6を得る。
t2=s2+s6・Wn3 t6=s2−s6・Wn3 ・・・(17) このバタフライ演算も、前述の第8図の場合と同様の
手順で行われ、Wのベキ乗の数n3及び入力s2及びs6は、
第2繰り返し処理部204から与えられる。
最後に、入力s3及びs7に対して、次式で示される第4
のバタフライ演算を行って出力t3及びt7を得る。
t3=s3+s7・Wn2 t7=s3−s7・Wn2 ・・・(18) このバタフライ演算も、前述の第8図の場合と同様の
手順で行われ、Wのベキ乗の数n4及び入力s3及びs7は、
第2繰り返し処理部204から与えられる。
第2バタフライ演算群処理部205では、以上の(15)
式〜(18)式で示される4組のバタフライ演算に対し
て、個別に連続して実行する処理プログラムを有し、こ
の処理プログラムが第2繰り返し処理部204からの処理
要求に基づいて実行される。
続いて、第2図の変形バタフライ演算処理部207での
処理構成を第5図に示す。変形バタフライ演算は、2個
の入力u0及びu1に対して、同図に示される1組の変形さ
れたバタフライ演算を行って、1個の出力v0を得る演算
である。
すなわち、入力u0及びu1に対して、次式で示される演
算を行って出力v0を得る。
v0=u0+u1+Wn ・・・(19) ここで、交点部分の数nは、第8図の場合と同様、W
のベキ乗の数で、上述の(19)式のバタフライ演算の線
形結合を作る際の係数であり、nは第3繰り返し処理部
206から与えられる。Wは前述の(2)式で定義され
る。また、入力u0及びu1も、第3繰り返し処理部206か
ら与えられる。但しこの場合は、前述の第8図の場合の
ように乗算結果u1・Wnと入力u0を退避する処理は必要な
く、(19)式によって得られるv0をすぐにu0が格納され
ていたメモリ番地に重ね書きすればよい。従って、第8
図の場合に比較して、数十%程度の演算量となる。
以上の処理構成を有する第2図の第1、第2バタフラ
イ演算群処理部203、205及び変形バタフライ演算処理部
207を基本とする第2図の実施例の動作を、第6図のFFT
演算例を用いて説明する。
第6図は、第2図〜第5図の実施例に基づいて32サン
プルのFFT演算を行う場合の処理概念を示した図であ
り、第9図の従来例に対応している。
まず、入力サンプル系列x0〜x31は、ビット逆順によ
る並べ替え処理部202において、第6図左端に示される
ような順に並べ替えられる。
次に、第1繰り返し処理部202は、上述の入力サンプ
ル系列x0、x16、x8、x24、・・・から4つずつを選択し
ながら第1バタフライ演算群処理部203を8回アクセス
する。これにより、第3図で説明した第1バタフライ演
算群が第6図のブロック3に示されるように8回実行さ
れる。各第1バタフライ演算群毎の4つずつの中間出力
は、対応する入力サンプル系列が格納されていたメモリ
番地に重ね書きされる。ここでの演算は、第9図の従来
例の第1ステージ及び第2ステージの演算をまとめた演
算に対応する。
続いて、第2繰り返し処理部204に制御が移る。同処
理部204は、第1繰り返し処理部202から32個の中間出力
のうち8個ずつを選択しながら第2バタフライ演算群処
理部205を順次アクセスする。これにより、第4図で説
明した第2バタフライ演算群が第6図のグループ5に示
されるように順次実行される。ここで、前述の(15)式
〜(18)式のWのベキ乗の数n1〜n4は、第6図の各グル
ープ5の4個ずつの交点部分の数字になるように第2繰
り返し処理部204が与える。各第2バタフライ演算群毎
の8個ずつの中間出力は、対応する前段の中間出力が格
納されていたメモリ番地に重ね書きされる。ここでの演
算は、第9図の従来例の第3ステージ及び第4ステージ
での演算に対応する。
最後に、第3繰り返し処理部206に制御が移る。同処
理部206は、第2繰り返し処理部204からの中間出力のう
ち2個ずつを選択しながら変形バタフライ演算処理部20
7を順次アクセスする。これにより、第5図で説明した
変形バタフライ演算が第6図の列7に示されるように順
次実行される。ここで、前述の(19)式のWのベキ乗の
数nは、第6図の列7の各交点部分の数字になるように
第3繰り返し処理部206が与える。各変形バタフライ演
算毎の1個ずつの最終出力は、対応する前段の中間出力
が格納されていたメモリ番地に重ね書きされ、最終的な
フーリエ変換X0〜X7とされる。ここでの演算は、第9図
の従来例の第5ステージでの演算に対応する。この変形
バタフライ演算によって、理論的にX0〜X15を折り返し
た値となってしまうX16〜X31の計算を省くことができ
る。ここで、第3繰り返し処理部206は、フーリエ変換X
0〜X15のうちX8〜X15については、第6図破線の如く計
算しないように制御を行う。これにより、実際の周波数
解析において、折り返し雑音の影響を受け易いために使
用されない高次端側の高調波成分に対応するデータの計
算を省くことができる。
上述した第2図の実施例の動作において、まず、第1
バタフライ演算群処理部203で実行される第1バタフラ
イ演算群では、前述の(11)式〜(14)式におけるW0
びW8は、前述の(2)式より第6図のN=32の場合、各
々1及び−j(jは、j2=−1を満たす複素数)とな
る。従って、第1バタフライ演算群では実質的に加減算
のみで処理が実行され、この部分の計算時間を大幅に短
縮できる。また、2組ずつ2段分のバタフライ演算を連
続して実行する処理プログラムにしたことにより、1つ
のバタフライ演算を繰し返し実行する場合に比較して判
断処理を大幅に減少させることができ、計算時間を削減
できる。
次に、第2バタフライ演算群処理部205で実行される
第2バタフライ演算群では、4組のバタフライ演算を連
続して実行する処理プログラムにしたことにより、上述
の場合と同様、計算時間を削減できる。
更に、変形バタフライ演算処理部207で実行される変
形バタフライ演算では、通常のバタフライ演算による出
力のうち半分が計算されず、また、前述したように、第
3繰り返し処理部206が高次端側の高調波成分に対応す
るデータの計算をしないように制御するため、この部分
でも計算量を削減することができる。
一方、本実施例では、4組程度のバタフライ演算を連
続して実行する処理プログラムにすることにより、プロ
グラム容量の増大も一定の範囲内に抑えることができ、
バタフライ演算をまとめる数を目的に応じて変更するこ
とにより、適用条件に応じたプログラム容量と計算速度
を有するFFT演算装置を提供することができる。
なお、第3繰り返し処理部206では、フーリエ変換X8
〜X15の演算処理(第6図破線部に対応)が不要な高次
端側の高調波成分に対応するとして省略されるように制
御が行われたが、これは周波数解析等の特性に応じて変
更可能なように構成することもできる。
また、本実施例では、入力サンプル系列x0〜x31が実
数データである場合についての例を示したが、入力サン
プル系列が複素数データである場合には、第2図の第3
繰り返し処理部206及び変形バタフライ演算処理部207が
動作しないようにしてもよい。
更に、本実施例では、入力サンプル系列x0〜x31に対
してビット逆順による並べ替えの処理を行った後にバタ
フライ演算を行う場合の例を示したが、入力サンプル系
列に対して直接バタフライ演算を行ってフーリエ変換を
計算した後に、最後にビット逆順による並べ替えの処理
を行う場合においては、前述の第1バタフライ演算群
は、最後の2ステージ分のバタフライ演算を行う場合に
適用されることになる。
〔発明の効果〕
本発明によれば、判断処理を大幅に削減することが可
能となって計算時間を短縮できると共に、プログラム容
量の増大も一定の範囲内に抑えることができ、バタフラ
イ演算をまとめる組数を目的に応じて変更することによ
り、適用条件に応じたプログラム容量と計算速度を有す
るFFT演算装置を提供することが可能となる。
特に、第1バタフライ演算群処理手段で実行される第
1バタフライ演算群においては、各入力に乗算される複
素係数は、単純な実数又は虚数となる場合が多いため、
実質的に加減算のみで処理が実行され、この部分の計算
時間を大幅に短縮することが可能となる。また、2組ず
つ2段分のバタフライ演算を連続して実行する処理プロ
グラムにしたことにより、1つのバタフライ演算を繰り
返し実行する場合に比較して判断処理を大幅に減少させ
ることができ、計算時間を削減することが可能となる。
また、第2バタフライ演算群処理手段で実行される第
2バタフライ演算群では、4組のバタフライ演算を連続
して実行する処理プログラムにしたことにより、上述の
場合と同様、計算時間を削減することが可能となる。
更に、変形バタフライ演算処理手段で実行される変形
バタフライ演算では、通常のバタフライ演算による出力
のうち無駄な半分が計算されず、また、第3繰り返し処
理手段が高次端側の高調波成分に対応するデータの計算
をしないように制御できるため、この部分でも計算量を
削減することが可能となる。
【図面の簡単な説明】
第1図は、本発明のブロック図、 第2図は、本発明の実施例の構成図、 第3図は、第1バタフライ演算群処理部の構成図、 第4図は、第2バタフライ演算群処理部の構成図、 第5図は、変形バタフライ演算群処理部の構成図、 第6図は、本実施例によるFFT演算例を示した図、 第7図(a)〜(c)は、FFTの原理説明図、 第8図は、バタフライ演算の説明図、 第9図は、従来例の構成例を示した図である。 101……バタフライ演算群処理手段、 102……繰り返し処理手段.

Claims (4)

    (57)【特許請求の範囲】
  1. 【請求項1】インプレース形FFTアルゴリズムに基づい
    て、複数組の複数段のバタフライ演算によってFFT演算
    を実行するFFT演算方式において、 第1段及び第2段の2組ずつのバタフライ演算を連続し
    て実行する処理プログラムを有し、それを実行するバタ
    フライ演算群処理手段(101)と、 該バタフライ演算群処理手段を繰り返し実行させること
    により前記第1段及び第2段の2組ずつのバタフライ演
    算を実行する繰り返し処理手段(102)と、 を有することを特徴とするループコードFFT演算方式。
  2. 【請求項2】入力サンブル系列に対してビット逆順によ
    る並び替えを行った後に、インプレース形FFTアルゴリ
    ズムに基づいて、複数組の複数段のバタフライ演算によ
    ってFFT演算を実行するFFT演算方式において、 第1段及び第2段の2組ずつのバタフライ演算を連続し
    て実行する処理プログラムを有し、それを実行する第1
    バタフライ演算群処理手段と、 該第1バタフライ演算群処理手段を繰り返し実行させる
    ことにより前記第1段及び第2段のバタフライ演算を実
    行する第1繰り返し処理手段と、 第2段以降の各段の4組のバタフライ演算を連続して実
    行する処理プログラムを有し、それを実行する第2バタ
    フライ演算群処理手段と、 該第2バタフライ演算群処理手段を繰り返し実行させる
    ことにより前記第2段以降の各段のバタフライ演算を実
    行する第2繰り返し処理手段と、 を有することを特徴とするループコードFFT演算方式。
  3. 【請求項3】実数の入力サンプル系列に対してビット逆
    順による並び替えを行った後に、インプレース形FFTア
    ルゴリズムに基づいて、複数組の複数段のバタフライ演
    算によってFFT演算を実行するFFT演算方式において、 第1段及び第2段の2組ずつのバタフライ演算を連続し
    て実行する処理プログラムを有し、それを実行する第1
    バタフライ演算群処理手段と、 該第1バタフライ演算群処理手段を繰り返し実行させる
    ことにより前記第1段及び第2段のバタフライ演算を実
    行する第1繰り返し処理手段と、 第2段以降の最終段を除く各段の4組のバタフライ演算
    を連続して実行する処理プログラムを有し、それを実行
    する第2バタフライ演算群処理手段と、 該第2バタフライ演算群処理手段を繰り返し実行させる
    ことにより前記第2段以降の最終段を除く各段のバタフ
    ライ演算を実行する第2繰り返し処理手段と、 最終段において、前段の2つの出力から1つのフーリエ
    変換出力を演算する変形バタフライ演算を行なう処理プ
    ログラムを有し、それを実行する変形バタフライ演算処
    理手段と、 該変形バタフライ演算処理手段を繰り返し実行させるこ
    とにより最終段の演算を実行する第3繰り返し処理手段
    と、 を有することを特徴とするループコードFFT演算方式。
  4. 【請求項4】前記第3繰り返し処理手段は、前記変形バ
    タフライ演算処理手段に対して、必要なフーリエ変換出
    力に対応する前記変形バタフライ演算のみを実行させる
    ことを特徴とする請求項3記載のループコードFFT演算
    方式。
JP2042642A 1990-02-26 1990-02-26 ループコードfft演算方式 Expired - Lifetime JP2751531B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2042642A JP2751531B2 (ja) 1990-02-26 1990-02-26 ループコードfft演算方式

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2042642A JP2751531B2 (ja) 1990-02-26 1990-02-26 ループコードfft演算方式

Publications (2)

Publication Number Publication Date
JPH03246763A JPH03246763A (ja) 1991-11-05
JP2751531B2 true JP2751531B2 (ja) 1998-05-18

Family

ID=12641672

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2042642A Expired - Lifetime JP2751531B2 (ja) 1990-02-26 1990-02-26 ループコードfft演算方式

Country Status (1)

Country Link
JP (1) JP2751531B2 (ja)

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS6273377A (ja) * 1985-09-27 1987-04-04 Toshiba Corp 演算制御装置

Also Published As

Publication number Publication date
JPH03246763A (ja) 1991-11-05

Similar Documents

Publication Publication Date Title
Sankarayya et al. Algorithms for low power and high speed FIR filter realization using differential coefficients
JPS593790B2 (ja) Fft エンサンシヨリソウチ
JPS6125188B2 (ja)
AU579621B2 (en) Computer and method for discrete transforms
US5491652A (en) Fast Fourier transform address generator
KR100836050B1 (ko) 고속 푸리에 변환 연산 장치
US7792892B2 (en) Memory control method for storing operational result data with the data order changed for further operation
JP4199100B2 (ja) 関数演算方法及び関数演算回路
US7024442B2 (en) Processing apparatus
US9940303B2 (en) Method and apparatus for decimation in frequency FFT butterfly
JPS63167967A (ja) ディジタル信号処理集積回路
Anguraj et al. Design and implementation of modified BCD digit multiplier for digit-by-digit decimal multiplier
US6728742B1 (en) Data storage patterns for fast fourier transforms
Hartwell A procedure for implementing the fast Fourier transform on small computers
JP2751531B2 (ja) ループコードfft演算方式
Lange et al. Reconfigurable multiply-accumulate-based processing element
Kitsakis et al. Parallel memory accessing for FFT architectures
JPH09245109A (ja) 関数変換演算器
TWI798640B (zh) 常數乘法器
Hurchalla Low latency convolution in one dimension via two dimensional convolutions: An intuitive approach
Bodrato et al. Univariate Polynomials with Long Unbalanced Coefficients as Bivariate Balanced Ones: A Toom–Cook Multiplication Approach
JPH0335353A (ja) 離散的コサイン変換装置
KR100189195B1 (ko) 단일화된 시스톨릭어레이 구조에 의한 2차원 dct/dst/dht의 수행장치
RU2709160C1 (ru) Устройство обращения треугольной матрицы
JP2002504250A (ja) データ要素の系列を変換する装置

Legal Events

Date Code Title Description
R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

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

Free format text: PAYMENT UNTIL: 20080227

Year of fee payment: 10

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

Free format text: PAYMENT UNTIL: 20090227

Year of fee payment: 11

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

Free format text: PAYMENT UNTIL: 20100227

Year of fee payment: 12

EXPY Cancellation because of completion of term