JP4160564B2 - 処理速度の向上した高速フーリエ変換装置およびその処理方法 - Google Patents

処理速度の向上した高速フーリエ変換装置およびその処理方法 Download PDF

Info

Publication number
JP4160564B2
JP4160564B2 JP2005001253A JP2005001253A JP4160564B2 JP 4160564 B2 JP4160564 B2 JP 4160564B2 JP 2005001253 A JP2005001253 A JP 2005001253A JP 2005001253 A JP2005001253 A JP 2005001253A JP 4160564 B2 JP4160564 B2 JP 4160564B2
Authority
JP
Japan
Prior art keywords
address
memory
data
odd
addresses
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
JP2005001253A
Other languages
English (en)
Other versions
JP2005196787A (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.)
Samsung Electronics Co Ltd
Original Assignee
Samsung Electronics Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Samsung Electronics Co Ltd filed Critical Samsung Electronics Co Ltd
Publication of JP2005196787A publication Critical patent/JP2005196787A/ja
Application granted granted Critical
Publication of JP4160564B2 publication Critical patent/JP4160564B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

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

Landscapes

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

Description

本発明は、ヨーロッパ向けのデジタル放送受信機に関し、より詳しくは、処理速度を向上させる高速フーリエ変換(FFT:Fast Fourier Transform)装置およびその方法に関する。
一般に、FFTの最も簡単な実装方法としては、Radix−2構造を採用する方法が挙げられる。図1Aは、Raidx−2構造のバタフライ演算構造を示すものであり、図1Bは、16個のデータをRadix−2構造でFFT処理する16−point FFTの処理過程を示すものである。図示するように、入力の際に、16個のデータが書き込まれたアドレスと、バタフライ演算処理が行われてから書き換えられた16個のアドレスとは、入力時のアドレスに対して絡まった状態となる。従って、一般に、Radix−2構造では、呼び出しアドレスに対してビット反転(bit-reverse)を行ってデータを呼び出す。例えば、呼び出しアドレスが‘0001’の場合、ビット反転された‘1000’アドレスのデータを呼び出すようになる。
図1Cは、Radix−2構造のFFTをパイプライン方式で実現する場合におけるデータ処理の時間フローを示すものである。図1AのRadix−2構造のバタフライ演算構造を参照すると、メモリから処理すべきデータ(n)を読み出してバタフライ演算(A’[n])を行った後、再びメモリに格納するのに要するクロック数は、3クロックである。例えば、1024−point FFTをRadix−2構造のバタフライ演算構造で行う場合において必要な全クロック数は、(3+(1024−1))×log21024=10260クロックとなる。ここで、log21024は、ステージ数である。
しかし、Radix−2構造は、実装化が簡単であるが、他の構造に比べて比較的処理速度が遅いという短所があり、これを補うため、Radix−4、Raidx−8など他の構造を採用することがある。しかし一般に、Raidx−8構造は、非常に複雑であるため、殆ど使用されていない。
図2Aは、Raidx−4構造のバタフライ演算構造を示すものであり、図2Cは、Raidx−4構造でFFT処理する16−point FFTの処理過程を示すものである。図示するように、入力の際に、16個のデータが書き込まれたアドレスとバタフライ演算処理が行われてからメモリにて書き換えられる16個のアドレスとは、入力時のアドレスに対して絡まった状態となる。従って、一般に、Radix−4構造では、呼び出しアドレスに対してディジット反転(digit-reverse)を行ってデータを呼び出す。例えば、呼び出しアドレスが‘0001’の場合、ディジット反転された‘0100’アドレスのデータを呼び出すようになる。
図1Bに示したRaidx−2構造と、図2Cに示したRadix−4構造とにおけるステージ数を比較すると、Radix−4構造において必要なステージ個数は1/2であり、これによって、演算処理にかかる時間も減少する。
一般に、バタフライ演算では、図2Bに示した、2−input方式が使用されている。図2Dは、2−input方式の16−point FFTをパイプライン方式で実装する場合におけるデータ処理の時間フローを示す。図示するように、メモリから処理すべきデータ(n)を読み出してバタフライ演算(A’[n])を行った後、再びメモリに格納するのに要するクロック数は、7クロックである。例えば、1024−point FFTをRadix−4で行う場合において必要な全クロック数は、(7+(1024−1))×log41024=5150クロックとなる。ここで、log41024は、ステージ数である。
Radix−4構造の演算においては、バタフライ演算構造の実装が複雑であるため、1つの演算構造から結果を得るためにはRadix−2構造の場合に比べてより多くのクロック数が必要となるが、パイプライン方式の採用およびステージ数の減少により、全クロック数は、半分に減少する。しかし、2048−point FFT、512−point FFTのように、処理すべきデータの数が4n形態となっていない場合は、Radix−4構造で実装できない。
即ち、Radix−4構造は、Radix−2構造が有する処理速度を向上させることはできるが、処理すべきデータの数に制限があり、その特性を生かすことが難しい。
本発明は、前述のような問題点を解決するためになされたものであって、本発明の目的は、Radix−2構造のバタフライ演算構造を有する高速フーリエ変換装置の処理速度を改善する高速フーリエ変換装置およびその方法を提供することにある。
前記の目的を達成するための本発明によれば、N個のデータを処理する高速フーリエ変換装置において、前記N個のデータを書き込むためのN個のメモリアドレスを有し偶数アドレスと奇数アドレスとに分離された構造を有する該メモリアドレスに対応するメモリと、前記メモリアドレスを偶数アドレスと奇数アドレスとに分離するための最下位ビットを除外した残りのビットから構成されるアドレスを生成するアドレス生成部と、前記生成されたアドレスに基づく前記偶数アドレスのメモリから呼び出されたデータを用いてRadix−2構造のバタフライ演算を行う第1の演算部と、前記生成されたアドレスに基づく前記奇数アドレスのメモリから呼び出されたデータを用いてRadix−2構造のバタフライ演算を行う第2の演算部と、前記Radix−2構造のバタフライ演算のための回転因子が既に格納されたROMと、を備え、
前記第1の演算部は、前記偶数アドレスの上位と下位との2つに分割された該上位偶数アドレスおよび下位偶数アドレスのメモリからそれぞれ呼び出されたデータを用いて演算を行い、前記上位偶数アドレスのメモリから呼び出されて演算されたデータを、前記上位偶数アドレスのメモリに、前記下位偶数アドレスのメモリから呼び出されて演算されたデータを、前記上位奇数アドレスのメモリにて、それぞれ書き換え、前記第2の演算部は、前記奇数アドレスの上位と下位との2つに分割された該上位奇数アドレスおよび下位奇数アドレスのメモリからそれぞれ呼び出されたデータを用いて演算を行い、前記上位奇数アドレスのメモリから呼び出されて演算されたデータを、前記下位偶数アドレスのメモリに、前記下位奇数アドレスのメモリから呼び出されて演算されたデータを、前記下位奇数アドレスのメモリにて、それぞれ書き換えることを特徴とする。
前記メモリは、前記メモリアドレスの最下位ビッドが「0」である前記偶数アドレスから構成される第1のバンクと、前記メモリアドレスの最下位ビットが「1」である前記奇数アドレスから構成される第2のバンクと、を含み、また、前記アドレス生成部は、log2N個のステージ別にN/2個のアドレスを生成する。
また、高速フーリエ変換装置は、前記N個のデータに対応してカウント値を出力するカウンタと、前記カウント値に対応する呼び出しアドレスの最上位二番目のビットが最上位一番目のビットに位置し、前記呼び出しアドレスの残りのビットがビット反転方式でそれぞれのビットに位置するディジット反転アドレスを生成するディジット反転アドレス生成部と、をさらに備えることを特徴とする。
さらに、本発明に係るN個のデータに対して高速フーリエ変換を行う高速フーリエ変換処理方法は、(a)入力される前記N個のデータを偶数アドレスと奇数アドレスとに分離された構造のN個のメモリアドレスを有するメモリに書き込むステップと、(b)logN個のステージ別に前記メモリアドレスを偶数アドレスと奇数アドレスとに分離するための最下位ビットを除外した残りのビットから構成されるN/2個のアドレスを生成するステップと、(c)前記生成されたアドレスに基づく前記偶数アドレスおよび奇数アドレスのメモリからデータをそれぞれ呼び出して前記ステージ別にRadix−2構造のバタフライ演算を行ってから前記メモリにてデータを書き換えるステップと、を有し、
前記ステップ(c)は、(c−1)前記生成されたアドレスに基づく前記偶数アドレスの上位と下位との2つに分割された該上位偶数アドレスおよび下位偶数アドレスのメモリから呼び出されたデータを用いて演算を行うステップと、(c−2)前記生成されたアドレスに基づく前記奇数アドレスの上位と下位との2つに分割された該上位奇数アドレスおよび下位奇数アドレスのメモリから呼び出されたデータを用いて演算を行うステップと、(c−3)前記上位偶数アドレスのメモリから呼び出されて演算されたデータを、前記上位偶数アドレスのメモリに、前記下位偶数アドレスのメモリから呼び出されて演算されたデータを、前記上位奇数アドレスのメモリにて、それぞれ書き換え、前記上位奇数アドレスのメモリから呼び出されて演算されたデータを、前記下位偶数アドレスのメモリに、前記下位奇数アドレスのメモリから呼び出されて演算されたデータを、前記下位奇数アドレスのメモリにて、それぞれ書き換えるステップと、を含むことを特徴とする
また、高速フーリエ変換処理方法は、(d)前記log N番目ステージのRadix−2構造のバタフライ演算が完了すると、ディジット反転アドレスを生成するステップと、(e)前記ディジット反転アドレスによって前記メモリにて書き換えられたデータを呼び出すステップと、をさらに有し、
前記ステップ(d)は、(d−1)前記logN番目ステージのRadix−2構造のバタフライ演算が完了すると、前記N個のデータに対応してカウント値を出力するステップと、(d−2)前記カウント値に対応する呼び出しアドレスの最上位二番目のビットが最上位一番目のビットに位置し、前記呼び出しアドレスの残りのビットがビット反転方式でそれぞれのビットに位置するディジット反転アドレスを生成するステップと、を含む。
本発明の高速フーリエ変換装置によれば、2つのバタフライ演算構造を同時に動作させることで処理速度を二倍にすることができ、また、その実装が簡単になる。2つのバタフライ演算構造を同時に使用するため、処理すべきデータが格納されたメモリのアドレスを偶数アドレスと奇数アドレスとに分離し、メモリを第1のバンクおよび第2のバンクに分離して処理する。従って、2つのバンクから同時にそれぞれ2つのデータを呼び出して2つのバタフライ演算を独立して動作させる。
また、本発明に係るバタフライ演算構造に対応する新しいディジット反転方式を適用する。
以下、添付の図面を参照して本発明の好適な実施例を詳述する。
図3は、本発明に係る高速フーリエ変換装置を示す概略的なブロック図である。
高速フーリエ変換装置は、カウンタ310、N/2−pointアドレス生成部320、メモリ330、演算部350、およびディジット反転アドレス生成部370を備えて構成されている。
カウンタ310は、N個のデータに対するメモリ330の書き込みアドレスおよび呼び出しアドレスを生成するためのカウント値を出力する。
N/2−pointアドレス生成部320は、N個のデータに対してRaidx−2構造のバタフライ演算を処理するためのN/2−point呼び出しアドレスを生成する。
メモリ330には、入力されるN個のデータが下記の表1のように分離されて書き込まれる。即ち、カウンタ310から出力されるカウント値に基づいて表1に示されたようにメモリ330に書き込む。
Figure 0004160564
例えば、16−point FFTを処理するために入力される16個のデータをメモリ330に書き込む場合、偶数番目の入力データは、偶数アドレスに、奇数番目の入力データは、奇数アドレスに、それぞれ書き込む。
従って、本発明に係るメモリ330は、下記の表2に示されたように、偶数アドレス(even:e)と奇数アドレス(odd:o)とに分離された第1および第2のバンク(BANKe、BANKo)を有する。
Figure 0004160564
表2に示すように、メモリ330は、最下位ビットが‘0’である偶数アドレスから構成される第1のバンク331と、最下位ビットが‘1’である奇数アドレスから構成される第2のバンク333とに分けられる。従って、第1のバンク331のアドレスは、上位3bitと‘e’との組み合わせで示すことができ、第2のバンク333のアドレスは、上位3bitと‘o’との組み合わせで示すことができる。
演算部350は、Radix−2構造のバタフライ演算器である第1および第2の演算部351、353と、バタフライ演算を行うための回転因子(twiddle factor:W)が既に格納されているROM355を有している。第1および第2の演算部351、353によるバタフライ演算は、数式(1)に示す通りである。
Figure 0004160564
式中、x(n)は、入力データ、X(m)は、x(n)に対するバタフライ演算が行われたデータであり、Wは、回転因子である。
N/2−pointアドレス生成部320では、Radix−2構造のバタフライ演算を行うため、2つのN/2−point FFTに対する呼び出しアドレスを生成し、生成された2つのN/2−point FFTに対する呼び出しアドレスは、第1の演算部351および第2の演算部353にそれぞれ送信される。
従って、第1の演算部351は、2つの呼び出しアドレスに対応する第1のバンク331の偶数アドレスのデータを呼び出してRadix−2構造のバタフライ演算を行い、第2の演算部353は、第2のバンク333から2つの呼び出しアドレスに対応する第2のバンク333の奇数アドレスのデータを呼び出してRadix−2構造のバタフライ演算を行うこととなる。
このように、第1の演算部351および第2の演算部353でバタフライ演算が行われた各2つのデータを、本発明によって、第1のバンク331および第2のバンク333にて書き換える。前記のようなRadix−2構造のバタフライ演算は、ステージ数log2N分だけ繰り返されるが、演算されたデータを第1のバンク331および第2のバンク333にて書き換える方式については、後記する。
ディジット反転アドレス生成部370は、ステージ数log2N分だけバタフライ演算が完了した後、カウンタ310のカウント値に基づいて絡まったメモリアドレスに対してディジット反転アドレスを生成する。従って、ディジット反転アドレスを用いて高速フーリエ変換装置に入力されたデータの順にバタフライ演算されたデータを呼び出すようになる。本発明に係るディジット反転方式については、後述する。
図4は、本発明に係るRadix−2構造のバタフライ演算を用いてRadix−4構造のバタフライ演算速度を有する高速フーリエ変換装置を示す詳細ブロック図であり、図5は、図4に示した高速フーリエ変換装置で処理される一例であって、16−point FFT処理過程を示すものである。以下、図4および図5を参照して本発明をより詳しく説明する。
16個の入力データは、表1に示すように、偶数番目に入力されたデータについては、第1のバンク431に順次書き込まれ、奇数番目に入力されたデータについては、第2のバンク433に順次書き込まれる。次いで、N/2−pointアドレス生成部(図3の符号320)では、N/2−point、即ち、8−point FFTの呼び出しアドレスを生成する。
図4に示すように、N/2−pointアドレス生成部(図3の符号320)は、呼び出しアドレス(000),(100)を生成して第1の演算部451及び第2の演算部453に送られる。
第1の演算部451は、送られた呼び出しアドレスに対応する第1のバンク431の偶数アドレス(000e),(100e)に書き込まれたデータ(Ae,Be)を呼び出してバタフライ演算を行い、第2の演算部453は、提供された呼び出しアドレスに対応する第2のバンク433の奇数アドレス(000o),(100o)に書き込まれたデータ(Ao,Bo)を呼び出してバタフライ演算を行う。このとき、第1の演算部451および第2の演算部453は、ROM455の回転因子(W)を用いてRadix−2構造のバタフライ演算をそれぞれ行う。
第1の演算部451では、入力データ(Ae,Be)に対してバタフライ演算が行われたデータ(Ae’,Be’)を出力し、第2の演算部453では、入力データ(Ao,Bo)に対してバタフライ演算が行われたデータ(Ao’,Bo’)を出力する。
このように演算が完了した第1の演算部451および第2の演算部453からの出力データは、メモリである、第1のバンク431および第2のバンク433で書き換えられる。
第1の演算部451および第2の演算部453は、演算されたデータ(Ae’,Be’)、 (Ao’,Bo’)を図4に示すような方式で第1のバンク431および第2のバンク433で、それぞれ書き換える。
即ち、第1の演算部451は、第1のバンク431の上位アドレス(000e)から呼び出されて演算されたデータ(Ae’)は、第1のバンク431の上位アドレス(000e)に、下位アドレス(100e)から呼び出されて演算されたデータ(Be’)は、第2のバンク433の上位アドレス(000o)にて書き換える。第2の演算部453は、第2のバンク433の上位アドレス(000o)から呼び出されて演算されたデータ(Ao’)は、第1のバンク431の下位アドレス(100e)に、下位アドレス(100o)から呼び出されて演算されたデータ(Bo’)は、第2のバンク433の下位アドレス(100o)にて書き換える。
このようにステージ1(Stage 1)に対するRadix−2構造のバタフライ演算が行われる。
ステージ2(Stage 2)に対する第1のバンク431および第2のバンク433の呼び出しおよび書き込みアドレスについては、図5を参照することができる。図示するように、例えば、アドレス生成部(図3の符号320)では、呼び出しアドレス(000),(010)を生成して第1のバンク431および第2のバンク433にそれぞれ送る。また、第1のバンク431では、偶数アドレス(000e),(100e)で書き込まれたデータを呼び出して第1の演算部451に送り、第2のバンク433では、奇数アドレス(000o),(100o)で書き込まれたデータを呼び出して第2の演算部453に送る。第1の演算部451および第2の演算部453では、回転因子(W)を用いてバタフライ演算を行う。
次に、第1の演算部451は、第1のバンク431の上位アドレス(000e)から呼び出されて演算されたデータを、第1のバンク431の上位アドレス(000e)で、また、下位アドレス(100e)から呼び出されて演算されたデータを、第2のバンク433の上位アドレス(000o)で書き換える。同様な方式で、第2の演算部453は、第2のバンク433の上位アドレス(000o)から呼び出されて演算されたデータを、第1のバンク431の下位アドレスにて、また、第2のバンク433の下位アドレス(100o)から呼び出されて演算されたデータを、第2のバンク433の下位アドレス(100o)にて書き換える。
このような方式でステージ3(Stage 3)およびステージ4(Stage 4)に対してバタフライ演算を繰り返して行う。
従って、図5に示すように、本発明に係るRadix−2構造の16−point FFTは、前述の図1Bに示した従来のRadix−2構造の16−point FFTに比べて、1つのメモリのアドレスを偶数アドレスと奇数アドレスとに分離して2つのバタフライ演算を同時に動作させることで、処理速度を二倍にできる。
図6は、本発明に係るメモリ構造に対応してN/2−pointアドレス生成部(図3の符号320)で各ステージ別に生成される呼び出しアドレスを示すものであって、16−point FFTを例にしている。図示するように、各ステージ別に生成される呼び出しアドレスは、N/2−point、即ち、Radix−2構造の8−point FFTに対する呼び出しアドレス生成方式とビット反転方式で示すことができる。ステージ1乃至ステージ3の呼び出しアドレスは、8−point FFTの呼び出しアドレスと同様な形態を有しており、ステージ4の8−point FFTの結果に対するビット反転アドレスと同様な形態を有している。
このように本発明に係る高速フーリエ変換装置で処理されたデータは、新しいディジット反転方式を有する。
図7は、本発明に係るディジット反転方式を示す図であって、図5に示したRadix−2構造の16−point FFT処理過程を参照して本発明に係るディジット反転方式を説明するものである。
前記のような方式でRadix−2構造の16−point FFTが完了した後、メモリで書き換えられたデータのメモリアドレスは、入力時のデータが書き込まれたメモリアドレスに対して絡まった状態となる。従って、入力時のデータ順に演算されたデータを呼び出すため、ディジット反転アドレスを生成するようになる。
ディジット反転アドレス生成部370は、カウンタ(図3の符号310)から順次出力されるカウント値(0〜N−1)に基づいて図7に示すような方式でディジット反転アドレスを生成する。図示するように、カウント値に対応する呼び出しアドレスが(a[n]a[n−1]a[n−2]・・・1 0)である場合、上位2bit目の‘a[n−1]’をディジット反転アドレスの最上位ビットとし、上位2bitを除外した残りのビットに対してはビット反転方式でディジット反転アドレスを生成する。従って、ディジット反転アドレスは、(a[n−1] ・・・a[n−2]a[n])となる。
このように、図7に示す本発明に係るディジット反転方式は、次のような原理に従う。例えば、図5のステージ4(Stage 4)の書き込みアドレス(W_ADD)、‘000o’(以下、‘000o’の代わりに‘0001’を使用)に対するディジット反転アドレスは、次の通りである。先ず、‘0001’に対してRadix−2構造のビット反転アドレス‘1000’となり、‘1000’に位置するステージ4(Stage 4)の書き込みアドレス(W_ADD)は、‘010e(0100)’となる。従って、カウンタの呼び出しアドレス‘0001’に対するディジット反転アドレスは、‘0100’となる。
図8は、本発明に係るRadix−2構造の2つのバタフライ演算構造を有する高速フーリエ変換装置による高速フーリエ変換処理過程を示すフローチャートである。以下、図3乃至図5を参照して本発明に係る高速フーリエ変換処理過程を詳細に説明する。
高速フーリエ変換装置で処理すべきN個のデータが入力されると、カウンタ310は、入力されるデータに対応してカウント値を出力し、N/2−pointアドレス生成部320は、カウント値に基づいてメモリアドレスを生成する。
メモリ330は、メモリアドレスに対して偶数アドレスと奇数アドレスとに分離された第1のバンク331と第2のバンク333とを有し、このようなメモリ330の分離によって、偶数番目に入力されたデータは、第1のバンク331に書き込まれ、奇数番目に入力されたデータは、第2のバンク333に書き込まれる(S811)。
N/2−pointアドレス生成部320は、Radix−2構造のバタフライ演算構造に対応して2つの呼び出しアドレスを生成し、生成された2つの呼び出しアドレスは、第1の演算部351および第2の演算部353にそれぞれ提供される(S813)。
次に、第1の演算部351は、2つの呼び出しアドレスに対応して第1のバンク331から呼び出された2つのデータを用いてバタフライ演算を行い、第2の演算部353は、2つの呼び出しアドレスに対応して第2のバンク333から呼び出された2つのデータを用いてバタフライ演算を行う(S815)。
次いで、第1の演算部351は、第1のバンク331の上位アドレスから呼び出されて演算されたデータは、第1のバンク331の上位アドレスに、下位アドレスから呼び出されて演算されたデータを、第2のバンク333の上位アドレスにて書き換える。また、第2の演算部353は、第2のバンク333の上位アドレスから呼び出されて演算されたデータは、第1のバンク331の下位アドレスに、第2のバンク333の下位アドレスから呼び出されて演算されたデータを、第2のバンク333の下位アドレスにて書き換える(S817)。
このような方式で、N個のデータに対してステージ数log2N分のバタフライ演算を繰り返して行って第1のバンク331および第2のバンク333にて書き換える(S819)。
ステージ数log2N分に対するバタフライ演算が完了すると、ディジット反転アドレス生成部370は、カウンタ310のカウント値(0〜N−1)に基づいて図7に示すような方式でディジット反転アドレスを生成してメモリ330に書き込まれたバタフライ演算が行われたデータを順次呼び出す(S821)。
前記のように、高速フーリエ変換を行うにあたって、2つのバタフライ演算構造を同時に動作させる。これによって、処理速度が2倍速くなる。1024−point FFT処理を行う場合、(3+1024/2−1))×log1024=5140クロックが必要になる。これは、4形態のデータをRadix−4構造のFFTを行う場合と同様な結果であるものの、本発明では、Radix−2構造を基に構成されているため、Radix−4構造で処理できない2形態のデータも処理できる。また、既存の技術では、演算速度を節減する方式として、主にバタフライ演算構造の簡略化に重点を置いているため、FFTの全体実行時間には大きな影響を与えいないが、これに対し、本発明では、バタフライ演算構造の実現が可能であると共にFFTの全体実行時間を半分にすることができる。
OFDM(Orthogonal Frequency Division Multiplex)技術を使用する応用分野であるDAB(digital audio broadcast)、DMB(digital multimedia broadcast)、ワイアレスLAN(local area network)などにおいてFFTを使用する場合、処理すべきデータの容量より少なくとも2倍のメモリ領域を有する。その理由としては、一定の周期で一定大きさのデータが転送されるため、1周期の間にデータを転送されてから次の周期にFFTを行うようになり、FFTを行う間に次のデータが転送されるため、他のメモリ空間が必要となるためである。なお、OFDMの信号は、データが転送される区間があり、また、同期のためにデータが転送されないNULL区間がある。
本発明により処理速度が向上することによって、FFT処理が前記のNULL区間内で行われる場合、既存の二倍のメモリ領域を有する必要がなくなり、1周期におけるデータに対するメモリ領域のみが必要となる。即ち、本発明によって、メモリの使用量をも半分にすることができる効果が得られる。
また、1つのメモリを、偶数アドレスと奇数アドレスとに分離して2つのバタフライ演算構造を同時に動作させるために使用するが、本発明におけるアドレス呼び出し方式は、分離されたメモリに同様に適用されて処理すべきデータ数の半数のFFTに対するアドレス呼び出し方式とビット反転アドレス呼び出し方式とを使用しているため、非常に簡単に実現することができる。また、新しいディジット反転方式を用いてFFT演算で絡まったメモリアドレスを正しく配列することができる。
以上、本発明の好適な実施の形態を挙げて図示および説明してきたが、本発明は、その趣旨または主要な特徴から逸脱することなく、他の種々の形態で実施することができる。そのため、上述の実施の形態は、あらゆる点で単なる例示にすぎず、限定的に解釈してはならない。本発明の範囲は特許請求の範囲によって示すものであって、明細書本文には、何ら限定されるものではない。さらに、特許請求の範囲の均等範囲に属する変形や変更は、全て本発明の範囲内のものである。
本発明は、処理速度を向上させるための高速フーリエ変換装置およびその方法に適用される。
Radix−2構造のバタフライ演算構造を説明するための図である。 Radix−2構造のバタフライ演算構造を説明するための図である。 Radix−2構造のバタフライ演算構造を説明するための図である。 Radix−4構造のバタフライ演算構造を説明するための図である。 Radix−4構造のバタフライ演算構造を説明するための図である。 Radix−4構造のバタフライ演算構造を説明するための図である。 Radix−4構造のバタフライ演算構造を説明するための図である。 本発明に係るRadix−2構造のバタフライ演算構造を有する高速フーリエ変換装置を示す概略的なブロック図である。 本発明に係る高速フーリエ変換装置のメモリ330および演算部350を示す詳細ブロック図である。 本発明に係る一実施例であって、Radix−2構造の16−point FFT処理過程とその各ステージ別に呼び出し/書き込みアドレスを示す図である。 本発明に係る一実施例であって、Radix−2構造の16−point FFTの各ステージ別に呼び出しアドレスを示す図である。 本発明に係るディジット反転アドレス生成方式を示す図である。 本発明に係るRadix−2構造を有する高速フーリエ変換装置の処理過程を示すフローチャートである。
符号の説明
310 カウンタ
320 N/2−pointアドレス生成部
330 メモリ
331 第1のバンク
333 第2のバンク
350 演算部
351 第1の演算部
353 第2の演算部
355 ROM

Claims (6)

  1. N個(Nは整数)のデータを処理する高速フーリエ変換装置において、
    前記N個のデータを書き込むためのN個のメモリアドレスを有し偶数アドレスと奇数アドレスとに分離された構造を有する該メモリアドレスに対応するメモリと、
    前記メモリアドレスを偶数アドレスと奇数アドレスとに分離するための最下位ビットを除外した残りのビットから構成されるアドレスを生成するアドレス生成部と、
    前記生成されたアドレスに基づく前記偶数アドレスのメモリから呼び出されたデータを用いてRadix−2構造のバタフライ演算を行う第1の演算部と、
    前記生成されたアドレスに基づく前記奇数アドレスのメモリから呼び出されたデータを用いてRadix−2構造のバタフライ演算を行う第2の演算部と、
    前記Radix−2構造のバタフライ演算のための回転因子が既に格納されたROMと、を備え、
    前記第1の演算部は、前記偶数アドレスの上位と下位との2つに分割された該上位偶数アドレスおよび下位偶数アドレスのメモリからそれぞれ呼び出されたデータを用いて演算を行い、前記上位偶数アドレスのメモリから呼び出されて演算されたデータを、前記上位偶数アドレスのメモリに、前記下位偶数アドレスのメモリから呼び出されて演算されたデータを、前記上位奇数アドレスのメモリにて、それぞれ書き換え、
    前記第2の演算部は、前記奇数アドレスの上位と下位との2つに分割された該上位奇数アドレスおよび下位奇数アドレスのメモリからそれぞれ呼び出されたデータを用いて演算を行い、前記上位奇数アドレスのメモリから呼び出されて演算されたデータを、前記下位偶数アドレスのメモリに、前記下位奇数アドレスのメモリから呼び出されて演算されたデータを、前記下位奇数アドレスのメモリにて、それぞれ書き換えることを特徴とする高速フーリエ変換装置。
  2. 前記N個のデータに対応してカウント値を出力するカウンタと、
    前記カウント値に対応する呼び出しアドレスの最上位二番目のビットが最上位一番目のビットに位置し、前記呼び出しアドレスの残りのビットがビット反転方式でそれぞれのビットに位置するディジット反転アドレスを生成するディジット反転アドレス生成部と、をさらに備えることを特徴とする請求項に記載の高速フーリエ変換装置。
  3. 前記メモリは、
    前記メモリアドレスの最下位ビッドが「0」である前記偶数アドレスから構成される第1のバンクと、
    前記メモリアドレスの最下位ビットが「1」である前記奇数アドレスから構成される第2のバンクと、
    を含むことを特徴とする請求項1に記載の高速フーリエ変換装置。
  4. 前記アドレス生成部は、
    logN個のステージ別にN/2個のアドレスを生成することを特徴とする請求項1に記載の高速フーリエ変換装置。
  5. N個(Nは整数)のデータに対して高速フーリエ変換を行う高速フーリエ変換処理方法において、
    (a)入力される前記N個のデータを偶数アドレスと奇数アドレスとに分離された構造のN個のメモリアドレスを有するメモリに書き込むステップと、
    (b)logN個のステージ別に前記メモリアドレスを偶数アドレスと奇数アドレスとに分離するための最下位ビットを除外した残りのビットから構成されるN/2個のアドレスを生成するステップと、
    (c)前記生成されたアドレスに基づく前記偶数アドレスおよび奇数アドレスのメモリからデータを呼び出して前記ステージ別にRadix−2構造のバタフライ演算を行ってから前記メモリにてデータを書き換えるステップと、を有し、
    前記ステップ(c)は、
    (c−1)前記生成されたアドレスに基づく前記偶数アドレスの上位と下位との2つに分割された該上位偶数アドレスおよび下位偶数アドレスのメモリから呼び出されたデータを用いて演算を行うステップと、
    (c−2)前記生成されたアドレスに基づく前記奇数アドレスの上位と下位との2つに分割された該上位奇数アドレスおよび下位奇数アドレスのメモリから呼び出されたデータを用いて演算を行うステップと、
    (c−3)前記上位偶数アドレスのメモリから呼び出されて演算されたデータを、前記上位偶数アドレスのメモリに、前記下位偶数アドレスのメモリから呼び出されて演算されたデータを、前記上位奇数アドレスのメモリにて、それぞれ書き換え、前記上位奇数アドレスのメモリから呼び出されて演算されたデータを、前記下位偶数アドレスのメモリに、前記下位奇数アドレスのメモリから呼び出されて演算されたデータを、前記下位奇数アドレスのメモリにて、それぞれ書き換えるステップと、を含むことを特徴とする高速フーリエ変換処理方法。
  6. (d)前記log N番目ステージのRadix−2構造のバタフライ演算が完了すると、ディジット反転アドレスを生成するステップと、
    (e)前記ディジット反転アドレスによって前記メモリにて書き換えられたデータを呼び出すステップと、をさらに有し、
    前記ステップ(d)は、
    (d−1)前記logN番目ステージのRadix−2構造のバタフライ演算が完了すると、前記N個のデータに対応してカウント値を出力するステップと、
    (d−2)前記カウント値に対応する呼び出しアドレスの最上位二番目のビットが最上位一番目のビットに位置し、前記呼び出しアドレスの残りのビットがビット反転方式でそれぞれのビットに位置するディジット反転アドレスを生成するステップと、を含むことを特徴とする請求項に記載の高速フーリエ変換処理方法。
JP2005001253A 2004-01-07 2005-01-06 処理速度の向上した高速フーリエ変換装置およびその処理方法 Expired - Fee Related JP4160564B2 (ja)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR10-2004-0000995A KR100518797B1 (ko) 2004-01-07 2004-01-07 처리속도가 향상된 고속 퓨리에 변환 장치 및 그의 처리방법

Publications (2)

Publication Number Publication Date
JP2005196787A JP2005196787A (ja) 2005-07-21
JP4160564B2 true JP4160564B2 (ja) 2008-10-01

Family

ID=34588126

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2005001253A Expired - Fee Related JP4160564B2 (ja) 2004-01-07 2005-01-06 処理速度の向上した高速フーリエ変換装置およびその処理方法

Country Status (4)

Country Link
US (1) US20050146978A1 (ja)
EP (1) EP1553503A2 (ja)
JP (1) JP4160564B2 (ja)
KR (1) KR100518797B1 (ja)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE102005045519A1 (de) * 2005-09-23 2007-03-29 Newlogic Technologies Ag Verfahren und Vorrichtung zur FFT Berechnung
KR100668674B1 (ko) * 2005-12-10 2007-01-12 한국전자통신연구원 고속 푸리에 변환 장치 및 고속 푸리에 변환 방법
DE602007002558D1 (de) * 2007-06-28 2009-11-05 Ericsson Telefon Ab L M Verfahren und Vorrichtung zur Transformationsberechnung
US8612505B1 (en) * 2008-07-14 2013-12-17 The Mathworks, Inc. Minimum resource fast fourier transform
US9342486B2 (en) * 2008-10-03 2016-05-17 Microsoft Technology Licensing, Llc Fast computation of general fourier transforms on graphics processing units
US8880575B2 (en) * 2009-12-16 2014-11-04 Telefonaktiebolaget L M Ericsson (Publ) Fast fourier transform using a small capacity memory
CN101887406B (zh) * 2010-06-10 2012-10-03 北京创毅讯联科技股份有限公司 一种fft/ifft处理方法及一种fft/ifft处理器

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3617720A (en) * 1967-09-12 1971-11-02 Bell Telephone Labor Inc Fast fourier transform using hierarchical store
US3673399A (en) * 1970-05-28 1972-06-27 Ibm Fft processor with unique addressing
US3767905A (en) * 1971-05-12 1973-10-23 Solartron Electronic Group Addressable memory fft processor with exponential term generation
US3871577A (en) * 1973-12-13 1975-03-18 Westinghouse Electric Corp Method and apparatus for addressing FFT processor
US4393457A (en) * 1981-03-26 1983-07-12 Advanced Micro Devices, Inc. Method and apparatus for sequencing addresses of a fast Fourier transform array
JPS62175866A (ja) * 1986-01-30 1987-08-01 Nec Corp シグナルプロセツサ
JP2958968B2 (ja) * 1989-03-16 1999-10-06 カシオ計算機株式会社 ディスクリートコサイン演算装置
SE507529C2 (sv) * 1996-10-21 1998-06-15 Ericsson Telefon Ab L M Anordning och förfarande vid beräkning av FFT
KR100484418B1 (ko) * 1997-01-22 2005-06-16 마츠시타 덴끼 산교 가부시키가이샤 고속푸리에변환장치및방법,가변비트리버스회로,역고속푸리에변환장치및방법과직교주파수분할다중수신및송신장치
KR100308929B1 (ko) * 1999-10-12 2001-11-02 서평원 고속 퓨리에 변환 장치
US6760741B1 (en) * 2000-06-05 2004-07-06 Corage Ltd. FFT pointer mechanism for FFT memory management
KR100557160B1 (ko) * 2002-06-27 2006-03-03 삼성전자주식회사 고속 퓨리에 변환을 이용한 혼합-기수 방식의 변조 장치
EP1516467B1 (en) * 2002-06-27 2023-04-26 Samsung Electronics Co., Ltd. Modulation apparatus using mixed-radix fast fourier transform

Also Published As

Publication number Publication date
KR100518797B1 (ko) 2005-10-05
JP2005196787A (ja) 2005-07-21
US20050146978A1 (en) 2005-07-07
KR20050072633A (ko) 2005-07-12
EP1553503A2 (en) 2005-07-13

Similar Documents

Publication Publication Date Title
JP7074363B2 (ja) 準同型暗号下での安全な計算を加速するための準同型処理ユニット(hpu)
JP4022546B2 (ja) 高速フーリエ変換を用いた混合−基数方式の変調装置
JP4160564B2 (ja) 処理速度の向上した高速フーリエ変換装置およびその処理方法
Lee et al. Balanced binary-tree decomposition for area-efficient pipelined FFT processing
US20050177608A1 (en) Fast Fourier transform processor and method using half-sized memory
JP2007513431A (ja) Fftアーキテクチャおよび方法
JP5954415B2 (ja) Fft回路
Alkım et al. Compact and simple RLWE based key encapsulation mechanism
CN111737638A (zh) 基于傅里叶变换的数据处理方法及相关装置
US20140330880A1 (en) Methods and devices for multi-granularity parallel fft butterfly computation
US20100128818A1 (en) Fft processor
US8788558B2 (en) Method and device for transform computation
Chang et al. An efficient memory-based FFT architecture
US20080228845A1 (en) Apparatus for calculating an n-point discrete fourier transform by utilizing cooley-tukey algorithm
JP2010016832A (ja) ルリタニアマッピングを用いるpfaアルゴリズムに従って種々のサイズのdftを計算する装置及び方法
CN103493039A (zh) 数据处理方法和相关装置
CN113901389A (zh) 一种信号处理方法、装置、电子设备及可读存储介质
CN110807169B (zh) 一种用于音频信号的快速处理方法
US8458241B2 (en) Memory address generating method and twiddle factor generator using the same
CN109753629B (zh) 多粒度并行fft计算装置
US8601045B2 (en) Apparatus and method for split-radix-2/8 fast fourier transform
US20090172062A1 (en) Efficient fixed-point implementation of an fft
Meletis et al. High-speed pipeline implementation of radix-2 DIF algorithm
US20220043883A1 (en) Hardware implementation of discrete fourier transform
JP2001005801A (ja) 複素シンボルを実数データに変換する方法

Legal Events

Date Code Title Description
RD02 Notification of acceptance of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7422

Effective date: 20070808

RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20070815

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20071004

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20071012

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20071030

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20080129

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: 20080701

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20080717

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

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

Free format text: PAYMENT UNTIL: 20110725

Year of fee payment: 3

LAPS Cancellation because of no payment of annual fees