(57)【特許請求の範囲】
【請求項１】
入力データ要素の系列を順次処理して出力データ要素の系列に変換する変換装置であって、該変換装置は、
変換器入力部と変換器出力部を有し、所定のアルゴリズムに従って、入力データ要素を処理して出力データ要素を生成する少なくとも２個の変換器と、
前記各変換器に対応して設けられた第１記憶レジスタであって、該レジスタの各入力部は各対応する変換器の変換器出力部の一部に直接接続し、前記各第１記憶レジスタは少なくとも１つのレジスタ出力部を有する第１記憶レジスタと、
前記各変換器に対応して設けられた、第１マルチプレクサおよび第２マルチプレクサであって、前記各マルチプレクサの第１入力部は同一の変換器に対応する前記変換器出力部の残りの部分に接続され、前記各マルチプレクサの第２入力部は、同一の変換器に対応する前記第１記憶レジスタの前記少なくとも１つのレジスタ出力部に接続するように構成した第１および第２マルチプレクサと、
前記各変換器に対応して設けられた第２記憶レジスタであって、該第２記憶レジスタの入力部は同一の変換器に対応する前記第１マルチプレクサの出力部に接続するように構成した第２記憶レジスタと、
前記入力データ要素の系列と前記出力データ要素の系列とを格納する記憶手段であって、前記入力データ要素の系列を前記記憶手段の所定の位置から読み出し、前記読み出した入力データ要素の系列を異なる２つのグループのデータ要素に分割し、この分割した各データ要素を前記少なくとも２個の変換器のうち異なる１個の変換器の変換器入力部にそれぞれ供給するための記憶手段と、
前記少なくとも２個の変換器のそれぞれに対応する前記第２マルチプレクサおよび前記第２記憶レジスタの出力部に接続された入力部を備え、単一クロックサイクルの間に、前記少なくとも２個の変換器のそれぞれに対応する前記第２マルチプレクサおよび前記第２記憶レジスタの出力部から出力されるデータ要素からなる前記出力データ要素の系列を、前記記憶手段の前記入力データ要素の系列が読み出された位置に書き込む手段と
を備えたことを特徴とする装置。
【請求項２】
前記各変換器出力データ要素は、２つのグループに均等に分割され、一方のグループを前記変換器に対応して設けられた前記第１および第２マルチプレクサが受信し、他方のグループを前記第１記憶レジスタが受信するように構成したことを特徴とする、請求項１に記載の装置。
【請求項３】
前記変換器がビタビアルゴリズムに従ったバタフライ演算を行うことを特徴とする、請求項１または請求項２に記載の装置。
【請求項４】
前記変換器がフーリエ変換アルゴリズムに従ったバタフライ演算を行うことを特徴とする請求項１または請求項２に記載の装置。
【請求項５】
入力データ要素の系列を出力データ要素の系列に変換する変換方法であって、
記憶部から入力データ要素の系列を読み込むステップと、
前記読み込まれた入力データ要素の系列を２つのデータ要素のグループに分割するステップと、
前記入力データ要素のグループの各々を第１および第２の２つのサブグループに分割するステップと、
前記各第１および第２サブグループを、所定のアルゴリズムに従って変換部により変換して、変換後の第１サブグループおよび第２サブグループを生成するステップと、
前記変換後の第１サブグループを第１及び第２マルチプレクサの２つのマルチプレクサに並列に送信し、前記変換後の第２のサブグループを第１記憶レジスタに送信し、この第１記憶レジスタの出力を、前記２つのマルチプレクサに並列に送信するステップと、
前記第１のマルチプレクサ出力を、第２記憶レジスタに送信するステップと、
共通のクロックサイクルの間に、前記第２マルチプレクサおよび前記第２の記憶レジスタの前記出力を前記出力データ要素の系列として読み出すステップと、
前記出力データ要素の系列を、更なる入力データ要素の系列が読み出される前記記憶部内の記憶場所に書き込むステップであって、この記憶場所への書き込みおよび更なるデータ要素の系列の読み出しが、単一のクロックサイクルの間に実行される書き込みステップと
を備えることを特徴とする変換方法。
【請求項６】
入力データ要素の系列を出力データ要素の系列に変換する変換方法であって、
記憶部から入力データ要素の系列を読み出し、この入力データ要素の系列を第１グループと第２グループとに分割するステップと、
前記第１および第２の各グループを、それぞれ第１サブグループと第２サブグループとに分割するステップと、
前記各第１および第２サブグループを、所定のアルゴリズムに従って変換部により変換して、変換後の第１および第２サブグループを生成するステップと、
記憶部から他の入力データ要素の系列を読み出し、この入力データ要素の系列を第３グループと第４グループとに分割するステップと、
前記第３および第４の各グループを、それぞれ第３サブグループと第４サブグループとに分割するステップと、
前記各第３および第４サブグループを、所定のアルゴリズムに従って変換部により変換して、変換後の第３および第４サブグループを生成するステップと、
前記各変換後の第１サブグループを、異なる２つの第１マルチプレクサを経て異なる２つの第２記憶レジスタに格納し、前記各変換後の第２サブグループを異なる２つの第１記憶レジスタに送信し、格納するステップと、
単一クロックサイクルの間に、前記各変換後の第１サブグループを前記各第２記憶レジスタから出力し、前記各変換後の第２サブグループを前記各第１記憶レジスタから出力し前記第１マルチプレクサを経て前記各第２記憶レジスタに格納し、前記各変換後の第３サブグループを、異なる２つの第２マルチプレクサを経て出力し、前記各変換後の第４サブグループを前記各第１記憶レジスタに格納することにより、前記変換後の第１サブグループと前記変換後の前記第３サブグループとから構成される出力データ要素の系列を出力するステップと、
前記各変換後の第２サブグループを前記各第２記憶レジスタから出力し、前記各変換後の第４サブグループを前記各第１記憶レジスタから前記各第２マルチプレクサを経て出力することにより、前記変換後の第２サブグループと前記変換後の第４サブグループとから構成される他の出力データ要素の系列を出力するステップと、
前記出力した出力データ要素の系列を、前記記憶部の入力データ要素の系列が読み出された位置に格納するステップと、
前記出力した他の出力データ要素の系列を、前記記憶部の他の入力データ要素の系列が読み出された位置に格納するステップと
を備え、
前記各出力データ要素の系列の格納を、更なる入力データ要素の系列の読み出しと単一のクロックサイクルの間に実行する
ことを特徴とする変換方法。
【発明の詳細な説明】
本発明は、入力データ要素の系列及び出力データ要素の系列を収容する記憶手段を有し、第１の個数の入力データ要素の系列を第１の個数の出力データ要素の系列に変換し、第２の個数の入力データ要素を第２の個数の出力データ要素に変換する変換器を更に有する装置に関する。
このような装置は、文献：Lawrence R.Rabine、Bernard Gold共著の“Theory and application of digital signal processing”の第１０章第１０節に記載されている。デジタル信号処理の場合、離散フーリエ変換（ＤＦＴ）は重要な役割を果たす。離散フーリエ変換を用いることにより、信号の時間域における表現が同じ信号の周波数域における表現に変換され得る。周波数域における表現は、時間域では非常に複雑な形式によらなければ実現できないような後続の特定の信号処理演算がかなり簡単な形式で実現できる点で有利である。
離散フーリエ変換の実行は非常に多数の算術プロセスを必要とするので、長年に亘って、離散フーリエ変換を高速かつ効率的に計算できる装置が設計されている。屡々、これらの装置は、離散フーリエ変換のために必要な特定のサブプロセスを高速に実行することができる多数の「バタフライ」装置を具備している。このバタフライにおいて、多数の入力データ要素は加算及び乗算を行って同数の出力データ要素に変換される。この乗算は乗算係数を用いて行われる。乗算係数は、トゥイドル（twiddle）係数ＷNkのように称される場合もある。
上記文献に記載された装置は、ＲＡＭメモリと、バタフライと、入れ替えネットワークとを具備する。ＲＡＭメモリは、各メモリワードがデータ要素の系列を格納するように実現され、系列内のデータ要素の数はバタフライによって変換できるデータ要素の数に等しい、例えば、従来の装置において、基数４のバタフライ、すなわち、４個の入力データ要素を４個の出力データ要素に変換できるバタフライが利用される場合、ＲＡＭメモリは、各メモリワードが４個のデータ要素の系列を収容できるように構成される。
ＲＡＭメモリから、すべての必要な入力データ要素の系列がメモリワードを読み取ることによってバタフライに供給される。バタフライでは、これらの入力データ要素が出力データ要素に変換される。この目的のために必要な乗算係数は、ＲＯＭメモリから読み出される。次に、入れ替えネットワークにおいて、これらの出力データ要素と、バタフライにより計算された他の出力データ要素は、多数の出力データ要素の系列の全体に配分される。これらの出力データ要素の系列は、最終的にＲＡＭメモリに書き込まれ、後段で入力データ要素の系列として使用され得る。ＢがＮよりも小さい場合に、バタフライの出力データ要素がそのバタフライの入力データ要素として異なる順序で供給される基数Ｂのバタフライを繰り返し実行することにより、Ｎ点離散フーリエ変換が計算される。このようにして、例えば、３２点離散フーリエ変換が基数４のバタフライを用いて計算される。
しかし、従来の装置は、かなり多数の部品により構成され、これにより、上記従来の装置はかなり複雑で高価になる。
本発明の目的は、比較的簡単、かつ、安価である冒頭に記載したタイプの装置を提供することである。
上記目的を達成するため、本発明による装置は、少なくとも１台の更なる変換器が設けられ、上記変換器及び上記更なる変換器は、互いに並列になるよう配置され、上記第１の個数は上記第２の個数よりも多数であることを特徴とする。ＡがＢよりも小さい数であるとき、単一の基数Ｂの変換器を使用する代わりに、複数台の並列に配置された基数Ａの変換器を使用することにより、より簡単かつ安価な装置が実現される。これは、バタフライの複雑さ及びコストがバタフライの基数と共に指数関数的に増大することに起因している。例えば、基数４のバタフライの複雑さ及びコストは、２台の基数２のバタフライの複雑さ及びコストを上回る。また、単一の基数Ｂの変換器の代わりに複数台の並列の基数Ａの変換器が使用される場合、より簡単な構造の入れ替えネットワークが使用できるようになる。
本発明による装置の一実施例は、記憶手段が単一のクロックサイクル中に入力データ要素の系列を読み出し、出力データ要素の系列を書き込むように実現されていることを特徴とする。Ｎ点離散フーリエ変換の計算中に、入力データ要素の系列は記憶手段から頻繁に読み出され、出力データ要素の系列は記憶手段に頻繁に書き込まれる必要がある。一般的に、読み出し動作又は書き込み動作毎に１クロックサイクルを必要とする。例えば、記憶手段にいわゆるリード・モディファイ・ライト機能を設けることによって、単一のクロックサイクル中に入力データ要素の系列の読み出しと、出力データ要素の系列の書き込みとが共に行えるように記憶手段を実現することにより、記憶手段へのアクセスが加速される。これにより、装置の消費エネルギーが減少するという付加的な利点が得られる。
本発明による装置の更なる一実施例は、バタフライに必要とされる乗算係数ができるだけ長い期間に亘って一定に保たれるように、入力データ要素の系列が出力データ要素の系列に変換される順序が選択されることを特徴とする。これらの乗算係数がメモリに記憶されている場合、この手段を用いることによって、装置がメモリからこの乗算係数を読み出す回数は最低限に抑えることができる。一方、乗算係数を装置によって計算しなければならない場合、この手段を用いることによって、装置がこの乗算係数を計算しなければならない回数は最低限に抑えられる。何れの場合でも、装置によって消費されるエネルギーは削減され、装置が入力データ要素を出力データ要素に変換する速度が増大する。
本発明による装置の他の実施例は、装置が少なくとも１台のビタビ・バタフライを有することを特徴とする。離散フーリエ変換が計算される方式は、いわゆるビタビ復号化アルゴリズムが計算される方式と多数の類似点を有する。少なくとも１台のビタビ・バタフライを使用することにより、本発明による装置はビタビ復号器を実現するために好適に使用され得る。
本発明による装置の更に別の実施例は、必要な入力データ要素の系列の読み取り後に出力データ要素の系列の書き込みができるだけ多量に行われるように、入力データ要素の系列が出力データ要素の系列に変換される順序が選択されることを特徴とする。単一クロックサイクル中に入力データ要素の読み出し及び出力データ要素の書き込みができるだけ多量に行われるように入力データ要素の系列が出力データ要素の系列に変換される順序を選択することにより、記憶手段がアクセスされるべき回数は最低限に抑えられる。また、この手段は、装置によるエネルギー消費を削減し、装置が入力データ要素を出力データ要素に変換する速度を増加させる。
本発明の上記の面及び他の面は、以下の実施例の説明を参照して明瞭にされ、解明される。
図面中、
図１は、本発明による装置の一例のブロック図であり、
図２は、本発明による装置で使用される入れ替えネットワークのブロック図であり、
図３は、本発明による装置の動作を説明するため使用される３２点離散フーリエ変換のデータフロー図であり、
図４及び５は、本発明による装置の動作を説明するため使用される多数の図表である。
図１に示された装置は、入力データ要素の系列を出力データ要素の系列に変換するため好適に使用され得る。この目的のため、この装置は、例えば、ＲＡＭメモリとして実現できるような記憶手段１１０を含み、記憶手段には、入力データ要素及び出力データ要素の系列が保存され得る。本例の場合、記憶手段１１０は、４個のデータ要素を含む８個の系列により構成される。装置は、互いに並列的に拡張するよう配置された２台の変換器１１２及び１１４が更に有し、各変換器は２個の入力データ要素を２個の出力データ要素に変換することができる。記憶手段１１０から読み出された４個の入力データの系列は、装置によって、２個の入力データ要素を含む２組のグループに分割される。これらの入力データ要素のグループは、次に、変換器１１２及び１１４において、２個の出力データ要素を含む２組のグループ１１３及び１１５に同時に変換される。これらの出力データ要素は、記憶手段１１０から読み出された４個の入力データ要素の次の系列が、上記方式と同じ方式で装置によって、２個の出力データ要素を含む新しい２組のグループ１１３及び１１５に変換されるまで、入れ替えネットワーク１１６に保存される。入れ替えネットワーク１１６において、上記の最新の出力データ要素及び予め保存された出力データ要素は、出力データ要素の系列が入力データ要素の系列として引き続いて使用できるような形で、４個のデータ要素を含む２系列に分割される。入れ替えネットワークで編成された出力データ要素の系列は最終的に記憶手段１１０に書き込まれる。
図示された装置を用いることにより、多数の入力データ要素が高速かつ効率的に処理され、ここで、入力データ要素のグループを出力データ要素のグループに繰り返し変換することが必要である。このような処理動作は、いわゆるデータフローグラフを用いることによって表現することができる。一例として、図３には、２個の入力データ要素のグループが２個の出力データ要素のグループに変換されるデータフローグラフが示され、入力データ要素と出力データ要素は同じ参照番号で示されている。図示されたデータフローグラフは多数の連続したステージに分割される。最初に、ステージ０が実行され、次に、ステージ１が実行され、以下同様にステージ４が実行去れるまで続く。各ステージで、データフローグラフは、２個の入力データ要素を含むグループと、そのグループから変換された２個の出力データ要素を含むグループとの対応関係を示す。例えば、ステージ０において、入力データ要素０及び１は出力データ要素０及び１に変換され、入力データ要素２及び３は出力データ要素２及び３に変換され、以下同様である。１ステージ内の上記の変換の相対的な順序は重要ではない。各ステージで生成された出力データ要素は次のステージの入力データ要素として使用される。例えば、ステージ０で生成された出力データ要素０及び２は、ステージ１において入力データ要素として、出力データ要素０及び２に変換される。
このようなデータフローグラフは、離散フーリエ変換アルゴリズム、又は、ビタビ復号化アルゴリズムを記述するため使用できることが知られている。図３に示されたデータフローグラフは、３２点、基数２の離散フーリエ変換アルゴリズムとして解釈することができ、入力データ要素はビットが逆順にされ、出力データ要素は正順にされる。このアルゴリズムが図１に示された装置で実現されるべき場合には、変換器１１２及び１１４は、基数２のフーリエ変換バタフライを含む必要がある。これらのバタフライは、時間域デシメーション形（ＤＩＴ）、又は、周波数域デシメーション形（ＤＩＦ）の何れのタイプでもよい。基数２の時間域デシメーション形バタフライの場合に、２個の入力データ要素Ａ及びＢは２個の出力データ要素Ｘ及びＹに変換され、
Ｘ＝Ａ＋Ｂ・ＷNk
及び
Ｙ＝Ａ−Ｂ・ＷNk
が成り立つ。基数２の周波数域デシメーション形バタフライの場合、入力データ要素と出力データ要素の関係は、
Ｘ＝Ａ＋Ｂ
及び
Ｙ＝（Ａ−Ｂ）・ＷNk
によって表される。これらの２タイプのフーリエ変換バタフライの間の別の相違点は、時間域デシメーション形バタフライの場合に、周波数域デシメーション形バタフライとは別の乗算係数ＷNkが必要な点である。以下の説明では、時間域デシメーション形バタフライを使用する場合を考える。このバタフライに必要な乗算係数は、装置により計算してもよく、或いは、例えば、ＲＡＭメモリから読み出してもよい。図１に示された装置がビタビ復号化アルゴリズムを実施するため使用される場合、変換器１１２及び１１４は、基数２のビタビバタフライを含む必要がある。これらのビタビバタフライは、加算・比較・選択ユニットとも称される。本発明による装置は、他の基数、並びに、他の変換器の数を使用しても構わない。例えば、４台の基数２の変換器が基数２のアルゴリズムを実施するため使用され得る。或いは、基数４のアルゴリズムを実施するため、基数４の変換器を本発明による装置に適用してもよい。
装置が上記のいずれかのアルゴリズムを実行できるようになる前に、記憶手段１１０は、何らかの方法で必要な初期入力データ要素で埋められている必要があることがわかる。アルゴリズムが実行されたとき、その結果は記憶手段１１０から出力データ要素の形式で読み出され得る。
上記のアルゴリズムの中の一つのアルゴリズムが装置によって実行されたとき、入力データ要素の系列は記憶手段１１０から頻繁に読み出される必要があり、出力データ要素の系列は記憶手段１１０に頻繁に書き込まれなければならない。一般的に、このため、１回の読み出し動作又は書き込み動作毎に１クロックサイクルを要する。単一のクロックサイクル中に入力データ要素の系列を読み出し、かつ、出力データ要素の系列を書き込めるように記憶手段１１０を構成することによって、記憶手段１１０へのアクセスは加速される。これにより、装置の電力消費量が低減する利点が得られる。
図２に示された入れ替えネットワーク１１６は、本発明による装置に有利的に使用され得る。この入れ替えネットワーク１１６は、４個の入力１１３．１、１１３．２、１１５．１及び１１５．２が設けられている。２個のデータ要素を含む第１のグループは、入力１１３．１及び１１３．２を介して入れ替えネットワーク１１６に供給され得る。同様に、２個のデータ要素を含む第２のグループは、入力１１５１．及び１１５．２を介して供給され得る。２個のデータ要素を含む第１及び第２のグループは、一体的に４個のデータ要素を含む第１の系列を構成する。入れ替えネットワーク１１６は、４個のデータ要素を含む第２の系列を供給する４個の出力１１７．１乃至１１７．４を更に有する。入れ替えネットワーク１１６は、４個のレジスタ１２０、１２２、１３２及び１３４と、４個のマルチプレクサ１２４、１２６、１２８及び１３０とを更に含む。
入れ替えネットワーク１１６は、入力１１３．１、１１３．２、１１５．１及び１１５．２に連続して供給された４個のデータ要素を含む２組の第１の系列を、４個のデータ要素を含む２組の第２の系列に変換することができる。４個のデータ要素の第１の系列Ａ−Ｂ−Ｃ−Ｄが入力１１３．１、１１３．２、１１５．１及び１１５．２に供給されたとき、すなわち、データ要素Ａが入力１１３．１に供給され、データ要素Ｂが入力１１３．２に供給され、データ要素Ｃが入力１１５．１に供給され、データ要素Ｄが入力１１５．２に供給されたとき、データ要素Ａ及びＣは、それぞれのマルチプレクサ１２４及び１２８を介して、対応したレジスタ１３２及び１３４に保存され、データ要素Ｂ及びＤは、対応したレジスタ１２０及び１２２に保存される。次に、データ要素の第１の系列Ｅ−Ｆ−Ｇ−Ｈが入力１１３．１、１１３．２、１１５．１及び１１５．２に供給され、最初に、レジスタ１３２及び１３４に保存されたデータ要素Ａ及びＣがそれぞれの出力１１７．１及び１１７．２を介して送出され、入力１１３．１及び１１５．１に供給されたデータ要素Ｅ及びＧが対応したマルチプレクサ１２６及び１３０並びに対応した出力１１７．３及び１１７．４を介して送出される。次の段で、レジスタ１２０及び１２２に保存されているデータ要素Ｂ及びＤがそれぞれのマルチプレクサ１２４及び１２８を介して対応したレジスタ１３２及び１３４に保存される。次に、入力１１３．２及び１１５．２を介して供給されたデータ要素Ｆ及びＨはそれぞれのレジスタ１２０及び１２２に保存される。最後に、レジスタ１３２及び１３４に保存されたデータ要素Ｂ及びＤがそれぞれの出力１１７．１及び１１７．２を介して送出され、レジスタ１２０及び１２２に保存されたデータ要素Ｆ及びＨは、それぞれのマルチプレクサ１２６及び１３０、並びに、対応した出力１１７．３及び１１７．４を介して外部に供給される。このようにして、データ要素の第１の系列Ａ−Ｂ−Ｃ−Ｄと、データ要素の第１の系列Ｅ−Ｆ−Ｇ−Ｈの２組の第１の系列は、入れ替えネットワーク１１６により、データ要素の第２の系列Ａ−Ｃ−Ｅ−Ｇと、データ要素の第２の系列Ｂ−Ｄ−Ｆ−Ｈの２組の第２の系列に変換される。
本発明による装置の動作を図４及び５に示された図表を参照して詳細に説明する。これらの図表は、図１に示された装置が図３に示されたように３２点の基数２の離散フーリエ変換アルゴリズムを実行する間の異なる時点での記憶手段１１０の内容を表現する。図表の枠外部の右側の数字は、データ要素の系列が記憶手段１１０から読み出される順序を示す。図表の枠外部の右側の両方向矢印は、矢印の先端で指定されたデータ要素の系列が入れ換えられるべきことを示す。
図４には、図１に示された装置が３２点の基数２の離散フーリエ変換を実行する異なる時点での記憶手段１１０の内容が示され、入力データ要素の系列が出力データ要素の系列に変換されるシーケンスは、バタフライで必要とされる乗算係数ができるだけ長い期間に亘って一定に保たれるように選択されている。
図表１５０は、記憶手段１１０の初期内容を表現する。図表１６０、１７０、１８０、１９０及び２００は、それぞれ、アルゴリズムのステージ０、１、２、３及び４の後における記憶手段１１０の内容を表現する。ステージ４の後で、アルゴリズムは完全に実行されている。図表２００に示されるように、所望の結果が記憶手段１１０に格納される。
図表１５０に示されるように、ステージ０で、装置は、最初に、記憶手段１１０から入力データ要素の系列０−１−２−３を読み出し、２個の入力データ要素の２組のグループ０−１及び２−３に分割する。これらの２個の入力データ要素を含む２組のグループは、次に、基数２の離散フーリエ変換バタフライ１１２及び１１４において、２個の出力データ要素を含む２組のグループ０−１及び２−３に変換され、その後、これらの出力データ要素は、入れ替えネットワーク１１６に保存される。続いて、装置は、記憶手段１１０から入力データ要素の系列４−５−６−７を読み出し、２個の入力データ要素を含む２組のグループ４−５及び６−７に分割し、この２組のグループは、基数２の離散フーリエ変換バタフライ１１２及び１１４において、２個の出力データ要素を含む２組のグループ４−５及び６−７に変換される。入れ替えネットワーク１１６において、これらの出力データ要素及び既に入れ換えネットワークに保存されている出力データ要素は、４個の出力データ要素を含む２組の系列０−２−４−６及び１−３−５−７に変換される。４個の出力データ要素の１番目の系列０−２−４−６は、この時点でメモリに書き込まれるべきである。記憶手段１１０は、単一のクロックサイクル中に４個の入力データ要素の系列を読み出し、４個の出力データ要素の系列を書き込み得るので、４個の出力データ要素の１番目の系列０−２−４−６の書き込みと、４個の入力データ要素の３番目の系列８−９−１０−１１の読み出しとを組み合わせることが可能である。図表１６０を参照すると、４個の出力データ要素の１番目の系列０−２−４−７が記憶手段１１０に書き込まれる場所は、図表１５０において入力データ要素の３番目の系列８−９−１０−１１が読み出される場所であることがわかる。
本明細書の説明中、バタフライ１１２及び１１４におけるデータ要素の変換は、単一のクロックサイクル内で行える場合を考えていることに注意する必要がある。この変換に１クロックサイクルよりも長い時間が必要である場合、出力データ要素の１番目の系列０−２−４−６の書き込みは、入力データ要素の別の系列の読み出しと組み合わせる必要がある。例えば、変換が２クロックサイクルを要する場合、系列０−２−４−６の書き込みは、入力データ要素の４番目の系列１２−１３−１４−１５の読み出しと組み合わせることができる。
出力データ要素の１番目の系列０−２−４−６の書き込みと組み合わされた入力データ要素の３番目の系列８−９−１０−１１の読み出しの後、入力データ要素の４番目の系列１２−１３−１４−１５の読み出しは、出力データ要素の２番目の系列１−３−５−７の書き込みと組み合わされ得る。このプロセスは、上記の方式に従って、図表１５０に示されたシーケンス内の出力データ要素の８個の系列全部に対して続けられる。入力データ要素の全ての系列は既に読み出されているので、出力データ要素の７番目の系列２４−２６−２８−３０及び８番目の系列２５−２７−２９−３１の書き込みは、入力データ要素の系列の読み出しと組み合わせなくても構わない。
図表１６０及び１７０に示されているように、ステージ１において、出力データ要素の１番目の系列０−４−８−１２及び２番目の系列２−６−１０−１４の書き込みは、入力データ要素の３番目の系列１６−１８−２０−２２及び４番目の系列２４−２６−２８−３０の読み出しと組み合わされる。しかし、ステージ１とは異なり、ステージ１において、入力データ要素の３番目の系列及び４番目の系列と対応した出力データ要素の３番目の系列１６−２０−２４−２８及び４番目の系列１８−２２−２６−３０は、入力データ要素の５番目の系列及び６番目の系列の読み出しと組み合わされない。出力データ要素の３番目の系列及び４番目の系列は、入力データ要素の１番目の系列及び２番目の系列が読み出された場所に書き込まれる。同様に、ステージ１において、出力データ要素の５番目の系列１−５−９−１３及び６番目の系列３−７−１１−１５の書き込みは、入力データ要素の７番目の系列１７−１９−２１−２３及び８番目の系列２５−２７−２９−３１の読み出しと組み合わされる。出力データ要素の７番目の系列１７−２１−２５−２９及び８番目の系列１９−２３−２７−３１は、入力データ要素の５番目の系列及び６番目の系列が読み出された場所に書き込まれる。
図表１７０及び１８０に示されるように、ステージ２において、入力データ要素の系列の読み出しは、出力データ要素の書き込みと組み合わされない。出力データ要素の全ての系列は、対応した入力データ要素の系列が読み出された場所に書き込まれる。
図表１８０及び１９０では、ステージ３がステージ０と同様に処理されることが示されている。但し、ステージ３は、出力データ要素の７番目の系列及び８番目の系列の書き込みが入力データ要素の系列と組み合わされない点でステージ０と相違する。
最後に、ステージ４は、ステージ１と同じように処理される。出力データ要素の３番目の系列及び４番目の系列は、入力データ要素の１番目の系列及び２番目の系列が読み出された場所に書き込まれる。同様に、出力データ要素の７番目の系列及び８番目の系列は、入力データ要素の５番目の系列及び６番目の系列が読み出された場所に書き込まれる。
図４に示された動作のシーケンスは、バタフライに必要とされる乗算係数ができるだけ長い期間に亘って一定に保たれる点が有利である。その結果として、これらの乗算係数がメモリから読み出されるべき回数、或いは、計算されるべき回数は最低限に抑えられる。着目している乗算係数ＷNkは以下の式で与えられる。
0004248027.tif 000002
ここで、Ｎは離散フーリエ変換処理が関係する点の数を表し（本例では、Ｎは３２である）、ｊは√（−１）を表し、ｋはパラメータを表し、このパラメータｋは図４を参照して以下に説明する。ステージ０の場合に必要な乗算係数は、入力データ要素のすべての系列に対し、ｋ＝０によって与えられる。ステージ１に必要な乗算係数は、入力データ要素の最初の４個の系列に対して、ｋ＝０によって与えられ、入力データ要素の最後の４個の系列に対しては、ｋ＝８によって与えられる。ステージ２の場合に、入力データ要素の１番目及び２番目の系列に対する乗算係数は、ｋ＝０によって与えられ、３番目及び４番目の系列に対する乗算係数は、ｋ＝４によって与えられ、５番目及び６番目の系列に対する乗算係数は、ｋ＝８によって与えられ、７番目及び８番目の系列に対する乗算係数は、ｋ＝１２によって与えられる。ステージ３の場合に、入力データ要素の１番目の系列に対する乗算係数は、ｋ＝０によって与えられ、２番目の系列に対しては、ｋ＝２によって与えられ、３番目の系列に対しては、ｋ＝４によって与えられ、４番目の系列に対しては、ｋ＝６によって与えられ、５番目の系列に対しては、ｋ＝８によって与えられ、６番目の系列に対しては、ｋ＝１０によって与えられ、７番目の系列に対しては、ｋ＝１２によって与えられ、８番目の系列に対しては、ｋ＝１４によって与えられる。ステージ０からステージ３において、二つのバタフライ１１２及び１１４に対する乗算係数は常に相互に一致する。しかし、ステージ４の場合、両方の乗算係数は一致しなくなる。ステージ４の場合、入力データ要素の１番目の系列に対する乗算係数は、ｋ＝０とｋ＝１とにより与えられ、第２の系列に対し、ｋ＝２とｋ＝３とにより与えられ、３番目の系列に対し、ｋ＝４とｋ＝５とにより与えられ、４番目の系列に対し、ｋ＝６とｋ＝７とにより与えられ、５番目の系列に対し、ｋ＝８とｋ＝９とにより与えられ、６番目の系列に対し、ｋ＝１０とｋ＝１１とにより与えられ、７番目の系列に対し、ｋ＝１２とｋ＝１３とにより与えられ、８番目の系列に対し、ｋ＝１４とｋ＝１５とにより与えられる。
図５には、図１に示された装置が３２点の基数２の離散フーリエ変換を実行する異なる時点での記憶手段１１０の内容が示され、入力データ要素の系列が出力データ要素の系列に変換されるシーケンスは、図４の場合とは異なるように選択されている。
図５において、図表２１０は、記憶手段１１０の初期内容を表現する。図表２２０、２３０、２５０、２７０及び２８０は、それぞれ、アルゴリズムのステージ０、１、２、３及び４の後における記憶手段１１０の内容を表現する。図表２４０及び２６０は、それぞれ、ステージ２及びステージ３の開始前の記憶手段１１０の内容を表す。アルゴリズムが実行された後、結果は、図表２９０に示されるように記憶手段１１０に格納される。
図表２１０及び２２０に示されるように、ステージ０で、装置が出力データ要素の系列を書き込む場所は、入力データ要素の系列が読み出された場所に対応する。例えば、出力データ要素の系列０−２−４−６及び１−３−５−７は、対応した入力データ要素の系列０−１−２−３及び４−５−６−７が読み出された場所に書き込まれる。
ステージ１（図表２２０及び２３０を参照のこと）において、出力データ要素の１番目及び２番目の系列の書き込みは、入力データ要素の３番目及び４番目の系列の読み出しと組み合わされる。同様に、出力データ要素の５番目及び６番目の系列の書き込みは、入力データ要素の７番目及び８番目の系列の読み出しと組み合わされる。しかし、出力データ要素の３番目及び４番目の系列は、入力データ要素の１番目及び２番目の系列が読み出された場所に書き込まれる。同様に、出力データ要素の７番目及び８番目の系列は、入力データ要素の５番目及び６番目の系列が読み出された場所に書き込まれる。
ステージ１で獲得され出力データ要素を、図表２３０に示されているような方式で入れ替えることにより、ステージ２で、読み出し及び書き込みがなされるべきデータ要素の系列のアドレスを比較的容易に判定できるようになる。入れ替えの結果は図表２４０に示されている。
ステージ２において（図表２４０及び２５０を参照のこと）、出力データ要素の１番目及び２番目の系列の書き込みは、入力データ要素の５番目及び６番目の系列の読み出しと組み合わされ、出力データ要素の６番目及び６番目の系列の書き込みは、入力データ要素の７番目及び８番目の系列の読み出しと組み合わされる。出力データ要素の７番目及び８番目の系列は、入力データ要素の１番目及び２番目の系列が読み出された場所に書き込まれる。ステージ２の場合でも、データ要素の２個の系列が上記の理由と同じ理由のため入れ替えられる。その結果は図表２６０に示されている。
ステージ３（図表２６０及び２７０を参照のこと）において、ステージ０と同じように、出力データ要素の系列は、対応した入力データ要素の系列が読み出された場所に書き込まれる。
ステージ４（図表２７０及び２８０を参照のこと）において、データ要素の系列は、ステージ１と同じ形で読み出され、書き込まれる。ステージ４の場合でも、データ要素の２個の系列の多数回の相互入れ替えが行われる。その結果は図表２９０に示されている。
以下の表には、種々のステージで図４及び５に示された方法を実現するため必要とされるメモリ動作の回数が概略的に表されている。この表において、データ要素の系列の読み出し、データ要素の系列の書き込み、並びに、データ要素の系列の読み出し及び書き込みの組合せは、何れも単一のメモリ動作であると考えられる。データ要素の２個の系列の入れ替えは、読み出し動作、読み出し／書き込みの組合せ動作、及び、書き込み動作を用いて行われる。したがって、このような入れ替えは３回のメモリ動作を含む。
0004248027.tif 000003
この表は、図４に示された方法のアプリケーションの方が図５に示された方法のアプリケーションよりも殆どのステージでメモリ動作の回数が少なくなることを表している。ステージ２の場合に限り、反対の結果が当てはまる。各ステージ毎にメモリ動作の回数が最小の回数になる方法を選択することにより、装置によるエネルギー消費が削減され、装置が入力データ要素を出力データ要素に変換する速度が高められる。
【図１】
0004248027.tif 000004
【図２】
0004248027.tif 000005
【図３】
0004248027.tif 000006
【図４】
0004248027.tif 000007
【図５】
0004248027.tif 000008