JPS62221071A - バタフライ演算回路及びそれを用いた高速フ−リエ変換装置 - Google Patents
バタフライ演算回路及びそれを用いた高速フ−リエ変換装置Info
- Publication number
- JPS62221071A JPS62221071A JP61063097A JP6309786A JPS62221071A JP S62221071 A JPS62221071 A JP S62221071A JP 61063097 A JP61063097 A JP 61063097A JP 6309786 A JP6309786 A JP 6309786A JP S62221071 A JPS62221071 A JP S62221071A
- Authority
- JP
- Japan
- Prior art keywords
- circuit
- addition
- butterfly
- fourier transform
- redundant binary
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000004364 calculation method Methods 0.000 claims description 48
- 238000000034 method Methods 0.000 claims description 11
- 230000008569 process Effects 0.000 claims description 5
- 230000001902 propagating effect Effects 0.000 claims description 2
- 238000007792 addition Methods 0.000 description 32
- 230000000295 complement effect Effects 0.000 description 13
- 238000010586 diagram Methods 0.000 description 9
- 238000006243 chemical reaction Methods 0.000 description 6
- 229910002056 binary alloy Inorganic materials 0.000 description 4
- 230000006870 function Effects 0.000 description 4
- 238000005070 sampling Methods 0.000 description 4
- 230000000694 effects Effects 0.000 description 2
- 238000011156 evaluation Methods 0.000 description 2
- 230000008859 change Effects 0.000 description 1
- 230000000737 periodic effect Effects 0.000 description 1
- 230000000644 propagated effect Effects 0.000 description 1
- 230000008707 rearrangement Effects 0.000 description 1
- 230000009466 transformation Effects 0.000 description 1
Landscapes
- Complex Calculations (AREA)
Abstract
(57)【要約】本公報は電子出願前の出願データであるた
め要約のデータは記録されません。
め要約のデータは記録されません。
Description
本発明は、バタフライ演算回路及びそれを用いた高速フ
ーリエ変換装置に関する。
ーリエ変換装置に関する。
時間領域で定義された関数とそのフーリエ変換によって
得られた周波数領域の関数とが共に周期関数の時は、そ
れらの関数は共に、有限要素の離散的なサンプリング値
系列で表現される。そして、両者の間には、良く知られ
たように、離散的フーリエ変換及び逆変換で定義される
関係が存在する。 高速フーリエ変換(以下rFFTJと言う)は、上記の
離散的フーリエ変換または逆変換を行うに際し、乗算、
加減算の回数を減少させ、変換速度を向上させる方法と
して良く知られている。その演算は、バタフライ演算を
基本演算として多数回繰り返すことにより達成される。 係るバタフライ演算回路をハードウェアとして構成する
ことは知られている。このバタフライ演算回路は、−回
の複素数乗算回路、−回の複素数加算回路及び−回の複
素数減算回路で構成されている。また、係るバタフライ
演算回路を基本回路とするFFTハードウェアも、1つ
のバタフライ演算回路を用いてデータ処理を時系列的に
逐次行う逐次処理型、m役の処理をそれぞれ別のバタフ
ライ演算回路で実行しパイプライン処理が可能なように
縦続接続した縦続処理型、入力点数の半分のバタフライ
演算回路を並列に配し一段分の処理を一度に行うように
した並列処理型及び並列配列と縦続配列とを組合せバタ
フライ演算回路を網目状に構成した2次元並列処理型が
知られている。
得られた周波数領域の関数とが共に周期関数の時は、そ
れらの関数は共に、有限要素の離散的なサンプリング値
系列で表現される。そして、両者の間には、良く知られ
たように、離散的フーリエ変換及び逆変換で定義される
関係が存在する。 高速フーリエ変換(以下rFFTJと言う)は、上記の
離散的フーリエ変換または逆変換を行うに際し、乗算、
加減算の回数を減少させ、変換速度を向上させる方法と
して良く知られている。その演算は、バタフライ演算を
基本演算として多数回繰り返すことにより達成される。 係るバタフライ演算回路をハードウェアとして構成する
ことは知られている。このバタフライ演算回路は、−回
の複素数乗算回路、−回の複素数加算回路及び−回の複
素数減算回路で構成されている。また、係るバタフライ
演算回路を基本回路とするFFTハードウェアも、1つ
のバタフライ演算回路を用いてデータ処理を時系列的に
逐次行う逐次処理型、m役の処理をそれぞれ別のバタフ
ライ演算回路で実行しパイプライン処理が可能なように
縦続接続した縦続処理型、入力点数の半分のバタフライ
演算回路を並列に配し一段分の処理を一度に行うように
した並列処理型及び並列配列と縦続配列とを組合せバタ
フライ演算回路を網目状に構成した2次元並列処理型が
知られている。
上記何れの型のFFTハードウェアであっても、演算方
式には、符号付き2進数または2の補数表現の2進数に
よる方式が採用されている。バタフライ演算回路に於け
る加算器には、リップルキャリア加算器(以下rRCA
Jと略記する)、桁上げ先見加算器(以下rCLAJと
略記する)が一般的に使用されそいる。このRCAは各
桁の構成が同一となるので、IC化のパターン設計が容
易であるが、下位からの桁上げが上位桁に伝搬するため
、計算時間は加算桁数に比例して増加すると言う欠点が
ある。又CLAは、加算時間は加算桁数の対数に比例し
て増加するが、上位桁程回路構成が複雑となり、IC化
の際のパターン設計が複雑になると言う欠点がある。係
る欠点は、そのままバタフライ演算回路、FFT装置の
欠点として存在している。即ち、高速演算を実現するに
は、回路構成が複雑になると言う欠点が存在する。さら
に、FFTをよりリアルタイムに行うため、より高速の
FFT装置の実現が要望されている。 本発明は上記の観点に立ってなされたものであり、その
目的とするところは、バタフライ演算回路、FFT装置
の演算速度を向上させることにある。
式には、符号付き2進数または2の補数表現の2進数に
よる方式が採用されている。バタフライ演算回路に於け
る加算器には、リップルキャリア加算器(以下rRCA
Jと略記する)、桁上げ先見加算器(以下rCLAJと
略記する)が一般的に使用されそいる。このRCAは各
桁の構成が同一となるので、IC化のパターン設計が容
易であるが、下位からの桁上げが上位桁に伝搬するため
、計算時間は加算桁数に比例して増加すると言う欠点が
ある。又CLAは、加算時間は加算桁数の対数に比例し
て増加するが、上位桁程回路構成が複雑となり、IC化
の際のパターン設計が複雑になると言う欠点がある。係
る欠点は、そのままバタフライ演算回路、FFT装置の
欠点として存在している。即ち、高速演算を実現するに
は、回路構成が複雑になると言う欠点が存在する。さら
に、FFTをよりリアルタイムに行うため、より高速の
FFT装置の実現が要望されている。 本発明は上記の観点に立ってなされたものであり、その
目的とするところは、バタフライ演算回路、FFT装置
の演算速度を向上させることにある。
本発明は、入力データに回転因子を掛けたデー夕を出力
する乗算回路と、2つの入力データの和と差を演算して
求められたデータを出力する加減算回路と、からなるバ
タフライ演算回路において、前記乗算回路に於ける部分
積発生回路は、その入力データである被乗数を冗長2進
数として処理し部分積を冗長2進数として出力するもの
であり、5 前記乗算回路に於ける部分積の和の演算
回路と前記加減算回路とを、冗長2進数による加算演算
により桁上げが上位桁に伝搬しない冗長2進加算回路で
構成したことを特徴とする高速フーリエ変換装置用バタ
フライ演算回路と、該バタフライ演算回路を基本回路と
して含む高速フーリエ変換装置である。
する乗算回路と、2つの入力データの和と差を演算して
求められたデータを出力する加減算回路と、からなるバ
タフライ演算回路において、前記乗算回路に於ける部分
積発生回路は、その入力データである被乗数を冗長2進
数として処理し部分積を冗長2進数として出力するもの
であり、5 前記乗算回路に於ける部分積の和の演算
回路と前記加減算回路とを、冗長2進数による加算演算
により桁上げが上位桁に伝搬しない冗長2進加算回路で
構成したことを特徴とする高速フーリエ変換装置用バタ
フライ演算回路と、該バタフライ演算回路を基本回路と
して含む高速フーリエ変換装置である。
バタフライ演算回路は、1回の複素数乗算と1回の複素
数加算と1回の複素数減算を行う。複素数演算は、実際
は、実部と虚部に分けて演算されるので、1つの出力デ
ータの実部を得るのに、信号の流れに沿って1段の実数
乗算と2段の実数加減算を必要とする。また、実数乗算
は部分積の和として求められるため、バタフライ演算回
路は、多くの加算回路(減算は、加算回路で実行出来る
ので、以下、減算回路を含めて加算回路とも言う)を必
要とする。本発明は、バタフライ演算回路の入力、出力
データを全て、冗長2進数で取り扱い、実数乗算、実数
加算を全て、冗長2進数による演算で実行している。冗
長2進数演算による加算回路では、下位桁の桁上げが上
位桁に伝搬しないように、各桁の和を表現することが出
来る。 即ち、各桁の和を中間桁上げと中間和の2桁で表現する
第1の演算と、下位桁からの中間桁上げと中間和との加
算を行う第2の演算との2回の演算で加算が終了するよ
うにする事が出来る。この結果、演算時間は、桁数に関
係なく、係る冗長2進加算回路を構成する素子の論理段
数によって決定される。したがって、加算演算の速度が
向上するため、バタフライ演算及び、FFTの速度が向
上する。また、上記の冗長2進加算回路は、各桁を同一
構成とすることが出来るため、IC化に適している。
数加算と1回の複素数減算を行う。複素数演算は、実際
は、実部と虚部に分けて演算されるので、1つの出力デ
ータの実部を得るのに、信号の流れに沿って1段の実数
乗算と2段の実数加減算を必要とする。また、実数乗算
は部分積の和として求められるため、バタフライ演算回
路は、多くの加算回路(減算は、加算回路で実行出来る
ので、以下、減算回路を含めて加算回路とも言う)を必
要とする。本発明は、バタフライ演算回路の入力、出力
データを全て、冗長2進数で取り扱い、実数乗算、実数
加算を全て、冗長2進数による演算で実行している。冗
長2進数演算による加算回路では、下位桁の桁上げが上
位桁に伝搬しないように、各桁の和を表現することが出
来る。 即ち、各桁の和を中間桁上げと中間和の2桁で表現する
第1の演算と、下位桁からの中間桁上げと中間和との加
算を行う第2の演算との2回の演算で加算が終了するよ
うにする事が出来る。この結果、演算時間は、桁数に関
係なく、係る冗長2進加算回路を構成する素子の論理段
数によって決定される。したがって、加算演算の速度が
向上するため、バタフライ演算及び、FFTの速度が向
上する。また、上記の冗長2進加算回路は、各桁を同一
構成とすることが出来るため、IC化に適している。
以下本発明を具体的な実施例に基づいて説明する。
(1)定義
本実施例のFFT装置は、入力データとして、N点のサ
ンプリング値系列(X、・・・X、)を入力し、フーリ
エ変換して、N点のサンプリング値系列(Y +・・・
Y、)を出力データとして出力する。 入出力データは、2の補数表現の1桁の2進数で表現さ
れている。2の補数表現の1桁の2進数Can−+ a
n−z −an ] e2では、最上位の第1桁は、−
2′−1の重みを、その他の第1桁は2′−1の重みを
有し、a、は(0,1)をとる。FFT装置の内部では
、冗長2進数が用いられている。 1桁の冗長2進数Cah−+ an−x ”’ao )
R2は、ii桁が21−1の重みを有し、a、は(−
1,0゜1)をとる数として定義される。又、冗長2進
数を2進化するため、冗長2進数の1桁は、2進数の2
ビツトで表し、 Ca+ 311= [:as’tadl]x
ンプリング値系列(X、・・・X、)を入力し、フーリ
エ変換して、N点のサンプリング値系列(Y +・・・
Y、)を出力データとして出力する。 入出力データは、2の補数表現の1桁の2進数で表現さ
れている。2の補数表現の1桁の2進数Can−+ a
n−z −an ] e2では、最上位の第1桁は、−
2′−1の重みを、その他の第1桁は2′−1の重みを
有し、a、は(0,1)をとる。FFT装置の内部では
、冗長2進数が用いられている。 1桁の冗長2進数Cah−+ an−x ”’ao )
R2は、ii桁が21−1の重みを有し、a、は(−
1,0゜1)をとる数として定義される。又、冗長2進
数を2進化するため、冗長2進数の1桁は、2進数の2
ビツトで表し、 Ca+ 311= [:as’tadl]x
〔0〕1=
〔00〕2
〔1〕 R□=[01)2
(−1) R,= l”l 01 。
とする。このように2進数で表された冗長2進数を以下
2進化冗長2進数と言う。 離散的フーリエ変換とその逆変換は、次式で定義される
。 回転因子Wを次式で定義する。 W = exp(−j2π/N) バタフライ演算回路は、2つの入力Δ、Bに対し2つの
出力C,Dを出力するものとし、それらの関係は次式で
定義される。 C=A+B−WK D=A−B−WK 更に、ASB、C,Dを複素数とし、それらの実部、虚
部を添字R1■を付けて表せば、それらには、次の関係
式が成立する。 C□=Ai+B++CO3φ+B、SINφC+ =
At −Bi SINφ+BX COSφDア =
A、−BII CO3φ−B! SINφD、=A□
十B、SINφ−B、COSφ但し、w’=cosφ−
j SINφ である。 (2)全体の構成 第1図は、実施例に係るFFT装置の構成を示したブロ
ックダイヤグラムである。1は、N点の入力データを入
力して、所定の並べ換えを行い各データを2進化冗長2
進数に変換してFFT演算部2に出力するデータ入力部
である。2は、バタフライ演算回路を網目状に配列した
FFT演算部である。FFT演算部2は、N点の入力デ
ータからフーリエ変換を行いN点の出力データを生成す
る。3は、FFT演算部2から出力された2進化冗長2
進数の出力データを2の補数表現の2進数に変換し、N
点データを順次出力するデータ出力部である。 (3)データ入力部 データ入力部1は、時空間でのアナログ信号をサンプリ
ングしディジタル信号に変換するA/D変換器11と、
サンプリングのタイミングを付与する入力制御部14と
、N点のディジタルデータを順次所定のアドレスに入力
する入力バッファ12と、入力制御部14からタイミン
グ信号を入力し順次入力バッファ12のアドレスを決定
するカウンタ15と、入力バッファ13に入力された2
進数を2進化冗長2進数に変換する冗長2進変換部13
とから戊る。大力バッファ12は、N点のデータを記憶
するバッファレジスタBX、〜BX8を有している。カ
ウンタ15はN進カウンタであり、入力制御部14から
タイミング信号を入力する毎に更新され、その出力はビ
ットの上位方向を下位方向に逆転して、入力バッファ1
2のアドレス信号とされる。その結果、N点データは、
所定の順序で並べ換えられて、レジスタBX、−Bx8
に記憶される。冗長2進変換部13の1デ一タ単位は、
第2図に示すように構成されている。 2の補数表現の2進数は、最上位桁が一2″−1の重み
を有した冗長2進数と見ることが出来る。即ち、最上位
桁は、符号を反転し、その他の桁はそのまま出力するこ
とで冗長2進数に変換することが出来る。したがって、
レジスタBX、の最上位桁を除(桁は、その出力を2進
化冗長2進数の各桁の下位ピッ)ado〜ad、−2と
し、最上位桁の出力は、上位ビットasn−1とし、他
のビットaSO〜asa−2、adI、−1は、0とす
れば2進化冗長2進数が得られる。 (4)データ出力部 データ出力部3は、2進化冗長2進数を2の補数表現の
2進数に変換する2進変換部31と、バッファレジスタ
B Y +〜B Y Hから成る出力バッファ32と、
出力制御部33、カウンタ34とから成る。2進変換部
31の1デ一タ単位は、第3図に示すように構成されて
いる。冗長2進数を2の補数表現の2進数に変換するに
は、冗長2進数を正の要素から成る2進数と、負の要素
から成る2進数に分割し、それらの2進演算での差を求
めれば良い。2進化冗長2進数の各桁の下位ビット列か
ら成る2進数(a dfi−1〜ado)2は正の要素
から成る2進数を表しており、各桁の上位ビット列から
成る2進数(a lll+−1”” a m。)、は、
負の要素から成る2進数を表している。したがって、上
記2進数を減゛算すれば、2進数に変換する事が出来る
。この時、減算は、2の補数表現の2進数の加算として
演算出来るので、2の補数表現の2進数(Oa dr+
−1〜a do) c2と2の補数表現の2進数(la
wn−t〜N5lI)e2+ (1) c2の加算によ
り、求める事が出来る。だだし、Nsiはa□を反転し
た値である。又、加数と被加数の最上位ビットの、Oと
1は、2の補数表現での符号ビットであり、この時得ら
れる和の最上位桁b1は、符号ビットとなる。 変換後のデータは出力バッファ32に出力され、出力制
御部33により更新されるカウンタ34によって出力バ
ッファ32のアドレスが選択されて、サンプリング値系
列データY1〜YNが順次出力される。 (5)FFT演算部 (a)FFT演算部 FFT演算部2は、バタフライ演算回路をN/2 (=
v)個並列に配置したステージをlog、 N(=U)
段縦続に接続した網目状の構造をしている。その接続関
係は、8点データの場合には、第4図に示すようになる
。この場合には、全体が3ステージで構成され、1ステ
ージ当たり4個のバタフライ演算回路で構成されている
。 (b)バタフライ演算回路 1つのバタフライ演算回路は、第5図に示すように回転
因子Wの乗算を行う乗算回路21と、その出力と入力A
との加算演算を行う加算回路22と、入力Aから乗算回
路21の出力を減する減算回路23と、で構成されてい
る。その結果、入力に関し所定の関係を有した出力が得
られる。第5図の例は、時間間引きの例であるが、2人
力の和と差を求め、差に回転因子を乗するという周波数
間引きで構成しても良い。 バタフライ演算回路の入力、出力データは、複素数であ
るので、実部と虚部とに分けて演算される。具体的には
、第6図に示すように構成される。 入力Δ、Bのデータは、それぞれ、A人カバッファ、B
人カバッファに入力される。24は、回転因子に関する
データを記憶したメモリである。B人カバッファのデー
タと回転因子との乗算の結果、Sl、S2、S3、S4
には、それぞれ、B、CO3−、B、SINφ、BtC
O3φ、B、SINφが出力される。又S5、S6には
、加減算結果、B1CO3φ十B+SINφ、B、CO
Sφ−B*SINφが出力される。更に、S7、S8、
S9、SIOには、加減算の結果、 All+BRCO3φ+BISINφ At−BヮSINφ+B、COSφ A、−BICOSφ−BfSINφ A□十B、SINφ−B、COSφ がそれぞれ、出力され、C出力バッファとD出力バッフ
ァに、Cm 、Ct 、DR、Dtが得られる。 25a〜25dは、上位桁処理回路である。バタフライ
演算回路の冗長2進数の出力は、また、他のバタフライ
演算回路の冗長2進数の入力となる。したがって、入力
、出力の有効桁数を一致させる必要がある。ところが、
冗長2進数で加算すると桁上げ処理を伴うため、1回の
加算毎に桁数が1増加する。したがって、有効桁数を一
定にするため、増加した上位桁を減縮する操作が必要と
なる。上位桁処理回路は、増加した桁数+1桁の上位桁
を1桁に減縮する処理を行うものである。 26a〜26dは、シフタ回路である。入出力の有効桁
数を一致させ演算精度を高めるために、場合により、2
で割った値(1桁下位ヘシフトする)を出力する。係る
場合には、シフタ回路を作動させて1/2のデータを出
力するようにしている。 (b)乗算回路 乗算回路の構成は、第7図に示す様になっている。この
乗算回路は、2ビットブースの方法により、部分積を求
めている。この乗算回路では、被乗数は2進化冗長2進
数で、乗数は2の補数表現の2進数で与えられている。 12桁演算の場合、6個の部分積が発生゛し、それらは
、第1部分積発生回路41〜第6部分積発生回路46で
並列的に発生される。そして、各部分積は、2個づつ3
個の部分積加算回路(51〜53)で並列的に一次加算
される。部分積加算回路51と52の加算結果は、部分
積加算回路61で2次加算される。次に、部分積加算回
路53と61の出力が部分積加算回路71で3次加算さ
れる。この時、上位から2桁は、冗長2進数による加算
を行った為に発生した桁であり、上位から3桁が1桁に
変換されて、出力される。 部分積発生回路は、第8図に具体的に示されている。A
は乗数の解読部である。第1部分積では、−2C2!、
l+ Cx□+C21−1が計算される。この結果の採
り得る値は、(−2,−1,0,1,2)である。0の
時は、0の出力、1の時は、被乗数をそのまま出力、2
の時は、被乗数を上位方向に1桁シフトして出力、−1
の時は、被乗数の各ビットのレベルを反転して出力し、
−2の時は、被乗数を上位方向に2桁シフトしてさらに
それを反転して出力する事により部分積が発生される。 図には、第3部分積発生回路が図示されている。乗数の
第5.6.7ビツトC,、Cs 、C,が解読され、−
2の時は、F34が高レベルとなり、被乗数(I 、、
、 I 、p)が(P dp+l + P sp+1
)として出力される。2の時は、F1aが高レベルとな
り、被乗数(I lip+ I 、、)が(P sp+
I r P dPや、)として出力される。また、−
1の時は、F32が高レベルとなり、被乗数(I −P
、 I dp)が(PdP、Psp)として出力される
。又、1の時は、F31が高レベルとなり、被乗数(I
−P、 I 、−)が(P、、。 P、、)として出力される。 各部分積の出力端子は、第7図に示す様に桁合わせを行
い、各桁を横方向に配列した構造になっている。 係る部分積は、冗長2進加算器により、本状に順次加算
される。本例では加算器は3役に構成されている。 (c)加算回路 加算回路は、2進化冗長2進数の加算を行うものであり
、その1桁の構成が第9図、第10図に示されている。 第10図は、第9図の論理回路を更に簡約したものであ
る。 冗長2進数による加算では、冗長度を利用して、下位桁
からの桁上げが伝搬しないように構成する事が出来る。 したがって、加算は各桁の和(以下この和を2桁で表し
、上位桁を「中間桁上げ」、下位桁を「中間和」と言う
)を求める第1ステツプと、中間和と下位桁の中間桁上
げとの和を各桁で計算する第2ステツプとの2段階で求
める事が出来る。即ち、第2ステツプの演算の時、さら
に桁上げが生じないように、第1ステツプでの中間和と
中間桁上げの表現を工夫している。発生される中間和と
中間桁上げを第1表に示す。1.3.4.6の場合には
、中間桁上げと中間和の表現方法は一意的であるが、下
位桁からどの様な桁上げがあっても、第2ステツプの演
算で桁上げが発生することはない。2と5の場合は、中
間桁上げと中間和の表現方法は一意的ではないが、表現
方法によっては、第2ステツプの演算で、さらに、桁上
げが発生する場合がある。ところが、下位桁の状態を判
別し、その状態に応じて、表のように表現すれば、第2
ステツプの演算で桁上げが発生することはない。即ち、
2.5の場合、下位桁から−1の桁上げが発生する可能
性がある場合には、中間和を1にしておき、下位桁から
1の桁上げが発生する可能性がある時には、中間和を−
1とすることで、第2ステツプの演算で桁上げが発生し
ないようにすることが出来る。 第9図は、係る演算を実行するための第1桁目の回路で
ある。S!1は、1桁下位の加数、被加数の状態を示す
ものであり、少なくとも一方が負の時、低レベルとなる
信号である。被加数は(ai1+adl)であり、加数
は、(b@+、 bdt)であり、加算結果は、(Za
□+Zdf)である。いずれも、2進化冗長2進数であ
る。又、(’: at、 = a□)は、中間桁上げを
2進化冗長2進数(負論理)で表現したものである。 係る1桁の加算器を第11図のように接続すれば、N桁
の冗長2進加算器が構成出来る。 (6)評価 1個のバタフライ演算回路に於けるトランジスタ素子数
と論理段数を2の補数表現の2進数方式と、冗長2進数
方式で対比した結果を第2表に示す。トランジスタはC
MOSで評価し、第6図の回路で評価した。冗長2進方
式は、ビット数が増えても、論理段数が変化しないと言
う特徴があり、ビット数に拘わらず、演算速度を一定に
することが出来る。1024点データ入力の場合には、
バタフライ演算回路は10段必要になり、FFT演算部
を380段の論理段数で構成出来る。又出力の2進数変
換部の8段を含めて、全体で388段で装置を構成出来
る。係る段数は、16ビツトで2進数方式の172以下
にする事が出来、したがって、変換速度を172以下に
する事が出来る。 (7)他の実施例 第12図にその構成が示されている。FFT演算部2は
、N/2個の1段の並列配列のバタフライ演算回路B、
〜B H/2で構成されている。1段の処理の終了後、
N点の出力データはシフタ回路8、マルチプレクサ9を
介して、FFT演算回路に再度入力する。係る演算を所
定段数分実行してFFTが行われる。シフタ回路8は、
各段での演算のための入力データの組合せを制御するた
めの回路であり、その具体的な1ビツトの構成が第13
図に示されている。図は入力データ点数64の場合であ
る。バタフライ演算回路の2出力の一方は、必ず、同一
演算回路の一方に入力させることが出来るので、シフタ
回路の入力出力端子数は32個である。制御信号C5〜
C6が、それぞれ、各段の演算の終了後に入力され、そ
の段の出力データが、次の段の入力データとなるように
ゲートを切り換えてデータの流れが制御されている。 係る構成により、バタフライ演算回路数を入力データ点
数の半分に減少させることが出来る。
2進化冗長2進数と言う。 離散的フーリエ変換とその逆変換は、次式で定義される
。 回転因子Wを次式で定義する。 W = exp(−j2π/N) バタフライ演算回路は、2つの入力Δ、Bに対し2つの
出力C,Dを出力するものとし、それらの関係は次式で
定義される。 C=A+B−WK D=A−B−WK 更に、ASB、C,Dを複素数とし、それらの実部、虚
部を添字R1■を付けて表せば、それらには、次の関係
式が成立する。 C□=Ai+B++CO3φ+B、SINφC+ =
At −Bi SINφ+BX COSφDア =
A、−BII CO3φ−B! SINφD、=A□
十B、SINφ−B、COSφ但し、w’=cosφ−
j SINφ である。 (2)全体の構成 第1図は、実施例に係るFFT装置の構成を示したブロ
ックダイヤグラムである。1は、N点の入力データを入
力して、所定の並べ換えを行い各データを2進化冗長2
進数に変換してFFT演算部2に出力するデータ入力部
である。2は、バタフライ演算回路を網目状に配列した
FFT演算部である。FFT演算部2は、N点の入力デ
ータからフーリエ変換を行いN点の出力データを生成す
る。3は、FFT演算部2から出力された2進化冗長2
進数の出力データを2の補数表現の2進数に変換し、N
点データを順次出力するデータ出力部である。 (3)データ入力部 データ入力部1は、時空間でのアナログ信号をサンプリ
ングしディジタル信号に変換するA/D変換器11と、
サンプリングのタイミングを付与する入力制御部14と
、N点のディジタルデータを順次所定のアドレスに入力
する入力バッファ12と、入力制御部14からタイミン
グ信号を入力し順次入力バッファ12のアドレスを決定
するカウンタ15と、入力バッファ13に入力された2
進数を2進化冗長2進数に変換する冗長2進変換部13
とから戊る。大力バッファ12は、N点のデータを記憶
するバッファレジスタBX、〜BX8を有している。カ
ウンタ15はN進カウンタであり、入力制御部14から
タイミング信号を入力する毎に更新され、その出力はビ
ットの上位方向を下位方向に逆転して、入力バッファ1
2のアドレス信号とされる。その結果、N点データは、
所定の順序で並べ換えられて、レジスタBX、−Bx8
に記憶される。冗長2進変換部13の1デ一タ単位は、
第2図に示すように構成されている。 2の補数表現の2進数は、最上位桁が一2″−1の重み
を有した冗長2進数と見ることが出来る。即ち、最上位
桁は、符号を反転し、その他の桁はそのまま出力するこ
とで冗長2進数に変換することが出来る。したがって、
レジスタBX、の最上位桁を除(桁は、その出力を2進
化冗長2進数の各桁の下位ピッ)ado〜ad、−2と
し、最上位桁の出力は、上位ビットasn−1とし、他
のビットaSO〜asa−2、adI、−1は、0とす
れば2進化冗長2進数が得られる。 (4)データ出力部 データ出力部3は、2進化冗長2進数を2の補数表現の
2進数に変換する2進変換部31と、バッファレジスタ
B Y +〜B Y Hから成る出力バッファ32と、
出力制御部33、カウンタ34とから成る。2進変換部
31の1デ一タ単位は、第3図に示すように構成されて
いる。冗長2進数を2の補数表現の2進数に変換するに
は、冗長2進数を正の要素から成る2進数と、負の要素
から成る2進数に分割し、それらの2進演算での差を求
めれば良い。2進化冗長2進数の各桁の下位ビット列か
ら成る2進数(a dfi−1〜ado)2は正の要素
から成る2進数を表しており、各桁の上位ビット列から
成る2進数(a lll+−1”” a m。)、は、
負の要素から成る2進数を表している。したがって、上
記2進数を減゛算すれば、2進数に変換する事が出来る
。この時、減算は、2の補数表現の2進数の加算として
演算出来るので、2の補数表現の2進数(Oa dr+
−1〜a do) c2と2の補数表現の2進数(la
wn−t〜N5lI)e2+ (1) c2の加算によ
り、求める事が出来る。だだし、Nsiはa□を反転し
た値である。又、加数と被加数の最上位ビットの、Oと
1は、2の補数表現での符号ビットであり、この時得ら
れる和の最上位桁b1は、符号ビットとなる。 変換後のデータは出力バッファ32に出力され、出力制
御部33により更新されるカウンタ34によって出力バ
ッファ32のアドレスが選択されて、サンプリング値系
列データY1〜YNが順次出力される。 (5)FFT演算部 (a)FFT演算部 FFT演算部2は、バタフライ演算回路をN/2 (=
v)個並列に配置したステージをlog、 N(=U)
段縦続に接続した網目状の構造をしている。その接続関
係は、8点データの場合には、第4図に示すようになる
。この場合には、全体が3ステージで構成され、1ステ
ージ当たり4個のバタフライ演算回路で構成されている
。 (b)バタフライ演算回路 1つのバタフライ演算回路は、第5図に示すように回転
因子Wの乗算を行う乗算回路21と、その出力と入力A
との加算演算を行う加算回路22と、入力Aから乗算回
路21の出力を減する減算回路23と、で構成されてい
る。その結果、入力に関し所定の関係を有した出力が得
られる。第5図の例は、時間間引きの例であるが、2人
力の和と差を求め、差に回転因子を乗するという周波数
間引きで構成しても良い。 バタフライ演算回路の入力、出力データは、複素数であ
るので、実部と虚部とに分けて演算される。具体的には
、第6図に示すように構成される。 入力Δ、Bのデータは、それぞれ、A人カバッファ、B
人カバッファに入力される。24は、回転因子に関する
データを記憶したメモリである。B人カバッファのデー
タと回転因子との乗算の結果、Sl、S2、S3、S4
には、それぞれ、B、CO3−、B、SINφ、BtC
O3φ、B、SINφが出力される。又S5、S6には
、加減算結果、B1CO3φ十B+SINφ、B、CO
Sφ−B*SINφが出力される。更に、S7、S8、
S9、SIOには、加減算の結果、 All+BRCO3φ+BISINφ At−BヮSINφ+B、COSφ A、−BICOSφ−BfSINφ A□十B、SINφ−B、COSφ がそれぞれ、出力され、C出力バッファとD出力バッフ
ァに、Cm 、Ct 、DR、Dtが得られる。 25a〜25dは、上位桁処理回路である。バタフライ
演算回路の冗長2進数の出力は、また、他のバタフライ
演算回路の冗長2進数の入力となる。したがって、入力
、出力の有効桁数を一致させる必要がある。ところが、
冗長2進数で加算すると桁上げ処理を伴うため、1回の
加算毎に桁数が1増加する。したがって、有効桁数を一
定にするため、増加した上位桁を減縮する操作が必要と
なる。上位桁処理回路は、増加した桁数+1桁の上位桁
を1桁に減縮する処理を行うものである。 26a〜26dは、シフタ回路である。入出力の有効桁
数を一致させ演算精度を高めるために、場合により、2
で割った値(1桁下位ヘシフトする)を出力する。係る
場合には、シフタ回路を作動させて1/2のデータを出
力するようにしている。 (b)乗算回路 乗算回路の構成は、第7図に示す様になっている。この
乗算回路は、2ビットブースの方法により、部分積を求
めている。この乗算回路では、被乗数は2進化冗長2進
数で、乗数は2の補数表現の2進数で与えられている。 12桁演算の場合、6個の部分積が発生゛し、それらは
、第1部分積発生回路41〜第6部分積発生回路46で
並列的に発生される。そして、各部分積は、2個づつ3
個の部分積加算回路(51〜53)で並列的に一次加算
される。部分積加算回路51と52の加算結果は、部分
積加算回路61で2次加算される。次に、部分積加算回
路53と61の出力が部分積加算回路71で3次加算さ
れる。この時、上位から2桁は、冗長2進数による加算
を行った為に発生した桁であり、上位から3桁が1桁に
変換されて、出力される。 部分積発生回路は、第8図に具体的に示されている。A
は乗数の解読部である。第1部分積では、−2C2!、
l+ Cx□+C21−1が計算される。この結果の採
り得る値は、(−2,−1,0,1,2)である。0の
時は、0の出力、1の時は、被乗数をそのまま出力、2
の時は、被乗数を上位方向に1桁シフトして出力、−1
の時は、被乗数の各ビットのレベルを反転して出力し、
−2の時は、被乗数を上位方向に2桁シフトしてさらに
それを反転して出力する事により部分積が発生される。 図には、第3部分積発生回路が図示されている。乗数の
第5.6.7ビツトC,、Cs 、C,が解読され、−
2の時は、F34が高レベルとなり、被乗数(I 、、
、 I 、p)が(P dp+l + P sp+1
)として出力される。2の時は、F1aが高レベルとな
り、被乗数(I lip+ I 、、)が(P sp+
I r P dPや、)として出力される。また、−
1の時は、F32が高レベルとなり、被乗数(I −P
、 I dp)が(PdP、Psp)として出力される
。又、1の時は、F31が高レベルとなり、被乗数(I
−P、 I 、−)が(P、、。 P、、)として出力される。 各部分積の出力端子は、第7図に示す様に桁合わせを行
い、各桁を横方向に配列した構造になっている。 係る部分積は、冗長2進加算器により、本状に順次加算
される。本例では加算器は3役に構成されている。 (c)加算回路 加算回路は、2進化冗長2進数の加算を行うものであり
、その1桁の構成が第9図、第10図に示されている。 第10図は、第9図の論理回路を更に簡約したものであ
る。 冗長2進数による加算では、冗長度を利用して、下位桁
からの桁上げが伝搬しないように構成する事が出来る。 したがって、加算は各桁の和(以下この和を2桁で表し
、上位桁を「中間桁上げ」、下位桁を「中間和」と言う
)を求める第1ステツプと、中間和と下位桁の中間桁上
げとの和を各桁で計算する第2ステツプとの2段階で求
める事が出来る。即ち、第2ステツプの演算の時、さら
に桁上げが生じないように、第1ステツプでの中間和と
中間桁上げの表現を工夫している。発生される中間和と
中間桁上げを第1表に示す。1.3.4.6の場合には
、中間桁上げと中間和の表現方法は一意的であるが、下
位桁からどの様な桁上げがあっても、第2ステツプの演
算で桁上げが発生することはない。2と5の場合は、中
間桁上げと中間和の表現方法は一意的ではないが、表現
方法によっては、第2ステツプの演算で、さらに、桁上
げが発生する場合がある。ところが、下位桁の状態を判
別し、その状態に応じて、表のように表現すれば、第2
ステツプの演算で桁上げが発生することはない。即ち、
2.5の場合、下位桁から−1の桁上げが発生する可能
性がある場合には、中間和を1にしておき、下位桁から
1の桁上げが発生する可能性がある時には、中間和を−
1とすることで、第2ステツプの演算で桁上げが発生し
ないようにすることが出来る。 第9図は、係る演算を実行するための第1桁目の回路で
ある。S!1は、1桁下位の加数、被加数の状態を示す
ものであり、少なくとも一方が負の時、低レベルとなる
信号である。被加数は(ai1+adl)であり、加数
は、(b@+、 bdt)であり、加算結果は、(Za
□+Zdf)である。いずれも、2進化冗長2進数であ
る。又、(’: at、 = a□)は、中間桁上げを
2進化冗長2進数(負論理)で表現したものである。 係る1桁の加算器を第11図のように接続すれば、N桁
の冗長2進加算器が構成出来る。 (6)評価 1個のバタフライ演算回路に於けるトランジスタ素子数
と論理段数を2の補数表現の2進数方式と、冗長2進数
方式で対比した結果を第2表に示す。トランジスタはC
MOSで評価し、第6図の回路で評価した。冗長2進方
式は、ビット数が増えても、論理段数が変化しないと言
う特徴があり、ビット数に拘わらず、演算速度を一定に
することが出来る。1024点データ入力の場合には、
バタフライ演算回路は10段必要になり、FFT演算部
を380段の論理段数で構成出来る。又出力の2進数変
換部の8段を含めて、全体で388段で装置を構成出来
る。係る段数は、16ビツトで2進数方式の172以下
にする事が出来、したがって、変換速度を172以下に
する事が出来る。 (7)他の実施例 第12図にその構成が示されている。FFT演算部2は
、N/2個の1段の並列配列のバタフライ演算回路B、
〜B H/2で構成されている。1段の処理の終了後、
N点の出力データはシフタ回路8、マルチプレクサ9を
介して、FFT演算回路に再度入力する。係る演算を所
定段数分実行してFFTが行われる。シフタ回路8は、
各段での演算のための入力データの組合せを制御するた
めの回路であり、その具体的な1ビツトの構成が第13
図に示されている。図は入力データ点数64の場合であ
る。バタフライ演算回路の2出力の一方は、必ず、同一
演算回路の一方に入力させることが出来るので、シフタ
回路の入力出力端子数は32個である。制御信号C5〜
C6が、それぞれ、各段の演算の終了後に入力され、そ
の段の出力データが、次の段の入力データとなるように
ゲートを切り換えてデータの流れが制御されている。 係る構成により、バタフライ演算回路数を入力データ点
数の半分に減少させることが出来る。
本発明は、FFTのバタフライ演算回路における加算回
路を、桁上げが上位に伝搬しない冗長2進数による加算
回路で構成したことを特徴とするものである。したがっ
て、桁数に関係なく、加算時間を一定の値に減少させる
事が出来、バタフライ演算及びFFTを高速化する事が
出来る。
路を、桁上げが上位に伝搬しない冗長2進数による加算
回路で構成したことを特徴とするものである。したがっ
て、桁数に関係なく、加算時間を一定の値に減少させる
事が出来、バタフライ演算及びFFTを高速化する事が
出来る。
第1図は、本発明の具体的な一実施例に係るFFT装置
の構成を示したブロックダイヤグラム、第2図、第3図
は、それぞれ、冗長2進変換部、2進変換部の構成を示
したブロックダイヤグラム、第4図は、FFT演算部の
構成を示したブロックダイヤグラム、第5図、第6図は
、バタフライ演算回路の構成を示したブロックダイヤグ
ラム、第7図は、乗算回路の構成を示したブロックダイ
ヤグラム、第8図は、部分積発生回路の構成を示した電
気回路図、第9図、第10図は、加算回路の1桁の構成
を示した電気回路図、第11図は、加算回路の構成を示
したブロックダイヤグラム、第12図は、他の実施例に
係るFFT装置の構成を示したブロックダイヤグラム、
第13図は、その装置で使用されるシフタ回路の構成を
示した電気回路図である。
の構成を示したブロックダイヤグラム、第2図、第3図
は、それぞれ、冗長2進変換部、2進変換部の構成を示
したブロックダイヤグラム、第4図は、FFT演算部の
構成を示したブロックダイヤグラム、第5図、第6図は
、バタフライ演算回路の構成を示したブロックダイヤグ
ラム、第7図は、乗算回路の構成を示したブロックダイ
ヤグラム、第8図は、部分積発生回路の構成を示した電
気回路図、第9図、第10図は、加算回路の1桁の構成
を示した電気回路図、第11図は、加算回路の構成を示
したブロックダイヤグラム、第12図は、他の実施例に
係るFFT装置の構成を示したブロックダイヤグラム、
第13図は、その装置で使用されるシフタ回路の構成を
示した電気回路図である。
Claims (8)
- (1)入力データに回転因子を掛けたデータを出力する
乗算回路と、2つの入力データの和と差を演算して求め
られたデータを出力する加減算回路と、からなるバタフ
ライ演算回路において、前記乗算回路に於ける部分積発
生回路は、その入力データである被乗数を冗長2進数と
して処理し部分積を冗長2進数として出力するものであ
り、前記乗算回路に於ける部分積の和の演算回路と前記
加減算回路とを、冗長2進数による加算演算により桁上
げが上位桁に伝搬しない冗長2進加算回路で構成したこ
とを特徴とする高速フーリエ変換装置用バタフライ演算
回路。 - (2)前記乗算回路は、各部分積が並列的に求められ、
その部分積の和を2つずつ木状接続により求める冗長2
進加算木を用いた組合せ回路による並列乗算回路で構成
されていることを特徴とする特許請求の範囲第1項記載
の高速フーリエ変換装置用バタフライ演算回路。 - (3)前記乗算回路は、乗数を基数4の拡張SD(サイ
ンド ディジィト)表現に変換し、その各桁毎に部分積
を求める2ビットブースの方法を用いた乗算回路で構成
されていることを特徴とする特許請求の範囲第2項記載
の高速フーリエ変換装置用バタフライ演算回路。 - (4)入力データに回転因子を掛けたデータを出力する
乗算回路と、2つの入力データの和と差を演算して求め
られたデータを出力する加減算回路と、からなるバタフ
ライ演算回路を基本演算回路とする高速フーリエ変換装
置において、 前記乗算回路に於ける部分積発生回路は、その入力デー
タである被乗数を冗長2進数として処理し部分積を冗長
2進数として出力するものであり、前記乗算回路に於け
る部分積の和の演算回路と前記加減算回路とを、冗長2
進数による加算演算により桁上げが上位桁に伝搬しない
冗長2進加算回路で構成したことを特徴とする高速フー
リエ変換装置。 - (5)バタフライ演算回路の配列は、N点の入力データ
に対し、N/2のバタフライ回路を並列に設けた並列処
理回路がlog_2N段所定の接続関係で縦続に接続さ
れた網目状に構成されていることを特徴とする特許請求
の範囲第4項記載の高速フーリエ変換装置。 - (6)N点の入力データに対し、N/2のバタフライ演
算回路を並列に設けた並列処理回路と、該並列処理回路
のNの出力データを、その順序を各処理ステップ毎に異
なる所定の論理で並べ換えて、前記並列処理回路に入力
する処理をlog_2Nステップ数だけ繰り返す制御手
段とを有することを特徴とする特許請求の範囲第4項記
載の高速フーリエ変換装置。 - (7)N点の入力データを冗長2進数に変換する冗長2
進変換部を有することを特徴とする特許請求の範囲第4
項記載の高速フーリエ変換装置。 - (8)フーリエ変換後のN点のデータを2進数に変換す
る2進変換部を有することを特徴とする特許請求の範囲
第4項記載の高速フーリエ変換装置。
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP61063097A JPS62221071A (ja) | 1986-03-20 | 1986-03-20 | バタフライ演算回路及びそれを用いた高速フ−リエ変換装置 |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP61063097A JPS62221071A (ja) | 1986-03-20 | 1986-03-20 | バタフライ演算回路及びそれを用いた高速フ−リエ変換装置 |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| JPS62221071A true JPS62221071A (ja) | 1987-09-29 |
Family
ID=13219454
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP61063097A Pending JPS62221071A (ja) | 1986-03-20 | 1986-03-20 | バタフライ演算回路及びそれを用いた高速フ−リエ変換装置 |
Country Status (1)
| Country | Link |
|---|---|
| JP (1) | JPS62221071A (ja) |
Cited By (3)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JPH01195574A (ja) * | 1988-01-29 | 1989-08-07 | Nec Corp | ディジタル信号処理装置 |
| JPH01288967A (ja) * | 1988-05-16 | 1989-11-21 | Nec Corp | パイプライン信号処理回路 |
| US11604852B2 (en) | 2017-12-27 | 2023-03-14 | Nec Corporation | Signal processing apparatus, method, program, and recording medium |
-
1986
- 1986-03-20 JP JP61063097A patent/JPS62221071A/ja active Pending
Cited By (3)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JPH01195574A (ja) * | 1988-01-29 | 1989-08-07 | Nec Corp | ディジタル信号処理装置 |
| JPH01288967A (ja) * | 1988-05-16 | 1989-11-21 | Nec Corp | パイプライン信号処理回路 |
| US11604852B2 (en) | 2017-12-27 | 2023-03-14 | Nec Corporation | Signal processing apparatus, method, program, and recording medium |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| Timarchi et al. | Arithmetic circuits of redundant SUT-RNS | |
| Gadakh et al. | Design and optimization of 16× 16 Bit multiplier using Vedic mathematics | |
| Jain et al. | Binary division algorithm and high speed deconvolution algorithm (Based on Ancient Indian Vedic Mathematics) | |
| Dhole et al. | Design and FPGA implementation of 4× 4 Vedic multiplier using different architectures | |
| JPH08161149A (ja) | シフト装置 | |
| Buddhe et al. | Design and verification of dadda algorithm based binary floating point multiplier | |
| JP3660075B2 (ja) | 除算装置 | |
| Putra et al. | Optimized hardware algorithm for integer cube root calculation and its efficient architecture | |
| US4873660A (en) | Arithmetic processor using redundant signed digit arithmetic | |
| JPH01195574A (ja) | ディジタル信号処理装置 | |
| Chugh et al. | Design and implementation of a high-Performance 4-bit vedic multiplier using a novel 5-bit adder in 90nm technology | |
| Gorodecky et al. | Efficient hardware operations for the residue number system by Boolean minimization | |
| White | A fast digital computer method for recursive estimation of the mean | |
| Dhivya et al. | A high speed area efficient FIR filter using floating point dadda algorithm | |
| Abid et al. | Modified operand decomposition multiplication for high performance parallel multipliers | |
| Bashagha et al. | A new digit-serial divider architecture | |
| Kim et al. | Digit-serial modular multiplication using skew-tolerant domino CMOS | |
| Sreelakshmi et al. | Efficient realization of vinculum vedic bcd multipliers for high speed applications | |
| Bello et al. | An Efficient CRT Based Reverse Converter for {2^ 2n+ 1-1, 2^ n-1, 2^ 2n-1} Moduli set | |
| RU2839987C1 (ru) | Умножитель чисел по произвольному модулю | |
| Molahosseini et al. | A new design of reverse converter for a three-moduli set | |
| da Costa et al. | Gray encoded fixed-point LMS adaptive filter architecture for the harmonics power line interference cancelling | |
| Shrivastava et al. | Implementation of Radix-2 Booth Multiplier and Comparison with Radix-4 Encoder Booth Multiplier | |
| Gustafsson et al. | Basic arithmetic circuits | |
| Chaudhary et al. | Design of 64 bit High Speed Vedic Multiplier |