JP3951066B2 - FFT operation device and FFT operation method - Google Patents

FFT operation device and FFT operation method Download PDF

Info

Publication number
JP3951066B2
JP3951066B2 JP12133696A JP12133696A JP3951066B2 JP 3951066 B2 JP3951066 B2 JP 3951066B2 JP 12133696 A JP12133696 A JP 12133696A JP 12133696 A JP12133696 A JP 12133696A JP 3951066 B2 JP3951066 B2 JP 3951066B2
Authority
JP
Japan
Prior art keywords
data
butterfly
units
selector
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
JP12133696A
Other languages
Japanese (ja)
Other versions
JPH09305573A (en
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 JP12133696A priority Critical patent/JP3951066B2/en
Priority to US08/841,355 priority patent/US5890098A/en
Priority to EP97302959A priority patent/EP0805401A1/en
Publication of JPH09305573A publication Critical patent/JPH09305573A/en
Application granted granted Critical
Publication of JP3951066B2 publication Critical patent/JP3951066B2/en
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Landscapes

  • Complex Calculations (AREA)

Description

【0001】
【発明の属する技術分野】
本発明は、FFT演算装置および方法に関し、特に、より高速化を可能とするFFT演算装置および方法に関する。
【0002】
【従来の技術】
最近、放送技術にもディジタル化が普及しつつある。図9は、オーディオ信号をディジタル化して放送するディジタルラジオ放送の1つであるDAB(Digital Audio Broadcasting)の受信装置の構成例を表している。チューナ92は、アンテナ91を介して受信した信号から、所定の放送局(チャンネル)の信号を受信し、A/D変換器93に出力する。A/D変換器93は、入力された信号をA/D変換し、FFT(Fast Fourier Transform)回路94は、A/D変換器93より入力された時間軸上のデータから、複数の副搬送波の周波数軸上のデータに変換するために、FFT演算を行う。なお、このFFT回路94には、時間軸上において隣接するシンボルとの間に設けられているガード・インタバル成分が除去された後のシンボル成分が供給される。
【0003】
デインタリーブ回路および誤り訂正回路95は、FFT回路94の出力に対して、デインタリーブ処理を行うとともに、誤り訂正処理を実行する。デインタリーブ回路および誤り訂正回路95により処理された信号は、その一部が復号化回路96に供給され、DQPSK(Differential Quadrature Phase Shift Keying)復調され、左チャンネルのオーディオ信号と右チャンネルのオーディオ信号が、それぞれスピーカ97と98より出力される。また、付加データ出力回路99は、デインタリーブ回路および誤り訂正回路95より出力された信号から、番組内容、交通情報などの付加データを分離出力する。
【0004】
図10は、このようなFFT回路94の従来の構成例を表している。この例においては、入力されたデータが、入力バッファ1に一旦蓄積された後、セレクタ2とセレクタ3を介してバタフライ演算器4の入力端子in0またはin1に入力されるようになされている。バタフライ演算器4は、例えば基数が2のバタフライ演算(2点のDFT(Discrete Fourier Transform))を行う演算器で、ROM(Read Only Memory)5に記憶されている回転演算子データ(回転因子)を適宜読み出して、端子in0とin1より入力されたデータに対してバタフライ演算を施し、端子out0とout1から出力するようになされている。
【0005】
セレクタ6は、バタフライ演算器4の端子out0とout1から出力されるデータを選択し、セレクタ7に出力する。セレクタ7は、セレクタ6より入力されるデータをメモリ8または出力バッファ9に出力する。メモリ8は、セレクタ7より入力されたデータを記憶するとともに、所定のタイミングで読み出し、セレクタ2に供給する。
【0006】
セレクタ2は、入力バッファ1よりバタフライ演算の処理単位を構成する全てのデータが選択されるまで入力バッファ1からの出力を選択し、バタフライ演算を施すべき全てのデータが入力バッファ1から入力された後は、メモリ8より入力されるデータを選択し、セレクタ3に出力するようになされている。このようにして、バタフライ演算器4により、バタフライ演算結果に対して再びバタフライ演算を施す処理が所定の回数だけ繰り返し実行される。
【0007】
例えば、図11のタイミングチャートに示すように、バタフライ演算器4の端子out0からデータ0(バタフライ演算結果)が、また、端子out1からデータ1(バタフライ演算結果)が、それぞれ出力されたとすると、セレクタ6は、バタフライ演算器4の出力の周期の1/2の周期のクロックで動作し、これにより、バタフライ演算器4の出力の周期の前半の期間においては、端子out0より出力されているデータ0を選択し、後半の期間においては、端子out1より出力されているデータ1を選択する。このデータ0とデータ1は、セレクタ7により選択され、メモリ8に供給され、書き込まれる。即ち、バタフライ演算器4が同時に出力する2つのバタフライ演算結果は、セレクタ6においてパラレル/シリアル変換され、セレクタ7を介して、メモリ8に供給されて記憶される。メモリ8に記憶されたデータは、再び読み出され、セレクタ2とセレクタ3を介してバタフライ演算器4の端子in0とin1に供給される。
【0008】
即ち、図11に示すように、セレクタ6の切り換え周期の1/2の周期で、メモリ8に対するデータの書き込みと読み出しが行われる。例えば、セレクタ6よりデータ0が出力されているとき、その前半の期間において、メモリ8にデータ0が書き込まれ、後半の期間において、既にメモリ8に記憶されているデータが読み出され、セレクタ2とセレクタ3を介してバタフライ演算器4の例えば端子in0に入力される。
【0009】
また、セレクタ6がデータ1を出力している周期においては、その前半の期間において、データ1がメモリ8に書き込まれ、後半の期間において、メモリ8に既に記憶されている所定のデータが読み出され、セレクタ2と3を介してバタフライ演算器4の例えば端子in1に供給される。
【0010】
以下、同様の処理が繰り返し実行される。
【0011】
【発明が解決しようとする課題】
このように、従来のFFT演算装置(ここでは、FFT回路94)においては、図11に示したように、バタフライ演算器4の動作クロックの周波数を1とすると、メモリ8の動作クロックの周波数は、その4倍の周波数とする必要がある。換言すれば、メモリ8の動作クロックが定まっているとすると、バタフライ演算器4における演算は、そのクロックの1/4の速度で行わなければならず、演算の高速化の妨げの1つの原因となっていた。
【0012】
本発明はこのような状況に鑑みてなされたものであり、より高速な演算を可能とするものである。
【0013】
【課題を解決するための手段】
請求項1に記載のFFT演算装置は、所定の基数Nのバタフライ演算を行う演算手段と、バタフライ演算の対象となるN単位のバタフライ演算に関するデータを1単位毎にそれぞれ記憶するN個の記憶手段とを備え、N個の記憶手段それぞれ、演算手段のバタフライ演算結果としての出力であるN単位のデータの書き込みを同時に行って記憶し、記憶したN単位のデータの読み出しを書き込みのタイミングとは異なるタイミングで同時に行って、演算手段の入力に帰還することを特徴とする。
【0014】
請求項6に記載のFFT演算方法は、N個の記憶手段は、それぞれ、演算手段のバタフライ演算結果としての出力であるN単位のデータの書き込みを同時に行って記憶し、記憶したN単位のデータの読み出しを同時に行って、演算手段の入力に帰還することを特徴とする。
【0015】
請求項1に記載のFFT演算装置および請求項6に記載のFFT演算方法においては、N個の記憶手段によりそれぞれ、演算手段のバタフライ演算結果としての出力であるN単位のデータの書き込みが同時に行われて記憶され、記憶されたN単位のデータの読み出しが同時に行われて、演算手段の入力に帰還される
【0016】
【発明の実施の形態】
以下に、本発明の実施例を説明するが、その前に、特許請求の範囲に記載の発明の各手段と以下の実施例との対応関係を明らかにするために、各手段の後の括弧内に、対応する実施例(但し、一例)を付加して、本発明の特徴を記述すると、次のようになる。
【0017】
即ち、請求項1に記載のFFT演算装置は、FFT(Fast Fourier Transform)演算を行うFFT演算装置であって、所定の基数Nのバタフライ演算を行う演算手段(例えば、図2、図4乃至図6、図8に示すバタフライ演算器4や、図7に示すバタフライ演算器54など)と、バタフライ演算の対象となるN単位のバタフライ演算に関するデータを1単位毎にそれぞれ記憶するN個の記憶手段(例えば、図2に示すメモリ15−0および15−1、図4に示す入力バッファ22−0および22−1や、図5に示す出力バッファ32−0および32−1、図6に示すメモリ15−0,15−1、入力バッファ22−0,22−1、出力バッファ32−0、および32−1、図7に示す入力バッファ52−0乃至52−3、メモリ58−0乃至58−3、および出力バッファ59−0乃至59−3、図8に示す入力バッファ部71−0,71−1、メモリ部72−0,72−1、出力バッファ部73−0、および73−1など)とを備え、N個の記憶手段それぞれ、演算手段のバタフライ演算結果としての出力であるN単位のデータの書き込みを同時に行って記憶し、記憶したN単位のデータの読み出しを書き込みのタイミングとは異なるタイミングで同時に行って、演算手段の入力に帰還することを特徴とする。
【0018】
請求項6に記載のFFT演算装置は、N個の記憶手段それぞれが、データを記憶する第1および第2の記憶手段(例えば、図8に示す入力バッファ71−0−2および71−0−3や、入力バッファ71−1−2および71−1−3、メモリ72−0−2および72−0−3、メモリ72−1−2および72−1−3、出力バッファ73−0−2および73−0−3、出力バッファ73−1−2および73−1−3など)を有し、第1または第2の記憶手段のうちの一方に書き込みが行われているとき、他方からは読み出しが行われることを特徴とする。
【0019】
請求項6に記載のFFT演算方法は、所定の基数Nのバタフライ演算を行う演算手段(例えば、図2、図4乃至図6、図8に示すバタフライ演算器4や、図7に示すバタフライ演算器54など)と、バタフライ演算の対象となるN単位のバタフライ演算に関するデータを1単位毎にそれぞれ記憶するN個の記憶手段(例えば、図2に示すメモリ15−0および15−1、図4に示す入力バッファ22−0および22−1や、図5に示す出力バッファ32−0および32−1、図6に示すメモリ15−0,15−1、入力バッファ22−0,22−1、出力バッファ32−0、および32−1、図7に示す入力バッファ52−0乃至52−3、メモリ58−0乃至58−3、および出力バッファ59−0乃至59−3、図8に示す入力バッファ部71−0,71−1、メモリ部72−0,72−1、出力バッファ部73−0、および73−1など)とを備えFFT(Fast Fourier Transform)演算を行うFFT演算装置のFFT演算方法であって、N個の記憶手段は、それぞれ、演算手段のバタフライ演算結果としての出力であるN単位のデータの書き込みを同時に行って記憶し、記憶したN単位のデータの読み出しを同時に行って、演算手段の入力に帰還することを特徴とする。
【0020】
なお、勿論この記載は、各手段を上記したものに限定することを意味するものではない。
【0021】
次に、本発明の基本的原理について説明する。FFTのバタフライ演算においては、その基数をNとすると、1回のバタフライ演算は、N個の入力データに対して行われ、そのバタフライ演算の結果得られるデータもN個得られる。従って、最初の入力データを記憶する入力バッファや、バタフライ演算の途中結果を記憶するメモリ、あるいは、バタフライ演算の最終的な結果を記憶する出力バッファ(以下、適宜、これらの入力バッファ、メモリ、および出力バッファを総称して、記憶部という)が1つでは、その記憶部からN回データを読み出した後に、バタフライ演算を行い、また、そのバタフライ演算結果の記憶部への書き込みをN回行う必要があり、これにより、前述したように、FFT演算の高速化が妨げられる。
【0022】
そこで、本発明では、基数Nのバタフライ演算を行う場合に、N個の記憶部を用意し、このN個の記憶部それぞれからデータを、同時に(並列に)読み出してバタフライ演算を行い、また、その結果得られるN個のバタフライ演算結果それぞれを、N個の記憶部に、同時に(並列に)書き込むようにし、これにより、FFT演算の高速化を図るようになされている。
【0023】
次に、以上のように、N個の記憶部に対するN個のデータの書き込みまたは読み出しを同時に行うための、N個の記憶部の配置方法について、図1を参照して説明する。
【0024】
なお、図1は、時間間引き法(Cooley−Tukey法)による8点のFFTを行う場合のシグナルフローを示している。また、同図において、I0乃至I7,M0乃至M7、またはO0乃至O7は、入力バッファ、メモリ、または出力バッファのアドレスを表している。さらに、同図において、BTFは、基数が2のバタフライ演算を表している。従って、記憶部は2個設けられている。即ち、入力バッファとしては、入力バッファIB0およびIB1が、メモリとしては、メモリMEM0およびMEM1が、出力バッファとしては、出力バッファOB0およびOB1が、それぞれ設けられている。
【0025】
いま、FFTの対象となる8個の入力データを、時系列に、i0乃至i7と、その入力データをFFTすることにより得られる出力データ(最終的なバタフライ演算結果)を、低周波数成分から、o0乃至o7と、それぞれ表すとともに、入力データi0乃至i7は、アドレスI0乃至I7にそれぞれ入力され、出力データo0乃至o7は、アドレスO0乃至O7からそれぞれ出力されるとする。
【0026】
そして、図1(A)に示すように、シグナルフローの上下それぞれの部分に分けて、入力バッファIB0とIB1、メモリMEM0とMEM1、または出力バッファOB0とOB1をそれぞれ設けたとする。
【0027】
この場合、入力データi0乃至i7は、入力バッファIB0のアドレスI0乃至I3、または入力バッファIB1のアドレスI4乃至I7にそれぞれ記憶され、さらに、それぞれから読み出されることで、いわゆるビット逆順に並び替えられた後、最初のバタフライ演算が施される。この最初のバタフライ演算結果は、メモリMEM0およびMEM1に記憶され、さらに、そこから読み出されて、2度目のバタフライ演算が施され、その演算結果は、再び、メモリMEM0およびMEM1に記憶される。そして、この2度目のバタフライ演算結果は、メモリMEM0およびMEM1から読み出され、3度目のバタフライ演算が施された後、出力バッファOB0およびOB1に記憶される。
【0028】
いま、図1(A)に示すように、入力バッファIB0とIB1、メモリMEM0とMEM1、または出力バッファOB0とOB1をそれぞれ配置した場合、最初のバタフライ演算の対象となる2つの入力データは、アドレスI0とI4、I1とI5、I2とI6、またはI3とI7にそれぞれ分けて記憶されるので、即ち、入力バッファIB0と入力バッファIB1とに分けて記憶されるので、同時に読み出し、バタフライ演算を行うことができる。また、最後のバタフライ演算(3回目のバタフライ演算)の結果得られる2つの出力データは、アドレスO0とO4、O1とO5、O2とO6、またはO3とO7にそれぞれ分けて供給されるので、即ち、出力バッファOB0とOB1とに分けて供給されるので、同時に記憶する(書き込む)ことができる。
【0029】
しかしながら、この場合、バタフライ演算の対象となる2つのデータが、いずれも、メモリMEM0またはMEM1のいずれか一方に記憶されるため、即ち、例えば、2度目のバタフライ演算の対象となる2つのデータは、メモリMEM0のアドレスM0とM2、メモリMEM0のアドレスM1とM3、メモリMEM1のアドレスM4とM6、またはメモリMEM1のアドレスM5とM7にそれぞれ記憶されるため、バタフライ演算を行うのに、これらの2つのデータを同時に読み出すことができない。
【0030】
さらに、この場合、メモリMEM0およびMEM1においては、バタフライ演算の結果得られる2つのデータそれぞれは、そのバタフライ演算を行うために読み出した2つのデータそれぞれが記憶されていた元のアドレスに記憶される。即ち、例えば、アドレスM0とM2とから読み出された2つのデータを用いての2度目のバタフライ演算の結果得られる2つのデータは、元のアドレスM0とM2とに記憶される。また、アドレスM1とM3とから読み出された2つのデータを用いての2度目のバタフライ演算の結果得られる2つのデータは、元のアドレスM1とM3とに記憶される。以下、同様に、アドレスM4乃至M7から読み出されたデータも、2度目のバタフライ演算の後、元のアドレスM4乃至M7に記憶される。
【0031】
従って、バタフライ演算の結果得られた2つのデータの書き込みも同時に行うことができない。
【0032】
そこで、例えば、図1(B)に示すように、メモリMEM0に、アドレスM0,M3,M5、およびM6を配置するとともに、メモリMEM1に、アドレスM1,M2,M4、およびM7を配置するようにする。
【0033】
この場合、バタフライ演算の対象となる2つのデータは、メモリMEM0とMEM1とに分けて記憶され、即ち、例えば、2度目のバタフライ演算の対象となる2つのデータは、メモリMEM0のアドレスM0とメモリMEM1のアドレスM2、メモリMEM1のアドレスM1とメモリMEM0のアドレスM3、メモリMEM1のアドレスM4とメモリMEM0のアドレスM6、またはメモリMEM0のアドレスM5とメモリMEM1のM7にそれぞれ記憶され、バタフライ演算を行うのに、これらの2つのデータを同時に読み出すことができる。
【0034】
また、上述したように、メモリMEM0およびMEM1においては、バタフライ演算の結果得られる2つのデータそれぞれは、そのバタフライ演算を行うために読み出した2つのデータそれぞれが記憶されていたアドレス(元のアドレス)に記憶されるから、バタフライ演算の結果得られた2つのデータの書き込みも同時に行うことができる。
【0035】
従って、図1(B)で説明したようなアドレス制御を行うだけで、従来と同一の手順により、また、記憶部の容量も増加することなく、FFT演算の高速化を図ることができる。
【0036】
以下説明する実施例は、以上のような原理に基づいている。
【0037】
図2は、本発明を適用したFFT演算装置の第1実施例の構成を示している。なお、図中、図10における場合と対応する部分には、同一の符号を付してあり、以下では、その説明は、適宜省略する。
【0038】
セレクタ10は、FFTの対象である入力データを、セレクタ12−0または12−1のいずれか一方に供給するようになされている。セレクタ11−0または11−1は、メモリ15−0若しくは15−1の出力のうちのいずれか一方を選択し、セレクタ12−0または12−1にそれぞれ供給するようになされている。なお、セレクタ11−0において、メモリ15−0若しくは15−1の出力のうちのいずれか一方が選択された場合には、セレクタ11−1においては、そのうちの他方が選択されるようになされている。
【0039】
セレクタ12−0は、セレクタ10または11−0の出力のうちのいずれか一方を選択し、バタフライ演算器4の端子in0に供給するようになされている。セレクタ12−1は、セレクタ10または11−1の出力のうちのいずれか一方を選択し、バタフライ演算器4の端子in1に供給するようになされている。
【0040】
セレクタ13−0または13−1は、バタフライ演算器4の端子out0若しくはout1のうちのいずれか一方より出力されるデータを選択し、セレクタ14−0または14−1にそれぞれ供給するようになされている。なお、セレクタ13−0において、端子out0若しくはout1の出力のうちのいずれか一方が選択された場合には、セレクタ13−1においては、そのうちの他方が選択されるようになされている。これにより、端子out0から出力されたデータを、後述するメモリ15−0または15−1のうちのいずれにも記憶させ、また、同様に、端子out1から出力されたデータも、メモリ15−0または15−1のうちのいずれにも記憶させることができるようになされている。
【0041】
セレクタ14−0または14−1は、セレクタ13−0または13−1の出力を、メモリ15ー0または15−1にそれぞれ供給するか、あるいは、セレクタ16に供給するようになされている。メモリ15−0または15−1は、セレクタ14−0または14−1から供給されるデータをそれぞれ記憶し、また、記憶したデータを、セレクタ11−0および11−1の両方に供給するようになされている。セレクタ16は、セレクタ14−0または14−1の出力のうちのいずれか一方を選択して出力するようになされている。
【0042】
次に、その動作について説明する。入力データは、セレクタ10において、セレクタ12−0または12−1のうちのいずれか一方に供給され、さらに、このセレクタ12−0または12−1から、バタフライ演算器4の端子in0またはin1にそれぞれ入力される。バタフライ演算器4は、端子in0とin1より入力されたデータに対してバタフライ演算を施し、その結果得られる2つのデータを端子out0またはout1それぞれから、セレクタ13−0および13−1の両方に出力する。
【0043】
セレクタ13−0または13−1では、次のバタフライ演算で同時に必要となる2つのデータが、メモリ15−0と15−1とに分けて記憶されるように、バタフライ演算器4の端子out0およびout1から供給された2つのデータのうちのいずれか一方が選択され、セレクタ14−0または14−1を介して、メモリ15−0または15−1にそれぞれ供給される。メモリ15−0または15−1は、セレクタ14−0または14−1を介して供給されるデータを、同時に記憶する。従って、バタフライ演算器4の端子out0およびout1から出力された2つのデータは、特に待ち時間をおかず、メモリ15−0と15−1に記憶される。
【0044】
メモリ15−0と15−1とに分けて記憶された、次のバタフライ演算の対象となる2つのデータは、それぞれから、所定のタイミングで、同時に読み出され、セレクタ11−0および11−1に供給される。
【0045】
セレクタ11−0または11−1は、メモリ15−0若しくは15−1それぞれから読み出されたデータのうち、バタフライ演算器4の端子in0またはin1に入力するべき方を選択し、セレクタ12−0または12−1にそれぞれ出力する。セレクタ12−0または12−1は、バタフライ演算の処理単位を構成する全ての入力データが、セレクタ10から供給されるまで、セレクタ10の出力を選択し、バタフライ演算器4の端子in0またはin1にそれぞれ供給する。
【0046】
そして、セレクタ12−0または12−1は、バタフライ演算を施すべき全ての入力データがセレクタ10から供給された後は、セレクタ11−0または11−1より供給されるデータを選択し、バタフライ演算器4の端子in0またはin1にそれぞれ供給する。従って、この場合、メモリ15−0または15−1それぞれから同時に読み出されたデータは、バタフライ演算器4に同時に供給され、その結果、バタフライ演算器4では、即座にバタフライ演算を行うことができる。
【0047】
このようにして、バタフライ演算器4により、バタフライ演算結果に対して再びバタフライ演算を施す処理が所定の回数だけ繰り返し実行される。
【0048】
そして、バタフライ演算処理が、その所定の回数だけ行われると、即ち、最終的なバタフライ演算結果が得られると、それ以降は、セレクタ14−0または14−1において、セレクタ13−0または13−1それぞれから供給されるデータ(最終的なバタフライ演算結果)が、セレクタ16に供給される。セレクタ16では、セレクタ14−0および14−1の出力、即ち、バタフライ演算器4の端子out0またはout1それぞれから同時に出力される2つのデータが、パラレル/シリアル変換されて出力される。
【0049】
以上のようにしてFFT演算を行うFFT演算装置では、セレクタ13−0,13−1,14−0、および14−1は、バタフライ演算器4のクロックと同一クロックで動作し、これにより、メモリ15−0および15−1には、そのようなクロックのタイミングで、バタフライ演算器4によるバタフライ演算結果が供給される。
【0050】
即ち、図3のタイミングチャートに示すように、バタフライ演算器4の端子out0とout1より、それぞれデータ0とデータ1が出力されているとき、セレクタ13−0または13−1は、バタフライ演算器4のクロックと同一のクロックで、そのうちのいずれか一方または他方を、それぞれ同時に選択する。
【0051】
なお、図3の実施例では、セレクタ13−0において、端子out0から出力されるデータ0と2が選択され、セレクタ13−1において、端子out1から出力されるデータ1と3が選択されるようになされているが、同図に付してあるデータの番号は、説明の便宜上、データを特定するために付してあるもので、バタフライ演算器4の出力が、セレクタ13−0および13−1において、実際に、どのように選択されるかを表したものではない。
【0052】
セレクタ13−0または13−1で選択されたデータは、セレクタ14−0または14−1を介して、メモリ15−0または15−1にそれぞれ同時に供給される。メモリ15−0または15−1は、バタフライ演算器4のクロックの1/2の周期のクロックで、セレクタ13−0または13−1それぞれからのデータを同時に記憶し、また、既に記憶しているデータを、同時に読み出して、セレクタ11−0および11−1に供給する。
【0053】
即ち、メモリ15−0または15−1は、セレクタ13−0または13−1それぞれから、データ0または1が出力されているとき、バタフライ演算器4のクロックの周期の前半において、そのデータ0または1それぞれを同時に記憶し、後半において、次のバタフライ演算に必要となるデータを同時に読み出して、セレクタ11−0および11−1に供給する。同様に、セレクタ13−0または13−1それぞれから、データ2または3が出力されているとき、前半において、そのデータ2または3それぞれが同時に記憶され、その後半において、次にバタフライ演算に必要となるデータが同時に読み出される。
【0054】
このように、この実施例においては、メモリ15−0および15−1に対してのデータの書き込みと読み出しを同時に行うようにしたので、図3のタイミングチャートから明らかなように、メモリ15−0および15−1の動作クロックを1とすると、バタフライ演算器4の動作クロックは、その1/2の周波数のクロックで動作することができる。従って、単純には、図10に示した場合より、2倍の高速化が可能となる。
【0055】
なお、図2の実施例においては、図10における入力バッファ1と出力バッファ9を省略した構成とされているが、このような入力バッファ1と出力バッファ9を利用するようにしても良い。
【0056】
図4は、本発明を適用したFFT演算装置の第2実施例の構成を示している。なお、図中、図2または図10における場合と対応する部分については、同一の符号を付してあり、以下では、その説明は、適宜省略する。
【0057】
セレクタ21は、FFTの対象である入力データを、入力バッファ22−0または22−1のいずれか一方に供給するようになされている。入力バッファ22−0または22−1は、セレクタ21から供給される入力データを記憶し、また、既に記憶している入力データを同時に読み出し、セレクタ12−0または12−1にそれぞれ供給するようになされている。
【0058】
なお、この実施例では、セレクタ12−0および12−1には、入力データの他、メモリ8から読み出されたデータも供給されるようになされており、セレクタ12−0または12−1では、入力バッファ22−0または22−1からそれぞれ読み出された入力データか、若しくはメモリ8から供給されるデータのうちのいずれか一方が選択され、バタフライ演算器4に供給されるようになされている。
【0059】
この実施例においては、入力データがセレクタ21において選択されることにより、最初のバタフライ演算の対象となる2つの入力データが、入力バッファ22−0と22−1とに分けて供給される。従って、この場合、バタフライ演算の対象となる2つの入力データが、入力バッファ22−0と22−1とに分けて記憶される。
【0060】
このように、入力バッファ22−0と22−1とに分けて記憶された、バタフライ演算の対象となる2つの入力データは、それぞれから同時に読み出され、セレクタ12−0または12−1を介して、バタフライ演算器4の端子in0またはin1にそれぞれ供給される。
【0061】
従って、この場合、バタフライ演算の対象となる2つの入力データが揃うのに必要な待ち時間がない。即ち、図10に示す場合においては、バタフライ演算器4において、セレクタ2および3を介して、入力バッファ1から、バタフライ演算の対象となる2つの入力データのうちのいずれか一方が供給された後、さらに、セレクタ2および3を介して、入力バッファ1から、他方の入力データが供給されるのを待って、バタフライ演算を行う必要があるが、この実施例においては、2つの入力データが、入力バッファ22−0と22−1から同時に読み出されるので、そのような待ち時間をおく必要がない。その結果、処理の高速化を図ることができる。
【0062】
図5は、本発明を適用したFFT演算装置の第3実施例の構成を示している。なお、図中、図2または図10における場合と対応する部分については、同一の符号を付してあり、以下では、その説明は、適宜省略する。
【0063】
この実施例においては、セレクタ14−0および14−1の2つの出力のうちの一方(図2において、メモリ15−0,15−1に供給されていた出力の方)が、いずれも、セレクタ31に供給されるようになされており、セレクタ31は、そのセレクタ14−0または14−1の出力それぞれを、バタフライ演算器4のクロックの1/2の周期のクロックのタイミングで選択し、メモリ8に供給して記憶させるようになされている。
【0064】
また、セレクタ14−0および14−1の2つの出力のうちの他方(図2において、セレクタ16に供給されていた出力の方)は、それぞれ、出力バッファ32−0または32−1に供給されるようになされており、出力バッファ32−0または32−1は、このセレクタ14−0または14−1の出力を、それぞれ同時に記憶するようになされている。さらに、出力バッファ32−0および32−1は、記憶したデータ(バタフライ演算の最終的な結果)を読み出し、セレクタ33に供給するようにもなされている。セレクタ33は、図2のセレクタ16と同様に、出力バッファ32−0および32−1の出力を、パラレル/シリアル変換して出力するようになされている。
【0065】
この実施例においては、最終的なバタフライ演算結果が得られるまでは、バタフライ演算器4の出力が、セレクタ13−0および13−1、並びにセレクタ14−0および14−1を介して、セレクタ31に供給され、さらに、セレクタ31からメモリ8に供給されて記憶される。そして、このメモリ8に記憶されたデータが、セレクタ2および3を介して、バタフライ演算器4に入力され、そのデータを対象にバタフライ演算を行う処理が繰り返される。
【0066】
そして、バタフライ演算器4において、最終的なバタフライ演算結果としての2つのデータが得られると、それぞれは、セレクタ13−0,13−1,14−0,14−1を適宜介して、出力バッファ32−0または32−1に、同時に供給されて記憶される。出力バッファ32−0または32−1に記憶されたデータは、例えば同時に読み出され、セレクタ33において、パラレル/シリアル変換されて出力される。
【0067】
従って、この場合、バタフライ演算の最終的な結果として得られる2つのデータを、バタフライ演算器4は、待ち時間をおかずに出力することができる。即ち、図10に示す場合においては、バタフライ演算器4から、セレクタ6および7を介して出力される2つのデータは、シリアルデータであるから、先に出力されたデータが出力バッファ9に供給されて記憶されるのを待って、後に出力されたデータを出力バッファ9に供給して記憶させる必要があるが、この実施例においては、2つの入力データが、出力バッファ32−0と32−1とに同時に書き込まれるので、そのような待ち時間をおく必要がない。その結果、処理の高速化を図ることができる(換言すれば、出力バッファ32−0および32−1のクロックは、図10の出力バッファ9のクロックの1/2の周波数のクロックで良い)。
【0068】
図6は、本発明を適用したFFT演算装置の第4実施例の構成を示している。なお、図中、図2、図4、または図5における場合と対応する部分については、同一の符号を付してある。即ち、この実施例は、図2、図4および図5の実施例を結合した構成とされている。従って、このFFT演算装置は、これらの実施例の全ての効果を合わせ持っており、最も高速にバタフライ演算を行うことができる。
【0069】
次に、図7は、本発明を適用したFFT演算装置の第5実施例の構成を示している。この実施例は、図6の第4実施例と、その基本的構成は同一であり、基底が4のバタフライ演算が行われる点だけが異なっている。
【0070】
即ち、図7のセレクタ51は、図6のセレクタ21に対応し、図7の入力バッファ52−0乃至52−3は、図6の入力バッファ22−0および22−1に対応している。また、図7のセレクタ53−0乃至53−3は、図6のセレクタ12−0および12−1に対応し、図7のバタフライ演算器54は、図6のバタフライ演算器4に対応している。さらに、図7のROM45は、図6のROM5に対応し、図6のセレクタ56−0乃至56−3は、図7のセレクタ13−0および13−1に対応している。また、図7のセレクタ57−0乃至57−3は、図6のセレクタ14−0および14−1に対応し、図7のメモリ58−0乃至58−3は、図6のメモリ15−0および15−1に対応している。さらに、図7の出力バッファ59−0乃至59−3は、図6の出力バッファ32−0および32−1に対応し、図7のセレクタ60−0乃至60−3は、図6のセレクタ11−0および11−1に対応している。そして、図7のセレクタ61は、図6のセレクタ33に対応している。
【0071】
以上のように構成されるFFT演算装置では、セレクタ51は、最初のバタフライ演算の対象となる4つ単位の入力データを、入力バッファ52−0乃至52−3それぞれに分けて供給し、入力バッファ52−0乃至52−3それぞれでは、セレクタ51からの入力データが記憶される。そして、入力バッファ52−0乃至52−3では、記憶した入力データ、即ち、最初のバタフライ演算の対象となる4つの入力データが同時に読み出され、セレクタ53−0乃至53−3を介して、バタフライ演算器54の端子in0乃至in3にそれぞれ同時に供給される。従って、バタフライ演算器54では、待ち時間をおかずに、バタフライ演算を開始することができる。
【0072】
バタフライ演算器54は、ROM55に記憶されている回転演算子データ(回転因子)を用い、端子in0乃至in3に入力されたデータに対し、基底が4のバタフライ演算を施し、その結果得られる4つのデータ(バタフライ演算結果)を、それぞれ、端子out0乃至out3から出力する。この端子out0乃至out3から出力されたデータは、すべて、セレクタ56−0乃至56−3に供給される。
【0073】
セレクタ56−0乃至56−3では、次のバタフライ演算で同時に必要となる4つのデータが、メモリ58−0乃至58−3それぞれに分けて記憶されるように、バタフライ演算器54の端子out0乃至out3から供給される4つのデータのうちのいずれかが選択され、セレクタ57−0乃至57−3を介して、メモリ58−0乃至58−3にそれぞれ供給される。メモリ58−0乃至58−3は、セレクタ57−0乃至57−3を介して供給されるデータを、それぞれ同時に記憶する。従って、バタフライ演算器54の端子out0乃至out3から出力された4つのデータは、待ち時間をおかずに、メモリ58−0乃至58−3にそれぞれ記憶される。
【0074】
以上のようにしてメモリ58−0乃至58−3それぞれに分けて記憶された、次のバタフライ演算の対象となる4つのデータは、それぞれから、所定のタイミングで、同時に読み出され、すべて、セレクタ60−0乃至60−3に供給される。
【0075】
セレクタ60−0乃至60−3は、メモリ58−0乃至58−3それぞれから読み出されたデータのうち、バタフライ演算器54の端子in0乃至in3それぞれに入力するべきものを選択し、セレクタ53−0乃至53−3にそれぞれ出力する。セレクタ53−0乃至53−3は、バタフライ演算の処理単位を構成する全ての入力データが、入力バッファ52−0乃至52−3から供給されるまで、その入力バッファ52−0乃至52−3の出力を選択し、バタフライ演算器54の端子in0乃至in3にそれぞれ供給する。
【0076】
そして、セレクタ53−0乃至53−3は、バタフライ演算を施すべき全ての入力データが入力バッファ52−0乃至52−3から供給された後は、セレクタ60−0乃至60−3より供給されるデータを選択し、バタフライ演算器54の端子in0乃至in3にそれぞれ供給する。従って、この場合、メモリ58−0乃至58−3それぞれから同時に読み出されたデータは、バタフライ演算器54に同時に供給され、その結果、バタフライ演算器54では、即座にバタフライ演算を行うことができる。
【0077】
このようにして、バタフライ演算器54により、バタフライ演算結果に対して再びバタフライ演算を施す処理が所定の回数だけ繰り返し実行される。
【0078】
そして、バタフライ演算処理が、その所定の回数だけ行われると、即ち、最終的なバタフライ演算結果が得られると、それ以降は、セレクタ57−0乃至57−3において、セレクタ56−0乃至56−3それぞれから供給されるデータが、出力バッファ59−0乃至59−3にそれぞれ同時に供給されて記憶される。従って、この場合、バタフライ演算器54は、バタフライ演算の最終的な結果として得られる4つのデータを、待ち時間をおかずに出力することができる。
【0079】
出力バッファ59−0乃至59−3に記憶されたデータは、例えば同時に読み出され、セレクタ61において、パラレル/シリアル変換されて出力される。
【0080】
以上のように、基底が4のバタフライ演算によりFFT演算を行う場合においても、処理の高速化を図ることができる。
【0081】
次に、図8は、本発明を適用したFFT演算装置の第6実施例の構成を示している。なお、図中、図6における場合と対応する部分については、同一の符号を付してある。即ち、このFFT演算装置は、入力バッファ22−0,22−1、メモリ15−0,15−1、出力バッファ32−0、または32−1に代えて、入力バッファ部71−0,71−1、メモリ部72−0,72−1、出力バッファ部73−0、または73−1がそれぞれ設けられている他は、図6のFFT演算装置と同様に構成されている。
【0082】
入力バッファ部71−0は、セレクタ71−0−1、入力バッファ71−0−2,71−0−3、およびセレクタ71−0−4で構成されている。セレクタ71−0−1は、入力バッファ部71−0に入力されたデータを、交互に、入力バッファ71−0−2と71−0−3とに供給するようになされている。
【0083】
入力バッファ71−0−2と71−0−3とは、セレクタ71−0−1から供給されるデータを記憶し、また、記憶したデータを読み出し、セレクタ71−0−4に供給するようになされている。
【0084】
セレクタ71−0−4は、入力バッファ71−0−2と71−0−3とから供給されるデータを交互に選択して出力するようになされている。
【0085】
なお、セレクタ71−0−4は、入力バッファ71−0−2または71−0−3のうちの、セレクタ71−0−1からデータが供給されていない方を選択するようになされている。従って、入力バッファ部71−0においては、入力バッファ71−0−2または71−0−3のうちのいずれか一方にデータの書き込みが行われているとき、他方からは、データの読み出しが行われるようになされている。
【0086】
入力バッファ部71−1、メモリ部72−0,72−1、出力バッファ部73−0、または73−1も、入力バッファ部71−0のセレクタ71−0−1、入力バッファ71−0−2,71−0−3、およびセレクタ71−0−4と対応するセレクタ71−1−1、入力バッファ71−1−2,71−1−3、およびセレクタ71−1−4、セレクタ72−0−1、メモリ72−0−2,72−0−3、およびセレクタ72−0−4、セレクタ72−1−1、メモリ72−1−2,72−1−3、およびセレクタ72−1−4、セレクタ73−0−1、出力バッファ73−0−2,73−0−3、およびセレクタ73−0−4、またはセレクタ73−1−1、出力バッファ73−1−2,73−1−3、およびセレクタ73−1−4からそれぞれ構成されている。
【0087】
以上のように構成されるFFT演算装置においては、入力バッファ71−0−2または71−0−3のうちのいずれか一方にデータの書き込みが行われているとき、他方からは、データの読み出しが行われるので、入力バッファ部71−0に対しては、データの書き込みと読み出しとを同時に行うことができる。このことは、入力バッファ部71−0と同様に構成される入力バッファ部71−1、メモリ部72−0,72−1、出力バッファ部73−0、および73−1についても同様であり、従って、この場合、データの読み出しと書き込みとが別に行われる図6の場合と比較して、さらに処理の高速化を図ることができる(換言すれば、入力バッファ部71−0,71−1、メモリ部72−0,72−1、出力バッファ部73−0、または73−1のクロックは、入力バッファ22−0,22−1、メモリ15−0,15−1、出力バッファ32−0、または32−1それぞれのクロックの1/2の周波数のクロックで良い)。
【0088】
以上、本発明を適用したFFT演算装置について説明したが、このようなFFT演算装置は、例えば、前述したような、図9に示したDABの受信装置の他、ディジタル信号処理を行う装置に広く適用可能である。また、FFTの対象とするデータは、音声信号に限られるものではなく、映像信号その他のディジタル信号とすることができる。
【0089】
なお、本実施例においては、FFT処理を行う場合について説明したが、本発明は、逆FFT処理を行う場合にも適用可能である(逆FFT処理を行うには、例えば、ROM5(55)に記憶させておく回転因子を変えるだけで良く、従って、本明細書中におけるFFTとは、広義に、逆FFTをも含むものとする)。
【0090】
また、本実施例においては、基数Nが2と4である場合を例としたが、本発明は、その他の基数についても適用することが可能である。
【0091】
さらに、図2などの実施例では、バタフライ演算器4の2つの出力を、セレクタ13−0および13−1の両方に供給し、セレクタ13−0または13−1において、そのいずれか一方または他方を選択して、セレクタ14−0または14−1にそれぞれ供給するとともに、セレクタ14−0または14−1において、セレクタ13−0または13−1の出力を、メモリ15−0または15−1にそれぞれ供給するか、あるいは、最終的なバタフライ演算結果として出力するような構成としたが、その他、例えば、バタフライ演算器4の端子out0またはout1の出力を、セレクタ13−0または13−1それぞれに供給し、セレクタ13−0または13−1それぞれにおいて、その端子out0またはout1の出力を、セレクタ14−0および14−1の両方に供給するか、あるいは、最終的なバタフライ演算結果として出力するようにするとともに、セレクタ14−0または14−1において、セレクタ13−0若しくは13−1のうちのいずれか一方または他方の出力を選択し、メモリ15−0または15−1にそれぞれ供給するような構成とすることも可能である。
【0092】
但し、例えば図5や図6などの実施例について、後者の構成を適用する場合、バタフライ演算器4の端子out0またはout1から出力される最終的なバタフライ演算結果を、それぞれ出力バッファ32−0または32−1にしか記憶させることができなくなるため、端子out0,out1から出力される最終的なバタフライ演算結果を、出力バッファ32−0または32−1のいずれにも記憶させることができるようにするには、本実施例で説明したような構成(前者の構成)とする必要がある。
【0093】
【発明の効果】
請求項1に記載のFFT演算装置および請求項6に記載のFFT演算方法によれば、N個の記憶手段が、それぞれ、演算手段のバタフライ演算結果としての出力であるN単位のデータの書き込みを同時に行って記憶し、記憶したN単位のデータの読み出しを同時に行って、演算手段の入力に帰還するようにしたので、高速に、FFT演算を行うことが可能となる。
【図面の簡単な説明】
【図1】本発明の原理を説明するためのシグナルフローを示す図である。
【図2】本発明を適用したFFT演算装置の第1実施例の構成を示すブロック図である。
【図3】図2の実施例の動作を説明するためのタイミングチャートである。
【図4】本発明を適用したFFT演算装置の第2実施例の構成を示すブロック図である。
【図5】本発明を適用したFFT演算装置の第3実施例の構成を示すブロック図である。
【図6】本発明を適用したFFT演算装置の第4実施例の構成を示すブロック図である。
【図7】本発明を適用したFFT演算装置の第5実施例の構成を示すブロック図である。
【図8】本発明を適用したFFT演算装置の第6実施例の構成を示すブロック図である。
【図9】DABの受信装置の構成例を示すブロック図である。
【図10】図9のFFT回路94の構成例を示すブロック図である。
【図11】図10のFFT回路94の動作を説明するタイミングチャートである。
【符号の説明】
2,3 セレクタ, 4 バタフライ演算器, 6,7 セレクタ, 8 メモリ, 10,11−0,11−1,12−0,12−1,13−0,13−1,14−0,14−1 セレクタ, 15−0,15−1 メモリ, 16,21 セレクタ, 22−0,22−1 入力バッファ, 31 セレクタ, 32−0,32−1 出力バッファ, 33 セレクタ, 51,52−0乃至52−3,53−0乃至53−3 セレクタ, 54 バタフライ演算器, 56−0乃至56−3,57−0乃至57−3 セレクタ, 58−0乃至58−3メモリ, 59−0乃至59−3 出力バッファ, 60−0乃至60−3,61 セレクタ, 71−0 入力バッファ部, 71−0−1 セレクタ, 71−0−2,71−0−3 入力バッファ, 71−0−4 セレクタ, 71−1 入力バッファ部, 71−1−1 セレクタ, 71−1−2,71−1−3 入力バッファ, 71−1−4 セレクタ, 72−0 メモリ部, 72−0−1 セレクタ, 72−0−2,72−0−3 メモリ, 72−0−4 セレクタ, 72−1 メモリ部, 72−1−1 セレクタ, 72−1−2,72−1−3 メモリ, 72−1−4 セレクタ, 73−0 出力バッファ部, 73−0−1 セレクタ, 73−0−2,73−0−3 出力バッファ, 73−0−4 セレクタ, 73−1 出力バッファ部, 73−1−1 セレクタ, 73−1−2,73−1−3 出力バッファ, 73−1−4 セレクタ
[0001]
BACKGROUND OF THE INVENTION
The present invention relates to an FFT operation apparatus and method, and more particularly, to an FFT operation apparatus and method that enable higher speed.
[0002]
[Prior art]
Recently, digitalization is becoming popular in broadcasting technology. FIG. 9 shows a configuration example of a DAB (Digital Audio Broadcasting) receiving apparatus that is one of digital radio broadcasts that digitize and broadcast an audio signal. The tuner 92 receives a signal of a predetermined broadcasting station (channel) from the signal received via the antenna 91 and outputs it to the A / D converter 93. The A / D converter 93 performs A / D conversion on the input signal, and an FFT (Fast Fourier Transform) circuit 94 converts a plurality of subcarriers from data on the time axis input from the A / D converter 93. In order to convert to data on the frequency axis, an FFT operation is performed. The FFT circuit 94 is supplied with the symbol component after the removal of the guard interval component provided between the adjacent symbols on the time axis.
[0003]
The deinterleave circuit and error correction circuit 95 performs deinterleave processing and error correction processing on the output of the FFT circuit 94. A part of the signal processed by the deinterleave circuit and error correction circuit 95 is supplied to the decoding circuit 96 and demodulated by DQPSK (Differential Quadrature Phase Shift Keying), and the left-channel audio signal and the right-channel audio signal are obtained. Are output from the speakers 97 and 98, respectively. The additional data output circuit 99 separates and outputs additional data such as program contents and traffic information from the signal output from the deinterleave circuit and error correction circuit 95.
[0004]
FIG. 10 shows a conventional configuration example of such an FFT circuit 94. In this example, input data is temporarily stored in the input buffer 1 and then input to the input terminal in0 or in1 of the butterfly calculator 4 via the selector 2 and the selector 3. The butterfly calculator 4 is a calculator that performs, for example, a radix-2 butterfly calculation (two-point DFT (Discrete Fourier Transform)), and rotation operator data (rotation factor) stored in a ROM (Read Only Memory) 5. Are appropriately read out, butterfly computation is performed on the data input from the terminals in0 and in1, and output from the terminals out0 and out1.
[0005]
The selector 6 selects data output from the terminals out 0 and out 1 of the butterfly calculator 4 and outputs the data to the selector 7. The selector 7 outputs the data input from the selector 6 to the memory 8 or the output buffer 9. The memory 8 stores the data input from the selector 7, reads it at a predetermined timing, and supplies it to the selector 2.
[0006]
The selector 2 selects the output from the input buffer 1 until all the data constituting the processing unit of the butterfly computation is selected from the input buffer 1, and all the data to be subjected to the butterfly computation is input from the input buffer 1. After that, the data input from the memory 8 is selected and output to the selector 3. In this way, the butterfly computing unit 4 repeatedly performs the process of performing the butterfly computation again on the butterfly computation result a predetermined number of times.
[0007]
For example, as shown in the timing chart of FIG. 11, if data 0 (butterfly calculation result) is output from the terminal out0 of the butterfly calculator 4 and data 1 (butterfly calculation result) is output from the terminal out1, the selector 6 operates with a clock having a cycle that is ½ of the cycle of the output of the butterfly computing unit 4, whereby the data 0 output from the terminal out 0 in the first half of the cycle of the output of the butterfly computing unit 4. In the latter half of the period, the data 1 output from the terminal out1 is selected. The data 0 and data 1 are selected by the selector 7, supplied to the memory 8, and written. That is, two butterfly computation results output simultaneously from the butterfly computing unit 4 are parallel / serial converted by the selector 6, supplied to the memory 8 via the selector 7, and stored. The data stored in the memory 8 is read again and supplied to the terminals in0 and in1 of the butterfly calculator 4 via the selector 2 and the selector 3.
[0008]
That is, as shown in FIG. 11, data is written to and read from the memory 8 in a cycle that is ½ of the switching cycle of the selector 6. For example, when data 0 is output from the selector 6, data 0 is written in the memory 8 during the first half of the period, and data already stored in the memory 8 is read out during the second half of the period. And, for example, input to the terminal in 0 of the butterfly calculator 4 via the selector 3.
[0009]
In the period in which the selector 6 outputs the data 1, the data 1 is written to the memory 8 in the first half period, and the predetermined data already stored in the memory 8 is read in the second half period. Then, it is supplied to, for example, the terminal in 1 of the butterfly computing unit 4 through the selectors 2 and 3.
[0010]
Thereafter, similar processing is repeatedly executed.
[0011]
[Problems to be solved by the invention]
Thus, in the conventional FFT operation device (in this case, the FFT circuit 94), as shown in FIG. 11, when the frequency of the operation clock of the butterfly operation unit 4 is 1, the frequency of the operation clock of the memory 8 is The frequency needs to be four times that. In other words, assuming that the operation clock of the memory 8 is fixed, the calculation in the butterfly calculator 4 must be performed at a speed of 1/4 of the clock, which is one cause of hindering the speeding up of the calculation. It was.
[0012]
The present invention has been made in view of such a situation, and enables higher-speed calculations.
[0013]
[Means for Solving the Problems]
The FFT calculation apparatus according to claim 1 is a calculation unit that performs a predetermined radix-N butterfly calculation, and N storage units that store data related to butterfly calculation of N units as a target of the butterfly calculation for each unit. N storage means Is , Respectively, Of computing means As a result of butterfly calculation output Write N units of data at the same time Remember, Reading the stored N units of data simultaneously at a timing different from the timing of writing, It returns to the input of a calculating means, It is characterized by the above-mentioned.
[0014]
The FFT calculation method according to claim 6 includes N storage means. Respectively write and store N units of data, which are outputs as butterfly computation results of the computing means, and simultaneously read out the stored N units of data and feed back to the input of the computing means. It is characterized by that.
[0015]
In the FFT operation apparatus according to claim 1 and the FFT operation method according to claim 6, N storage means By , Respectively, Of computing means As a result of butterfly calculation output N units of data are simultaneously written Memory Is Remembered N units of data are read simultaneously, Return to the input of the calculation means Be done .
[0016]
DETAILED DESCRIPTION OF THE INVENTION
Hereinafter, embodiments of the present invention will be described. Before that, in order to clarify the correspondence between each means of the invention described in the claims and the following embodiments, parentheses after each means are described. The features of the present invention are described as follows by adding the corresponding embodiment (however, an example).
[0017]
In other words, the FFT computing device according to claim 1 is an FFT computing device for performing FFT (Fast Fourier Transform) computation, and computing means for performing butterfly computation of a predetermined radix N (for example, FIG. 2, FIG. 4 to FIG. 6, butterfly computing unit 4 shown in FIG. 8, butterfly computing unit 54 shown in FIG. 7, and the like, and N storage means for storing data related to butterfly computation of N units for each butterfly computation. (For example, the memories 15-0 and 15-1 shown in FIG. 2, the input buffers 22-0 and 22-1 shown in FIG. 4, the output buffers 32-0 and 32-1 shown in FIG. 5, and the memory shown in FIG. 6) 15-0, 15-1, input buffers 22-0 and 22-1, output buffers 32-0 and 32-1, input buffers 52-0 to 52-3 and memories 58-0 to 58- shown in FIG. 3 And output buffers 59-0 to 59-3, input buffer units 71-0 and 71-1, memory units 72-0 and 72-1, output buffer units 73-0 and 73-1, etc. shown in FIG. N storage means Is , Respectively, Of computing means As a result of butterfly calculation output Write N units of data at the same time Remember, Reading the stored N units of data simultaneously at a timing different from the timing of writing, It returns to the input of a calculating means, It is characterized by the above-mentioned.
[0018]
According to the sixth aspect of the present invention, each of the N storage means includes first and second storage means for storing data (for example, input buffers 71-0-2 and 71-0- shown in FIG. 8). 3, input buffers 71-1-2 and 71-1-3, memories 72-0-2 and 72-0-3, memories 72-1-2 and 72-1-3, output buffer 73-0-2 And 73-0-3, output buffers 73-1-2 and 73-1-3, etc.), when writing is being performed on one of the first or second storage means, Reading is performed.
[0019]
The FFT calculation method according to claim 6 is a calculation means for performing a butterfly calculation of a predetermined radix N (for example, the butterfly calculator 4 shown in FIGS. 2, 4 to 6 and 8, or the butterfly calculation shown in FIG. 7). And N storage means (for example, the memories 15-0 and 15-1 shown in FIG. 2; FIG. 4). Input buffers 22-0 and 22-1 shown in FIG. 5, output buffers 32-0 and 32-1 shown in FIG. 5, memories 15-0 and 15-1, input buffers 22-0 and 22-1, shown in FIG. Output buffers 32-0 and 32-1, input buffers 52-0 to 52-3 shown in FIG. 7, memories 58-0 to 58-3, and output buffers 59-0 to 59-3, inputs shown in FIG. buffer 71-0,71-1, memory unit 72-0,72-1, output buffer 73-0, and the like 73-1) and includes a , An FFT calculation method of an FFT calculation device for performing FFT (Fast Fourier Transform) calculation, comprising N storage means Respectively write and store N units of data, which are outputs as butterfly computation results of the computing means, and simultaneously read out the stored N units of data and feed back to the input of the computing means. It is characterized by that.
[0020]
Of course, this description does not mean that the respective means are limited to those described above.
[0021]
Next, the basic principle of the present invention will be described. In the FFT butterfly operation, if the radix is N, one butterfly operation is performed on N pieces of input data, and N pieces of data obtained as a result of the butterfly operation are also obtained. Therefore, an input buffer for storing the first input data, a memory for storing the intermediate results of the butterfly calculation, or an output buffer for storing the final results of the butterfly calculation (hereinafter, these input buffers, memories, and In the case of one output buffer (collectively referred to as a storage unit), it is necessary to perform butterfly computation after reading data N times from the storage unit and to write the butterfly computation result to the storage unit N times. As described above, this hinders the speeding up of the FFT operation.
[0022]
Therefore, in the present invention, when performing a radix-N butterfly operation, N storage units are prepared, data is read from each of the N storage units simultaneously (in parallel), and the butterfly operation is performed. Each of the N butterfly computation results obtained as a result is written simultaneously (in parallel) in N storage units, thereby speeding up the FFT computation.
[0023]
Next, an arrangement method of N storage units for simultaneously writing or reading N data to and from N storage units as described above will be described with reference to FIG.
[0024]
FIG. 1 shows a signal flow in the case of performing 8-point FFT by the time thinning method (Cooley-Tukey method). In the figure, I0 to I7, M0 to M7, or O0 to O7 represent addresses of the input buffer, memory, or output buffer. Further, in the figure, BTF represents a radix-2 butterfly operation. Accordingly, two storage units are provided. That is, input buffers IB0 and IB1 are provided as input buffers, memories MEM0 and MEM1 are provided as memories, and output buffers OB0 and OB1 are provided as output buffers.
[0025]
Now, the eight input data to be subjected to the FFT, i0 to i7 in time series, and the output data (final butterfly calculation result) obtained by performing the FFT on the input data from the low frequency component, , and input data i0 to i7 are input to addresses I0 to I7, respectively, and output data o0 to o7 are output from addresses O0 to O7, respectively.
[0026]
As shown in FIG. 1A, it is assumed that input buffers IB0 and IB1, memories MEM0 and MEM1, or output buffers OB0 and OB1 are provided separately in upper and lower portions of the signal flow.
[0027]
In this case, the input data i0 to i7 are stored in the addresses I0 to I3 of the input buffer IB0 or the addresses I4 to I7 of the input buffer IB1, respectively, and further read out from each to be rearranged in the so-called bit reverse order. After that, the first butterfly operation is performed. The first butterfly calculation result is stored in the memories MEM0 and MEM1, and is read from the memory MEM0 and MEM1. The second butterfly calculation is performed, and the calculation result is stored in the memories MEM0 and MEM1 again. Then, the second butterfly calculation result is read from the memories MEM0 and MEM1, and after the third butterfly calculation is performed, it is stored in the output buffers OB0 and OB1.
[0028]
As shown in FIG. 1A, when the input buffers IB0 and IB1, the memories MEM0 and MEM1, or the output buffers OB0 and OB1 are arranged, the two input data to be subjected to the first butterfly operation are the addresses. Since I0 and I4, I1 and I5, I2 and I6, or I3 and I7 are stored separately, that is, they are stored separately in the input buffer IB0 and the input buffer IB1, so they are read out simultaneously and the butterfly operation is performed. be able to. The two output data obtained as a result of the last butterfly operation (third butterfly operation) are supplied separately to addresses O0 and O4, O1 and O5, O2 and O6, or O3 and O7, that is, Since the output buffers OB0 and OB1 are supplied separately, they can be stored (written) at the same time.
[0029]
However, in this case, since the two data to be subjected to the butterfly calculation are both stored in either the memory MEM0 or MEM1, for example, the two data to be subjected to the second butterfly calculation are Are stored in the addresses M0 and M2 of the memory MEM0, the addresses M1 and M3 of the memory MEM0, the addresses M4 and M6 of the memory MEM1, or the addresses M5 and M7 of the memory MEM1, respectively. Two data cannot be read simultaneously.
[0030]
Further, in this case, in the memories MEM0 and MEM1, each of the two data obtained as a result of the butterfly calculation is stored at the original address where the two data read for performing the butterfly calculation are stored. That is, for example, two data obtained as a result of the second butterfly operation using the two data read from the addresses M0 and M2 are stored in the original addresses M0 and M2. Further, two data obtained as a result of the second butterfly operation using the two data read from the addresses M1 and M3 are stored in the original addresses M1 and M3. Similarly, the data read from the addresses M4 to M7 are also stored in the original addresses M4 to M7 after the second butterfly operation.
[0031]
Therefore, it is not possible to simultaneously write two data obtained as a result of the butterfly calculation.
[0032]
Therefore, for example, as shown in FIG. 1B, addresses M0, M3, M5, and M6 are arranged in the memory MEM0, and addresses M1, M2, M4, and M7 are arranged in the memory MEM1. To do.
[0033]
In this case, the two data to be subjected to the butterfly operation are stored separately in the memories MEM0 and MEM1, that is, for example, the two data to be subjected to the second butterfly operation are the memory MMEM0 address M0 and the memory It is stored in the address M2 of the MEM1, the address M1 of the memory MEM1 and the address M3 of the memory MEM0, the address M4 of the memory MEM1 and the address M6 of the memory MEM0, or the address M5 of the memory MEM0 and the M7 of the memory MEM1, respectively. In addition, these two data can be read simultaneously.
[0034]
Further, as described above, in the memories MEM0 and MEM1, each of the two data obtained as a result of the butterfly operation is an address (original address) where the two data read for performing the butterfly operation are stored. Therefore, the two data obtained as a result of the butterfly operation can be written simultaneously.
[0035]
Therefore, by performing only the address control as described with reference to FIG. 1B, the FFT operation can be speeded up by the same procedure as before and without increasing the capacity of the storage unit.
[0036]
The embodiments described below are based on the above principle.
[0037]
FIG. 2 shows the configuration of a first embodiment of an FFT operation apparatus to which the present invention is applied. In the figure, portions corresponding to those in FIG. 10 are denoted by the same reference numerals, and description thereof will be omitted below as appropriate.
[0038]
The selector 10 is configured to supply input data to be subjected to FFT to either the selector 12-0 or 12-1. The selector 11-0 or 11-1 selects one of the outputs of the memory 15-0 or 15-1, and supplies it to the selector 12-0 or 12-1. When one of the outputs of the memory 15-0 or 15-1 is selected in the selector 11-0, the other of them is selected in the selector 11-1. Yes.
[0039]
The selector 12-0 selects one of the outputs of the selector 10 and 11-0 and supplies it to the terminal in0 of the butterfly computing unit 4. The selector 12-1 selects one of the outputs of the selector 10 or 11-1 and supplies it to the terminal in 1 of the butterfly calculator 4.
[0040]
The selector 13-0 or 13-1 selects data output from either the terminal out0 or out1 of the butterfly calculator 4, and supplies the data to the selector 14-0 or 14-1. Yes. When one of the outputs from the terminal out0 or out1 is selected in the selector 13-0, the other is selected in the selector 13-1. As a result, the data output from the terminal out0 is stored in either a memory 15-0 or 15-1 described later. Similarly, the data output from the terminal out1 is also stored in the memory 15-0 or 15-1. It can be stored in any one of 15-1.
[0041]
The selector 14-0 or 14-1 supplies the output of the selector 13-0 or 13-1 to the memory 15-0 or 15-1, respectively, or supplies it to the selector 16. The memory 15-0 or 15-1 stores the data supplied from the selector 14-0 or 14-1, respectively, and supplies the stored data to both the selectors 11-0 and 11-1. Has been made. The selector 16 selects and outputs one of the outputs of the selectors 14-0 and 14-1.
[0042]
Next, the operation will be described. Input data is supplied to either the selector 12-0 or 12-1 in the selector 10, and from the selector 12-0 or 12-1 to the terminal in0 or in1 of the butterfly computing unit 4, respectively. Entered. The butterfly calculator 4 performs a butterfly operation on the data input from the terminals in0 and in1, and outputs the two data obtained as a result from the terminal out0 or out1 to both the selectors 13-0 and 13-1. To do.
[0043]
In the selector 13-0 or 13-1, the terminal out0 of the butterfly calculator 4 and the two data that are simultaneously required in the next butterfly calculation are stored in the memories 15-0 and 15-1. Either one of the two data supplied from out1 is selected and supplied to the memory 15-0 or 15-1 via the selector 14-0 or 14-1. The memory 15-0 or 15-1 stores data supplied via the selector 14-0 or 14-1 at the same time. Therefore, the two data output from the terminals out0 and out1 of the butterfly computing unit 4 are stored in the memories 15-0 and 15-1 with no particular waiting time.
[0044]
The two data to be subjected to the next butterfly operation stored separately in the memories 15-0 and 15-1 are simultaneously read out at a predetermined timing from each of the data, and the selectors 11-0 and 11-1 To be supplied.
[0045]
The selector 11-0 or 11-1 selects the data to be input to the terminal in0 or in1 of the butterfly computing unit 4 from the data read from the memory 15-0 or 15-1, respectively, and the selector 12-0 Or 12-1 respectively. The selector 12-0 or 12-1 selects the output of the selector 10 until all input data constituting the processing unit of the butterfly calculation is supplied from the selector 10, and the selector 12-0 or 12-1 is connected to the terminal in0 or in1 of the butterfly calculator 4. Supply each.
[0046]
The selector 12-0 or 12-1 selects the data supplied from the selector 11-0 or 11-1 after all the input data to be subjected to the butterfly calculation is supplied from the selector 10, and performs the butterfly calculation. To the terminal in0 or in1 of the device 4, respectively. Accordingly, in this case, the data simultaneously read from each of the memories 15-0 and 15-1 is simultaneously supplied to the butterfly computing unit 4, and as a result, the butterfly computing unit 4 can immediately perform the butterfly computation. .
[0047]
In this way, the butterfly computing unit 4 repeatedly performs the process of performing the butterfly computation again on the butterfly computation result a predetermined number of times.
[0048]
When the butterfly computation process is performed a predetermined number of times, that is, when the final butterfly computation result is obtained, the selector 14-0 or 14-1 thereafter performs the selector 13-0 or 13- Data (final butterfly calculation result) supplied from each of the data is supplied to the selector 16. In the selector 16, the outputs of the selectors 14-0 and 14-1, that is, two pieces of data that are simultaneously output from the terminals out <b> 0 or out <b> 1 of the butterfly calculator 4 are subjected to parallel / serial conversion and output.
[0049]
In the FFT operation apparatus that performs the FFT operation as described above, the selectors 13-0, 13-1, 14-0, and 14-1 operate with the same clock as the clock of the butterfly operation unit 4, so that the memory 15-0 and 15-1 are supplied with the result of the butterfly computation by the butterfly computing unit 4 at such a clock timing.
[0050]
That is, as shown in the timing chart of FIG. 3, when data 0 and data 1 are respectively output from the terminals out0 and out1 of the butterfly calculator 4, the selector 13-0 or 13-1 One or the other of them is selected at the same time with the same clock.
[0051]
In the embodiment of FIG. 3, the selector 13-0 selects the data 0 and 2 output from the terminal out0, and the selector 13-1 selects the data 1 and 3 output from the terminal out1. However, for convenience of explanation, the data numbers given in the figure are given for specifying the data, and the output of the butterfly computing unit 4 is sent to the selectors 13-0 and 13-. 1 does not represent how it is actually selected.
[0052]
The data selected by the selector 13-0 or 13-1 is simultaneously supplied to the memory 15-0 or 15-1 via the selector 14-0 or 14-1. The memory 15-0 or 15-1 is a clock having a period of ½ of the clock of the butterfly computing unit 4, and simultaneously stores the data from the selector 13-0 or 13-1, respectively. Data is read out simultaneously and supplied to selectors 11-0 and 11-1.
[0053]
That is, when data 0 or 1 is output from the selector 13-0 or 13-1, respectively, the memory 15-0 or 15-1 receives the data 0 or 1 in the first half of the clock cycle of the butterfly computing unit 4. 1 is stored simultaneously, and in the second half, data necessary for the next butterfly operation is simultaneously read and supplied to the selectors 11-0 and 11-1. Similarly, when the data 2 or 3 is output from the selector 13-0 or 13-1, respectively, the data 2 or 3 is simultaneously stored in the first half, and in the second half, it is necessary for the next butterfly operation. Are simultaneously read.
[0054]
As described above, in this embodiment, since data writing and reading are simultaneously performed on the memories 15-0 and 15-1, the memory 15-0 is clear from the timing chart of FIG. Assuming that the operation clock of 15-1 is 1, the operation clock of the butterfly computing unit 4 can operate with a clock having a half frequency. Therefore, the speed can be increased twice as much as the case shown in FIG.
[0055]
In the embodiment of FIG. 2, the input buffer 1 and the output buffer 9 in FIG. 10 are omitted. However, such an input buffer 1 and output buffer 9 may be used.
[0056]
FIG. 4 shows the configuration of a second embodiment of the FFT arithmetic unit to which the present invention is applied. In the figure, portions corresponding to those in FIG. 2 or FIG. 10 are denoted by the same reference numerals, and description thereof will be omitted below as appropriate.
[0057]
The selector 21 is configured to supply input data to be subjected to FFT to either the input buffer 22-0 or 22-1. The input buffer 22-0 or 22-1 stores the input data supplied from the selector 21, and simultaneously reads the already stored input data and supplies it to the selector 12-0 or 12-1. Has been made.
[0058]
In this embodiment, the selectors 12-0 and 12-1 are supplied with the data read from the memory 8 in addition to the input data. The selector 12-0 or 12-1 Any one of the input data read from the input buffer 22-0 or 22-1 or the data supplied from the memory 8 is selected and supplied to the butterfly computing unit 4. Yes.
[0059]
In this embodiment, when input data is selected by the selector 21, two input data to be subjected to the first butterfly calculation are supplied separately to the input buffers 22-0 and 22-1. Therefore, in this case, the two input data to be subjected to the butterfly calculation are stored separately in the input buffers 22-0 and 22-1.
[0060]
As described above, the two input data to be subjected to the butterfly calculation, which are separately stored in the input buffers 22-0 and 22-1 are simultaneously read out from each of the input buffers 22-0 and 22-1 and passed through the selector 12-0 or 12-1. And supplied to the terminal in0 or in1 of the butterfly computing unit 4, respectively.
[0061]
Therefore, in this case, there is no waiting time required for two input data to be subjected to butterfly computation. That is, in the case shown in FIG. 10, after the butterfly computing unit 4 is supplied with one of the two input data to be subjected to the butterfly computation from the input buffer 1 via the selectors 2 and 3. Furthermore, it is necessary to perform a butterfly operation after waiting for the other input data to be supplied from the input buffer 1 via the selectors 2 and 3, but in this embodiment, the two input data are Since it is simultaneously read from the input buffers 22-0 and 22-1, there is no need for such a waiting time. As a result, the processing speed can be increased.
[0062]
FIG. 5 shows the configuration of a third embodiment of an FFT operation apparatus to which the present invention is applied. In the figure, portions corresponding to those in FIG. 2 or FIG. 10 are denoted by the same reference numerals, and description thereof will be omitted below as appropriate.
[0063]
In this embodiment, one of the two outputs of the selectors 14-0 and 14-1 (the output supplied to the memories 15-0 and 15-1 in FIG. 2) is a selector. The selector 31 selects each of the outputs of the selector 14-0 or 14-1 at a clock timing having a cycle that is ½ of the clock of the butterfly computing unit 4, and the memory 31 8 to be stored.
[0064]
The other of the two outputs of the selectors 14-0 and 14-1 (the output supplied to the selector 16 in FIG. 2) is supplied to the output buffer 32-0 or 32-1, respectively. The output buffer 32-0 or 32-1 stores the output of the selector 14-0 or 14-1 at the same time. Further, the output buffers 32-0 and 32-1 read stored data (final result of the butterfly calculation) and supply it to the selector 33. The selector 33 is configured to perform parallel / serial conversion on the outputs of the output buffers 32-0 and 32-1, as with the selector 16 of FIG.
[0065]
In this embodiment, until the final butterfly calculation result is obtained, the output of the butterfly calculator 4 is sent to the selector 31 via the selectors 13-0 and 13-1 and the selectors 14-0 and 14-1. Is further supplied from the selector 31 to the memory 8 and stored therein. Then, the data stored in the memory 8 is input to the butterfly calculator 4 via the selectors 2 and 3, and the process of performing the butterfly calculation on the data is repeated.
[0066]
Then, when two data as final butterfly calculation results are obtained in the butterfly calculator 4, the respective data are output through the selectors 13-0, 13-1, 14-0, and 14-1 as appropriate. 32-0 or 32-1 is supplied and stored at the same time. The data stored in the output buffer 32-0 or 32-1 is read simultaneously, for example, and is subjected to parallel / serial conversion in the selector 33 and output.
[0067]
Accordingly, in this case, the butterfly calculator 4 can output two data obtained as the final result of the butterfly calculation without waiting. That is, in the case shown in FIG. 10, since the two data output from the butterfly calculator 4 via the selectors 6 and 7 are serial data, the previously output data is supplied to the output buffer 9. However, in this embodiment, two input data are stored in the output buffers 32-0 and 32-1, while it is necessary to supply the output data to the output buffer 9 for storage. Since it is written at the same time, there is no need for such a waiting time. As a result, the processing speed can be increased (in other words, the clock of the output buffers 32-0 and 32-1 may be a clock having a frequency ½ that of the clock of the output buffer 9 in FIG. 10).
[0068]
FIG. 6 shows the configuration of a fourth embodiment of an FFT operation apparatus to which the present invention is applied. In the figure, parts corresponding to those in FIG. 2, FIG. 4, or FIG. That is, this embodiment is configured by combining the embodiments of FIGS. 2, 4 and 5. Therefore, this FFT operation device has all the effects of these embodiments, and can perform the butterfly operation at the highest speed.
[0069]
Next, FIG. 7 shows a configuration of a fifth embodiment of the FFT arithmetic unit to which the present invention is applied. This embodiment is the same as the fourth embodiment shown in FIG. 6 except for the fact that a butterfly operation with a base of 4 is performed.
[0070]
That is, the selector 51 in FIG. 7 corresponds to the selector 21 in FIG. 6, and the input buffers 52-0 to 52-3 in FIG. 7 correspond to the input buffers 22-0 and 22-1 in FIG. 7 correspond to the selectors 12-0 and 12-1 in FIG. 6, and the butterfly calculator 54 in FIG. 7 corresponds to the butterfly calculator 4 in FIG. Yes. Furthermore, the ROM 45 in FIG. 7 corresponds to the ROM 5 in FIG. 6, and the selectors 56-0 to 56-3 in FIG. 6 correspond to the selectors 13-0 and 13-1 in FIG. 7 correspond to the selectors 14-0 and 14-1 in FIG. 6, and the memories 58-0 to 58-3 in FIG. 7 are the memories 15-0 in FIG. And 15-1. Further, the output buffers 59-0 to 59-3 in FIG. 7 correspond to the output buffers 32-0 and 32-1 in FIG. 6, and the selectors 60-0 to 60-3 in FIG. Corresponds to −0 and 11-1. The selector 61 in FIG. 7 corresponds to the selector 33 in FIG.
[0071]
In the FFT operation apparatus configured as described above, the selector 51 supplies the input data of four units to be subjected to the first butterfly operation separately to the input buffers 52-0 to 52-3. In each of 52-0 to 52-3, input data from the selector 51 is stored. Then, in the input buffers 52-0 to 52-3, the stored input data, that is, four input data to be subjected to the first butterfly calculation are simultaneously read out, via the selectors 53-0 to 53-3, The signals are simultaneously supplied to the terminals in0 to in3 of the butterfly calculator 54, respectively. Therefore, the butterfly calculator 54 can start the butterfly calculation without waiting.
[0072]
The butterfly calculator 54 uses the rotation operator data (rotation factor) stored in the ROM 55, performs butterfly calculation with a base of 4 on the data input to the terminals in0 to in3, and obtains four results obtained as a result. Data (butterfly calculation results) is output from terminals out0 to out3, respectively. All the data output from the terminals out0 to out3 is supplied to the selectors 56-0 to 56-3.
[0073]
In the selectors 56-0 to 56-3, the terminals out0 to out of the butterfly calculator 54 are stored so that four data simultaneously required in the next butterfly calculation are stored separately in the memories 58-0 to 58-3. One of the four data supplied from out3 is selected and supplied to the memories 58-0 to 58-3 via the selectors 57-0 to 57-3, respectively. The memories 58-0 to 58-3 simultaneously store data supplied via the selectors 57-0 to 57-3, respectively. Accordingly, the four data output from the terminals out0 to out3 of the butterfly calculator 54 are stored in the memories 58-0 to 58-3, respectively, without waiting time.
[0074]
The four data to be subjected to the next butterfly calculation stored separately in the memories 58-0 to 58-3 as described above are simultaneously read out from each of them at a predetermined timing. 60-0 to 60-3.
[0075]
The selectors 60-0 to 60-3 select data to be input to the terminals in0 to in3 of the butterfly computing unit 54 from among the data read from the memories 58-0 to 58-3, respectively. Output to 0 to 53-3, respectively. The selectors 53-0 to 53-3 are connected to the input buffers 52-0 to 52-3 until all the input data constituting the processing unit of the butterfly computation is supplied from the input buffers 52-0 to 52-3. The output is selected and supplied to the terminals in0 to in3 of the butterfly calculator 54, respectively.
[0076]
The selectors 53-0 to 53-3 are supplied from the selectors 60-0 to 60-3 after all the input data to be subjected to the butterfly operation is supplied from the input buffers 52-0 to 52-3. Data is selected and supplied to terminals in0 to in3 of the butterfly calculator 54, respectively. Accordingly, in this case, the data simultaneously read from each of the memories 58-0 to 58-3 is simultaneously supplied to the butterfly computing unit 54. As a result, the butterfly computing unit 54 can immediately perform the butterfly computation. .
[0077]
In this manner, the butterfly computing unit 54 repeatedly performs the process of performing the butterfly computation on the butterfly computation result a predetermined number of times.
[0078]
When the butterfly computation process is performed a predetermined number of times, that is, when the final butterfly computation result is obtained, the selectors 57-0 to 57-3 thereafter perform selectors 56-0 to 56-. The data supplied from each of the three is simultaneously supplied to and stored in the output buffers 59-0 to 59-3. Therefore, in this case, the butterfly calculator 54 can output the four data obtained as the final result of the butterfly calculation without waiting.
[0079]
The data stored in the output buffers 59-0 to 59-3 are read simultaneously, for example, and are subjected to parallel / serial conversion and output by the selector 61.
[0080]
As described above, even when the FFT calculation is performed by the butterfly calculation with a base of 4, the processing can be speeded up.
[0081]
Next, FIG. 8 shows the configuration of a sixth embodiment of the FFT arithmetic unit to which the present invention is applied. In the figure, portions corresponding to those in FIG. 6 are denoted by the same reference numerals. In other words, the FFT arithmetic unit replaces the input buffers 22-0 and 22-1, the memories 15-0 and 15-1, the output buffer 32-0, or 32-1, and the input buffer units 71-0 and 71-. 1 except that the memory units 72-0 and 72-1, and the output buffer unit 73-0 or 73-1 are provided, respectively.
[0082]
The input buffer unit 71-0 includes a selector 71-0-1, input buffers 71-0-2 and 71-0-3, and a selector 71-0-4. The selector 71-0-1 alternately supplies the data input to the input buffer unit 71-0 to the input buffers 71-0-2 and 71-0-3.
[0083]
The input buffers 71-0-2 and 71-0-3 store data supplied from the selector 71-0-1, read out the stored data, and supply the data to the selector 71-0-4. Has been made.
[0084]
The selector 71-0-4 alternately selects and outputs data supplied from the input buffers 71-0-2 and 71-0-3.
[0085]
The selector 71-0-4 selects one of the input buffers 71-0-2 or 71-0-3 that is not supplied with data from the selector 71-0-1. Therefore, in the input buffer unit 71-0, when data is written to either the input buffer 71-0-2 or 71-0-3, data is read from the other. It is made to be.
[0086]
The input buffer unit 71-1, the memory units 72-0 and 72-1, the output buffer unit 73-0, or 73-1 also includes the selector 71-0-1 and the input buffer 71-0- of the input buffer unit 71-0. 2, 71-0-3, selector 71-1-1 corresponding to selector 71-0-4, input buffers 71-1-2, 71-1-3, selector 71-1-4, selector 72- 0-1, memories 72-0-2, 72-0-3, and selector 72-0-4, selector 72-1-1, memories 72-1-2, 72-1-3, and selector 72-1. -4, selector 73-0-1, output buffers 73-0-2, 73-0-3, and selector 73-0-4, or selector 73-1-1, output buffers 73-1-2, 73- 1-3, and from selector 73-1-4 Which it is configured.
[0087]
In the FFT arithmetic unit configured as described above, when data is written to either one of the input buffers 71-0-2 or 71-0-3, data is read from the other. Thus, data writing and reading can be performed simultaneously with respect to the input buffer unit 71-0. The same applies to the input buffer unit 71-1, the memory units 72-0 and 72-1, the output buffer units 73-0 and 73-1, which are configured in the same manner as the input buffer unit 71-0. Therefore, in this case, the processing speed can be further increased as compared with the case of FIG. 6 in which reading and writing of data are performed separately (in other words, the input buffer units 71-0 and 71-1, The clocks of the memory units 72-0 and 72-1, the output buffer unit 73-0 or 73-1, are input buffers 22-0 and 22-1, memories 15-0 and 15-1, output buffers 32-0, Alternatively, it may be a clock having a frequency half that of each clock of 32-1).
[0088]
The FFT arithmetic apparatus to which the present invention has been applied has been described above. Such an FFT arithmetic apparatus is widely used in, for example, the digital signal processing apparatus in addition to the DAB receiving apparatus shown in FIG. Applicable. Further, the data to be subjected to FFT is not limited to an audio signal, and can be a video signal or other digital signal.
[0089]
In this embodiment, the case where the FFT process is performed has been described. However, the present invention can also be applied to the case where the inverse FFT process is performed. It is only necessary to change the twiddle factor to be stored. Therefore, FFT in the present specification includes an inverse FFT in a broad sense).
[0090]
Further, in this embodiment, the case where the radix N is 2 and 4 is taken as an example, but the present invention can also be applied to other radixes.
[0091]
Further, in the embodiment such as FIG. 2, the two outputs of the butterfly computing unit 4 are supplied to both the selectors 13-0 and 13-1, and either one or the other of the selectors 13-0 or 13-1 is supplied. Is supplied to the selector 14-0 or 14-1, and the selector 14-0 or 14-1 outputs the output of the selector 13-0 or 13-1 to the memory 15-0 or 15-1. Although it is configured so that it is supplied or output as the final butterfly calculation result, for example, the output of the terminal out0 or out1 of the butterfly calculator 4 is supplied to the selector 13-0 or 13-1, respectively. In the selector 13-0 or 13-1, the output of the terminal out0 or out1 is supplied to the selector 14 Are supplied to both 0 and 14-1, or output as the final butterfly calculation result, and in the selector 14-0 or 14-1, either of the selector 13-0 or 13-1 is output. It is also possible to adopt a configuration in which one or the other output is selected and supplied to the memory 15-0 or 15-1.
[0092]
However, when the latter configuration is applied to the embodiments of FIGS. 5 and 6, for example, the final butterfly calculation result output from the terminal out0 or out1 of the butterfly calculator 4 is output to the output buffer 32-0 or Since it can be stored only in 32-1, the final butterfly calculation result output from the terminals out0 and out1 can be stored in either the output buffer 32-0 or 32-1. Therefore, it is necessary to adopt the configuration described in the present embodiment (the former configuration).
[0093]
【The invention's effect】
According to the FFT operation device according to claim 1 and the FFT operation method according to claim 6, N storage means However, N units of data, which are outputs as butterfly computation results of the computing means, are simultaneously written and stored, and the stored N units of data are simultaneously read and fed back to the input of the computing means. Since it did in this way, it becomes possible to perform FFT calculation at high speed.
[Brief description of the drawings]
FIG. 1 is a diagram showing a signal flow for explaining the principle of the present invention.
FIG. 2 is a block diagram showing a configuration of a first embodiment of an FFT operation apparatus to which the present invention is applied.
FIG. 3 is a timing chart for explaining the operation of the embodiment of FIG. 2;
FIG. 4 is a block diagram showing a configuration of a second embodiment of an FFT operation apparatus to which the present invention is applied.
FIG. 5 is a block diagram showing a configuration of a third embodiment of an FFT operation apparatus to which the present invention is applied.
FIG. 6 is a block diagram showing a configuration of a fourth embodiment of an FFT operation apparatus to which the present invention is applied.
FIG. 7 is a block diagram showing a configuration of a fifth embodiment of an FFT operation apparatus to which the present invention is applied.
FIG. 8 is a block diagram showing a configuration of a sixth embodiment of an FFT operation apparatus to which the present invention is applied.
FIG. 9 is a block diagram illustrating a configuration example of a DAB receiving apparatus.
10 is a block diagram showing a configuration example of an FFT circuit 94 in FIG. 9. FIG.
11 is a timing chart for explaining the operation of the FFT circuit 94 of FIG.
[Explanation of symbols]
2, 3 selector, 4 butterfly computing unit, 6, 7 selector, 8 memory, 10, 11-0, 11-1, 12-0, 12-1, 13-0, 13-1, 14-0, 14- 1 selector, 15-0, 15-1 memory, 16, 21 selector, 22-0, 22-1 input buffer, 31 selector, 32-0, 32-1 output buffer, 33 selector, 51, 52-0 to 52 -3, 53-0 to 53-3 selector, 54 butterfly computing unit, 56-0 to 56-3, 57-0 to 57-3 selector, 58-0 to 58-3 memory, 59-0 to 59-3 Output buffer, 60-0 to 60-3, 61 selector, 71-0 input buffer section, 71-0-1 selector, 71-0-2, 71-0-3 input buffer, 71-0-4 selector, 71 − Input buffer unit, 71-1-1 selector, 71-1-2, 71-1-3 Input buffer, 71-1-4 selector, 72-0 Memory unit, 72-0-1 selector, 72-0-2 , 72-0-3 memory, 72-0-4 selector, 72-1 memory unit, 72-1-1 selector, 72-1-2, 72-1-3 memory, 72-1-4 selector, 73- 0 output buffer unit, 73-0-1 selector, 73-0-2, 73-0-3 output buffer, 73-0-4 selector, 73-1 output buffer unit, 73-1-1 selector, 73-1 -2, 73-1-3 Output buffer, 73-1-4 Selector

Claims (6)

FFT(Fast Fourier Transform)演算を行うFFT演算装置であって、
所定の基数Nのバタフライ演算を行う演算手段と、
前記バタフライ演算の対象となるN単位の前記バタフライ演算に関するデータを1単位毎にそれぞれ記憶するN個の記憶手段と
を備え、
前記N個の記憶手段それぞれ、前記演算手段のバタフライ演算結果としての出力である前記N単位の前記データの書き込みを同時に行って記憶し、記憶した前記N単位の前記データの読み出しを前記書き込みのタイミングとは異なるタイミングで同時に行って、前記演算手段の入力に帰還する
ことを特徴とするFFT演算装置。
An FFT computing device for performing FFT (Fast Fourier Transform) computation,
A computing means for performing a butterfly computation of a predetermined radix N;
N storage means for storing data related to the butterfly calculation in N units, which are targets of the butterfly calculation, for each unit;
The N storage means, respectively, the butterfly operation result as is the output by writing the data of the N units simultaneously stored in the arithmetic unit, the writing reading of the data of the stored the N units An FFT operation apparatus, wherein the FFT operation device is performed simultaneously at a timing different from the above timing and fed back to the input of the operation means.
前記N個の記憶手段は、
それぞれ、前記演算手段のバタフライ演算結果としての出力である前記N単位の前記データの書き込みを同時に行って記憶し、記憶した前記N単位の前記データの読み出しを前記書き込みのタイミングとは異なるタイミングで同時に行って、前記演算手段の入力に帰還するN個の第1の記憶手段と、
それぞれ、前記演算手段への入力である前記N単位の前記データを記憶し、記憶した前記N単位の前記データの読み出しを同時に行って、前記演算手段に供給するN個の第2の記憶手段と
で構成されることを特徴とする請求項1に記載のFFT演算装置。
The N storage means are:
Each of the N units of data, which is an output as a butterfly computation result of the computing means, is simultaneously written and stored, and the stored N units of data are simultaneously read at a timing different from the timing of the writing. N first storage means to perform feedback to the input of the computing means;
Respectively storing the data of the N units is input to the arithmetic unit performs the stored reading of the data of the N units simultaneously, and N second memory means for supplying to said calculating means
FFT arithmetic unit according to claim 1, characterized in that configured in.
前記N個の記憶手段
それぞれ、前記演算手段のバタフライ演算結果としての出力である前記N単位の前記データの書き込みを同時に行って記憶し、記憶した前記N単位の前記データの読み出しを前記書き込みのタイミングとは異なるタイミングで同時に行って、前記演算手段の入力に帰還するN個の第1の記憶手段と、
それぞれ、前記演算手段の最終的なバタフライ演算結果としての出力である前記N単位の前記データの書き込みを同時に行って記憶する前記N個の第2の記憶手段と
で構成されることを特徴とする請求項1に記載のFFT演算装置。
The N storage means are :
Each of the N units of data, which is an output as a butterfly computation result of the computing means, is simultaneously written and stored, and the stored N units of data are simultaneously read at a timing different from the timing of the writing. N first storage means to perform feedback to the input of the computing means;
Each of the N second storage means for simultaneously writing and storing the N units of the data, which is an output as a final butterfly computation result of the computing means,
FFT arithmetic unit according to claim 1, characterized in that configured in.
前記N個の記憶手段
それぞれ、前記演算手段のバタフライ演算結果としての出力である前記N単位の前記データの書き込みを同時に行って記憶し、記憶した前記N単位の前記データの読み出しを同時に行って、前記演算手段の入力に帰還するN個の第1の記憶手段と
それぞれ、前記演算手段への入力である前記N単位の前記データを記憶し、記憶した前記N単位の前記データの読み出しを同時に行って、前記演算手段に供給するN個の第2の記憶手段と、
それぞれ、前記演算手段の最終的なバタフライ演算結果としての出力である前記N単位の前記データの書き込みを同時に行って記憶する前記N個の第3の記憶手段
の3種類で構成されることを特徴とする請求項1に記載のFFT演算装置。
The N storage means are :
Each of the N units of data, which is an output as a butterfly computation result of the computing unit, is simultaneously written and stored, and the stored N units of data are simultaneously read and input to the computing unit. N first storage means for returning;
N pieces of the second storage means for storing the N units of data , which are inputs to the arithmetic means, respectively, and simultaneously reading the stored N units of the data and supplying the data to the arithmetic means ,
Respectively, that it consists of 3 types of the N third memory means for final butterfly operation result as is the output by writing the data of the N units simultaneously storing said operation means The FFT operation apparatus according to claim 1, wherein
前記N個の記憶手段それぞれは、前記データを記憶する第1および第2の記憶手段を備え、
前記第1または第2の記憶手段のうちの一方に書き込みが行われているとき、他方からは読み出しが行われる
ことを特徴とする請求項1に記載のFFT演算装置。
Each of the N storage means includes first and second storage means for storing the data,
The FFT operation device according to claim 1, wherein when one of the first and second storage units is written, reading is performed from the other.
所定の基数Nのバタフライ演算を行う演算手段と、
前記バタフライ演算の対象となるN単位の前記バタフライ演算に関するデータを1単位毎にそれぞれ記憶するN個の記憶手段とを備えFFT(Fast Fourier Transform)演算を行うFFT演算装置のFFT演算方法であって、
前記N個の記憶手段は、それぞれ、前記演算手段のバタフライ演算結果としての出力である前記N単位の前記データの書き込みを同時に行って記憶し、記憶した前記N単位の前 記データの読み出しを同時に行って、前記演算手段の入力に帰還する
ことを特徴とするFFT演算方法。
A computing means for performing a butterfly computation of a predetermined radix N;
An FFT operation method for an FFT operation apparatus, comprising N storage means for storing data related to the butterfly operation in N units to be subjected to the butterfly operation for each unit, and performing an FFT (Fast Fourier Transform) operation. And
The N storage means, respectively, the butterfly operation result as an output a is the N units of the writing of data performed simultaneously with the storing of the calculation means, the stored reading of the previous SL data of the N units simultaneously And performing an FFT calculation on the input of the calculation means .
JP12133696A 1996-04-30 1996-05-16 FFT operation device and FFT operation method Expired - Fee Related JP3951066B2 (en)

Priority Applications (3)

Application Number Priority Date Filing Date Title
JP12133696A JP3951066B2 (en) 1996-05-16 1996-05-16 FFT operation device and FFT operation method
US08/841,355 US5890098A (en) 1996-04-30 1997-04-30 Device and method for performing fast Fourier transform using a butterfly operation
EP97302959A EP0805401A1 (en) 1996-04-30 1997-04-30 Fast Fourier transform device and Fast Fourier transform method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP12133696A JP3951066B2 (en) 1996-05-16 1996-05-16 FFT operation device and FFT operation method

Publications (2)

Publication Number Publication Date
JPH09305573A JPH09305573A (en) 1997-11-28
JP3951066B2 true JP3951066B2 (en) 2007-08-01

Family

ID=14808741

Family Applications (1)

Application Number Title Priority Date Filing Date
JP12133696A Expired - Fee Related JP3951066B2 (en) 1996-04-30 1996-05-16 FFT operation device and FFT operation method

Country Status (1)

Country Link
JP (1) JP3951066B2 (en)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100618889B1 (en) * 2005-02-12 2006-09-01 삼성전자주식회사 Fast Fourier Transform processor capable of reducing the size of memories
JP2006260411A (en) * 2005-03-18 2006-09-28 Japan Radio Co Ltd Signal processor, and communication equipment using the same
JP4796339B2 (en) * 2005-06-20 2011-10-19 Okiセミコンダクタ株式会社 Memory read and write methods
JP5444287B2 (en) * 2011-06-07 2014-03-19 ラピスセミコンダクタ株式会社 Arithmetic unit

Also Published As

Publication number Publication date
JPH09305573A (en) 1997-11-28

Similar Documents

Publication Publication Date Title
US5890098A (en) Device and method for performing fast Fourier transform using a butterfly operation
JP3821316B2 (en) Arithmetic apparatus and method
US6115728A (en) Fast fourier transforming apparatus and method, variable bit reverse circuit, inverse fast fourier transforming apparatus and method, and OFDM receiver and transmitter
JP4022546B2 (en) Mixed-radix modulator using fast Fourier transform
US20050177608A1 (en) Fast Fourier transform processor and method using half-sized memory
US5808925A (en) Arithmetic unit and method for fourier transform
JP3951066B2 (en) FFT operation device and FFT operation method
CN111737638A (en) Data processing method based on Fourier transform and related device
US20060200513A1 (en) Fast Fourier transform processor and method capable of reducing size of memories
EP0953175A1 (en) Method and apparatus for fft computation
JPH08320858A (en) Unit and method for fourier transformation arithmetic operation
JP3065979B2 (en) Fast Fourier transform apparatus and method, variable bit reverse circuit, inverse fast Fourier transform apparatus and method, and OFDM reception and transmission apparatus
JP2001024621A (en) Method and device for converting stream of real number input data into complex output symbol stream
EP1553503A2 (en) Fast fourier transform device with improved processing speed
JPH09297753A (en) Fft arithmetic unit and method therefor
JP2942236B1 (en) OFDM modulation circuit
WO2000002140A1 (en) Method and arrangement relating to dft computation
JP2697619B2 (en) N-point FFT dedicated processor
JPH0148582B2 (en)
WO2008023253A2 (en) Fft-based signal processing with reduced latency
CN118075078A (en) Fast Fourier transform circuit, chip and power line carrier communication system
GB2328765A (en) Bit reversing using an offset
US20030023779A1 (en) Symbol window correlative operation circuit and address generation circuit therefor
JP2002117015A (en) Fast fourier transform circuit
JPH03652B2 (en)

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20051018

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20051020

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20051219

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20060601

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20060731

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

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20100511

Year of fee payment: 3

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110511

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120511

Year of fee payment: 5

LAPS Cancellation because of no payment of annual fees