JP3951071B2 - 演算装置および演算方法 - Google Patents

演算装置および演算方法 Download PDF

Info

Publication number
JP3951071B2
JP3951071B2 JP11471397A JP11471397A JP3951071B2 JP 3951071 B2 JP3951071 B2 JP 3951071B2 JP 11471397 A JP11471397 A JP 11471397A JP 11471397 A JP11471397 A JP 11471397A JP 3951071 B2 JP3951071 B2 JP 3951071B2
Authority
JP
Japan
Prior art keywords
data
radix
input
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.)
Expired - Fee Related
Application number
JP11471397A
Other languages
English (en)
Other versions
JPH10307811A (ja
Inventor
康成 小崎
康成 池田
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
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 JP11471397A priority Critical patent/JP3951071B2/ja
Priority to AU63639/98A priority patent/AU6363998A/en
Priority to US09/067,802 priority patent/US6240062B1/en
Priority to EP98303475A priority patent/EP0875839A1/en
Publication of JPH10307811A publication Critical patent/JPH10307811A/ja
Application granted granted Critical
Publication of JP3951071B2 publication Critical patent/JP3951071B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30003Arrangements for executing specific machine instructions
    • G06F9/30007Arrangements for executing specific machine instructions to perform operations on data operands
    • G06F9/3001Arithmetic instructions
    • 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
    • G06F17/141Discrete Fourier transforms
    • G06F17/142Fast Fourier transforms, e.g. using a Cooley-Tukey type algorithm

Description

【0001】
【発明の属する技術分野】
本発明は、信号処理装置および信号処理方法に関し、特に、高速離散フーリエ変換等において多用される信号処理装置および信号処理方法に関する。
【0002】
【従来の技術】
例えば、DVB−T(Digital Video Broadcasting-Terrestrial)などに用いられている高速離散フーリエ変換(FFT:Fast Fourier Transform)はバタフライ演算と呼ばれる複素演算の繰り返しにより実現される。
【0003】
ところで、バタフライ演算は基数と呼ばれる数により同時に演算するデータ数が異なり、一度のFFTにおけるバタフライ演算の繰り返し回数もこの基数に依存して異なる。
【0004】
一般的には、種々の利便性(例えば、構成の簡易性など)から基数4のバタフライ演算回路が用いられる事が多いが、FFT演算の対象となるデータ数(これをFFTのポイント数と呼ぶ)が4のべき乗で無い場合は基数4のバタフライ演算のみでFFTを行うことは出来ない。
【0005】
その場合、基数4のバタフライ演算回路と基数2のバタフライ演算を適宜組み合わせて用いなければならない。従って、回路構成上は、基数2のバタフライ演算回路を追加する必要が生ずる。
【0006】
図5に従来の基数4のバタフライ演算回路(図5(A))および基数2のバタフライ演算回路(図5(B))の一例を示す。
【0007】
図5(A)に示す回路は基数4のバタフライ演算回路であり、複素乗算回路1乃至3および複素加算回路4乃至7により構成されている。また、図の左側の黒丸と、図の右側の複素加算回路4乃至7を結ぶ信号線は、入力された複素データを1倍、−1倍、j倍、または、−j倍して出力するようになされている。
【0008】
なお、入力データIA0乃至IA3はそれぞれ複素データである。また、IB1乃至IB3は、複素定数データであり、例えば、ROMなどに格納されたデータが読み出されて供給されるようになされている。
【0009】
次に、以上の従来例の動作について説明する。
【0010】
複素乗算回路1乃至3は、IA1とIB1、IA2とIB2、IA3とIB3をそれぞれ複素乗算し、演算結果を出力する。
【0011】
入力データIA0は、複素加算回路4乃至5にそれぞれ入力される。複素乗算回路1の出力は、1倍、−j倍、−1倍、または、j倍されて、それぞれ、複素加算回路4乃至7に入力される。複素乗算回路2の出力は、1倍、−1倍、1倍、または、−1倍されて、それぞれ、複素加算回路4乃至5に入力される。複素乗算回路3の出力は、1倍、j倍、−1倍、または、−j倍されて、それぞれ、複素加算回路4乃至7に入力される。
【0012】
複素加算回路4乃至7は、入力データIA0および、複素乗算回路1乃至3の出力を定数倍(1倍、−1倍、j倍、または、−j倍)したものをそれぞれ加算し、演算結果をO0乃至O3として出力する。
【0013】
以上のような回路により、基数4のバタフライ演算を実行することができる。
【0014】
次に、図5(B)を参照して、従来における、基数2のバタフライ演算回路の構成例について説明する。
【0015】
図5(B)は、従来における基数2のバタフライ演算回路の構成例を示している。この図に示すように、基数2のバタフライ演算回路は、複素乗算回路8および複素加算回路9,10により構成されている。なお、IA0,IA1は入力データを示しており、また、IB1は、例えば、ROMなどに格納されている定数データを示している。
【0016】
次に、以上の構成例の動作について説明する。
【0017】
入力データIA0は、複素加算回路9および複素加算回路10にそれぞれ入力される。また、入力データIA1と定数データIB1は、複素乗算回路8に入力され、そこで複素乗算が行われた後、複素加算回路9に供給されるとともに、−1倍されて複素加算回路10に供給される。
【0018】
複素加算回路9は、入力データIA0と複素乗算回路8の出力とを加算して、得られたデータをO0として出力する。また、複素加算回路10は、入力データIA0と複素乗算回路8の出力が−1倍されたものとを加算してO1として出力する。
【0019】
以上のような構成により、基数2のバタフライ演算を実行することができる。
【0020】
【発明が解決しようとする課題】
ところで、ポイント数が4のべき乗では無い場合には、前述の基数4および基数2のバタフライ演算回路の双方を用いてFFT回路を構成する必要があり、ポイント数が4のべき乗の場合のFFT回路に比べて基数2のバタフライ演算回路(図5(B)の回路)の分だけ回路規模が増大する。しかも基数2のバタフライ演算回路はFFTの処理過程において一部でしか用いられないので、使用頻度の少ない回路を別途形成しなければならない負担は甚大である。
【0021】
本発明は、以上のような状況に鑑みてなされたものであり、ポイント数が4のべき乗ではないFFT回路において、基数2のバタフライ演算回路を別途形成する手間を省くことを目的とし、以て、回路資源の有効利用を図ることを目的とするものである。
【0022】
【課題を解決するための手段】
請求項1に記載の演算装置は、入力された第1乃至第4のデータに対してバタフライ演算を行う演算装置において、基数2または基数4の何れのバタフライ演算を実行するかを示す信号が入力される入力手段と、第2乃至第4のデータにそれぞれ第1乃至第3の係数を乗算することにより第5乃至第7のデータを算出する乗算手段と、入力手段より基数2の演算を実行することを示す信号が入力された場合、第1のデータ、第3のデータ、第5のデータ、および、第7のデータを用いて、2組の基数2のバタフライ演算の演算結果を算出し、入力手段より基数4の演算を実行することを示す信号が入力された場合、第1のデータ、第5のデータ、第6のデータ、および、第7のデータを用いて、1組の基数4のバタフライ演算の演算結果を算出する演算手段とを備えることを特徴とする。
【0023】
請求項5に記載の演算方法は、入力された第1乃至第4のデータに対してバタフライ演算を行う演算方法において、基数2または基数4の何れのバタフライ演算を実行するかを示す信号が入力される入力ステップと、第2乃至第4のデータにそれぞれ第1乃至第3の係数を乗算することにより第5乃至第7のデータを算出する乗算ステップと、入力ステップから基数2の演算を実行することを示す信号が入力された場合、第1のデータ、第3のデータ、第5のデータ、および、第7のデータを用いて、2組の基数2のバタフライ演算の演算結果を算出し、入力ステップから基数4の演算を実行することを示す信号が入力された場合、第1のデータ、第5のデータ、第6のデータ、および、第7のデータを用いて、1組の基数4のバタフライ演算の演算結果を算出する演算ステップとを備えることを特徴とする。
【0024】
請求項1に記載の演算装置においては、基数2または基数4の何れのバタフライ演算を実行するかを示す信号が入力手段より入力され、第2乃至第4のデータにそれぞれ第1乃至第3の係数を乗算することにより第5乃至第7のデータを算出手段が算出し、入力手段より基数2の演算を実行することを示す信号が入力された場合、第1のデータ、第3のデータ、第5のデータ、および、第7のデータを用いて、2組の基数2のバタフライ演算の演算結果を演算手段が算出し、入力手段より基数4の演算を実行することを示す信号が入力された場合、第1のデータ、第5のデータ、第6のデータ、および、第7のデータを用いて、1組の基数4のバタフライ演算の演算結果を演算手段が算出する。
【0025】
請求項5に記載の演算方法においては、基数2または基数4の何れのバタフライ演算を実行するかを示す信号が入力ステップより入力され、第2乃至第4のデータにそれぞれ第1乃至第3の係数を乗算することにより第5乃至第7のデータを乗算ステップが算出し、入力ステップから基数2の演算を実行することを示す信号が入力された場合、第1のデータ、第3のデータ、第5のデータ、および、第7のデータを用いて、2組の基数2のバタフライ演算の演算結果を演算ステップが算出し、入力ステップから基数4の演算を実行することを示す信号が入力された場合、第1のデータ、第5のデータ、第6のデータ、および、第7のデータを用いて、1組の基数4のバタフライ演算の演算結果を演算ステップが算出する。
【0026】
【発明の実施の形態】
図1は、本発明の演算装置の動作原理を説明するための図である。この図において、図5(A)と同一の部分には同一の符号を付してあるので、その説明は適宜省略する。
【0027】
この図において、破線で示されている信号線が全て接続されている状態では、この回路は1組の基数4のバタフライ演算回路になる。これは、図5(A)に示す基数4のバタフライ演算回路と同様の構成となっていることからも理解できる。
【0028】
次に、破線で示されている信号線が接続されていない状態であって、かつ、以下に示すように各信号線の倍数が変更されると、図1に示す回路は、2組の基数2のバタフライ演算回路となる。
【0029】
1 複素乗算回路1と複素加算回路5を結ぶ信号線の入力データに対する倍数を−j倍から−1倍に変更する。
2 複素乗算回路3と複素加算回路6を結ぶ信号線の入力データに対する倍数を−1倍から1倍に変更する。
3 複素乗算回路2と複素加算回路7を結ぶ信号線の入力データに対する倍数を−1倍から1倍に変更する。
4 複素乗算回路3と複素加算回路7を結ぶ信号線の入力データに対する倍数を−j倍から−1倍に変更する。
【0030】
図2は、図1に示す破線で示す信号線の除去操作と、各信号線の倍数を変更する操作を可能とする回路の一例のブロック図を示している。
【0031】
この図において、図1と対応する部分には、同一の符号を付してあるのでその説明は省略する。この図において、加算回路101乃至112は、2入力1出力の複素加算回路である。
【0032】
セレクタ制御回路100は、基数4の演算を行う場合は、セレクタ113乃至121に上側の入力端子を選択させ、また、基数2の演算を行う場合には、下側の入力端子を選択させるようになされている。
【0033】
セレクタ113は、セレクタ制御回路100の制御に従って、基数4の演算を行う場合は複素乗算回路2の出力を選択し、また、基数2の演算を行う場合には定数データIA2を選択して出力するようになされている。
【0034】
セレクタ114は、セレクタ制御回路100の制御に従って、基数4の演算を行う場合は、−j倍された複素乗算回路1の出力を選択して複素加算回路103に出力し、また、基数2の演算を行う場合には−1倍された複素乗算回路1の出力を選択して複素加算回路103に出力するようになされている。
【0035】
セレクタ115は、セレクタ制御回路100の制御に従って、基数4の演算を行う場合は、−1倍された複素乗算回路3の出力を選択して複素加算回路106に出力し、また、基数2の演算を行う場合には1倍された複素乗算回路3の出力を選択して複素加算回路106に出力するようになされている。
【0036】
セレクタ116は、セレクタ制御回路100の制御に従って、基数4の演算を行う場合は、−1倍されたセレクタ113の出力を選択して複素加算回路108に出力し、また、基数2の演算を行う場合には1倍されたセレクタ113の出力を選択して複素加算回路108に出力するようになされている。
【0037】
セレクタ117は、セレクタ制御回路100の制御に従って、基数4の演算を行う場合は、−j倍された複素乗算回路3の出力を選択して複素加算回路108に出力し、また、基数2の演算を行う場合には−1倍された複素乗算回路3の出力を選択して複素加算回路108に出力するようになされている。
【0038】
セレクタ118は、セレクタ制御回路100の制御に従って、基数4の演算を行う場合は、複素加算回路109の出力を選択して出力し、また、基数2の演算を行う場合には複素加算回路101の出力を選択して出力するようになされている。
【0039】
セレクタ119は、セレクタ制御回路100の制御に従って、基数4の演算を行う場合は、複素加算回路110の出力を選択して出力し、また、基数2の演算を行う場合には複素加算回路103の出力を選択して出力するようになされている。
【0040】
セレクタ120は、セレクタ制御回路100の制御に従って、基数4の演算を行う場合は、複素加算回路111の出力を選択して出力し、また、基数2の演算を行う場合には複素加算回路106の出力を選択して出力するようになされている。
【0041】
セレクタ121は、セレクタ制御回路100の制御に従って、基数4の演算を行う場合は、複素加算回路112の出力を選択して出力し、また、基数2の演算を行う場合には複素加算回路108の出力を選択して出力するようになされている。
【0042】
いま、セレクタ制御回路100に基数2を選択する制御信号が入力され、その結果、セレクタ113乃至121が全て下側の入力端子を選択しているとする。その場合、セレクタ118は、複素加算回路101の出力を選択することになるので、出力O0は、以下の式により表すことができる。
【0043】
O0=IA0+IA1×IB1 ・・・(1)
【0044】
また、セレクタ119は、複素加算回路103の出力を選択しており、更に、複素加算回路103は、セレクタ114から出力されている−1倍された(IA1×IB1)と入力データIA0とを加算して出力するので、出力O1は以下の式により表すことができる。
【0045】
O1=IA0−IA1×IB1 ・・・(2)
【0046】
セレクタ120は、複素加算回路106の出力を選択しており、更に、複素加算回路106は、セレクタ115から出力されている1倍された(IA3×IB3)と定数データIA2(セレクタ113により選択されているデータ)とを加算して出力するので、出力O2は以下の式により表すことができる。
【0047】
O2=IA2+IA3×IB3 ・・・(3)
【0048】
セレクタ121は、複素加算回路108の出力を選択しており、更に、複素加算回路108は、セレクタ116から出力されている1倍されたIA2と、セレクタ117から出力されている−1倍された(IA3×IB3)とを加算して出力するので、出力O3は以下の式により表すことができる。
【0049】
O3=IA2−IA3×IB3 ・・・(4)
【0050】
従って、セレクタ113乃至121が全て下側の入力端子を選択している場合には、以上の式(1)乃至(4)が示すように、図2に示す回路は、図5(B)に示す基数2のバタフライ演算回路となる。
【0051】
次に、セレクタ113乃至121が全て上側の入力端子を選択している場合について説明する。
【0052】
セレクタ118が上側の入力端子を選択している場合は、複素加算回路109の出力が選択されることになる。複素加算回路109は、複素加算回路101の出力と複素加算回路102の出力とを加算して出力するので、出力信号O0は、以下の式によって表すことができる。なお、このとき、セレクタ113は、複素乗算回路2の出力を選択している。
【0053】
O0=IA0+IA1×IB1+IA2×IB2+IA3×IB3・・・(5)
【0054】
セレクタ119が上側の入力端子を選択している場合は、複素加算回路110の出力が選択されることになる。複素加算回路110は、複素加算回路103の出力と複素加算回路104の出力とを加算して出力するので、出力信号O1は、以下の式によって表すことができる。なお、このとき、セレクタ114は、−j倍された複素乗算回路1の出力を選択している。
【0055】
O1=IA0−j・IA1×IB1−IA2×IB2+j・IA3×IB3・・・(6)
【0056】
セレクタ120が上側の入力端子を選択している場合は、複素加算回路111の出力が選択されることになる。複素加算回路111は、複素加算回路105の出力と複素加算回路106の出力とを加算して出力するので、出力信号O2は、以下の式によって表すことができる。なお、このとき、セレクタ115は、−1倍された複素乗算回路3の出力を選択しているものとする。
【0057】
O2=IA0−IA1×IB1+IA2×IB2−IA3×IB3・・・(7)
【0058】
セレクタ121が上側の入力端子を選択している場合は、複素加算回路112の出力が選択されることになる。複素加算回路112は、複素加算回路107の出力と複素加算回路108の出力とを加算して出力するので、出力信号O3は、以下の式によって表すことができる。なお、このとき、セレクタ116は、−1倍されたセレクタ113の出力(IA2×IB2)を選択しており、また、セレクタ117は、−j倍された複素乗算回路3の出力を選択している。
【0059】
O3=IA0+j・IA1×IB1−IA2×IB2−j・IA3×IB3・・・(8)
【0060】
従って、セレクタ113乃至121が全て上側の入力端子を選択している場合には、以上の式(5)乃至(8)が示すように、図2に示す回路は、図5(A)に示す基数4のバタフライ演算回路となる。
【0061】
次に、図3を参照して、実際の回路構成例について説明する。
【0062】
図3は、実際の回路の構成例を示す回路図である。この図において、図2と対応する部分には、対応する符号が付してあるので、その説明は適宜省略する。
【0063】
この図において、乗算回路1−1乃至1−4、および、加算回路1−5,1−6は、図2に示す複素乗算回路1を実数部と虚数部に分割したものである。即ち、加算回路1−5は、乗算回路1−1によって算出されたIA1の実数部(IA1_Re)とIB1の実数部(IB1_Re)の積から、乗算回路1−2によって算出されたIA1の虚数部(IA1_Im)とIB1の虚数部(IB1_Im)の積を減算して得られた結果を(IA1×IB1)の実数部として出力するようになされている。
【0064】
加算回路1−6は、乗算回路1−3によって算出されたIA1の実数部(IA1_Re)とIB1の虚数部(IB1_Im)の積と、乗算回路1−4によって算出されたIA1の虚数部(IA1_Im)とIB1の実数部(IB1_Re)の積とを加算して、得られた結果を(IA1×IB1)の虚数部として出力するようになされている。
【0065】
加算回路2−5,2−6,3−5,3−7も同様の演算処理を実行することにより、それぞれ、(IA2×IB2)の実数部、(IA2×IB2)の虚数部、(IA3×IB3)の実数部、または、(IA3×IB3)の虚数部を出力するようになされている。
【0066】
セレクタ113−1,113−2は、図2に示すセレクタ113を実数部と虚数部に分割して示したものである。即ち、セレクタ113−1は、基数2の演算が選択された場合は上側の入力端子に入力されているIA2の実数部(IA2_Re)を選択して出力し、基数4の円案が選択された場合には下側の入力端子に入力されている(IA2×IB2)の実数部を選択して出力する。同様に、セレクタ113−2は、基数2の演算が選択された場合は、上側の入力端子に入力されているIA2の虚数部(IA2_Im)を選択して出力し、基数4の演算が選択された場合には下側の入力端子に入力されている(IA2×IB2)の虚数部を選択して出力する。
【0067】
符号反転回路200乃至205は、加算回路1−5,1−6、セレクタ113−1,113−2、加算回路3−5,3−6の出力データの符号を反転して出力するようになされている。
【0068】
加算回路210乃至225は、回路前段の所定の2点の出力信号を加算して出力するようになされている。
【0069】
ところで、図3の回路図においては、図2に示すセレクタ114乃至117が省略されている。これは、加算回路210乃至225より後段の回路を工夫することにより、これらのセレクタが不要となる構成としたためである。
【0070】
なお、以下では、説明を簡略化するために複素数fの実数部をRe(f)で表し、また、複素数fの虚数部をIm(f)で表すものとする。
【0071】
加算回路210は、IA0_Reと加算回路1−5の出力(Re(IA1×IB1))を加算して出力するようになされている。
【0072】
加算回路211は、セレクタ113−1の出力(IA2_ReまたはRe(IA2×IB2))と加算回路3−5の出力(Re(IA3×IB3))を加算して出力するようになされている。
【0073】
加算回路212は、IA0_Imと加算回路1−6の出力(Im(IA1×IB1))を加算して出力するようになされている。
【0074】
加算回路213は、セレクタ113−2の出力(IA2_ImまたはIm(IA2×IB2))と加算回路3−6の出力(Im(IA3×IB3))を加算して出力するようになされている。
【0075】
加算回路214は、IA0_Reと加算回路1−6の出力(Im(IA1×IB1))を加算して出力するようになされている。
【0076】
加算回路215は、符号反転回路202の出力(−IA2_Reまたは−Re(IA1×IB1))と符号反転回路205の出力(−Im(IA3×IB3))を加算して出力するようになされている。
【0077】
加算回路216は、IA0_Imと符号反転回路200の出力(−Re(IA1×IB1))を加算して出力するようになされている。
【0078】
加算回路217は、符号反転回路203の出力(−IA2_Imまたは−Im(IA2×IB2))と加算回路3−5の出力(Re(IA3×IB3))とを加算して出力するようになされている。
【0079】
加算回路218は、IA0_Reと符号反転回路200の出力(−Re(IA1×IB1))を加算して出力するようになされている。
【0080】
加算回路219は、セレクタ113−1の出力(IA2_ReまたはRe(IA2×IB2))と符号反転回路204の出力(−Re(IA3×IB3))を加算して出力するようになされている。
【0081】
加算回路220は、IA0_Imと符号反転回路201の出力(−Im(IA1×IB1))とを加算して出力するようになされている。
【0082】
加算回路221は、セレクタ113−2の出力(IA2_ImまたはIm(IA2×IB2))と符号反転回路205の出力(−Im(IA3×IB3))とを加算して出力するようになされている。
【0083】
加算回路222は、IA0_Reと符号反転回路201の出力(−Im(IA1×IB1))とを加算して出力するようになされている。
【0084】
加算回路223は、符号反転回路202の出力(−IA2_Reまたは−Re(IA2×IB2))と加算回路3−6の出力(Im(IA3×IB3))とを加算して出力するようになされている。
【0085】
加算回路224は、IA0_Imと加算回路1−5の出力(Re(IA1×IB1))とを加算して出力するようになされている。
【0086】
加算回路225は、符号反転回路203の出力(−IA2_Imまたは−Im(IA2×IB2))と符号反転回路204の出力(−Re(IA3×IB3))とを加算して出力するようになされている。
【0087】
次に、加算回路230は、加算回路210の出力と加算回路211の出力を加算してセレクタ118−1の下側の端子に入力するようになされている。
【0088】
加算回路231は、加算回路212の出力と加算回路213の出力を加算してセレクタ118−2の下側の端子に入力するようになされている。
【0089】
加算回路232は、加算回路214の出力と加算回路215の出力を加算してセレクタ119−1の下側の端子に入力するようになされている。
【0090】
加算回路233は、加算回路216の出力と加算回路217の出力を加算してセレクタ119−2の下側の端子に入力するようになされている。
【0091】
加算回路234は、加算回路218の出力と加算回路219の出力を加算してセレクタ120−1の下側の端子に入力するようになされている。
【0092】
加算回路235は、加算回路220の出力と加算回路221の出力を加算してセレクタ120−2の下側の端子に入力するようになされている。
【0093】
加算回路236は、加算回路222の出力と加算回路223の出力を加算してセレクタ121−1の下側の端子に入力するようになされている。
【0094】
加算回路237は、加算回路224の出力と加算回路225の出力を加算してセレクタ121−2の下側の端子に入力するようになされている。
【0095】
セレクタ118−1乃至121−1およびセレクタ118−2乃至121−2は、セレクタ制御回路100に制御され、基数2の演算を行う場合には上側の入力端子を選択し、基数4の演算を行う場合には下側の入力端子を選択する。
【0096】
即ち、セレクタ118−1は、基数2の演算を行う場合は加算回路210の出力を選択し、また、基数4の演算を行う場合には、加算回路230の出力を選択し、出力信号O0_Reとして出力する。
【0097】
セレクタ118−2は、基数2の演算を行う場合は加算回路212の出力を選択し、また、基数4の演算を行う場合には、加算回路231の出力を選択し、出力信号O0_Imとして出力する。
【0098】
セレクタ119−1は、基数2の演算を行う場合は加算回路218の出力を選択し、また、基数4の演算を行う場合には、加算回路232の出力を選択し、出力信号O1_Reとして出力する。
【0099】
セレクタ119−2は、基数2の演算を行う場合は加算回路220の出力を選択し、また、基数4の演算を行う場合には、加算回路233の出力を選択し、出力信号O1_Imとして出力する。
【0100】
セレクタ120−1は、基数2の演算を行う場合は加算回路211の出力を選択し、また、基数4の演算を行う場合には、加算回路234の出力を選択し、出力信号O2_Reとして出力する。
【0101】
セレクタ120−2は、基数2の演算を行う場合は加算回路213の出力を選択し、また、基数4の演算を行う場合には、加算回路235の出力を選択し、出力信号O2_Imとして出力する。
【0102】
セレクタ121−1は、基数2の演算を行う場合は加算回路219の出力を選択し、また、基数4の演算を行う場合には、加算回路236の出力を選択し、出力信号O3_Reとして出力する。
【0103】
セレクタ121−2は、基数2の演算を行う場合は加算回路221の出力を選択し、また、基数4の演算を行う場合には、加算回路237の出力を選択し、出力信号O3_Imとして出力する。
【0104】
以上のような実施の形態において、セレクタ制御回路100に基数2の演算を選択する制御信号が入力されると、全てのセレクタが上側の入力端子を選択することになる。その場合、図2を参照して前述したように、2組の基数2のバタフライ演算回路が形成される。また、全てのセレクタに下側の入力端子を選択させた場合には、1組の基数4のバタフライ演算回路が形成されることになる。
【0105】
以上のような実施の形態によれば、同一の回路により、基数4または基数2のバタフライ演算を適宜切り換えて実行することが可能となるので、ポイント数が4のべき乗ではないFFT演算を行う場合においても、回路規模を殆ど増大することなく、FFT演算回路を構成することが可能となる。
【0106】
図4は、以上の実施の形態を用いたFFT演算回路の構成の一例を示すブロック図である。
【0107】
この図において、入力バッファ400は、入力されたデータを一時的に格納するようになされている。バタフライ演算回路401は、図3に示す回路が内蔵されており、制御回路403の制御に応じて、基数2または基数4のバタフライ演算を行うようになされている。作業用メモリ402は、バタフライ演算回路401が演算を行う際に、演算途中のデータなどを一時的に格納するようになされている。
【0108】
制御回路403は、装置各部を制御するとともに、バタフライ演算回路401に対して制御信号を供給し、基数2または基数4のバタフライ演算の切換を行うようになされている。出力バッファ404は、演算の結果得られたデータを一時的に格納した後、外部の装置のデータ速度に同期して出力するようになされている。
【0109】
次に、以上の実施の形態の動作について説明する。
【0110】
入力された演算の対象となるデータは、入力バッファ400に一時的に格納され、演算の進行に合わせて随時読み出されていく。入力バッファ400から読み出されたデータは、信号線410を介して作業用メモリ402へ格納される。バタフライ演算回路401は、必要に応じて作業用メモリ402に格納されているデータを読み出して所定の演算を行うとともに、演算の結果得られたデータを再度作業用メモリ402に書き込む。
【0111】
但し、演算のタイミングによっては、入力バッファメモリ400から読み出したデータを信号線411を介して直接バタフライ演算回路401へ入力して演算した後、信号線412を介して出力バッファ404へ直接出力するようにしてもよい。
【0112】
バタフライ演算回路401は、作業用メモリ402との間でデータを授受しつつ、所定の回数だけバタフライ演算を実行する。制御回路403は、データ転送のタイミングと転送される先(または元)のアドレスを制御するとともに、信号線413を介してバタフライ演算回路401に対して制御信号を送り、基数4または基数2の演算の切り換えを行う。
【0113】
最終的に全てのデータに対するバタフライ演算が終了した時点で作業用メモリ402から信号線414を介して出力バッファ404へとデータが転送され、演算結果のデータが出力されることになる。
【0114】
基数4と基数2の切り換えは回路方式に応じて決定されるが、主として最初のステージまたは最後のステージに基数2の演算が行われることから、最初のステージ終了後または最後のステージ開始前に切り換えが行われることになる。ここでステージとはFFT演算において全てのデータに対して一回のバタフライ演算を行う過程を意味する。
【0115】
以上の実施の形態によれば、所定の演算手続きに応じてバタフライ演算回路401の演算の基数4と基数2の切り換えを行うことにより、回路資源の有効利用を図ることが可能となる。
【0116】
【発明の効果】
請求項1に記載の演算装置および請求項5に記載の演算方法によれば、基数2または基数4の何れのバタフライ演算を実行するかを示す信号が入力され、第2乃至第4のデータにそれぞれ第1乃至第3の係数を乗算することにより第5乃至第7のデータを算出し、基数2の演算を実行することを示す信号が入力された場合、第1のデータ、第3のデータ、第5のデータ、および、第7のデータを用いて、2組の基数2のバタフライ演算の演算結果を算出し、基数4の演算を実行することを示す信号が入力された場合、第1のデータ、第5のデータ、第6のデータ、および、第7のデータを用いて、1組の基数4のバタフライ演算の演算結果を算出するようにしたので、同一の演算装置により、基数2と基数4のバタフライ演算を実行することが可能となるので、回路資源を有効に利用することが可能となる。
【図面の簡単な説明】
【図1】本発明の演算装置の原理を説明する図である。
【図2】本発明の実施の形態の構成例を示すブロック図である。
【図3】本発明の実施の形態の構成例を示す回路図である。
【図4】本発明を適用したFFT演算装置の構成例を示すブロック図である。
【図5】従来のバタフライ演算回路の構成例を示すブロック図である。
【符号の説明】
100 セレクタ制御回路, 113乃至121 セレクタ, 200乃至205 符号反転回路, 403 制御回路

Claims (5)

  1. 入力された第1乃至第4のデータに対してバタフライ演算を行う演算装置において、
    基数2または基数4の何れのバタフライ演算を実行するかを示す信号が入力される入力手段と、
    前記第2乃至第4のデータにそれぞれ第1乃至第3の係数を乗算することにより第5乃至第7のデータを算出する乗算手段と、
    前記入力手段より基数2の演算を実行することを示す信号が入力された場合、前記第1のデータ、前記第3のデータ、前記第5のデータ、および、前記第7のデータを用いて、2組の基数2のバタフライ演算の演算結果を算出し、前記入力手段より基数4の演算を実行することを示す信号が入力された場合、前記第1のデータ、前記第5のデータ、前記第6のデータ、および、前記第7のデータを用いて、1組の基数4のバタフライ演算の演算結果を算出する演算手段と
    を備えることを特徴とする演算装置。
  2. 前記演算手段は、
    前記第1のデータ、前記第3のデータ、前記第3のデータを−1倍したデータ、前記第5のデータ、前記第5のデータを−1倍、j倍、または、−j倍したデータ、前記第6のデータ、前記第6のデータを−1倍したデータ、前記第7のデータ、および、前記第7のデータを−1倍、j倍、または、−j倍したデータのうち所定の組み合わせのデータを加算する加算手段と、
    前記入力手段から入力される信号に応じて、前記加算手段により算出されたデータを選択する選択手段と
    を備える
    ことを特徴とする請求項1に記載の演算装置。
  3. 前記加算手段は、
    前記第1のデータ、および、第5のデータを加算する第1の加算手段と、
    前記第1のデータ、前記第5のデータ、前記第6のデータ、および、前記第7のデータを加算する第2の加算手段と、
    前記第1のデータ、および、第5のデータを−1倍したデータを加算する第3の加算手段と、
    前記第1のデータ、前記第5のデータを−j倍したデータ、前記第6のデータを−1倍したデータ、および、前記第7のデータをj倍したデータを加算する第4の加算手段と、
    前記第3のデータ、および、第7のデータを加算する第5の加算手段と、
    前記第1のデータ、前記第5のデータを−1倍したデータ、前記第6のデータ、および、前記第7のデータを−1倍したデータを加算する第6の加算手段と、
    前記第3のデータ、および、第7のデータを−1倍したデータを加算する第7の加算手段と、
    前記第1のデータ、前記第5のデータをj倍したデータ、前記第6のデータを−1倍したデータ、および、前記第7のデータを−j倍したデータを加算する第8の加算手段と
    を備え、
    前記選択手段は、
    前記入力手段より基数2の演算を実行することを示す信号が入力された場合、前記第1の加算手段により算出されたデータを選択し、前記入力手段より基数4の演算を実行することを示す信号が入力された場合、前記第2の加算手段により算出されたデータを選択する第1の選択手段と、
    前記入力手段より基数2の演算を実行することを示す信号が入力された場合、前記第3の加算手段により算出されたデータを選択し、前記入力手段より基数4の演算を実行することを示す信号が入力された場合、前記第4の加算手段により算出されたデータを選択する第2の選択手段と、
    前記入力手段より基数2の演算を実行することを示す信号が入力された場合、前記第5の加算手段により算出されたデータを選択し、前記入力手段より基数4の演算を実行することを示す信号が入力された場合、前記第6の加算手段により算出されたデータを選択する第3の選択手段と、
    前記入力手段より基数2の演算を実行することを示す信号が入力された場合、前記第7の加算手段により算出されたデータを選択し、前記入力手段より基数4の演算を実行することを示す信号が入力された場合、前記第8の加算手段により算出されたデータを選択する第4の選択手段と
    を備える
    ことを特徴とする請求項2に記載の演算装置。
  4. 入力されたデータの数に応じて、基数2または基数4の何れのバタフライ演算を実行するかを示す信号を生成する信号生成手段を更に備える
    ことを特徴とする請求項1に記載の演算装置。
  5. 入力された第1乃至第4のデータに対してバタフライ演算を行う演算方法において、
    基数2または基数4の何れのバタフライ演算を実行するかを示す信号が入力される入力ステップと、
    前記第2乃至第4のデータにそれぞれ第1乃至第3の係数を乗算することにより第5乃至第7のデータを算出する乗算ステップと、
    前記入力ステップから基数2の演算を実行することを示す信号が入力された場合、前記第1のデータ、前記第3のデータ、前記第5のデータ、および、前記第7のデータを用いて、2組の基数2のバタフライ演算の演算結果を算出し、前記入力ステップから基数4の演算を実行することを示す信号が入力された場合、前記第1のデータ、前記第5のデータ、前記第6のデータ、および、前記第7のデータを用いて、1組の基数4のバタフライ演算の演算結果を算出する演算ステップと
    を備えることを特徴とする演算方法。
JP11471397A 1997-05-02 1997-05-02 演算装置および演算方法 Expired - Fee Related JP3951071B2 (ja)

Priority Applications (4)

Application Number Priority Date Filing Date Title
JP11471397A JP3951071B2 (ja) 1997-05-02 1997-05-02 演算装置および演算方法
AU63639/98A AU6363998A (en) 1997-05-02 1998-04-28 Fast fourier transform calculating apparatus and fast fourier transform calculating method
US09/067,802 US6240062B1 (en) 1997-05-02 1998-04-29 Fast fourier transform calculating apparatus and fast fourier transform calculating method
EP98303475A EP0875839A1 (en) 1997-05-02 1998-05-01 Calculating fast fourier transforms

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP11471397A JP3951071B2 (ja) 1997-05-02 1997-05-02 演算装置および演算方法

Publications (2)

Publication Number Publication Date
JPH10307811A JPH10307811A (ja) 1998-11-17
JP3951071B2 true JP3951071B2 (ja) 2007-08-01

Family

ID=14644765

Family Applications (1)

Application Number Title Priority Date Filing Date
JP11471397A Expired - Fee Related JP3951071B2 (ja) 1997-05-02 1997-05-02 演算装置および演算方法

Country Status (4)

Country Link
US (1) US6240062B1 (ja)
EP (1) EP0875839A1 (ja)
JP (1) JP3951071B2 (ja)
AU (1) AU6363998A (ja)

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20020036606A (ko) * 2000-11-10 2002-05-16 윤종용 오에프디엠 출력 비트 신호 보상을 위한 고속 퓨리에 변환장치 및 방법
US7428564B2 (en) * 2003-11-26 2008-09-23 Gibb Sean G Pipelined FFT processor with memory address interleaving
WO2005052808A1 (en) * 2003-11-26 2005-06-09 Cygnus Communications Canada Co. Pipelined fft processor with memory address interleaving
MX2007002071A (es) 2004-08-18 2007-04-24 Nielsen Media Res Inc Metodos y aparatos para generar firmas.
WO2007018553A1 (en) * 2005-08-08 2007-02-15 Commasic Inc. Multi-mode wireless broadband signal processor system and method
US7675847B2 (en) 2007-07-10 2010-03-09 Wipro Limited Hardware implementation of a programmable FFT based on a half length FFT core
WO2009095959A1 (ja) * 2008-01-28 2009-08-06 Panasonic Corporation 直交変換装置および集積回路
US9275014B2 (en) * 2013-03-13 2016-03-01 Qualcomm Incorporated Vector processing engines having programmable data path configurations for providing multi-mode radix-2x butterfly vector processing circuits, and related vector processors, systems, and methods

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4689762A (en) 1984-09-10 1987-08-25 Sanders Associates, Inc. Dynamically configurable fast Fourier transform butterfly circuit
US4868776A (en) * 1987-09-14 1989-09-19 Trw Inc. Fast fourier transform architecture using hybrid n-bit-serial arithmetic
US5303172A (en) 1988-02-16 1994-04-12 Array Microsystems Pipelined combination and vector signal processor
GB2217058A (en) * 1988-03-23 1989-10-18 Benchmark Technologies Processing integral transform operations

Also Published As

Publication number Publication date
US6240062B1 (en) 2001-05-29
JPH10307811A (ja) 1998-11-17
EP0875839A1 (en) 1998-11-04
AU6363998A (en) 1998-11-05

Similar Documents

Publication Publication Date Title
US5717620A (en) Improved-accuracy fast-Fourier-transform butterfly circuit
CN109117188B (zh) 一种多路混合基fft可重构蝶形运算器
JP3951071B2 (ja) 演算装置および演算方法
JPS6125188B2 (ja)
JPH09153029A (ja) 高速フーリエ変換を行うメモリ分散型並列計算機およびその方法
US20050131975A1 (en) Function arithmetic method and function arithmetic circuit
US7653676B2 (en) Efficient mapping of FFT to a reconfigurable parallel and pipeline data flow machine
EP2800010A1 (en) Fft/dft reverse arrangement system and method and computing system thereof
JP3668356B2 (ja) 高速フーリエ変換演算回路
US8010588B2 (en) Optimized multi-mode DFT implementation
JPH08320858A (ja) フーリエ変換演算装置および方法
JP3727406B2 (ja) 関数変換演算器
JP3757782B2 (ja) Fft演算回路
KR100444729B1 (ko) 레딕스-8 단일 경로 지연 전달 구조의 고속 퓨리에 변환장치 및 그 방법
US9582473B1 (en) Instruction set to enable efficient implementation of fixed point fast fourier transform (FFT) algorithms
US20040236808A1 (en) Method and apparatus of constructing a hardware architecture for transform functions
JPH0148582B2 (ja)
JP2529229B2 (ja) コサイン変換装置
JP3620887B2 (ja) データ処理装置
JP2869668B2 (ja) ディジタルデータの離散フーリエ又はコサイン変換装置
CN113625994B (zh) 一种数据处理方法和处理核
JP2696903B2 (ja) 数値計算装置
JPH0535773A (ja) ベクトル除算方式とその装置
JP3865469B2 (ja) バタフライ演算器
JP3759173B2 (ja) 並列演算器およびそれを用いたデジタル・シグナル・プロセッサ

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20060601

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20060606

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20060807

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20070328

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20070410

LAPS Cancellation because of no payment of annual fees