(57)【要約】  第１の順序で入力した複数のデータを第２の順序に並べ替えるデータ並べ替え処理部（２００）を備えるデジタルフィルタ装置において、データ並べ替え処理部（２００）は、少なくとも記憶手段を備え、データ並べ替え処理部（２００）は、第１または第２のアドレス順序に従って記憶手段にデータの書き込みを行い、データ並べ替え処理部（２００）は、第１のアドレス順序に従って記憶手段に書き込みを行ったデータを、第２のアドレス順序に従って記憶手段から読み出しを行い、第２のアドレス順序に従って記憶手段に書き込みを行ったデータを、前記第１のアドレス順序に従って記憶手段から読み出しを行うことでデータ並べ替え処理を行う。これにより、高速フーリエ変換を用いたデジタル信号処理を実現する回路の回路規模や消費電力が小さいデジタルフィルタ装置を提供する。
2020195239.tif 000002
【特許請求の範囲】
【請求項１】
第１の順序で入力した複数のデータを第２の順序に並べ替えるデータ並べ替え処理手段を備えるデジタルフィルタ装置において、
前記データ並べ替え処理手段は、少なくとも記憶手段を備え、
前記データ並べ替え処理手段は、第１または第２のアドレス順序に従って前記記憶手段にデータの書き込みを行い、
前記データ並べ替え処理手段は、前記第１のアドレス順序に従って前記記憶手段に書き込みを行ったデータを、前記第２のアドレス順序に従って前記記憶手段から読み出しを行い、前記第２のアドレス順序に従って前記記憶手段に書き込みを行ったデータを、前記第１のアドレス順序に従って前記記憶手段から読み出しを行うことでデータ並べ替え処理を行う、
ことを特徴とするデジタルフィルタ装置。
【請求項２】
前記データ並べ替え処理手段は、連続して処理を行う第１及び第２のデータ並べ替え処理において、
前記第１のデータ並べ替え処理において、前記第１のアドレス順序に従って前記記憶手段に書き込みを行ったデータを、前記第２のアドレス順序に従って前記記憶手段から読み出しを行った場合は、前記第２のデータ並べ替え処理において、前記第２のアドレス順序に従って前記記憶手段に書き込みを行ったデータを、前記第１のアドレス順序に従って前記記憶手段から読み出しを行い、
前記第１のデータ並べ替え処理において、前記第２のアドレス順序に従って前記記憶手段に書き込みを行ったデータを、前記第１のアドレス順序に従って前記記憶手段から読み出しを行った場合は、前記第２のデータ並べ替え処理において、前記第１のアドレス順序に従って前記記憶手段に書き込みを行ったデータを、前記第２のアドレス順序に従って前記記憶手段から読み出しを行う、
ことを特徴とする請求項１に記載のデジタルフィルタ装置。
【請求項３】
前記記憶手段は複数の記憶回路を含み、
前記第１のアドレス順序は、前記複数の記憶回路のそれぞれに対して、常に異なるアドレスを指定するアドレス順序であり、
前記第２のアドレス順序は、前記複数の記憶回路のそれぞれに対して、常に同じアドレスを指定するアドレス順序である、
ことを特徴とする請求項１または請求項２に記載のデジタルフィルタ装置。
【請求項４】
データの並べ替えを行う第１のデータ並べ替え処理手段と、
前記第１のデータ並べ替え処理手段で並べ替えられたデータに対してバタフライ演算を行う第１のバタフライ演算処理手段と、
前記第１のバタフライ演算処理手段で処理されたデータを並び替える第２のデータ並べ替え処理手段と、
前記第２のデータ並べ替え処理手段で並び替えられたデータに対してひねり乗算を行うひねり乗算処理手段と、
前記ひねり乗算処理手段で処理されたデータに対してバタフライ演算を行う第２のバタフライ演算処理手段と、
前記第２のバタフライ演算処理手段で処理されたデータを並び替える第３のデータ並べ替え処理手段と、を備える
ことを特徴とする、請求項１〜３のいずれか一項に記載のデジタルフィルタ装置。
【請求項５】
前記第１のデータ並べ替え処理手段と、前記第１のバタフライ演算処理手段と、前記第２のデータ並べ替え処理手段と、前記ひねり乗算処理手段と、前記第２のバタフライ演算処理手段と、前記第３のデータ並べ替え処理手段の処理を、パイプライン処理により実行する
ことを特徴とする、請求項４に記載のデジタルフィルタ装置。
【請求項６】
第１の順序で入力した複数のデータを第２の順序に並べ替えるデータ並べ替え処理手段を備えるデジタルフィルタ装置の動作方法であって、
前記データ並べ替え処理手段は、少なくとも記憶手段を備え、
前記データ並べ替え処理手段は、第１または第２のアドレス順序に従って前記記憶手段にデータの書き込みを行い、
前記データ並べ替え処理手段は、前記第１のアドレス順序に従って前記記憶手段に書き込みを行ったデータを、前記第２のアドレス順序に従って前記記憶手段から読み出しを行い、前記第２のアドレス順序に従って前記記憶手段に書き込みを行ったデータを、前記第１のアドレス順序に従って前記記憶手段から読み出しを行うことでデータ並べ替え処理を行う、
ことを特徴とするデジタルフィルタ装置の動作方法。
【請求項７】
第１の順序で入力した複数のデータを第２の順序に並べ替えるデータ並べ替え処理手段を備えるデジタルフィルタ装置を動作させるプログラムを格納した非一時的なコンピュータ可読媒体であって、
前記データ並べ替え処理手段は、少なくとも記憶手段を備え、
前記データ並べ替え処理手段は、第１または第２のアドレス順序に従って前記記憶手段にデータの書き込みを行い、
前記データ並べ替え処理手段は、前記第１のアドレス順序に従って前記記憶手段に書き込みを行ったデータを、前記第２のアドレス順序に従って前記記憶手段から読み出しを行い、前記第２のアドレス順序に従って前記記憶手段に書き込みを行ったデータを、前記第１のアドレス順序に従って前記記憶手段から読み出しを行うことでデータ並べ替え処理を行う、
ことを特徴とするプログラムを格納した非一時的なコンピュータ可読媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、特に高速フーリエ変換を行うためのデジタル信号処理を実行する、デジタルフィルタ装置、デジタルフィルタ装置の動作方法及びプログラムに関する。
【背景技術】
【０００２】
デジタル信号処理において重要な処理の１つとして、高速フーリエ変換（Fast Fourier Transform。以降、「ＦＦＴ」という。）処理がある。例えば、無線通信や有線通信における信号伝送中の波形歪みを補償する技術として、周波数領域等化（Frequency domain equalization（ＦＤＥ））技術が知られている。周波数領域等化では、まず高速フーリエ変換により時間領域上の信号データが周波数領域上のデータに変換され、次に等化のためのフィルタ処理が行われる。そして、フィルタ処理後のデータは、逆高速フーリエ変換（Inverse ＦＦＴ。以降、「ＩＦＦＴ」という。）により時間領域上の信号データに再変換されることによって、元の時間領域上の信号の波形歪みが補償される。以降、ＦＦＴとＩＦＦＴを区別しないときは、「ＦＦＴ／ＩＦＦＴ」と表記する。【０００３】
一般に、ＦＦＴ／ＩＦＦＴ処理では、「バタフライ演算」が用いられる。バタフライ演算を用いたＦＦＴ装置については、例えば特許文献１に記載がある。特許文献１には、後述の「ひねり乗算」、すなわち、ひねり係数を用いた乗算についても記載されている。【０００４】
効率的なＦＦＴ／ＩＦＦＴ処理方式としては、例えば非特許文献１に記載されたCooley-Tukeyによるバタフライ演算が有名である。しかし、ポイント数の大きいCooley-TukeyによるＦＦＴ／ＩＦＦＴは回路が複雑になる。そのため、例えば非特許文献２に記載されたPrime Factor法を用いて２つの小さなＦＦＴ／ＩＦＦＴに分解して、ＦＦＴ／ＩＦＦＴ処理が行われる。【０００５】
図６は、例えばPrime Factor法を利用して２段階の基数８のバタフライ処理に分解された、６４ポイントＦＦＴのデータフロー５００を示す。データフロー５００は、データ並べ替え処理５０１、バタフライ演算処理５０２、５０３からなる延べ１６回の基数８のバタフライ演算処理、ひねり乗算処理５０４を含む。【０００６】
図６のデータフローでは、入力された時間領域のデータｘ(n)（n＝0，1，・・・ ，63）が、ＦＦＴ処理により、周波数領域の信号Ｘ(k)（k＝0，1，・・・，63）にフーリエ変換される。図６では、一部のデータフローの図示は省略されている。なお、図６のデータフローは、ＩＦＦＴ処理を行う場合についても、基本構成は同じである。【０００７】
図６のデータフローのすべてを回路で実現するためには、膨大な規模の回路を要する。そのため、必要な処理性能に応じて、データフローの一部分の処理を実現する回路を繰り返し使用することで、ＦＦＴ処理の全体を実現する方法が一般的である。【０００８】
例えば、図６のデータフローにおいて、８個のデータに対して並列に（以降、単に「８データ並列で」という。）ＦＦＴ処理を行うＦＦＴ装置を物理的な回路として作成した場合、合計８回の繰り返し処理により６４ポイントＦＦＴ処理を実現することができる。【０００９】
８回の繰り返し処理は、８個のデータに対して行われる部分データフロー５０５ａ〜５０５ｈの、それぞれにあたる処理が順に行われるものであり、具体的には、次のように行われる。すなわち、１回目には、部分データフロー５０５ａにあたる処理が、２回目には、部分データフロー５０５ｂにあたる処理が、３回目には、部分データフロー５０５ｃ（図示せず）にあたる処理が行われる。以降同様に、８回目の部分データフロー５０５ｈにあたる処理までが順に行われる。以上の処理により、６４ポイントＦＦＴ処理が実現される。【００１０】
バタフライ演算では、逐次的な順序に並べられたデータが、所定の規則に従った順序で読み出され、処理される。そのため、バタフライ演算では、データの並べ替えが必要であり、その回路実現には主にＲＡＭ（Random Access Memory）回路が用いられる。バタフライ演算においてＲＡＭ回路を用いたデータの並べ替えを行うＦＦＴ装置については、例えば特許文献２に記載がある。また、メモリ使用量を削減したＦＦＴ演算装置については、バタフライ演算の並列処理による高速化技術が、例えば特許文献３に記載されている。
【先行技術文献】
【特許文献】
【００１１】
【特許文献１】特開平８−１３７８３２号公報
【特許文献２】特開２００１−５６８０６号公報
【特許文献３】特開２０１２−２２５００号公報
【非特許文献】
【００１２】
【非特許文献１】J.W.Cooley, J.W.Tukey, "An Algorithm for the Machine Calculation of Complex Fourier Series," Mathematics of Computation, US,American Mathematical Society, Apr. 1965, Vol.19, No. 90, pp. 297-301
【非特許文献２】D.P.Kolba, "A Prime Factor FFT Algorithm Using High-Speed Convolution," IEEE Trans. on Acoustics, US, IEEE Signal Processing Society, Aug. 1977, Vol.29, No.4 , pp. 281-294
【発明の概要】
【００１３】
バタフライ演算において必要なデータの並べ替え処理には、具体的には、「逐次順序」から、「ビットリバース順序」への並べ替えや、その逆の「ビットリバース順序」から「逐次順序」への並べ替えがある。
【００１４】
ここで、「逐次順序」と「ビットリバース順序」について、具体的に説明する。６４個のデータに対する「逐次順序」を図７に示す。「逐次順序」とは、図７において、８つのデータ組Ｐ１、Ｐ２、Ｐ３、Ｐ４、Ｐ５、Ｐ６、Ｐ７、Ｐ８の順序をいう。データ組Ｐs（ｓは処理サイクルの順を示す値である。s＝1，・・・，8）は、それぞれ、ｐs(0)からｐs(7)まで、順に並んだ８個のデータからなり、ｐs(i)は、
ｐs(i)＝8（s−1）＋i
である。そして、各データ組は、処理のサイクルの進行に対応して、Ｐ１、Ｐ２、Ｐ３、Ｐ４、Ｐ５、Ｐ６、Ｐ７、Ｐ８の順に並べられている。つまり、逐次順序とは、i×s個のデータを、先頭のデータからｉ個ずつデータ順に並べてデータ組をｓ個作成し、そのデータ組をサイクル順に並べたものである。
【００１５】
一方、「ビットリバース順序」とは、図８に示された、８つのデータ組Ｑ１、Ｑ２、Ｑ３、Ｑ４、Ｑ５、Ｑ６、Ｑ７、Ｑ８の順序をいう。データ組Ｑｓは、それぞれ、ｑs(0)からｑs(7)までの８個のデータからなり、ｑs(i)は、
ｑs(i)＝（s−1）＋8i
である。そして、各データ組は、処理のサイクルの進行に対応して、Ｑ１、Ｑ２、Ｑ３、Ｑ４、Ｑ５、Ｑ６、Ｑ７、Ｑ８の順に並べられている。つまり、ビットリバース順序とは、逐次順序で入力されたi×s個のデータを、先頭のデータからｓ個ずつサイクル順に並べ、同じサイクルのｉ個のデータを１つの組としてデータ順に並べたものである。
【００１６】
以上のように、ビットリバース順序の各データ組は、逐次順序の各組が設定されれば一意に定まる。ビットリバース順序の各データ組Ｑs（s＝1，・・・，8）を構成するデータのｉデータ目は、逐次順序に従ったサイクルｉにおける、ｓデータ目のデータである。すなわち、
Ｑs(i)＝Ｐi(s)
である。このように、Ｑs(i)とＰi(s)とは、各データ組を構成するデータについての、サイクルの進行に対する順序とデータ位置に対する順序とが入れ替えられた関係にある。従って、ビットリバース順序で入力されたデータを、ビットリバース順序に従って並べ替えると、逐次順序になる。
【００１７】
図７、図８に示すように、逐次順序からビットリバース順序への並べ替え、及び、逐ビットリバース順序から次順序への並べ替えにおいて、あるサイクルで出力する複数のデータのそれぞれは、互いに異なるサイクルで入力したデータである。例えば、８並列で並べ替え処理する場合、例えば、１サイクル目に出力するデータ組Ｑ１を構成する８個のデータは、異なる８サイクルのそれぞれのサイクルに入力したデータである。すなわち、データ並べ替え処理は、ＦＦＴのポイント数分のデータがすべて入力された後でないと処理を開始できない。従って、データ並べ替え処理には、少なくともＦＦＴのポイント数分のデータを記憶するための記憶容量を必要とする。
【００１８】
さらに、連続して入力される信号のＦＦＴ処理を行う場合、データ並べ替え処理を行っている間にも、新たなデータが連続して入力されることになる。この状況に対処する方式として、ダブルバッファリング方式が知られている。ダブルバッファリング方式では、処理に必要な記憶容量に加えて、処理を行っている間に入力されるデータを記憶するのに必要な記憶容量を準備し、処理を行っている間に入力されるデータをも記憶しておく。実行中の処理が完了したのち、処理中に入力され記憶したデータを対象に次の処理を開始する。
【００１９】
従って、連続して入力される信号のＦＦＴ処理を行う場合、ダブルバッファリング方式によれば、データ並べ替え処理に少なくともＦＦＴのポイント数分の２倍のデータを記憶するための記憶容量を必要とする。その結果、ＦＦＴ処理のポイント数が大きくなると、データ並べ替え処理を実現する回路の回路規模や消費電力が大きくなってしまうという問題がある。
【００２０】
本開示の目的は、高速フーリエ変換を用いたデジタル信号処理を実現する回路の回路規模や消費電力が小さいデジタルフィルタ装置を提供することである。
【００２１】
一実施の形態に係るデジタルフィルタ装置は、第１の順序で入力した複数のデータを第２の順序に並べ替えるデータ並べ替え処理部を備えるデジタルフィルタ装置において、
前記データ並べ替え処理部は、少なくとも記憶手段を備え、
前記データ並べ替え処理部は、第１または第２のアドレス順序に従って前記記憶手段にデータの書き込みを行い、
前記データ並べ替え処理部は、前記第１のアドレス順序に従って前記記憶手段に書き込みを行ったデータは、前記第２のアドレス順序に従って前記記憶手段から読み出しを行い、前記第２のアドレス順序に従って前記記憶手段に書き込みを行ったデータは、前記第１のアドレス順序に従って前記記憶手段から読み出しを行うことでデータ並べ替え処理を行う。
【００２２】
また、一実施の形態に係るデジタルフィルタ装置の動作方法は、第１の順序で入力した複数のデータを第２の順序に並べ替えるデータ並べ替え処理部を備えるデジタルフィルタ装置の動作方法であって、前記データ並べ替え処理部は、少なくとも記憶手段を備え、前記データ並べ替え処理部は、第１または第２のアドレス順序に従って前記記憶手段にデータの書き込みを行い、前記データ並べ替え処理部は、前記第１のアドレス順序に従って前記記憶手段に書き込みを行ったデータは、前記第２のアドレス順序に従って前記記憶手段から読み出しを行い、前記第２のアドレス順序に従って前記記憶手段に書き込みを行ったデータは、前記第１のアドレス順序に従って前記記憶手段から読み出しを行うことでデータ並べ替え処理を行う。
【００２３】
また、一実施の形態に係るデジタルフィルタ装置のプログラムは、第１の順序で入力した複数のデータを第２の順序に並べ替えるデータ並べ替え処理部を備えるデジタルフィルタ装置の動作方法であって、前記データ並べ替え処理部は、少なくとも記憶手段を備え、前記データ並べ替え処理部は、第１または第２のアドレス順序に従って前記記憶手段にデータの書き込みを行い、前記データ並べ替え処理部は、前記第１のアドレス順序に従って前記記憶手段に書き込みを行ったデータは、前記第２のアドレス順序に従って前記記憶手段から読み出しを行い、前記第２のアドレス順序に従って前記記憶手段に書き込みを行ったデータは、前記第１のアドレス順序に従って前記記憶手段から読み出しを行うことでデータ並べ替え処理を行う。
【００２４】
一実施の形態によれば、高速フーリエ変換を用いたデジタル信号処理を実現する回路の回路規模や消費電力が小さいデジタルフィルタ装置を提供することができる。
【図面の簡単な説明】
【００２５】
【図１】本発明の第１の実施形態に係るＦＦＴ装置１０の構成を示すブロック図である。
【図２】本発明の第１の実施形態に係るデータ並べ替え処理部２００の構成を示すブロック図である。
【図３】本発明の第１の実施形態に係るデータ並べ替え処理部の動作を示すタイムチャートである。
【図４】発明の第１の実施形態に係るＲＡＭ回路２１０ａ〜２１０ｈの状態を示す図である。
【図５】発明の第１の実施形態に係るＲＡＭ回路２１０ａ〜２１０ｈの状態を示す図である。
【図６】２段階のバタフライ演算を用いる６４ポイントＦＦＴ処理のデータフロー５００を示す図である。
【図７】ＦＦＴ処理における逐次順序に従うデータ組の配列を示す図である。
【図８】ＦＦＴ処理におけるビットリバース順序に従うデータ組の配列を示す図である。
【発明を実施するための形態】
【００２６】
図１は、本発明の第１の実施形態に係るＦＦＴ装置１０の構成例を示すブロック図である。ＦＦＴ装置１０は、図６に示されたデータフロー５００に従って、２段階の基数８のバタフライ処理に分解された６４ポイントＦＦＴを、パイプライン回路方式によって処理する。ＦＦＴ装置１０は、時間領域のデータｘ(n)（n＝0，1，・・・ ，N-1）を入力し、ｘ(n)をＦＦＴ処理によりフーリエ変換して周波数領域の信号Ｘ(k)（k＝0，1，・・・，N-1）を生成し、出力する。ここで、ＮはＦＦＴブロックサイズを表す正整数である。
【００２７】
ＦＦＴ装置１０は、８データ並列で６４ポイントＦＦＴ処理を行うものとする。この場合、ＦＦＴ装置１０は、時間領域のデータｘ(n)を入力し、ＦＦＴ処理によりフーリエ変換した周波数領域の信号Ｘ(k)を生成して出力する。このとき、入力データｘ(n) として、８データずつ、８サイクルの期間に、図７に示す順序で、合計で６４個のデータが入力される。なお、ここでは、図７の表の内容として示された、0から63までの数字は、ｘ(n)の添え字nを意味する。
【００２８】
具体的には、１サイクル目に、データ組Ｐ１を構成するｘ(0)，ｘ(1)，・・・，ｘ(7)の８データが入力される。そして、２サイクル目に、データ組Ｐ２を構成するｘ(8)，ｘ(9)，・・・，ｘ(15)の８データが入力される。以降同様に、３サイクル目から８サイクル目まで、データ組Ｐ３〜Ｐ８を構成するデータが入力される。
【００２９】
同様に、出力データＸ(k)として、８データずつ、８サイクルの期間に、図７に示す順序で、６４個のデータが出力される。なお、ここでは、図７の表の内容として示された、0から63までの数字は、Ｘ(k)の添え字kを意味する。
【００３０】
具体的には、１サイクル目に、データ組Ｐ１を構成するＸ(0)，Ｘ(1)，・・・，Ｘ(7)の８データが出力される。２サイクル目に、データ組Ｐ２を構成するＸ(8)，Ｘ(9)，・・・，Ｘ(15)の８データが出力される。以降同様に、３サイクル目から８サイクル目まで、データ組Ｐ３〜Ｐ８を構成するデータが出力される。
【００３１】
ＦＦＴ装置１０は、第１のデータ並べ替え処理部１１、第１のバタフライ演算処理部２１、第２のデータ並べ替え処理部１２、ひねり乗算処理部３１、第２のバタフライ演算処理部２２、第３のデータ並べ替え処理部１３、を備える。ＦＦＴ装置１０は、第１のデータ並べ替え処理、第１のバタフライ演算処理、第２のデータ並べ替え処理、ひねり乗算処理、第２のバタフライ演算処理、第３のデータ並べ替え処理を、パイプライン処理する。
【００３２】
第１のデータ並べ替え処理部１１、第２のデータ並べ替え処理部１２は、データ並べ替えのためのバッファ回路である。第１のデータ並べ替え処理部１１、第２のデータ並べ替え処理部１２は、それぞれ、第１のバタフライ演算処理部２１の前と後で、ＦＦＴ処理のアルゴリズム上のデータの依存関係に基づいた、データシーケンスの並べ替えを行う。
【００３３】
第３のデータ並べ替え処理部１３も、同様に、データ並べ替えのためのバッファ回路である。すなわち、第３のデータ並べ替え処理部１３は、第２のバタフライ演算処理部２２の後で、ＦＦＴ処理のアルゴリズム上のデータの依存関係に基づいた、データシーケンスの並べ替えを行う。
【００３４】
具体的には、第１のデータ並べ替え処理部１１は、入力データｘ(n)の入力順序である図７に示す「逐次順序」を、第１のバタフライ演算処理部２１に入力する順序である図８に示す「ビットリバース順序」に並べ替える。
【００３５】
図８に示すビットリバース順序は、図８に示したデータフロー図における、１段目の基数８のバタフライ処理５０２への入力データ組に対応する。具体的には、具体的には、１サイクル目に、データ組Ｐ１を構成するｘ(0)，ｘ(8)，・・・，ｘ(56)の８データを入力する。そして、２サイクル目に、データ組Ｐ２を構成するｘ(1)，ｘ(9)，・・・，ｘ(57)の８データを入力する。以降、３サイクル目から８サイクル目まで同様にして、データ組Ｐ３〜Ｐ８を構成するデータを入力する。
【００３６】
図７における各行ｐs(i)、及び図８における８つの行ｑs(i)は、それぞれ、次段のｉデータ目に入力されるデータを示す。各データ組に含まれる８個の数字は、ＦＦＴのポイントのうちの１個を特定する識別情報であり、具体的にはｘ(n)の添え字ｎの値である。
【００３７】
なお、逐次順序及びビットリバース順序は、図７、図８に例示されたものに限定されない。すなわち、逐次順序の各データ組は、上記のように、ＦＦＴのポイント数、サイクル数、並列に処理するデータ数に応じて、データを順に並べて作成すればよい。そして、ビットリバース順序の各データ組は、上記のように、逐次順序で入力されるデータの、サイクルの進行に対する順序とデータ位置に対する順序を入れ替えて作成すればよい。
【００３８】
第１のバタフライ演算処理部２１は、図６のデータフロー５００において２回行われる基数８のバタフライ演算処理の、１回目のバタフライ演算処理５０２（第１のバタフライ演算処理）を処理するバタフライ回路である。第１のバタフライ演算処理部２１は、バタフライ演算処理の結果を、データｙ(n)（n＝0，1，・・・ ，63）として、図７の逐次順序で出力する。
【００３９】
第２のデータ並べ替え処理部１２は、第１のバタフライ演算処理部２１が逐次順序で出力するデータｙ(n)を、第２のバタフライ演算処理部２２に入力するために、図８のビットリバース順序に並べ替える。
【００４０】
ひねり乗算処理部３１は、第１のバタフライ演算処理後に、ＦＦＴ演算における複素平面上の複素回転を処理する回路であり、図６のデータフロー５００における、ひねり乗算処理５０４に対応する。なお、ひねり乗算処理では、データの並へ替えは行われない。
【００４１】
第２のバタフライ演算処理部２２は、図６のデータフロー図における、２回目の基数８のバタフライ処理５０３を処理するバタフライ回路である。第２のバタフライ演算処理部２２は、ビットリバース順序で入力されるひねり乗算処理後のデータｙ'(n)（n＝0，1，・・・ ，63）に対してバタフライ演算処理を行い、その結果Ｘ(k)（n＝0，1，・・・ ，63）を、同じくビットリバース順序で出力する。
【００４２】
第３のデータ並べ替え処理部１３は、第２のバタフライ演算処理部２２がビットリバース順序で出力するデータＸ(k)を、図７の逐次順序に並べ替える。
【００４３】
データ並べ替え処理部は、入力されたデータを一旦記憶し、記憶したデータの選択及び出力を制御する。これにより、図７の逐次順序、図８のビットリバース順序のそれぞれに従ったデータの並べ替え処理が実現される。以下に、データ並べ替え処理部の具体例を示す。
【００４４】
第１のデータ並べ替え処理部１１、第２のデータ並べ替え処理部１２、及び第３のデータ並べ替え処理部１３は、例えば図２に示すデータ並べ替え処理部２００で実現することができる。
【００４５】
データ並べ替え処理部２００は、第１のデータ振り分け部２０２、８個のＲＡＭ回路２１０ａ、２１０ｂ、２１０ｃ、２１０ｄ、２１０ｅ、２１０ｆ、２１０ｇ、２１０ｈ、第２のデータ振り分け部２０３、書き込みアドレス制御部２１２、読み出しアドレス制御部２１３、から構成される。
【００４６】
第１のデータ振り分け部２０２は、８つの入力ｉｎ０〜ｉｎ７から８つのデータを同時に入力して、データの振り分け処理を行い、８つの出力２０５ａ〜２０５ｈへ出力する。
【００４７】
ＲＡＭ回路２１０ａ〜２１０ｈは、それぞれが８個のデータを記憶可能なＲＡＭ回路であり、従って、ＲＡＭ回路２１０ａ〜２１０ｈで合わせて６４ポイントＦＦＴのポイント数に等しい６４個のデータを記憶することができる。また、ＲＡＭ回路２１０ａ〜２１０ｈは、独立した書き込みポート及び読み出しボートを備える２ポートＲＡＭ回路であり、同じアドレスに対して同じタイミングで書き込みと読み出しが発生した場合、読み出しを優先する。すなわち、書き込み及び読み出しの対象のアドレスに記憶されているデータを読み出したのち、書き込み対象のデータの書き込みを行う。
【００４８】
ＲＡＭ回路２１０ａは、書き込みアドレス制御部２１２が書き込みアドレス２０７ａに出力するアドレスに、第１のデータ振り分け部２０２が２０５ａに出力したデータを記憶し、読み出しアドレス制御部２１３が読み出しアドレス２０８ａに出力するアドレスから、記憶したデータを読み出して２０６ａに出力する。
【００４９】
同様に、ＲＡＭ回路２１０ｂは、書き込みアドレス制御部２１２が書き込みアドレス２０７ｂに出力するアドレスに、第１のデータ振り分け部２０２が２０５ｂに出力したデータを記憶し、読み出しアドレス制御部２１３が読み出しアドレス２０８ｂに出力するアドレスから、記憶したデータを読み出して２０６ｂに出力する。
【００５０】
ＲＡＭ回路２１０ｃは、書き込みアドレス制御部２１２が書き込みアドレス２０７ｃに出力するアドレスに、第１のデータ振り分け部２０２が２０５ｃに出力したデータを記憶し、読み出しアドレス制御部２１３が読み出しアドレス２０８ｃに出力するアドレスから、記憶したデータを読み出して２０６ｃに出力する。
【００５１】
ＲＡＭ回路２１０ｄは、書き込みアドレス制御部２１２が書き込みアドレス２０７ｄに出力するアドレスに、第１のデータ振り分け部２０２が２０５ｄに出力したデータを記憶し、読み出しアドレス制御部２１３が読み出しアドレス２０８ｄに出力するアドレスから、記憶したデータを読み出して２０６ｄに出力する。
【００５２】
ＲＡＭ回路２１０ｅは、書き込みアドレス制御部２１２が書き込みアドレス２０７ｅに出力するアドレスに、第１のデータ振り分け部２０２が２０５ｅに出力したデータを記憶し、読み出しアドレス制御部２１３が読み出しアドレス２０８ｅに出力するアドレスから、記憶したデータを読み出して２０６ｅに出力する。
【００５３】
ＲＡＭ回路２１０ｆは、書き込みアドレス制御部２１２が書き込みアドレス２０７ｆに出力するアドレスに、第１のデータ振り分け部２０２が２０５ｆに出力したデータを記憶し、読み出しアドレス制御部２１３が読み出しアドレス２０８ｆに出力するアドレスから、記憶したデータを読み出して２０６ｆに出力する。
【００５４】
ＲＡＭ回路２１０ｇは、書き込みアドレス制御部２１２が書き込みアドレス２０７ｇに出力するアドレスに、第１のデータ振り分け部２０２が２０５ｇに出力したデータを記憶し、読み出しアドレス制御部２１３が読み出しアドレス２０８ｇに出力するアドレスから、記憶したデータを読み出して２０６ｇに出力する。
【００５５】
ＲＡＭ回路２１０ｈは、書き込みアドレス制御部２１２が書き込みアドレス２０７ｈに出力するアドレスに、第１のデータ振り分け部２０２が２０５ｈに出力したデータを記憶し、読み出しアドレス制御部２１３が読み出しアドレス２０８ｈに出力するアドレスから、記憶したデータを読み出して２０６ｈに出力する。
【００５６】
第２のデータ振り分け部２０３は、８つの入力２０６ａ〜２０６ｈから８つのデータを同時に入力して、データの振り分け処理を行い、８つの出力２０７ａ〜２０７ｈへ出力する。
【００５７】
書き込みアドレス制御部２１２は、入力する動作モード２０１を参照して、ＲＡＭ回路２１０ａ〜２１０ｈがデータを書き込むアドレスをそれぞれ２０７ａ〜２０７ｈに出力する。
【００５８】
読み出しアドレス制御部２１３は、入力する動作モード２０１を参照して、ＲＡＭ回路２１０ａ〜２１０ｈがデータを読み出すアドレスをそれぞれ２０８ａ〜２０８ｈに出力する。
【００５９】
次に、データ並べ替え処理部２００の具体的な動作を説明する。図３は、データ並べ替え処理部２００の動作の一例を示すタイムチャートである。
【００６０】
データ並べ替え処理部２００は、ｔ０〜ｔ７の８サイクルにおいて、入力ｉｎ０〜ｉｎ７から８並列で０ａ〜６３ａの６４個のデータを逐次順序で入力し、ｔ９〜ｔ１５の８サイクルにおいて、出力ｏｕｔ０〜ｏｕｔ７へ８並列で０ａ〜６３ａの６４個のデータをビットリバース順序で出力する。同様に、ｔ８〜ｔ１５の８サイクルにおいて、入力ｉｎ０〜ｉｎ７から８並列で０ｂ〜６３ｂの６４個のデータを逐次順序で入力し、ｔ１６〜ｔ２３の８サイクルにおいて、出力ｏｕｔ０〜ｏｕｔ７へ８並列で０ｂ〜６３ｂの６４個のデータをビットリバース順序で出力する。さらに、ｔ１６〜ｔ２３の８サイクルにおいて、入力ｉｎ０〜ｉｎ７から８並列で０ｃ〜６３ｃの６４個のデータを逐次順序で入力し、ｔ２４〜ｔ３１の８サイクルにおいて、出力ｏｕｔ０〜ｏｕｔ７へ８並列で０ｃ〜６３ｃの６４個のデータをビットリバース順序で出力する（図示せず）。
【００６１】
まず、ｔ０〜ｔ７の８サイクルにおけるデータ０ａ〜６３ａの入力動作について詳細に説明する。
【００６２】
第１のデータ振り分け部２０２は、サイクルｔ０において、
ｉｎ０から入力したデータ０ａを２０５ａに出力し、
ｉｎ１から入力したデータ１ａを２０５ｂに出力し、
ｉｎ２から入力したデータ２ａを２０５ｃに出力し、
ｉｎ３から入力したデータ３ａを２０５ｄに出力し、
ｉｎ４から入力したデータ４ａを２０５ｅに出力し、
ｉｎ５から入力したデータ５ａを２０５ｆに出力し、
ｉｎ６から入力したデータ６ａを２０５ｇに出力し、
ｉｎ７から入力したデータ７ａを２０５ｈに出力する。
【００６３】
サイクルｔ１において、
ｉｎ０から入力したデータ８ａを２０５ｂに出力し、
ｉｎ１から入力したデータ９ａを２０５ｃに出力し、
ｉｎ２から入力したデータ１０ａを２０５ｄに出力し、
ｉｎ３から入力したデータ１１ａを２０５ｅに出力し、
ｉｎ４から入力したデータ１２ａを２０５ｆに出力し、
ｉｎ５から入力したデータ１３ａを２０５ｇに出力し、
ｉｎ６から入力したデータ１４ａを２０５ｈに出力し、
ｉｎ７から入力したデータ１５ａを２０５ａに出力する。
【００６４】
サイクルｔ２において、
ｉｎ０から入力したデータ１６ａを２０５ｃに出力し、
ｉｎ１から入力したデータ１７ａを２０５ｄに出力し、
ｉｎ２から入力したデータ１８ａを２０５ｅに出力し、
ｉｎ３から入力したデータ１９ａを２０５ｆに出力し、
ｉｎ４から入力したデータ２０ａを２０５ｇに出力し、
ｉｎ５から入力したデータ２１ａを２０５ｈに出力し、
ｉｎ６から入力したデータ２２ａを２０５ａに出力し、
ｉｎ７から入力したデータ２３ａを２０５ｂに出力する。
【００６５】
サイクルｔ３において、
ｉｎ０から入力したデータ２４ａを２０５ｄに出力し、
ｉｎ１から入力したデータ２５ａを２０５ｅに出力し、
ｉｎ２から入力したデータ２６ａを２０５ｆに出力し、
ｉｎ３から入力したデータ２７ａを２０５ｇに出力し、
ｉｎ４から入力したデータ２８ａを２０５ｈに出力し、
ｉｎ５から入力したデータ２９ａを２０５ａに出力し、
ｉｎ６から入力したデータ３０ａを２０５ｂに出力し、
ｉｎ７から入力したデータ３１ａを２０５ｃに出力する。
【００６６】
サイクルｔ４において、
ｉｎ０から入力したデータ３２ａを２０５ｅに出力し、
ｉｎ１から入力したデータ３３ａを２０５ｆに出力し、
ｉｎ２から入力したデータ３４ａを２０５ｇに出力し、
ｉｎ３から入力したデータ３５ａを２０５ｈに出力し、
ｉｎ４から入力したデータ３６ａを２０５ａに出力し、
ｉｎ５から入力したデータ３７ａを２０５ｂに出力し、
ｉｎ６から入力したデータ３８ａを２０５ｃに出力し、
ｉｎ７から入力したデータ３９ａを２０５ｄに出力する。
【００６７】
サイクルｔ５において、
ｉｎ０から入力したデータ４０ａを２０５ｆに出力し、
ｉｎ１から入力したデータ４１ａを２０５ｇに出力し、
ｉｎ２から入力したデータ４２ａを２０５ｈに出力し、
ｉｎ３から入力したデータ４３ａを２０５ａに出力し、
ｉｎ４から入力したデータ４４ａを２０５ｂに出力し、
ｉｎ５から入力したデータ４５ａを２０５ｃに出力し、
ｉｎ６から入力したデータ４６ａを２０５ｄに出力し、
ｉｎ７から入力したデータ４７ａを２０５ｅに出力する。
【００６８】
サイクルｔ６において、
ｉｎ０から入力したデータ４８ａを２０５ｇに出力し、
ｉｎ１から入力したデータ４９ａを２０５ｈに出力し、
ｉｎ２から入力したデータ５０ａを２０５ａに出力し、
ｉｎ３から入力したデータ５１ａを２０５ｂに出力し、
ｉｎ４から入力したデータ５２ａを２０５ｃに出力し、
ｉｎ５から入力したデータ５３ａを２０５ｄに出力し、
ｉｎ６から入力したデータ５４ａを２０５ｅに出力し、
ｉｎ７から入力したデータ５５ａを２０５ｆに出力する。
【００６９】
サイクルｔ７において、
ｉｎ０から入力したデータ５６ａを２０５ｈに出力し、
ｉｎ１から入力したデータ５７ａを２０５ａに出力し、
ｉｎ２から入力したデータ５８ａを２０５ｂに出力し、
ｉｎ３から入力したデータ５９ａを２０５ｃに出力し、
ｉｎ４から入力したデータ６０ａを２０５ｄに出力し、
ｉｎ５から入力したデータ６１ａを２０５ｅに出力し、
ｉｎ６から入力したデータ６２ａを２０５ｆに出力し、
ｉｎ７から入力したデータ６３ａを２０５ｇに出力する。
【００７０】
以上、説明したように、第１のデータ振り分け部２０２は、並列して同時に入力する８つのデータに対してローテート処理して出力するものであり、例えばシフト回路で容易に実現することができる。
【００７１】
同様に、第１のデータ振り分け部２０２は、ｔ９〜ｔ１５のサイクルにおいて、データ０ｂ〜６３ｂに対して振り分け動作を行い、ｔ１６〜ｔ２３のサイクルにおいて、データ０ｃ〜６３ｃに対して振り分け動作を行う。
【００７２】
次に、書き込みアドレス制御部２１２、読み出しアドレス制御部２１３、及びそれらに制御されるＲＡＭ回路２１０ａ〜２１０ｈの書き込み及び読み出し動作を説明する。
【００７３】
書き込みアドレス制御部２１２、及び読み出しアドレス制御部２１３は、入力する動作モード２１０を参照して動作を行う。ここで動作モード２１０は、ＣＰＵなど上位の制御回路（図示せず）から与えられる制御信号であり、第１または第２の動作モードのいずれかを示す。動作モード２１０は、６４ポイントＦＦＴのポイント数分のデータを入力する連続する８サイクルでは同一の動作モードを示し、８サイクルごとに異なる動作モードを示す。具体的には、図３において、動作モード２１０は、データ０ａ〜６３ａが入力されるｔ０〜ｔ７の８サイクルでは、第１の動作モードである動作モード０を示す。データ０ｂ〜６３ｂが入力されるｔ８〜ｔ１５の８サイクルでは、第２の動作モードである動作モード１を示す。データ０ｃ〜６３ｃが入力されるｔ１６〜ｔ２３の８サイクルでは、再び第１の動作モードである動作モード０を示す。以降、同様にして、動作モード２１０は、８サイクルごとに動作モード０または動作モード１を交互に示す信号である。
【００７４】
書き込みアドレス制御部２１２は、入力する動作モード２１０が、第１の動作モードである動作モード０の場合は、第１のアドレス順序に従って、書き込みアドレスを生成する。入力する動作モード２１０が、第２の動作モードである動作モード１の場合は、第２のアドレス順序に従って、書き込みアドレスを生成する。第１のアドレス順序は、ＲＡＭ回路２１０ａ〜２１０ｈのそれぞれのＲＡＭ回路に対して、常に異なるアドレスを指定することを特徴とするアドレス順序である。すなわち、第１の動作モードでは、２０７ａ〜２０７ｈのそれぞれには、常に異なるアドレスが出力される。一方、第２のアドレス順序は、ＲＡＭ回路２１０ａ〜２１０ｈのそれぞれのＲＡＭ回路に対して、常に同じアドレスを指定することを特徴とするアドレス順序である。すなわち、第２の動作モードでは、２０７ａ〜２０７ｈのそれぞれには、常に同じアドレスが出力される。
【００７５】
読み出しアドレス制御部２１３も、書き込みアドレス制御部２１２と同様の動作を行う。すなわち、読み出しアドレス制御部２１３は、入力する動作モード２１０が、第１の動作モードである動作モード０の場合は、第１のアドレス順序に従って、書き込みアドレスを生成する。入力する動作モード２１０が、第２の動作モードである動作モード１の場合は、第２のアドレス順序に従って、書き込みアドレスを生成する。
【００７６】
図３を参照して、書き込みアドレス制御部２１２、読み出しアドレス制御部２１３、及びＲＡＭ回路２１０ａ〜２１０ｈの書き込み及び読み出し動作の具体例を説明する。
【００７７】
まず、ｔ０〜ｔ７の８サイクルでは、データ０ａ〜６３ａがＲＡＭ回路２１０ａ〜２１０ｈに書き込まれる。ｔ８〜ｔ１５の８サイクルでは、ＲＡＭ回路２１０ａ〜２１０ｈに書き込まれたデータ０ａ〜６３ａが読み出されるとともに、データ０ｂ〜６３ｂがＲＡＭ回路２１０ａ〜２１０ｈに書き込まれる。ｔ１６〜ｔ２３の８サイクルでは、ＲＡＭ回路２１０ａ〜２１０ｈに書き込まれたデータ０ｂ〜６３ｂが読み出されるとともに、データ０ｃ〜６３ｃがＲＡＭ回路２１０ａ〜２１０ｈに書き込まれる。なお、ｔ０〜ｔ７の８サイクルにおいても、ｔ０〜ｔ７の以前の８サイクルに書き込まれたデータの読み出し動作が行われるが、図示を省略している。
【００７８】
また、図３から明らかのようにＲＡＭ回路２１０ａ〜２１０ｈの書き込みと読み出しは、同じサイクルでは常に同じアドレスに対して行われる。ＲＡＭ回路２１０ａ〜２１０ｈは、同じアドレスに対して同じタイミングで書き込みと読み出しが発生した場合、読み出しを優先するＲＡＭ回路である。そのため、ＲＡＭ回路２１０ａ〜２１０ｈでは、ｔ８〜ｔ１５のそれぞれのサイクルにおいて、データ０ａ〜６３ａが読み出されたのち、データ０ｂ〜６３ｂが書き込まれることになる。同様に、ｔ１６〜ｔ２３のそれぞれのサイクルにおいて、データ０ｂ〜６３ｂが読み出されたのち、データ０ｃ〜６３ｃが書き込まれることになる。
【００７９】
次に、ｔ０〜ｔ７のサイクルにおける、書き込みアドレス制御部２１２、及びそれに制御されるＲＡＭ回路２１０ａ〜２１０ｈの書き込み動作の詳細を示す。
【００８０】
図３を参照すると、ｔ０〜ｔ７の８サイクルでは、動作モード２１０が第１の動作モードである動作モード０を示しており、書き込みアドレス制御部２１２は、第１のアドレス順序に従って、書き込みアドレスを生成する。ＲＡＭ回路２１０ａ〜２１０ｈは、書き込みアドレス制御部２１２が生成した書き込みアドレスに、第１のデータ振り分け部２０２が２０７ａ〜２０７ｈに出力するデータを書き込む。
【００８１】
具体的には、サイクルｔ０において、
書き込みアドレス制御部２１２が書き込みアドレス２０７ａに出力したアドレス０に、ＲＡＭ回路２１０ａはデータ０ａを書き込む。
書き込みアドレス制御部２１２が書き込みアドレス２０７ｂに出力したアドレス１に、ＲＡＭ回路２１０ｂはデータ１ａを書き込む。
書き込みアドレス制御部２１２が書き込みアドレス２０７ｃに出力したアドレス２に、ＲＡＭ回路２１０ｃはデータ２ａを書き込む。
書き込みアドレス制御部２１２が書き込みアドレス２０７ｄに出力したアドレス３に、ＲＡＭ回路２１０ｄはデータ３ａを書き込む。
書き込みアドレス制御部２１２が書き込みアドレス２０７ｅに出力したアドレス４に、ＲＡＭ回路２１０ｅはデータ４ａを書き込む。
書き込みアドレス制御部２１２が書き込みアドレス２０７ｆに出力したアドレス５に、ＲＡＭ回路２１０ｆはデータ５ａを書き込む。
書き込みアドレス制御部２１２が書き込みアドレス２０７ｇに出力したアドレス６に、ＲＡＭ回路２１０ｇはデータ６ａを書き込む。
書き込みアドレス制御部２１２が書き込みアドレス２０７ｈに出力したアドレス７に、ＲＡＭ回路２１０ｈはデータ７ａを書き込む。
【００８２】
サイクルｔ１において、
書き込みアドレス制御部２１２が書き込みアドレス２０７ａに出力したアドレス７に、ＲＡＭ回路２１０ａはデータ１５ａを書き込む。
書き込みアドレス制御部２１２が書き込みアドレス２０７ｂに出力したアドレス０に、ＲＡＭ回路２１０ｂはデータ８ａを書き込む。
書き込みアドレス制御部２１２が書き込みアドレス２０７ｃに出力したアドレス１に、ＲＡＭ回路２１０ｃはデータ９ａを書き込む。
書き込みアドレス制御部２１２が書き込みアドレス２０７ｄに出力したアドレス２に、ＲＡＭ回路２１０ｄはデータ１０ａを書き込む。
書き込みアドレス制御部２１２が書き込みアドレス２０７ｅに出力したアドレス３に、ＲＡＭ回路２１０ｅはデータ１１ａを書き込む。
書き込みアドレス制御部２１２が書き込みアドレス２０７ｆに出力したアドレス４に、ＲＡＭ回路２１０ｆはデータ１２ａを書き込む。
書き込みアドレス制御部２１２が書き込みアドレス２０７ｇに出力したアドレス５に、ＲＡＭ回路２１０ｇはデータ１３ａを書き込む。
書き込みアドレス制御部２１２が書き込みアドレス２０７ｈに出力したアドレス６に、ＲＡＭ回路２１０ｈはデータ１４ａを書き込む。
【００８３】
サイクルｔ２において、
書き込みアドレス制御部２１２が書き込みアドレス２０７ａに出力したアドレス６に、ＲＡＭ回路２１０ａはデータ２２ａを書き込む。
書き込みアドレス制御部２１２が書き込みアドレス２０７ｂに出力したアドレス７に、ＲＡＭ回路２１０ｂはデータ２３ａを書き込む。
書き込みアドレス制御部２１２が書き込みアドレス２０７ｃに出力したアドレス０に、ＲＡＭ回路２１０ｃはデータ１６ａを書き込む。
書き込みアドレス制御部２１２が書き込みアドレス２０７ｄに出力したアドレス１に、ＲＡＭ回路２１０ｄはデータ１７ａを書き込む。
書き込みアドレス制御部２１２が書き込みアドレス２０７ｅに出力したアドレス２に、ＲＡＭ回路２１０ｅはデータ１８ａを書き込む。
書き込みアドレス制御部２１２が書き込みアドレス２０７ｆに出力したアドレス３に、ＲＡＭ回路２１０ｆはデータ１９ａを書き込む。
書き込みアドレス制御部２１２が書き込みアドレス２０７ｇに出力したアドレス４に、ＲＡＭ回路２１０ｇはデータ２０ａを書き込む。
書き込みアドレス制御部２１２が書き込みアドレス２０７ｈに出力したアドレス５に、ＲＡＭ回路２１０ｈはデータ２１ａを書き込む。
【００８４】
サイクルｔ３において、
書き込みアドレス制御部２１２が書き込みアドレス２０７ａに出力したアドレス５に、ＲＡＭ回路２１０ａはデータ２９ａを書き込む。
書き込みアドレス制御部２１２が書き込みアドレス２０７ｂに出力したアドレス６に、ＲＡＭ回路２１０ｂはデータ３０ａを書き込む。
書き込みアドレス制御部２１２が書き込みアドレス２０７ｃに出力したアドレス７に、ＲＡＭ回路２１０ｃはデータ３１ａを書き込む。
書き込みアドレス制御部２１２が書き込みアドレス２０７ｄに出力したアドレス０に、ＲＡＭ回路２１０ｄはデータ２４ａを書き込む。
書き込みアドレス制御部２１２が書き込みアドレス２０７ｅに出力したアドレス１に、ＲＡＭ回路２１０ｅはデータ２５ａを書き込む。
書き込みアドレス制御部２１２が書き込みアドレス２０７ｆに出力したアドレス２に、ＲＡＭ回路２１０ｆはデータ２６ａを書き込む。
書き込みアドレス制御部２１２が書き込みアドレス２０７ｇに出力したアドレス３に、ＲＡＭ回路２１０ｇはデータ２７ａを書き込む。
書き込みアドレス制御部２１２が書き込みアドレス２０７ｈに出力したアドレス４に、ＲＡＭ回路２１０ｈはデータ２８ａを書き込む。
【００８５】
サイクルｔ４において、
書き込みアドレス制御部２１２が書き込みアドレス２０７ａに出力したアドレス４に、ＲＡＭ回路２１０ａはデータ３６ａを書き込む。
書き込みアドレス制御部２１２が書き込みアドレス２０７ｂに出力したアドレス５に、ＲＡＭ回路２１０ｂはデータ３７ａを書き込む。
書き込みアドレス制御部２１２が書き込みアドレス２０７ｃに出力したアドレス６に、ＲＡＭ回路２１０ｃはデータ３８ａを書き込む。
書き込みアドレス制御部２１２が書き込みアドレス２０７ｄに出力したアドレス７に、ＲＡＭ回路２１０ｄはデータ３９ａを書き込む。
書き込みアドレス制御部２１２が書き込みアドレス２０７ｅに出力したアドレス０に、ＲＡＭ回路２１０ｅはデータ３２ａを書き込む。
書き込みアドレス制御部２１２が書き込みアドレス２０７ｆに出力したアドレス１に、ＲＡＭ回路２１０ｆはデータ３３ａを書き込む。
書き込みアドレス制御部２１２が書き込みアドレス２０７ｇに出力したアドレス２に、ＲＡＭ回路２１０ｇはデータ３４ａを書き込む。
書き込みアドレス制御部２１２が書き込みアドレス２０７ｈに出力したアドレス３に、ＲＡＭ回路２１０ｈはデータ３５ａを書き込む。
【００８６】
サイクルｔ５において、
書き込みアドレス制御部２１２が書き込みアドレス２０７ａに出力したアドレス３に、ＲＡＭ回路２１０ａはデータ４３ａを書き込む。
書き込みアドレス制御部２１２が書き込みアドレス２０７ｂに出力したアドレス４に、ＲＡＭ回路２１０ｂはデータ４４ａを書き込む。
書き込みアドレス制御部２１２が書き込みアドレス２０７ｃに出力したアドレス５に、ＲＡＭ回路２１０ｃはデータ４５ａを書き込む。
書き込みアドレス制御部２１２が書き込みアドレス２０７ｄに出力したアドレス６に、ＲＡＭ回路２１０ｄはデータ４６ａを書き込む。
書き込みアドレス制御部２１２が書き込みアドレス２０７ｅに出力したアドレス７に、ＲＡＭ回路２１０ｅはデータ４７ａを書き込む。
書き込みアドレス制御部２１２が書き込みアドレス２０７ｆに出力したアドレス０に、ＲＡＭ回路２１０ｆはデータ４０ａを書き込む。
書き込みアドレス制御部２１２が書き込みアドレス２０７ｇに出力したアドレス１に、ＲＡＭ回路２１０ｇはデータ４１ａを書き込む。
書き込みアドレス制御部２１２が書き込みアドレス２０７ｈに出力したアドレス２に、ＲＡＭ回路２１０ｈはデータ４２ａを書き込む。
【００８７】
サイクルｔ６において、
書き込みアドレス制御部２１２が書き込みアドレス２０７ａに出力したアドレス２に、ＲＡＭ回路２１０ａはデータ５０ａを書き込む。
書き込みアドレス制御部２１２が書き込みアドレス２０７ｂに出力したアドレス３に、ＲＡＭ回路２１０ｂはデータ５１ａを書き込む。
書き込みアドレス制御部２１２が書き込みアドレス２０７ｃに出力したアドレス４に、ＲＡＭ回路２１０ｃはデータ５２ａを書き込む。
書き込みアドレス制御部２１２が書き込みアドレス２０７ｄに出力したアドレス５に、ＲＡＭ回路２１０ｄはデータ５３ａを書き込む。
書き込みアドレス制御部２１２が書き込みアドレス２０７ｅに出力したアドレス６に、ＲＡＭ回路２１０ｅはデータ５４ａを書き込む。
書き込みアドレス制御部２１２が書き込みアドレス２０７ｆに出力したアドレス７に、ＲＡＭ回路２１０ｆはデータ５５ａを書き込む。
書き込みアドレス制御部２１２が書き込みアドレス２０７ｇに出力したアドレス０に、ＲＡＭ回路２１０ｇはデータ４８ａを書き込む。
書き込みアドレス制御部２１２が書き込みアドレス２０７ｈに出力したアドレス１に、ＲＡＭ回路２１０ｈはデータ４９ａを書き込む。
【００８８】
サイクルｔ７において、
書き込みアドレス制御部２１２が書き込みアドレス２０７ａに出力したアドレス１に、ＲＡＭ回路２１０ａはデータ５７ａを書き込む。
書き込みアドレス制御部２１２が書き込みアドレス２０７ｂに出力したアドレス２に、ＲＡＭ回路２１０ｂはデータ５８ａを書き込む。
書き込みアドレス制御部２１２が書き込みアドレス２０７ｃに出力したアドレス３に、ＲＡＭ回路２１０ｃはデータ５９ａを書き込む。
書き込みアドレス制御部２１２が書き込みアドレス２０７ｄに出力したアドレス４に、ＲＡＭ回路２１０ｄはデータ６０ａを書き込む。
書き込みアドレス制御部２１２が書き込みアドレス２０７ｅに出力したアドレス５に、ＲＡＭ回路２１０ｅはデータ６１ａを書き込む。
書き込みアドレス制御部２１２が書き込みアドレス２０７ｆに出力したアドレス６に、ＲＡＭ回路２１０ｆはデータ６２ａを書き込む。
書き込みアドレス制御部２１２が書き込みアドレス２０７ｇに出力したアドレス７に、ＲＡＭ回路２１０ｇはデータ６３ａを書き込む。
書き込みアドレス制御部２１２が書き込みアドレス２０７ｈに出力したアドレス０に、ＲＡＭ回路２１０ｈはデータ５６ａを書き込む。
【００８９】
以上説明したように、第１のアドレス順序では、ＲＡＭ回路２１０ａ〜２１０ｈの書き込みアドレスを指示する書き込みアドレス２０７ａ〜２０７ｈに対して、互いに異なるアドレスが出力される。また、書き込みアドレス２０７ａ〜２０７ｈのそれぞれには、ｔ０〜ｔ７のそれぞれのサイクルにおいて、異なるアドレスが出力される。例えば、書き込みアドレス２０７ａには、ｔ０〜ｔ７のサイクルにおいて、アドレス０〜７の異なるアドレスが出力される。
【００９０】
次に、ｔ８〜ｔ１５のサイクルにおける、読み出しアドレス制御部２１３、及びそれに制御されるＲＡＭ回路２１０ａ〜２１０ｈの読み出し動作の具体例を示す。
【００９１】
ｔ０〜ｔ７のサイクルにおける書き込み動作の結果、サイクルｔ８の時点で、ＲＡＭ回路２１０ａ〜２１０ｈのそれぞれには、図４に示すようにデータ０ａ〜６３ａが格納されている。
【００９２】
ｔ８〜ｔ１５の８サイクルでは、動作モード２１０が第２の動作モードである動作モード１を示しており、読み出しアドレス制御部２１３は、第２のアドレス順序に従って、読み出しアドレスを生成する。ＲＡＭ回路２１０ａ〜２１０ｈは、読み出しアドレス制御部２１３が生成した読み出しアドレスから、記憶していたデータを出力２０６ａ〜２０６ｈに出力する。
【００９３】
具体的には、サイクルｔ８において、読み出しアドレス制御部２１３は、読み出しアドレス２０８ａ〜２０８ｈのすべてにアドレス０を出力する。
ＲＡＭ回路２１０ａは、アドレス０からデータ０ａを読み出す。
ＲＡＭ回路２１０ｂは、アドレス０からデータ８ａを読み出す。
ＲＡＭ回路２１０ｃは、アドレス０からデータ１６ａを読み出す。
ＲＡＭ回路２１０ｄは、アドレス０からデータ２４ａを読み出す。
ＲＡＭ回路２１０ｅは、アドレス０からデータ３２ａを読み出す。
ＲＡＭ回路２１０ｆは、アドレス０からデータ４０ａを読み出す。
ＲＡＭ回路２１０ｇは、アドレス０からデータ４８ａを読み出す。
ＲＡＭ回路２１０ｈは、アドレス０からデータ５６ａを読み出す。
【００９４】
サイクルｔ９において、読み出しアドレス制御部２１３は、読み出しアドレス２０８ａ〜２０８ｈのすべてにアドレス１を出力する。
ＲＡＭ回路２１０ａは、アドレス１からデータ５７ａを読み出す。
ＲＡＭ回路２１０ｂは、アドレス１からデータ１ａを読み出す。
ＲＡＭ回路２１０ｃは、アドレス１からデータ９ａを読み出す。
ＲＡＭ回路２１０ｄは、アドレス１からデータ１７ａを読み出す。
ＲＡＭ回路２１０ｅは、アドレス１からデータ２５ａを読み出す。
ＲＡＭ回路２１０ｆは、アドレス１からデータ３３ａを読み出す。
ＲＡＭ回路２１０ｇは、アドレス１からデータ４１ａを読み出す。
ＲＡＭ回路２１０ｈは、アドレス１からデータ４９ａを読み出す。
【００９５】
サイクルｔ１０において、読み出しアドレス制御部２１３は、読み出しアドレス２０８ａ〜２０８ｈのすべてにアドレス２を出力する。
ＲＡＭ回路２１０ａは、アドレス２からデータ５０ａを読み出す。
ＲＡＭ回路２１０ｂは、アドレス２からデータ５８ａを読み出す。
ＲＡＭ回路２１０ｃは、アドレス２からデータ２ａを読み出す。
ＲＡＭ回路２１０ｄは、アドレス２からデータ１０ａを読み出す。
ＲＡＭ回路２１０ｅは、アドレス２からデータ１８ａを読み出す。
ＲＡＭ回路２１０ｆは、アドレス２からデータ２６ａを読み出す。
ＲＡＭ回路２１０ｇは、アドレス２からデータ３４ａを読み出す。
ＲＡＭ回路２１０ｈは、アドレス２からデータ４２ａを読み出す。
【００９６】
サイクルｔ１１において、読み出しアドレス制御部２１３は、読み出しアドレス２０８ａ〜２０８ｈのすべてにアドレス３を出力する。
ＲＡＭ回路２１０ａは、アドレス３からデータ４３ａを読み出す。
ＲＡＭ回路２１０ｂは、アドレス３からデータ５１ａを読み出す。
ＲＡＭ回路２１０ｃは、アドレス３からデータ５９ａを読み出す。
ＲＡＭ回路２１０ｄは、アドレス３からデータ３ａを読み出す。
ＲＡＭ回路２１０ｅは、アドレス３からデータ１１ａを読み出す。
ＲＡＭ回路２１０ｆは、アドレス３からデータ１９ａを読み出す。
ＲＡＭ回路２１０ｇは、アドレス３からデータ２７ａを読み出す。
ＲＡＭ回路２１０ｈは、アドレス３からデータ３５ａを読み出す。
【００９７】
サイクルｔ１２において、読み出しアドレス制御部２１３は、読み出しアドレス２０８ａ〜２０８ｈのすべてにアドレス４を出力する。
ＲＡＭ回路２１０ａは、アドレス4からデータ３６ａを読み出す。
ＲＡＭ回路２１０ｂは、アドレス4からデータ４４ａを読み出す。
ＲＡＭ回路２１０ｃは、アドレス4からデータ５２ａを読み出す。
ＲＡＭ回路２１０ｄは、アドレス4からデータ６０ａを読み出す。
ＲＡＭ回路２１０ｅは、アドレス4からデータ４ａを読み出す。
ＲＡＭ回路２１０ｆは、アドレス4からデータ１２ａを読み出す。
ＲＡＭ回路２１０ｇは、アドレス4からデータ２０ａを読み出す。
ＲＡＭ回路２１０ｈは、アドレス4からデータ２８ａを読み出す。
【００９８】
サイクルｔ１３において、読み出しアドレス制御部２１３は、読み出しアドレス２０８ａ〜２０８ｈのすべてにアドレス５を出力する。
ＲＡＭ回路２１０ａは、アドレス５からデータ２９ａを読み出す。
ＲＡＭ回路２１０ｂは、アドレス５からデータ３７ａを読み出す。
ＲＡＭ回路２１０ｃは、アドレス５からデータ４５ａを読み出す。
ＲＡＭ回路２１０ｄは、アドレス５からデータ５３ａを読み出す。
ＲＡＭ回路２１０ｅは、アドレス５からデータ６１ａを読み出す。
ＲＡＭ回路２１０ｆは、アドレス５からデータ５ａを読み出す。
ＲＡＭ回路２１０ｇは、アドレス５からデータ１３ａを読み出す。
ＲＡＭ回路２１０ｈは、アドレス５からデータ２１ａを読み出す。
【００９９】
サイクルｔ１４において、読み出しアドレス制御部２１３は、読み出しアドレス２０８ａ〜２０８ｈのすべてにアドレス６を出力する。
ＲＡＭ回路２１０ａは、アドレス６からデータ２２ａを読み出す。
ＲＡＭ回路２１０ｂは、アドレス６からデータ３０ａを読み出す。
ＲＡＭ回路２１０ｃは、アドレス６からデータ３８ａを読み出す。
ＲＡＭ回路２１０ｄは、アドレス６からデータ４６ａを読み出す。
ＲＡＭ回路２１０ｅは、アドレス６からデータ５４ａを読み出す。
ＲＡＭ回路２１０ｆは、アドレス６からデータ６２ａを読み出す。
ＲＡＭ回路２１０ｇは、アドレス６からデータ６ａを読み出す。
ＲＡＭ回路２１０ｈは、アドレス６からデータ１４ａを読み出す。
【０１００】
サイクルｔ１５において、読み出しアドレス制御部２１３は、読み出しアドレス２０８ａ〜２０８ｈのすべてにアドレス７を出力する。
ＲＡＭ回路２１０ａは、アドレス７からデータ１５ａを読み出す。
ＲＡＭ回路２１０ｂは、アドレス７からデータ２３ａを読み出す。
ＲＡＭ回路２１０ｃは、アドレス７からデータ３１ａを読み出す。
ＲＡＭ回路２１０ｄは、アドレス７からデータ３９ａを読み出す。
ＲＡＭ回路２１０ｅは、アドレス７からデータ４７ａを読み出す。
ＲＡＭ回路２１０ｆは、アドレス７からデータ５５ａを読み出す。
ＲＡＭ回路２１０ｇは、アドレス７からデータ６３ａを読み出す。
ＲＡＭ回路２１０ｈは、アドレス７からデータ７ａを読み出す。
【０１０１】
以上説明したように、第２のアドレス順序では、ＲＡＭ回路２１０ａ〜２１０ｈの読み出しアドレスを指示する読み出しアドレス２０８ａ〜２０８ｈに対して、すべて同じアドレスが出力される。また、読み出しアドレス２０８ａ〜２０８ｈのそれぞれには、ｔ８〜ｔ１５のそれぞれのサイクルにおいて、異なるアドレスが出力される。例えば、書き込みアドレス２０８ａには、ｔ８〜ｔ１５のサイクルにおいて、アドレス０〜７の異なるアドレスが出力される。
【０１０２】
次に、ｔ８〜ｔ１５のサイクルにおける、書き込みアドレス制御部２１２、及びそれに制御されるＲＡＭ回路２１０ａ〜２１０ｈの書き込み動作の具体例を示す。
【０１０３】
ｔ８〜ｔ１５の８サイクルでは、動作モード２１０が第２の動作モードである動作モード１を示しており、書き込みアドレス制御部２１２は、第２のアドレス順序に従って、書き込みアドレスを生成する。ＲＡＭ回路２１０ａ〜２１０ｈは、書き込みアドレス制御部２１２が生成した書き込みアドレスに、第１のデータ振り分け部２０２が出力２０７ａ〜２０７ｈに出力するデータを書き込む。
【０１０４】
具体的には、サイクルｔ８において、書き込みアドレス制御部２１２が書き込みアドレス２０７ａ〜２０７ｈのすべてにアドレス０を出力する。
ＲＡＭ回路２１０ａは、アドレス０にデータ０ｂを書き込む。
ＲＡＭ回路２１０ｂは、アドレス０にデータ１ｂを書き込む。
ＲＡＭ回路２１０ｃは、アドレス０にデータ２ｂを書き込む。
ＲＡＭ回路２１０ｄは、アドレス０にデータ３ｂを書き込む。
ＲＡＭ回路２１０ｅは、アドレス０にデータ４ｂを書き込む。
ＲＡＭ回路２１０ｆは、アドレス０にデータ５ｂを書き込む。
ＲＡＭ回路２１０ｇは、アドレス０にデータ６ｂを書き込む。
ＲＡＭ回路２１０ｈは、アドレス０にデータ７ｂを書き込む。
【０１０５】
サイクルｔ９において、書き込みアドレス制御部２１２が書き込みアドレス２０７ａ〜２０７ｈのすべてにアドレス１を出力する。
ＲＡＭ回路２１０ａは、アドレス１にデータ１５ｂを書き込む。
ＲＡＭ回路２１０ｂは、アドレス１にデータ８ｂを書き込む。
ＲＡＭ回路２１０ｃは、アドレス１にデータ９ｂを書き込む。
ＲＡＭ回路２１０ｄは、アドレス１にデータ１０ｂを書き込む。
ＲＡＭ回路２１０ｅは、アドレス１にデータ１１ｂを書き込む。
ＲＡＭ回路２１０ｆは、アドレス１にデータ１２ｂを書き込む。
ＲＡＭ回路２１０ｇは、アドレス１にデータ１３ｂを書き込む。
ＲＡＭ回路２１０ｈは、アドレス１にデータ１４ｂを書き込む。
【０１０６】
サイクルｔ１０において、書き込みアドレス制御部２１２が書き込みアドレス２０７ａ〜２０７ｈのすべてにアドレス２を出力する。
ＲＡＭ回路２１０ａは、アドレス２にデータ２２ｂを書き込む。
ＲＡＭ回路２１０ｂは、アドレス２にデータ２３ｂを書き込む。
ＲＡＭ回路２１０ｃは、アドレス２にデータ１６ｂを書き込む。
ＲＡＭ回路２１０ｄは、アドレス２にデータ１７ｂを書き込む。
ＲＡＭ回路２１０ｅは、アドレス２にデータ１８ｂを書き込む。
ＲＡＭ回路２１０ｆは、アドレス２にデータ１９ｂを書き込む。
ＲＡＭ回路２１０ｇは、アドレス２にデータ２０ｂを書き込む。
ＲＡＭ回路２１０ｈは、アドレス２にデータ２１ｂを書き込む。
【０１０７】
サイクルｔ１１において、書き込みアドレス制御部２１２が書き込みアドレス２０７ａ〜２０７ｈのすべてにアドレス３を出力する。
ＲＡＭ回路２１０ａは、アドレス３にデータ２９ｂを書き込む。
ＲＡＭ回路２１０ｂは、アドレス３にデータ３０ｂを書き込む。
ＲＡＭ回路２１０ｃは、アドレス３にデータ３１ｂを書き込む。
ＲＡＭ回路２１０ｄは、アドレス３にデータ２４ｂを書き込む。
ＲＡＭ回路２１０ｅは、アドレス３にデータ２５ｂを書き込む。
ＲＡＭ回路２１０ｆは、アドレス３にデータ２６ｂを書き込む。
ＲＡＭ回路２１０ｇは、アドレス３にデータ２７ｂを書き込む。
ＲＡＭ回路２１０ｈは、アドレス３にデータ２８ｂを書き込む。
【０１０８】
サイクルｔ１２において、書き込みアドレス制御部２１２が書き込みアドレス２０７ａ〜２０７ｈのすべてにアドレス４を出力する。
ＲＡＭ回路２１０ａは、アドレス４にデータ３６ｂを書き込む。
ＲＡＭ回路２１０ｂは、アドレス４にデータ３７ｂを書き込む。
ＲＡＭ回路２１０ｃは、アドレス４にデータ３８ｂを書き込む。
ＲＡＭ回路２１０ｄは、アドレス４にデータ３９ｂを書き込む。
ＲＡＭ回路２１０ｅは、アドレス４にデータ３２ｂを書き込む。
ＲＡＭ回路２１０ｆは、アドレス４にデータ３３ｂを書き込む。
ＲＡＭ回路２１０ｇは、アドレス４にデータ３４ｂを書き込む。
ＲＡＭ回路２１０ｈは、アドレス４にデータ３５ｂを書き込む。
【０１０９】
サイクルｔ１３において、書き込みアドレス制御部２１２が書き込みアドレス２０７ａ〜２０７ｈのすべてにアドレス５を出力する。
ＲＡＭ回路２１０ａは、アドレス５にデータ４３ｂを書き込む。
ＲＡＭ回路２１０ｂは、アドレス５にデータ４４ｂを書き込む。
ＲＡＭ回路２１０ｃは、アドレス５にデータ４５ｂを書き込む。
ＲＡＭ回路２１０ｄは、アドレス５にデータ４６ｂを書き込む。
ＲＡＭ回路２１０ｅは、アドレス５にデータ４７ｂを書き込む。
ＲＡＭ回路２１０ｆは、アドレス５にデータ４０ｂを書き込む。
ＲＡＭ回路２１０ｇは、アドレス５にデータ４１ｂを書き込む。
ＲＡＭ回路２１０ｈは、アドレス５にデータ４２ｂを書き込む。
【０１１０】
サイクルｔ１４において、書き込みアドレス制御部２１２が書き込みアドレス２０７ａ〜２０７ｈのすべてにアドレス６を出力する。
ＲＡＭ回路２１０ａは、アドレス６にデータ５０ｂを書き込む。
ＲＡＭ回路２１０ｂは、アドレス６にデータ５１ｂを書き込む。
ＲＡＭ回路２１０ｃは、アドレス６にデータ５２ｂを書き込む。
ＲＡＭ回路２１０ｄは、アドレス６にデータ５３ｂを書き込む。
ＲＡＭ回路２１０ｅは、アドレス６にデータ５４ｂを書き込む。
ＲＡＭ回路２１０ｆは、アドレス６にデータ５５ｂを書き込む。
ＲＡＭ回路２１０ｇは、アドレス６にデータ４８ｂを書き込む。
ＲＡＭ回路２１０ｈは、アドレス６にデータ４９ｂを書き込む。
【０１１１】
サイクルｔ１５において、書き込みアドレス制御部２１２が書き込みアドレス２０７ａ〜２０７ｈのすべてにアドレス７を出力する。
ＲＡＭ回路２１０ａは、アドレス７にデータ５７ｂを書き込む。
ＲＡＭ回路２１０ｂは、アドレス７にデータ５８ｂを書き込む。
ＲＡＭ回路２１０ｃは、アドレス７にデータ５９ｂを書き込む。
ＲＡＭ回路２１０ｄは、アドレス７にデータ６０ｂを書き込む。
ＲＡＭ回路２１０ｅは、アドレス７にデータ６１ｂを書き込む。
ＲＡＭ回路２１０ｆは、アドレス７にデータ６２ｂを書き込む。
ＲＡＭ回路２１０ｇは、アドレス７にデータ６３ｂを書き込む。
ＲＡＭ回路２１０ｈは、アドレス７にデータ５６ｂを書き込む。
【０１１２】
以上説明したように、第２のアドレス順序では、ＲＡＭ回路２１０ａ〜２１０ｈの書き込みアドレスを指示する書き込みアドレス２０７ａ〜２０７ｈに対して、すべて同じアドレスが出力される。また、書き込みアドレス２０７ａ〜２０７ｈのそれぞれには、ｔ８〜ｔ１５のそれぞれのサイクルにおいて、異なるアドレスが出力される。例えば、書き込みアドレス２０７ａには、ｔ０〜ｔ７のサイクルにおいて、アドレス０〜７の異なるアドレスが出力される。
【０１１３】
次に、ｔ１６〜ｔ２３のサイクルにおける、読み出しアドレス制御部２１３、及びそれに制御されるＲＡＭ回路２１０ａ〜２１０ｈの読み出し動作の具体例を示す。
【０１１４】
ｔ８〜ｔ１５のサイクルにおける書き込み動作の結果、サイクルｔ１６の時点で、ＲＡＭ回路２１０ａ〜２１０ｈには図５に示すようにデータ０ｂ〜６３ｂが格納されている。
【０１１５】
ｔ１６〜ｔ２３の８サイクルでは、動作モード２１０が第１の動作モードである動作モード０を示しており、読み出しアドレス制御部２１３は、第１のアドレス順序に従って、読み出しアドレスを生成する。ＲＡＭ回路２１０ａ〜２１０ｈは、読み出しアドレス制御部２１３が生成した読み出しアドレスから、記憶していたデータを出力２０６ａ〜２０６ｈに出力する。
【０１１６】
具体的には、サイクルｔ１６において、
読み出しアドレス制御部２１３が読み出しアドレス２０８ａに出力したアドレス０から、ＲＡＭ回路２１０ａはデータ０ｂを読み出す。
読み出しアドレス制御部２１３が読み出しアドレス２０８ｂに出力したアドレス１から、ＲＡＭ回路２１０ｂはデータ８ｂを読み出す。
読み出しアドレス制御部２１３が読み出しアドレス２０８ｃに出力したアドレス２から、ＲＡＭ回路２１０ｃはデータ１６ｂを読み出す。
読み出しアドレス制御部２１３が読み出しアドレス２０８ｄに出力したアドレス３から、ＲＡＭ回路２１０ｄはデータ２４ｂを読み出す。
読み出しアドレス制御部２１３が読み出しアドレス２０８ｅに出力したアドレス４から、ＲＡＭ回路２１０ｅはデータ３２ｂを読み出す。
読み出しアドレス制御部２１３が読み出しアドレス２０８ｆに出力したアドレス５から、ＲＡＭ回路２１０ｆはデータ４０ｂを読み出す。
読み出しアドレス制御部２１３が読み出しアドレス２０８ｇに出力したアドレス６から、ＲＡＭ回路２１０ｇはデータ４８ｂを読み出す。
読み出しアドレス制御部２１３が読み出しアドレス２０８ｈに出力したアドレス７から、ＲＡＭ回路２１０ｈはデータ５６ｂを読み出す。
【０１１７】
サイクルｔ１７において、
読み出しアドレス制御部２１３が読み出しアドレス２０８ａに出力したアドレス７から、ＲＡＭ回路２１０ａはデータ５７ｂを読み出す。
読み出しアドレス制御部２１３が読み出しアドレス２０８ｂに出力したアドレス０から、ＲＡＭ回路２１０ｂはデータ１ｂを読み出す。
読み出しアドレス制御部２１３が読み出しアドレス２０８ｃに出力したアドレス１から、ＲＡＭ回路２１０ｃはデータ９ｂを読み出す。
読み出しアドレス制御部２１３が読み出しアドレス２０８ｄに出力したアドレス２から、ＲＡＭ回路２１０ｄはデータ１７ｂを読み出す。
読み出しアドレス制御部２１３が読み出しアドレス２０８ｅに出力したアドレス３から、ＲＡＭ回路２１０ｅはデータ２５ｂを読み出す。
読み出しアドレス制御部２１３が読み出しアドレス２０８ｆに出力したアドレス４から、ＲＡＭ回路２１０ｆはデータ３３ｂを読み出す。
読み出しアドレス制御部２１３が読み出しアドレス２０８ｇに出力したアドレス５から、ＲＡＭ回路２１０ｇはデータ４１ｂを読み出す。
読み出しアドレス制御部２１３が読み出しアドレス２０８ｈに出力したアドレス６から、ＲＡＭ回路２１０ｈはデータ４９ｂを読み出す。
【０１１８】
サイクルｔ１８において、
読み出しアドレス制御部２１３が読み出しアドレス２０８ａに出力したアドレス６から、ＲＡＭ回路２１０ａはデータ５０ｂを読み出す。
読み出しアドレス制御部２１３が読み出しアドレス２０８ｂに出力したアドレス７から、ＲＡＭ回路２１０ｂはデータ５８ｂを読み出す。
読み出しアドレス制御部２１３が読み出しアドレス２０８ｃに出力したアドレス０から、ＲＡＭ回路２１０ｃはデータ２ｂを読み出す。
読み出しアドレス制御部２１３が読み出しアドレス２０８ｄに出力したアドレス１から、ＲＡＭ回路２１０ｄはデータ１０ｂを読み出す。
読み出しアドレス制御部２１３が読み出しアドレス２０８ｅに出力したアドレス２から、ＲＡＭ回路２１０ｅはデータ１８ｂを読み出す。
読み出しアドレス制御部２１３が読み出しアドレス２０８ｆに出力したアドレス３から、ＲＡＭ回路２１０ｆはデータ２６ｂを読み出す。
読み出しアドレス制御部２１３が読み出しアドレス２０８ｇに出力したアドレス４から、ＲＡＭ回路２１０ｇはデータ３４ｂを読み出す。
読み出しアドレス制御部２１３が読み出しアドレス２０８ｈに出力したアドレス５から、ＲＡＭ回路２１０ｈはデータ４２ｂを読み出す。
【０１１９】
サイクルｔ１９において、
読み出しアドレス制御部２１３が読み出しアドレス２０８ａに出力したアドレス５から、ＲＡＭ回路２１０ａはデータ４３ｂを読み出す。
読み出しアドレス制御部２１３が読み出しアドレス２０８ｂに出力したアドレス６から、ＲＡＭ回路２１０ｂはデータ５１ｂを読み出す。
読み出しアドレス制御部２１３が読み出しアドレス２０８ｃに出力したアドレス７から、ＲＡＭ回路２１０ｃはデータ５９ｂを読み出す。
読み出しアドレス制御部２１３が読み出しアドレス２０８ｄに出力したアドレス０から、ＲＡＭ回路２１０ｄはデータ３ｂを読み出す。
読み出しアドレス制御部２１３が読み出しアドレス２０８ｅに出力したアドレス１から、ＲＡＭ回路２１０ｅはデータ１１ｂを読み出す。
読み出しアドレス制御部２１３が読み出しアドレス２０８ｆに出力したアドレス２から、ＲＡＭ回路２１０ｆはデータ１９ｂを読み出す。
読み出しアドレス制御部２１３が読み出しアドレス２０８ｇに出力したアドレス３から、ＲＡＭ回路２１０ｇはデータ２７ｂを読み出す。
読み出しアドレス制御部２１３が読み出しアドレス２０８ｈに出力したアドレス４から、ＲＡＭ回路２１０ｈはデータ３５ｂを読み出す。
【０１２０】
サイクルｔ２０において、
読み出しアドレス制御部２１３が読み出しアドレス２０８ａに出力したアドレス４から、ＲＡＭ回路２１０ａはデータ３６ｂを読み出す。
読み出しアドレス制御部２１３が読み出しアドレス２０８ｂに出力したアドレス５から、ＲＡＭ回路２１０ｂはデータ４４ｂを読み出す。
読み出しアドレス制御部２１３が読み出しアドレス２０８ｃに出力したアドレス６から、ＲＡＭ回路２１０ｃはデータ５２ｂを読み出す。
読み出しアドレス制御部２１３が読み出しアドレス２０８ｄに出力したアドレス７から、ＲＡＭ回路２１０ｄはデータ６０ｂを読み出す。
読み出しアドレス制御部２１３が読み出しアドレス２０８ｅに出力したアドレス０から、ＲＡＭ回路２１０ｅはデータ４ｂを読み出す。
読み出しアドレス制御部２１３が読み出しアドレス２０８ｆに出力したアドレス１から、ＲＡＭ回路２１０ｆはデータ１２ｂを読み出す。
読み出しアドレス制御部２１３が読み出しアドレス２０８ｇに出力したアドレス２から、ＲＡＭ回路２１０ｇはデータ２０ｂを読み出す。
読み出しアドレス制御部２１３が読み出しアドレス２０８ｈに出力したアドレス３から、ＲＡＭ回路２１０ｈはデータ２８ｂを読み出す。
【０１２１】
サイクルｔ２１において、
読み出しアドレス制御部２１３が読み出しアドレス２０８ａに出力したアドレス３から、ＲＡＭ回路２１０ａはデータ２９ｂを読み出す。
読み出しアドレス制御部２１３が読み出しアドレス２０８ｂに出力したアドレス４から、ＲＡＭ回路２１０ｂはデータ３７ｂを読み出す。
読み出しアドレス制御部２１３が読み出しアドレス２０８ｃに出力したアドレス５から、ＲＡＭ回路２１０ｃはデータ４５ｂを読み出す。
読み出しアドレス制御部２１３が読み出しアドレス２０８ｄに出力したアドレス６から、ＲＡＭ回路２１０ｄはデータ５３ｂを読み出す。
読み出しアドレス制御部２１３が読み出しアドレス２０８ｅに出力したアドレス７から、ＲＡＭ回路２１０ｅはデータ６１ｂを読み出す。
読み出しアドレス制御部２１３が読み出しアドレス２０８ｆに出力したアドレス０から、ＲＡＭ回路２１０ｆはデータ５ｂを読み出す。
読み出しアドレス制御部２１３が読み出しアドレス２０８ｇに出力したアドレス１から、ＲＡＭ回路２１０ｇはデータ１３ｂを読み出す。
読み出しアドレス制御部２１３が読み出しアドレス２０８ｈに出力したアドレス２から、ＲＡＭ回路２１０ｈはデータ２１ｂを読み出す。
【０１２２】
サイクルｔ２２において、
読み出しアドレス制御部２１３が読み出しアドレス２０８ａに出力したアドレス２から、ＲＡＭ回路２１０ａはデータ２２ｂを読み出す。
読み出しアドレス制御部２１３が読み出しアドレス２０８ｂに出力したアドレス３から、ＲＡＭ回路２１０ｂはデータ３０ｂを読み出す。
読み出しアドレス制御部２１３が読み出しアドレス２０８ｃに出力したアドレス４から、ＲＡＭ回路２１０ｃはデータ３８ｂを読み出す。
読み出しアドレス制御部２１３が読み出しアドレス２０８ｄに出力したアドレス５から、ＲＡＭ回路２１０ｄはデータ４６ｂを読み出す。
読み出しアドレス制御部２１３が読み出しアドレス２０８ｅに出力したアドレス６から、ＲＡＭ回路２１０ｅはデータ５４ｂを読み出す。
読み出しアドレス制御部２１３が読み出しアドレス２０８ｆに出力したアドレス７から、ＲＡＭ回路２１０ｆはデータ６２ｂを読み出す。
読み出しアドレス制御部２１３が読み出しアドレス２０８ｇに出力したアドレス０から、ＲＡＭ回路２１０ｇはデータ６ｂを読み出す。
読み出しアドレス制御部２１３が読み出しアドレス２０８ｈに出力したアドレス１から、ＲＡＭ回路２１０ｈはデータ１４ｂを読み出す。
【０１２３】
サイクルｔ２３において、
読み出しアドレス制御部２１３が読み出しアドレス２０８ａに出力したアドレス１から、ＲＡＭ回路２１０ａはデータ１５ｂを読み出す。
読み出しアドレス制御部２１３が読み出しアドレス２０８ｂに出力したアドレス２から、ＲＡＭ回路２１０ｂはデータ２３ｂを読み出す。
読み出しアドレス制御部２１３が読み出しアドレス２０８ｃに出力したアドレス３から、ＲＡＭ回路２１０ｃはデータ３１ｂを読み出す。
読み出しアドレス制御部２１３が読み出しアドレス２０８ｄに出力したアドレス４から、ＲＡＭ回路２１０ｄはデータ３９ｂを読み出す。
読み出しアドレス制御部２１３が読み出しアドレス２０８ｅに出力したアドレス５から、ＲＡＭ回路２１０ｅはデータ４７ｂを読み出す。
読み出しアドレス制御部２１３が読み出しアドレス２０８ｆに出力したアドレス６から、ＲＡＭ回路２１０ｆはデータ５５ｂを読み出す。
読み出しアドレス制御部２１３が読み出しアドレス２０８ｇに出力したアドレス７から、ＲＡＭ回路２１０ｇはデータ６３ｂを読み出す。
読み出しアドレス制御部２１３が読み出しアドレス２０８ｈに出力したアドレス０から、ＲＡＭ回路２１０ｈはデータ７ｂを読み出す。
【０１２４】
以上説明したように、第１のアドレス順序では、ＲＡＭ回路２１０ａ〜２１０ｈの読み出しアドレスを指示する読み出しアドレス２０８ａ〜２０８ｈに対して、互いに異なるアドレスが出力される。また、読み出しアドレス２０８ａ〜２０８ｈのそれぞれには、ｔ１６〜ｔ２３のそれぞれのサイクルにおいて、異なるアドレスが出力される。例えば、読み出しアドレス２０８ａには、ｔ１６〜ｔ２３のサイクルにおいて、アドレス０〜７の異なるアドレスが出力される。
【０１２５】
次に、ｔ８〜ｔ１５のサイクルにおける、第２のデータ振り分け部２０３の動作について説明する。
【０１２６】
具体的には、サイクルｔ８において、
２０６ａから入力したデータ０ａをｏｕｔ０に出力し、
２０６ｂから入力したデータ８ａをｏｕｔ１に出力し、
２０６ｃから入力したデータ１６ａをｏｕｔ２に出力し、
２０６ｄから入力したデータ２４ａをｏｕｔ３に出力し、
２０６ｅから入力したデータ３２ａをｏｕｔ４に出力し、
２０６ｆから入力したデータ４０ａをｏｕｔ５に出力し、
２０６ｇから入力したデータ４８ａをｏｕｔ６に出力し、
２０６ｈから入力したデータ５６ａをｏｕｔ７に出力する。
【０１２７】
サイクルｔ９において、
２０６ａから入力したデータ５７ａをｏｕｔ７に出力し、
２０６ｂから入力したデータ１ａをｏｕｔ０に出力し、
２０６ｃから入力したデータ９ａをｏｕｔ１に出力し、
２０６ｄから入力したデータ１７ａをｏｕｔ２に出力し、
２０６ｅから入力したデータ２５ａをｏｕｔ３に出力し、
２０６ｆから入力したデータ３３ａをｏｕｔ４に出力し、
２０６ｇから入力したデータ４１ａをｏｕｔ５に出力し、
２０６ｈから入力したデータ４９ａをｏｕｔ６に出力する。
【０１２８】
サイクルｔ１０において、
２０６ａから入力したデータ５０ａをｏｕｔ６に出力し、
２０６ｂから入力したデータ５８ａをｏｕｔ７に出力し、
２０６ｃから入力したデータ２ａをｏｕｔ０に出力し、
２０６ｄから入力したデータ１０ａをｏｕｔ１に出力し、
２０６ｅから入力したデータ１８ａをｏｕｔ２に出力し、
２０６ｆから入力したデータ２６ａをｏｕｔ３に出力し、
２０６ｇから入力したデータ３４ａをｏｕｔ４に出力し、
２０６ｈから入力したデータ４２ａをｏｕｔ５に出力する。
【０１２９】
サイクルｔ１１において、
２０６ａから入力したデータ４３ａをｏｕｔ５に出力し、
２０６ｂから入力したデータ５１ａをｏｕｔ６に出力し、
２０６ｃから入力したデータ５９ａをｏｕｔ７に出力し、
２０６ｄから入力したデータ３ａをｏｕｔ０に出力し、
２０６ｅから入力したデータ１１ａをｏｕｔ１に出力し、
２０６ｆから入力したデータ１９ａをｏｕｔ２に出力し、
２０６ｇから入力したデータ２７ａをｏｕｔ３に出力し、
２０６ｈから入力したデータ３５ａをｏｕｔ４に出力する。
【０１３０】
サイクルｔ１２において、
２０６ａから入力したデータ３６ａをｏｕｔ４に出力し、
２０６ｂから入力したデータ４４ａをｏｕｔ５に出力し、
２０６ｃから入力したデータ５２ａをｏｕｔ６に出力し、
２０６ｄから入力したデータ６０ａをｏｕｔ７に出力し、
２０６ｅから入力したデータ４ａをｏｕｔ０に出力し、
２０６ｆから入力したデータ１２ａをｏｕｔ１に出力し、
２０６ｇから入力したデータ２０ａをｏｕｔ２に出力し、
２０６ｈから入力したデータ２８ａをｏｕｔ３に出力する。
【０１３１】
サイクルｔ１３において、
２０６ａから入力したデータ２９ａをｏｕｔ３に出力し、
２０６ｂから入力したデータ３７ａをｏｕｔ４に出力し、
２０６ｃから入力したデータ４５ａをｏｕｔ５に出力し、
２０６ｄから入力したデータ５３ａをｏｕｔ６に出力し、
２０６ｅから入力したデータ６１ａをｏｕｔ７に出力し、
２０６ｆから入力したデータ５ａをｏｕｔ０に出力し、
２０６ｇから入力したデータ１３ａをｏｕｔ１に出力し、
２０６ｈから入力したデータ２１ａをｏｕｔ２に出力する。
【０１３２】
サイクルｔ１４において、
２０６ａから入力したデータ２２ａをｏｕｔ２に出力し、
２０６ｂから入力したデータ３０ａをｏｕｔ３に出力し、
２０６ｃから入力したデータ３８ａをｏｕｔ４に出力し、
２０６ｄから入力したデータ４６ａをｏｕｔ５に出力し、
２０６ｅから入力したデータ５４ａをｏｕｔ６に出力し、
２０６ｆから入力したデータ６２ａをｏｕｔ７に出力し、
２０６ｇから入力したデータ６ａをｏｕｔ０に出力し、
２０６ｈから入力したデータ１４ａをｏｕｔ１に出力する。
【０１３３】
サイクルｔ１５において、
２０６ａから入力したデータ１５ａをｏｕｔ１に出力し、
２０６ｂから入力したデータ２３ａをｏｕｔ２に出力し、
２０６ｃから入力したデータ３１ａをｏｕｔ３に出力し、
２０６ｄから入力したデータ３９ａをｏｕｔ４に出力し、
２０６ｅから入力したデータ４７ａをｏｕｔ５に出力し、
２０６ｆから入力したデータ５５ａをｏｕｔ６に出力し、
２０６ｇから入力したデータ６３ａをｏｕｔ７に出力し、
２０６ｈから入力したデータ７ａをｏｕｔ０に出力する。
【０１３４】
以上説明したように、第２のデータ振り分け部２０３によるデータの振り分け処理の結果、ｔ８〜ｔ１５のサイクルにおいて、ｏｕｔ０〜７にデータ０ａ〜６３ａがビットリバース順序で出力される。
【０１３５】
第２のデータ振り分け部２０３は、第１のデータ振り分け部２０２と同様に、並列して同時に入力する８つのデータに対してローテート処理して出力するものであり、例えばシフト回路で容易に実現することができる。
【０１３６】
第２のデータ振り分け部２０３は、ｔ１６〜ｔ２３のサイクルにおいても、データ０ｂ〜６３ｂに対して同様の振り分け動作を行い、ｏｕｔ０〜７にデータ０ｂ〜６３ｂがビットリバース順序で出力される。
【０１３７】
以上、逐次順序からビットリバース順序への並べ替えを例に、データ並べ替え処理を説明したが、ビットリバース順序から逐次順序への並べ替えについても同様に実現することができる。
【０１３８】
以上のように、本実施形態では、ＦＦＴ装置１０が備えるデータ並べ替え処理部２００は、バタフライ演算において必要なデータの並べ替え処理である、「逐次順序」から、「ビットリバース順序」への並べ替えや、「ビットリバース順序」から「逐次順序」への並べ替えを、第１及び第２の２種類のアドレス順序によりＲＡＭ回路２１０ａ〜２１０ｈの書き込み及び読み出し動作を制御することにより実現する。例えば、ＲＡＭ回路に第１のアドレス順序で書き込みを行ったデータは、第２のアドレス順序で読み出しを行い、第２のアドレス順序で書き込みを行ったデータは、第１のアドレス順序で読み出しを行う。
【０１３９】
その結果、本実施形態では、連続して入力される信号のＦＦＴ処理を行う場合でも、ＦＦＴのポイント数に等しい記憶容量のＲＡＭ回路でデータ並べ替え処理を実現することができる。従って、データ並べ替え処理に少なくともＦＦＴのポイント数分の２倍の記憶容量を必要とする従来技術に比べて、ＲＡＭ回路の記憶容量を１／２にすることができるため、ＲＡＭ回路の回路規模や消費電力を小さくすることができる。その結果、データ並べ替え処理部を含むＦＦＴ装置全体の回路規模や消費電力を小さくすることができる。
【０１４０】
また以上の動作は、あらかじめ動作の手順を記録したプログラムを実行することにより、実現することができる。このプログラムは、様々なタイプの非一時的なコンピュータ可読媒体（ｎｏｎ−ｔｒａｎｓｉｔｏｒｙ  ｃｏｍｐｕｔｅｒ  ｒｅａｄａｂｌｅ  ｍｅｄｉｕｍ）を用いて格納され、コンピュータに供給することができる。非一時的なコンピュータ可読媒体は、様々なタイプの実体のある記録媒体（ｔａｎｇｉｂｌｅ  ｓｔｏｒａｇｅ  ｍｅｄｉｕｍ）を含む。非一時的なコンピュータ可読媒体の例は、磁気記録媒体（例えばフレキシブルディスク、磁気テープ、ハードディスクドライブ）、光磁気記録媒体（例えば光磁気ディスク）、ＣＤ−ＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）ＣＤ−Ｒ、ＣＤ−Ｒ／Ｗ、半導体メモリ（例えば、マスクＲＯＭ、ＰＲＯＭ（Ｐｒｏｇｒａｍｍａｂｌｅ  ＲＯＭ）、ＥＰＲＯＭ（Ｅｒａｓａｂｌｅ  ＰＲＯＭ）、フラッシュＲＯＭ、ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ））を含む。また、プログラムは、様々なタイプの一時的なコンピュータ可読媒体（ｔｒａｎｓｉｔｏｒｙ  ｃｏｍｐｕｔｅｒ  ｒｅａｄａｂｌｅ  ｍｅｄｉｕｍ）によってコンピュータに供給されてもよい。一時的なコンピュータ可読媒体の例は、電気信号、光信号、及び電磁波を含む。一時的なコンピュータ可読媒体は、電線及び光ファイバ等の有線通信路、又は無線通信路を介して、プログラムをコンピュータに供給できる。
【０１４１】
以上、実施の形態を参照して本願発明を説明したが、本願発明は上記によって限定されるものではない。本願発明の構成や詳細には、発明のスコープ内で当業者が理解し得る様々な変更をすることができる。
【０１４２】
この出願は、２０１９年３月２６日に出願された日本出願特願２０１９−０５８４５７を基礎とする優先権を主張し、その開示の全てをここに取り込む。
【符号の説明】
【０１４３】
１０  ＦＦＴ装置
１１、１２、１３  データ並べ替え処理部
２１、２２  バタフライ演算処理部
３１  ひねり乗算処理部
２００  データ並べ替え処理部
２０２  第１のデータ振り分け部
２０３  第２のデータ振り分け部
２１０ａ〜２１０ｈ  ＲＡＭ回路
２１２  書き込みアドレス制御部
２１３  読み出しアドレス制御部
５００  データフロー
５０１  データ並べ替え処理
５０２、５０３  バタフライ演算処理
５０４  ひねり乗算処理
５０５ａ〜５０５ｈ  部分データフロー
【図１】
2020195239.tif 000003
【図２】
2020195239.tif 000004
【図３】
2020195239.tif 000005
【図４】
2020195239.tif 000006
【図５】
2020195239.tif 000007
【図６】
2020195239.tif 000008
【図７】
2020195239.tif 000009
【図８】
2020195239.tif 000010
【手続補正書】
【提出日】令和3年8月27日(2021.8.27)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
第１の順序で入力した複数のデータを第２の順序に並べ替えるデータ並べ替え処理手段を備えるデジタルフィルタ装置において、
前記データ並べ替え処理手段は、少なくとも記憶手段を備え、
前記データ並べ替え処理手段は、第１または第２のアドレス順序に従って前記記憶手段にデータの書き込みを行い、
前記データ並べ替え処理手段は、前記第１のアドレス順序に従って前記記憶手段に書き込みを行ったデータを、前記第２のアドレス順序に従って前記記憶手段から読み出しを行い、前記第２のアドレス順序に従って前記記憶手段に書き込みを行ったデータを、前記第１のアドレス順序に従って前記記憶手段から読み出しを行うことでデータ並べ替え処理を行う、
ことを特徴とするデジタルフィルタ装置。
【請求項２】
前記データ並べ替え処理手段は、連続して処理を行う第１及び第２のデータ並べ替え処理において、
前記第１のデータ並べ替え処理において、前記第１のアドレス順序に従って前記記憶手段に書き込みを行ったデータを、前記第２のアドレス順序に従って前記記憶手段から読み出しを行った場合は、前記第２のデータ並べ替え処理において、前記第２のアドレス順序に従って前記記憶手段に書き込みを行ったデータを、前記第１のアドレス順序に従って前記記憶手段から読み出しを行い、
前記第１のデータ並べ替え処理において、前記第２のアドレス順序に従って前記記憶手段に書き込みを行ったデータを、前記第１のアドレス順序に従って前記記憶手段から読み出しを行った場合は、前記第２のデータ並べ替え処理において、前記第１のアドレス順序に従って前記記憶手段に書き込みを行ったデータを、前記第２のアドレス順序に従って前記記憶手段から読み出しを行う、
ことを特徴とする請求項１に記載のデジタルフィルタ装置。
【請求項３】
前記記憶手段は複数の記憶回路を含み、
前記第１のアドレス順序は、前記複数の記憶回路のそれぞれに対して、常に異なるアドレスを指定するアドレス順序であり、
前記第２のアドレス順序は、前記複数の記憶回路のそれぞれに対して、常に同じアドレスを指定するアドレス順序である、
ことを特徴とする請求項１または請求項２に記載のデジタルフィルタ装置。
【請求項４】
データの並べ替えを行う第１のデータ並べ替え処理手段と、
前記第１のデータ並べ替え処理手段で並べ替えられたデータに対してバタフライ演算を行う第１のバタフライ演算処理手段と、
前記第１のバタフライ演算処理手段で処理されたデータを並び替える第２のデータ並べ替え処理手段と、
前記第２のデータ並べ替え処理手段で並び替えられたデータに対してひねり乗算を行うひねり乗算処理手段と、
前記ひねり乗算処理手段で処理されたデータに対してバタフライ演算を行う第２のバタフライ演算処理手段と、
前記第２のバタフライ演算処理手段で処理されたデータを並び替える第３のデータ並べ替え処理手段と、を備える
ことを特徴とする、請求項１〜３のいずれか一項に記載のデジタルフィルタ装置。
【請求項５】
前記第１のデータ並べ替え処理手段と、前記第１のバタフライ演算処理手段と、前記第２のデータ並べ替え処理手段と、前記ひねり乗算処理手段と、前記第２のバタフライ演算処理手段と、前記第３のデータ並べ替え処理手段の処理を、パイプライン処理により実行する
ことを特徴とする、請求項４に記載のデジタルフィルタ装置。
【請求項６】
第１の順序で入力した複数のデータを第２の順序に並べ替えるデータ並べ替え処理手段を備えるデジタルフィルタ装置の動作方法であって、
前記データ並べ替え処理手段は、少なくとも記憶手段を備え、
前記データ並べ替え処理手段は、第１または第２のアドレス順序に従って前記記憶手段にデータの書き込みを行い、
前記データ並べ替え処理手段は、前記第１のアドレス順序に従って前記記憶手段に書き込みを行ったデータを、前記第２のアドレス順序に従って前記記憶手段から読み出しを行い、前記第２のアドレス順序に従って前記記憶手段に書き込みを行ったデータを、前記第１のアドレス順序に従って前記記憶手段から読み出しを行うことでデータ並べ替え処理を行う、
ことを特徴とするデジタルフィルタ装置の動作方法。
【請求項７】
第１の順序で入力した複数のデータを第２の順序に並べ替えるデータ並べ替え処理手段を備えるデジタルフィルタ装置を動作させるプログラムを格納した非一時的なコンピュータ可読媒体であって、
前記データ並べ替え処理手段は、少なくとも記憶手段を備え、
前記データ並べ替え処理手段は、第１または第２のアドレス順序に従って前記記憶手段にデータの書き込みを行い、
前記データ並べ替え処理手段は、前記第１のアドレス順序に従って前記記憶手段に書き込みを行ったデータを、前記第２のアドレス順序に従って前記記憶手段から読み出しを行い、前記第２のアドレス順序に従って前記記憶手段に書き込みを行ったデータを、前記第１のアドレス順序に従って前記記憶手段から読み出しを行うことでデータ並べ替え処理を行う、
ことを特徴とするプログラム。
【国際調査報告】
2020195239.tif 000011
2020195239.tif 000012
2020195239.tif 000013
2020195239.tif 000014