JPH0532784B2 - - Google Patents

Info

Publication number
JPH0532784B2
JPH0532784B2 JP58250983A JP25098383A JPH0532784B2 JP H0532784 B2 JPH0532784 B2 JP H0532784B2 JP 58250983 A JP58250983 A JP 58250983A JP 25098383 A JP25098383 A JP 25098383A JP H0532784 B2 JPH0532784 B2 JP H0532784B2
Authority
JP
Japan
Prior art keywords
data
register
adder
sent
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
JP58250983A
Other languages
Japanese (ja)
Other versions
JPS60144872A (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 JP58250983A priority Critical patent/JPS60144872A/en
Publication of JPS60144872A publication Critical patent/JPS60144872A/en
Publication of JPH0532784B2 publication Critical patent/JPH0532784B2/ja
Granted legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F17/00Digital computing or data processing equipment or methods, specially adapted for specific functions
    • G06F17/10Complex mathematical operations
    • G06F17/14Fourier, Walsh or analogous domain transformations, e.g. Laplace, Hilbert, Karhunen-Loeve, transforms

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • General Physics & Mathematics (AREA)
  • Pure & Applied Mathematics (AREA)
  • Mathematical Optimization (AREA)
  • Mathematical Analysis (AREA)
  • Computational Mathematics (AREA)
  • Data Mining & Analysis (AREA)
  • Theoretical Computer Science (AREA)
  • Algebra (AREA)
  • Databases & Information Systems (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Complex Calculations (AREA)

Description

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

〔産業上の利用分野〕 本発明は4点フーリエ変換を繰り返し行うこと
により、高速フーリエ変換の演算処理時間の短縮
を図つたデイジタルデータ演算回路に関する。 〔背景技術とその問題点〕 一般に、複数個の離散的であるデイジタルサン
プル値をフーリエ変換により数値処理しようとす
る場合には、離散フーリエ変換(DFT)が用い
られる。高速フーリエ変換(FFT)はこの離散
フーリエ変換を高速に演算する演算方法であり、
たとえば2点フーリエ変換(バタフライ演算)を
繰り返すことにより達成されるようになつてい
る。この2点フーリエ変換は1つまたは2つの係
数メモリと2つのデータメモリと、2つの乗算器
と、2つの加減算器とを用い、パイプライン処理
を行うことにより実行できる。この場合、たとえ
ばデータ数を2N(N:自然数)とすると、2点フ
ーリエ変換を1/22N・N回繰り返すことにより高 速フーリエ変換は達成されるが、この2点フーリ
エ変換は1回当り4ステツプかかるため、全体と
して必要なステツプ数はN・2N+1にもなつてしま
い、処理時間が長くかかつてしまう。 〔発明の目的〕 そこで、本発明は上述した実情に鑑みなされた
ものであり、高速フーリエ変換を行う際に、演算
器(乗算器、加減算器)やメモリの数を増やすこ
となく、演算処理時間を短縮するように成したデ
イジタルデータ演算回路を提供することを目的と
する。 〔発明の概要〕 本発明に係るデイジタルデータ演算回路は、上
述した目的を達成するために、デイジタルサンプ
ル値に基づくデイジタルデータを記憶する第1、
第2のデータメモリと、上記デイジタルデータの
係数を記憶する少なくとも1つの係数メモリと、
上記係数と上記第1、第2のデータメモリから供
給される上記デイジタルデータとをそれぞれ乗算
する第1、第2の乗算器と、上記第1、第2の乗
算器からそれぞれ順次供給されるデータを加減算
する第1、第2の加減算器と、上記第1の加減算
器の出力データを記憶し、所定のタイミングで上
記第2の加減算器に供給する第1のレジスと、上
記第2の加減算器の出力データを記憶し、所定の
タイミングで上記第1の加減算器に供給する第2
のレジスタとを備え、上記第1、第2のデータメ
モリはそれぞれ上記第1、第2の加減算器の出力
データを記憶するようになされていることを特徴
とするものである。 〔実施例〕 以下、本発明の一実施例について図面を参照し
ながら詳細に説明する。 本発明に係るデイジタルデータ演算回路は、た
とえば第1図に示すように、データメモリDMA
はレジスタR2AとレジスタR3Aに接続されて
おり、レジスタR2Aは乗算器MPYAに接続さ
れ、レジスタR3Aは乗算器MPYBに接続され
ている。また、データメモリDMBはレジスタR
2BとレジスタR3Bに接続されており、レジス
タR2Bは乗算器MPYBに接続され、レジスタ
R3Bは乗算器MPYAに接続されている。係数
メモリCMAは乗算器MPYAに接続され、この乗
算器MPYAは加算器ALUAに接続され、加減算
器ALUAはレジスタR1Aを介してデータメモ
リDMAに接続されている。また、係数メモリ
CMBは乗算器MPYBに接続され、この乗算器
MPYBは加減算器ALUBに接続され、加減算器
ALUBはレジスタR1Bを介してデータメモリ
DMBに接続されている。そして、更に加減算器
ALUAはレジスタR4Bを介して加減算器
ALUBに、加減算器ALUBはレジスタR4Aを
介して加減算器ALUAにそれぞれ接続されてい
る。なお、上記レジスタR1A,R1B,R2
A,R2B,R4A,R4Bは、いずれもプログ
ラムによりクロツクのコントロールができるもの
とする。 この実施例は、上述した構成のデイジタルデー
タ演算回路を用いて、4点フーリエ変換または2
点フーリエ変換を繰り返し行うことにより高速フ
ーリエ変換を達成しようとするものである。 そこで、始めに4点フーリエ変換について説明
する。まず、複素数Ak+iak(k=0,1,2,
3,i=√−1)に対する角度θの4点フーリエ
変換を以下の式で示すような複素数Xk+ixk(k
=0,1,2,3,i=√−1)に変換すること
と定義する。 Xk+ixk=1/4(A0+ia0) +1/4e-i(θ+kπ/2)(A1+ia1
) +1/4e-i(2θ+2kπ/2(A2+ia2
) +1/4e-i(3θ+3kπ/2)(A3+ia
3) そして、データ数2N(N:自自然数)のデータ
列を適当に(いわゆるビツト逆順を拡張した方法
で)並べかえ、それらのデータに4点フーリエ変
換を繰り返し施す(Nが奇数の時には2点フーリ
エ変換(バタフライ演算)を1回行う)ことによ
り高速フーリエ変換を達成するものである。 ここでN=4、すなわちデータ数が24=16の場
合について説明する。演算処理されるデータを
D0〜D15とし、始めに添字のデータ番号0〜15を
2ビツト(いわゆるtwit)単位、すなわち4進で
書き、その桁を逆にして並べる。これによりD0
〜D15は次のように並べかえられる。 D0,D4,D8,D16,D1,D5,D9,D13,D2
D6,D10,D14,D3,D7,D11,D15。 そして、これらのデータに対して第1式で定義
した4点フーリエ変換を繰り返し行う。すなわ
ち、第2図に示すように、最初に4つのデータ
D0,D4,D8,D12に対してθ=0として4点フー
リエ変換を行なう。次に、4つのデータD1,D5
D9,D13に対しても同様にθ=0として4点フー
リエ変換を行う。以下、残りのデータD2,D6
D10,D14およびD×D7,D11,D15に対しても同様
にθ=0として4点フーリエ変換を行う。以上が
第1パスの4点フーリエ変換である。続いて、第
2パス以降の4点フーリエ変換を行う。すなわ
ち、新たに得られた16のデータの内D′0,D′1
D′2,D′3に対してはθ=0として、D′4,D′5
D′6,D′7に対してはθ=π/8として、D′8,D′9, D′10,D′11に対してはθ=2π/8として、そして、 D′12,D′13,D′14,D′15に対してはθ=3π/8と
し て、それぞれ4点フーリエ変換を行う。このよう
にして、データ数が16の場合、4点フーリエ変換
を8回行うことにより、フーリエ係数Y0〜Y15
求めることができる。 なお、データを並べかえる際、Nが奇数の時は
添字のデータ番号の最上位を2進、他を4進で表
して順に並べ、それを逆転して最下位が2進、他
を4進として読むようにし、それらのデータに対
して4点フーリエ変換を施してゆき、最後に2点
フーリエ変換を行うようにすれば良い。 次に、上述した4点フーリエ変換を行うための
アルゴリズムを具体的に説明する。まず、第1パ
スのθ=0のときの4点フーリエ変換について、
入力をAk(k=0,1,2,3)とすると、出力
Xk+ixk(k=0,1,2,3;i=√−1)は
第1式により次式で示される。 X0=1/4A0+1/4A1+1/4A2+1/4A3 x0=0 X1=1/4A0−1/4A2 x1=1/4A1+1/4A3 X2=1/4A0−1/4A1+1/4A2−1/4A3 x2=0 X3=1/4A0−1/4A2 x3=1/4A1−1/4A3 ……第2式 ここで、これらの演算処理を行うためのアルゴ
リズムを第3図ないし第10図に示す。なお、入
力AkはデータメモリDMAに記憶されており、出
力の実数部XkはデータメモリDMAに、虚数部xk
はデータメモリDMBにそれぞれ記憶されるもの
とする。また、第3図ないし第10図において、
以下のステツプ1ないしステツプ8については太
実線で、ステツプ9ないしステツプ16については
太破線でそれぞれ示す。 ステツプ1 まず、第3図に示すように、デー
タA1がデータメモリDMAよりレジスタR2Aお
よびR3Aにそれぞれ送られる。 ステツプ2 第4図に示すように、レジスタR
2AからのデータA1および係数メモリCMAから
の係数1/4が乗算器MPYAに、レジスタR3Aか らのデータA1および係数メモリCMBからの係数
1/4が乗算器MPYBに、それぞれ送られ記憶され る。これと同時に、データA3がデータメモリ
DMAよりレジタR2AおよびR3Aにそれぞれ
送られる。 ステツプ3 第5図に示すように、乗算器
MPYA内で先に記憶されたデータの乗算A1×
1/4が行われ、これが加減算器ALUAに、また、 乗算器MPYB内で先に記憶されたデータの乗算
A1×1/4が行われ、これが加減算器ALUBに、そ れぞれ送られ記憶される。これと同時に、レジス
タR2AからのデータA3および係数メモリCMA
からの係数1/4が乗算器MPYAに、レジスタR3 AからのデータA3および係数メモリCMBからの
係数1/4が乗算器MPYBに、それぞれ送られ記憶 される。 ステツプ4 第6図に示すように、乗算器
MPYA内で先に記憶されたデータの乗算A3×
1/4が行われ、加減算器ALUAに送られ、これが 先に記憶されたデータA1/4と加算され記憶され。 これと同時に乗算器MPYB内で先に記憶された
データの乗算A3×1/4が行われ、これが加減算器 ALUBに送られ記憶される。 ステツプ5 第7図に示すように、加減算器
ALUB内で先に記憶されたデータの減算A1/4− A3/4が行われ、これが記憶されると同時に、デー タA2がデータメモリDMAからレジスタR2Aに
送られる。 ステツプ6 第8図に示すように、レジスタR
2AからのデータA2および係数メモリCMAから
の係数1/4が乗算器MPYAに送られ記憶されると 同時に、データA0がデータメモリDMAからレジ
スタR2Aに送られる。 ステツプ7 第9図に示すように、レジスタR
2AからのデータA0および係数メモリCMAから
の係数1/4が乗算器MPYAに送られ記憶されると 同時に、乗算器MPYA内で先に記憶されたデー
タの乗算A2×1/4が行われ、これが加減算器 ALUAに送られ記憶される。 テツプ8 第10図に示すように、乗算器
MPYA内で先に記憶されたデータの乗算A0×
1/4が行われ、これが加減算器ALUAに送られ記 憶されると同時に、加減算器ALUB内で先に記
憶されたデータの減算A3/4−A1/4が行われ、これ が記憶される。 ステツプ9 再び第3図示に示すように、加減
算器ALUA内で先に記憶されたデータの加算A0/4 +A2/4が行われ、これが記憶される。 ステツプ10 再び第4図に示すように、加減算
器ALUA内で先に記憶されたデータの減算A0/4− A2/4が行われ、これがレジタR1Aに送られる。 これと同時に、加減算器ALUBからのデータA3/4 −A4/4がレジスタR1Bに送られる。 ステツプ11 再び第5図に示すように、加減算
器ALUBからのデータA1/4−A3/4がレジスタR1 Bに送られる。これと同時に、レジスタR1Aか
らのデータA0/4−A2/4すなわちX1がデータメモリ DMAに、レジスタR1BからのデータA3/4−A1/4 すなわちx1がデータメモリDMBに、それぞれ記
憶される。 ステツプ12 再び第6図に示すように、レジス
タR1AからのデータA0/4−A2/4すなわちX3がデ ータメモリDMAに、レジスタR1Bからのデー
タA1/4−A3/4すなわちx3がデータメモリDMBに、 それぞれ記憶される。 ステツプ13 再び第7図に示すように、加減算
器ALUA内で先に記憶されたデータの加算(A0/4 +A2/4)+(A1/4+A3/4)が行われ、これが記憶
さ れる。 ステツプ14 再び第8図に示すように、加減算
器ALUA内で先に記憶されたデータの減算(A0/4 +A2/4)−(A1/4+A3/4)が行われ、これがレジ
ス タR1Aに送られると同時に“0”が加減算器
ALUBからレジスタR1Bに送られる。 ステツプ15 再び第9図に示すように、加減算
器ALUAからのデータ(A0/4+A2/4)+(A1/4+ A3/4)がレジスタR1Aに送られる。これと同時 に、レジタR1Aからのデータ(A0/4+A2/4)− (A1/4+A3/4)すなわちX2がデータメモリDMA に、レジスタR1Bから“0”すなわちx2がデー
タメモリDMBに、それぞれ記憶される。 ステツプ16 再び第10図に示すように、レジ
スタR1Aからのデータ(A0/4+A2/4)+(A1/4
+ A3/4)すなわちX0がデータメモリDMBに、それ ぞれ記憶される。 このように、第1パスの4点フーリエ変換を1
回行うのに、16ステツプかかるように見えるが、
上記ステツプ8の動作が完了した時点で次の4点
フーリエ変換のステツプ1を開始できるため、上
記ステツプ9ないしステツプ16と次の4点フーリ
エ変換のステツプ1ないしステツプ8とが同時に
並行して行える。従つて、実際には8ステツプで
4点フーリエ変換を1回行うことができる。 次に、第2パルス以降の4点フーリエ変換につ
いて、入力をAk+iak(k=0,1,2,3;i=
√−1)とすると、出力Xk+ixk(k=0,1,
2,3;i=√−1)は第1式により次式で示さ
れる。 X0=A0/4+A1/4cosθ+a1/4sinθ+A2/4cos2
θ +a2/4sin2θ+A3/4cos3θ+a3/4sin3θ x0=a0/4+a1/4cosθ−a1/4sinθ+a2/4cos2
θ −A2/4sin2θ+a3/4cos3θ−A3/4sin3θ X1=A0/4−A1/4sinθ+a1/4cosθ−A2/4cos2
θ −a2/4sin2θ+A3/4sin3θ−a3/4cos3θ x1=a0/4−a1/4sinθ−A1/4cosθ−a2/4cos2
θ +A2/4sin2θ+a3/4sin3θ+A3/4cos3θ X2=A0/4−A1/4cosθ−a1/4sinθ+A2/4cos2
θ +a2/4sin2θ−A3/4cos3θ−a3/4sin3θ x2=a0/4−a1/4cosθ+A1/4sinθ+a2/4cos2
θ −A2/4sin2θ−a3/4cos3θ+A3/4sin3θ X3=A0/4+A1/4sinθ−a1/4cosθ−A2/4cos2
θ −a2/4sin2θ−A3/4sin3θ+a3/4cos3θ x3=a0/4+Aa/4sinθ+A1/4cosθ−a2/4cos2
θ +A2/4sin2θ−a3/4sin3θ−A3/4cos3θ ……第3式 ここで、これらの演算処理を行うためのアルゴ
リズムを第11図ないし第24図に示す。なお、
入力の実数部AkはデータメモリDMAに、虚数部
akはデータメモリDMBにそれぞれ記憶されてお
り、出力の実数部XkはデータメモリDMAに、虚
数部xkはデータメモリDMBにそれぞれ記憶され
るものとする。また、以下のステツプ1ないしス
テツプ14については第11図ないし第24図に太
実線で、ステツプ15ないしステツプ18については
第11図ないし第14図に太破線でそれぞれ示
す。 ステツプ1 まず第11図に示すように、デー
タA1がデータメモリDMAよりレジスタR2Aお
よびR3Aにそれぞれ送られると同時に、データ
a1がデータメモリDMBよりレジスタR2Bおよ
びR3Bにそれぞれ送られる。 ステツプ2 第12図に示すように、レジスタ
R3Bからのデータa1および係数メモリCMAか
らの係数sinθ/4の乗算器MPYAに、レジスタR3 AからのデータA1および係数メモリCMBからの
係数sinθ/4が乗算器MPYBにそれぞれ送られ記憶 される。 ステツプ3 第13図に示すように、レジスタ
R2AからのデータA1および係数メモリCMAか
らの係数cosθ/4が乗算器MPYAに送られ記憶され ると同時に、この乗算器MPYA内で先に記憶さ
れたデータの乗算a1×sinθ/4が行われ、これが加 減算器ALUAに送られ記憶される。一方レジス
タR2Bからのデータa1および係数メモリCMB
からの係数cosθ/4が乗算器MPYBに送られ記憶さ れると同時に、この乗算器MPYB内で先に記憶
されたデータの乗算A1×sinθ/4が行われ、これが 加減算器ALUBに送られ記憶される。また、デ
ータA3がデータメモリDMAよりレジスタR2A
およびR3Aにそれぞれ送られると同時に、デー
タa3がデータメモリDMBよりレジスタR2Bお
よびR3Bにそれぞれ送られる。 ステツプ4 第14図に示すように、レジスタ
R3Bからのデータa3および係数メモリCMAか
らの係数cos3θ/4が乗算器MPYAに送られ記憶さ れると同時に、この乗算器MPYA内で先に記憶
されたデータの乗算A1×cosθ/4が行われ、これが 加減算器ALUAに送られ、この加減算器ALUA
内で先に記憶されたデータと加算A1cosθ/4+ a1sinθ/4が行われ記憶される。一方、レジスタR 3AからのデータA3および係数メモリCMBから
の係数sin3θ/4が乗算器MPYBに送られ記憶され ると同時に、この乗算器MPYB内で先に記憶さ
れたデータの乗算a1×cosθ/4が行われ、これが加 減算器ALUBに送られ、この加減算器ALUB内
で先に記憶されたデータと減算a1cosθ/4−A1sinθ/
4 が行なわれ記憶される。ここで、加減算器
ALUAおよびALUBに記憶されたデータを、そ
れぞれ次式の通り定義する。 P1<=A1cosθ/4+a1sinθ/4 Q1<=a1cosθ/4−A1sinθ/4 ……第4式 ステツプ5 第15図に示すように、レジスタ
R2AからのデータA3および係数メモリCMAか
らの係数cos3θ/4が乗算器MPYAに送られ記憶さ れると同時に、この乗算器MPYA内で先に記憶
されデータの乗算a3×sin3θ/4が行われ、これが加 減算器ALUAに送られ記憶される。一方、レジ
スタR2Bからのデータa3および係数メモリ
CMBからの係数cos3θ/4が乗算器MPYBに送られ 記憶されると同時に、この乗算器MPYB内で先
に記憶されたデータの乗算A3×sin3θ/4が行われ、 これが加減算器ALUBに送られ記憶される。ま
た、データA2がデータメモリDMAからのレジス
タR2AおよびR3Aに、データa2がデータメモ
リDMBからレジスタR2BおよびR3Bに、そ
れぞれ送られる。 ステツプ6 第16図に示すように、レジスタ
R3Bからのデータa2および係数メモリCMAか
らの係数sin2θ/4が加減算器MPYAに送られ記憶 されると同時に、この乗算器MPYA内で先に記
憶されたデータの乗算A3×cos3θ/4が行われ、こ れが加減算器ALUAに送られ、この加減算器
ALUA内で先に記憶されたデータと加算
A3cos3θ/4+a3sinθ3/4が行われ記憶される。一方
、 レジスタR3AからのデータA2および係数メモ
リCMBからの係数sin2θ/4が乗算器MPYBに送ら れ記憶されると同時に、この乗算器MPYB内で
先に記憶されたデータの乗算a3×cos3θ/4が行わ れ、これが加減算器ALUBに送られ、この加減
算器ALUB内で先に記憶されたデータと加算
a3cos3θ/4+A3sin3θ/4が行われ記憶される。ここ で、加減算器ALUAおよびALUBに記憶された
データを、それぞれ次式の通り定義する。 P3<=A3cos3θ/4+a3sin3θ/4 Q3<=a3cos3θ/4+A3sin3θ/4……第5式 ステツプ7 第17図に示すように、レジスタ
R2AからのデータA2および係数メモリCMAか
らの係数cos2θ/4が乗算器MPYAに送られ記憶さ れると同時に、この乗算器MPYA内で先に記憶
されたデータの乗算a2×sin2θ/4が行われ、これが 加減算器ALUAにに送られ記憶される。一方、
レジスタR2Bからのデータa2および係数メモリ
CMBからの係数cosθ/4が乗算器MPYBに送られ 記憶されると同時に、この乗算器MPYB内で先
に記憶されたデータの乗算A2×sin2θ/4が行われ、 これが加減算器ALUBに送られ記憶される。 ステツプ8 第18図に示すように、乗算器
MPYA内で先に記憶されたデータの乗算A2×
cos2θ/4が行われ、これが加減算器ALUAに送ら れ、この加減算器ALUA内で先に記憶されたデ
ータと加算A2cos2θ/4+a2sin2θ/4が行われ記憶さ
れ る。一方、乗算器MPYB内で記憶されたデータ
の乗算a2×cos2θ/4が行われ、これが加減算器 ALUBに送られ、この加減算器ALUB内で先に
記憶されたデータを減算a2cos2θ/4−A2sin2θ/4が
行 われ記憶される。また、データA0がデータメモ
リDMAからレジスタR2Aに、データa0がデー
タメモリDMBからレジスタR2Bにそれぞれ送
られる。ここで、加減算器ALUAおよびALUB
に記憶されたデータをそれぞれ次式の通り定義す
る。 P2<=A2cos2θ/4+a2sin2θ/4 Q2<=a2cos2θ/4−A2sin2θ/4……第6式 ステツプ9 第19図に示すように、レジスタ
R2AからのデータA0および係数メモリCMAか
らの係1/4が乗算器MPYAに送られ記憶されると 同時に、レジスタR2Bからのデータa0および係
数メモリCMBからの係数1/4が乗算器MPYBに 送られ記憶される。また、加減算器ALUA内で
先に記憶されたデータの減算P1−P3が行われ、
これがレジスタR4Bに送られると同時に、加減
算器ALUB内で先に記憶されたデータの減算Q1
−Q3が行われ、これがレジスタR4Aに送られる。 ステツプ10 第20図に示すように、乗算器
MPYA内で先に記憶されたデータの乗算A0×
1/4が行われ、これが加減算器ALUAに送られ、 この加減算器ALUA内で先に記憶されたデータ
と減算1/4A0−P2が行われ記憶される。一方、乗 算器MPYB内で先に記憶されたデータの乗算a0
×1/4が行われ、これが加減算器ALUBに送ら れ、この加減算器ALUB内で先に記憶されたデ
ータと減算1/4a0−Q2が行われ記憶される。 ステツプ11 第21図に示すように、レジスタ
R4AからのデータQ1−Q3が加減算器ALUAに
送られ、この加減算器ALUA内で先に記憶され
たデータと加算(A0/4−P2)+(Q1−Q3)が行わ れ、これがレジスタR1Aに送られる。これと同
時に、レジスタR4BからのデータP1−P3が加
減算器ALUBに送られ、この加減算器ALUB内
で先に記憶されたデータと減算(a0/4−Q2)−(P1 −P3)が行われ、これがレジスタR1Bに送ら
れる。 ステツプ12 第22図に示すように、レジスタ
R4AからのデータQ1−Q3が加減算器ALUAに
送られ、この加減算器ALUA内で先に記憶され
たデータと減算(A0/4−P2)−(Q1−Q3)が行わ れ、これがレジスタR1Aに送られると同時に、
このレジスタR1Aからのデータ(A0/4−P2)+ (Q1−Q3)すなわちデータX1がデータメモリ
DMAに記憶される。一方、レジスタR4Bから
のデータP1−P3が加減算器ALUBに送られ、こ
の加減算器ALUB内で先に記憶されたデータと
加算(a0/4−Q2)+(P1−P3)が行われ、これがレ ジスタR1Bに送られると同時に、このレジスタ
R1Bからのデータ(a0/4−Q2)−(P1−P3)すな わちx1がデータメモリDMBに記憶させる。 ステツプ13 第23図に示すように、レジスタ
R2AからのデータA0および係数メモリCMAか
らの係数1/4が乗算器MPYAに、レジスタR2B からのデータa0および係数メモリCMBからの係
1/4が乗算器MPYBに、それぞれ送られ記憶され る。また、加減算器ALUA内で先に記憶された
データの加算P1+P3が行われ記憶され、加減算
器ALUBでは先に記憶されたデータの加算Q1
Q3が行われ記憶される。更に、レジスタR1A
からのデータ(A0/4−P2)−(Q1−Q3)すなわち、 X3がデータメモリDMAに記憶され、レジスタR
1Bからのデータ(a0/4−Q2)+(P1−P3)すなわ ちx3がデータメモリDMBに記憶される。 ステツプ14 第24図に示すように、乗算器
MPYA内で先に記憶されたデータの乗算A0×
1/4が行われ、これが加減算器ALUAに送られ、 この加減算器ALUA内で先に記憶されたデータ
と加算A0/4+P2が行われ記憶される。これと同時 に、乗算器MPYB内で先に記憶されたデータの
乗算a0×1/4が行われ、このが加減算器ALUBに 送られ、この加減算器ALUB内で先に記憶され
たデータと加算a0/4+Q2が行われ記憶される。 ステツプ15 再び第11図に示すように、加減
算器ALUA内で先に記憶されたデータの減算
(A0/4+P2)−(P1+P3)が行われ、これがレジス タR1Aに送られると同時に、加減算器ALUB
内で先に記憶されたデータの減算(a0/4+Q2)− (Q1+Q3)が行われ、これがレジスタR1Bに送
られる。 ステツプ16 再び第12図に示すように加減算
器ALUA内で先に記憶されたデータの加算(A0/4 +P2)+(P1+P3)が行われ、これがレジスタR
1Aに送られると同時に、このレジスタR1Aか
らのデータ(A0/4+P2)−(P1+P3)すなわちX2 がデータメモリDMAに記憶される。また、加減
算器ALUB内で先に記憶されたデータの加算
(a0/4+Q2)+(Q1+Q3)が行われ、これがレジス タR1Bにて送られると同時に、このレジスタR
1Bからのデータ(a0/4+Q2)−(Q1+Q3)すなわ ちx2がデータメモリDMBに記憶される。 ステツプ17 何も行われない。 ステツプ18 再び第14図に示すように、レジ
スタR1Aからのデータ(A0/4+P2)+(P1+P3) すなわちX0がデータメモリDMAに記憶されると
と同時に、レジスタR1Bからのデータ(a0/4+ Q2)+(Q1+Q3)すなわちx0がデータメモリDMB
に記憶される。 このように、第2パス以降の4点フーリエ変換
を1回行うのに、18ステツプかかるようにに見え
るが、上記ステツプ14の動作が完了した時点で、
次の4点フーリエ変換のステツプ1を開始できる
ため、上記ステツプ15ないしステツプ18と次の4
点フーリエ変換のステツプ1ないしステツプ4と
が同時に並行して行える。従つて、実際には14ス
テツプで4点フーリエ変換を1回行うことができ
る。なお、上記ステツプ17は、「何も行われな
い。」となつているが、これは、データメモリ
DMAおよびDMBの入力径路と出力径路がそれ
ぞれ兼用であり、データの書き込みと読み出しが
同時に行えないためである。またNが奇数の場合
には1回だけ2点フーリエ変換を行うことになる
が、これは通常のバタフライ演算におけるアルゴ
リズムを用いれば良い。 また、この実施例の4点フーリエ変換において
は、第3式に示したように、変換後の実数部Xk
と虚数部xkにはそれぞれ共通項が含まれている。
そこで、この共通項を利用すべく、この実施例の
デイジタルデータ演算回路には、実数計算部と虚
数計算部の間に相互交流のパスすなわちレジスタ
R4AおよびR4Bが設けられているため、上記
ステツプ9すなわち第19図に示したような動作
を行うことにより演算処理時間を大幅に短縮する
ことができる。 すなわち、2Nのデータに対して、従来の2点フ
ーリエ変換を繰り返す方法によれば必要なステツ
プ数はN・2N+1であつたが、この実施例のような
デイジタルデータ演算回路を用い4点フーリエ変
換を繰り返し行えば、必要なステツプ数は次のよ
うになる。 Nが偶数の時 第1パス…8×2N/4=2×2N 第2〜N/2パス…(N/2−1)×14×2N/4 =(7N−14)2N-2 計 (7N−6)2N-2ステツプ Nが奇数の時 第1パス…8×2N/4=2×2N 第2〜N−1/2パス…(N−1/2−1)×14× 2N/4 =(7N−21)2N-2 第N+1/2パス(2点フーリエ変換)…4× 2N/2=2N+1 計 (7N−5)2N-2ステツプ ここで、たとえば、N=4,5,6,7,8,
9,10として、従来の2点フーリエ変換回路と4
点フーリエ変換を行う本実施例のデイジタルデー
タ演算回路の具体的なステツプ数とその比率を表
1に示す。
[Industrial Application Field] The present invention relates to a digital data arithmetic circuit that aims to shorten the arithmetic processing time of fast Fourier transform by repeatedly performing four-point Fourier transform. [Background Art and Problems thereof] Generally, when attempting to numerically process a plurality of discrete digital sample values by Fourier transform, discrete Fourier transform (DFT) is used. Fast Fourier transform (FFT) is a calculation method that calculates this discrete Fourier transform at high speed.
For example, this is achieved by repeating two-point Fourier transform (butterfly operation). This two-point Fourier transform can be executed by performing pipeline processing using one or two coefficient memories, two data memories, two multipliers, and two adders/subtractors. In this case, for example, if the number of data is 2 N (N: natural number), fast Fourier transform can be achieved by repeating the two-point Fourier transform 1/22 N ·N times; Since it takes 4 steps, the total number of steps required is N.2 N+1 , which increases the processing time. [Object of the Invention] Therefore, the present invention has been made in view of the above-mentioned actual situation, and when performing fast Fourier transform, the calculation processing time can be reduced without increasing the number of arithmetic units (multipliers, adders/subtractors) or memories. An object of the present invention is to provide a digital data arithmetic circuit configured to shorten the process. [Summary of the Invention] In order to achieve the above-mentioned object, a digital data calculation circuit according to the present invention includes a first digital data calculation circuit that stores digital data based on digital sample values;
a second data memory; and at least one coefficient memory storing coefficients of the digital data;
first and second multipliers that multiply the coefficient by the digital data supplied from the first and second data memories; and data sequentially supplied from the first and second multipliers. a first register that stores the output data of the first adder/subtractor and supplies it to the second adder/subtractor at a predetermined timing; a second adder/subtracter that stores the output data of the adder/subtracter and supplies it to the first adder/subtracter at a predetermined timing;
The first and second data memories are configured to store output data of the first and second adders/subtractors, respectively. [Example] Hereinafter, an example of the present invention will be described in detail with reference to the drawings. For example, as shown in FIG. 1, the digital data calculation circuit according to the present invention includes a data memory DMA
is connected to register R2A and register R3A, register R2A is connected to multiplier MPYA, and register R3A is connected to multiplier MPYB. Also, data memory DMB is register R.
2B and register R3B, register R2B is connected to multiplier MPYB, and register R3B is connected to multiplier MPYA. The coefficient memory CMA is connected to a multiplier MPYA, which is connected to an adder ALUA, and the adder/subtractor ALUA is connected to a data memory DMA via a register R1A. Also, coefficient memory
CMB is connected to multiplier MPYB, and this multiplier
MPYB is connected to the adder/subtractor ALUB, and the adder/subtractor
ALUB is data memory via register R1B.
Connected to DMB. And further adder/subtractor
ALUA is an adder/subtractor via register R4B.
The adder/subtractor ALUB is connected to the adder/subtractor ALUA via the register R4A. Note that the above registers R1A, R1B, R2
It is assumed that clocks A, R2B, R4A, and R4B can all be controlled by a program. This embodiment uses the digital data calculation circuit configured as described above to perform four-point Fourier transform or two-point Fourier transform.
It attempts to achieve fast Fourier transform by repeatedly performing point Fourier transform. Therefore, the four-point Fourier transform will be explained first. First, complex number Ak+iak (k=0, 1, 2,
3, i=√−1), the four-point Fourier transform of the angle θ is a complex number
=0,1,2,3,i=√-1). X k +ix k = 1/4 (A 0 + ia 0 ) + 1/4e -i (θ + kπ/2) (A 1 + ia 1
) +1/4e -i (2θ+2kπ/2(A 2 +ia 2
) +1/4e -i (3θ+3kπ/2) (A 3 +ia
3 ) Then, the data string of 2 N data (N: natural natural number) is rearranged appropriately (using a method that extends the so-called bit reversal order), and the data is repeatedly subjected to 4-point Fourier transform (when N is an odd number, 2 N Fast Fourier transform is achieved by performing point Fourier transform (butterfly operation) once. Here, the case where N=4, that is, the number of data is 2 4 =16, will be explained. data to be processed
First, the data numbers 0 to 15 of the subscript are written in 2-bit (so-called twit) units, that is, in quaternary notation, and the digits are reversed and arranged. This results in D 0
~D 15 can be rearranged as follows. D 0 , D 4 , D 8 , D 16 , D 1 , D 5 , D 9 , D 13 , D 2 ,
D6 , D10 , D14 , D3 , D7 , D11 , D15 . Then, the four-point Fourier transform defined by the first equation is repeatedly performed on these data. In other words, as shown in Figure 2, first four pieces of data are
A four-point Fourier transform is performed on D 0 , D 4 , D 8 , and D 12 with θ=0. Next, four data D 1 , D 5 ,
Similarly, 4-point Fourier transform is performed on D 9 and D 13 with θ=0. Below, the remaining data D 2 , D 6 ,
Four-point Fourier transformation is similarly performed on D 10 , D 14 and D × D 7 , D 11 , D 15 with θ=0. The above is the 4-point Fourier transform of the first pass. Subsequently, a four-point Fourier transform is performed for the second pass and subsequent passes. That is, among the 16 newly obtained data, D′ 0 , D′ 1 ,
For D′ 2 , D′ 3 θ=0, D′ 4 , D′ 5 ,
For D′ 6 , D′ 7 θ=π/8, for D′ 8 , D′ 9 , D′ 10 , D′ 11 θ=2π/8, and D′ 12 , D′ 13 , D′ 14 , and D′ 15 are each subjected to four-point Fourier transformation with θ=3π/8. In this way, when the number of data is 16, the Fourier coefficients Y 0 to Y 15 can be obtained by performing 4-point Fourier transform eight times. When rearranging the data, if N is an odd number, the highest data number in the subscript is expressed in binary and the others in 4, and then reversed so that the lowest is in binary and the others in 4. , then perform four-point Fourier transform on these data, and finally perform two-point Fourier transform. Next, an algorithm for performing the above-mentioned four-point Fourier transform will be specifically explained. First, regarding the 4-point Fourier transform when θ=0 in the first pass,
If the input is A k (k=0, 1, 2, 3), the output is
X k +ix k (k=0, 1, 2, 3; i=√-1) is expressed by the following equation based on the first equation. X 0 =1/4A 0 +1/4A 1 +1/4A 2 +1/4A 3 x 0 = 0 X 1 =1/4A 0 -1/4A 2 x 1 =1/4A 1 +1/4A 3 X 2 =1 /4A 0 -1/4A 1 +1/4A 2 -1/4A 3 x 2 =0 X 3 =1/4A 0 -1/4A 2 x 3 =1/4A 1 -1/4A 3 ...Second formula Here, algorithms for performing these calculation processes are shown in FIGS. 3 to 10. Note that the input A k is stored in the data memory DMA, the real part X k of the output is stored in the data memory DMA, and the imaginary part x k
are respectively stored in the data memory DMB. In addition, in Figures 3 to 10,
Steps 1 to 8 below are shown by thick solid lines, and steps 9 to 16 are shown by thick broken lines. Step 1 First, as shown in FIG. 3, data A1 is sent from the data memory DMA to registers R2A and R3A, respectively. Step 2 As shown in Figure 4, register R
Data A 1 from register R3A and coefficient 1/4 from coefficient memory CMA are sent to multiplier MPYA, and data A 1 from register R3A and coefficient 1/4 from coefficient memory CMB are sent to multiplier MPYB for storage. Ru. At the same time, data A 3 is transferred to the data memory.
The signals are sent from the DMA to registers R2A and R3A, respectively. Step 3 As shown in Figure 5, the multiplier
Multiplication of previously stored data in MPYA A 1 ×
1/4 is performed, which is applied to the adder/subtractor ALUA, and the multiplication of the previously stored data in the multiplier MPYB.
A 1 ×1/4 is performed, and these are sent to and stored in the adder/subtractor ALUB, respectively. At the same time, data A3 from register R2A and coefficient memory CMA
The coefficient 1/4 from the register R3A and the coefficient 1/4 from the coefficient memory CMB are sent to the multiplier MPYA and stored therein, respectively. Step 4 As shown in Figure 6, the multiplier
Multiplication of previously stored data in MPYA A 3 ×
1/4 is performed and sent to the adder/subtractor ALUA, where it is added to the previously stored data A 1 /4 and stored. At the same time, the previously stored data is multiplied by A 3 ×1/4 in the multiplier MPYB, and this is sent to the adder/subtractor ALUB and stored. Step 5 As shown in Figure 7, the adder/subtractor
A subtraction A 1 /4 - A 3 /4 of the data previously stored in ALUB is performed and at the same time as this is stored, data A 2 is sent from the data memory DMA to register R2A. Step 6 As shown in Figure 8, register R
Data A 2 from data memory DMA and coefficient 1/4 from coefficient memory CMA are sent to multiplier MPYA for storage, while data A 0 is sent from data memory DMA to register R2A. Step 7 As shown in Figure 9, register R
The data A 0 from 2A and the coefficient 1/4 from the coefficient memory CMA are sent to the multiplier MPYA and stored, while at the same time the multiplication A 2 × 1/4 of the previously stored data in the multiplier MPYA is carried out. This is sent to the adder/subtractor ALUA and stored. Step 8 As shown in Figure 10, the multiplier
Multiplication of previously stored data in MPYA A 0 ×
1/4 is performed and sent to the adder/subtractor ALUA and stored. At the same time, subtraction of the previously stored data A 3 /4 - A 1 /4 is performed in the adder/subtractor ALUB and this is stored. . Step 9 Again, as shown in the third diagram, the previously stored data is added A 0 /4 +A 2 /4 in the adder/subtractor ALUA and is stored. Step 10 As shown again in FIG. 4, the previously stored data is subtracted A 0 /4 - A 2 /4 in the adder/subtractor ALUA and sent to the register R1A. At the same time, data A 3 /4 - A 4 /4 from the adder/subtractor ALUB is sent to the register R1B. Step 11 As shown in FIG. 5 again, data A 1 /4-A 3 /4 from the adder/subtractor ALUB is sent to the register R1B. At the same time, data A 0 /4 - A 2 /4 or X 1 from register R1A is transferred to data memory DMA, data A 3 /4 - A 1 /4 or x 1 from register R1B is transferred to data memory DMB, Each is memorized. Step 12 Again as shown in FIG. 6, the data A 0 /4 - A 2 /4 or X 3 from the register R1A is transferred to the data memory DMA, and the data A 1 /4 - A 3 /4 or x from the register R1B is transferred to the data memory DMA. 3 are respectively stored in the data memory DMB. Step 13 As shown in FIG. 7 again, the previously stored data is added (A 0 /4 + A 2 /4) + (A 1 /4 + A 3 /4) in the adder/subtractor ALUA, and this is stored. be done. Step 14 Again, as shown in Figure 8, the previously stored data is subtracted (A 0 /4 + A 2 /4) - (A 1 /4 + A 3 /4) in the adder/subtractor ALUA, and this is stored in the register. At the same time as being sent to R1A, “0” is sent to the adder/subtractor
Sent from ALUB to register R1B. Step 15 Again, as shown in FIG. 9, the data (A 0 /4+A 2 /4)+(A 1 /4+A 3 /4) from the adder/subtractor ALUA is sent to the register R1A. At the same time, data (A 0 /4 + A 2 /4) - (A 1 /4 + A 3 /4), or X 2 , from register R1A is transferred to the data memory DMA, and "0", or x 2 , is transferred to the data memory DMB from register R1B. are stored respectively. Step 16 As shown in FIG. 10 again, the data from register R1A is (A 0 /4 + A 2 /4) + (A 1 /4
+A 3 /4), that is, X 0 are respectively stored in the data memory DMB. In this way, the 4-point Fourier transform of the first pass is
It looks like it takes 16 steps to do it once, but
Step 1 of the next 4-point Fourier transform can be started when the operation of step 8 above is completed, so steps 9 to 16 described above and steps 1 to 8 of the next 4-point Fourier transform can be performed simultaneously and in parallel. . Therefore, in reality, four-point Fourier transformation can be performed once in eight steps. Next, for the 4-point Fourier transform after the second pulse, the input is A k + ia k (k=0, 1, 2, 3; i=
√−1), the output X k +ix k (k=0, 1,
2, 3; i=√-1) is expressed by the following equation based on the first equation. X 0 =A 0 /4+A 1 /4cosθ+a 1 /4sinθ+A 2 /4cos2
θ +a 2 /4sin2θ+A 3 /4cos3θ+a 3 /4sin3θ x 0 =a 0 /4+a 1 /4cosθ−a 1 /4sinθ+a 2 /4cos2
θ −A 2 /4sin2θ+a 3 /4cos3θ−A 3 /4sin3θ X 1 =A 0 /4−A 1 /4sinθ+a 1 /4cosθ−A 2 /4cos2
θ −a 2 /4sin2θ+A 3 /4sin3θ−a 3 /4cos3θ x 1 = a 0 /4−a 1 /4sinθ−A 1 /4cosθ−a 2 /4cos2
θ +A 2 /4sin2θ+a 3 /4sin3θ+A 3 /4cos3θ X 2 =A 0 /4−A 1 /4cosθ−a 1 /4sinθ+A 2 /4cos2
θ +a 2 /4sin2θ−A 3 /4cos3θ−a 3 /4sin3θ x 2 =a 0 /4−a 1 /4cosθ+A 1 /4sinθ+a 2 /4cos2
θ −A 2 /4sin2θ−a 3 /4cos3θ+A 3 /4sin3θ X 3 =A 0 /4+A 1 /4sinθ−a 1 /4cosθ−A 2 /4cos2
θ −a 2 /4sin2θ−A 3 /4sin3θ+a 3 /4cos3θ x 3 = a 0 /4+Aa/4sinθ+A 1 /4cosθ−a 2 /4cos2
θ +A 2 / 4sin2θ -a 3 /4sin3θ-A 3 /4cos3θ...Equation 3 Here, algorithms for performing these arithmetic operations are shown in FIGS. 11 to 24. In addition,
The real part A k of the input is transferred to the data memory DMA, and the imaginary part
It is assumed that a k is stored in the data memory DMB, a real part X k of the output is stored in the data memory DMA, and an imaginary part x k of the output is stored in the data memory DMB. Further, the following steps 1 to 14 are shown in thick solid lines in FIGS. 11 to 24, and steps 15 to 18 are shown in thick broken lines in FIGS. 11 to 14, respectively. Step 1 First, as shown in Figure 11, data A1 is sent from the data memory DMA to registers R2A and R3A, respectively, and at the same time, the data
a1 is sent from data memory DMB to registers R2B and R3B, respectively. Step 2 As shown in FIG. 12, data a1 from register R3B and coefficient sinθ/4 from coefficient memory CMA are input to multiplier MPYA from data A1 from register R3A and coefficient sinθ/ 4 from coefficient memory CMB. 4 are respectively sent to the multiplier MPYB and stored therein. Step 3 As shown in FIG. 13, data A1 from register R2A and coefficient cos θ/4 from coefficient memory CMA are sent to and stored in multiplier MPYA, while at the same time they are stored in multiplier MPYA first. The data is multiplied by a 1 ×sin θ/4, and this is sent to the adder/subtractor ALUA and stored. On the other hand, data a 1 from register R2B and coefficient memory CMB
At the same time, the coefficient cosθ/4 from be remembered. Also, data A3 is transferred from data memory DMA to register R2A.
At the same time, data a3 is sent from data memory DMB to registers R2B and R3B, respectively. Step 4 As shown in FIG. 14, data a3 from register R3B and coefficient cos3θ/4 from coefficient memory CMA are sent to and stored in multiplier MPYA, and at the same time they are stored in multiplier MPYA first. The data is multiplied by A 1 ×cosθ/4, and this is sent to the adder/subtractor ALUA.
An addition A 1 cos θ/4+a 1 sin θ/4 is performed and stored with the data previously stored within. On the other hand, data A 3 from register R 3A and coefficient sin3θ/4 from coefficient memory CMB are sent to and stored in multiplier MPYB, and at the same time, in this multiplier MPYB, the previously stored data is multiplied by a 1 × cosθ/4 is performed and sent to the adder/subtractor ALUB, where it is subtracted from the previously stored data a 1 cosθ/4−A 1 sinθ/
4 is performed and stored. Here, adder/subtractor
The data stored in ALUA and ALUB are defined as shown below. P 1 <=A 1 cosθ/4+a 1 sinθ/4 Q 1 <=a 1 cosθ/4−A 1 sinθ/4 ……4th formula Step 5 As shown in Figure 15, data A 3 from register R2A and the coefficient cos3θ/4 from the coefficient memory CMA are sent to and stored in the multiplier MPYA, and at the same time, multiplication a 3 ×sin3θ/4 of the previously stored data is performed in this multiplier MPYA, is sent to and stored. On the other hand, data a 3 from register R2B and coefficient memory
At the same time that the coefficient cos3θ/4 from CMB is sent to the multiplier MPYB and stored, the previously stored data is multiplied A 3 ×sin3θ/4 in this multiplier MPYB, and this is sent to the adder/subtractor ALUB. be remembered. Further, data A 2 is sent from the data memory DMA to registers R2A and R3A, and data a 2 is sent from the data memory DMB to registers R2B and R3B, respectively. Step 6 As shown in FIG. 16, data a2 from register R3B and coefficient sin2θ/4 from coefficient memory CMA are sent to and stored in adder/subtractor MPYA, and at the same time are stored in this multiplier MPYA first. The data is multiplied by A 3 × cos3θ/4, and this is sent to the adder/subtractor ALUA.
Addition to previously stored data in ALUA
A 3 cos3θ/4+a 3 sinθ3/4 is performed and stored. On the other hand, data A2 from register R3A and coefficient sin2θ/4 from coefficient memory CMB are sent to and stored in multiplier MPYB, and at the same time, the previously stored data is multiplied a3 ×cos3θ in this multiplier MPYB. /4 is performed and sent to the adder/subtractor ALUB, where it is added with the previously stored data.
a 3 cos3θ/4+A 3 sin3θ/4 is performed and stored. Here, the data stored in the adder/subtractors ALUA and ALUB are defined as shown in the following equations. P 3 <= A 3 cos3θ/4+a 3 sin3θ/4 Q 3 <=a 3 cos3θ/4+A 3 sin3θ/4...5th equation Step 7 As shown in Figure 17, data A2 and coefficients from register R2A At the same time that the coefficient cos2θ/4 from the memory CMA is sent to and stored in the multiplier MPYA, the previously stored data is multiplied a 2 ×sin2θ/4 in this multiplier MPYA, and this is sent to the adder/subtractor ALUA. is sent to and stored. on the other hand,
Data a 2 from register R2B and coefficient memory
At the same time that the coefficient cosθ/4 from CMB is sent to the multiplier MPYB and stored, the previously stored data is multiplied A 2 ×sin2θ/4 in this multiplier MPYB, and this is sent to the adder/subtractor ALUB. be remembered. Step 8 As shown in Figure 18, the multiplier
Multiplication of previously stored data in MPYA A 2 ×
cos2θ/4 is performed and sent to the adder/subtractor ALUA, where addition A 2 cos2θ/4+a 2 sin2θ/4 is performed and stored with the previously stored data. On the other hand, the data stored in the multiplier MPYB is multiplied by a 2 ×cos2θ/4, and this is sent to the adder/subtractor ALUB, which subtracts the previously stored data by a 2 cos2θ/4. −A 2 sin2θ/4 is performed and stored. Further, data A 0 is sent from the data memory DMA to the register R2A, and data a 0 is sent from the data memory DMB to the register R2B. Here, adder/subtractor ALUA and ALUB
The data stored in is defined as follows. P 2 <=A 2 cos2θ/4+a 2 sin2θ/4 Q 2 <=a 2 cos2θ/4−A 2 sin2θ/4...Equation 6 Step 9 As shown in FIG. 19, data A 0 from register R2A and the coefficient 1/4 from the coefficient memory CMA are sent to the multiplier MPYA and stored, while at the same time the data a 0 from the register R2B and the coefficient 1/4 from the coefficient memory CMB are sent to the multiplier MPYB and stored. . Also, subtraction P 1 −P 3 of the previously stored data is performed in the adder/subtractor ALUA,
At the same time this is sent to register R4B, the previously stored data is subtracted Q 1 in the adder/subtractor ALUB.
−Q 3 is performed and this is sent to register R 4 A. Step 10 As shown in Figure 20, the multiplier
Multiplication of previously stored data in MPYA A 0 ×
1/4 is performed and sent to the adder/subtractor ALUA, where subtraction 1/4A 0 -P 2 is performed and stored with the previously stored data. On the other hand, the multiplication of the previously stored data in the multiplier MPYB is a 0
×1/4 is performed and sent to the adder/subtractor ALUB, where subtraction 1/4a 0 −Q 2 is performed with the previously stored data and stored. Step 11 As shown in FIG. 21, the data Q 1 -Q 3 from the register R4A is sent to the adder/subtractor ALUA, where it is added to the previously stored data (A 0 /4 - P 2 )+(Q 1 -Q 3 ) is performed and sent to register R1A. At the same time, data P 1 -P 3 from register R4B is sent to the adder/subtractor ALUB, and subtracted from the previously stored data in this adder/subtracter ALUB (a 0 /4 - Q 2 ) - (P 1 - P 3 ) is performed and sent to register R1B. Step 12 As shown in FIG. 22, the data Q 1 -Q 3 from the register R4A is sent to the adder/subtractor ALUA, where it is subtracted (A 0 /4 - P 2 ) with the previously stored data. ) - (Q 1 - Q 3 ) is performed and at the same time this is sent to register R1A,
Data (A 0 /4 - P 2 ) + (Q 1 - Q 3 ) from this register R1A, that is, data X 1 is stored in the data memory.
Stored in DMA. On the other hand, data P 1 - P 3 from register R4B is sent to the adder/subtractor ALUB, and is added to the previously stored data in this adder/subtracter ALUB (a 0 /4 - Q 2 ) + (P 1 - P 3 ) is performed and sent to the register R1B, and at the same time the data (a 0 /4-Q 2 )-(P 1 -P 3 ) or x 1 from this register R1B is stored in the data memory DMB. Step 13 As shown in FIG. 23, data A 0 from register R2A and coefficient 1/4 from coefficient memory CMA are input to multiplier MPYA, data a 0 from register R2B and coefficient 1/4 from coefficient memory CMB are input to multiplier MPYA. are respectively sent to and stored in the multiplier MPYB. Additionally, addition P 1 + P 3 of the previously stored data is performed and stored in the adder/subtractor ALUA, and addition Q 1 + P 3 of the previously stored data is performed in the adder/subtracter ALUB.
Q 3 is performed and stored. Furthermore, register R1A
The data from (A 0 /4 - P 2 ) - (Q 1 - Q 3 ) i.e. X 3 is stored in the data memory DMA and is stored in the register R
The data (a 0 /4-Q 2 )+(P 1 -P 3 ) or x 3 from 1B is stored in the data memory DMB. Step 14 As shown in Figure 24, the multiplier
Multiplication of previously stored data in MPYA A 0 ×
1/4 is performed and sent to the adder/subtracter ALUA, where addition A 0 /4+P 2 is performed with the previously stored data and stored. At the same time, the multiplier MPYB multiplies the previously stored data by a 0 × 1/4, and this is sent to the adder/subtractor ALUB, where it is added with the previously stored data. a 0 /4+Q 2 is performed and stored. Step 15 Again, as shown in FIG. 11, the previously stored data is subtracted (A 0 /4 + P 2 ) - (P 1 + P 3 ) in the adder/subtractor ALUA, and at the same time this is sent to the register R1A. , adder/subtractor ALUB
The data previously stored within is subtracted (a 0 /4+Q 2 )−(Q 1 +Q 3 ), and this is sent to register R1B. Step 16 Again, as shown in FIG. 12, the previously stored data (A 0 /4 + P 2 ) + (P 1 + P 3 ) is added in the adder/subtractor ALUA, and this is added to the register R.
1A, the data (A 0 /4+P 2 )-(P 1 +P 3 ), or X 2 from this register R1A is stored in the data memory DMA. Also, the data previously stored in the adder/subtractor ALUB is added (a 0 /4 + Q 2 ) + (Q 1 + Q 3 ), and at the same time this is sent to register R1B, this register R
The data (a 0 /4+Q 2 )−(Q 1 +Q 3 ) or x 2 from 1B is stored in the data memory DMB. Step 17 Nothing is done. Step 18 As shown in FIG. 14 again, at the same time that the data (A 0 /4 + P 2 ) + (P 1 + P 3 ) from register R1A, that is, X 0 , is stored in the data memory DMA, the data from register R1B is (a 0 /4 + Q 2 ) + (Q 1 + Q 3 ), that is, x 0 is the data memory DMB
is memorized. In this way, it seems to take 18 steps to perform one 4-point Fourier transform after the second pass, but once the operation of step 14 is completed,
Since step 1 of the next 4-point Fourier transform can be started, steps 15 to 18 above and the next 4 points can be started.
Steps 1 to 4 of the point Fourier transform can be performed simultaneously and in parallel. Therefore, in reality, one four-point Fourier transform can be performed in 14 steps. Note that step 17 above says "Nothing is done." This means that the data memory
This is because the input and output paths of DMA and DMB are shared, and data cannot be written and read at the same time. Further, when N is an odd number, two-point Fourier transformation is performed only once, but this can be done using an algorithm for normal butterfly calculation. In addition, in the four-point Fourier transform of this embodiment, as shown in the third equation, the real part X k after the transform
and the imaginary part x k each contain a common term.
Therefore, in order to utilize this common term, the digital data calculation circuit of this embodiment is provided with mutual exchange paths, that is, registers R4A and R4B between the real number calculation section and the imaginary number calculation section. That is, by performing the operation shown in FIG. 19, the calculation processing time can be significantly shortened. In other words, when using the conventional method of repeating two-point Fourier transform for 2N data, the number of steps required was N・2N +1 , but using a digital data calculation circuit like this example, If the four-point Fourier transform is repeated, the number of steps required will be as follows. When N is an even number, 1st pass...8 x 2 N /4 = 2 x 2 N 2nd to N/2 passes...(N/2-1) x 14 x 2 N /4 = (7N-14) 2 N -2 total (7N-6) 2 N-2 steps When N is an odd number 1st pass...8 x 2 N /4 = 2 x 2 N 2nd to N-1/2 passes... (N-1/2- 1) × 14 × 2 N / 4 = (7N-21) 2 N-2 Nth + 1/2 pass (2-point Fourier transform)...4 × 2 N / 2 = 2 N + 1 total (7N-5) 2 N -2 steps Here, for example, N=4, 5, 6, 7, 8,
As 9 and 10, the conventional two-point Fourier transform circuit and 4
Table 1 shows the specific number of steps and their ratios in the digital data arithmetic circuit of this embodiment that performs point Fourier transform.

【表】【table】

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

上述した実施例の説明から明らかなように、本
発明によれば高速フーリエ変換を行う際に、演算
器(乗算器、加減算器)やメモリの数を増やすこ
となく、演算処理時間を短縮することができ所期
の目的を十分に達成することができる。
As is clear from the description of the embodiments described above, according to the present invention, when performing fast Fourier transform, the calculation processing time can be shortened without increasing the number of calculation units (multipliers, adders/subtractors) or memories. can fully achieve the intended purpose.

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

第1図は本発明に係るデイジタルデータ演算回
路の一実施例を示すブロツク図である。第2図は
2Nデータに対する4点フーリエ変換の一例を示す
模式図である。第3図ないし第24図は上記第2
図で示した4点フーリエ変換を実際に行うための
アルゴリズムを示しており、第3図ないし第10
図は第1パスの場合、第11図ないし第24図は
第2パス以降の場合をそれぞれ示すブロツク図で
ある。 CMA,CMB…係数メモリ、MPYA,MPYB
…乗算器、ALUA,ALUB…加減算器、DMA,
DMB…データメモリ、R4A,R4B…レジス
タ。
FIG. 1 is a block diagram showing an embodiment of a digital data calculation circuit according to the present invention. Figure 2 is
FIG. 2 is a schematic diagram showing an example of four-point Fourier transform for 2N data. Figures 3 to 24 are from the above 2nd figure.
The algorithm for actually performing the four-point Fourier transform shown in the figure is shown, and Figures 3 to 10
The figure shows the case of the first pass, and FIGS. 11 to 24 are block diagrams showing the cases of the second pass and subsequent passes, respectively. CMA, CMB...Coefficient memory, MPYA, MPYB
…multiplier, ALUA, ALUB…addition/subtractor, DMA,
DMB...Data memory, R4A, R4B...Register.

Claims (1)

【特許請求の範囲】 1 デイジタルサンプル値に基づくデイジタルデ
ータを記憶する第1、第2のデータメモリと、 上記デイジタルデータの係数を記憶する少なく
とも1つの係数メモリと、 上記係数と上記第1、第2のデータメモリから
供給される上記デイジタルデータとをそれぞれ乗
算する第1、第2の乗算器と、 上記第1、第2の乗算器からそれぞれ順次供給
されるデータを加減算する第1、第2の加減算器
と、 上記第1の加減算器の出力データを記憶し、所
定のタイミングで上記第2の加減算器に供給する
第1のレジスタと、 上記第2の加減算器の出力データを記憶し、所
定のタイミングで上記第1の加減算器に供給する
第2のレジスタとを備え、 上記第1、第2のデータメモリはそれぞれ上記
第1、第2の加減算器の出力データを記憶するよ
うになされていることを特徴とするデイジタルデ
ータ演算回路。
[Scope of Claims] 1. First and second data memories for storing digital data based on digital sample values; at least one coefficient memory for storing coefficients of the digital data; and at least one coefficient memory for storing coefficients of the digital data; first and second multipliers that respectively multiply the digital data supplied from the second data memory; and first and second multipliers that add and subtract the data sequentially supplied from the first and second multipliers, respectively. an adder/subtractor; a first register that stores output data of the first adder/subtractor and supplies it to the second adder/subtracter at a predetermined timing; and a first register that stores output data of the second adder/subtractor; a second register that supplies data to the first adder/subtracter at a predetermined timing, and the first and second data memories are configured to store output data of the first and second adder/subtracters, respectively. A digital data calculation circuit characterized by:
JP58250983A 1983-12-30 1983-12-30 Digital data arithmetic circuit Granted JPS60144872A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP58250983A JPS60144872A (en) 1983-12-30 1983-12-30 Digital data arithmetic circuit

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP58250983A JPS60144872A (en) 1983-12-30 1983-12-30 Digital data arithmetic circuit

Publications (2)

Publication Number Publication Date
JPS60144872A JPS60144872A (en) 1985-07-31
JPH0532784B2 true JPH0532784B2 (en) 1993-05-17

Family

ID=17215927

Family Applications (1)

Application Number Title Priority Date Filing Date
JP58250983A Granted JPS60144872A (en) 1983-12-30 1983-12-30 Digital data arithmetic circuit

Country Status (1)

Country Link
JP (1) JPS60144872A (en)

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS50130333A (en) * 1972-07-31 1975-10-15
JPS52115638A (en) * 1976-03-25 1977-09-28 Shindengen Electric Mfg Fourier converter

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS50130333A (en) * 1972-07-31 1975-10-15
JPS52115638A (en) * 1976-03-25 1977-09-28 Shindengen Electric Mfg Fourier converter

Also Published As

Publication number Publication date
JPS60144872A (en) 1985-07-31

Similar Documents

Publication Publication Date Title
JP7074363B2 (en) Homomorphic processing unit (HPU) to accelerate secure computation under homomorphic encryption
White Applications of distributed arithmetic to digital signal processing: A tutorial review
US6901422B1 (en) Matrix multiplication in a vector processing system
US8332451B2 (en) Programmable CORDIC Processor
CN107797962B (en) Neural network based computational array
US4769779A (en) Systolic complex multiplier
US8447799B2 (en) Process for QR transformation using a CORDIC processor
US6370556B1 (en) Method and arrangement in a transposed digital FIR filter for multiplying a binary input signal with tap coefficients and a method for designing a transposed digital filter
EP1008060A1 (en) A device and method for calculating fft
US4680727A (en) Complex multiplier for binary two&#39;s complement numbers
US20010039557A1 (en) Digital signal processor
GB1571702A (en) Digital signal processing arrangement
CA1321838C (en) Apparatus and method for flexible control of digital signal processing devices
Nagpal et al. Processor architectures for two-dimensional convolvers using a single multiplexed computational element with finite field arithmetic
JPH0532784B2 (en)
CN113378108A (en) Fast Fourier transform circuit of audio processing device
US5845093A (en) Multi-port digital signal processor
US8452830B2 (en) Programmable CORDIC processor with stage re-use
Arguello et al. Parallel architecture for fast transforms with trigonometric kernel
US20030195913A1 (en) Shared multiplication for constant and adaptive digital filters
EP0782262A2 (en) Update block for an adaptive equalizer filter configuration capable of processing complex-valued coefficient signals
JP3709291B2 (en) Fast complex Fourier transform method and apparatus
JP3684314B2 (en) Complex multiplier and complex correlator
CN103870437A (en) Digital signal processing device and processing method thereof
JPH0516618B2 (en)

Legal Events

Date Code Title Description
EXPY Cancellation because of completion of term