JPH10260958A - アドレス生成回路 - Google Patents

アドレス生成回路

Info

Publication number
JPH10260958A
JPH10260958A JP6768097A JP6768097A JPH10260958A JP H10260958 A JPH10260958 A JP H10260958A JP 6768097 A JP6768097 A JP 6768097A JP 6768097 A JP6768097 A JP 6768097A JP H10260958 A JPH10260958 A JP H10260958A
Authority
JP
Japan
Prior art keywords
data
address
stage
circuit
output
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.)
Withdrawn
Application number
JP6768097A
Other languages
English (en)
Inventor
Yutaka Tanaka
裕 田中
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.)
NEC Engineering Ltd
Original Assignee
NEC Engineering Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by NEC Engineering Ltd filed Critical NEC Engineering Ltd
Priority to JP6768097A priority Critical patent/JPH10260958A/ja
Publication of JPH10260958A publication Critical patent/JPH10260958A/ja
Withdrawn legal-status Critical Current

Links

Abstract

(57)【要約】 【課題】 係数メモリに与える読出アドレスを生成し、
ポイント数の大きなFFT演算を効率良く処理する。 【解決手段】 基数2,3,4,5の4種類の基本バタ
フライ演算回路を用意し、夫々の基本バタフライ演算回
路に対応したアドレスを累積加算回路10〜30及び乗
算回路40で生成する。このため、基本バタフライ演算
回路の組合わせによって様々な演算処理を行うことがで
きる。特に、8以上1024以下のポイント数に対し
て、2以上10以下の任意の段数のFFT演算処理を行
うことができる。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明はアドレス生成回路に
関し、特に高速フーリエ変換を行うためのバタフライ演
算に用いる係数データが格納された係数メモリに対して
読出用アドレスを生成するアドレス生成回路に関する。
【0002】
【従来の技術】時間信号の周波数(スペクトラム)解析
やフィルタリング、画像信号の処理等のディジタル信号
処理に用いられる技術として、離散フーリエ変換(Di
screte Fourier Transform;
以下、DFTと呼ぶ)がある。このDFTを効率良く計
算する方法として、高速フーリエ変換(Fast Fo
urier Transform;以下、FFTと呼
ぶ)がある。FFTを行う場合には、図7に示されてい
るようなバタフライ演算回路を単位として行われるのが
一般的である。
【0003】同図において、(a)は周波数間引き(d
ecimation in frequency)型バ
タフライ演算回路であり、(b)は時間間引き型バタフ
ライ演算回路である。ここで、2つの入力を夫々x,y
とし2つの出力を夫々X,Yとすると、同図(a)にお
いては、 X=x+y Y=(x−y)・Wn である。なお、Wnはひねり係数(twiddle f
actor)である。同様に、同図(b)においては、 X=x+Wn・y Y=x−Wn・y である。これら周波数間引き型バタフライ演算回路又は
時間間引き型バタフライ演算回路を用いることによって
FFT演算を実現することができるのである。この場
合、読出しアドレスを与えることによって係数メモリか
らひねり係数Wnを読出す。
【0004】ところで、係数メモリからひねり係数Wn
を読出すための読出しアドレスの発生方法が特開平4―
138562号公報に記載されている。同公報に記載さ
れているアドレス発生方法では、1つのカウンタと、そ
のカウンタから出力されたデータを入力とする可変ビッ
ト幅逆順回路とを用いてアドレスを生成している。そし
て、かかる構成で係数アドレスを発生する場合は、以下
の動作となる。すなわち、カウンタは、「0」からカウ
ント動作を始めて1ずつインクリメントする。そしてカ
ウンタは、FFTのポイント数及びステージ(列)番号
に応じた数だけ繰返しカウント動作を行う。一方、可変
ビット幅逆順回路は、FFTのポイント数に応じたビッ
ト数だけ逆順操作を行う。こうすることにより、所定の
係数アドレスが得られるのである。
【0005】次に、同公報に記載されている読出しアド
レスの発生方法を、周波数間引きによるFFTの場合に
ついて、より具体的に説明する。図8はポイント数が
「8」である場合の従来の周波数間引きFFT演算手順
を示す図である。同図において、「0」〜「7」は、ア
ドレス生成回路によって生成された読出しアドレスを示
す。また、x(0)〜x(7)は入力データ、X(0)
〜X(7)は出力データである。さらに、F0(0)〜
F0(7),F1(0)〜F1(7),F2(0)〜F
2(7)は、FFT演算における中間結果のデータであ
る。なお、W0〜W3はひねり係数である。
【0006】同図においては、F0(0)〜F0(7)
までが第0列段の演算結果のデータ、F0(0)〜F0
(7)からF1(0)〜F1(7)までが第1列段の演
算結果のデータ、F1(0)〜F1(7)からF2
(0)〜F2(7)までが第2列段の演算結果のデータ
である。
【0007】まず、第0列段の演算では、「0」,
「1」,「2」,「3」,「4」,「5」,「6」,
「7」とアドレスを順次発生させる。そして、各アドレ
スを夫々2進数で表現し、以下のように全ビット逆順操
作を行う。
【0008】 0(000)→0(000) 1(001)→4(100) 2(010)→2(010) 3(011)→6(110) 4(100)→1(001) 5(101)→5(101) 6(110)→3(011) 7(111)→7(111) なお、矢印の左側がアドレス変換前のアドレスで、矢印
の右側が変換後のアドレスである。この変換によって得
られたアドレスを用いて、図示せぬデータメモリからデ
ータを読出す。このデータメモリから読出されたデータ
が、入力データx(0)〜x(7)である。そして、こ
の読出されたデータについて、アドレス「0」とアドレ
ス「4」、アドレス「2」とアドレス「6」、アドレス
「1」とアドレス「5」、アドレス「3」とアドレス
「7」の各対でバタフライ演算が行われる。つまり、入
力データx(0)と入力データx(4)、入力データx
(2)と入力データx(6)、入力データx(1)と入
力データx(5)、入力データx(3)と入力データx
(7)の各対に対してタフライ演算が行われる。この演
算で得られた結果は、図示せぬデータメモリの「0」,
「4」,「2」,「6」,「1」,「5」,「3」,
「7」のアドレスに夫々書込まれる。
【0009】また、第0段目で使用する係数W0〜W3
を係数メモリから読出すためのアドレスは、「0」,
「0」,「2」,「2」,「1」,「1」,「3」,
「3」となる。同図に示されているバタフライ演算で
は、これら係数W0〜W3を乗算した後、加算するので
ある。例えば、入力データx(0)と入力データx
(4)との対についてのバタフライ演算では、入力デー
タx(4)に係数W0を掛けたものと入力データx
(0)とを加算することになる。入力データx(2)と
入力データx(6)との対についてのバタフライ演算で
は、入力データx(6)に係数W2を掛けたものと入力
データx(2)とを加算することになる。
【0010】同様に、入力データx(1)と入力データ
x(5)との対についてのバタフライ演算では、入力デ
ータx(5)に係数W1を掛けたものと入力データx
(1)とを加算することになる。入力データx(3)と
入力データx(7)との対についてのバタフライ演算で
は、入力データx(7)に係数W3を掛けたものと入力
データx(3)とを加算することになる。
【0011】次に、第1段目の演算では、図示せぬデー
タメモリに対して「0」,「2」,「1」,「3」,
「4」,「6」,「5」,「7」と順次アドレスを発生
する。これにより、データF0(0)とデータF0
(2),データF0(1)とデータF0(3),データ
F0(4)とデータF0(6),データF0(5)とデ
ータF0(7)を夫々対にしてバタフライ演算を行う。
この演算結果は、データF1(0),データF1
(2),データF1(1),データF1(3),データ
F1(4),データF1(6),データF1(5),デ
ータF1(7)に夫々書込まれる。なお、係数メモリの
読出しアドレスは「0」,「2」であり、それらアドレ
スにより読出される係数を交互に用いる。具体的には、
データF0(0)とデータF0(2)との対についての
バタフライ演算では、データF0(2)に係数W0を掛
けたものとデータF0(0)とを加算することになる。
データF0(1)とデータF0(3)との対についての
バタフライ演算では、データF0(3)に係数W1を掛
けたものとデータF0(1)とを加算することになる。
【0012】同様に、データF0(4)とデータF0
(6)との対についてのバタフライ演算では、データF
0(6)に係数W0を掛けたものとデータF0(4)と
を加算することになる。データF0(5)とデータF0
(7)との対についてのバタフライ演算では、データF
0(7)に係数W1を掛けたものとデータF0(5)と
を加算することになる。
【0013】さらに、第2段目の演算では、図示せぬデ
ータメモリに対して「0」,「1」,「2」,「3」,
「4」,「5」,「6」,「7」と順次アドレスを発生
する。これにより、データF1(0)とデータF1
(1),データF1(2)とデータF1(3),データ
F1(4)とデータF1(5),データF1(6)とデ
ータF1(7)を夫々対にしてバタフライ演算を行う。
この演算結果は、データF2(0),データF2
(1),データF2(2),データF2(3),データ
F2(4),データF2(5),データF2(6),デ
ータF2(7)に夫々書込まれる。なお、係数メモリの
読出しアドレスは「0」であり、このアドレスにより読
出される係数を常に用いる。したがって、データF1
(0)とデータF1(1)との対についてのバタフライ
演算では、データF1(1)に係数W0を掛けたものと
データF1(0)とを加算することになる。データF1
(2)とデータF1(3)との対についてのバタフライ
演算では、データF1(3)に係数W0を掛けたものと
データF1(2)とを加算することになる。
【0014】データF1(4)とデータF1(5)との
対についてのバタフライ演算では、データF1(5)に
係数W0を掛けたものとデータF1(4)とを加算する
ことになる。,データF1(6)とデータF1(7)と
の対についてのバタフライ演算では、データF1(7)
に係数W0を掛けたものとデータF1(6)とを加算す
ることになる。
【0015】以上のようにバタフライ演算を繰返し行う
ことにより、ポイント数が大きいFFT演算をも行うこ
とができるのである。
【0016】
【発明が解決しようとする課題】上述した特許公報に記
載されているアドレス発生方法においては、決められた
ポイント数に対して、決められた段数でしかFFT演算
を行うことができないという欠点がある。また、FFT
による演算を最適に処理しているものの、簡単なFFT
演算(基数2のFFT演算)に対してのみ処理を行うこ
とができないという欠点がある。
【0017】本発明は上述した従来技術の欠点を解決す
るためになされたものであり、その目的はポイント数の
大きなFFT演算を効率良く処理するために必要なアド
レスを生成することのできるアドレス生成回路を提供す
ることである。
【0018】
【課題を解決するための手段】本発明によるアドレス生
成回路は、所定入力データについて高速フーリエ変換を
行うためのバタフライ演算に用いる係数データが格納さ
れた係数メモリに対して該係数データの読出用アドレス
を生成するアドレス生成回路であって、基数N(Nは、
2〜5の全ての整数)のバタフライ演算を行わせるため
の読出用アドレスを夫々生成する第1〜第4のアドレス
生成手段と、前記第1〜第4のアドレス生成手段のうち
のいずれかにより生成されるアドレスを用いた係数デー
タの読出し動作を前記入力データのデータ数に応じて繰
返す手段とを含み、この読出されたデータについて前記
バタフライ演算を行わせるようにしたことを特徴とす
る。
【0019】要するに本アドレス生成回路は、基数2,
3,4,5の4種類の基本バタフライ演算回路を用意
し、これらを組合わせることで、ポイント数の大きなF
FT演算を効率良く実行するものである。
【0020】従来のアドレス発生回路では、基数を2と
したバタフライ演算回路の組合わせによって行うFFT
演算のみを考慮したアドレス生成を行っている。これに
対し本発明では、基数2,3,4,5の4種類の基本バ
タフライ演算回路を用意し、夫々の基本バタフライ演算
回路に対応したアドレスの生成を行う。このため、基本
バタフライ演算回路の組合わせによって様々な演算処理
を行うことができる。特に、8以上1024以下のポイ
ント数に対して、2以上10以下の任意の段数のFFT
演算処理を行うことができる。そして、各段の演算回路
をパイプライン接続することによって、演算処理が効率
良く行えるように、係数メモリに対するアドレスを生成
しているのである。
【0021】ここで本アドレス生成回路において用いる
係数メモリの読出アドレスの算出式は以下の通りであ
る。すなわち、1段目の読出アドレスの算出式は、「n
0 (k0 +k1 r10+k2 r9 r10+k3 r8 r9 r10
+k4 r7 r8 r9 r10+k5 r6 r7 r8 r9 r10+
k6 r5r6 r7 r8 r9 r10+k7 r4 r5 r6 r7
r8 r9 r10+k8 r3 r4 r5r6 r7 r8 r9 r1
0)」である。2段目の読出アドレスの算出式は、「n1
r1 (k0 +k1 r10+k2 r9 r10+k3 r8 r9
r10+k4 r7 r8 r9 r10+k5 r6 r7 r8 r9 r
10+k6r5 r6 r7 r8 r9 r10+k7 r4 r5 r6
r7 r8 r9 r10)」である。3段目の読出アドレスの
算出式は、「n2 r1 r2 (k0 +k1 r10+k2 r9
r10+k3 r8 r9 r10+k4 r7 r8 r9 r10+k5
r6 r7 r8 r9 r10+k6 r5 r6 r7 r8 r9 r1
0)」である。4段目の読出アドレスの算出式は、「n3
r1 r2 r3 (k0 +k1 r10+k2r9 r10+k3 r
8 r9 r10+k4 r7 r8 r9 r10+k5 r6 r7 r8
r9 r10)」である。5段目の読出アドレスの算出式
は、「n4 r1 r2 r3 r4 (k0 +k1 r10+k2 r
9 r10+k3 r8 r9 r10+k4 r7 r8 r9 r10)」
である。6段目の読出アドレスの算出式は、「n5 r1
r2 r3 r4 r5 (k0 +k1 r10+k2 r9 r10+k
3 r8 r9 r10)」である。7段目の読出アドレスの算
出式は、「n6 r1 r2 r3 r4 r5 r6 (k0 +k1
r10+k2 r9 r10)」である。8段目の読出アドレス
の算出式は、「n7 r1 r2 r3 r4 r5 r6 r7 (k
0+k1 r10)」である。9段目の読出アドレスの算出
式は、「n8 r1 r2 r3 r4 r5 r6 r7 r8 k0 」
である。10段目の読出アドレスは、「1」である。な
お、以上のアドレス算出式は、10列のサンデーチュー
キひねり係数アルゴリズムを実現したものである。
【0022】
【発明の実施の形態】次に、本発明の実施の一形態につ
いて図面を参照して説明する。
【0023】図1は本発明によるアドレス生成回路の実
施の一形態を示すブロック図である。このアドレス生成
回路は、上述したアドレス生成式を用いて構成した回路
である。同図のアドレス生成回路では、生成すべき係数
アドレスの値があるパターンの繰返しに従っていること
を利用している。
【0024】同図においてアドレス生成回路は、信号K
L をデータ(DATA)入力としクロックRDRCLK
をリセット(RESET)入力とする累積加算回路10
と、信号KL ×DL をデータ入力としクロックRDRC
LKをリセット入力とする累積加算回路30と、累積加
算回路10の出力を入力としDRCLKをリセット入力
とする累積加算回路20とを含んで構成されている。
【0025】累積加算回路10及び30はクロックDR
CLKを入力クロックとし、累積加算回路20はクロッ
クRLCLKを入力クロックとしている。これら累積加
算回路は、与えられた初期値の1倍、2倍、3倍…の値
を順次出力する回路であり、周知のカウンタ回路で構成
することができる。例えば、初期値が「1」のとき
「1」,「2」,「3」,…を順次出力し、初期値が
「2」のとき「2」,「4」,「6」,…を順次出力
し、初期値が「3」のとき「3」,「6」,「9」,…
を順次出力する。
【0026】ここでKL は、KL =N/(RL-1 ×DL-
1 )である。なお、RL-1 は、第(L−1)段目の基数
である。DL-1 は第(L−1)段目において係数メモリ
から係数データを読出すアドレスの間隔(DISTAN
CE)を示す値である。例えば、D1 =N/r1,D2
=N/(r1×r2),D3 =N/(r1×r2×r
3),…,DL =N/(r1×…×rL)である。
【0027】また、同図においてアドレス生成回路は、
累積加算回路30の出力をクロック(CL)入力としそ
の1倍,2倍,3倍及び4倍のクロックを出力する乗算
回路40と、この乗算回路40から出力される各クロッ
クと累積加算回路20の出力とを夫々加算する加算器5
0−1,50−2,50−3,50−4と、累積加算回
路20の出力及び加算器50−1〜50−4の出力を個
別に保持するレジスタ(REG)60と、このレジスタ
60に保持されている累積加算回路20の出力に応じて
加算器50−1〜50−4の出力を択一的に出力するセ
レクタ(SEL)70とを含んで構成されている。セレ
クタ70の出力は、読出アドレス(ADDRESS)と
して図示せぬ係数メモリに与えられる。
【0028】ここで、上述した各クロックRLCLK,
DRCLK及びRDRCLKは、図2に示されているよ
うにカウンタ1,カウンタ2及びカウンタ3によって生
成される。カウンタ1,カウンタ2及びカウンタ3は、
同図に示されているように、夫々D型フリップフロップ
によって構成される。
【0029】カウンタ1は、RL をD入力とするD型フ
リップフロップで構成される。そして、そのQ出力がク
ロックRLCLKとなる。またカウンタ2は、クロック
RLCLKをイネーブル(EN)入力とし、DL をD入
力とするD型フリップフロップで構成される。そして、
そのQ出力がクロックDRCLKとなる。さらにまたカ
ウンタ3は、クロックDRCLKをイネーブル(EN)
入力とし、RL-1 をD入力とするD型フリップフロップ
で構成される。そして、そのQ出力がクロックRDRC
LKとなる。なお各カウンタ1〜3を構成する各D型フ
リップフロップは、システムクロックSYSCLKをク
ロック(C)入力としている。
【0030】これらカウンタ1,カウンタ2及びカウン
タ3によって生成される各クロックRLCLK,DRC
LK,RDRCLKは、図3に示されている出力タイミ
ングとなる。すなわち、同図に示されているように、ク
ロックRLCLKを2分周したものがクロックDRCL
Kである。また、このクロックDRCLKをさらに2分
周したものがクロックRDRCLKである。各クロック
の立上りタイミングは一致する。
【0031】図4〜図6は、図1のアドレス生成回路に
実際に値を与えた場合の出力値を示すタイムチャートで
ある。これらの各図においては、ポイント数を「12
0」としている。また、1段目の基数を「5」,2段目
の基数を「4」,3段目の基数を「3」,4段目の基数
を「2」に夫々設定し、図示せぬ係数メモリへの読出ア
ドレスを生成する場合が示されている。そして、ある段
の基数によるアドレス生成が終了すると、そのタイミン
グで次段の基数によるアドレス生成が開始されるものと
する。これにより、各段をパイプライン接続しつつアド
レスを生成する。
【0032】ただし、1段目の演算に必要な読出アドレ
スは、データメモリのリードアドレスと同一であるの
で、実際にアドレスを生成するのは2段目以降である。
【0033】まず、2段目の動作が示されている図4を
参照すると、同図には、システムクロックSYSCLK
と、各カウンタ1〜3によって生成されるクロックRL
CLK,クロックDRCLK及びクロックRDRCLK
と、累積加算回路10の出力と、累積加算回路20の出
力と、乗算回路40の各出力1×CL ,2×CL ,3×
CL 及び4×CL と、セレクタ70から出力されるアド
レスADDRESSとが示されている。
【0034】同図に示されているように、システムクロ
ックSYSCLKと、各カウンタ1〜3によって生成さ
れるクロックRLCLK,クロックDRCLK及びクロ
ックRDRCLKとが入力されると、累積加算回路10
及び20は初期値から累積加算動作を行う。すなわち、
累積加算回路10は、「0」,「1」,「2」…と出力
値を「1」ずつインクリメントする。累積加算回路20
は、「0」,「1」,「2」,「3」,「4」,「5」
と出力値を「1」ずつインクリメントした後、「0」,
「2」,「4」,「6」と出力値を「2」ずつインクリ
メントする。
【0035】また、乗算回路40の出力1×CL は、
「0」,「6」,「12」,「18」…となる。このた
め、出力2×CL は「0」,「12」,「24」,「3
6」…、出力3×CL は「0」,「18」,「36」,
「54」…、出力4×CL は「0」,「24」,「4
8」,「60」,「84」…となる。
【0036】このときセレクタ70は、累積加算回路2
0の出力内容に応じて乗算回路40の各出力を択一的に
出力する。このため、アドレスADDRESSは、
「6」,「12」,「18」,「1」,「7」,「1
3」,「19」,「2」,「8」,「14」,「2
0」,「3」,「9」,「15」,「21」,「4」,
「10」,「16」,「22」,「5」,「11」,
「17」,「23」,「0」,「12」,「24」,
「36」,「2」,「14」,「26」…となる。
【0037】次に、3段目の動作について図5を参照し
て説明する。図5において、図4と同等部分は同一符号
により示されている。
【0038】同図に示されているように、システムクロ
ックSYSCLKと、各カウンタ1〜3によって生成さ
れるクロックRLCLK,クロックDRCLK及びクロ
ックRDRCLKとが入力されると、累積加算回路10
及び20は初期値から累積加算動作を行う。すなわち、
累積加算回路10は、「0」,「5」,「10」…と出
力値を「5」ずつインクリメントする。累積加算回路2
0の出力は、「0」,「5」,「0」,「10」,
「0」,「15」となる。
【0039】また、乗算回路40の出力1×CL は、
「0」,「5」,「10」,「15」…となる。このた
め、出力2×CL は「0」,「10」,「20」,「3
0」…、出力3×CL は「0」,「15」,「30」,
「45」…、出力4×CL は「0」,「20」,「4
0」,「60」…となる。
【0040】このときセレクタ70は、累積加算回路2
0の出力内容に応じて乗算回路40の各出力を択一的に
出力する。このため、アドレスADDRESSは、
「0」,「10」,「20」,「0」,「5」,「1
5」,「25」,「0」,「0」,「20」,「4
0」,「0」,「10」,「30」,「50」,
「0」,「0」,「30」,「60」,「0」,「1
5」,「45」,「75」,「0」,「0」,「0」…
となる。
【0041】次に、4段目の動作について図6を参照し
て説明する。図6において、図4及び図5と同等部分は
同一符号により示されている。
【0042】同図に示されているように、システムクロ
ックSYSCLKと、各カウンタ1〜3によって生成さ
れるクロックRLCLK,クロックDRCLK及びクロ
ックRDRCLKとが入力されると、累積加算回路10
及び20は初期値から累積加算動作を行う。すなわち、
累積加算回路10は、「0」,「20」,「40」…と
出力値を「20」ずつインクリメントする。累積加算回
路20の出力は「0」のままである。
【0043】また、乗算回路40の出力1×CL は、
「0」,「20」,「40」…となる。このときセレク
タ70は、累積加算回路20の出力内容に応じて乗算回
路40の各出力を択一的に出力する。このため、アドレ
スADDRESSは、「0」,「0」,「0」,「2
0」,「0」,「40」,「0」,「0」,「0」,
「20」,「0」,「40」…となる。
【0044】ここで、ポイント数が120で、1段目の
基数が5、2段目の基数が4、3段目の基数が3、4段
目の基数が2の場合、アドレス生成式は以下のようにな
る。すなわち、1段目のアドレス生成式はn0(k0+
k1r4+k2r3r4)、2段目のアドレス生成式は
n1r1(k0+k1r4)、3段目のアドレス生成式
はn2r1r2k0であり、4段目のアドレスは1であ
る。
【0045】また、各変数は、n0=0,1,2,3,
4、n1=0,1,2,3、n2=0,1,2、k0=
0,1,2、k1=0,1,2,3、k2=0,1,
2,3,4、r1=5、r2=4、r3=3、r4=2
である。これらをアドレス生成式に代入する。
【0046】すると、3段目の生成式はn1r1(k0
+k1r4)であるから、(0,1,2,3)×5
{(0,1,2)+(0,1,2,3)×2}=(0,
5,10,15)(0,1,2)+(0,5,10,1
5)(0,2,4,6)となり、第1項は(0,0,
0,0,5,10,0,10,20,0,15,3
0)、第2項は(0,0,0,0,0,10,20,3
0,0,20,40,60,0,30,60,90)と
なる。以上の2つの項から(0,0,0,,0,0,
0,,0,10,20,30,5,15,25,
,0,20,40,60,10,30,50,70
0,30,60,90,15,45,75,105)が
得られる。ただし、基数3のアドレスを生成する場合で
あるので、4番目のデータ(上記の下線が付されている
アドレス)は使用しない。このため、(0,0,0,
0,0,0,0,10,20,5,15,25,0,2
0,40,10,30,50,0,30,60,15,
45,75)となり、図5に示されているアドレスと同
一のアドレスが得られる。
【0047】また、4段目の生成式はn2r1r2k0
であるから、(0,1,2)×5×4×(0,1,2)
=(0,20,40)(0,1,2)=(0,0,
0,20,40,0,40,80)が得られる。ただ
し、基数2のアドレスを生成する場合であるので、3番
目のデータ(上記の下線が付されているアドレス)は使
用しない。このため、(0,0,0,20,0,4
0,)となり、図6に示されているアドレスと同一のア
ドレスが得られる。
【0048】なお、1段目及び2段目のアドレス生成に
ついては、省略する。
【0049】以上のように本発明では、所定入力データ
について高速フーリエ変換を行うためのバタフライ演算
に用いる係数データが格納された係数メモリに対して読
出用アドレスを生成する場合、2〜5の基数のバタフラ
イ演算を行わせるための読出用アドレスを夫々生成する
回路を設け、これら回路のうちのいずれかにより生成さ
れるアドレスを用いた係数データの読出し動作を入力デ
ータのデータ数に応じて繰返しているのである。そし
て、その回路は複数の累積加算回路で構成されているの
である。
【0050】また、各累積加算回路は、入力された初期
データをM倍(Mは全ての自然数)したデータを順次生
成しているのである。そして、入力データに応じて信号
KLや信号DL 等の初期データは、図示せぬ初期値設定
回路から供給しているのである。
【0051】なお、本回路を用いたFFT演算回路はゲ
ートアレイで実現でき、人工衛星に搭載する機器のディ
ジタル化及び高機能化を実現する一括分波回路の一部に
使用される。
【0052】以上のように本回路では、基数2〜5のア
ドレス生成回路を組合わせて用いることにより、ポイン
ト数の大きなFFT演算を効率良く処理するために必要
なアドレスを生成することができる。例えば、ポイント
数が「8」のFFT演算を行う場合、従来技術によると
基数2の演算を3段に分けて演算を行うことになる。こ
れに対し、本アドレス生成回路を用いれば、基数4の演
算を2段に分けて行うことができるので、演算効率が1
段分向上するのである。他のポイント数についても同様
に、演算効率が向上する。特に、上述した図1の回路に
おいては、基数2〜5のアドレス生成回路に対して共通
に累積加算回路を設けているので、ハードウェア量を最
小に抑えつつ演算効率が向上することができる。
【0053】請求項の記載に関連して本発明は更に次の
態様をとりうる。
【0054】(4)前記バタフライ演算は、周波数間引
き型バタフライ演算であることを特徴とする請求項1〜
3記載のアドレス生成回路。
【0055】(5)前記バタフライ演算は、時間間引き
型バタフライ演算であることを特徴とする請求項1〜3
記載のアドレス生成回路。
【0056】
【発明の効果】以上説明したように本発明は、基数2〜
5のアドレス生成回路を組合わせて用いることにより、
ポイント数の大きなFFT演算を効率良く処理するため
に必要なアドレスを生成することができるという効果が
ある。
【図面の簡単な説明】
【図1】本発明の実施の一形態によるアドレス生成回路
の構成を示すブロック図である。
【図2】図1中の各クロックを生成する回路の構成例を
示すブロック図である。
【図3】図2の回路によって生成されるクロックのタイ
ミングを示すタイムチャートである。
【図4】ポイント数120のFFT演算を行う場合にお
ける図1のアドレス生成回路の2段目の動作を示すタイ
ムチャートである。
【図5】ポイント数120のFFT演算を行う場合にお
ける図1のアドレス生成回路の3段目の動作を示すタイ
ムチャートである。
【図6】ポイント数120のFFT演算を行う場合にお
ける図1のアドレス生成回路の4段目の動作を示すタイ
ムチャートである。
【図7】(a)は周波数間引き型のバタフライ演算回路
の構成を示す図、(b)は時間間引き型のバタフライ演
算回路の構成を示す図である。
【図8】従来のFFT演算手順の例を示す図である。
【符号の説明】
1〜3 カウンタ 10〜30 累積加算回路 40 乗算回路 50−1〜50−4 加算器 60 レジスタ 70 セレクタ

Claims (3)

    【特許請求の範囲】
  1. 【請求項1】 所定入力データについて高速フーリエ変
    換を行うためのバタフライ演算に用いる係数データが格
    納された係数メモリに対して該係数データの読出用アド
    レスを生成するアドレス生成回路であって、基数N(N
    は、2〜5の全ての整数)のバタフライ演算を行わせる
    ための読出用アドレスを夫々生成する第1〜第4のアド
    レス生成手段と、前記第1〜第4のアドレス生成手段の
    うちのいずれかにより生成されるアドレスを用いた係数
    データの読出し動作を前記入力データのデータ数に応じ
    て繰返す手段とを含み、この読出されたデータについて
    前記バタフライ演算を行わせるようにしたことを特徴と
    するアドレス生成回路。
  2. 【請求項2】 前記第1〜第4のアドレス生成手段は、
    入力された初期データをM倍(Mは全ての自然数)した
    データを順次生成する累積加算回路と、前記入力データ
    に応じて前記初期データを与える手段とを含むことを特
    徴とする請求項1記載のアドレス生成回路。
  3. 【請求項3】 前記累積加算回路は、前記第1〜第4の
    アドレス生成手段に共通に設けられていることを特徴と
    する請求項2記載のアドレス生成回路。
JP6768097A 1997-03-21 1997-03-21 アドレス生成回路 Withdrawn JPH10260958A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP6768097A JPH10260958A (ja) 1997-03-21 1997-03-21 アドレス生成回路

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP6768097A JPH10260958A (ja) 1997-03-21 1997-03-21 アドレス生成回路

Publications (1)

Publication Number Publication Date
JPH10260958A true JPH10260958A (ja) 1998-09-29

Family

ID=13351964

Family Applications (1)

Application Number Title Priority Date Filing Date
JP6768097A Withdrawn JPH10260958A (ja) 1997-03-21 1997-03-21 アドレス生成回路

Country Status (1)

Country Link
JP (1) JPH10260958A (ja)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006127282A (ja) * 2004-10-29 2006-05-18 Sony Corp ディジタル信号処理装置、ディジタル信号処理方法及びプログラム並びに認証装置
US7529140B2 (en) 2005-09-29 2009-05-05 Hynix Semiconductor Inc. Semiconductor memory device
CN104615582A (zh) * 2015-02-06 2015-05-13 中国人民解放军国防科学技术大学 面向gpdsp的大点数一维fft向量化计算的方法

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006127282A (ja) * 2004-10-29 2006-05-18 Sony Corp ディジタル信号処理装置、ディジタル信号処理方法及びプログラム並びに認証装置
JP4687948B2 (ja) * 2004-10-29 2011-05-25 ソニー株式会社 ディジタル信号処理装置、ディジタル信号処理方法及びプログラム並びに認証装置
US7529140B2 (en) 2005-09-29 2009-05-05 Hynix Semiconductor Inc. Semiconductor memory device
US7675810B2 (en) 2005-09-29 2010-03-09 Hynix Semiconductor, Inc. Semiconductor memory device
CN104615582A (zh) * 2015-02-06 2015-05-13 中国人民解放军国防科学技术大学 面向gpdsp的大点数一维fft向量化计算的方法
CN104615582B (zh) * 2015-02-06 2018-02-02 中国人民解放军国防科学技术大学 面向gpdsp的大点数一维fft向量化计算的方法

Similar Documents

Publication Publication Date Title
US5500811A (en) Finite impulse response filter
JP2950703B2 (ja) 高速フーリエ変換用ディジット反転のためのアドレス発生器及び反転フィールドシーケンス発生器並びにディジット反転シーケンス信号発生方法
JP5544240B2 (ja) マルチmacアーキテクチャにおける低電力firフィルタ
WO2018027706A1 (zh) Fft处理器及运算方法
US4062060A (en) Digital filter
JPH0818550A (ja) 符号系列発生器
US6745219B1 (en) Arithmetic unit using stochastic data processing
JP2725544B2 (ja) Dct及び逆dct演算装置並びにその演算方法
JPH10260958A (ja) アドレス生成回路
SU1756887A1 (ru) Устройство дл делени чисел в модул рной системе счислени
CN116781041B (zh) 一种具有高资源利用率的多速率变换滤波器
JP2002504250A (ja) データ要素の系列を変換する装置
JP3875183B2 (ja) 演算装置
JP3123060B2 (ja) ディジタル演算回路
US9026573B2 (en) Recursive type-IV discrete cosine transform system
JP3155026B2 (ja) 累算器
JP3288273B2 (ja) 除算回路及びこれに用いる部分除算器
CN117763273A (zh) 复数向量卷积处理方法、装置、计算机设备及存储介质
KR940007569B1 (ko) 행렬 곱셈 회로
US9529539B1 (en) Data allocating apparatus, signal processing apparatus, and data allocating method
Minotta et al. Embedded FFT hardware algorithm development using automated bi-dimensional scalable folding
TW201643746A (zh) 資料分配裝置、訊號處理裝置及其資料分配方法
JPS63164640A (ja) コサイン変換装置
SU1631554A1 (ru) Устройство дл вычислени преобразовани Фурье-Галуа
KR950010820B1 (ko) 반복되는 데이타의 연산 처리 장치

Legal Events

Date Code Title Description
A300 Withdrawal of application because of no request for examination

Free format text: JAPANESE INTERMEDIATE CODE: A300

Effective date: 20040601