(57)【要約】【課題】高速フーリエ変換のための回転因子表であって、高速フーリエ変換装置の回路規模を削減できるものを提供すること。【解決手段】正の整数Ｎ点まで演算可能な高速フーリエ変換のための回転因子表である。この回転因子表は、０からＮ／８までの各整数ｎについて、｛ｃｏｓ（２πｎ／Ｎ）　＋　ｃｏｓ（２π（Ｎ／４−ｎ）／Ｎ）｝／２の値と、｛ｃｏｓ（２πｎ／Ｎ）　−　ｃｏｓ（２π（Ｎ／４−ｎ）／Ｎ）｝／２の値とを格納している。【選択図】　図８
2004013811.tif 000002
【特許請求の範囲】
【請求項１】
正の整数Ｎ点まで演算可能な高速フーリエ変換のための回転因子表であって、
０からＮ／８までの各整数ｎについて、
｛ｃｏｓ（２πｎ／Ｎ）　＋　ｃｏｓ（２π（Ｎ／４−ｎ）／Ｎ）｝／２の値と、
｛ｃｏｓ（２πｎ／Ｎ）　−　ｃｏｓ（２π（Ｎ／４−ｎ）／Ｎ）｝／２の値と
を格納したことを特徴とする回転因子表。
【請求項２】
請求項１に記載の回転因子表において、
上記各整数ｎごとに｛ｃｏｓ（２πｎ／Ｎ）　＋　ｃｏｓ（２π（Ｎ／４−ｎ）／Ｎ）｝／２の値を一つずつ格納した第１の回転因子表と、
上記各整数ｎごとに｛ｃｏｓ（２πｎ／Ｎ）　−　ｃｏｓ（２π（Ｎ／４−ｎ）／Ｎ）｝／２の値を一つずつ格納した第２の回転因子表と
を含むことを特徴とする回転因子表。
【請求項３】
請求項１に記載の回転因子表において、
上記各整数ｎごとに｛ｃｏｓ（２πｎ／Ｎ）　＋　ｃｏｓ（２π（Ｎ／４−ｎ）／Ｎ）｝／２の値と｛ｃｏｓ（２πｎ／Ｎ）　−　ｃｏｓ（２π（Ｎ／４−ｎ）／Ｎ）｝／２の値とを対応付けて１対格納したことを特徴とする回転因子表。
【請求項４】
実部と虚部を表す２ビットの入力データと、回転因子表に含まれた回転因子との間の乗算を行う正の整数Ｎ点まで演算可能な高速フーリエ変換装置であって、
０からＮ／８までの各整数ｎごとに、上記入力データで指定されるべきアドレスに所定の順で｛ｃｏｓ（２πｎ／Ｎ）　＋　ｃｏｓ（２π（Ｎ／４−ｎ）／Ｎ）｝／２の値または｛ｃｏｓ（２πｎ／Ｎ）　−　ｃｏｓ（２π（Ｎ／４−ｎ）／Ｎ）｝／２の値を並べて格納した第１記憶手段と、
各整数ｎごとに、上記入力データで指定されるべきアドレスに所定の順で｛ｃｏｓ（２πｎ／Ｎ）　＋　ｃｏｓ（２π（Ｎ／４−ｎ）／Ｎ）｝／２の値または｛ｃｏｓ（２πｎ／Ｎ）　−　ｃｏｓ（２π（Ｎ／４−ｎ）／Ｎ）｝／２の値を並べて格納した第２記憶手段と、
演算結果を格納し得る第１の一時記憶手段および第２の一時記憶手段と、
第１記憶手段から読み出された値と第１の一時記憶手段から読み出された値とを、上記入力データの実部ビット値に応じて加算又は減算する第１演算手段と、第２記憶手段から読み出された値と第２の一時記憶手段から読み出された値とを、上記入力データの虚部ビット値に応じて加算又は減算する第２演算手段と
を備えたことを特徴とする高速フーリエ変換装置。
【請求項５】
実部と虚部を表す２ビットの入力データと、回転因子表に含まれた回転因子との間の乗算を行う正の整数Ｎ点まで演算可能な高速フーリエ変換装置であって、
上記入力データの実部ビット値と虚部ビット値との間の排他的論理和を求める排他的論理和演算手段と、
０からＮ／８までの各整数ｎごとに、上記排他的論理和演算手段の出力値に応じて指定されるべきアドレスに所定の順で｛ｃｏｓ（２πｎ／Ｎ）　＋　ｃｏｓ（２π（Ｎ／４−ｎ）／Ｎ）｝／２の値または｛ｃｏｓ（２πｎ／Ｎ）　−　ｃｏｓ（２π（Ｎ／４−ｎ）／Ｎ）｝／２の値を並べて格納した第１記憶手段と、
各整数ｎごとに、上記排他的論理和演算手段の出力値に応じて指定されるべきアドレスに所定の順で｛ｃｏｓ（２πｎ／Ｎ）　＋　ｃｏｓ（２π（Ｎ／４−ｎ）／Ｎ）｝／２の値または｛ｃｏｓ（２πｎ／Ｎ）　−　ｃｏｓ（２π（Ｎ／４−ｎ）／Ｎ）｝／２の値を並べて格納した第２記憶手段と、
演算結果を格納し得る第１の一時記憶手段および第２の一時記憶手段と、
第１記憶手段から読み出された値と第１の一時記憶手段から読み出された値とを、上記入力データの実部ビット値に応じて加算又は減算する第１演算手段と、第２記憶手段から読み出された値と第２の一時記憶手段から読み出された値とを、上記入力データの虚部ビット値に応じて加算又は減算する第２演算手段と
を備えたことを特徴とする高速フーリエ変換装置。
【請求項６】
実部と虚部を表す２ビットの入力データと、回転因子表に含まれた回転因子との間の乗算を行う正の整数Ｎ点まで演算可能な高速フーリエ変換装置であって、
上記入力データの実部ビット値と虚部ビット値との間の排他的論理和を求める排他的論理和演算手段と、
請求項２中に記載の第１の回転因子表を格納した第１記憶手段と、
請求項２中に記載の第２の回転因子表を格納した第２記憶手段と、
上記各整数ｎごとに、上記第１記憶手段から読み出された値と第２記憶手段から読み出された値とを、上記排他的論理和手段の出力値に応じて入れ替えて又は入れ替えずにそのまま第１出力値、第２出力値として出力する第３演算手段と、
演算結果を格納し得る第１の一時記憶手段および第２の一時記憶手段と、
第３演算手段の第１出力値と第１の一時記憶手段から読み出された値とを、上記入力データの実部ビット値に応じて加算又は減算する第１演算手段と、
第３演算手段の第２出力値と第２の一時記憶手段から読み出された値とを、上記入力データの虚部ビット値に応じて加算又は減算する第２演算手段と
を備えたことを特徴とする高速フーリエ変換装置。
【請求項７】
実部と虚部を表す２ビットの入力データと、回転因子表に含まれた回転因子との間の乗算を行う正の整数Ｎ点まで演算可能な高速フーリエ変換装置であって、
上記入力データの実部ビット値と虚部ビット値との間の排他的論理和を求める排他的論理和演算手段と、
請求項３に記載の回転因子表を格納した記憶手段と、
上記各整数ｎごとに、上記記憶手段から読み出された一対の値を、上記排他的論理和手段の出力値に応じて入れ替えて又は入れ替えずにそのまま第１出力値、第２出力値として出力する第３演算手段と、
演算結果を格納し得る第１の一時記憶手段および第２の一時記憶手段と、
第３演算手段の第１出力値と第１の一時記憶手段から読み出された値とを、上記入力データの実部ビット値に応じて加算又は減算する第１演算手段と、
第３演算手段の第２出力値と第２の一時記憶手段から読み出された値とを、上記入力データの虚部ビット値に応じて加算又は減算する第２演算手段と
を備えたことを特徴とする高速フーリエ変換装置。
【請求項８】
入力データと回転因子表に含まれた回転因子との間の乗算を行う正の整数Ｎ点まで演算可能な高速フーリエ変換装置であって、
Ｎ／８が４２０の倍数であるとき、基数８をとし、かつ回転因子表として請求項１乃至３のいずれか一つに記載の回転因子表を用いることを特徴とする高速フーリエ変換装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
この発明は、高速フーリエ変換のための回転因子表に関する。また、この発明は、そのような回転因子表を用いた高速フーリエ変換装置に関する。
【０００２】
【従来の技術】
画像信号の圧縮処理や拡大縮小処理およびフィルタ処理などのディジタル信号処理において（式１）に示すようなＮ点離散フーリエ変換（以下「ＤＦＴ」という。）あるいは（式２）のＮ点逆離散フーリエ変換（以下「ＩＤＦＴ」という。）の演算がしばしば用いられる。
【０００３】
１次元Ｎ点ＤＦＴ演算は、時間領域のＮ個の離散データｘｎ（ｎ＝０，　１，　２，　…，　Ｎ−１）を入力データとし、周波数領域のＮ個の離散データＸｋ（ｋ　＝　０，　１，　２，　…，　Ｎ−１）を出力データとする変換であり、
Ｎ点１次元ＤＦＴの定義式：
【数１】
2004013811.tif 000003
で表される。また、１次元Ｎ点ＩＤＦＴは、周波数領域のＮ個の離散データＸｋ（ｋ　＝　０，１，　２，　…，　Ｎ−１）を入力とし、時間領域のＮ個の離散データｘｎ（ｎ＝０，　１，　２，　…，　Ｎ−１）を出力データとする変換であり、
Ｎ点１次元ＩＤＦＴの定義式：
【数２】
2004013811.tif 000004
で表される。
【０００４】
ここでＷＮは回転因子（ｔｗｉｄｄｌｅ　ｆａｃｔｏｒ）と呼ばれ、複素指数関数ＷＮ　＝　ｅ−　２πｉ　／Ｎで定義される。またｉは虚数でｉ２＝−１である。Ｗには次のような性質がある。
ＷＮＮ／２　＝　−１，　ＷＮ／２　＝　ＷＮ２，　ＷＮＮ　＝　１
（式１）および（式２）はＮ次元の正方行列とＮ次元のベクトルの内積演算であり、（式１）ならば行列で表示すると次の（式３）のように書ける。
【０００５】
【数３】
2004013811.tif 000005
この（式３）の演算はＮ×Ｎ回の乗算とＮ（Ｎ−１）回の加算を含んでいる。なお、係数が１の乗算は実質的には省けるので乗算回数は（Ｎ−１）×（Ｎ−１）回ですむが、Ｎが大きくなるにつれてほぼＮの２乗に比例して演算回数が増加し、現実的な時間内での演算ができなくなってしまうことに変わりはない。
【０００６】
この演算回数を削減する方法として、次に示すように偶数番と奇数番とに分割する方法が広く用いられており、考案者の名前からＣｏｏｌｅｙ−Ｔｕｋｅｙ（クーリー−テューキー）型高速フーリエ変換（ＦＦＴ）と呼ばれている（参考文献　Ｊ．Ｗ．Ｃｏｏｌｅｙ，Ｊ．Ｗ．Ｔｕｋｅｙ，　｀｀Ａｎ　Ａｌｇｏｒｉｔｈｍ　ｆｏｒ　ｔｈｅ　Ｍａｃｈｉｎｅ　Ｃａｌｃｕｌａｔｉｏｎ　ｏｆ　Ｃｏｍｐｌｅｘ　Ｆｏｕｒｉｅｒ　Ｓｅｒｉｅｓ，’’　Ｍａｔｈｅｍａｔｉｃｓ　ｏｆ　Ｃｏｍｐｕｔａｔｉｏｎ，　Ｖｏｌ．１９，　ｐｐ．２９７−３０１，　１９６５．）　。
【０００７】
▲１▼　ＦＦＴの例として、まずＤＦＴにおいて基数２（Ｒａｄｉｘ−２）の周波数間引き演算（ＤＩＦ）　を行う方法を示す。この基数２の周波数間引き演算では、出力の周波数列Ｘｋを間引いて、ｋが偶数番（ｋ＝２ｈ）の集合｛　Ｘ２ｈ　｜　ｈ＝　０，１，…，Ｎ／２−１｝と奇数番（ｋ＝２ｈ＋１）の集合｛　Ｘ２ｈ＋１　｜　ｈ＝　０，１，…，Ｎ／２−１｝とに分ける。
【０００８】
具体的には、サイズが半分の部分問題を定めるために（式１）の和（ｓｕｍｍａｔｉｏｎ）をｎが前半（０からＮ／２−１）の和と後半（Ｎ／２からＮ−１）の和との２つに分割して次のように書き直す。
【０００９】
【数４】
2004013811.tif 000006
そして、この（式４）をｋが偶数（ｋ＝２ｈ）の項と奇数（ｋ＝２ｈ＋１）の項とに分けて、次のように別々に考える。
【００１０】
まず、Ｎ点１次元ＤＦＴの周波数領域インデックスｋが偶数の項　（ｋ＝２ｈ）は、ＷＮＮ　＝１およびＷＮ／２　＝　ＷＮ２の性質を使うと、
【数５】
2004013811.tif 000007
と表される。したがって、
ｙｎ＝ｘｎ　＋　ｘｎ＋Ｎ／２　　，　ｎ　＝　０，　１，　…，　Ｎ／２−１　　　（式６）
というＮ／２回の加算を予め行っておけば、（式５）の演算は半分のサイズの部分問題になり、
【数６】
2004013811.tif 000008
というＮ／２点ＤＦＴになる。
【００１１】
次に、Ｎ点１次元ＤＦＴの周波数領域インデックスｋが奇数の項（ｋ＝２ｈ＋１）は、偶数の項と同様にして、
【数７】
2004013811.tif 000009
と表される。したがって、
ｚｎ　＝　（ｘｎ　−　ｘｎ＋Ｎ／２）　ＷＮｎ，　　　ｎ　＝　０，　１，　…，　Ｎ／２−１　　　　　　（式８）
というＮ／２回の減算とＮ／２回の乗算を予め行っておけば、（式７’）の演算は半分のサイズの部分問題になり、
【数８】
2004013811.tif 000010
というＮ／２点ＤＦＴになる。
【００１２】
（式６）と（式８）で表される演算は、同じ項同士の加算ｘｎ＋ｘｎ＋Ｎ／２と減算ｘｎ−ｘｎ＋Ｎ／２を含んでおり、演算フローグラフの形からバタフライ演算と呼ばれている。
【００１３】
結局、Ｎ点ＤＦＴはこのＮ／２回のバタフライ演算を行うことによって、２つのＮ／２点ＤＦＴに分解できる。
【００１４】
この演算処理は「基数２の周波数間引き演算」あるいはＲａｄｉｘ−２　ＤＩＦ　と呼ばれている。この演算処理は更にｈが偶数の場合と奇数の場合とに分割できるので、再帰的に繰り返すことができる。
【００１５】
▲２▼　次に、ＤＦＴにおいて基数４（Ｒａｄｉｘ−４）の周波数間引き演算（ＤＩＦ）　を行う方法を示す。Ｎ点ＤＦＴは、Ｎが２ｒで割り切れるならば、上記のＲａｄｉｘ−２と同様に基数２ｒの周波数間引き演算によって、ｒ分の１のＤＦＴに分割することができる。
【００１６】
一般的には基数４の間引き演算の効率がよいので、基数４の周波数間引き演算についての結果を示す。
【００１７】
【数９】
2004013811.tif 000011
ただし、
【数１０】
2004013811.tif 000012
である。
【００１８】
▲３▼　次に、ＤＦＴにおいて基数２（Ｒａｄｉｘ−２）の時間間引き演算（ＤＩＴ）　を行う方法を示す。この基数２の時間間引き演算では、（式１）の入力集合｛　ｘｎ　｝をｎが偶数の場合ｎ＝２ｍ（ｍ　＝　０，　１，　２，　…，　Ｎ／２　−　１）と奇数の場合ｎ＝２ｍ　＋　１（ｍ　＝　０，　１，　２，
…，　Ｎ／２　−　１）とに分割する。すると、
【数１１】
2004013811.tif 000013
となる。
【００１９】
ここでＷＮ／２Ｎ／２＝１　を使うと、ＷＮ／２ｋｍ　＝　ＷＮ／２ｋｍ　（ＷＮ／２Ｎ／２）ｍ　＝　ＷＮ／２（ｋ　＋　Ｎ／２）ｍ　だから、周波数領域のインデックスｋについて半分のｋ　＝　０，　１，　…，　Ｎ／２−１　に対する和（ｓｕｍｍａｔｉｏｎ）を計算するだけで十分である。
【００２０】
つまり、（式１２）の各和はサイズＮ／２のＤＦＴとして扱え、時間領域のインデックスが偶数番の集合｛ｘ２ｍ　｜　ｍ　＝　０，　１，　…，　Ｎ／２−１　｝のＮ／２点ＤＦＴと奇数番の集合｛ｘ２ｍ＋１　｜　ｍ　＝　０，　１，　…，　Ｎ／２−１　｝のＮ／２点ＤＦＴとに分けることができる。このことから、この演算処理は時間間引き（ｄｅｓｉｍａｔｉｏｎ−ｉｎ−ｔｉｍｅ，　ＤＩＴ）と呼ばれている。
【００２１】
この（式１２）において
ｙｍ　＝　ｘ２ｍ　　　　　　
ｚｍ　＝　ｘ２ｍ＋１
と置くと、（式１２）は次の２つの部分問題に帰着できる。
【００２２】
まず、Ｎ点１次元ＤＦＴの時間領域インデックスｎが偶数の項（ｎ＝２ｍ）は、
【数１２】
2004013811.tif 000014
と表される。
【００２３】
また、Ｎ点１次元ＤＦＴの時間領域インデックスｎが奇数の項（ｎ＝２ｍ＋１）は、
【数１３】
2004013811.tif 000015
と表される。
【００２４】
これら２つのＮ／２点ＤＦＴをあらかじめ計算しておくと、周波数領域インデックスｋが０からＮ／２−１までのＮ／２個の出力項は、
【数１４】
2004013811.tif 000016
で与えられる。これはＮ／２回の加算とＮ／２回の乗算である。
【００２５】
また、ＷＮＮ／２＋ｋ　＝　−ＷＮｋとＷＮ／２Ｎ／２＝１を使うと、残りのＮ／２個の出力項は、
【数１５】
2004013811.tif 000017
で与えられる。これはＮ／２回の減算とＮ／２回の乗算である。
【００２６】
つまり、入力の偶数項に関するＮ／２点ＤＦＴ（式１３）と奇数項に関するＮ／２点ＤＦＴ（式１４）を求め、（式１５）と（式１６）で表されるバタフライ演算を実行すれば、元々のＮ点ＤＦＴが得られる。この分解は再帰的に適用できるので、結局、時間間引きＤＦＴは周波数間引きＤＦＴのバタフライ演算を逆向きに実行していることになる。これらの式は任意の偶数サイズの問題に適用可能である。
【００２７】
▲４▼　さらに具体例として、８点１次元ＤＦＴを基数２の周波数間引き演算で求める場合（Ｒａｄｉｘ−２　ＤＩＦ　ＤＦＴ）を示す。この８点１次元ＤＩＦ−ＤＦＴの演算フローは図５に示すように模式化される。
（式１）から、８点１次元ＤＦＴの定義式は
【数１６】
2004013811.tif 000018
と表される。この（式１７）をｋが偶数（ｋ＝２ｈ）の場合と奇数（ｋ＝２ｈ＋１）の場合に分けると、次に示す２つの４点１次元ＤＦＴになる。
【００２８】
【数１７】
2004013811.tif 000019
【数１８】
2004013811.tif 000020
【００２９】
図５中の５０１から５０４は（式１８）と（式１９）の中のバタフライ演算に相当し、５０５は（式１９）中の回転因子を用いた乗算に相当する。（式１８）は４点ＤＦＴ５０６を表し、（式１９）は４点ＤＦＴ５０７を表している。
【００３０】
さらに、（式１８）と（式１９）とをそれぞれｈが偶数（ｈ＝２ｍ）の場合と奇数（ｈ＝２ｍ＋１）の場合に分けると、次に示す４つの２点１次元ＤＦＴに分解できる。
【００３１】
【数１９】
2004013811.tif 000021
【００３２】
このようにＣｏｏｌｅｙ−Ｔｕｋｅｙ型ＦＦＴは、バタフライ演算と呼ばれる加減算と回転因子と呼ばれるＷとの間の乗算で構成される。
【００３３】
周波数間引き演算と時間間引き演算とは基本的に演算量は変わりなく、手順が互いに逆順になっているだけである。周波数間引き演算はＧｅｎｔｌｅｍａｎ−Ｓａｎｄｅ（ジェントルマン−サンド）型ＦＦＴと呼ばれることもある。
【００３４】
以上がＤＦＴおよびＩＤＦＴのＣｏｏｌｅｙ−Ｔｕｋｅｙ型ＦＦＴの概略である。Ｃｏｏｌｅｙ−Ｔｕｋｅｙ型ＦＦＴにはこの他にも様々な変形手法が知られているが、ここでは省略する。
【００３５】
ＦＦＴによって現実的な時間内で計算できるようになったとはいえ、ＦＦＴポイント数Ｎが大きい場合に実時間処理を行うには、なお相当な計算量を要する。このため、携帯機器等の小型情報処理装置においては、ＦＦＴは集積回路内部の専用回路ブロックとして実現される場合が多い。その場合、回路規模が重要な問題となる。
【００３６】
すなわち、ＦＦＴを集積回路内部の専用回路として実現する場合、加減算に比べて乗除算の回路規模が大きくなるので工夫を要する。回転因子を用いた乗算を実現するに当たっては、回転因子を予めメモリーに記憶しておく方式と、必要なときに漸化式を用いて計算する方式とがある。本発明は回転因子を予めメモリーに記憶しておく方式に関するので、そのような回転因子を用いた乗算に関する従来の技術を次に説明する。
【００３７】
ＦＦＴにおける回転因子を用いた乗算は複素数同士の乗算であり、２つの実数の内積演算を実行することになる。例えば複素数の入力データをａ　＝　ａＲ　＋　ｉ　ａＩ、複素数の回転因子をＷＮｎ　＝　ＷｎＲ　＋　ｉ　ＷｎＩとすると、入力データと回転因子との間の乗算結果ｚも複素数になり、ｚ　＝　ａ・ＷＮｎ　＝　（ａＲ・ＷｎＲ　−　ａＩ・ＷｎＩ）　＋　ｉ　（ａＲ・ＷｎＩ　＋　ａＩ・ＷｎＲ）で表される。直接、複素数を回路で計算することはできないので、実際の計算としては、
実部　ｚＲ　＝　ａＲ・ＷｎＲ　−　ａＩ・ＷｎＩ　　（式２１）
虚部　ｚＩ　＝　ａＲ・ＷｎＩ　＋　ａＩ・ＷｎＲ　　（式２２）
という、実部と虚部の２つの実数演算を各々、実行することになる。これには４回の乗算と２回の加減算が必要である。
【００３８】
Ｎ点１次元ＤＦＴを計算するために必要な回転因子は、Ｒａｄｉｘ−２では（式８）中のＷＮｎ　（ｎ　＝　０，　１，　．．．，　Ｎ／２　−　１）であり、Ｎ／２点ＤＦＴに分解した後に必要な回転因子はＷＮ／２ｎ　（ｎ　＝　０，　１，　．．．，　Ｎ／４　−　１）である。これらは全てＮ点ＤＦＴで必要な回転因子の部分集合である。
【００３９】
回転因子Ｗは、定義に従って、
ＷＮｎ　＝　ｅ−　２πｉ　ｎ／Ｎ　＝　ｃｏｓ（２πｎ／Ｎ）　−　ｉ　ｓｉｎ（２πｎ／Ｎ）　　　　　　（式２３）
と表される。ただしｉは純虚数、ｎ　＝　０，　１，　．．．，　Ｎ／２　−　１である。（式２３）を一覧表（回転因子表）にすると、表１のようになる。
【００４０】
【表１】
2004013811.tif 000022
【００４１】
この表１の実部と虚部の値をそれぞれｎの関数としてグラフで表現すると、図６中に示す余弦波６０１、正弦波６０２の曲線上の点になる。つまり、ＷＮｎをｎ＝０から小さな順番にｎ＝Ｎ／２−１まで並べれば、全区間６０４（ｎ＝０からｎ＝Ｎ／２までの全範囲を指す。）をＮ／２等分したグラフ上の点が表１の実部および虚部を示す。ここで簡単のために、
Ｃｎ　＝　ｃｏｓ（２πｎ／Ｎ），
Ｓｎ　＝　ｓｉｎ（２πｎ／Ｎ）
と書くことにする。Ｃｎは曲線６０１上の点であり、Ｓｎは曲線６０３上の点である。
【００４２】
点Ｓｎが作る曲線６０３は、全区間６０４において、ｎ＝Ｎ／４の直線６０８を中心とした線対称になっている。したがって、全区間６０４にわたる点Ｓｎの値を、前半区間（ｎ＝０からｎ＝Ｎ／４までの範囲を指す。）６０５におけるＳｎの値によって表すことができる（但し、Ｎは４の倍数とする）。また、点Ｃｎが作る曲線６０１は、全区間６０４において、ｎ＝Ｎ／４の直線６０８とＷＮｎ＝０の直線との交点を中心とした点対称になっている。したがって、絶対値と符号を加味することによって、全区間６０４にわたるＣｎの値を、前半区間６０５におけるＣｎの値によって表すことができる。
【００４３】
さらに、前半区間６０５において、点Ｓｎが作る曲線６０３と点Ｃｎが作る曲線６０１とを併せてできる曲線は、ｎ＝Ｎ／８の直線６０９を中心とした線対称となっている。したがって、全区間６０４にわたるＣｎとＳｎの値を、第１クォータ区間（ｎ＝０からｎ＝Ｎ／８までの範囲を指す。）６０６におけるＣｎとＳｎの値によって表すことができる。
【００４４】
さらに、第１クォータ区間６０６におけるＳｎが作る曲線と、その隣の第２クォータ区間（ｎ＝Ｎ／８からｎ＝Ｎ／４までの範囲を指す。）６１０におけるＣｎが作る曲線とは、ｎ＝Ｎ／８の直線６０９を中心にして線対称になっている。したがって、次の（式２４）のように、第１クォータ区間６０６におけるＳｎの値を第２クォータ区間６１０におけるＣｎの値によって表すことができる。
Ｓｎ　＝　ＣＮ／４−ｎ　　（式２４）
これから分かるように、必要な回転因子を全てテーブル（これを「回転因子表」と呼ぶ。）に記憶すればＮ／２個の複素数が必要であるが、Ｎが４の倍数の場合には、表２のごとく、Ｎ／８個ごとに絶対値の同じ数値が順序を変えて並ぶことになる。
【００４５】
【表２】
2004013811.tif 000023
【００４６】
そこで従来から、ｎ　＝　０，１，　．．．，　Ｎ／８までの実部の絶対値｜ＷｎＲ｜　＝　Ｃｎ　＝　ｃｏｓ（２πｎ／Ｎ）と虚部の絶対値｜ＷｎＩ｜　＝　ＣＮ／４−ｎ　＝　ｃｏｓ（２π（Ｎ／４−ｎ）／Ｎ）のペアを一覧表として記憶しておく方式が行われている（例えば特開平２−１０１５７５）。これにより、Ｎ点ＤＦＴのために必要な回転因子表のサイズを、Ｎ個の実数（Ｎ／２個の複素数）を含むサイズからその約４分の１に縮小することができる。
【００４７】
このような回転因子表を用いた乗算を行うための回路構成は、例えば図７に示すようなものである。記憶手段７０５には表２中に示したｎ＝０からｎ＝Ｎ／８までの実部と虚部のペアが記憶されている。記憶手段７０５から読み出された値は第５演算手段７１０と第６演算手段７１１に入力される。第５演算手段７１０は複数のマルチプレクサで構成されており、入力データのアドレスｎにしたがって、ＣｎとＣＮ／４−ｎを第１演算手段７０６と第２演算手段７０７に振り分ける。第６演算手段７１０も複数のマルチプレクサで構成されており、入力データのアドレスｎにしたがって、ＣｎとＣＮ／４−ｎを第３演算手段７０８と第４演算手段７０９に振り分ける。実部入力７０１からの入力は第１演算手段７０６と第３演算手段７０８に入力され、虚部入力７０２からの入力は第２演算手段７０７と第４演算手段７０９に入力される。第１演算手段７０６から第４演算手段７０９はそれぞれが入力値同士の乗算を実行する。第１演算手段７０６の出力と第２演算手段７０７の出力とが第７演算手段７１２で減算されて実部出力７０３に結果を出力する。第３演算手段７０８の出力と第４演算手段７０９の出力とが第８演算手段７１３で加算され、虚部出力７０４に結果が出力される。このようにして入力複素数と回転因子との間の乗算が実行される。
【００４８】
【発明が解決しようとする課題】
ところで、図７に示した方式によれば、読み出してきた回転因子の値を使って（式２１）と（式２２）の４回の乗算と２回の加減算を実行してはじめて目的の演算が完了する。すなわち、必要な演算精度に応じたビット長をもつ４個の乗算器７０６〜７０９と２個の加（減）算器７１２〜７１３とを必要とする。このため、依然として回路規模が大きいという問題がある。
【００４９】
例えば１６点ＤＦＴの場合、本来回転因子として用いられる８個の複素数Ｗ１６０　，Ｗ１６１　，Ｗ１６２　，Ｗ１６３　，Ｗ１６４　，Ｗ１６５　，Ｗ１６６　，Ｗ１６７　の間に、
Ｗ１６０　＝　Ｃ０　−　ｉＳ０　＝　Ｃ０　−　ｉＣ４，
Ｗ１６１　＝　Ｃ１　　ｉＳ１　＝　Ｃ１　−　ｉＣ３，
Ｗ１６２　＝　Ｃ２　　ｉＳ２　＝　Ｃ２　−　ｉＣ２，
Ｗ１６３　＝　Ｃ３　　ｉＳ３　＝　Ｃ３　−　ｉＣ１，
Ｗ１６４　＝　Ｃ４　　ｉＳ４　＝　Ｃ４　−　ｉＣ０，
Ｗ１６５　＝　Ｃ５　　ｉＳ５　＝　−　Ｃ３　−　ｉＣ１，
Ｗ１６６　＝　Ｃ６　　ｉＳ６　＝　−　Ｃ２　−　ｉＣ２，
Ｗ１６７　＝　Ｃ７　　ｉＳ７　＝　−　Ｃ１　−　ｉＣ３
という関係がある。そこで、従来の方式では、上述のように、
｛（｜ＷｎＲ｜　，｜ＷｎＩ｜）｝　＝　｛（Ｃ０，　Ｃ４），　（Ｃ１，　Ｃ３），　（Ｃ２，　Ｃ２）｝
の３組の数値ペアを一覧表として記憶しておき、ｎ＝０の時にはｚＲ　＝　ａＲ・Ｃ０　−　ａＩ・Ｃ４とｚＩ　＝　ａＲ・Ｃ４　＋　ａＩ・Ｃ０を計算し、ｎ＝１の時にはｚＲ　＝　ａＲ・Ｃ１　−　ａＩ・Ｃ３とｚＩ　＝　ａＲ・Ｃ３＋　ａＩ・Ｃ１を計算し、という具合にその都度読み出した回転因子の数値ペアを用いて乗算と加減算を実行する。このため、回転因子表のサイズを小さくできるが、回路規模が大きくなるという問題がある。
【００５０】
そこで、この発明の課題は、高速フーリエ変換のための回転因子表であって、高速フーリエ変換装置の回路規模を削減できるものを提供することにある。
【００５１】
また、この発明の課題は、そのような回転因子表を用いて、回路規模を削減できる高速フーリエ変換装置を提供することにある。
【００５２】
【課題を解決するための手段】
上記課題を解決するため、本発明の回転因子表は、正の整数Ｎ点まで演算可能な高速フーリエ変換のための回転因子表であって、次のような特徴を有するものである。すなわち、本発明の回転因子表は、０からＮ／８までの各整数ｎについて、
｛ｃｏｓ（２πｎ／Ｎ）　＋　ｃｏｓ（２π（Ｎ／４−ｎ）／Ｎ）｝／２の値と、
｛ｃｏｓ（２πｎ／Ｎ）　−　ｃｏｓ（２π（Ｎ／４−ｎ）／Ｎ）｝／２の値と
を格納したことを特徴とする。
【００５３】
簡単のために、従来例の説明に用いたのと同様に、
Ｃｎ　＝　ｃｏｓ（２πｎ／Ｎ），
Ｓｎ　＝　ｓｉｎ（２πｎ／Ｎ）
という記号を用いることにすると、本発明の回転因子表は、
2004013811.tif 000024
の値を格納したことを特徴とする。例えば１６点ＤＦＴに用いられるものでは、｛（Ａ，　Ｂ）｝　＝　｛（（Ｃ０＋Ｃ４）／２，　（Ｃ０−Ｃ４）／２），　（（Ｃ１＋Ｃ３）／２，　（Ｃ１−Ｃ３）／２），　（Ｃ２，　０）｝
の３組の数値を格納しておく。また、１０２４点ＤＦＴに用いられるものでは、１０２４／８＋１＝１２９組の数値を格納しておく。
【００５４】
この回転因子表に格納された回転因子を用いて、高速フーリエ変換のための演算を分散算術演算（Ｄｉｓｔｒｉｂｕｔｅｄ　Ａｒｉｔｈｍｅｔｉｃ）法（以下、ＤＡ法という。）によって実行すれば、高速フーリエ変換を効率よく実現でき、従来例における乗算器７０６から７０９（図７参照）を省略できる（詳しくは後述する）。したがって、高速フーリエ変換装置の回路規模を削減できる。
【００５５】
なお、分散算術演算法は、行列の内積演算を、乗算器を使わずに、ビットシリアル演算によって行う方法である。
【００５６】
一実施形態の回転因子表は、
上記各整数ｎごとに｛ｃｏｓ（２πｎ／Ｎ）　＋　ｃｏｓ（２π（Ｎ／４−ｎ）／Ｎ）｝／２の値を一つずつ格納した第１の回転因子表と、
上記各整数ｎごとに｛ｃｏｓ（２πｎ／Ｎ）　−　ｃｏｓ（２π（Ｎ／４−ｎ）／Ｎ）｝／２の値を一つずつ格納した第２の回転因子表と
を含むことを特徴とする。
【００５７】
この一実施形態の回転因子表によれば、各回転因子表が各整数ｎごとに例えば入力データの実部と虚部に対応して複数個の値を格納する場合に比して、回転因子表のサイズを少なくとも半分以下にすることができる（詳しくは後述する）。したがって、高速フーリエ変換装置の回路規模をさらに削減できる。また、高速フーリエ変換装置の消費電力も低減できる。
【００５８】
一実施形態の回転因子表は、
上記各整数ｎごとに｛ｃｏｓ（２πｎ／Ｎ）　＋　ｃｏｓ（２π（Ｎ／４−ｎ）／Ｎ）｝／２の値と｛ｃｏｓ（２πｎ／Ｎ）　−　ｃｏｓ（２π（Ｎ／４−ｎ）／Ｎ）｝／２の値とを対応付けて１対格納したことを特徴とする。
【００５９】
この一実施形態の回転因子表によれば、例えば入力データの実部と虚部に対応して第１の回転因子表と第２の回転因子表を選択する場合に比して、アドレスデコーダ部を半減できる。したがって、高速フーリエ変換装置の回路規模をさらに削減できる。また、高速フーリエ変換装置の消費電力も低減できる。
【００６０】
本発明の高速フーリエ変換装置は、実部と虚部を表す２ビットの入力データと、回転因子表に含まれた回転因子との間の乗算を行う正の整数Ｎ点まで演算可能な高速フーリエ変換装置であって、次のような特徴を有するものである。すなわち、本発明の高速フーリエ変換装置は、０からＮ／８までの各整数ｎごとに、上記入力データで指定されるべきアドレスに所定の順で｛ｃｏｓ（２πｎ／Ｎ）　＋　ｃｏｓ（２π（Ｎ／４−ｎ）／Ｎ）｝／２の値または｛ｃｏｓ（２πｎ／Ｎ）　−　ｃｏｓ（２π（Ｎ／４−ｎ）／Ｎ）｝／２の値を並べて格納した第１記憶手段と、各整数ｎごとに、上記入力データで指定されるべきアドレスに所定の順で｛ｃｏｓ（２πｎ／Ｎ）　＋　ｃｏｓ（２π（Ｎ／４−ｎ）／Ｎ）｝／２の値または｛ｃｏｓ（２πｎ／Ｎ）　−　ｃｏｓ（２π（Ｎ／４−ｎ）／Ｎ）｝／２の値を並べて格納した第２記憶手段とを備える。また、演算結果を格納し得る第１の一時記憶手段および第２の一時記憶手段を備える。また、第１記憶手段から読み出された値と第１の一時記憶手段から読み出された値とを、上記入力データの実部ビット値に応じて加算又は減算する第１演算手段を備える。さらに、第２記憶手段から読み出された値と第２の一時記憶手段から読み出された値とを、上記入力データの虚部ビット値に応じて加算又は減算する第２演算手段を備える。
【００６１】
本発明の高速フーリエ変換装置によれば、ＤＡ法による回転因子を用いた乗算を効率よく実現でき、従来例の高速フーリエ変換装置における乗算器７０６〜７０９（図７参照）を省略できる（詳しくは後述する）。したがって、回路規模を削減できる。
【００６２】
また、本発明の高速フーリエ変換装置は、実部と虚部を表す２ビットの入力データと、回転因子表に含まれた回転因子との間の乗算を行う正の整数Ｎ点まで演算可能な高速フーリエ変換装置であって、次のような特徴を有するものである。すなわち、本発明の高速フーリエ変換装置は、上記入力データの実部ビット値と虚部ビット値との間の排他的論理和を求める排他的論理和演算手段を備える。また、０からＮ／８までの各整数ｎごとに、上記排他的論理和演算手段の出力値に応じて指定されるべきアドレスに所定の順で｛ｃｏｓ（２πｎ／Ｎ）　＋　ｃｏｓ（２π（Ｎ／４−ｎ）／Ｎ）｝／２の値または｛ｃｏｓ（２πｎ／Ｎ）　−　ｃｏｓ（２π（Ｎ／４−ｎ）／Ｎ）｝／２の値を並べて格納した第１記憶手段と、各整数ｎごとに、上記排他的論理和演算手段の出力値に応じて指定されるべきアドレスに所定の順で｛ｃｏｓ（２πｎ／Ｎ）　＋　ｃｏｓ（２π（Ｎ／４−ｎ）／Ｎ）｝／２の値または｛ｃｏｓ（２πｎ／Ｎ）　−　ｃｏｓ（２π（Ｎ／４−ｎ）／Ｎ）｝／２の値を並べて格納した第２記憶手段とを備える。また、演算結果を格納し得る第１の一時記憶手段および第２の一時記憶手段を備える。また、第１記憶手段から読み出された値と第１の一時記憶手段から読み出された値とを、上記入力データの実部ビット値に応じて加算又は減算する第１演算手段を備える。さらに、第２記憶手段から読み出された値と第２の一時記憶手段から読み出された値とを、上記入力データの虚部ビット値に応じて加算又は減算する第２演算手段を備える。
【００６３】
本発明の高速フーリエ変換装置によれば、ＤＡ法による回転因子を用いた乗算を効率よく実現でき、従来例の高速フーリエ変換装置における乗算器７０６〜７０９（図７参照）を省略できる。したがって、回路規模を削減できる。しかも、第１記憶手段および第２記憶手段の記憶容量を、前記高速フーリエ変換装置のものに比して、少なくとも半分以下にできる。
【００６４】
また、本発明の高速フーリエ変換装置は、実部と虚部を表す２ビットの入力データと、回転因子表に含まれた回転因子との間の乗算を行う正の整数Ｎ点まで演算可能な高速フーリエ変換装置であって、次のような特徴を有するものである。すなわち、本発明の高速フーリエ変換装置は、上記入力データの実部ビット値と虚部ビット値との間の排他的論理和を求める排他的論理和演算手段を備える。また、上記各整数ｎごとに｛ｃｏｓ（２πｎ／Ｎ）　＋　ｃｏｓ（２π（Ｎ／４−ｎ）／Ｎ）｝／２の値を一つずつ格納した第１の回転因子表を格納した第１記憶手段と、上記各整数ｎごとに｛ｃｏｓ（２πｎ／Ｎ）　−　ｃｏｓ（２π（Ｎ／４−ｎ）／Ｎ）｝／２の値を一つずつ格納した第２の回転因子表を格納した第２記憶手段とを備える。また、上記各整数ｎごとに、上記第１記憶手段から読み出された値と第２記憶手段から読み出された値とを、上記排他的論理和手段の出力値に応じて入れ替えて又は入れ替えずにそのまま第１出力値、第２出力値として出力する第３演算手段を備える。また、演算結果を格納し得る第１の一時記憶手段および第２の一時記憶手段を備える。また、第３演算手段の第１出力値と第１の一時記憶手段から読み出された値とを、上記入力データの実部ビット値に応じて加算又は減算する第１演算手段を備える。さらに、第３演算手段の第２出力値と第２の一時記憶手段から読み出された値とを、上記入力データの虚部ビット値に応じて加算又は減算する第２演算手段を備える。
【００６５】
本発明の高速フーリエ変換装置によれば、ＤＡ法による回転因子を用いた乗算を効率よく実現でき、従来例の高速フーリエ変換装置における乗算器７０６〜７０９（図７参照）を省略できる。したがって、回路規模を削減できる。しかも、第１記憶手段および第２記憶手段の記憶容量を、前記高速フーリエ変換装置のものに比して、少なくとも半分以下にできる。また、消費電力も低減できる。
【００６６】
また、本発明の高速フーリエ変換装置は、実部と虚部を表す２ビットの入力データと、回転因子表に含まれた回転因子との間の乗算を行う正の整数Ｎ点まで演算可能な高速フーリエ変換装置であって、次のような特徴を有するものである。すなわち、本発明の高速フーリエ変換装置は、上記入力データの実部ビット値と虚部ビット値との間の排他的論理和を求める排他的論理和演算手段と、上記各整数ｎごとに｛ｃｏｓ（２πｎ／Ｎ）　＋　ｃｏｓ（２π（Ｎ／４−ｎ）／Ｎ）｝／２の値と｛ｃｏｓ（２πｎ／Ｎ）　−　ｃｏｓ（２π（Ｎ／４−ｎ）／Ｎ）｝／２の値とを対応付けて１対格納した回転因子表を格納した記憶手段とを備える。また、上記各整数ｎごとに、上記記憶手段から読み出された一対の値を、上記排他的論理和手段の出力値に応じて入れ替えて又は入れ替えずにそのまま第１出力値、第２出力値として出力する第３演算手段を備える。また、演算結果を格納し得る第１の一時記憶手段および第２の一時記憶手段を備える。また、第３演算手段の第１出力値と第１の一時記憶手段から読み出された値とを、上記入力データの実部ビット値に応じて加算又は減算する第１演算手段を備える。さらに、第３演算手段の第２出力値と第２の一時記憶手段から読み出された値とを、上記入力データの虚部ビット値に応じて加算又は減算する第２演算手段を備える。
【００６７】
本発明の高速フーリエ変換装置によれば、ＤＡ法による回転因子を用いた乗算を効率よく実現でき、従来例の高速フーリエ変換装置における乗算器７０６〜７０９（図７参照）を省略できる。したがって、回路規模を削減できる。しかも、記憶手段のアドレスデコーダを、前記高速フーリエ変換装置のように第１記憶手段、第２記憶手段から読み出された値を排他的論理和手段の出力値（もとは入力データの実部ビット値と虚部ビット値）に応じて入れ替える場合に比して、半減できる。また、消費電力も低減できる。
【００６８】
また、本発明の高速フーリエ変換装置は、入力データと回転因子表に含まれた回転因子との間の乗算を行う正の整数Ｎ点まで演算可能な高速フーリエ変換装置であって、次のような特徴を有するものである。すなわち、本発明の高速フーリエ変換装置は、Ｎ／８が４２０の倍数であるとき、基数８をとし、かつ回転因子表として請求項１乃至３のいずれか一つに記載の回転因子表を用いることを特徴とする。
【００６９】
Ｎ／８が４２０の倍数ならば、ｎが０からＮ／８までの区間のＣｎとＳｎの組で回転因子を表すことができる。したがって、本発明のように基数８をとしたＦＦＴが実現される。
【００７０】
【発明の実施の形態】
以下、この発明を図示の実施の形態により詳細に説明する。
【００７１】
最初に分散算術演算（Ｄｉｓｔｒｉｂｕｔｅｄ　Ａｒｉｔｈｍｅｔｉｃ，　以下ＤＡと表記する）法を、回転因子を用いた乗算に適用したときの原理を説明し、続いて本発明を適用した高速フーリエ変換装置を説明する。
【００７２】
（ＤＡ法を、回転因子を用いた乗算に適用したときの原理）
ＤＡ法を用いて、ある一つの回転因子ＷＮｎ　＝　ＷｎＲ　＋　ｉ　ＷｎＩとバタフライ演算後の値ａ　＝　ａＲ　＋　ｉ　ａＩとの間の乗算
実部　ｚｎＲ　＝　ａＲ・ＷｎＲ　−　ａＩ・ＷｎＩ　　　　　　（式２１）
虚部　ｚｎＩ　＝　ａＲ・ＷｎＩ　＋　ａＩ・ＷｎＲ　　　　　　（式２２）
を実行する場合を考える。
【００７３】
ａＲとａＩは共に２の補数表現された２進数のＪビット固定小数点数であるとするとそれぞれ、
【数２０】
2004013811.tif 000025
と表される。ｊ＝０が最上位ビット、ｊ＝Ｊ−１が最下位ビットである。（式２１）と（式２２）に（式２５）を代入して入力データのビットによる表現形式にすると、
【数２１】
2004013811.tif 000026
となる。（式２６）をｊに関する和に書き直すと、
【数２２】
2004013811.tif 000027
となる。（式２７）がＤＡ法の原理を表している。すなわち、予め分かっている定数ＷｎＲとＷｎＩに任意の入力ａＲとａＩを掛け合わせて加える場合、（式２７）中の大括弧内の
【数２３】
2004013811.tif 000028
の値を予め一覧表（回転因子表）として記憶しておけば、乗算を行うことなくｚｎＲとｚｎＩを得ることができる。（式２８）中のａＲとａＩは各々が２進数の１ビットなので、それぞれは表３と表４に示したように、入力ａＲとａＩの４種類のビットパターンに対する値で、とり得る全ての値を表すことができる。そしてｊ＝１からｊ＝Ｊ−１まではそれぞれの値に２−ｊが掛かるので１桁ずつ右へずらせて加えるだけで乗算結果を得ることができる。
【００７４】
【表３】
実部（ｚｎＲ）のためのＬＵＴ
2004013811.tif 000029
【００７５】
【表４】
虚部（ｚｎＩ）のためのＬＵＴ
2004013811.tif 000030
【００７６】
以上が単純なＤＡ法の原理である。この単純なＤＡ法では、１つの複素数の回転因子につき、４ワードのルックアップテーブル（ＬＵＴ）が２つ必要になる。Ｎ点ＤＦＴではＮ／８＋１個の複素数の回転因子が必要なので４ワードのＬＵＴがＮ／４＋２個必要になる。
【００７７】
ところで、上記のような単純なＤＡ法ではなく、｛０，１｝→｛−１，＋１｝という変数変換を施してオフセット・バイナリ・コード　ＤＡ法（参考文献　Ｓｔａｎｌｅｙ　Ａ．　Ｗｈｉｔｅ，　｀｀Ａｐｐｌｉｃａｔｉｏｎｓ　ｏｆ　ｄｉｓｔｒｉｂｕｔｅｄ　ａｒｉｔｈｍｅｔｉｃ　ｔｏ　ｄｉｇｉｔａｌ　ｓｉｇｎａｌ　ｐｒｏｃｅｓｓｉｎｇ：　Ａ　ｔｕｔｏｒｉａｌ　ｒｅｖｉｅｗ，’’　ＩＥＥＥ　ＡＳＳＰ　ｍａｇａｚｉｎｅ　（Ａｃｏｕｓｔｉｃｓ，　Ｓｐｅｅｃｈ，　ａｎｄ　Ｓｉｇｎａｌ　Ｐｒｏｃｅｓｓｉｎｇ　Ｍａｇａｚｉｎｅ），　Ｖｏｌ．６，　Ｎｏ．３，　ｐｐ．４−１９，　Ｊｕｌｙ　１９８９．）を適用すると、前記のＬＵＴは表５と表６のように整理される。
【００７８】
【表５】
ｚｎＲのためのＬＵＴ（オフセットバイナリＤＡ）
2004013811.tif 000031
【００７９】
【表６】
ｚｎＩのためのＬＵＴ（オフセットバイナリＤＡ）
2004013811.tif 000032
【００８０】
表５と表６では、それぞれ表の上半分と下半分との間で、ＲＯＭ内容（記憶値）に対称性がある。つまり、表５と表６のＲＯＭ内容は、それぞれ表の上半分と下半分との間で、絶対値が同じで、かつ符号が反対の関係にある。そこで、各々がワード数を半分にできて、表７と表８のようになる。ただし、表７では、ａＲ＝０なら読み出したＲＯＭ内容にマイナス符号、ａＲ＝１ならプラス符号を付ける。また、表８では、ａＩ＝０なら読み出したＲＯＭ内容にマイナス符号、ａＩ＝１ならプラス符号を付ける。ここで○を排他的論理和（ＸＯＲ）を表す演算記号として用いた。この性質は一般的な内積演算と同じである。
【００８１】
【表７】
ｚｎＲのためのＬＵＴ
2004013811.tif 000033
【００８２】
【表８】
ｚｎＩのためのＬＵＴ
2004013811.tif 000034
【００８３】
表７と表８を見ると、ＤＦＴに用いられる回転因子表に特有の性質として実部ＬＵＴも虚部ＬＵＴも、任意の（ａＲ，　ａＩ）の入力ビット対に対して、出力の値は（ＷｎＲ　＋　ＷｎＩ）／２と（ＷｎＲ　−　ＷｎＩ）／２のいずれかになることが分かる。したがって　（ＷｎＲ　＋　ＷｎＩ）／２を記憶するＬＵＴ＋と　（ＷｎＲ　−　ＷｎＩ）／２を記憶するＬＵＴ−という構成にすることによって、それぞれ表９、表１０に示すように、ＬＵＴの大きさを更に半分にできる。
【００８４】
【表９】
ｚｎＲのためのＬＵＴ指定
2004013811.tif 000035
【００８５】
【表１０】
ｚｎＩのためのＬＵＴ指定
2004013811.tif 000036
【００８６】
また、実部演算（ｚｎＲ）用ＬＵＴと虚部演算（ｚｎＩ）用ＬＵＴとを一つのＲＯＭにまとめて、表１１のように１ワードのＬＵＴが１個で済むようにできる。こうすることによって、アドレスデコーダ部を簡略化できる。
【００８７】
【表１１】
実部虚部共用ＬＵＴ
2004013811.tif 000037
【００８８】
ところで、Ｎ点ＤＦＴを実行するためには、表２のｎ　＝　０，　１，　．．．，　Ｎ／８の値を使って、残りのｎ　＝　Ｎ／８＋１，　．．．，　Ｎ／２−１を生成する必要がある。それにはｎの値の上位２ビットによってＬＵＴ番号を昇順で適用するか降順で適用するかを決定し（００＝昇順，０１＝降順，１０＝昇順，１１＝降順）、下位２ビットでＬＵＴ番号を決定する（昇順：００＝ＬＵＴ０，　０１＝ＬＵＴ１，　１０＝ＬＵＴ２，　１１＝ＬＵＴ３　／降順：００＝ＬＵＴ４，　０１＝ＬＵＴ３，　１０＝ＬＵＴ２，　１１＝ＬＵＴ１）。
【００８９】
また、第１クォータ区間（ｎ＝０からｎ＝Ｎ／８までの範囲を指す。）ではＷｎＲ＝Ｃｎ，ＷｎＩ＝−ＣＮ／４−ｎ，第２クォータ区間（ｎ＝Ｎ／８からｎ＝２Ｎ／８までの範囲を指す。）ではＷｎＲ＝ＣＮ／４−ｎ，ＷｎＩ＝−Ｃｎ，第３クォータ区間（ｎ＝２Ｎ／８からｎ＝３Ｎ／８までの範囲を指す。）ではＷｎＲ＝−ＣＮ／４−ｎ，ＷｎＩ＝−Ｃｎ，第４クォータ区間（ｎ＝３Ｎ／８からｎ＝４Ｎ／８までの範囲を指す。）ではＷｎＲ＝−Ｃｎ，ＷｎＩ＝−ＣＮ／４−ｎを使うことになる。Ｑｎ＋＝Ｃｎ＋ＣＮ／４−ｎ，Ｑｎ−＝Ｃｎ−ＣＮ／４−ｎ，と表すものとすると、例えば３２点ＤＦＴに用いられるＬＵＴは、次の表１２のようになる。
【００９０】
【表１２】
2004013811.tif 000038
【００９１】
これから分かるように、Ｎ／８＋１ワードの表を使うだけで、乗算器を必要とせず、Ｎ点ＤＦＴを実行することができる。
【００９２】
（第１実施形態の高速フーリエ変換装置）
図１は、標準的なオフセットバイナリＤＡ法を、回転因子表を用いた乗算に適用した第１実施形態の高速フーリエ変換装置の要部、つまり、バタフライ演算によって得られた入力データと回転因子表に含まれた回転因子との乗算を行う回路の構成を示している。
【００９３】
この高速フーリエ変換装置は、２ビットの入力データが入力される実部入力端子１０１および虚部入力端子１０２と、各ｎの値ごとにそれらの入力データに応じて所定の記憶データを出力する第１記憶手段（実部ＬＵＴ）１０５および第２記憶手段（虚部ＬＵＴ）１０６と、第１演算手段（加減算器１）１０７および第２演算手段（加減算器２）１０８と、第１の一時記憶手段（レジスタ１）１０９および第２の一時記憶手段（レジスタ２）１１０とを備えている。
【００９４】
実部入力端子１０１と虚部入力端子１０２とからは入力データａの実部ａＲと虚部ａＩがそれぞれ最下位ビットからビットシリアルに入力されてくる。
【００９５】
今、ａＲのｊ番目のビットをａＲ［ｊ］というように書く。入力データは２の補数表現されたビット長Ｊの小数であるとすると、
【数２４】
2004013811.tif 000039
である。ここで最上位ビット（ＭＳＢ）をｊ＝０とする。第１記憶手段１０５は、ｎ＝０からｎ＝Ｎ／８までの各ｎについて、表５のＲＯＭ内容欄の値の絶対値を記憶している。また、第２記憶手段１０６は、ｎ＝０からｎ＝Ｎ／８までの各ｎについて、表６のＲＯＭ内容欄の値の絶対値を記憶している。第１記憶手段（実部ＬＵＴ）１０５および第２記憶手段（虚部ＬＵＴ）１０６については、図８（ａ）にデータ構造と記憶値を模式的に示す。
【００９６】
第１記憶手段１０５からは、各ｎの値ごとに、入力された（ａＲ　，　ａＩ）のビット対に応じた値が読み出される。すなわち、第１記憶手段１０５からは、
（ａＲ　，　ａＩ）＝（０，０）ならば（｜ＷｎＲ｜　−　｜ＷｎＩ｜）／２、
（ａＲ　，　ａＩ）＝（０，１）ならば（｜ＷｎＲ｜　＋　｜ＷｎＩ｜）／２、
（ａＲ　，　ａＩ）＝（１，０）ならば（｜ＷｎＲ｜　＋　｜ＷｎＩ｜）／２、
（ａＲ　，　ａＩ）＝（１，１）ならば（｜ＷｎＲ｜　−　｜ＷｎＩ｜）／２
がそれぞれ読み出される。第２記憶手段１０６からも同様に、各ｎの値ごとに
（ａＲ　，　ａＩ）＝（０，０）ならば（｜ＷｎＲ｜　＋　｜ＷｎＩ｜）／２、
（ａＲ　，　ａＩ）＝（０，１）ならば（｜ＷｎＲ｜　−　｜ＷｎＩ｜）／２、
（ａＲ　，　ａＩ）＝（１，０）ならば（｜ＷｎＲ｜　−　｜ＷｎＩ｜）／２、
（ａＲ　，　ａＩ）＝（１，１）ならば（｜ＷｎＲ｜　＋　｜ＷｎＩ｜）／２
がそれぞれ読み出される。
【００９７】
第１演算手段１０７は、第１記憶手段１０５から読み出された値と第１の一時記憶手段１０９から読み出された値とを加算し、その結果を改めて第１の一時記憶手段１０９に入力する。この加算のとき、符号判定ビットａＲが０ならば第１記憶手段１０５から読み出された値は符号反転されるので実質的には減算となる。また、第１の一時記憶手段１０９からの出力は１ビットだけ下位ビット側へシフト（右シフト）して第１演算手段１０７へ入力されている。このことにより、第１の一時記憶手段１０９からの出力１０３には乗算結果の実部ｚｎＲ　＝　ａＲ・ＷｎＲ　−　ａＩ・ＷｎＩが得られる。
【００９８】
第２演算手段１０８は、第２記憶手段１０６から読み出された値と第２の一時記憶手段１１０から読み出された値とを加算し、その結果を改めて第２の一時記憶手段１１０に入力する。この加算のとき、符号判定ビットａＩ　が０ならば第２記憶手段１０６から読み出された値は符号反転されるので実質的には減算となる。また、第２の一時記憶手段１１０からの出力は１ビットだけ下位ビット側へシフト（右シフト）して第２演算手段１０８へ入力されている。このことにより、第２の一時記憶手段１１０からの出力１０４には乗算結果の虚部ｚｎＩ　＝　ａＲ・ＷｎＩ　＋
ａＩ・ＷｎＲが得られる。
【００９９】
これらの乗算結果ｚｎＲ、ｚｎＩを用いて高速フーリエ変換が実現される。
【０１００】
本実施形態の高速フーリエ変換装置によれば、図７の従来例に比べて乗算器７０６〜７０９を省略できるので、回路規模を削減できる。
【０１０１】
（第２実施形態の高速フーリエ変換装置）
図２は、オフセットバイナリＤＡ法を、回転因子表を用いた乗算に適用した第２実施形態の高速フーリエ変換装置の要部、つまり、バタフライ演算によって得られた入力データと回転因子表に含まれた回転因子との乗算を行う回路の構成を示している。本実施形態で用いる回転因子表は、第１実施形態で用いたものに比してサイズが半分のものである。
【０１０２】
この高速フーリエ変換装置は、２ビットの入力データが入力される実部入力端子２０１および虚部入力端子２０２と、その入力データの実部ビット値と虚部ビット値との間の排他的論理和を求めるＸＯＲ回路２１２と、各ｎの値ごとにそれらの入力データに応じて所定の記憶データを出力する第１記憶手段（実部ＬＵＴ）２０５および第２記憶手段（虚部ＬＵＴ）２０６と、第１演算手段（加減算器１）２０７および第２演算手段（加減算器２）２０８と、第１の一時記憶手段（レジスタ１）２０９および第２の一時記憶手段（レジスタ２）２１０とを備えている。
【０１０３】
実部入力端子２０１と虚部入力端子２０２とからは入力データａの実部ａＲと虚部ａＩがそれぞれ最下位ビットからビットシリアルに入力されてくる。ＸＯＲ回路２１２は、それらのａＲとａＩとの間の排他的論理和ａＲ○ａＩを求める。
【０１０４】
第１記憶手段２０５は、ｎ＝０からｎ＝Ｎ／８までの各ｎについて、表７のＲＯＭ内容欄の値を記憶している。この第１記憶手段２０５からは、各ｎの値ごとに、入力データの排他的論理和ａＲ○ａＩの値に応じて、記憶値が読み出される。すなわち、ａＲ○ａＩ＝０ならば（ＷｎＲ　−　ＷｎＩ）／２が読み出され、ａＲ○ａＩ＝１ならば（ＷｎＲ　＋　ＷｎＩ）／２が読み出される。
【０１０５】
第２記憶手段２０６は、ｎ＝０からｎ＝Ｎ／８までの各ｎについて、表８のＲＯＭ内容欄の値を記憶している。この第２記憶手段２０６からは、各ｎの値ごとに、入力データの排他的論理和ａＲ○ａＩの値に応じて、記憶値が読み出される。すなわち、ａＲ○ａＩ＝０ならば（ＷｎＲ　＋　ＷｎＩ）／２が読み出され、ａＲ○ａＩ＝１ならば（ＷｎＲ　−　ＷｎＩ）／２が読み出される。
【０１０６】
第１記憶手段（実部ＬＵＴ）２０５および第２記憶手段（虚部ＬＵＴ）２０６については、図８（ｂ）にデータ構造と記憶値を模式的に示す。
【０１０７】
第１演算手段２０７は、符号判定ビットａＲの値に応じて、ａＲ＝０ならば第１記憶手段２０５から受けた値を第１の一時記憶手段２０９の値から減算し、ａＲ＝１ならば第１記憶手段２０５から受けた値を第１の一時記憶手段２０９の値に加算する。第１演算手段２０７の演算結果は第１の一時記憶手段２０９へ入力される。また、第１の一時記憶手段２０９からの出力は１ビットだけ下位ビット側へシフト（右シフト）して第１演算手段２０７へ入力されている。このことにより、第１の一時記憶手段２０９からの出力２０３には乗算結果の実部ｚｎＲ　＝　ａＲ・ＷｎＲ　−　ａＩ・ＷｎＩが得られる。
【０１０８】
第２演算手段２０８は、符号判定ビットａＩの値に応じて、ａＩ＝０ならば第２記憶手段２０６から受けた値を第２の一時記憶手段２１０の値から減算し、ａＩ＝１ならば第１記憶手段２０５から受けた値を第１の一時記憶手段２１０の値に加算する。第２演算手段２０８の結果は第２の一時記憶手段２１０へ入力される。また、第２の一時記憶手段２１０からの出力は１ビットだけ下位ビット側へシフト（右シフト）して第２演算手段２０８へ入力されている。このことにより、第２の一時記憶手段２１０からの出力２０４には乗算結果の虚部ｚｎＩ　＝　ａＲ・ＷｎＩ　＋　ａＩ・ＷｎＲが得られる。
【０１０９】
これらの乗算結果ｚｎＲ、ｚｎＩを用いて高速フーリエ変換が実現される。
【０１１０】
本実施形態の高速フーリエ変換装置によれば、図７の従来例に比べて乗算器７０６〜７０９を省略できるので、回路規模を削減できる。また、消費電力も低減できる。しかも、第１記憶手段（実部ＬＵＴ）２０５および第２記憶手段（虚部ＬＵＴ）２０６の記憶容量は、第１実施形態のものに比して、半分で済む。
【０１１１】
（第３実施形態の高速フーリエ変換装置）
図３は、オフセットバイナリＤＡ法を、回転因子表を用いた乗算に適用した第３実施形態の高速フーリエ変換装置の要部、つまり、バタフライ演算によって得られた入力データと回転因子表に含まれた回転因子との乗算を行う回路の構成を示している。本実施形態で用いる回転因子表は、第２実施形態で用いたものに比して、さらにサイズが半分のものである。
【０１１２】
この高速フーリエ変換装置は、２ビットの入力データが入力される実部入力端子３０１および虚部入力端子３０２と、その入力データの実部ビット値と虚部ビット値との間の排他的論理和を求めるＸＯＲ回路３１２と、ｎの値に応じて所定の記憶データを出力する第１記憶手段（第１ＬＵＴ）３０５および第２記憶手段（第２ＬＵＴ）３０６と、それらの記憶手段３０５，３０６から読み出された値を入れ替えて出力し得る第３演算手段３１１と、第１演算手段（加減算器１）３０７および第２演算手段（加減算器２）３０８と、第１の一時記憶手段（レジスタ１）３０９および第２の一時記憶手段（レジスタ２）３１０とを備えている。
【０１１３】
実部入力端子３０１と虚部入力端子３０２とからは入力データａの実部ａＲと虚部ａＩがそれぞれ最下位ビットからビットシリアルに入力されてくる。ＸＯＲ回路３１２は、それらのａＲとａＩとの間の排他的論理和ａＲ○ａＩを求める。
【０１１４】
第１記憶手段３０５は、第１の回転因子表として、ｎ＝０からｎ＝Ｎ／８までの各ｎごとに、Ｑｎ＋＝（ＷｎＲ　＋　ＷｎＩ）／２の値を一つずつ記憶している。この第１記憶手段３０５からは、ｎの値に応じてＱｎ＋＝（ＷｎＲ　＋　ＷｎＩ）／２の値が読み出される。また、第２記憶手段３０６は、第２の回転因子表として、ｎ＝０からｎ＝Ｎ／８までの各ｎごとに、Ｑｎ−＝（ＷｎＲ　−　ＷｎＩ）／２の値を一つずつ記憶している。この第２記憶手段３０６からは、ｎの値に応じてＱｎ−＝（ＷｎＲ　−　ＷｎＩ）／２の値が読み出される。第１記憶手段（第１ＬＵＴ）３０５および第２記憶手段（第２ＬＵＴ）３０６については、図９（ａ）にデータ構造と記憶値を模式的に示す。
【０１１５】
第３演算手段３１１は、第１記憶手段３０５および第２記憶手段３０６から読み出された値Ｑｎ＋とＱｎ−を受けて、入力データの排他的論理和ａＲ○ａＩの値に応じて、それらの値Ｑｎ＋とＱｎ−を入れ替えて又は入れ替えずにそのまま第１出力値、第２出力値として第１演算手段（加減算器１）３０７、第２演算手段（加減算器２）３０８へ出力する。すなわち、ａＲ○ａＩ＝０ならば、第２記憶手段３０６の出力値Ｑｎ−を第１演算手段３０７へ第１出力値として出力するとともに、第１記憶手段３０５の出力値Ｑｎ＋を第２演算手段３０８へ第２出力値として出力する。また、ａＲ○ａＩ＝１ならば、第１記憶手段３０５の出力値Ｑｎ＋を第１演算手段３０７へ第１出力値として出力するとともに、第２記憶手段３０６の出力値Ｑｎ−を第２演算手段３０８へ第２出力値として出力する。
【０１１６】
第１演算手段３０７は、符号判定ビットａＲの値に応じて、ａＲ＝０ならば第３演算手段３１１から受けた値を第１の一時記憶手段（レジスタ１）３０９の値から減算し、ａＲ＝１ならば第３演算手段３１１から受けた値を第１の一時記憶手段３０９の値に加算する。第１演算手段３０７の演算結果は第１の一時記憶手段３０９へ入力される。また、第１の一時記憶手段３０９からの出力は１ビットだけ下位ビット側へシフト（右シフト）して第１演算手段３０７へ入力されている。このことにより、第１の一時記憶手段３０９からの出力３０３には乗算結果の実部ｚｎＲ　＝　ａＲ・ＷｎＲ　−　ａＩ・ＷｎＩが得られる。
【０１１７】
第２演算手段３０８は、符号判定ビットａＩの値に応じて、ａＩ＝０ならば第３演算手段３１１から受けた値を第２の一時記憶手段（レジスタ２）３１０の値から減算し、ａＩ＝１ならば第３演算手段３１１から受けた値を第２の一時記憶手段３１０の値に加算する。第２演算手段３０８の結果は第２の一時記憶手段３１０へ入力される。また、第２の一時記憶手段３１０からの出力は１ビットだけ下位ビット側へシフト（右シフト）して第２演算手段３０８へ入力されている。このことにより、第２の一時記憶手段３１０からの出力３０４には乗算結果の虚部ｚｎＩ　＝　ａＲ・ＷｎＩ　＋　ａＩ・ＷｎＲが得られる。
【０１１８】
これらの乗算結果ｚｎＲ、ｚｎＩを用いて高速フーリエ変換が実現される。
【０１１９】
本実施形態の高速フーリエ変換装置によれば、図７の従来例に比べて乗算器７０６〜７０９を省略できるので、回路規模を削減できる。しかも、第１記憶手段（第１ＬＵＴ）３０５および第２記憶手段（第２ＬＵＴ）３０６の記憶容量は、第２実施形態のものに比して、さらに半分で済む。
【０１２０】
（第４実施形態の高速フーリエ変換装置）
図４は、オフセットバイナリＤＡ法を、回転因子表を用いた乗算に適用した第４実施形態の高速フーリエ変換装置の要部、つまり、バタフライ演算によって得られた入力データと回転因子表に含まれた回転因子との乗算を行う回路の構成を示している。本実施形態で用いる回転因子表は、第３実施形態における第１ＬＵＴ３０５と第２ＬＵＴ３０６とを一つに統合したものに相当する。
【０１２１】
この高速フーリエ変換装置は、２ビットの入力データが入力される実部入力端子４０１および虚部入力端子４０２と、その入力データの実部ビット値と虚部ビット値との間の排他的論理和を求めるＸＯＲ回路４１２と、ｎの値に応じて所定の記憶データを１対出力する記憶手段（０ＬＵＴ）４０５と、その記憶手段４０５の１対の出力値を入れ替えて出力し得る第３演算手段４１１と、第１演算手段（加減算器１）４０７および第２演算手段（加減算器２）４０８と、第１の一時記憶手段（レジスタ１）４０９および第２の一時記憶手段（レジスタ２）４１０とを備えている。
【０１２２】
実部入力端子４０１と虚部入力端子４０２とからは入力データａの実部ａＲと虚部ａＩがそれぞれ最下位ビットからビットシリアルに入力されてくる。ＸＯＲ回路４１２は、それらのａＲとａＩとの間の排他的論理和ａＲ○ａＩを求める。
【０１２３】
記憶手段（０ＬＵＴ）４０５は、ｎ＝０からｎ＝Ｎ／８までの各ｎごとに、Ｑｎ＋＝（ＷｎＲ　＋ＷｎＩ）／２の値とＱｎ＋＝（ＷｎＲ　＋　ＷｎＩ）／２の値とを対応付けて１対記憶している。この記憶手段４０５からは、入力データａＲとａＩには関係なく、ｎの値に応じてＱｎ＋＝（ＷｎＲ＋　ＷｎＩ）／２とＱｎ−＝（ＷｎＲ　−　ＷｎＩ）／２の１対の値が読み出される。ＬＵＴ４０５については、図９（ｂ）にデータ構造と記憶値を模式的に示す。
【０１２４】
第３演算手段４０６は、記憶手段４０５から読み出された一対の値Ｑｎ＋とＱｎ−を受けて、入力データの排他的論理和ａＲ○ａＩの値に応じて、それらの値Ｑｎ＋とＱｎ−を入れ替えて又は入れ替えずにそのまま第１出力値、第２出力値として第１演算手段４０７、第２演算手段４０８へ出力する。すなわち、ａＲ○ａＩ＝０ならば、Ｑｎ−を第１演算手段４０７へ第１出力値として出力するとともに、Ｑｎ＋を第２演算手段４０８へ第２出力値として出力する。また、ａＲ○ａＩ＝１ならば、Ｑｎ＋を第１演算手段４０７へ第１出力値として出力するとともに、Ｑｎ−を第２演算手段４０８へ第２出力値として出力する。
【０１２５】
第１演算手段４０７は、符号判定ビットａＲの値に応じて、ａＲ＝０ならば第３演算手段４０６から受けた値を第１の一時記憶手段４０９の値から減算し、ａＲ＝１ならば第３演算手段４０６から受けた値を第１の一時記憶手段４０９の値に加算する。第１演算手段４０７の結果は第１の一時記憶手段４０９へ入力される。また、第１の一時記憶手段４０９からの出力は１ビットだけ下位ビット側へシフト（右シフト）して第１演算手段４０７へ入力されている。このことにより、第１の一時記憶手段４０９からの出力４０３には乗算結果の実部ｚｎＲ　＝　ａＲ・ＷｎＲ　−　ａＩ・ＷｎＩが得られる。
【０１２６】
第２演算手段４０８は、符号判定ビットａＩの値に応じて、ａＩ＝０ならば第３演算手段４０６から受けた値を第２の一時記憶手段４１０の値から減算し、ａＩ＝１ならば第３演算手段４０６から受けた値を第２の一時記憶手段４１０の値に加算する。第２演算手段４０８の結果は第２の一時記憶手段４１０へ入力される。また、第２の一時記憶手段４１０からの出力は１ビットだけ下位ビット側へシフト（右シフト）して第２演算手段４０８へ入力されている。このことにより、第２の一時記憶手段４１０からの出力４０４には乗算結果の虚部ｚｎＩ　＝　ａＲ・ＷｎＩ　＋　ａＩ・ＷｎＲが得られる。
【０１２７】
これらの乗算結果ｚｎＲ、ｚｎＩを用いて高速フーリエ変換が実現される。
【０１２８】
本実施形態の高速フーリエ変換装置によれば、図７の従来例に比べて乗算器７０６〜７０９を省略できるので、回路規模を削減できる。しかも、記憶手段（０ＬＵＴ）のアドレスデコーダを、第３実施形態のように入力データの実部ビット値と虚部ビット値に対応して第１ＬＵＴ、第２ＬＵＴから読み出された値を入れ替える場合に比して、半減できる。また、消費電力も低減できる。
【０１２９】
このように、本発明の回転因子表によれば、Ｎ点ＤＦＴ／ＩＤＦＴを実行するためにはＮ／８＋１組のデータを記憶しておくだけで済む。したがって、高速フーリエ変換装置の回路規模を削減できる。
【０１３０】
なお、本実施形態では基数２のＦＦＴについて説明を行ったが、当然ながら、これに限られるものではない。Ｎ／８が４２０の倍数ならば、ｎが０からＮ／８までの区間のＣｎとＳｎの組で回転因子を表すことができ、したがって、本発明は、基数４のＦＦＴや基数８のＦＦＴに広く適用することができる。
【０１３１】
【発明の効果】
以上より明らかなように、本発明の回転因子表によれば、高速フーリエ変換装置の回路規模を削減できる。
【０１３２】
また、本発明の高速フーリエ変換装置によれば、そのような回転因子表を用いて、回路規模を削減できる。
【図面の簡単な説明】
【図１】本発明の第１実施形態の高速フーリエ変換装置の要部、つまり、バタフライ演算によって得られた入力データと回転因子表に含まれた回転因子との乗算を行う回路の構成を示す図である。
【図２】本発明の第２実施形態の高速フーリエ変換装置の要部を示す図である。
【図３】本発明の第３実施形態の高速フーリエ変換装置の要部を示す図である。
【図４】本発明の第３実施形態の高速フーリエ変換装置の要部を示す図である。
【図５】一般的な８点離散フーリエ変換装置の周波数間引き演算を行う回路の構成を示す図である。
【図６】高速フーリエ変換のための回転因子の周期性を示す図である。
【図７】従来の高速フーリエ変換装置における、バタフライ演算によって得られた入力データと回転因子表に含まれた回転因子との乗算を行う回路の構成を示す図である。
【図８】（ａ）は、表５と表６の回転因子表を具体化したものに相当し、図１中に示したＬＵＴ１０５とＬＵＴ１０６のデータ構造と記憶値とを模式化して示す図である。（ｂ）は、表５と表６の回転因子表を具体化したものに相当し、図２中に示したＬＵＴ２０５とＬＵＴ２０６のデータ構造と記憶値とを模式化して示す図である。
【図９】（ａ）は、図３中に示したＬＵＴ３０５とＬＵＴ３０６のデータ構造と記憶値とを模式化して示す図である。（ｂ）は、図４中に示したＬＵＴ４０５のデータ構造と記憶値とを模式化して示す図である。
【符号の説明】
１０５，２０５，３０５　第１の記憶手段（ＬＵＴ）
１０６，２０６，３０６　第２の記憶手段（ＬＵＴ）
１０７，２０７，３０７，４０７　第１の演算手段
１０８，２０８，３０８，４０８　第２の演算手段
２１２，３１２，４１２　ＸＯＲ回路
３１１，４０６　第３の演算手段
４０５　記憶手段
【図１】
2004013811.tif 000040
【図２】
2004013811.tif 000041
【図３】
2004013811.tif 000042
【図４】
2004013811.tif 000043
【図５】
2004013811.tif 000044
【図６】
2004013811.tif 000045
【図７】
2004013811.tif 000046
【図８】
2004013811.tif 000047
【図９】
2004013811.tif 000048