(57)【要約】【課題】演算誤差を小さくすることができる高速フーリエ変換回路を提供する。【解決手段】各々所定ビット数の２のｎ乗個の入力データに対して、ＦＦＴ演算部２２により、各段階に応じたバタフライ演算が行なわれて算出される各演算結果データから、ビット抜出部２４により、各段階毎に、所定ビット数と同一のビット数で、かつバタフライ演算で有効な範囲として予め定められた範囲のデータを抜き出し、抜き出した所定ビット数の各データを、ＦＦＴ演算部２２により次の段階のバタフライ演算を行なう際の入力データとして設定する。【選択図】図１
2008083852.tif 000002
【特許請求の範囲】
【請求項１】
各々所定ビット数の２のｎ乗個（ｎは０より大きい自然数）の入力データに対して、バタフライ演算を行なって前記所定ビット数よりも多いビット数の２のｎ乗個の演算結果データを算出する演算を複数の段階に分けて行なうことにより離散時間フーリエ変換演算を行なう演算手段と、
前記演算手段により算出された各演算結果データから、各段階毎に、前記所定ビット数と同一のビット数で、かつ前記バタフライ演算で有効な範囲として予め定められた範囲のデータを抜き出す抜出手段と、
前記抜出手段により抜き出された前記所定ビット数の各データを、前記演算手段により次の段階のバタフライ演算を行なう際の入力データとして設定する設定手段と、
を備えた高速フーリエ変換回路。
【請求項２】
前記有効な範囲は、前記演算手段によりバタフライ演算される各入力データの最も上位側で１となるビットの位置に応じて定められることを特徴とする請求項１記載の高速フーリエ変換回路。
【請求項３】
各々所定ビット数の２のｎ乗個（ｎは０より大きい自然数）の入力データに対して、バタフライ演算を行なって前記所定ビット数よりも多いビット数の２のｎ乗個の演算結果データを算出する演算を複数の段階に分けて行なうことにより離散時間フーリエ変換演算を行なう際に、算出された各演算結果データから、各段階毎に、前記所定ビット数と同一のビット数で、かつ前記バタフライ演算で有効な範囲として予め定められた範囲のデータを抜き出し、
抜き出した前記所定ビット数の各データを、前記演算手段により次の段階のバタフライ演算を行なう際の入力データとして設定する
高速フーリエ変換方法。
【請求項４】
前記有効な範囲は、バタフライ演算される各入力データの最も上位側で１となるビットの位置に応じて定められることを特徴とする請求項３記載の高速フーリエ変換方法。
【請求項５】
入力したデータに対してバタフライ演算を行なって、ｍ（ｍは２以上の自然数）ビットのバタフライ演算結果を出力するステップと、
前記ｍビットのバタフライ演算結果のうち、所定のｎ（ｎはｍより小さくかつ０より大きい自然数）ビットを抜き出すステップと、
前記抜き出されたｎビットのバタフライ演算結果を用いてバタフライ演算を行なうステップと、
を有することを特徴とする高速フーリエ変換方法。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、高速フーリエ変換回路及び高速フーリエ変換方法に係り、特に、各々所定ビット数の２のｎ乗個（ｎは０より大きい自然数）の入力データに対して、複数の段階に分けてバタフライ演算を行なうことにより離散時間フーリエ変換演算を行なう高速フーリエ変換回路及び高速フーリエ変換方法に関する。
【背景技術】
【０００２】
近年のディジタル技術の発展に伴い、地上波テレビ放送などの放送がアナログ放送からディジタル放送へ移行してきている。このディジタル放送では変調方式として直交周波数分割多重変調方式（以下、ＯＦＤＭ（Orthogonal Frequency Division Multiplexing）という。）が採用されている。このＯＦＤＭでは搬送波の変復調に高速フーリエ変換（以下、ＦＦＴ（Fast Fourier Transform）ともいう。）が用いられている。
【０００３】
この高速フーリエ変換は、離散時間フーリエ変換（以下、ＤＦＴ（Discrete-time Fourier Transform）ともいう。）の演算量を低減するための手法である。この高速フーリエ変換には非常に多くの演算手法が提案されており、一般的によく知られている演算手法の一つに、入力データに対して複数のステージ（段階）に分けてバタフライ演算を行なうことにより離散時間フーリエ変換を行なうCooley-Tukey型の演算手法がある。なお、関連技術として特許文献１には、このバタフライ演算の処理効率を向上させる技術が開示されている。
【０００４】
以下に、基数を２とした周波数間引きCooley-Tukey型の高速フーリエ変換について説明する。なお、以下では、離散時間フーリエ変換のデータ点数（サンプリングされたデータの個数）Ｎを４とする。
【０００５】
離散時間フーリエ変換の定義式は、以下の（１）式により表わされる。なお、（１）式のＷＮを回転因子という。
【０００６】
【数１】
2008083852.tif 000003
【０００７】
このため、データ点数が４点の離散時間フーリエ変換は、以下の（２）式の行列式で表される。
【０００８】
【数２】
2008083852.tif 000004
【０００９】
Cooley-Tukey型の演算手法では、上記（２）式の各Ｘ（ｋ）（ｋ＝１、２、３、４）を以下の（３）式のように並べ換える。
【００１０】
【数３】
2008083852.tif 000005
この（３）式の４×４行列を以下の（４）式に示すように表わすものとする。
【００１１】
【数４】
2008083852.tif 000006
ところで、この各回転因子ＷＮは、図９に示すように、複素平面の単位円上の各点として表わされる。このため、回転因子には、以下の（５）式、（６）式に示す関係が成り立つ。
【００１２】
【数５】
2008083852.tif 000007
これにより、（３）式は、以下の（７）式のように変形できる。
【００１３】
【数６】
2008083852.tif 000008
【００１４】
【数７】
2008083852.tif 000009
【００１５】
よって、（３）式を２×２の零行列Ｏ2及び２×２の単位行列Ｉ2を用いて表すと、以下の（８）式のようになる。
【００１６】
【数８】
2008083852.tif 000010
すなわち、データ点数Ｎが４点の離散時間フーリエ変換を、データ点数Ｎが２点の離散時間フーリエ変換からなる行列の積として分解することができる。このような分解は、データ点数Ｎが４点の場合に限らず、データ点数Ｎが２のｎ乗（ｎは０より大きい自然数）である場合に一般的に成立する。
【００１７】
この上記（８）式に示される分解は、図１０に示すように表され、図１１に示されるバタフライ演算の組み合わせにより表すことができる。
【００１８】
また、同様に、データ点数Ｎが８点の離散時間フーリエ変換を例にすると、Ｘ（ｋ）を並べ換えることによりデータ点数Ｎが８点の離散時間フーリエ変換をデータ点数Ｎが４点の離散時間フーリエ変換に分解でき、そのデータ点数Ｎが４点の離散時間フーリエ変換をさらにデータ点数Ｎが２点離散時間フーリエ変換に分解することができ、この分解は、図１２のように表される。
【００１９】
図１０（データ点数Ｎ＝４の高速フーリエ変換）及び図１２（データ点数Ｎ＝８の高速フーリエ変換）に示されるように、高速フーリエ変換はバタフライ演算の組み合わせにより実現でき、そのバタフライ演算のステージ数は、ｌｏｇ２Ｎとして表すことができる。例えば、データ点数Ｎが８点の高速フーリエ変換の場合、ステージ数はｌｏｇ２８＝３となる。
【００２０】
図１３には、Cooley-Tukey型の高速フーリエ変換を実現する固定小数点型の高速フーリエ変換回路１０’の一例が示されている。
【００２１】
この高速フーリエ変換回路１０’が基数を２として、データ点数Ｎが８点の高速フーリエ変換を行なうものとした場合の動作を簡単に説明する。
（１）高速フーリエ変換回路１０’に入力された各入力データはＦＦＴ入力データ格納ＲＡＭ１２’に記憶される。ステージ制御回路１４’は、ステージ信号（いずれのステージで動作しているのかを示す信号）を出力してセレクタ１６’及びＦＦＴ演算部２２’の動作を制御しており、最初に第１ステージを示すステージ信号を出力する。
（２）ステージ制御回路１４’より出力されるステージ信号が第１ステージを示す場合、セレクタ１６’によりＦＦＴ入力データ格納ＲＡＭ１２’からのデータが選択され、ＦＦＴ演算部２２’にＦＦＴ入力データ格納ＲＡＭ１２’からのデータが入力する。
（３）ＦＦＴ演算部２２’は、回転因子記憶部２０’に記憶された回転因子テーブル１８’よりステージ信号により示されるステージに応じた各回転因子を読み出し、入力したデータに対して読み出した各回転因子を用いてバタフライ演算を行う。
（４）バタフライ演算結果をＦＦＴ演算結果格納ＲＡＭ２８’に記憶する。ステージ制御回路１４’は、バタフライ演算結果が全てＦＦＴ演算結果格納ＲＡＭ２８’に記憶されると、次のステージを示すステージ信号を出力する。
（５）ステージ制御回路１４’より出力されるステージ信号が第２ステージ以降を示す場合、セレクタ１６’によりＦＦＴ演算結果格納ＲＡＭ２８’からのデータが選択され、ＦＦＴ演算部２２’にＦＦＴ演算結果格納ＲＡＭ２８’からのデータが入力する。
（６）以降、上記（３）〜（５）の動作をデータ点数Ｎに応じたステージ数の回数だけ繰り返す。
（７）バタフライ演算をステージ数の回数だけ終了した後（データ点数Ｎが８点の場合は第３ステージ終了後）のＦＦＴ演算結果格納ＲＡＭ２８’に記憶されたデータを高速フーリエ変換の出力データとする。
【特許文献１】特開平５−２６６０５９号公報
【発明の開示】
【発明が解決しようとする課題】
【００２２】
ところで、上記Cooley-Tukey型の高速フーリエ変換演算をハードウェアに実際に実装する場合、ＦＦＴ入力データ格納ＲＡＭ１２’やＦＦＴ演算結果格納ＲＡＭ２８’、ＦＦＴ演算部２２’等では、無限のビット幅のデータを保持することができないため、必ず回路上のビット幅制約がある。
【００２３】
例えば、ＦＦＴ入力データ格納ＲＡＭ１２’及びＦＦＴ演算結果格納ＲＡＭ２８’の１データのビット幅が１６ビットに制限されているものとし、また、各回転因子ＷNiのビット幅が１０ビットであるとする。この場合、ＦＦＴ演算部２２’によるバタフライ演算の結果出力される出力データのビット幅は、図１４に示すように、１６ビットの加算１回と、加算結果と回転因子との乗算１回を行うため、最大２７ビットのデータになる。
【００２４】
しかし、ＦＦＴ演算結果格納ＲＡＭ２８’のビット幅は１６ビットに制限されている。このため、従来の高速フーリエ変換回路１０’では、図１５に示すように、ビット抜出部２４’を設けて、当該ビット抜出部２４’により２７ビットから１６ビットのデータの抜き出しを行なって、ＦＦＴ演算結果格納ＲＡＭ２８’に格納する必要がある。
【００２５】
このビット抜出部２４’では、２７ビット中どの１６ビットのデータを抜き出すかは予め定められており、例えば、２７ビットの信号の最上位１６ビットのデータを常に抜き出すなど常に固定的に抜き出しを行う。
【００２６】
しかし、このようにビット抜出部２４’によるデータを抜き出す範囲が固定されている場合、高速フーリエ変換回路１０’に入力される各入力データの性質（振幅値の大小、ランダム性が高いか低いか、ピークが局所的にあるインパルス性のデータなのか等）によって、データを抜き出す範囲が適切な範囲とならない場合がある。このように、データを抜き出す範囲が適切な範囲とならない場合、高速フーリエ変換の演算途中でオーバーフローやアンダーフロー、誤差の増大などが発生して最終的に高速フーリエ変換の演算誤差が大きくなってしまう場合がある、という問題点があった。
【００２７】
本発明は上記問題点を解決するためになされたものであり、演算誤差を小さくすることができる高速フーリエ変換回路及び高速フーリエ変換方法を提供することを目的とする。
【課題を解決するための手段】
【００２８】
上記目的を達成するため、請求項１記載の発明は、各々所定ビット数の２のｎ乗個（ｎは０より大きい自然数）の入力データに対して、バタフライ演算を行なって前記所定ビット数よりも多いビット数の２のｎ乗個の演算結果データを算出する演算を複数の段階に分けて行なうことにより離散時間フーリエ変換演算を行なう演算手段と、前記演算手段により算出された各演算結果データから、各段階毎に、前記所定ビット数と同一のビット数で、かつ前記バタフライ演算で有効な範囲として予め定められた範囲のデータを抜き出す抜出手段と、前記抜出手段により抜き出された前記所定ビット数の各データを、前記演算手段により次の段階のバタフライ演算を行なう際の入力データとして設定する設定手段と、を備えている。
【００２９】
請求項１記載の発明は、演算手段により、各々所定ビット数の２のｎ乗個（ｎは０より大きい自然数）の入力データに対して、バタフライ演算を行なって前記所定ビット数よりも多いビット数の２のｎ乗個の演算結果データを算出する演算を複数の段階に分けて行なうことにより離散時間フーリエ変換演算を行なうものとされており、抜出手段により、演算手段により算出された各演算結果データから、各段階毎に、所定ビット数と同一のビット数で、かつバタフライ演算で有効な範囲として予め定められた範囲のデータが抜き出され、設定手段により、抜出手段により抜き出された所定ビット数の各データが、演算手段により次の段階のバタフライ演算を行なう際の入力データとして設定される。
【００３０】
このように請求項１記載の発明によれば、各々所定ビット数の２のｎ乗個の入力データに対して、各段階に応じたバタフライ演算が行なわれて算出される各演算結果データから、各段階毎に、所定ビット数と同一のビット数で、かつバタフライ演算で有効な範囲として予め定められた範囲のデータを抜き出し、抜き出した所定ビット数の各データを、次の段階のバタフライ演算を行なう際の入力データとして設定しているので、演算誤差を小さくすることができる。
【００３１】
なお、請求項１記載の発明は、請求項２記載の発明のように、前記有効な範囲は、前記演算手段によりバタフライ演算される各入力データの最も上位側で１となるビットの位置に応じて定められるものとしてもよい。
【００３２】
一方、上記目的を達成するため、請求項３記載の発明は、各々所定ビット数の２のｎ乗個（ｎは０より大きい自然数）の入力データに対して、バタフライ演算を行なって前記所定ビット数よりも多いビット数の２のｎ乗個の演算結果データを算出する演算を複数の段階に分けて行なうことにより離散時間フーリエ変換演算を行なう際に、算出された各演算結果データから、各段階毎に、前記所定ビット数と同一のビット数で、かつ前記バタフライ演算で有効な範囲として予め定められた範囲のデータを抜き出し、抜き出した前記所定ビット数の各データを、前記演算手段により次の段階のバタフライ演算を行なう際の入力データとして設定する。
【００３３】
よって、請求項３に記載の発明は、請求項１記載の発明と同様に作用するので、請求項１記載の発明と同様に、演算誤差を小さくすることができる。
【００３４】
なお、請求項３記載の発明は、請求項４記載の発明のように、前記有効な範囲は、バタフライ演算される各入力データの最も上位側で１となるビットの位置に応じて定められるものとしてもよい。
【００３５】
一方、上記目的を達成するため、請求項５記載の発明は、入力したデータに対してバタフライ演算を行なって、ｍ（ｍは２以上の自然数）ビットのバタフライ演算結果を出力するステップと、前記ｍビットのバタフライ演算結果のうち、所定のｎ（ｎはｍより小さくかつ０より大きい自然数）ビットを抜き出すステップと、前記抜き出されたｎビットのバタフライ演算結果を用いてバタフライ演算を行なうステップと、を有することを特徴とする。
【発明の効果】
【００３６】
以上説明したように、本発明によれば、各々所定ビット数の２のｎ乗個の入力データに対して、各段階に応じたバタフライ演算が行なわれて算出される各演算結果データから、各段階毎に、所定ビット数と同一のビット数で、かつバタフライ演算で有効な範囲として予め定められた範囲のデータを抜き出し、抜き出した所定ビット数の各データを、次の段階のバタフライ演算を行なう際の入力データとして設定しているので、演算誤差を小さくすることができる、という優れた効果を有する。
【発明を実施するための最良の形態】
【００３７】
以下、図面を参照して、本発明の実施の形態について詳細に説明する。
【００３８】
［第１の実施の形態］
図１には、本実施の形態に係る高速フーリエ変換回路１０の構成が示されている。
【００３９】
同図に示されるように、高速フーリエ変換回路１０は、高速フーリエ変換を行なう対象として入力された各入力データを記憶するＦＦＴ入力データ格納ＲＡＭ１２と、入力された各データに対して高速フーリエ変換を行なう際の各ステージを示すステージ信号を出力するステージ制御回路１４と、ステージ制御回路１４より入力するステージ信号により示されるステージに応じてＦＦＴ入力データ格納ＲＡＭ１２又は後述するＦＦＴ演算結果格納ＲＡＭ２８に記憶されているデータを選択的に出力するセレクタ１６と、各ステージのバタフライ演算で用いる各回転因子が記憶された回転因子テーブル１８を予め記憶する回転因子記憶部２０と、を備えている。
【００４０】
また、高速フーリエ変換回路１０は、ステージ制御回路１４より入力するステージ信号により示されるステージに応じて回転因子記憶部２０に記憶された回転因子テーブル１８から回転因子を読み出し、セレクタ１６より入力する各データに対して、読み出した各回転因子を用いてステージに応じたバタフライ演算を行なうＦＦＴ演算部２２と、ＦＦＴ演算部２２により算出される演算結果データから、各ステージ毎に、後述するレジスタ２６に予め記憶された範囲のデータを抜き出すビット抜出部２４と、ビット抜出部２４が各ステージ毎に抜き出す範囲を示す情報を予め記憶するレジスタ２６と、ビット抜出部２４により抜き出された各データを、上記ＦＦＴ演算部２２により次のステージのバタフライ演算を行なう際の入力データに設定するものとして記憶するＦＦＴ演算結果格納ＲＡＭ２８と、をさらに備えている。
【００４１】
なお、高速フーリエ変換回路１０は、ＦＦＴ入力データ格納ＲＡＭ１２に高速フーリエ変換を行なう対象として各々１６ビットの８点の入力データが記憶される。
【００４２】
ＦＦＴ演算部２２は、各入力データに対して、各ステージに応じたバタフライ演算を行なって入力データのビット数よりも多いビット数の演算結果データを算出する。本実施の形態に係るＦＦＴ演算部２２は、各々１６ビットの８点の入力データに対して各ステージに応じたバタフライ演算を行なって各２７ビットの８点の演算結果データを算出するものとされている。
【００４３】
レジスタ２６には、各ステージ毎にバタフライ演算で有効な範囲として８点の各演算結果データからそれぞれデータを抜き出す１６ビットの範囲を示すステージ別範囲情報が予め記憶されている。レジスタ２６は、ステージ制御回路１４よりステージ信号が入力されると、ステージ別範囲情報から当該ステージ信号により示されるステージに対応する情報を抽出し、抜き出し範囲情報として出力する。
【００４４】
ビット抜出部２４は、ＦＦＴ演算部２２により算出された演算結果データから、レジスタ２６より入力された抜き出し範囲情報により示される範囲のデータを抜き出すものとされている。
【００４５】
次に、本実施の形態に係る高速フーリエ変換回路１０の作用を説明する。
【００４６】
図２（Ａ）には、データ点数Ｎが８点の離散時間フーリエ変換をCooley-Tukey型の高速フーリエ変換に分解した場合の演算の流れが示されており、図２（Ｂ）には、図１の各ブロックを、高速フーリエ変換を行なう際の各ステージ順（処理順）に並べた図が示されている。
【００４７】
本実施の形態に係る高速フーリエ変換回路１０は、データ点数が８点の高速フーリエ変換であるため、図２（Ａ）（Ｂ）に示されるように、バタフライ演算を行なうステージ数はｌｏｇ２８＝３となる。なお、図２（Ｂ）は、ステージ順に各ブロックを並べているため、ＦＦＴ演算部２２、回転因子記憶部２０、ビット抜出部２４及びＦＦＴ演算結果格納ＲＡＭ２８が複数含まれているが、それぞれ同一のものである。
【００４８】
図３には、入力データに対して高速フーリエ変換を行なう際にステージ制御回路１４により実行される高速フーリエ変換制御処理の動作の流れを示すフローチャートが示されている。
【００４９】
同図のステップ１００では、第１ステージを示すステージ信号を出力し、次のステップ１０２では、当該ステージの処理の終了待ちを行なう。
【００５０】
セレクタ１６（図１参照。）は、入力されたステージ信号が第１ステージを示す場合、ＦＦＴ入力データ格納ＲＡＭ１２に格納されているデータを選択してＦＦＴ演算部２２に出力し、ステージ信号が第２ステージ以降を示す場合、ＦＦＴ演算結果格納ＲＡＭ２８に格納されているデータを選択してＦＦＴ演算部２２に出力する。
【００５１】
一方、レジスタ２６は、記憶しているステージ別範囲情報から、入力されたステージ信号により示されるステージに対応する情報を抽出し、抜き出し範囲情報として出力する
ＦＦＴ演算部２２は、セレクタ１６より入力する各入力データに対して、入力されたステージ信号により示されるステージに応じて図２（Ａ）に示されるようなバタフライ演算を行なって演算結果データを算出する。
【００５２】
ビット抜出部２４は、ＦＦＴ演算部２２により算出される演算結果データから、レジスタ２６より入力された抜き出し範囲情報により示される範囲のデータを抜き出す。
【００５３】
ビット抜出部２４により抜き出された各データは、ＦＦＴ演算結果格納ＲＡＭ２８に記憶される。全てのデータがＦＦＴ演算結果格納ＲＡＭ２８に記憶されると、各ステージの処理が終了となる。
【００５４】
次のステップ１０４では、全ステージの処理が終了したか否かを判定し、否定判定となった場合はステップ１０６へ移行する一方、肯定判定となった場合は、高速フーリエ変換制御処理を終了する。
【００５５】
ステップ１０６では、次のステージを示すステージ信号を出力して再度ステップ１０２へ移行する。
【００５６】
高速フーリエ変換回路１０は、上記高速フーリエ変換制御処理によりバタフライ演算をステージ数の回数だけ終了した後にＦＦＴ演算結果格納ＲＡＭ２８に記憶されているデータを高速フーリエ変換の出力データとして出力する。
【００５７】
ここで、例えば、図４（Ａ）に示されるように、インパルス性の信号をサンプリングした入力データを高速フーリエ変換回路１０により高速フーリエ変換するものとし、例えば、従来手法のように、ビット抜出部２４が、各々２７ビットの演算結果データの最上位１６ビットのデータを常に抜き出し、次のステージの入力データとして設定するものとした場合、各ステージ毎にビット抜出部２４により下位側のビットが切り捨てられるため、ステージが進む毎に各演算結果データから抜き出された各データにより示される値のピーク値は、図４（Ｂ）に示されるように遷移することがわかっている。
【００５８】
一方、本実施の形態に係るビット抜出部２４の場合、高速フーリエ変換により変復調する信号に応じて、図４（Ｃ）に示されるように、各ステージ毎に、入力データのビット数と同一のビット数で、かつバタフライ演算で有効な範囲として予め定められた範囲のデータを抜き出すため、切り捨てられる下位側のビット数が少なくなるため、誤差を小さくすることができる。
【００５９】
ここで、一例として、地上波デジタル放送で用いられている方式であるＯＦＤＭの信号に対して本実施の形態に係る高速フーリエ変換回路１０により高速フーリエ変換を行なった場合を説明する。
【００６０】
なお、以下では、図５に示すように、各入力データのビット数を８ビットとし、ＦＦＴ演算結果格納ＲＡＭ２８のビット幅を８ビットとする。また、入力データのデータ点数を１０２４点とし、高速フーリエ変換回路１０は、データ点数が１０２４であるため、基数が４のバタフライ演算を５ステージ繰り返して高速フーリエ変換の演算結果を得るものとする。さらに、ＦＦＴ演算部２２から出力される各演算結果データは、２１ビットであり、ビット抜出部２４は、この２１ビットの各演算結果データからそれぞれ８ビットのデータを抜き出すものとする。
【００６１】
以下の表１には、このような高速フーリエ変換回路１０において、従来手法のように、ビット抜出部２４において、演算及びデータを抜き出し過程でのオーバーフロー等を考慮して、常に１７ビット目〜１０ビット目の範囲の８ビットのデータを固定的に抜き出すものとした場合と、第１の実施の形態のように、ビット抜出部２４において、ステージ毎に表１のような範囲のデータの抜き出しを行うものとした場合の相対的な演算誤差が示されている。なお、表１中の数字の、たとえば（１７−１０）は１７ビット目から１０ビット目のデータを抜き出すことを示している。
【００６２】
【表１】
2008083852.tif 000011
表１に示されるように、第１の実施の形態のように、ビット抜出部２４において、各ステージ毎にデータの抜き出し範囲の最適化を行った方が相対的な演算誤差が小さくなる。
【００６３】
なお、上述したように、高速フーリエ変換回路１０では、ビット抜出部２４においてデータの抜き出しを行なうと、下位側のビットが切り捨てられるため、ステージが進む毎に抜き出された各データにより示される値が低下する。このため、この相対的な演算誤差は、従来手法及び本実施の形態の手法を用いた高速フーリエ変換回路１０により高速フーリエ変換された出力データに対して、それぞれビット抜出部２４でデータを抜き出す際に切り捨てられたビット数に応じた値を乗算し、乗算の結果得られた値の、理想的な高速フーリエ変換の演算結果の値に対する誤差の割合を示している。従って、乗算した結果得られた値が理想的な高速フーリエ変換の演算結果の値と一致する場合、相対的な演算誤差は０％になる。
【００６４】
すなわち、入力データが地上波デジタル放送のものであり、入力データ及び出力データのビット数を８ビットとした場合、ステージが進むにつれてデータの抜き出し範囲を下位ビットの方にシフトさせるにより、相対的な演算誤差を小さくすることができる。なお、データ抜き出し範囲と各ステージとの関係は、入力データ及び出力データのビット数や入力データの性質によって表１に示した範囲と異なっている。
【００６５】
以上のように、本実施の形態によれば、各ステージ毎に、各入力データに対してバタフライ演算を行なって算出される各演算結果データから、各段階毎に、入力データのビット数と同一のビット数で、かつ前記バタフライ演算で有効な範囲のデータを抜き出し、抜き出した各データを、次の段階のバタフライ演算を行なう際の入力データとして設定することにより、各ステージ毎の相対的な演算誤差を小さくすることができる。したがって、最終的な高速フーリエ変換の演算結果の相対的な演算誤差を小さくすることが可能となる。
【００６６】
また、本実施の形態に係る高速フーリエ変換回路１０によれば、各ステージ毎にバタフライ演算後のデータを抜き出す範囲を変えることより相対的な演算誤差を小さくすることができるため、浮動小数点型の高速フーリエ変換演算回路に比べ、非常に簡単な回路構成で実現でき、低消費電力化の効果も期待できる。
【００６７】
［第２の実施の形態］
ところで、上記第１の実施の形態に係る高速フーリエ変換回路１０では、高速フーリエ変換を行なう信号の性質が既知でないと各ステージでのデータの抜き出し範囲を最適化することは難しい。特に、入力データがインパルス信号をサンプリングしたものである場合は、ピーク値が急激に変動するため、予め信号の性質を予め知り得ていないとデータの抜き出し範囲を最適化できず、演算誤差も大きくなってしまう。
【００６８】
そこで、ＦＦＴ演算部２２によりバタフライ演算される各入力データを解析して当該入力データに応じてビット抜出部２４によるデータを抜き出す範囲を定める形態例について説明する。
【００６９】
図６には、第２の実施の形態に係る高速フーリエ変換回路１０の構成が示されている。なお、同図における図１と同一の構成要素には図１と同一の符号を付して、その説明を省略する。
【００７０】
同図に示すように、高速フーリエ変換回路１０は、高速フーリエ変換を行なう対象として入力された各入力データ又はビット抜出部２４により抜き出された各データを選択的に出力するセレクタ３０と、セレクタ３０より入力する各データを解析し、その結果どのような性質の信号であるかを推定して各演算結果データからのデータの抜き出す範囲を制御する抜出範囲制御部３２と、を備えている。
【００７１】
図７には、第２の実施の形態に係る抜出範囲制御部３２の詳細な構成が示されている。
【００７２】
同図に示すように、抜出範囲制御部３２は、データが示す値を絶対値に変換する絶対値変換部４０と、絶対値化された各データの中からピーク値（最大値）を検出するピーク検出部４２と、ピーク検出部４２により検出されたピーク値となるデータに基づき、ビット抜出部２４において各演算結果データからデータを抜き出す範囲を特定し、特定した範囲を示す抜き出し範囲情報を出力する抜き出し範囲特定部４４と、を備えている。
【００７３】
なお、抜き出し範囲特定部４４は、データ中のＭＳＢ（Most Significant Bit）側のマージンビット数とデータを抜き出す範囲とを一対一に対応させた抜出範囲テーブルを予め記憶している。抜き出し範囲特定部４４は、ピーク検出部４２により検出されたピーク値のデータにおいて、最もＭＳＢ側にある“１”がデータ中のどの位置にあるかを求めてＭＳＢ側に何ビットのマージンがあるかを検出し、抜出範囲テーブルから上位側のマージンビット数に対応する情報を抽出し、抜き出し範囲情報として出力する。
【００７４】
次に、本実施の形態に係る高速フーリエ変換回路１０の作用について説明する。なお、本実施の形態に係る高速フーリエ変換回路１０は、データ点数が５１２点の入力データの高速フーリエ変換を行なうものであり、各入力データのビット数が２７ビットであるものとする。
【００７５】
セレクタ３０は、ステージ制御回路１４より入力されたステージ信号が第１ステージを示す場合、高速フーリエ変換を行なう対象として入力された各入力データを選択して抜出範囲制御部３２に出力し、ステージ信号が第２ステージ以降を示す場合、ビット抜出部２４により抜き出された各データを選択して抜出範囲制御部３２に出力する。なお、最終ステージ以外の場合、このビット抜出部２４により抜き出された各データが、次のステージの入力データとして設定されるデータである。
【００７６】
すなわち、抜出範囲制御部３２は、ＦＦＴ演算部２２によりバタフライ演算される各入力データに基づきデータを抜き出す範囲の特定を行なう。
【００７７】
図８（Ａ）〜（Ｅ）には、抜出範囲制御部３２によりデータを抜き出す範囲を特定する際の流れが示されている。
【００７８】
絶対値変換部４０は、例えば、図８（Ａ）に示される各データにより示される値を、図８（Ｂ）に示されるように絶対値に変換する。
【００７９】
ピーク検出部４２は、図８（Ｃ）に示されるように、絶対値に変換された各値の中からピーク値（最大値）を検出する。
【００８０】
抜き出し範囲特定部４４は、図８（Ｄ）に示されるように、検出されたピーク値において、最もＭＳＢ側にある“１”が２７ビット中のどの位置にあるかを求めてＭＳＢ側に何ビットのマージンがあるかを検出する。そして、抜き出し範囲特定部４４は、図８（Ｅ）に示されるように、抜出範囲テーブルから上位側のマージンビット数に対応する情報を抽出し、抜き出し範囲情報として出力する。
【００８１】
例えば、抜き出し範囲特定部４４は、図８（Ｃ）に示されるように、ピーク値が１０進数で１５０００００と仮定すると、２７ビット中、２２ビット目〜７ビット目の計１６ビットのデータを抜き出す範囲と特定する。
【００８２】
以上のように、本実施の形態によれば、ＦＦＴ演算部２２により各ステージのバタフライ演算を行なう際の入力データを解析して当該入力データの性質に応じてバタフライ演算による演算結果データからデータを抜き出す範囲を制御しているので、高速フーリエ変換の各ステージの相対的な演算誤差を小さくすることができる。したがって、最終的な高速フーリエ変換の演算結果の相対的な演算誤差を小さくすることが可能となる。
【００８３】
また、本実施の形態に係る高速フーリエ変換回路１０によれば、第１の実施の形態と同様に、浮動小数点型の高速フーリエ変換演算回路に比べて簡単な回路構成で実現できるため、低消費電力化の効果も期待できる。
【００８４】
なお、第１及び第２の実施の形態では、ＦＦＴ入力データ格納ＲＡＭ１２及びＦＦＴ演算結果格納ＲＡＭ２８にＲＡＭを用いて説明したが、本発明はこれに限定されるものではなく、例えば、データを格納又は保持できる機能を持つメモリ、レジスタ等であってもよい。この場合も、本実施の形態と同様の効果を奏することができる。
【００８５】
また、第１の実施の形態では、レジスタ２６からデータを抜き出す範囲を示す抜き出し範囲情報をビット抜出部２４に供給する場合について説明したが、本発明はこれに限定されるものではなく、ビット抜出部２４が外部からデータを抜き出す範囲を変更可能であれば、何れから抜き出し範囲情報を受信してもよい。また、ビット抜出部２４において各ステージ毎にデータを抜き出す範囲を記憶するものとしてもよい。この場合も、本実施の形態と同様の効果を奏することができる。
【００８６】
また、第１の実施の形態では、データ点数が８点の高速フーリエ変換の場合を例として説明したが、本発明はこれに限定されるものではなく、データ点数が２のｎ乗（ｎは０より大きい自然数）であれば、いずれであっても適用可能である。
【００８７】
また、第１及び第２の実施の形態では、基数を２として離散時間フーリエ変換を分解した高速フーリエ変換の演算法について説明したが、ビット抜出部２４によるデータの抜き出しについては、基数に限定されず、さらに複数の基数の組み合わせを行った離散時間フーリエ変換の分解時にも適用可能である。
【００８８】
さらに、第２の実施の形態では、図８（Ｅ）において、抜出範囲テーブルを用いてデータを抜き出す範囲を特定する場合を説明したが、本発明はこれに限定されるものではなく、例えば、マージンビット数を入力値として演算式等によりデータを抜き出す範囲を算出するものとしてもよい。
【００８９】
その他、第１及び第２の実施の形態で説明した高速フーリエ変換回路１０の構成（図１、図２、図５及び図６参照。）、抜出範囲制御部３２の構成（図７参照。）は、一例であり、本発明の主旨を逸脱しない範囲内において適宜変更可能であることは言うまでもない。
【００９０】
また、第１の実施の形態で説明した高速フーリエ変換制御処理（図３参照。）の流れも一例であり、本発明の主旨を逸脱しない範囲内において適宜変更可能であることは言うまでもない。
【００９１】
また、第２の実施の形態で説明した抜出範囲テーブル（図８（Ｅ）参照。）のデータ構造も一例であり、本発明の主旨を逸脱しない範囲内において適宜変更可能であることは言うまでもない。
【図面の簡単な説明】
【００９２】
【図１】第１の実施の形態に係る高速フーリエ変換回路の構成を示す構成図である。
【図２】（Ａ）はデータ点数が８点の高速フーリエ変換の演算の流れを示す図であり、（Ｂ）は高速フーリエ変換を行なう際の各ステージ順に図１の各ブロックを並べた図である。
【図３】第１の実施の形態に係る高速フーリエ変換制御処理の流れを示すフローチャートである。
【図４】（Ａ）はインパルス性の信号を示す図であり、（Ｂ）は従来の高速フーリエ変換による各ステージ毎の各演算結果データからデータを抜出す範囲を示すグラフであり、（Ｃ）は第１の実施の形態に係る高速フーリエ変換の各ステージ毎の各演算結果データからデータを抜出す範囲を示すグラフである。
【図５】入力データのビット数及びＦＦＴ演算結果格納ＲＡＭのビット幅が異なる高速フーリエ変換回路の構成を示す構成図である。
【図６】第２の実施の形態に係る高速フーリエ変換回路の構成を示す構成図である。
【図７】第２の実施の形態に係る抜出範囲制御部の詳細な構成を示す構成図である。
【図８】（Ａ）〜（Ｅ）はデータを抜き出す範囲を特定する際の流れを示す図である。
【図９】複素平面上での回転因子を示す図である。
【図１０】データ点数が４点の高速フーリエ変換の演算の流れを示す図である。
【図１１】バタフライ演算の流れを示す図である。
【図１２】データ点数が８点の高速フーリエ変換の演算の流れを示す図である。
【図１３】従来の高速フーリエ変換回路の構成を示す構成図である。
【図１４】バタフライ演算によるビット数の変化を示す図である。
【図１５】従来の高速フーリエ変換回路の構成を示す構成図である。
【符号の説明】
【００９３】
１０  高速フーリエ変換回路
１６  セレクタ（設定手段）
２２  ＦＦＴ演算部（演算手段）
２４  ビット抜出部（抜出手段）
３２  抜出範囲制御部（制御手段）
【図１】
2008083852.tif 000012
【図２】
2008083852.tif 000013
【図３】
2008083852.tif 000014
【図４】
2008083852.tif 000015
【図５】
2008083852.tif 000016
【図６】
2008083852.tif 000017
【図７】
2008083852.tif 000018
【図８】
2008083852.tif 000019
【図９】
2008083852.tif 000020
【図１０】
2008083852.tif 000021
【図１１】
2008083852.tif 000022
【図１２】
2008083852.tif 000023
【図１３】
2008083852.tif 000024
【図１４】
2008083852.tif 000025
【図１５】
2008083852.tif 000026