JPH0516618B2 - - Google Patents

Info

Publication number
JPH0516618B2
JPH0516618B2 JP58125345A JP12534583A JPH0516618B2 JP H0516618 B2 JPH0516618 B2 JP H0516618B2 JP 58125345 A JP58125345 A JP 58125345A JP 12534583 A JP12534583 A JP 12534583A JP H0516618 B2 JPH0516618 B2 JP H0516618B2
Authority
JP
Japan
Prior art keywords
data
address
register
butterfly
stored
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
JP58125345A
Other languages
Japanese (ja)
Other versions
JPS6017563A (en
Inventor
Ryohei Kato
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.)
Sony Corp
Original Assignee
Sony Corp
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 Sony Corp filed Critical Sony Corp
Priority to JP58125345A priority Critical patent/JPS6017563A/en
Publication of JPS6017563A publication Critical patent/JPS6017563A/en
Publication of JPH0516618B2 publication Critical patent/JPH0516618B2/ja
Granted legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/38Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
    • G06F7/48Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
    • G06F7/544Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices for evaluating functions by calculation
    • G06F7/5443Sum of products

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Computational Mathematics (AREA)
  • Computing Systems (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Pure & Applied Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Complex Calculations (AREA)

Description

【発明の詳細な説明】[Detailed description of the invention]

〔産業上の利用分野〕 本発明は、たとえば高速フーリエ変換等により
デイジタルサンプル値を演算処理する場合に使用
されるバタフライ演算回路に関し、特にバタフラ
イ演算されるデイジタルデータを記憶しているデ
ータメモリのアドレスと、バタフライ演算により
得られるデイジタルデータを記憶する上記データ
メモリのアドレスとが等しいバタフライ演算回路
に関する。 〔背景技術とその問題点〕 デイジタルサンプル値をたとえば高速フーリエ
変換(FFT)により演算処理しようとする場合
に、バタフライ演算回路が使用される。デイジタ
ルデータx1、x2のバタフライ演算は、係数をkと
し、演算結果をデイジタルデータy1、y2とすれ
ば、 y1=x1+kx2 y2=x1−kx2 ……(1) と表わすことができる。また、上記バタフライ演
算回路において、扱う数値を固定小数点方式で表
わし、また負数を2の補数で表わすようにする
と、該演算回路内の数値Nは、−1≦N<1の変
域を持つ。このため、バタフライ演算の結果得ら
れるデイジタルデータy1、y2が、オーバーフロー
する場合には、次式に示されるように数値を1/2
倍したのちバタフライ演算が行なわれる。 y1=1/2x1+k/2x2 y2=1/2x1−k/2x2 ……(2) 上記バタフライ演算回路によつて、多数のバタ
フライ演算を高速に実行処理しようとする場合、
いわゆるパイプライン処理が行なわれる。このパ
イプライン処理は、1つのバタフライ演算の演算
終了を待つてつぎのバタフライ演算を開始するの
ではなく、実行されているバタフライ演算の演算
中につぎのバタフライ演算を開始するというよう
に複数の演算を並列的に処理する処理方法であ
る。 上記バタフライ演算回路には、たとえば、乗算
器が2個、加減算器が2個、(1)式の演算について
はk、または(2)式の演算については1/2およびk/
2を記憶する係数メモリが1個、またx1、x2およ
びy1、y2を記憶するデータメモリが2個、さらに
係数メモリおよびデータメモリのアドレスを計算
するアドレス生成部が1台設けられている。ここ
で、乗算器、加減算器およびデータメモリが2個
設けられているのは、デイジタルデータx1、x2
複素数であり、実部および虚部についてそれぞれ
演算が行なわれるためである。 このバタフライ演算回路によつて、(1)式または
(2)式のバタフライ演算をパイプライン処理により
最大限並列的に実行した場合は、メモリへのアク
セス回数を考えないなら、1つのバタフライ演算
が開始されてから4ステツプ後につぎのバタフラ
イ演算を行なうことができる。すなわち、この場
合の信号処理効率は、1つのバタフライ演算を実
質上4ステツプで実行可能なものとなつている。 ところが、1つのバタフライ演算を行なうため
の係数メモリおよびデータメモリへのアクセス回
数を考えると、(1)式または(2)式の演算の場合、k
またはk/2を2度指定するために2回、またx1
x2、y1、y2の指定に4回、合計で6回アクセスす
る必要がある。ここで、一般に係数kはk=cosθ
−isinθが使われ、cosθまたはcosθ/2、sinθまた
は sinθ/2のアクセスに2回、また複素数であるx1、 x2、y1、y2の実部および虚部は異なるメモリの同
じアドレスに記憶されるようになつているため4
回のアクセスが行なわれる。 このように、係数メモリに2回、データメモリ
に4回のアクセスを行なうために、上記アドレス
生成部では、1つのバタフライ演算あたり、6ス
テツプを要してアドレス計算を行なつている。こ
のため、アドレス生成部が1台しか設けられてい
ない上記バタフライ演算回路では、メモリへのア
クセスを考えると、信号処理効率が1つのバタフ
ライ演算あたり6ステツプに落ちてしまい、6ス
テツプ待たなければつぎのバタフライ演算を行な
うことができない。 したがつて、信号処理効率を1つのバタフライ
演算あたり4ステツプに速めるためには、アドレ
ス生成部を2台設ける必要がある。このように、
アドレス生成部を1台増やすことは、必要なIC
(集積回路)数が非常に増加したり、マイクロプ
ログラムのインストラクシヨンが増加するという
欠点がある。 このように、従来のバタフライ演算回路におい
ては、信号処理率が低く、また効率を上げるため
に、素子数を増大させたり、マイクロプログラム
のインストラクシヨンを増大させなければならな
いという難点があつた。 〔発明の目的〕 そこで、本発明はこのような実情に鑑み提案さ
れたものであり、アドレス生成部を1台追加する
ことなく、バタフライ演算を高速に実行可能なバ
タフライ演算回路を提供することを目的とする。 〔発明の概要〕 この目的を達成するために、本発明のバタフラ
イ演算回路は、デイジタルサンプル値に基づくデ
イジタルデータx1、x2等を記憶するデータメモリ
と、係数kまたは係数1/2およびk/2を記憶する
係数メモリと、上記データメモリおよび上記係数
メモリのアドレスを示すアドレスデータを演算に
より求めるアドレス生成部と、上記デイジタルデ
ータに対する乗算および加減算を行なう乗算器お
よび加減算器とを有し、上記データメモリに記憶
された少なくとも一対の上記デイジタルデータ
x1、x2をバタフライ演算(y1=x1+kx2、y2=x1
−kx2、またはy1=x1/2+kx2/2,y2=x1
2−kx2/2)して演算結果であるデイジタルデ
ータy1、y2をそれぞれ求めるバタフライ演算回路
において、上記アドレス生成部にて生成された上
記アドレスデータを記憶し、記憶した上記アドレ
スデータを選択的に上記データメモリにアドレス
データとして供給するアドレスデータ記憶部を備
え、上記アドレスデータ記憶部は、上記データメ
モリから上記デイジタルデータx1、x2が読み出さ
れるときのアドレスデータを記憶保持し、演算結
果である上記デイジタルデータy1、y2が上記デー
タメモリに書き込まれるときに上記記憶保持して
いる上記アドレスデータを上記データメモリに供
給することにより、上記デイジタルデータx1、x2
が読み出されたアドレスと同じアドレスに演算結
果である上記デイジタルデータy1、y2が書き込ま
れるようになされていることを特徴とするもので
ある。 〔実施例〕 以下、本発明の一実施例を図面に基づき説明す
る。 前述したように、デイジタルサンプル値に基づ
く一対のデイジタルデータx1、x2のバタフライ演
算は、係数をkとし、バタフライ演算して得られ
る一対のデイジタルデータをy1、y2とすれば、 y1=x1+kx2 y2=x1−kx2 ……(1) と表わせる。また、演算結果であるデイジタルデ
ータy1、y2がオーバフローするような場合には、
オーバフローを防止するために、次式によつてバ
タフライ演算が行なわれる。 y1=1/2x1+k/2x2 y2=1/2x1−k/2x2 ……(2) ここで、デイジタルデータx1、xを1/2倍する
ようにしてもよいが、バタフライ演算が行なわれ
るバタフライ演算回路の数値Nが−1≦N<1の
変域をもつような場合には、係数kの変域が−1
≦kの実部または虚部≦1であると、バタフライ
演算回路内で演算上の不都合が生じる。この不都
合を回避するため、デイジタルデータx2を1/2倍
するのではなく、kを1/2倍するようにしている。 変域が、−1≦xiの実部または虚部<1、i=
1、2、3、4、……であるデイジタルデータ
x1、x2、x3、x4、…をバタフライ演算回路によつ
てバタフライ演算することによりデイジタルデー
タy1、y2、y3、y4、…を得ることができる。ま
た、さらにこの演算結果であるデイジタルデータ
y1、y2、y3、y4、…をバタフライ演算し、その演
算結果にもバタフライ演算を行なうというよう
に、バタフライ演算を段階的に行なつてゆくと、
バタフライ演算を用いて、デイジタルデータx1
x2、x3、x4、…についてのたとえば高速フーリエ
変換(FFT)が計算される。 バタフライ演算回路を用いてたとえば高速フー
リエ変換をしようとするとき、演算回路内でオー
バフローする場合には、(2)式のバタフライ演算が
用いられる。ところで、高速フーリエ変換された
データは非常に小さな数値(絶対値)となるた
め、バタフライ演算を用いてフーリエ逆変換を計
算しようとする場合には、バタフライ演算回路内
のオーバーフローが起こらない。このため、フー
リエ逆変換の計算には、(1)式のバタフライ演算が
用いられる。 ところで、上記デイジタルデータx1、x2、x3
x4、…として、たとえばデイジタルオーデイオサ
ンプル値データα1、α2、α3、α4、…を用いるな
ら、一対のデータα1,α2のバタフライ演算は、係
数kをk=e-i〓、バタフライ演算して得られる新
たな一対のデイジタルデータをβ1、β2とすれば、 β1=α1+e-i〓・α2 β2=α1−e-i〓・α2 ……(3) または、 β1=1/2α1+e-i〓/2・α2 β2=1/2α1−e-i〓/2・α2 ……(4) となる。このデイジタルオーデイオサンプル値デ
ータα1、α2、α3、α4、…についてバタフライ演算
を繰り返し、高速フーリエ変換することにより、
最終的な計算結果であるたとえば周波数スペクト
ラムデータを得ることができる。 ここで、上記デイジタルデータα1、α2、β1、β2
の実部をA1、A2、B1、B2で表わし、虚部をa1
a2、b1、b2で表わせば、データα1、α2、β1、β2
は、 α1=A1+ia1 α2=A2+ia2 β1=B1+ib1 β2=B2+ib2 となる。また、e-i〓=cosθ−isinθであることを利
用すれば、(3)式は、 β1=(A1+ia1)+(cosθ−isinθ)・(A2+i
a2) β2=(A1+ia1)+(cosθ−isinθ)・(A2+ia2) となる。この式よりβ1、β2の実部B1、B2および
虚部b1、b2を求めれば次のようになる。 B1=A1+(cosθ・A2+sinθ・a2) b1=a1+(cosθ・a2+sinθ・A2) B2=A1−(cosθ・A2+sinθ・a2) b2=a1−(cosθ・a2+sinθ・A2) ……(5) また、(4)式について同様に計算し、β1、β2の実部
B1、B2および虚部b1、b2を求めれば次のように
なる。 B1=A1/2+(cosθ/2・A2+sinθ/2・a2) b1=a1/2+(cosθ/2・a2−sinθ/2・A2) B2=A1/2−(cosθ/2・A2+sinθ/2・a2) b2=a1/2−(cosθ/2・a2−sinθ/2・A2) ……(6) 第1図および第3図は、本発明に係るバタフラ
イ演算回路のブロツク図である。この第1図に示
すバタフライ演算回路1は、(5)式に示す計算を行
なうようになつており、この計算を行なうことに
より、(3)式のバタフライ演算が実行されるように
つている。また、第3図に示すバタフライ演算回
路2によつて、(6)式に示す計算が行なわれ、1/2
倍を伴う(4)式のバタフライ演算が行なわれるよう
になつている。 上記バタフライ演算回路1,2においては、バ
タフライ演算されるデイジタルデータα1、α2およ
びバタフライ演算を行なうことで得られるデイジ
タルデータβ1、β2はデータメモリDMA、DMBに
記憶されるようになつている。また、データβ1
β2は、データα1、α2の記憶されていたデータメモ
リDMA、DMBの同一のアドレスに記憶される
ようになつている。上記デイジタルデータα1
α2、β1、β2の実部A1、A2、B1、B2はデータメモ
リDMAに、また虚部a1、a2、b1、b2はデータメ
モリDMBに記憶されるようになつている。ま
た、バタフライ演算回路1に設けられている係数
メモリCMには、係数kの実部、虚部であるcosθ
およびsinθが記憶されている。また、バタフライ
演算回路2の係数メモリCMには、α1を1/2倍す
るための係数1/2、および係数k/2の実部、虚部
であるcosθ/2、sinθ/2が記憶されるようになつて
い る。 つぎに、第1図に示すバタフライ演算回路1の
構成について説明する。バタフライ演算回路1の
上記データメモリDMAはレジスタR2Aとレジ
スタR3Aに接続されており、レジスタR2Aは
レジスタR4Aと乗算器MPYAに接続され、レ
ジスタR3Aは乗算器MPYBに接続されている。
また、データメモリDMBはレジスタR2Bとレ
ジスタR3Bに接続されており、レジスタR2B
はレジスタR4Bと乗算器MPYBに接続され、
レジスタR3Bは乗算器MPYAに接続されるよ
うになつている。また係数メモリCMは乗算器
MPYAおよび乗算器MPYBに接続されている。
この乗算器MPYAおよび上記レジスタR4Aは
加減算器ALUAに接続され、加減算器ALUAは
レジスタR1Aに接続されるようになつている。
さらにこのレジスタR1Aは、データメモリ
DMAに接続されている。また、上記乗算器
MPYBおよびレジスタR4Bは加減算器ALUB
に接続され、加減算器ALUBはレジスタR1B
に接続されるようになつている。またこのレジス
タR1Bは、データメモリDMBに接続されるよ
うになつている。また、上記データメモリ
DMA,DMBおよび係数メモリCMのアドレスを
計算するアドレス生成部AGが1台設けられてい
る。このアドレス生成部AGは、レジスタRCM
1とレジスタ群RDM1に接続されている。この
レジスタRCM1は上記係数メモリCMに接続さ
れ、レジスタ群RDM1は上記データメモリ
DMA,DAMに接続されるようになつている。
ここで、上記レジスタR1A,R1B,R2A,
R2B,RCM1及びレジスタ群RDM1は、これ
らのレジスタへのデータ取り込み信号をマイクロ
プログラムによりコントロールできるようになつ
ている。 また、第2図は、第1図に示す上記バタフライ
演算回路1の二点鎖線部分の構成を示している。
この第2図において、取り込み信号とクロツク信
号とが入力されるオア回路10の出力であるコン
トロール信号がレジスタRCM1に入力され、適
切なタイミングにおいて、アドレス生成部AGか
らのアドレス出力がレジスタRCM1を介して、
係数メモリCMに送り出されるようになつてい
る。また、データメモリDMA,DMBに記憶さ
れているデイジタルデータの読み出し時のアドレ
スを一時保存する記憶手段である上記レジスタ群
RDM1は、4段のシフトレジスタを構成する4
個のレジスタ11,12,13,14とマルチプ
レクサ15とにより構成されている。各レジスタ
11,12,13,14には、取り込み信号とク
ロツク信号とが入力されるオア回路16の出力で
あるコントロール信号が入力されるようになつて
いる。また、各レジスタ11,12,13,14
はそれぞれマルチプレクサ15に接続されてい
る。また、マルチプレクサ15は、データメモリ
DMA,DMBに接続されている。このマルチプ
レクサ15には、たとえば2ビツトにより構成さ
れる選択信号S1、S2、S3、S4が入力され、それぞ
れレジスタ11,12,13,14の出力が選択
されるようになつている。そして、アドレス生成
部AGからのアドレス出力が適切なタイミングに
おいて、上記レジスタ11,12,13,14と
マルチプレクサ15を介して、データメモリ
DMA,DMBに送り出されるようになつている。 表1および表2は、第1図に示す上記バタフラ
イ演算回路1により(5)式を計算する手段を示して
いる。上記バタフライ演算回路1において、デー
タメモリDMA、DMBのアドレスP1にデータA1
a1がそれぞれ記憶され、またアドレスP2にデータ
A2、a2がそれぞれ記憶されている。また、係数
メモリCMのアドレスQ1に係数kの実部である
cosθが記憶され、アドレスQ2に虚部であるsinθが
記憶されている。また、バタフライ演算を1回行
なうことにより得られる演算結果B1、b1、B2
b2は、データメモリDMA,DMBの上記データ
A1、a1の記憶されていた上記P1番地にデータB1
b1がそれぞれ記憶され、上記データA2、a2の記
憶されていた上記P2番地にデータB2、b2がそれ
ぞれ記憶されるようになつている。
[Industrial Application Field] The present invention relates to a butterfly arithmetic circuit used for arithmetic processing of digital sample values by, for example, fast Fourier transform, and in particular, the present invention relates to a butterfly arithmetic circuit used for arithmetic processing of digital sample values by fast Fourier transform, etc. and the address of the data memory for storing digital data obtained by butterfly calculation are the same. [Background Art and Problems Therein] A butterfly arithmetic circuit is used when digital sample values are to be subjected to arithmetic processing using, for example, fast Fourier transform (FFT). In the butterfly operation of digital data x 1 and x 2 , if the coefficient is k and the operation result is digital data y 1 and y 2 , then y 1 = x 1 + kx 2 y 2 = x 1 − kx 2 ...(1 ) can be expressed as Furthermore, in the butterfly arithmetic circuit, if the numerical values handled are expressed in a fixed point system and negative numbers are expressed in two's complement, the numerical value N in the arithmetic circuit has a range of -1≦N<1. Therefore, if the digital data y 1 , y 2 obtained as a result of the butterfly operation overflows, the numerical values are halved as shown in the following formula.
After multiplication, a butterfly operation is performed. y 1 = 1/2x 1 +k/2x 2 y 2 = 1/2x 1 -k/2x 2 ...(2) When attempting to execute a large number of butterfly operations at high speed using the above butterfly operation circuit,
So-called pipeline processing is performed. This pipeline processing does not wait for the completion of one butterfly operation before starting the next butterfly operation, but rather starts the next butterfly operation while the butterfly operation is being executed. This is a processing method that processes in parallel. The above butterfly operation circuit includes, for example, two multipliers, two adders/subtractors, k for the operation of equation (1), or 1/2 and k/ for the operation of equation (2).
2, two data memories that store x 1 , x 2 and y 1 , y 2 , and one address generator that calculates the addresses of the coefficient memory and data memory. ing. The reason why two multipliers, adders/subtracters, and data memories are provided is that the digital data x 1 and x 2 are complex numbers, and operations are performed on the real and imaginary parts, respectively. With this butterfly arithmetic circuit, equation (1) or
If the butterfly operation in equation (2) is executed in parallel as much as possible using pipeline processing, the next butterfly operation will be performed 4 steps after the start of one butterfly operation, unless the number of memory accesses is taken into consideration. be able to. That is, the signal processing efficiency in this case is such that one butterfly operation can be executed in substantially four steps. However, considering the number of accesses to the coefficient memory and data memory to perform one butterfly operation, in the case of the operation of equation (1) or (2), k
or twice to specify k/2 twice, and x 1 ,
It is necessary to access the x 2 , y 1 , and y 2 specifications four times, six times in total. Here, the coefficient k is generally k=cosθ
−isinθ is used, and cosθ or cosθ/2, sinθ or sinθ/2 are accessed twice, and the real and imaginary parts of complex numbers x 1 , x 2 , y 1 , y 2 are at the same address in different memories. 4.
accesses are made twice. In this way, in order to access the coefficient memory twice and the data memory four times, the address generation section requires six steps for one butterfly calculation to perform address calculation. For this reason, in the butterfly operation circuit described above, which has only one address generation unit, when considering memory access, the signal processing efficiency drops to 6 steps per butterfly operation, and the next one has to wait for 6 steps. cannot perform butterfly operations. Therefore, in order to increase the signal processing efficiency to 4 steps per butterfly operation, it is necessary to provide two address generators. in this way,
Increasing the number of address generators by one means that the required IC
The drawback is that the number of integrated circuits (integrated circuits) increases significantly and the number of microprogram instructions increases. As described above, the conventional butterfly arithmetic circuit has the disadvantage that the signal processing rate is low, and in order to increase the efficiency, the number of elements must be increased or the number of microprogram instructions must be increased. [Object of the Invention] The present invention was proposed in view of the above circumstances, and an object of the present invention is to provide a butterfly calculation circuit that can perform butterfly calculations at high speed without adding one address generation unit. purpose. [Summary of the Invention] To achieve this object, the butterfly calculation circuit of the present invention includes a data memory for storing digital data x 1 , x 2 , etc. based on digital sample values, and a data memory for storing digital data x 1 , x 2 , etc. based on digital sample values, and a coefficient k or a coefficient 1/2 and k /2, an address generation unit that calculates address data indicating addresses of the data memory and the coefficient memory, and a multiplier and an adder/subtractor that perform multiplication and addition/subtraction on the digital data, at least one pair of said digital data stored in said data memory;
Butterfly operation is performed on x 1 and x 2 (y 1 = x 1 + kx 2 , y 2 = x 1
−kx 2 , or y 1 =x 1 /2+kx 2 /2, y 2 =x 1 /
2-kx 2 /2) to obtain the digital data y 1 and y 2 as the calculation results, the butterfly calculation circuit stores the address data generated by the address generation section and uses the stored address data. an address data storage section selectively supplying the data memory as address data, the address data storage section storing and holding address data when the digital data x 1 and x 2 are read from the data memory; By supplying the stored address data to the data memory when the digital data y 1 , y 2 which is the calculation result is written to the data memory, the digital data x 1 , x 2 can be written to the data memory.
The digital data y 1 and y 2 which are the calculation results are written to the same address as the address from which the data were read. [Example] Hereinafter, an example of the present invention will be described based on the drawings. As mentioned above, in the butterfly operation of a pair of digital data x 1 and x 2 based on digital sample values, if the coefficient is k and the pair of digital data obtained by the butterfly operation is y 1 and y 2 , then y 1 = x 1 + kx 2 y 2 = x 1 − kx 2 ...(1) Also, if the digital data y 1 and y 2 that are the calculation results overflow,
To prevent overflow, a butterfly operation is performed using the following equation. y 1 = 1/2x 1 + k/2x 2 y 2 = 1/2x 1 - k/2x 2 ...(2) Here, the digital data x 1 and x may be multiplied by 1/2, but If the numerical value N of the butterfly calculation circuit in which the butterfly calculation is performed has a range of -1≦N<1, the range of the coefficient k is -1.
If the real part or imaginary part of ≦k≦1, a problem arises in calculation within the butterfly calculation circuit. To avoid this inconvenience, instead of multiplying the digital data x 2 by 1/2, k is multiplied by 1/2. The domain is -1≦x i , real part or imaginary part <1, i=
Digital data that is 1, 2, 3, 4, etc.
Digital data y 1 , y 2 , y 3 , y 4 , . . . can be obtained by performing butterfly calculations on x 1 , x 2 , x 3 , x 4 , . Furthermore, the digital data that is the result of this calculation is
If you perform butterfly operations step by step, such as performing butterfly operations on y 1 , y 2 , y 3 , y 4 , ... and then performing butterfly operations on the results of the operations,
Using butterfly operation, digital data x 1 ,
For example, fast Fourier transforms (FFT) for x 2 , x 3 , x 4 , . . . are calculated. For example, when attempting to perform fast Fourier transform using a butterfly arithmetic circuit, if an overflow occurs in the arithmetic circuit, the butterfly operation of equation (2) is used. By the way, since data subjected to fast Fourier transform has a very small numerical value (absolute value), when attempting to calculate inverse Fourier transform using butterfly computation, overflow in the butterfly computation circuit does not occur. Therefore, the butterfly operation of equation (1) is used to calculate the inverse Fourier transform. By the way, the above digital data x 1 , x 2 , x 3 ,
For example, if we use digital audio sample value data α 1 , α 2 , α 3 , α 4 , etc. as 〓, If the new pair of digital data obtained by butterfly calculation is β 1 and β 2 , then β 1 = α 1 +e -i 〓・α 2 β 2 = α 1 −e -i 〓・α 2 … ...(3) Or, β 1 = 1/2α 1 +e -i 〓/2・α 2 β 2 = 1/2α 1 −e −i 〓/2・α 2 ...(4). By repeating the butterfly operation on this digital audio sample value data α 1 , α 2 , α 3 , α 4 , … and performing fast Fourier transform,
For example, frequency spectrum data, which is the final calculation result, can be obtained. Here, the above digital data α 1 , α 2 , β 1 , β 2
The real part of is expressed as A 1 , A 2 , B 1 , B 2 , and the imaginary part is expressed as a 1 ,
If expressed as a 2 , b 1 , b 2 , the data α 1 , α 2 , β 1 , β 2
α 1 =A 1 +ia 1 α 2 =A 2 +ia 2 β 1 =B 1 +ib 1 β 2 =B 2 +ib 2 . Also, if we use the fact that e -i 〓=cosθ−isinθ, equation (3) becomes β 1 = (A 1 +ia 1 )+(cosθ−isinθ)・(A 2 +i
a 2 ) β 2 = (A 1 + ia 1 ) + (cosθ−isinθ)・(A 2 + ia 2 ). From this equation, the real parts B 1 and B 2 and the imaginary parts b 1 and b 2 of β 1 and β 2 are calculated as follows. B 1 = A 1 + (cosθ・A 2 + sinθ・a 2 ) b 1 = a 1 + (cosθ・a 2 + sinθ・A 2 ) B 2 = A 1 − (cosθ・A 2 + sinθ・a 2 ) b 2 = a 1 − (cos θ・a 2 + sin θ・A 2 ) ……(5) Also, calculate the equation (4) in the same way, and calculate the real parts of β 1 and β 2.
Calculating B 1 , B 2 and the imaginary parts b 1 and b 2 is as follows. B 1 = A 1 /2 + (cosθ/2・A 2 + sinθ/2・a 2 ) b 1 = a 1 /2+ (cosθ/2・a 2 −sinθ/2・A 2 ) B 2 = A 1 /2 −(cosθ/2・A 2 +sinθ/2・a 2 ) b 2 =a 1 /2−(cosθ/2・a 2 −sinθ/2・A 2 ) ……(6) Figures 1 and 3 1 is a block diagram of a butterfly arithmetic circuit according to the present invention. The butterfly calculation circuit 1 shown in FIG. 1 is designed to perform the calculation shown in equation (5), and by performing this calculation, the butterfly calculation in equation (3) is executed. In addition, the calculation shown in equation (6) is performed by the butterfly calculation circuit 2 shown in FIG.
The butterfly operation of equation (4) involving multiplication is now performed. In the butterfly operation circuits 1 and 2, the digital data α 1 and α 2 to be subjected to the butterfly operation and the digital data β 1 and β 2 obtained by performing the butterfly operation are stored in the data memories DMA and DMB. ing. Also, data β 1 ,
β 2 is stored at the same address in the data memories DMA and DMB where data α 1 and α 2 were stored. The above digital data α 1 ,
The real parts A 1 , A 2 , B 1 , B 2 of α 2 , β 1 , β 2 are stored in the data memory DMA, and the imaginary parts a 1 , a 2 , b 1 , b 2 are stored in the data memory DMB. It's becoming like that. In addition, the coefficient memory CM provided in the butterfly arithmetic circuit 1 stores the real part and imaginary part cosθ of the coefficient k.
and sin θ are stored. In addition, the coefficient memory CM of the butterfly calculation circuit 2 stores the coefficient 1/2 for multiplying α 1 by 1/2, and the real part and imaginary part of the coefficient k/2, cosθ/2 and sinθ/2. It is becoming more and more common. Next, the configuration of the butterfly calculation circuit 1 shown in FIG. 1 will be explained. The data memory DMA of the butterfly arithmetic circuit 1 is connected to register R2A and register R3A, register R2A is connected to register R4A and multiplier MPYA, and register R3A is connected to multiplier MPYB.
Also, data memory DMB is connected to register R2B and register R3B, and register R2B
is connected to register R4B and multiplier MPYB,
Register R3B is adapted to be connected to multiplier MPYA. Also, the coefficient memory CM is a multiplier
Connected to MPYA and multiplier MPYB.
This multiplier MPYA and the register R4A are connected to an adder/subtractor ALUA, and the adder/subtractor ALUA is connected to a register R1A.
Furthermore, this register R1A is a data memory
Connected to DMA. Also, the above multiplier
MPYB and register R4B are adder/subtractor ALUB
and the adder/subtractor ALUB is connected to the register R1B.
It is becoming connected to. Further, this register R1B is connected to the data memory DMB. In addition, the above data memory
One address generation unit AG is provided to calculate addresses for the DMA, DMB, and coefficient memory CM. This address generator AG is a register RCM
1 and the register group RDM1. This register RCM1 is connected to the above coefficient memory CM, and the register group RDM1 is connected to the above data memory.
It is now connected to DMA and DAM.
Here, the registers R1A, R1B, R2A,
R2B, RCM1, and register group RDM1 are designed so that data import signals to these registers can be controlled by a microprogram. Further, FIG. 2 shows the structure of the butterfly calculation circuit 1 shown in FIG.
In FIG. 2, a control signal, which is the output of the OR circuit 10 to which the capture signal and the clock signal are input, is input to the register RCM1, and at an appropriate timing, the address output from the address generator AG is sent via the register RCM1. hand,
It is now sent to the coefficient memory CM. In addition, the above-mentioned register group is a storage means for temporarily storing the address when reading digital data stored in the data memories DMA and DMB.
RDM1 is a 4-stage shift register.
It is composed of registers 11, 12, 13, and 14 and a multiplexer 15. Each of the registers 11, 12, 13, and 14 receives a control signal that is the output of an OR circuit 16 that receives the capture signal and the clock signal. In addition, each register 11, 12, 13, 14
are connected to a multiplexer 15, respectively. In addition, the multiplexer 15 has a data memory
Connected to DMA and DMB. Selection signals S 1 , S 2 , S 3 , and S 4 made up of, for example, 2 bits are input to this multiplexer 15 so that the outputs of registers 11 , 12 , 13 , and 14 are selected, respectively. . Then, at an appropriate timing, the address output from the address generator AG is sent to the data memory via the registers 11, 12, 13, 14 and the multiplexer 15.
It is now being sent to DMA and DMB. Tables 1 and 2 show means for calculating equation (5) using the butterfly calculation circuit 1 shown in FIG. In the butterfly calculation circuit 1, data A 1 is stored at address P 1 of the data memories DMA and DMB,
a 1 is stored respectively, and data is also stored at address P 2 .
A 2 and a 2 are stored respectively. Also, the real part of coefficient k is at address Q 1 of coefficient memory CM.
cos θ is stored, and the imaginary part, sin θ, is stored at address Q2 . Also, the calculation results B 1 , b 1 , B 2 , obtained by performing the butterfly calculation once,
b 2 is the above data in data memory DMA, DMB
Data B 1 is stored at address P 1 where A 1 and a 1 were stored.
b 1 is stored, respectively, and data B 2 and b 2 are stored at address P 2 where data A 2 and a 2 were stored, respectively.

【表】【table】

【表】【table】

【表】 表1および第2に基づき、はじめに、バタフラ
イ演算することで得られる演算結果であるデイジ
タルデータβ1、β2の(5)式に示す実部B1、B2を計
算する手順を説明する。 まず、最初の第1ステツプでアドレス生成部
AGで計算された出力P2が、ステツプを順送りす
るクロツク信号と取り込み信号とが同時にオア回
路16に入力されることによつて、レジスタ群
RDM1のレジスタ11に送られるようになつて
いる。つぎの第2ステツプでアドレス生成部AG
のアドレス出力Q2が、クロツク信号と取り込み
信号とが同時にオア回路10に入力されること
で、レジスタRCM1に送られる。また、第3ス
テツプでアドレス生成部AGのアドレス出力P1
取り込み信号に同期してレジスタ群RDM1のレ
ジスタ11に送られるが、該取り込み信号よりも
早い時刻にレジスタ群RDM1のマルチプレクサ
15に入力される選択信号S1によつてレジスタ1
1のアドレス信号P2が選択され、該アドレス信
号P2はデータメモリDMA、DMBに送られるよ
うになつている。このとき、アドレス信号P2
上記取り込み信号に同期して、レジスタ12に送
られる。また、この同じステツプで、アドレス信
号P2によつてアドレス指定され読み出されたデ
ータメモリDMAのデータA2は、レジスタR2A
に送られる。また、同様にアドレス信号P2によ
つて読み出されたデータメモリDMBのデータa2
は、レジスタR3Bに送られるようになつてい
る。また、つぎの第4ステツプにおいて、アドレ
ス生成部AGからのアドレス出力Q1がレジスタ
RCM1に送られると同時に、レジスタRCM1内
のアドレス信号Q2は係数メモリCMに送られる。
アドレス信号Q2によつてアドレス指定された係
数メモリCMは、係数kの虚部に相当するsinθを
乗算器MPYAに送り出すようになつている。ま
た、同じステツプでレジスタR3Bにストアされ
ていたデータa2が乗算器MPAYに送られるよう
になつている。ここで、つぎの第5ステツプにス
テツプが進むと同時に、デイジタルデータα1
α2、α3、α4、…の内のたとえば一対のデータα3
α4についてのつぎのバタフライ演算が第1ステツ
プから開始されるようになつている。ところで、
第5ステツプでは、レジスタ群RDM1のレジス
タ11にストアされていたアドレス信号P1がマ
ルチプレクサ15において選択信号S1によつて選
択され、データメモリDMAに送られる。データ
メモリDMAでは、アドレス信号P1によりアドレ
ス指定されることで、データA1が読み出される。
このデータA1は、レジスタR2Aに送られるよ
うになつている。また、同じステツプでレジスタ
RCM1にストアされていたアドレス信号Q1が係
数メモリCMに送られ、アドレス指定されて読み
出された係数メモリCMからの係数kの実部cosθ
は乗算器MPYAに送られる。また、同じステツ
プでレジスタR2Aにストアされていたデータ
A2は、乗算器MPYAに送られる。また、すでに
乗算器MPYA内で乗算されているsinθ・a2の出
力は、同じステツプで乗算器MPYAから加減算
器ALUAに送られるようになつている。さらに
つぎの第6ステツプで、レジスタR2Aにストア
されていたデータA1は、レジスタR4Aに送ら
れる。また、すでに乗算器MPYA内で乗算され
ているcosθ・A2の出力は、この同じステツプで
加減算器ALUAに送られる。また、つぎの第7
ステツプで、レジスタR2Aにストアされていた
データA1がレジスタR4Aに送られるが、第6
ステツプにおいてレジスタR4Aに送られていた
データA1は加減算器ALUAに送られるようにな
つている。また、このデータA1より、加減算器
ALUAにおいてすでに加算されて得られている
W=cosθ・A2+sinθ・a2が減算され、この同じス
テツプで、減算されて得られた演算出力B2=A1
−WがレジスタR1Aに送り出されるようになつ
ている。ここで、上記第5ステツプと第7ステツ
プにおいて、つぎに計算されるデータα3、α4につ
いてのバタフライ演算の第1ステツプと第3ステ
ツプが実行されている。このため第5ステツプと
第7ステツプでは、データα3、α4に関するアドレ
ス信号がレジスタ群RDM1に取り込まれてお
り、第7ステツプにおいて、アドレス信号P1
レジスタ13に、アドレス信号P2がレジスタ1
4に送られるようになつている。ところで、つぎ
の第8ステツプでは、レジスタ群RDM1のレジ
スタ14にストアされているアドレス信号P2が、
選択信号S4によりマルチプレクサ15で選択さ
れ、データメモリDMAに送られるようになつて
いる。アドレス信号P2によつてアドレス指定さ
れたデータメモリDMAには、レジスタR1Aに
ストアされていた演算出力であるデータB2が、
データA2の記憶されていた同じアドレスに格納
されるようになつている。このデイジタルデータ
B2は、デイジタルデータα1、α2のバタフライ演
算出力であるデータβ2の実部に相当している。ま
た、この同じステツプで、レジスタR4Aにスト
アされていたデータA1が加減算器ALUAに送ら
れる。また、このデータA1には、加減算器
ALUAにストアされているWが加算され、加算
されて得られた演算出力B1=A1+Wが同じステ
ツプでレジスタR1Aに送り出されるようになつ
ている。つぎの第9ステツプは、ステツプ数を合
わせるため空ステツプとなつており、何も実行さ
れないようになつている。この第9ステツプから
は、たとえば一対のデイジタルデータα5、α6につ
いてのさらにつぎのバタフライ演算の第1ステツ
プが開始されるようになつている。このため、こ
の第9ステツプにおいて、たとえばデータα6につ
いてのアドレス信号がレジスタ群RDM1に取り
込まれるため、上記アドレス信号P1はレジスタ
14に移動するようになつている。つぎの第10
ステツプでは、レジスタ群RDM1のレジスタ1
4にストアされているアドレス信号P1が、選択
信号S4によりマルチプレクサ15で選択され、デ
ータメモリDMAに送られるようになつている。
アドレス信号P1によつてアドレス指定されたデ
ータメモリDMAには、レジスタR1Aにストア
されていた演算出力であるデータB1が、データ
A1の記憶されていた同じアドレスに格納される
ようになつている。このデイジタルデータB1は、
バタフライ演算出力であるデータβ1の実部に相当
している。つぎの第11ステツプおよび第12ステツ
プは、ステツプ数を合わせるための空ステツプと
なつており、何も実行されないようになつてい
る。このようにして、バタフライ演算出力である
データβ1、β2の実部B1、B2が計算されるように
なつている。なお、最後のバタフライ演算につい
ては、第8ステツプおよび第10ステツプで選択信
号S2等を利用して、アドレス信号を選択するよう
にしてもよい。 ところで、データβ1、β2の虚部b1、b2を求める
ための計算は、乗算器MPYBおよび加減算器
ALUBまたレジスタR1B等を利用して行なわ
れ、上述した実部B1、B2を求める計算手順と同
一の手段で行なわれるようになつている。したが
つて、虚部b1、b2を計算する手順の説明を省略す
る。なお、表2中でXは X=cosθ・a2−sinθ・A2 を表わしている。 このように、上記バタフライ演算回路1では、
第1ステツプおよび第3ステツプで、バタフライ
演算されるデイジタルデータα1、α2の記憶されて
いるデータメモリDMA,DMBのアドレスP1
P2をアドレス生成部AGで計算している。また、
第2ステツプと第3ステツプとで、係数kの記憶
されている係数メモリCMのアドレスQ1、Q2がア
ドレス生成部AGで計算されるようになつてい
る。そして、上記レジスタ群RDM1に上記アド
レスP1、P2がストアされるようになつている。
このため、バタフライ演算結果であるデイジタル
データβ1、β2のデータメモリDMA,DMBに格納
される上記アドレスP1、P2の計算がアドレス生
成部AGでもう一度行なわれることなく、第8ス
テツプおよび第10ステツプにおいて選択信号によ
り選択され再使用されるようになつている。した
がつてデータメモリDMA,DMBおよび係数メ
モリCMへのアクセス回数は1つのバタフライ演
算あたり6回必要であるにもかかわらず、アドレ
ス生成部AGでは4回のアドレス計算を行なうの
みですむようになつている。このため、信号処理
効率を1つのバタフライ演算あたり6ステツプに
落とすことなく、4ステツプに速めることが可能
となつている。このように、レジスタ群RDM1
の設けられた上記バタフライ演算回路1では、始
めの4ステツプの動作が完了した時点で、つぎの
バタフライ演算の第1ステツプを開始できるよう
になつており、上述したように、上記第5ステツ
プから第8ステツプではつぎのバタフライ演算の
第1ステツプから第4ステツプが行なわれ、上記
第9ステツプから第12ステツプではつぎのバタフ
ライ演算の第5ステツプから第8ステツプと、さ
らにそのつぎのバタフライ演算の第1ステツプか
ら第4ステツプがそれぞれ並列的に処理されるよ
うになつている。 つぎに、1/2倍を伴うバタフライ演算を計算す
る第第3図に示すバタフライ演算回路2の構成に
ついて説明する。このバタフライ演算回路2は、
上記バタフライ演算回路1に設けられているレジ
スタR4A、R4Bが設けられていないこと、ま
た上記レジスタRCM1がレジスタ群RCM2に置
き換えられていることを除いて、上記バタフライ
演算回路1と同様な構成となつている。 第4図は、第3図に示すバタフライ演算2の一
点鎖線部分の構成を示している。この第4図にお
いて、レジスタ群RCM2は、2段のシフトレジ
スタを構成する2個のレジスタ20,21とマル
チプレクサ22とにより構成され、各レジスタ2
0,21はそれぞれマルチプレクサ22に接続さ
れるようになつている。また、取り込み信号とク
ロツク信号とが入力されるオア回路23の出力で
あるコントロール信号が、各レジスタ20,21
に入力されている。上記マルチプレクサ22に
は、たとえば1ビツトにより構成されている選択
信号t1、t2が入力され、それぞれレジスタ20,
21の出力が選択されるようになつている。これ
により、アドレス生成部AGからのアドレス出力
は、適切なタイミングにおいて、レジスタ20,
21及びマルチプレクサ22を介して、係数メモ
リCMに送り出されるようになつている。また、
4段のシフトレジスタを構成する4個のレジスタ
24,25,26,27とマルチプレクサ28と
により構成されているレジスタ群RDM2は、上
記バタフライ演算回路1のレジスタ群RDM1と
まつたく同様な構成となつている。これらレジス
タ24,25,26,27は、オア回路29から
のコントロール信号が入力されており、マルチプ
レクサ28を介して、アドレス生成部AGのアド
レス出力が適切なタイミングにおいて、データメ
モリDMA,DMBに送り出されるようになつて
いる。 表3乃至表5は、第3図に示す上記バタフライ
演算回路2により(4)式に示す1/2倍の伴うバタフ
ライ演算を(6)式によつて計算する手順を示してい
る。このバタフライ演算2では、データメモリ
DMA,DMBに記憶されるデイジタルデータα1
α2、β1、β2は、バタフライ演算回路1と同様にア
ドレスP1、P2によつて指定されるようになつて
いる。また、係数メモリCMのアドレスQ1に係数
k/2の実部cosθ/2が記憶され、アドレスQ2に虚部 sinθ/2が記憶されている。また係数メモリCM内の 別のアドレスに数値1/2が記憶され、レジスタ群
RCM2を使用することなく、いつでも該アドレ
スを指定できるようになつている。
[Table] Based on Tables 1 and 2, first, we will explain the procedure for calculating the real parts B 1 and B 2 shown in equation (5) of digital data β 1 and β 2 , which are the calculation results obtained by butterfly calculation. explain. First, in the first step, the address generator
The output P 2 calculated by the AG is input to the OR circuit 16 at the same time as the clock signal for sequentially advancing the steps and the acquisition signal.
It is configured to be sent to register 11 of RDM1. In the next second step, the address generator AG
The address output Q2 of is sent to the register RCM1 by simultaneously inputting the clock signal and the capture signal to the OR circuit 10. Furthermore, in the third step, the address output P1 of the address generator AG is sent to the register 11 of the register group RDM1 in synchronization with the capture signal, but it is input to the multiplexer 15 of the register group RDM1 at an earlier time than the capture signal. register 1 by selection signal S 1
One address signal P2 is selected and the address signal P2 is sent to the data memories DMA and DMB. At this time, the address signal P2 is sent to the register 12 in synchronization with the above-mentioned take-in signal. Also, in this same step, the data A2 of the data memory DMA addressed and read by the address signal P2 is transferred to the register R2A.
sent to. Similarly, the data a 2 of the data memory DMB read out by the address signal P 2
is sent to register R3B. Also, in the next fourth step, the address output Q1 from the address generator AG is sent to the register.
At the same time as being sent to RCM1, address signal Q2 in register RCM1 is sent to coefficient memory CM.
The coefficient memory CM addressed by the address signal Q2 is adapted to send sin θ corresponding to the imaginary part of the coefficient k to the multiplier MPYA. Also, in the same step, data a2 stored in register R3B is sent to multiplier MPAY. Here, at the same time as the step advances to the next fifth step, the digital data α 1 ,
For example, a pair of data α 3 , α 2 , α 3 , α 4 ,
The next butterfly operation for α 4 is started from the first step. by the way,
In the fifth step, the address signal P1 stored in the register 11 of the register group RDM1 is selected by the selection signal S1 in the multiplexer 15 and sent to the data memory DMA. In the data memory DMA, data A 1 is read by being addressed by the address signal P 1 .
This data A1 is sent to register R2A. Also, in the same step, register
The address signal Q1 stored in RCM1 is sent to the coefficient memory CM, and the real part cosθ of the coefficient k from the coefficient memory CM is addressed and read out.
is sent to multiplier MPYA. Also, the data stored in register R2A in the same step
A 2 is sent to multiplier MPYA. Furthermore, the output of sin θ·a 2 , which has already been multiplied in the multiplier MPYA, is sent from the multiplier MPYA to the adder/subtractor ALUA in the same step. Furthermore, in the next sixth step, data A1 stored in register R2A is sent to register R4A. Also, the output of cos θ·A 2 , which has already been multiplied in the multiplier MPYA, is sent to the adder/subtractor ALUA in this same step. Also, the following 7th
At step 6, data A1 stored in register R2A is sent to register R4A, but data A1 stored in register R2A is sent to register R4A.
Data A1 , which was sent to register R4A in the step, is sent to adder/subtractor ALUA. Also, from this data A 1 , adder/subtractor
W=cosθ・A 2 +sinθ・a 2 which has already been added in ALUA is subtracted, and in this same step, the calculation output obtained by subtraction is B 2 =A 1
-W is sent to register R1A. Here, in the fifth and seventh steps, the first and third steps of the butterfly calculation are executed for the data α 3 and α 4 to be calculated next. Therefore, in the fifth and seventh steps, the address signals related to the data α 3 and α 4 are taken into the register group RDM1, and in the seventh step, the address signal P 1 is sent to the register 13, and the address signal P 2 is sent to the register group RDM1. 1
It is now being sent to 4th. By the way, in the next eighth step, the address signal P2 stored in the register 14 of the register group RDM1 is
It is selected by the multiplexer 15 by the selection signal S4 and sent to the data memory DMA. Data memory DMA addressed by address signal P2 receives data B2 , which is the calculation output stored in register R1A.
It is now stored at the same address where data A2 was stored. This digital data
B 2 corresponds to the real part of data β 2 which is the butterfly calculation output of digital data α 1 and α 2 . Also, in this same step, data A1 stored in register R4A is sent to adder/subtractor ALUA. Also, this data A 1 has an adder/subtractor
W stored in ALUA is added, and the calculated output B 1 =A 1 +W obtained by the addition is sent to register R1A in the same step. The next ninth step is an empty step in order to match the number of steps, and nothing is executed. From this ninth step, for example, the first step of the next butterfly calculation for the pair of digital data α 5 and α 6 is started. Therefore, in this ninth step, the address signal for, for example, data α 6 is taken into the register group RDM1, so that the address signal P 1 is moved to the register 14. Next 10th
In the step, register 1 of register group RDM1
The address signal P1 stored in the data memory DMA is selected by the multiplexer 15 in accordance with the selection signal S4 and sent to the data memory DMA.
Data memory DMA addressed by address signal P1 stores data B1 , which is the calculation output stored in register R1A, as data.
It is now stored at the same address where A1 was stored. This digital data B1 is
It corresponds to the real part of data β 1 which is the butterfly calculation output. The next 11th step and 12th step are empty steps for matching the number of steps, and nothing is executed. In this way, the real parts B 1 and B 2 of the data β 1 and β 2 which are the butterfly operation outputs are calculated. For the final butterfly calculation, the address signal may be selected using the selection signal S2 or the like in the eighth and tenth steps. By the way, the calculation to obtain the imaginary parts b 1 and b 2 of the data β 1 and β 2 is performed using the multiplier MPYB and the adder/subtractor
This is performed using ALUB, register R1B, etc., and is performed by the same means as the calculation procedure for obtaining the real parts B 1 and B 2 described above. Therefore, the explanation of the procedure for calculating the imaginary parts b 1 and b 2 will be omitted. Note that in Table 2, X represents X=cosθ·a 2 −sinθ·A 2 . In this way, in the butterfly calculation circuit 1,
Addresses P 1 of data memories DMA and DMB in which digital data α 1 and α 2 to be subjected to butterfly calculation are stored in the first step and third step,
P 2 is calculated by the address generator AG. Also,
In the second and third steps, addresses Q 1 and Q 2 of the coefficient memory CM in which the coefficient k is stored are calculated by the address generation section AG. The addresses P 1 and P 2 are stored in the register group RDM1.
Therefore, the calculation of the addresses P 1 and P 2 stored in the data memories DMA and DMB of the digital data β 1 and β 2 , which are the butterfly operation results, is not performed again in the address generation unit AG, and the eighth step and In the tenth step, it is selected by a selection signal and reused. Therefore, although the data memories DMA, DMB, and coefficient memory CM need to be accessed six times per butterfly operation, the address generator AG only needs to perform address calculations four times. . Therefore, it is possible to increase the signal processing efficiency to 4 steps per butterfly operation without reducing it to 6 steps. In this way, register group RDM1
In the butterfly calculation circuit 1, the first step of the next butterfly calculation can be started when the first four steps are completed, and as described above, the butterfly calculation circuit 1 starts from the fifth step. In the 8th step, the 1st to 4th steps of the next butterfly calculation are performed, and in the 9th to 12th steps, the 5th to 8th steps of the next butterfly calculation, and the next butterfly calculation are performed. The first to fourth steps are each processed in parallel. Next, the configuration of the butterfly calculation circuit 2 shown in FIG. 3, which calculates the butterfly calculation involving 1/2, will be explained. This butterfly calculation circuit 2 is
It has the same configuration as the butterfly calculation circuit 1, except that the registers R4A and R4B provided in the butterfly calculation circuit 1 are not provided, and the register RCM1 is replaced with a register group RCM2. ing. FIG. 4 shows the configuration of the dashed-dotted line portion of the butterfly calculation 2 shown in FIG. In FIG. 4, the register group RCM2 is composed of two registers 20 and 21 forming a two-stage shift register and a multiplexer 22.
0 and 21 are connected to a multiplexer 22, respectively. Further, a control signal, which is the output of the OR circuit 23 to which the capture signal and the clock signal are input, is transmitted to each register 20, 21.
has been entered. The multiplexer 22 receives selection signals t 1 and t 2 made up of, for example, 1 bit, and the registers 20 and t 2 are inputted to the multiplexer 22, respectively.
21 outputs are selected. As a result, the address output from the address generator AG is output to the register 20 and
21 and multiplexer 22, it is sent to the coefficient memory CM. Also,
The register group RDM2, which is composed of four registers 24, 25, 26, and 27 constituting a four-stage shift register and a multiplexer 28, has a configuration exactly similar to the register group RDM1 of the butterfly operation circuit 1. ing. These registers 24, 25, 26, and 27 receive a control signal from an OR circuit 29, and send the address output of the address generator AG to the data memories DMA and DMB at appropriate timings via a multiplexer 28. It's starting to become easier. Tables 3 to 5 show the procedure for calculating the butterfly operation with 1/2 times as shown in equation (4) using equation (6) using the butterfly calculation circuit 2 shown in FIG. In this butterfly operation 2, data memory
Digital data α 1 stored in DMA, DMB,
α 2 , β 1 , and β 2 are designated by addresses P 1 and P 2 similarly to the butterfly calculation circuit 1. Also, the coefficient is stored at address Q 1 of coefficient memory CM.
The real part cos θ/2 of k/2 is stored, and the imaginary part sin θ/2 is stored at address Q2 . Also, the value 1/2 is stored in another address in the coefficient memory CM, and the register group
The address can be specified at any time without using RCM2.

【表】【table】

【表】【table】

【表】【table】

【表】【table】

〔発明の効果〕〔Effect of the invention〕

以上の説明から明らかなように、本発明によれ
ば、デイジタルサンプル値に基づくデイジタルデ
ータを記憶するデータメモリと、係数を記憶する
係数メモリと、上記データメモリおよび上記係数
メモリのアドレスを示すアドレスデータを演算に
より求めるアドレス生成部と、上記デイジタルデ
ータに対する乗算および加減算を行う乗算器およ
び加減算器とを有し、上記データメモリに記憶さ
れた少なくとも一対のデイジタルデータx1、x2
バタフライ演算し、その演算結果としてデイジタ
ルデータy1、y2をそれぞれ求めるバタフライ演算
回路において、アドレスデータ記憶部に1台のア
ドレス生成部で計算されるデータメモリのアドレ
ス信号を一時保存する記憶手段であるレジスタ群
(マルチプレクサを含む)と、係数メモリCMの
アドレス信号を一時保存する記憶手段であるレジ
スタ群(マルチプレクサを含む)またはレジスタ
を設けることにより、データメモリの読み出し時
に使用するアドレス信号をしばらくの間上記レジ
スタ群に保存し、同じアドレスを2度計算するこ
となく再び使用することができ、1回のバタフラ
イ演算あたりデータメモリおよび係数メモリへの
アクセス回数が6回必要であるにもかかわらず、
アドレス生成部でのアドレス計算を4回で済ませ
て信号処理効率を4ステツプに速めることが可能
となつている。また、本発明は、アドレス生成部
をさらに一台追加するよりも非常に小さなハード
ウエア規模の追加で実現できるとともに、非常に
小さなマイクロプログラムのインストラクシヨン
の追加によつて実現することができる。
As is clear from the above description, according to the present invention, there is provided a data memory for storing digital data based on digital sample values, a coefficient memory for storing coefficients, and address data indicating addresses of the data memory and the coefficient memory. an address generation unit that calculates by calculation, a multiplier and an adder/subtractor that perform multiplication and addition/subtraction on the digital data, and performs a butterfly operation on at least a pair of digital data x 1 and x 2 stored in the data memory, In the butterfly calculation circuit that obtains digital data y 1 and y 2 as the calculation results, a group of registers (1) which is a storage means for temporarily storing the address signal of the data memory calculated by one address generation part in the address data storage part ( By providing a register group (including a multiplexer) or a register that is a storage means for temporarily storing the address signal of the coefficient memory CM, the address signal used when reading data memory is stored in the register group for a while. , and can be used again without calculating the same address twice, despite requiring 6 accesses to data memory and coefficient memory per butterfly operation.
It is now possible to complete address calculations in the address generation section four times, increasing signal processing efficiency to four steps. Further, the present invention can be realized by adding a much smaller hardware scale than adding one more address generation unit, and can be realized by adding a very small microprogram instruction.

【図面の簡単な説明】[Brief explanation of the drawing]

第1図は本発明に係るバタフライ演算回路のブ
ロツク図、第2図は第1図の一点鎖線部分を示す
ブロツク図、第3図は本発明の他の実施例として
の1/2倍を伴うバタフライ演算を行なうバタフラ
イ演算回路のブロツク図、第4図は第3図の一点
鎖線部分を示すブロツク図、第5図は第3図の一
点鎖線部分の他の実施例を示すブロツク図であ
る。 CM……係数メモリ、DMA,DMB……データ
メモリ、MPYA,MPYB……乗算器、ALUA,
ALUB……加減算器、R1A,R1B,R2A,
R2B,R3A,R3B,R4A,R4B……レ
ジスタ、AG……アドレス生成部、RDM1,
RDM2,RDM3……レジスタ群、RCM1,
RCM3……レジスタ、RCM2……レジスタ群、
10,16……オア回路、11,12,13,1
4……レジスタ、15……マルチプレクサ、2
3,29……オア回路、20,21,24,2
5,26,27……レジスタ、22,28……マ
ルチプレクサ、31,32,33,34……レジ
スタ、36……マルチプレクサ。
FIG. 1 is a block diagram of a butterfly calculation circuit according to the present invention, FIG. 2 is a block diagram showing the portion shown by the dashed-dotted line in FIG. A block diagram of a butterfly calculation circuit for performing butterfly calculations. FIG. 4 is a block diagram showing the portion shown by the chain line in FIG. 3, and FIG. 5 is a block diagram showing another embodiment of the portion shown by the chain line in FIG. 3. CM... Coefficient memory, DMA, DMB... Data memory, MPYA, MPYB... Multiplier, ALUA,
ALUB……Adder/subtractor, R1A, R1B, R2A,
R2B, R3A, R3B, R4A, R4B...Register, AG...Address generation section, RDM1,
RDM2, RDM3...Register group, RCM1,
RCM3...Register, RCM2...Register group,
10, 16...OR circuit, 11, 12, 13, 1
4...Register, 15...Multiplexer, 2
3, 29...OR circuit, 20, 21, 24, 2
5, 26, 27... register, 22, 28... multiplexer, 31, 32, 33, 34... register, 36... multiplexer.

Claims (1)

【特許請求の範囲】 1 デイジタルサンプル値に基づくデイジタルデ
ータを記憶するデータメモリと、係数を記憶する
係数メモリと、上記データメモリおよび上記係数
メモリのアドレスを示すアドレスデータを演算に
より求めるアドレス生成部と、上記デイジタルデ
ータに対する乗算および加減算を行う乗算器およ
び加減算器とを有し、上記データメモリに記憶さ
れた少なくとも一対のデイジタルデータx1、x2
バタフライ演算し、その演算結果としてデイジタ
ルデータy1、y2をそれぞれ求めるバタフライ演算
回路において、 上記アドレス生成部にて生成された上記アドレ
スデータを記憶し、記憶した上記アドレスデータ
を選択的に上記データメモリにアドレスデータと
して供給するアドレスデータ記憶部を備え、 上記アドレスデータ記憶部は、上記データメモ
リから上記デイジタルデータx1、x2が読み出され
るときのアドレスデータを記憶保持し、演算結果
である上記デイジタルデータy1、y2が上記データ
メモリに書き込まれるときに上記記憶保持してい
る上記アドレスデータを上記データメモリに供給
することにより、上記デイジタルデータx1、x2
読み出されたアドレスと同じアドレスに演算結果
である上記デイジタルデータy1、y2が書き込まれ
るようになされていることを特徴とするバタフラ
イ演算回路。
[Claims] 1. A data memory that stores digital data based on digital sample values, a coefficient memory that stores coefficients, and an address generation unit that calculates address data indicating addresses of the data memory and the coefficient memory by calculation. , has a multiplier and an adder/subtractor that perform multiplication and addition/subtraction on the digital data, performs a butterfly operation on at least a pair of digital data x 1 and x 2 stored in the data memory, and obtains digital data y 1 as a result of the operation. , y 2 , an address data storage section that stores the address data generated by the address generation section and selectively supplies the stored address data to the data memory as address data. The address data storage section stores and holds address data when the digital data x 1 and x 2 are read from the data memory, and the digital data y 1 and y 2 that are the calculation results are stored in the data memory. By supplying the stored address data to the data memory when written, the digital data y 1 that is the result of the operation is stored at the same address as the address from which the digital data x 1 and x 2 were read. , y 2 is written therein.
JP58125345A 1983-07-09 1983-07-09 Butterfly arithmetic circuit Granted JPS6017563A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP58125345A JPS6017563A (en) 1983-07-09 1983-07-09 Butterfly arithmetic circuit

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP58125345A JPS6017563A (en) 1983-07-09 1983-07-09 Butterfly arithmetic circuit

Publications (2)

Publication Number Publication Date
JPS6017563A JPS6017563A (en) 1985-01-29
JPH0516618B2 true JPH0516618B2 (en) 1993-03-04

Family

ID=14907814

Family Applications (1)

Application Number Title Priority Date Filing Date
JP58125345A Granted JPS6017563A (en) 1983-07-09 1983-07-09 Butterfly arithmetic circuit

Country Status (1)

Country Link
JP (1) JPS6017563A (en)

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS5378744A (en) * 1976-12-23 1978-07-12 Fujitsu Ltd Arithmetic system for complex number

Also Published As

Publication number Publication date
JPS6017563A (en) 1985-01-29

Similar Documents

Publication Publication Date Title
JP7074363B2 (en) Homomorphic processing unit (HPU) to accelerate secure computation under homomorphic encryption
US6629117B2 (en) Method for computing a fast fourier transform and associated circuit for addressing a data memory
US4689762A (en) Dynamically configurable fast Fourier transform butterfly circuit
US6366936B1 (en) Pipelined fast fourier transform (FFT) processor having convergent block floating point (CBFP) algorithm
JP2002152014A (en) Hardware accelerator for coefficient adaptation based on normal least mean square algorithm
US6463451B2 (en) High speed digital signal processor
EP0588726A2 (en) Discrete cosine transformation system and inverse discrete cosine transformation system, having simple structure and operable at high speed
CA1321838C (en) Apparatus and method for flexible control of digital signal processing devices
US6549925B1 (en) Circuit for computing a fast fourier transform
US20040128335A1 (en) Fast fourier transform (FFT) butterfly calculations in two cycles
JPH0516618B2 (en)
KR0147758B1 (en) Synthesis filter of mpeg-2 audio decoder
US5204962A (en) Processor with preceding operation circuit connected to output of data register
KR19990077845A (en) Pipelined fast fourier transform processor
JPS61213926A (en) Dsp arithmetic processing system
JP2697619B2 (en) N-point FFT dedicated processor
JPS60129890A (en) Digital signal processing device
JP3654622B2 (en) DCT arithmetic device and IDCT arithmetic device
JPS63133268A (en) Pipeline type fft butterfly calculator
KR0149998B1 (en) Discrete cosine inverter for real time processing
KR20060011387A (en) Booth multiplier
JPH026089B2 (en)
KR940007569B1 (en) Matrix multiplication circuit
JPS60164868A (en) Fast fourier transforming device
JPH0773161A (en) Arithmetic unit