(57)【特許請求の範囲】
【請求項１】
データ値が正又は０の場合は、２の補数表現と同一であり、データ値が負の場合は、２の補数表現から符号を示す最上位ビット以外のビットを反転した表現形式である第２の表現形式により表現されたデータに対して記憶処理を行う記憶処理部と、
２の補数表現により表現されたデータ、又は、前記第２の表現形式により表現されたデータに補正処理を行ったデータの少なくともいずれかに対して演算処理を行う演算処理部と、
を備え、
前記補正処理は、前記第２の表現形式により表現されたＮビット（Ｎは正整数）のデータが負の値の場合に、
前記Ｎビット（ただし、Ｎは所定の正整数）のデータのうち、最下位ビットからＭビット（ただし、ＭはＭ≦Ｎの正整数）に対して値１を加算する処理である、ことを特徴とする信号処理装置。
【請求項２】
前記演算処理部は、処理する演算が乗算又は除算の場合には、
前記第２の表現形式により表現されたデータに前記補正処理を行ったデータのいずれかに対して演算処理を行い、
処理する演算が加算又は減算の場合には、
２の補数表現により表現されたデータに対して演算処理を行う、ことを特徴とする請求項１に記載の信号処理装置。
【請求項３】
前記演算処理部は、
２の補数表現により表現されたデータを入力し、２の補数表現により表現されたデータの演算処理を行う第１の演算回路と、
２の補数表現により表現されたデータを入力し、前記入力したデータを２の補数表現から前記第２の表現形式へ変換する第１の変換部と、
前記第２の表現形式により表現されたデータに前記補正処理を行う補正回路と、
前記補正回路で補正処理されたデータを入力し、前記補正処理されたデータの演算処理を行う第２の演算回路と、
前記第２の表現形式のデータを入力し、前記入力したデータを２の補数表現へ変換して出力する第２の変換部について、
前記第１の演算回路を備えた構成と、
前記補正回路及び前記第２の演算回路を備えた構成と、
前記補正回路及び前記第２の演算回路に、さらに前記第１の変換部又は前記第２の変換部の少なくともいずれかを備えた構成、
のうちの少なくともいずれかを含み、
前記第２の演算回路は、
演算対象である前記補正処理した前記第２の表現形式のデータの符号ビットの演算結果を符号ビットとして出力する符号演算回路と、
演算対象である前記補正処理した前記第２の表現形式のデータの前記符号ビット以外の絶対値部分を演算して出力する符号なし演算回路と、
を備えた、ことを特徴とする請求項１又は２に記載の信号処理装置。
【請求項４】
請求項１記載の信号処理装置において、データ表現形式として２の補数表現と前記第２の表現形式の双方を使用して高速フーリエ変換又は逆高速フーリエ変換を行い、
前記演算処理部が、
バタフライ演算処理を行うバタフライ演算処理部と、
ひねり乗算処理を行うひねり乗算処理部と、
を備え、
前記記憶処理部が、
複数のデータの順序を並べ替えるデータ並べ替え処理部を備え、
前記バタフライ演算処理部は、２の補数表現により表現されたデータに対してバタフライ演算処理を行い、
前記ひねり乗算処理部は、乗算処理については、前記第２の表現形式により表現されたデータに補正処理を行ったデータに対して演算処理を行い、
加算処理については、２の補数表現により表現されたデータに対して演算処理を行い、
前記データ並べ替え処理部は、前記第２の表現形式により表現されたデータに対して記憶処理を行う、ことを特徴とする信号処理装置。
【請求項５】
前記データ並べ替え処理部は、
２の補数表現で表現されたデータを入力し前記第２の表現形式へ変換する第１の変換部と、
前記第２の表現形式で表現されたデータを入力し２の補数表現へ変換する第２の変換部と、
を備え、
前記第１の変換部は、入力する２の補数表現で表現されたデータを前記第２の表現形式に変換してデータ並べ替え処理を行い、
前記第２の変換部は、前記第２の表現形式で表現されたデータ並べ替え処理後のデータを２の補数表現に変換して出力する、ことを特徴とする請求項４に記載の信号処理装置。
【請求項６】
２の補数表現と異なる第２の表現形式により表現されたデータに対して記憶処理を行う工程と、
２の補数表現により表現されたデータ、又は、前記第２の表現形式により表現されたデータに補正処理を行ったデータの少なくともいずれかに対して演算処理を行う工程と、
を含み、
前記第２の表現形式は、
データ値が正又は０の場合は、２の補数表現と同一であり、
データ値が負の場合は、２の補数表現から符号を示す最上位ビット以外のビットを反転した表現形式であり、
前記補正処理では、前記第２の表現形式により表現されたＮビット（Ｎは正整数）のデータが負の値の場合に、前記Ｎビット（ただし、Ｎは所定の正整数）のデータのうち、最下位ビットからＭビット（ただし、ＭはＭ≦Ｎの正整数）に対して値１を加算する、ことを特徴とする信号処理方法。
【請求項７】
前記演算処理では、処理する演算が乗算又は除算の場合には、前記第２の表現形式により表現されたデータに前記補正処理を行ったデータのいずれかに対して演算処理を行い、
処理する演算が加算又は減算の場合には、２の補数表現により表現されたデータに対して演算処理を行う、ことを特徴とする請求項６に記載の信号処理方法。
【請求項８】
請求項６記載の信号処理方法において、データ表現形式として２の補数表現と、前記第２の表現形式の双方を使用して高速フーリエ変換又は逆高速フーリエ変換を行い、
前記演算処理が、
バタフライ演算処理を行うバタフライ演算処理と、
ひねり乗算処理を行うひねり乗算処理と、
を含み、
前記記憶処理が、
複数のデータの順序を並べ替えるデータ並べ替え処理を含み、
前記バタフライ演算処理は、２の補数表現により表現されたデータに対してバタフライ演算処理を行い、
前記ひねり乗算処理は、乗算処理については、前記第２の表現形式により表現されたデータに補正処理を行ったデータに対して演算処理を行い、
加算処理については、２の補数表現により表現されたデータに対して演算処理を行い、
前記データ並べ替え処理は、前記第２の表現形式により表現されたデータに対して記憶処理を行う、ことを特徴とする信号処理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
［関連出願についての記載］
本発明は、日本国特許出願：特願２０１８−０９７７６１号（２０１８年５月２２日出願）の優先権主張に基づくものであり、同出願の全記載内容は引用をもって本書に組み込み記載されているものとする。
本発明は、信号処理装置、方法、プログラムに関する。
【背景技術】
【０００２】
デジタル信号処理において重要な処理の１つとして、高速フーリエ変換（Fast Fourier Transform：以降、「ＦＦＴ」という。）処理がある。また、例えば無線通信や有線通信における信号伝送中の波形歪みを補償する技術として、周波数領域等化（Frequency domain equalization（ＦＤＥ））技術が知られている。【０００３】
周波数領域等化では、まず高速フーリエ変換により時間領域上の信号データが周波数領域上のデータに変換される。次に、等化のためのフィルタ処理が行われる。そして、フィルタ処理後のデータは、逆高速フーリエ変換（Inverse ＦＦＴ：以降、「ＩＦＦＴ」という。）により時間領域上の信号データに再変換される。上記処理によって、元の時間領域上の信号の波形歪みが補償される。以降、ＦＦＴとＩＦＦＴを区別しないときは、「ＦＦＴ／ＩＦＦＴ」と表記する。【０００４】
一般に、ＦＦＴ／ＩＦＦＴ処理では、「バタフライ演算」が用いられる。例えば特許文献１には、バタフライ演算を用いたＦＦＴ装置等について記載されている。特許文献１には、後述の「ひねり乗算」、すなわち、ひねり係数（twiddle coefficient又はtwiddle factor）を用いた乗算についても記載されている。また、例えば非特許文献１には、効率的なＦＦＴ／ＩＦＦＴ処理方式として、Cooley-Tukeyによるバタフライ演算が記載されている。  【０００５】
しかし、ポイント数の大きいCooley-TukeyによるＦＦＴ／ＩＦＦＴは回路が複雑になる。そのため、ＦＦＴ／ＩＦＦＴ処理は、例えば非特許文献２に記載されたPrime Factor法に基づいて、２つの小さなＦＦＴ／ＩＦＦＴに分解して行われる。【０００６】
図２６には、Prime Factor法を利用して２段階の基数８のバタフライ処理に分解された、６４ポイントＦＦＴのデータフロー５００が示されている。データフロー５００は、データ並べ替え処理部５０１、バタフライ演算処理部５０２、５０３からなる延べ１６回の基数８のバタフライ演算処理、及び、ひねり係数｛Wk｝（W=exp(-2πj/N）, j2=-1)を乗算するひねり乗算処理部５０４を含む（図２６では、ひねり係数は(W0, W1,…,W７),…,(W0, W７,…,W49)）。【０００７】
図２６のデータフローでは、入力された時間領域のデータｘ(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
【発明の概要】
【発明が解決しようとする課題】
【００１５】
デジタル信号処理における信号データの２進数による表現方法として、２の補数表現が広く使われている。２の補数表現は、減算処理を加算処理で表現できることから、加減算処理回路を小さい回路規模で実現できる、という特徴がある。【００１６】
一方、２の補数表現では、値０の近傍における正の小さい値と負の小さい値ではビット単位での値が大きく異なる。このため、値が０の近傍で正と負とで頻繁に変化する信号を２の補数で表現した場合、ビット単位の動作率（トグル率）が大きい、という特徴がある。ＣＭＯＳ（Complementary Metal Oxide Semiconductor）回路により実現したデジタル信号処理回路の動的な消費電力（ダイナミック電力）Ｐは、下記に示す式(1)で表現することができる。
P=（1/2）*a*C*V2*f  … (1)【００１７】
ここで、
a:回路動作率（percentage-activity）、
C:負荷容量、
V:電圧、
f:動作周波数
である。回路動作率（percentage-activity）は、ある時間期間におけるスイッチング回数の推定値と該期間におけるクロックサイクル数の比率で与えられる。【００１８】
信号データのビット単位の動作率は回路動作率ａを決定することから、ビット単位の動作率の低減が、消費電力の低減に有効である。ところで、通信向け信号処理の信号データは、値０の近傍で正と負とで頻繁に変化することが多い。また、デジタル信号処理において重要な処理の１つとして、高速フーリエ変換（ＦＦＴ）処理においても、その内部データが値０の近傍の小さい値をとることが多い。【００１９】
これらの処理において、２の補数表現を用いた場合、ビット単位の動作率が大きくなり、その結果消費電力が大きくなる、という問題がある。【００２０】
それに対し、値０の近傍におけるビット単位の動作率が小さいデジタルデータの表現方法として、符号絶対値表現がある。図２７には、２の補数表現と符号絶対値表現の一例として、８ビットの信号データにおける＋７〜−８の信号値の２進数表現が示されている。２の補数表現では値０を境界として、正の値と負の値との間で上位ビット側のビット値が大きく異なることがわかる。したがって、値０の近傍で正と負とで頻繁に変化する信号を表現した場合、ビット単位の動作率が大きくなることになる。例えば、＋１から−１に変化した場合、最下位ビット（Least Significant Bit： LSB）以外の７ビットがすべて遷移することになる。【００２１】
一方、符号絶対値表現は、最上位ビット（Most Significant Bit： MSB）で符号を表し、それ以外のビットで値の絶対値を表すことから、値０を境界として、正の値と負の値との間でビット値の差異が小さい。したがって、値０の近傍で正と負とで頻繁に変化する信号を表現した場合でも、ビット単位の動作率は小さいという特徴がある。例えば、＋１から−１に変化した場合、最上位ビットの１ビットのみが遷移することになる。【００２２】
ところが、符号絶対値表現では、減算処理を加算処理で表現できないことから、加算処理回路と減算処理回路とを別に用意する必要がある。その結果、加減算処理を実現する回路の規模が大きくなる。回路規模は式(1)に示した動的な消費電力Ｐにおける負荷容量Ｃを決定することから、回路規模の増大は消費電力を増大させる。【００２３】
すなわち、符号絶対値表現は、２の補数表現と比較して、回路動作率ａを低減できるものの、加減算回路の負荷容量Ｃが増大する。このため、符号絶対値表現は、特に加減算処理の多い信号処理の場合、消費電力が大きくなる、という問題がある。【００２４】
加減算処理には、効率的に回路を実現することが可能な２の補数表現を使用し、
加減算処理以外には、動作率を低減できる符号絶対値表現を使用する、ことも考えられる。【００２５】
しかしながら、２の補数表現と符号絶対値表現との変換には、ビット反転処理と１加算処理（インクリメント処理）が必要になる。【００２６】
図２８には、２の補数表現と符号絶対値表現との変換回路６００の構成例が示されている。変換回路６００は、ビット反転回路６０１と１加算回路６０２とを接続して構成される。変換回路６００において、特に、１加算回路６０２の回路規模は、他の論理処理回路や演算処理回路と比較して無視できない規模となる。このため、変換処理が多く必要になる場合、その変換回路の分だけ、回路全体の回路規模や消費電力が大きくなる、という問題がある。【００２７】
したがって、本発明は、上記課題に鑑みて創案されたものであって、その目的は、回路全体の回路規模や消費電力の増大を抑制又は低減可能とする信号処理装置、方法、プログラムを提供することを目的とする。
【課題を解決するための手段】
【００２８】
本発明の１つの側面によれば、信号処理装置は、演算処理を行う演算処理部と、記憶処理を行う記憶処理部とを備え、データ表現形式として２の補数表現と、２の補数表現と異なる第２の表現形式との双方を使用して処理を行う。前記第２の表現形式は、データ値が正又は０の場合は２の補数表現と同一であり、データ値が負の場合は、２の補数表現から符号を示す最上位ビット以外のビットを反転した表現形式である。前記演算処理部は２の補数表現により表現されたデータ、又は、前記第２の表現形式により表現されたデータに補正処理を行ったデータの少なくともいずれかに対して演算処理を行う。前記記憶処理部は前記第２の表現形式により表現されたデータに対して記憶処理を行う。【００２９】
本発明の１つの側面によれば、バタフライ演算処理を行うバタフライ演算処理部と、ひねり乗算処理を行うひねり乗算処理部と、複数のデータの順序を並べ替えるデータ並べ替え処理部と、を備え、データ表現形式として２の補数表現と、２の補数表現と異なる第２の表現形式の双方を使用して演算処理を行うことで高速フーリエ変換又は逆高速フーリエ変換を行う高速フーリエ変換（ＦＦＴ）装置が提供される。前記第２の表現形式は、データ値が正又は０の場合は２の補数表現と同一であり、データ値が負の場合は、２の補数表現から符号を示す最上位ビット以外のビットを反転した表現である。前記バタフライ演算処理部は、２の補数表現により表現されたデータに対して処理を行う。前記データ並べ替え処理部は、前記第２の表現形式により表現されたデータに対して記憶処理を行う。前記ひねり乗算処理部は、乗算処理については前記第２の表現形式により表現されたデータに補正処理を行ったデータに対して処理を行い、加算処理については２の補数表現により表現されたデータに対して処理を行う。前記補正処理は、前記第２の表現形式により表現されたＮビット（Ｎは正整数）のデータが負の値の場合に、前記Ｎビット（Ｎは正整数）のデータのうち、最下位ビットからＭビット（ＭはＭ≦Ｎの正整数）に対して値１を加算する処理を行う。【００３０】
本発明の１つの側面によれば、２の補数表現と異なる第２の表現形式により表現されたデータに対して記憶処理を行う工程と、２の補数表現により表現されたデータ、又は、前記第２の表現形式により表現されたデータに補正処理を行ったデータの少なくともいずれかに対して演算処理を行う工程と、を含む信号処理方法が提供される。前記第２の表現形式は、データ値が正又は０の場合は、２の補数表現と同一であり、データ値が負の場合は、２の補数表現から符号を示す最上位ビット以外のビットを反転した表現形式である。【００３１】
本発明の１つの側面によれば、データ値が正又は０の場合は、２の補数表現と同一であり、データ値が負の場合は、２の補数表現から符号を示す最上位ビット以外のビットを反転した表現形式である第２の表現形式により表現されたデータに対する記憶処理と、２の補数表現により表現されたデータ、又は、前記第２の表現形式により表現されたデータに補正処理を行ったデータの少なくともいずれかに対する演算処理と、をプロセッサに実行させるプログラムが提供される。本発明によれば、該プログラムを記録した、半導体メモリやHDD（Hard Disk Drive）、CD(Compact Disk)、ＤＶＤ(Digital Versatile Disk)等の非一時的なコンピュータ読み出し可能な媒体(non-transitory computer-readable medium）が提供される。
【発明の効果】
【００３２】
本発明によれば、回路全体の回路規模や消費電力の増大を抑制又は低減可能としている。
【図面の簡単な説明】
【００３３】
【図１】本発明の第１の例示的な実施形態に係る信号処理装置の構成例を説明する図である。
【図２】本発明の第１の例示的な実施形態に係るデータ表現形式の一例を表形式で示す図である。
【図３】本発明の第１の例示的な実施形態に係る記憶処理部の構成例を説明する図である。
【図４】本発明の第１の例示的な実施形態に係る変換回路の構成例を説明する図である。
【図５】本発明の第１の例示的な実施形態に係る演算処理部の構成例を説明する図である。
【図６】本発明の第１の例示的な実施形態に係る記憶処理部の構成例を説明する図である。
【図７】本発明の第１の例示的な実施形態に係る演算処理部の構成例を説明する図である。
【図８】本発明の第１の例示的な実施形態に係る補正回路の構成例を説明する図である。
【図９】本発明の第１の例示的な実施形態に係る演算回路の構成を説明する図である。
【図１０】本発明の第１の例示的な実施形態に係る記憶処理部の構成例を説明する図である。
【図１１】本発明の第１の例示的な実施形態に係る演算処理部の構成例を説明する図である。
【図１２】本発明の第１の例示的な実施形態に係る演算処理部の構成例を説明する図である。
【図１３】本発明の第１の例示的な実施形態に係る記憶処理部の構成例を説明する図である。
【図１４】本発明の第２の例示的な実施形態に係るＦＦＴ装置の構成例を説明する図である。
【図１５】本発明の第２の例示的な実施形態に係るＦＦＴ処理における逐次順序に従うデータ組の配列を模式的に示す図である。
【図１６】本発明の第２の例示的な実施形態に係るＦＦＴ処理におけるビットリバース順序に従うデータ組の配列を模式的に示す図である。
【図１７】本発明の第２の例示的な実施形態に係るデータ並べ替え処理部の構成例を説明する図である。
【図１８】本発明の第２の例示的な実施形態に係るデータ並べ替え処理部の構成例を説明する図である。
【図１９】本発明の第２の例示的な実施形態に係るデータ並べ替え部の構成例を説明する図である。
【図２０】本発明の第２の例示的な実施形態に係る逐次順序に従うデータ組の配列を模式的に示す図である。
【図２１】本発明の第２の例示的な実施形態に係る中間順序に従うデータ組の配列を模式的に示す図である。
【図２２】本発明の第２の例示的な実施形態に係るデータ並べ替え部の動作を説明するタイムチャートである。
【図２３】本発明の第２の例示的な実施形態に係るデータ並べ替え部の構成例を説明する図である。
【図２４】本発明の第２の例示的な実施形態に係るデータ組内並べ替え部の動作を説明するタイムチャートである。
【図２５】本発明の第２の例示的な実施形態に係るひねり乗算処理部の構成例を説明する図である。
【図２６】６４ポイントＦＦＴ処理のデータフローを説明する図である。
【図２７】データ表現形式の一例を表形式で示した図である。
【図２８】変換回路の構成例を説明する図である。
【図２９】（Ａ）乃至（Ｃ）は本発明の例示的な第１の実施形態に係る方法の一形態を説明する図である。
【図３０】本発明の実施形態として、コンピュータプログラムの一形態を説明する図である。
【発明を実施するための形態】
【００３４】
（第１の例示的な実施形態）
図１は、本発明の第１の例示的な実施形態に係る信号処理装置（信号処理回路）１００の構成例を説明する図である。信号処理装置１００は、信号データのバッファリング処理、リタイミング処理や並べ替え処理等の記憶処理を行う記憶処理部として、第１の記憶処理部１０１と、第２の記憶処理部１０３と、第３の記憶処理部１０５と、第４の記憶処理部１０８とを備えている。また、信号処理装置１００は、加減算や乗除算等の演算処理を行う演算処理部として、第１の演算処理部１０２と、第２の演算処理部１０４と、第３の演算処理部１０６と、第４の演算処理部１０７とを備えている。なお、複数の記憶処理部を１つのユニット内に備えた構成としてもよい。また、複数の演算処理部を１つのユニット内に備えた構成としてもよい。
【００３５】
第１の記憶処理部１０１は、信号処理装置１００の外部から、２の補数表現により表現された信号データを入力して記憶処理を行い、２の補数表現により表現された信号データを第１の演算処理部１０２に出力する。
【００３６】
第１の演算処理部１０２は、第１の記憶処理部１０１から、２の補数表現により表現された信号データを入力して演算処理を行い、２の補数表現により表現された信号データを第２の記憶処理部１０３に出力する。
【００３７】
第２の記憶処理部１０３は、第１の演算処理部１０２から２の補数表現により表現された信号データを入力して記憶処理を行い、符号絶対値−−表現により表現された信号データを第２の演算処理部１０４に出力する。
【００３８】
第２の演算処理部１０４は、第２の記憶処理部１０３から、符号絶対値−−表現により表現された信号データを入力して演算処理を行い、符号絶対値−−表現により表現された信号データを第３の記憶処理部１０５に出力する。
【００３９】
第３の記憶処理部１０５は、第２の演算処理部１０４から符号絶対値−−表現により表現された信号データを入力して記憶処理を行い、符号絶対値−−表現により表現された信号データを第３の演算処理部１０６に出力する。
【００４０】
第３の演算処理部１０６は、第３の記憶処理部１０５から、符号絶対値−−表現により表現された信号データを入力して演算処理を行い、２の補数表現により表現された信号データを第４の演算処理部１０７に出力する。
【００４１】
第４の演算処理部１０７は、第３の演算処理部１０６から、２の補数表現により表現された信号データを入力して演算処理を行い、符号絶対値−−表現により表現された信号データを第４の記憶処理部１０８に出力する。
【００４２】
第４の記憶処理部１０８は、第４の演算処理部１０７から、符号絶対値−−表現により表現された信号データを入力して記憶処理を行い、２の補数表現により表現された信号データを信号処理装置１００の外部に出力する。
【００４３】
ここで、本発明に係る符号絶対値−−表現は、
データの値が正又は０の場合（非負の場合）、該データの２の補数表現と同一であり、
データの値が負の場合は、該データの２の補数表現に対して符号を示す最上位ビット以外のビットを反転した表現である。
【００４４】
図２に、符号絶対値−−表現とその比較として、２の補数表現、及び符号絶対値表現による、６ビットの信号データにおける＋１５〜−１６の信号値の２進数表現を示す。
【００４５】
図２において、データ値が正の場合、符号絶対値−−表現、２の補数表現、及び符号絶対値表現ともすべて同一のビット表現である。データ値が０の場合、符号絶対値−−表現と２の補数表現は同一のビット表現である。データ値が負の場合、符号絶対値−−表現は２の補数表現から、符号を示す最上位ビット以外のビットを反転した表現である。同様に、データ値が負の場合、２の補数表現は、符号絶対値−−表現から、符号を示す最上位ビット以外のビットを反転した表現である。「符号絶対値−−表現」は、本願特許請求の範囲の「第２の表現形式」に対応する。
【００４６】
図２に示すように、符号絶対値−−表現は、符号絶対値表現と同様に、値０を境界として、正の値と負の値との間でビット値の差異が小さい。したがって、値０の近傍で正と負とで頻繁に変化する信号を表現した場合でも、ビット単位の動作率は小さい、という特徴がある。例えば、＋１（"00001"）から−２("10001")に変化した場合、最上位ビットの１ビットのみが遷移することになる。
【００４７】
図３は、第１の記憶処理部１０１の構成例を示す図である。図３を参照すると、第１の記憶処理部１０１は、変換回路１０ａと、記憶回路３０と、変換回路１０ｂとを備えている。変換回路１０ａは、入力する２の補数表現で表現された信号データを、符号絶対値−−表現で表現された信号データに変換して出力する回路である。
【００４８】
記憶回路３０は、変換回路１０ａが出力する符号絶対値−−表現で表現された信号データを入力して符号絶対値−−表現のまま記憶処理を行い、符号絶対値−−表現のまま変換回路１０ｂに出力する回路である。
【００４９】
変換回路１０ｂは、記憶回路３０が出力する符号絶対値−−表現で表現された信号データを、２の補数表現で表現された信号データに変換して出力する回路である。
【００５０】
変換回路１０ａ、１０ｂは、例えば図４に示す変換回路１０で実現することができる。変換回路１０は、Ｎビット（Ｎは正の整数）の信号データを入力して、２の補数表現から符号絶対値−−表現へ、又は、符号絶対値−−表現から２の補数表現へ、変換して出力する回路である。
【００５１】
図４を参照すると、変換回路１０は、入力IN[N-1]から入力する符号を示す最上位ビットはそのまま符号ビットとしてOUT[N-1]に出力する。入力IN[0]〜IN[N-2]は、XOR（exclusive OR：排他的論理和）回路１７０〜１７N-2の第１端子にそれぞれ入力される。入力IN[N-1]から入力する符号を示す最上位ビットは、XOR回路１７０〜１７N-2の第２端子に入力される。XOR回路１７０〜１７N-2は第１端子と第２端子の入力の排他的論理和演算結果を出力OUT[0]〜OUT[N-2]にそれぞれ出力する。
【００５２】
入力するデータ値が正又は０の場合、入力IN[N-1]から入力する符号を示す最上位ビットは値０であり、出力OUT[0]〜OUT[N-2]には、入力IN[0]〜IN[N-2]に入力されたデータ値がそのまま出力される。
【００５３】
一方、入力するデータ値が負の場合、入力IN[N-1]から入力する符号を示す最上位ビットは値１であり、XOR回路１７０〜１７N-2における第１端子と第２端子の入力の排他的論理和処理により、出力OUT[0]〜OUT[N-2]には、入力IN[0]〜IN[N-2]に入力されたデータ値を反転したデータが出力される。
【００５４】
以上の処理により、変換回路１０は、入力IN[0]〜IN[N-1]に入力された２の補数表現で表現された信号データ（IN[N-1]は符号ビット）を符号絶対値−−表現に変換し、符号絶対値−−表現の信号データを出力OUT[0]〜OUT[N-1]から出力する（OUT[N-1]は符号ビット）。また、入力IN[0]〜IN[N-1]に入力された符号絶対値−−表現で表現された信号データ（IN[N-1]は符号ビット）を２の補数表現に変換し、２の補数表現の信号データを出力OUT[0]〜OUT[N-1]から出力する（OUT[N-1]は符号ビット）。
【００５５】
以上のように、変換回路１０において、２の補数表現と符号絶対値−−表現との変換は、ビット反転処理のみで実現することができる。すなわち、変換回路１０において、符号絶対値表現で必要とされた１加算処理（インクリメント処理）は必要とされない。ビット反転処理は、排他的論理和のみで実現できる。このため、他の論理処理回路や演算処理回路と比較して、圧倒的に小さい回路規模で、変換回路１０を実現することができる。
【００５６】
図５は、第１の演算処理部１０２の構成例を示す図である。第１の演算処理部１０２は、演算回路４０を備えている。演算回路４０は、入力する２の補数表現で表現された信号データに対して演算処理を行い、その結果を２の補数表現で表現された信号データとして出力する。
【００５７】
演算回路４０が行う演算処理は、具体的には、符号絶対値表現や符号絶対値−−表現では効率的な回路実現が難しい加算処理や減算処理を含む。
【００５８】
図６は、図１の第２の記憶処理部１０３の構成例を示す図である。第２の記憶処理部１０３は、変換回路１０と記憶回路３０とを備えている。
【００５９】
変換回路１０は、入力する２の補数表現で表現された信号データを、符号絶対値−−表現で表現された信号データに変換して出力する。
【００６０】
記憶回路３０は、変換回路１０ａが出力する符号絶対値−−表現で表現された信号データを入力して符号絶対値−−表現のまま記憶処理を行い、符号絶対値−−表現のまま出力する。
【００６１】
図７は、第２の演算処理部１０４の構成例を示す図である。第２の演算処理部１０４は、補正回路２０と演算回路４１とを備えている。補正回路２０は、入力する符号絶対値−−表現で表現された信号データに対して補正処理を行い、その結果を出力する回路である。
【００６２】
演算回路４１は、補正回路２０が補正処理した符号絶対値−−表現された信号データに対して演算処理を行い、その結果を符号絶対値−−表現された信号データとして出力する。演算回路４１が行う演算処理は、具体的には、符号絶対値表現や符号絶対値−−表現でも効率的な回路実現が可能な乗算処理や除算処理を含む。
【００６３】
図８は、図７の補正回路２０の構成例を示す図である。補正回路２０は、入力するＮビット（Ｎは正整数）の信号データＩＮが負の値の場合、入力ＩＮの最下位ビットからＭビット（ＭはＭ≦Ｎの正整数）（IN[0]〜IN[M-1]）に対して値１を加算する処理を行った結果を、出力ＯＵＴの最下位ビットからＭビット（OUT[0]〜OUT[M-1]）に出力する。、それ以外のビット（IN[M]〜IN[N-1]）については、補正回路２０は、入力ＩＮをそのまま出力ＯＵＴの該当するビット（OUT[M]〜OUT[N-1]）に出力する。
【００６４】
一方、入力ＩＮが正の値の場合は、補正回路２０は、信号データＩＮの値をそのまま信号データＯＵＴに出力する。
【００６５】
図８を参照すると、補正回路２０は、セレクタ回路２１と、加算回路２２を備えている。セレクタ回路２１は、入力IN[N-1]から入力する符号を示す最上位ビットを参照して、入力ＩＮが正の値（IN[N-1]が値０）の場合、値０を加算回路２２に出力し、入力ＩＮが負の値（IN[N-1]が値１）の場合、値１を加算回路２２に出力する。
【００６６】
加算回路２２は、セレクタ回路２１が出力する値と、入力ＩＮの最下位ビットからＭビット（IN[0]〜IN[M-1]）とを加算して、出力ＯＵＴの最下位ビットからＭビット（OUT[0]〜OUT[M-1]）に出力する回路である。
【００６７】
図７の演算回路４１は、例えば符号絶対値表現に係る演算回路で実現することができる。図９は、図７の演算回路４１の構成例を示す図である。演算回路４１は、符号演算回路４２と、符号なし演算回路４３を備えている。
【００６８】
符号演算回路４２は、符号絶対値表現において最上位ビットの符号ビットを演算する回路であり、入力Ａの最上位ビットである符号ビット４４と、入力Ｂの最上位ビットである符号ビット４５とを入力する。
【００６９】
符号演算回路４２は、
・符号ビット４４と符号ビット４５が両方とも値０である場合には、値０を符号ビット４８に出力し、
・符号ビット４４と符号ビット４５のいずれか一方が値１である場合には、値１を符号ビット４８に出力し、
・符号ビット４４と符号ビット４５が両方とも値１である場合には値、値０を符号ビット４８に出力することで、出力Ｃの符号ビットを演算して出力する。
【００７０】
符号なし演算回路４３は、符号絶対値表現において、符号ビット以外の絶対値部分を演算する回路である。
【００７１】
符号なし演算回路４３は、入力Ａの最上位ビット以外のビット４６と、入力Ｂの最上位ビット以外のビット４７とを入力して演算処理を行い、絶対値４９に出力することで、出力Ｃの符号ビット以外のビットである絶対値部分を演算して出力する。
【００７２】
上記したように、演算回路４１は、符号絶対値表現に係る演算回路であり、符号とそれ以外の絶対値とを別に演算して処理が可能な演算を実現することができる。具体的には、演算回路４１は、乗算処理や除算処理を実現することができる。
【００７３】
次に、補正回路２０の機能について説明する。図２に示すように、符号絶対値表現と符号絶対値−−表現とを比較すると、正の値の場合は、同じ２進数表現が同じ値を表現する。一方、負の値の場合は、同じ２進数表現について、符号絶対値表現よりも、符号絶対値−−表現の方が、１だけ小さい値を表現する。
【００７４】
したがって、演算回路４１のように、符号絶対値表現に係る演算回路で符号絶対値−−表現で表現された信号データを演算した場合、演算対象の入力データが負の値の場合には、演算結果に誤差が発生する。補正回路２０は、演算対象の入力データに補正を加えることで、演算結果の誤差を縮小する機能を提供する。補正回路２０は、入力するＮビットのうち最下位ビットからＭビットに対して、入力が負の値の場合に１を加算する。
【００７５】
したがって、演算回路４１に入力される値（負の値）が、符号絶対値−−表現で表現された値から、符号絶対値表現で表現された値に近づくことになる。その結果、演算結果における誤差を縮小することができる。
【００７６】
入力するＮビットのすべてのビットに対して、入力が負の値の場合に、１を加算した場合（Ｍ＝Ｎの場合）、演算回路４１に入力される値が、符号絶対値表現で表現された値と等しくなり、演算結果における誤差は発生しないが、入力するＮビットのすべてのビットに対して加算処理を行うので、加算回路２２の回路規模が大きくなる。すなわち、Ｍを大きくすると、演算誤差は小さくなるが、回路規模は大きくなり、Ｍを小さくすると、演算誤差は大きくなるが、回路規模は小さくなる、という特徴がある。
【００７７】
したがって、演算誤差が許容できる範囲で、Ｍをなるべく小さな値に設定することで、補正回路２０の回路規模を小さくすることができる。
【００７８】
図１０は、第３の記憶処理部１０５の構成例を示す図である。第３の記憶処理部１０５は、記憶回路３０を備え、符号絶対値−−表現で表現された信号データを入力して記憶処理を行い、符号絶対値−−表現のまま出力する回路である。
【００７９】
図１１は、第３の演算処理部１０６の構成例を示す図である。第３の演算処理部１０６は、補正回路２０と、演算回路４１と、変換回路１０とから構成することができる。
【００８０】
補正回路２０は、入力する符号絶対値−−表現で表現された信号データに対して補正処理を行い、その結果を出力する。
【００８１】
演算回路４１は、補正回路２０が補正処理した符号絶対値−−表現された信号データに対して演算処理を行い、その結果を符号絶対値−−表現された信号データとして出力する。
【００８２】
変換回路１０は、演算回路４１が出力した符号絶対値−−表現で表現された信号データを、２の補数表現で表現された信号データに変換して出力する。
【００８３】
図１２は、第４の演算処理部１０７の構成例を示す図である。第４の演算処理部１０７は、変換回路１０と、補正回路２０と、演算回路４１とから構成することができる。
【００８４】
変換回路１０は、入力する２の補数表現で表現された信号データを、符号絶対値−−表現で表現された信号データに変換して出力する。
【００８５】
補正回路２０は、入力する符号絶対値−−表現で表現された信号データに対して補正処理を行い、その結果を出力する。演算回路４１は、補正回路２０が補正処理した符号絶対値−−表現された信号データに対して演算処理を行い、その結果を符号絶対値−−表現された信号データとして出力する。
【００８６】
図１３は、第４の記憶処理部１０８の構成例を示す図である。第４の記憶処理部１０８は、記憶回路３０と変換回路１０とから構成することができる。
【００８７】
記憶回路３０は、入力する符号絶対値−−表現で表現された信号データを入力して符号絶対値−−表現のまま記憶処理を行い、符号絶対値−−表現のまま変換回路１０に出力する。
【００８８】
変換回路１０は、記憶回路３０が出力する符号絶対値−−表現で表現された信号データを、２の補数表現で表現された信号データに変換して出力する。
【００８９】
図２９（Ａ）は、第１の例示的な実施形態の方法を説明する図である。第１の例示的な実施形態の方法は、符号絶対値−−表現形式に変換したデータの記憶処理（ステップＳ１）と、２の補数表現により表現されたデータ、又は、符号絶対値−−表現形式により表現されたデータに補正処理を行ったデータの少なくともいずれかに対して演算を行う演算処理（ステップＳ２）とを少なくとも含む。なお、演算処理（ステップＳ２）のあとに記憶処理（ステップＳ１）をさらに含むようにしてもよい。また、演算処理（ステップＳ２）を最初に実行し、つづいて記憶処理（ステップＳ１）を実行するようにしてもよい。なお、上記ステップＳ１、Ｓ２の各処理は、メモリに接続されたプロセッサにプログラム（命令群）を実行させることで実現するようにしてもよい。
【００９０】
図２９（Ｂ）は、図２９（Ａ）の記憶処理（ステップＳ１）の手順の一例を説明する図である。記憶処理は、データを２の補数表現から符号絶対値−−表現形式に変換する第１の変換処理（ステップＳ１１）と、符号絶対値−−表現形式に変換したデータを記憶回路に記憶する記憶処理（ステップＳ１２）と、記憶処理後の符号絶対値−−表現形式のデータを記憶回路から読み出し２の補数表現へ変換して出力する第２の変換処理（ステップＳ１３）と、を含む。なお、図２９（Ｂ）において、演算処理（ステップＳ２）との組み合わせによっては、ステップＳ１２のみとしてもよいし、あるいは、ステップＳ１２に加えてステップＳ１１又はステップＳ１３のいずれか一方を含むようにしてもよい。
【００９１】
図２９（Ｃ）は、図２９（Ａ）の演算処理（ステップＳ２）の手順の一例を説明する図である。演算処理は、データを２の補数表現から符号絶対値−−表現形式に変換する第１の変換処理（ステップＳ２１）と、符号絶対値−−表現形式により表現されたデータに補正処理を行ったデータに対して演算を行う演算処理（ステップＳ２２）と、演算処理結果の符号絶対値−−表現形式のデータを２の補数表現へ変換して出力する第２の変換処理（ステップＳ２３）と、を含む。なお、記憶処理（ステップＳ１）から２の補数表現により表現されたデータが出力され、ステップＳ２２において、２の補数表現により表現されたデータに対して演算処理を行う場合、図２９（Ｃ）のステップＳ２１、ステップＳ２３は省略される。また、図２９（Ａ）の記憶処理（ステップＳ１）から符号絶対値−−表現形式により表現されたデータが出力され、図２９（Ｃ）のステップＳ２２において、符号絶対値−−表現形式により表現されたデータに補正処理を行ったデータに対して演算を行う場合、図２９（Ｃ）のステップＳ２１は省略される。すなわち、記憶処理（ステップＳ１）からのデータの表現形式と、演算処理（ステップＳ２）でのデータの表現形式の組み合わせに応じて、図２９（Ｃ）のステップＳ２１又はステップＳ２３の両方、又は、いずれか一方を含むようにしてもよい。
【００９２】
（第１の例示的な実施形態の効果）
以上説明したように、第１の例示的な実施形態では、信号処理装置１００は、第１の記憶処理部１０１、第２の記憶処理部１０３、第３の記憶処理部１０５、及び、第４の記憶処理部１０８において、符号絶対値−−表現で記憶処理を行う。さらに、信号処理装置１００は、第２の演算処理部１０４、及び第４の演算処理部１０７において、符号絶対値−−表現で演算処理を行う。
【００９３】
図２に示すように符号絶対値−−表現は、符号絶対値表現と同様に、値０を境界として、正の値と負の値との間でビット値の差異が小さい。したがって、値０の近傍で正と負とで頻繁に変化する信号を表現した場合でも、ビット単位の動作率は小さいという特徴がある。その結果、２の補数表現のまま処理するのに比べて、記憶処理や演算処理における回路の動作率を低減することができる。
【００９４】
また、変換回路１０による２の補数表現と符号絶対値−−表現との変換処理は、ビット反転処理のみで実現することができ、符号絶対値表現が必要とした１加算処理（インクリメント処理）を必要としない。
【００９５】
ビット反転処理は、ＸＯＲ回路のみで実現できるので、他の論理処理回路や演算処理回路と比較して圧倒的に小さい回路規模で実現することができる。
【００９６】
したがって、第１の例示的な実施形態では、値０の近傍で正と負とで頻繁に変化する信号を処理する場合でも、記憶処理部における回路の動作率を小さくすることができる。このため、記憶処理部における消費電力を低減することができる。
【００９７】
また、補正回路２０による符号絶対値−−表現の値の補正により、乗算や除算などの演算処理を、符号絶対値−−表現のまま演算しても、発生する演算誤差を小さくすることができる。そのため、符号絶対値−−表現を適用可能な演算回路を増加させることができるため、演算処理部における消費電力を低減することができる。
【００９８】
また、補正回路２０は、許容される演算誤差に応じて補正対象となるビット数（Ｍ）を最適な値に設定することができるので、補正回路２０の回路規模を小さくすることができる。その結果、演算処理部における消費電力を低減することができる。
【００９９】
一方、第１の例示的な実施形態では、第１の演算処理部１０２、及び第３の演算処理部１０６において、２の補数表現のまま演算処理される。そのため、これら演算処理部に係る回路の動作率は低減されないが、符号絶対値表現を適用した場合のようにデータ表現形式間の変換により回路規模が大きく増大することはない。したがって、第２の演算処理部１０４や第４の演算処理部１０７、記憶処理に係る消費電力が小さくなる分だけ、信号処理装置全体の消費電力を低減することができる。
【０１００】
（第２の例示的な実施形態）
図１４は、本発明の第２の例示的な実施形態に係るＦＦＴ装置４００の構成例を示す図である。ＦＦＴ装置４００は、図２６に示されたデータフロー５００にしたがって、２段階の基数８のバタフライ処理に分解された６４ポイントＦＦＴを、パイプライン回路方式によって処理する。
【０１０１】
ＦＦＴ装置４００は、時間領域のデータｘ(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)の８データを入力する。以降、３サイクル目から８サイクル目まで同様にして、データ組Ｑ３〜Ｑ８を構成するデータを入力する。
【０１１３】
逐次順序は、図１５に示された８つのデータ組Ｐ１、Ｐ２、Ｐ３、Ｐ４、Ｐ５、Ｐ６、Ｐ７、Ｐ８の順序をいう。データ組Ｐｓ（ｓは処理サイクルの順序を表す値であり、ｓ＝１、２、・・・、８）は、それぞれ、ｐｓ（０）からｐｓ（７）まで順に並んだ８個のデータからなる。図１５に示す順序で、８データずつ８サイクルの期間に合計で６４個のデータｘ(0)〜ｘ（63）が入力されるとして、ｐｓ（ｉ）（ｉ＝０，・・・，７）は、以下で与えられる。
ｐｓ（ｉ）＝ｘ［８×（ｓ−１）＋ｉ］  
【０１１４】
各データ組は、処理のサイクルの進行に対応して、Ｐ１、Ｐ２、Ｐ３、Ｐ４、Ｐ５、Ｐ６、Ｐ７、Ｐ８の順に並べられる。「逐次順序」は、ｉ×ｓ個のデータを、先頭からｉ個ずつデータ順に並べたデータ組をｓ組作成し、各データ組をサイクル順に並べたものである。
【０１１５】
ビットリバース順序は、図１６に示された８つのデータ組Ｑ１、Ｑ２、Ｑ３、Ｑ４、Ｑ５、Ｑ６、Ｑ７、Ｑ８の順序をいう。データ組Ｑｓ（ｓは処理サイクルの順序を表す値であり、ｓ＝１、２、・・・、８）は、それぞれ、ｑｓ（０）からｑｓ（７）まで、順に並んだ８個のデータからなる。逐次順序で入力された６４個のデータｘ(0)〜ｘ（63）に対して、ｑｓ（ｉ）（ｉ＝０，・・・，７）は、以下で与えられる。
ｑｓ（ｉ）＝ｘ［（ｓ−１）＋８×ｉ］
【０１１６】
各データ組は、処理のサイクルの進行に対応してＱ１、Ｑ２、Ｑ３、Ｑ４、Ｑ５、Ｑ６、Ｑ７、Ｑ８の順に並べられる。ビットリバース順序は、逐次順序で入力されたｉｓ個のデータを、先頭からｓ個ずつサイクル順に並べ、同じサイクルのｉ個のデータを１つの組としてデータ順に並べたものである。
【０１１７】
ビットリバース順序の各データ組は、逐次順序の各組が設定されていれば一意に定まる。ビットリバース順序の各データ組Ｑｓ（ｓ＝１，・・・，８）を構成するデータのうちｉ番目のデータＱｓ（ｉ）（ｉ＝０，・・・，７）は、逐次順序に従った（ｉ＋１）番目のサイクルにおける（ｓ−１）番目のデータＰｉ＋１（ｓ−１）である。すなわち、
Ｑｓ（ｉ）＝Ｐｉ＋１（ｓ−１）
【０１１８】
Ｑｓ（ｉ）とＰｉ＋１（ｓ−１）は、各データ組を構成するデータについて、サイクルの進行の順序とデータ位置に関する順序とが入れ替えられた関係にある。ビットリバース順序で入力されたデータをビットリバース順序にしたがって並び替えると、逐次順序となる。
【０１１９】
図１５における各行ｐｓ（ｉ）、及び図１６における８つの行ｑｓ（ｉ）は、それぞれ、次段のｉ番目に入力されるデータを示す。各データ組に含まれる８個の数字は、ＦＦＴのポイントのうちの１個を特定する識別情報であり、具体的にはｘ（ｎ）の添え字ｎの値である。
【０１２０】
なお、逐次順序及びビットリバース順序は、図１５、図１６に例示されたものに限定されない。すなわち、逐次順序の各データ組は、上記のように、ＦＦＴのポイント数、サイクル数、並列に処理するデータ数に応じて、データを順に並べて作成すればよい。そして、ビットリバース順序の各データ組は、上記のように、逐次順序で入力されるデータの、サイクルの進行に対する順序とデータ位置に対する順序を入れ替えて作成すればよい。
【０１２１】
第１のバタフライ演算処理部２４０ａは、図２６のデータフロー５００において２回行われる基数８のバタフライ演算処理の、１回目のバタフライ演算処理（５０２）（第１のバタフライ演算処理）を処理するバタフライ演算処理回路である。
【０１２２】
第１のバタフライ演算処理部２４０ａは、バタフライ演算処理の結果を、データｙ(n)（n＝0，1，・・・，63）として、図１５の逐次順序で出力する。
【０１２３】
第２のデータ並べ替え処理部２６０は、第１のバタフライ演算処理部２４０ａが逐次順序で出力するデータｙ(n)を、第２のバタフライ演算処理部２４０ｂに入力するために、図１６のビットリバース順序に並べ替える。
【０１２４】
ひねり乗算処理部２７０は、第１のバタフライ演算処理後に、ＦＦＴ演算における複素平面上の複素回転を処理する回路であり、図２６のデータフロー５００における、ひねり乗算処理部５０４に対応する。なお、ひねり乗算処理では、データの並へ替えは行われない。
【０１２５】
第２のバタフライ演算処理部２４０ｂは、図２６のデータフロー図における、２回目の基数８のバタフライ演算処理（５０３）を処理するバタフライ演算処理回路である。
【０１２６】
第２のバタフライ演算処理部２４０ｂは、ビットリバース順序で入力されるひねり乗算処理後のデータｙ'(n)（n＝0，1，・・・，63）に対してバタフライ演算処理を行い、その結果Ｘ(k)（n＝0，1，・・・，63）を、同じくビットリバース順序で出力する。
【０１２７】
第３のデータ並べ替え処理部２５０ｂは、第２のバタフライ演算処理部２４０ｂがビットリバース順序で出力するデータＸ(k)を、図１５の逐次順序に並べ替える。
【０１２８】
データ並べ替え処理部は、入力されたデータを一旦記憶し、記憶したデータの選択及び出力を制御することによって、図１５の逐次順序、図１６のビットリバース順序のそれぞれに従ったデータの並べ替え処理が実現される。以下に、データ並べ替え処理部の具体例を示す。
【０１２９】
図１４において、第１のデータ並べ替え処理部２５０ａ、及び第３のデータ並べ替え処理部２５０ｂは、例えば図１７に示すデータ並べ替え処理部２５０で実現することができる。
【０１３０】
図１７を参照すると、データ並べ替え処理部２５０は、変換回路２３１と、データ並べ替え部（データ並べ替え手段）２００と、及び変換回路２３２とを備えている。変換回路２３１で、逐次順序で入力される２の補数表現で表現されたデータを符号絶対値−−表現に変換した後、データ並べ替え部２００で、逐次順序からビットリバース順序へのデータ並べ替え処理や、ビットリバース順序から逐次順序へのデータ並べ替え処理を符号絶対値−−表現で行う。、そして、変換回路２３２で、符号絶対値−−表現から２の補数表現に変換して出力する。
【０１３１】
図１４の第２のデータ並べ替え処理部２６０は、例えば図１８に示すデータ並べ替え処理部２６０で実現することができる。図１８を参照すると、データ並べ替え処理部２６０は、変換回路２３１と、データ並べ替え部（データ並べ替え手段）２００とから構成される。変換回路２３１が、逐次順序で入力される２の補数表現で表現されたデータを符号絶対値−−表現に変換した後、データ並べ替え部（データ並べ替え手段）２００は、逐次順序からビットリバース順序へのデータ並べ替え処理を符号絶対値−−表現で行い、符号絶対値−−表現のまま出力する。
【０１３２】
図１７及び図１８において、変換回路２３１は、変換回路２３３ａ〜２３３ｈから構成され、並列に入力される２の補数表現で表現されたデータをそれぞれ符号絶対値−−表現に変換する。変換回路２３３ａ〜２３３ｈは、図４に示す変換回路１０で構成することができる。
【０１３３】
また、図１７において、変換回路２３２は、変換回路２３４ａ〜２３４ｈから構成され、並列に入力される符号絶対値−−表現で表現されたデータをそれぞれ２の補数表現に変換する。変換回路２３４ａ〜２３４ｈは、図４に示す変換回路１０で構成することができる。
【０１３４】
図１９は、図１７、図１８のデータ並べ替え部（データ並べ替え手段）２００の構成例を示す図である。図１９を参照すると、データ並べ替え部２００は、第１のデータ並べ替え部（第１のデータ並べ替え手段）２０１と、第２のデータ並べ替え部（第２のデータ並べ替え手段）２０４とから構成される。第１のデータ並べ替え部（第１のデータ並べ替え手段）２０１と第２のデータ並べ替え部（第２のデータ並べ替え手段）２０４とによる２段階のステップで、逐次順序からビットリバース順序へのデータ並べ替え処理や、ビットリバース順序から逐次順序へのデータ並べ替え処理を行う。
【０１３５】
図１９のデータ並べ替え部（データ並べ替え手段）２００におけるデータ並べ替え処理について、逐次順序からビットリバース順序へのデータ並べ替え処理を例に、具体的に説明する。
【０１３６】
第１のデータ並べ替え部（第１のデータ並べ替え手段）２０１は、１ステップ目の並べ替えとして、図２０に示す「逐次順序」のデータを、図２１に示されている「中間順序」のデータへ、並べ替えを行う。図２１に示す「中間順序」は、図２０に示されている「逐次順序」において、点線で示した４つのデータから構成されるデータ組の単位で、矢印で示した並べ替えを行った後の順序である。
【０１３７】
詳細には、図２０に示されている「逐次順序」において、
{2, 3, 10, 11}から構成されるデータ組と、{16, 17, 24, 25}から構成されるデータ組との並べ替え、
{4, 5, 12, 13}から構成されるデータ組と、{32, 33, 40, 41}から構成されるデータ組との並べ替え、
{6, 7, 14, 15}から構成されるデータ組と、{48, 49, 56, 57}から構成されるデータ組との並べ替え、
{20, 21, 28, 29}から構成されるデータ組と、{34, 35, 42, 43}から構成されるデータ組との並べ替え、
{22, 23, 30, 31}から構成されるデータ組と、{50, 51, 58, 59}から構成されるデータ組との並べ替え、
{38, 39, 46, 47}から構成されるデータ組と、{52, 53, 60, 61}から構成されるデータ組との並べ替えをそれぞれ行うと、図２１に示す「中間順序」になる。
【０１３８】
次に、第２のデータ並べ替え部（第２のデータ並べ替え手段）２０４は、２ステップ目の並べ替えとして、図２１に示されている「中間順序」から、図１６に示されている「ビットリバース順序」への並べ替え処理を符号絶対値−−表現のまま行う。
【０１３９】
詳細には、図２１の「中間順序」において、点線で示した４つのデータから構成される各データ組において、矢印で示した各データ組の内部の並べ替えを行った後の順序である。
【０１４０】
すなわち、図２１の「中間順序」において、
{0, 1, 8, 9}から構成されるデータ組における1と8との並べ替え、
{2, 3, 10, 11}から構成されるデータ組における3と10との並べ替え、
{4, 5, 12, 13}から構成されるデータ組における5と12との並べ替え、
{6, 7, 14, 15}から構成されるデータ組における7と14との並べ替え、
{16, 17, 24, 25}から構成されるデータ組における17と24との並べ替え、
{18, 19, 26, 27}から構成されるデータ組における19と26との並べ替え、
{20, 21, 28, 29}から構成されるデータ組における21と28との並べ替え、
{22, 23, 30, 31}から構成されるデータ組における23と30との並べ替え、
{32, 33, 40, 41}から構成されるデータ組における33と40との並べ替え、
{34, 35, 42, 43}から構成されるデータ組における35と42との並べ替え、
{36, 37, 44, 45}から構成されるデータ組における37と44との並べ替え、
{38, 39, 46, 47}から構成されるデータ組における39と46との並べ替え、
{48, 49, 56, 57}から構成されるデータ組における49と56との並べ替え、
{50, 51, 58, 59}から構成されるデータ組における51と58との並べ替え、
{52, 53, 60, 61}から構成されるデータ組における53と60との並べ替え、
{54, 55, 62, 63}から構成されるデータ組における55と62との並べ替え、
をそれぞれ行うと、図１６に示されている「ビットリバース順序」になる。
【０１４１】
図１９を参照すると、データ並べ替え部２００において、第１のデータ並べ替え部（第１のデータ並べ替え手段）２０１は、第１のデータ振り分け部（第１のデータ振り分け手段）２０２と、４つのＲＡＭ回路２１０ａ、２１０ｂ、２１０ｃ、２１０ｄと、第２のデータ振り分け部（第２のデータ振り分け手段）２０３とを備えている。
【０１４２】
第１のデータ振り分け部２０２は、８つの入力ｉｎ０〜ｉｎ７から８つのデータを同時に入力して、データの振り分け処理を行い、８つの出力２０５ａ〜２０５ｈへ出力する。
【０１４３】
ＲＡＭ回路２１０ａは、第１のデータ振り分け部２０２が２０５ａ及び２０５ｂに出力した２つのデータを組みにして記憶し、２０６ａ及び２０６ｂに再び２つのデータとして出力する。
【０１４４】
同様に、ＲＡＭ回路２１０ｂは、第１のデータ振り分け部２０２が２０５ｃ及び２０５ｄに出力した２つのデータを組みにして記憶し、２０６ｃ及び２０６ｄに再び２つのデータとして出力する。
【０１４５】
ＲＡＭ回路２１０ｃは、第１のデータ振り分け部２０２が２０５ｅ及び２０５ｆに出力した２つのデータを組みにして記憶し、２０６ｅ及び２０６ｆに再び２つのデータとして出力する。
【０１４６】
ＲＡＭ回路２１０ｄは、第１のデータ振り分け部２０２が２０５ｇ及び２０５ｈに出力した２つのデータを組みにして記憶し、２０６ｇ及び２０６ｈに再び２つのデータとして出力する。
【０１４７】
第２のデータ振り分け部２０３は、８つの入力２０６ａ〜２０６ｈから８つのデータを同時に入力して、データの振り分け処理を行い、８つの出力２０７ａ〜２０７ｈへ出力する。
【０１４８】
第２のデータ並べ替え部（第２のデータ並べ替え手段）２０４は、４つのデータ組内並べ替え部２２０ａ〜２２０ｄから構成される。
【０１４９】
データ組内並べ替え部２２０ａは、２つの入力２０７ａ、２０７ｂを入力して、４つのデータから構成されるデータ組の内部で並べ替え処理を行い、出力ｏｕｔ０、ｏｕｔ１に出力する。
【０１５０】
同様に、データ組内並べ替え部２２０ｂは、２つの入力２０７ｃ、２０７ｄを入力して、４つのデータから構成されるデータ組の内部で並べ替え処理を行い、出力ｏｕｔ２、ｏｕｔ３に出力する。
【０１５１】
データ組内並べ替え部２２０ｃは、２つの入力２０７ｅ、２０７ｆを入力して、４つのデータから構成されるデータ組の内部で並べ替え処理を行い、出力ｏｕｔ４、ｏｕｔ５に出力する。
【０１５２】
データ組内並べ替え部２２０ｄは、２つの入力２０７ｇ、２０７ｈを入力して、４つのデータから構成されるデータ組の内部で並べ替え処理を行い、出力ｏｕｔ６、ｏｕｔ７に出力する。なお、図１９のデータ並べ替え部２００が、図１８の第２のデータ並べ替え処理部２６０のデータ並べ替え部２００を構成する場合、図１９の第２のデータ並べ替え部（第２のデータ並べ替え手段）２０４の出力ｏｕｔ０〜ｏｕｔ７は、図１８の第２のデータ並べ替え処理部２６０の出力ｏｕｔ０〜ｏｕｔ７に対応する。図１９のデータ並べ替え部２００が、図１７のデータ並べ替え処理部２５０のデータ並べ替え部２００を構成する場合、図１９の第２のデータ並べ替え部（第２のデータ並べ替え手段）２０４の出力ｏｕｔ０〜ｏｕｔ７は、図１７の変換回路２３２（変換回路２３４ａ〜２３４ｈ）のそれぞれの入力に対応する。
【０１５３】
次に、データ並べ替え部２００の具体的な動作を説明する。図２２は、データ並べ替え部２００の動作を示すタイムチャートである。図２２の横軸は時間（サイクル番号で表す）であり、各行は、図１９の各部のデータ線（入力、出力）のデータを表している。図２２において、サイクル（列）とデータ線（行）の配列の要素の数字：０〜６３は、データｘ（０）・・・、ｘ（６３）（例えば図１５のデータ組Ｐ１、・・・、Ｐ８の各データ）を表している。
【０１５４】
データ並べ替え部２００は、ｔ０〜ｔ７の８サイクルにおいて８並列で、０〜６３の６４個のデータを逐次順序で入力し、ｔ８〜ｔ１５の８サイクルにおいて８並列で、０〜６３の６４個のデータをビットリバース順序で出力する。
【０１５５】
まず、第１のデータ並べ替え部（第１のデータ並べ替え手段）２０１の動作の詳細を説明する。第１のデータ並べ替え部２０１は、ｔ０〜ｔ７の８サイクルにおいて８並列で、０〜６３の６４個のデータを逐次順序で入力し、ｔ８〜ｔ１５の８サイクルにおいて８並列で、０〜６３の６４個のデータを中間順序で出力する。
【０１５６】
第１のデータ振り分け部２０２は、以下の動作を行う。なお、以下では、動作主体である第１のデータ振り分け部２０２は省略される。
【０１５７】
サイクルｔ０及びｔ１において、
ｉｎ０から入力したデータを２０５ａに出力し、
ｉｎ１から入力したデータを２０５ｂに出力し、
ｉｎ２から入力したデータを２０５ｃに出力し、
ｉｎ３から入力したデータを２０５ｄに出力し、
ｉｎ４から入力したデータを２０５ｅに出力し、
ｉｎ５から入力したデータを２０５ｆに出力し、
ｉｎ６から入力したデータを２０５ｇに出力し、
ｉｎ７から入力したデータを２０５ｈに出力する。
【０１５８】
サイクルｔ２及びｔ３において、
ｉｎ０から入力したデータを２０５ｃに出力し、
ｉｎ１から入力したデータを２０５ｄに出力し、
ｉｎ２から入力したデータを２０５ｅに出力し、
ｉｎ３から入力したデータを２０５ｆに出力し、
ｉｎ４から入力したデータを２０５ｇに出力し、
ｉｎ５から入力したデータを２０５ｈに出力し、
ｉｎ６から入力したデータを２０５ａに出力し、
ｉｎ７から入力したデータを２０５ｂに出力する。
【０１５９】
サイクルｔ４及びｔ５において、
ｉｎ０から入力したデータを２０５ｅに出力し、
ｉｎ１から入力したデータを２０５ｆに出力し、
ｉｎ２から入力したデータを２０５ｇに出力し、
ｉｎ３から入力したデータを２０５ｈに出力し、
ｉｎ４から入力したデータを２０５ａに出力し、
ｉｎ５から入力したデータを２０５ｂに出力し、
ｉｎ６から入力したデータを２０５ｃに出力し、
ｉｎ７から入力したデータを２０５ｄに出力する。
【０１６０】
サイクルｔ６及びｔ７において、
ｉｎ０から入力したデータを２０５ｇに出力し、
ｉｎ１から入力したデータを２０５ｈに出力し、
ｉｎ２から入力したデータを２０５ａに出力し、
ｉｎ３から入力したデータを２０５ｂに出力し、
ｉｎ４から入力したデータを２０５ｃに出力し、
ｉｎ５から入力したデータを２０５ｄに出力し、
ｉｎ６から入力したデータを２０５ｅに出力し、
ｉｎ７から入力したデータを２０５ｆに出力する。
【０１６１】
すわなち、第１のデータ振り分け部２０２は、サイクルｔ０からｔ７において以下の動作を行う。
【０１６２】
（１）サイクルｔ０において、入力ｉｎ０〜ｉｎ７から０〜７の８データをそれぞれ入力し、出力２０５ａ〜２０５ｈに０〜７の８データをそれぞれ出力する。
【０１６３】
（２）サイクルｔ１において、入力ｉｎ０〜ｉｎ７から８〜１５の８データをそれぞれ入力し、出力２０５ａ〜２０５ｈに８〜１５の８データをそれぞれ出力する。
【０１６４】
（３）サイクルｔ２において、入力ｉｎ０〜ｉｎ７から１６〜２３の８データをそれぞれ入力し、出力２０５ａ〜２０５ｈに２２、２３、及び１６〜２１の８データをそれぞれ出力する。
【０１６５】
（４）サイクルｔ３において、入力ｉｎ０〜ｉｎ７から２４〜３１の８データをそれぞれ入力し、出力２０５ａ〜２０５ｈに３０、３１、及び２４〜２９の８データをそれぞれ出力する。
【０１６６】
（５）サイクルｔ４において、入力ｉｎ０〜ｉｎ７から３２〜３９の８データをそれぞれ入力し、出力２０５ａ〜２０５ｈに３６〜３９、及び３２〜３５の８データをそれぞれ出力する。
【０１６７】
（６）サイクルｔ５において、入力ｉｎ０〜ｉｎ７から４０〜４７の８データをそれぞれ入力し、出力２０５ａ〜２０５ｈに４４〜４７、及び４０〜４３の８データをそれぞれ出力する。
【０１６８】
（７）サイクルｔ６において、入力ｉｎ０〜ｉｎ７から４８〜５５の８データをそれぞれ入力し、出力２０５ａ〜２０５ｈに５０〜５５、及び４８、４９の８データをそれぞれ出力する。
【０１６９】
（８）サイクルｔ７において、入力ｉｎ０〜ｉｎ７から５６〜６３の８データをそれぞれ入力し、出力２０５ａ〜２０５ｈに５８〜６３、及び５６、５７の８データをそれぞれ出力する。
【０１７０】
なお、上記（１）〜（８）において、０〜７、８〜１５、１６〜２３、２４〜３１、３２〜３９、４０〜４７、４８〜５５、５６〜６３の各８データは、例えば図１５のデータ組Ｐ１を構成するｘ（０）〜ｘ（７）、データ組Ｐ２を構成するｘ（８）〜ｘ（１５）、データ組Ｐ３を構成するｘ（１６）〜ｘ（２３）、データ組Ｐ４を構成するｘ（２４）〜ｘ（３１）、データ組Ｐ５を構成するｘ（３２）〜ｘ（３９）、データ組Ｐ６を構成するｘ（４０）〜ｘ（４７）、データ組Ｐ７を構成するｘ（４８）〜ｘ（５５）、データ組Ｐ８を構成するｘ（５６）〜ｘ（６３）に対応している。すなわち、データの数字ｎはｘ（ｎ）の添え字ｎを表している。以下、データに関して、同様の表記が用いられる。
【０１７１】
以上説明したように、第１のデータ振り分け部２０２は、並列して同時に入力する８つのデータに対してローテート（rotate）処理して出力するものであり、例えばシフト回路で容易に実現することができる。例えばｉｎ０〜ｉｎ７からの８データを並列に記憶保持するレジスタにおいて、例えばサイクルｔ２及びｔ３では、２つのデータ分、右ローテートすることで、ｉｎ６、ｉｎ７、ｉｎ０〜ｉｎ５のデータをこの順に並べた８データが得られる。サイクルｔ４及びｔ５では、例えば４つのデータ分、左又は右にローテートすることで、ｉｎ４〜ｉｎ７、ｉｎ０〜ｉｎ３のデータをこの順に並べた８データが得られる。サイクルｔ６及びｔ７では、例えば２つのデータ分、左ローテートすることで、ｉｎ２〜ｉｎ７、ｉｎ０〜ｉｎ１のデータをこの順に並べた８データが得られる。並列８データは、それぞれ、出力２０５ａ〜２０５ｈに出力される。
【０１７２】
次に、ＲＡＭ回路２１０ａは、以下の動作を行う。なお、第１のデータ振り分け部２０２の出力２０５ａ、２０５ｂは、ＲＡＭ回路２１０ａの入力にそれぞれ接続されるため、ＲＡＭ回路２１０ａに関する説明では、入力２０５ａ、２０５ｂという。また、動作主体であるＲＡＭ回路２１０ａは省略される。ＲＡＭ回路２１０ｂ〜２１０ｄの入力についても同様とする。
【０１７３】
（１）サイクルｔ０において入力２０５ａ、２０５ｂから入力したデータ０，１を、サイクルｔ８において出力２０６ａ、２０６ｂに出力する。
【０１７４】
（２）サイクルｔ１において入力２０５ａ、２０５ｂから入力したデータ８，９を、サイクルｔ９において出力２０６ａ、２０６ｂに出力する。
【０１７５】
（３）サイクルｔ２において入力２０５ａ、２０５ｂから入力したデータ２２，２３を、サイクルｔ１４において出力２０６ａ、２０６ｂに出力する。
【０１７６】
（４）サイクルｔ３において入力２０５ａ、２０５ｂから入力したデータ３０，３１を、サイクルｔ１５において出力２０６ａ、２０６ｂに出力する。
【０１７７】
（５）サイクルｔ４において入力２０５ａ、２０５ｂから入力したデータ３６，３７を、サイクルｔ１２において出力２０６ａ、２０６ｂに出力する。
【０１７８】
（６）サイクルｔ５において入力２０５ａ、２０５ｂから入力したデータ４４，４５を、サイクルｔ１３において出力２０６ａ、２０６ｂに出力する。
【０１７９】
（７）サイクルｔ６において入力２０５ａ、２０５ｂから入力したデータ５０，５１を、サイクルｔ１０において出力２０６ａ、２０６ｂに出力する。
【０１８０】
（８）サイクルｔ７において入力２０５ａ、２０５ｂから入力したデータ５８，５９を、サイクルｔ１１において出力２０６ａ、２０６ｂに出力する。
【０１８１】
同様に、ＲＡＭ回路２１０ｂは、以下の動作を行う。
【０１８２】
（１）サイクルｔ０において入力２０５ｃ、２０５ｄから入力した２，３の２つのデータを、サイクルｔ１０において出力２０６ｃ、２０６ｄに出力する。
【０１８３】
（２）サイクルｔ１において入力２０５ｃ、２０５ｄから入力した１０，１１の２つのデータを、サイクルｔ１１において出力２０６ｃ、２０６ｄに出力する。
【０１８４】
（３）サイクルｔ２において入力２０５ｃ、２０５ｄから入力した１６，１７の２つのデータを、サイクルｔ８において出力２０６ｃ、２０６ｄに出力する。
【０１８５】
（４）サイクルｔ３において入力２０５ｃ、２０５ｄから入力した２４，２５の２つのデータを、サイクルｔ９において出力２０６ｃ、２０６ｄに出力する。
【０１８６】
（５）サイクルｔ４において入力２０５ｃ、２０５ｄから入力した３８，３９の２つのデータを、サイクルｔ１４において出力２０６ｃ、２０６ｄに出力する。
【０１８７】
（６）サイクルｔ５において入力２０５ｃ、２０５ｄから入力した４６，４７の２つのデータを、サイクルｔ１５において出力２０６ｃ、２０６ｄに出力する。
【０１８８】
（７）サイクルｔ６において入力２０５ｃ、２０５ｄから入力した５２，５３の２つのデータを、サイクルｔ１２において出力２０６ｃ、２０６ｄに出力する。
【０１８９】
（８）サイクルｔ７において入力２０５ｃ、２０５ｄから入力した６０，６１の２つのデータを、サイクルｔ１３において出力２０６ｃ、２０６ｄに出力する。
【０１９０】
同様に、ＲＡＭ回路２１０ｃは、以下の動作を行う。
【０１９１】
（１）サイクルｔ０において入力２０５ｅ、２０５ｆから入力した４，５の２つのデータを、サイクルｔ１２において出力２０６ｅ、２０６ｆに出力する。
【０１９２】
（２）サイクルｔ１において入力２０５ｅ、２０５ｆから入力した１２，１３の２つのデータを、サイクルｔ１３において出力２０６ｅ、２０６ｆに出力する。
【０１９３】
（３）サイクルｔ２において入力２０５ｅ、２０５ｆから入力した１８，１９の２つのデータを、サイクルｔ１０において出力２０６ｅ、２０６ｆに出力する。
【０１９４】
（４）サイクルｔ３において入力２０５ｅ、２０５ｆから入力した２６，２７の２つのデータを、サイクルｔ１１において出力２０６ｅ、２０６ｆに出力する。
【０１９５】
（５）サイクルｔ４において入力２０５ｅ、２０５ｆから入力した３２，３３の２つのデータを、サイクルｔ８において出力２０６ｅ、２０６ｆに出力する。
【０１９６】
（６）サイクルｔ５において入力２０５ｅ、２０５ｆから入力した４０，４１の２つのデータを、サイクルｔ９において出力２０６ｅ、２０６ｆに出力する。
【０１９７】
（７）サイクルｔ６において入力２０５ｅ、２０５ｆから入力した５４，５５の２つのデータを、サイクルｔ１４において出力２０６ｅ、２０６ｆに出力する。
【０１９８】
（８）サイクルｔ７において入力２０５ｅ、２０５ｆから入力した６２，６３の２つのデータを、サイクルｔ１５において出力２０６ｅ、２０６ｆに出力する。
【０１９９】
同様に、ＲＡＭ回路２１０ｄは、以下の動作を行う。
【０２００】
（１）サイクルｔ０において入力２０５ｇ、２０５ｈから入力した６，７の２つのデータを、サイクルｔ１４において出力２０６ｇ、２０６ｈに出力する。
【０２０１】
（２）サイクルｔ１において入力２０５ｇ、２０５ｈから入力した１４，１５の２つのデータを、サイクルｔ１５において出力２０６ｇ、２０６ｈに出力する。
【０２０２】
（３）サイクルｔ２において入力２０５ｇ、２０５ｈから入力した２０，２１の２つのデータを、サイクルｔ１２において出力２０６ｇ、２０６ｈに出力する。
【０２０３】
（４）サイクルｔ３において入力２０５ｇ、２０５ｈから入力した２８，２９の２つのデータを、サイクルｔ１３において出力２０６ｇ、２０６ｈに出力する。
【０２０４】
（５）サイクルｔ４において入力２０５ｇ、２０５ｈから入力した３４，３５の２つのデータを、サイクルｔ１０において出力２０６ｇ、２０６ｈに出力する。
【０２０５】
（６）サイクルｔ５において入力２０５ｇ、２０５ｈから入力した４２，４３の２つのデータを、サイクルｔ１１において出力２０６ｇ、２０６ｈに出力する。
【０２０６】
（７）サイクルｔ６において入力２０５ｇ、２０５ｈから入力した４８，４９の２つのデータを、サイクルｔ８において出力２０６ｇ、２０６ｈに出力する。
【０２０７】
（８）サイクルｔ７において入力２０５ｇ、２０５ｈから入力した５６，５７の２つのデータを、サイクルｔ９において出力２０６ｇ、２０６ｈに出力する。
【０２０８】
次に、第２のデータ振り分け部２０３は、以下の動作を行う。なお、ＲＡＭ回路２１０ａ〜２１０ｄの出力２０６ａ〜２０６ｈは第２のデータ振り分け部２０３の入力に接続されるため、第２のデータ振り分け部２０３の説明では、入力２０６ａ〜２０６ｈという。また、動作主体である第２のデータ振り分け部２０３は省略される。
【０２０９】
サイクルｔ８及びｔ９において、
２０６ａから入力したデータを２０７ａに出力し、
２０６ｂから入力したデータを２０７ｂに出力し、
２０６ｃから入力したデータを２０７ｃに出力し、
２０６ｄから入力したデータを２０７ｄに出力し、
２０６ｅから入力したデータを２０７ｅに出力し、
２０６ｆから入力したデータを２０７ｆに出力し、
２０６ｇから入力したデータを２０７ｇに出力し、
２０６ｈから入力したデータを２０７ｈに出力する。
【０２１０】
サイクルｔ１０及びｔ１１において、
２０６ａから入力したデータを２０７ｇに出力し、
２０６ｂから入力したデータを２０７ｈに出力し、
２０６ｃから入力したデータを２０７ａに出力し、
２０６ｄから入力したデータを２０７ｂに出力し、
２０６ｅから入力したデータを２０７ｃに出力し、
２０６ｆから入力したデータを２０７ｄに出力し、
２０６ｇから入力したデータを２０７ｅに出力し、
２０６ｈから入力したデータを２０７ｆに出力する。
【０２１１】
サイクルｔ１２及びｔ１３において、
２０６ａから入力したデータを２０７ｅに出力し、
２０６ｂから入力したデータを２０７ｆに出力し、
２０６ｃから入力したデータを２０７ｇに出力し、
２０６ｄから入力したデータを２０７ｈに出力し、
２０６ｅから入力したデータを２０７ａに出力し、
２０６ｆから入力したデータを２０７ｂに出力し、
２０６ｇから入力したデータを２０７ｃに出力し、
２０６ｈから入力したデータを２０７ｄに出力する。
【０２１２】
サイクルｔ１４及びｔ１５において、
２０６ａから入力したデータを２０７ｃに出力し、
２０６ｂから入力したデータを２０７ｄに出力し、
２０６ｃから入力したデータを２０７ｅに出力し、
２０６ｄから入力したデータを２０７ｆに出力し、
２０６ｅから入力したデータを２０７ｇに出力し、
２０６ｆから入力したデータを２０７ｈに出力し、
２０６ｇから入力したデータを２０７ａに出力し、
２０６ｈから入力したデータを２０７ｂに出力する。
【０２１３】
すわなち、第２のデータ振り分け部２０３は、以下の動作を行う。
【０２１４】
（１）サイクルｔ８において、入力２０６ａ〜２０６ｈから０，１，１６、１７，３２，３３，４８，４９の８データをそれぞれ入力し、出力２０７ａ〜２０７ｈに０，１，１６、１７，３２，３３，４８，４９の８データをそれぞれ出力する。
【０２１５】
（２）サイクルｔ９において、入力２０６ａ〜２０６ｈから８，９，２４，２５，４０，４１，５６，５７の８データをそれぞれ入力し、出力２０７ａ〜２０７ｈに８，９，２４，２５，４０，４１，５６，５７の８データをそれぞれ出力する。
【０２１６】
（３）サイクルｔ１０において、入力２０６ａ〜２０６ｈから５０，５１，２，３，１８，１９，３４，３５の８データをそれぞれ入力し、出力２０７ａ〜２０７ｈに２，３，１８，１９，３４，３５，５０，５１の８データをそれぞれ出力する。
【０２１７】
（４）サイクルｔ１１において、入力２０６ａ〜２０６ｈから５８，５９，１０，１１，２６，２７，４２，４３の８データをそれぞれ入力し、出力２０７ａ〜２０７ｈに１０，１１，２６，２７，４２，４３，５８，５９の８データをそれぞれ出力する。
【０２１８】
（５）サイクルｔ１２において、入力２０６ａ〜２０６ｈから３６，３７，５２，５３，４，５，２０，２１の８データをそれぞれ入力し、出力２０７ａ〜２０７ｈに４，５，２０，２１，３６，３７，５２，５３の８データをそれぞれ出力する。
【０２１９】
（６）サイクルｔ１３において、入力２０６ａ〜２０６ｈから４４，４５，６０，６１，１２，１３，２８，２９の８データをそれぞれ入力し、出力２０７ａ〜２０７ｈに１２，１３，２８，２９，４４，４５，６０，６１の８データをそれぞれ出力する。
【０２２０】
（７）サイクルｔ１４において、入力２０６ａ〜２０６ｈから２２，２３，３８，３９，５４，５５，６，７の８データをそれぞれ入力し、出力２０７ａ〜２０７ｈに６，７，２２，２３，３８，３９，５４，５５の８データをそれぞれ出力する。
【０２２１】
（８）サイクルｔ１５において、入力２０６ａ〜２０６ｈから３０，３１，４６，４７，６２，６３，１４，１５の８データをそれぞれ入力し、出力２０７ａ〜２０７ｈに１４，１５，３０，３１，４６，４７，６２，６３の８データをそれぞれ出力する。
【０２２２】
第１のデータ振り分け部２０２と同様に、第２のデータ振り分け部２０３も、並列して同時に入力する８つのデータに対してローテート処理して出力するものであり、例えばシフト回路で容易に実現することができる。
【０２２３】
次に、図２２を参照して、第２のデータ並べ替え部（第２のデータ並べ替え手段）２０４の動作の詳細を説明する。第２のデータ並べ替え部２０４は、ｔ８〜ｔ１５の８サイクルにおいて８並列で、０〜６３の６４個のデータを中間順序で入力し、ｔ９〜ｔ１６の８サイクルにおいて８並列で、０〜６３の６４個のデータをビットリバース順序で出力する。
【０２２４】
データ組内並べ替え部２２０ａは、以下のように動作する。なお、動作主体であるデータ組内並べ替え部２２０ａは省略される。
【０２２５】
入力２０７ａ、２０７ｂから、
サイクルｔ８において、０，１の２つのデータを入力し、
サイクルｔ９において、８，９の２つのデータを入力し、
出力ｏｕｔ０、ｏｕｔ１に、
サイクルｔ９において、０，８の２つのデータを出力し、
サイクルｔ１０において、１，９の２つのデータを出力する。
【０２２６】
同様に、入力２０７ａ、２０７ｂから、
サイクルｔ１０において、２，３の２つのデータを入力し、
サイクルｔ１１において、１０，１１の２つのデータを入力し、
出力ｏｕｔ０、ｏｕｔ１に、
サイクルｔ１１において、２，１０の２つのデータを出力し、
サイクルｔ１２において、３，１１の２つのデータを出力する。
【０２２７】
入力２０７ａ、２０７ｂから、
サイクルｔ１２において、４，５の２つのデータを入力し、
サイクルｔ１３において、１２，１３の２つのデータを入力し、
出力ｏｕｔ０、ｏｕｔ１に、
サイクルｔ１３において、４，１２の２つのデータを出力し、
サイクルｔ１４において、５，１３の２つのデータを出力する。
【０２２８】
入力２０７ａ、２０７ｂから、
サイクルｔ１４において、６，７の２つのデータを入力し、
サイクルｔ１５において、１４，１５の２つのデータを入力し、
出力ｏｕｔ０、ｏｕｔ１に、
サイクルｔ１５において、６，１４の２つのデータを出力し、
サイクルｔ１６において、７，１５の２つのデータを出力する。
【０２２９】
データ組内並べ替え部２２０ｂは、以下のように動作する。なお、動作主体であるデータ組内並べ替え部２２０ｂは省略される。
【０２３０】
入力２０７ｃ、２０７ｄから、
サイクルｔ８において、１６，１７の２つのデータを入力し、
サイクルｔ９において、２４，２５の２つのデータを入力し、
出力ｏｕｔ２、ｏｕｔ３に、
サイクルｔ９において、１６，２４の２つのデータを出力し、
サイクルｔ１０において、１７，２５の２つのデータを出力する。
【０２３１】
同様に、
入力２０７ｃ、２０７ｄから、
サイクルｔ１０において、１８，１９の２つのデータを入力し、
サイクルｔ１１において、２６，２７の２つのデータを入力し、
出力ｏｕｔ２、ｏｕｔ３に、
サイクルｔ１１において、１８，２６の２つのデータを出力し、
サイクルｔ１２において、１９，２７の２つのデータを出力する。
【０２３２】
入力２０７ｃ、２０７ｄから、
サイクルｔ１２において、２０，２１の２つのデータを入力し、
サイクルｔ１３において、２８，２９の２つのデータを入力し、
出力ｏｕｔ２、ｏｕｔ３に、
サイクルｔ１３において、２０，２８の２つのデータを出力し、
サイクルｔ１４において、２１，２９の２つのデータを出力する。
【０２３３】
入力２０７ｃ、２０７ｄから、
サイクルｔ１４において、２２，２３の２つのデータを入力し、
サイクルｔ１５において、３０，３１の２つのデータを入力し、
出力ｏｕｔ２、ｏｕｔ３に、
サイクルｔ１５において、２２，３０の２つのデータを出力し、
サイクルｔ１６において、２３，３１の２つのデータを出力する。
【０２３４】
データ組内並べ替え部２２０ｃは、以下のように動作する。なお、動作主体であるデータ組内並べ替え部２２０ｃは省略される。
【０２３５】
入力２０７ｅ、２０７ｆから、
サイクルｔ８において、３２，３３の２つのデータを入力し、
サイクルｔ９において、４０，４１の２つのデータを入力し、
出力ｏｕｔ４、ｏｕｔ５に、
サイクルｔ９において、３２，４０の２つのデータを出力し、
サイクルｔ１０において、３３，４１の２つのデータを出力する。
【０２３６】
同様に、
入力２０７ｅ、２０７ｆから、
サイクルｔ１０において、３４，３５の２つのデータを入力し、
サイクルｔ１１において、４２，４３の２つのデータを入力し、
出力ｏｕｔ４、ｏｕｔ５に、
サイクルｔ１１において、３４，４２の２つのデータを出力し、
サイクルｔ１２において、３５，４３の２つのデータを出力する。
【０２３７】
入力２０７ｅ、２０７ｆから、
サイクルｔ１２において、３６，３７の２つのデータを入力し、
サイクルｔ１３において、４４，４５の２つのデータを入力し、
出力ｏｕｔ４、ｏｕｔ５に、
サイクルｔ１３において、３６，４４の２つのデータを出力し、
サイクルｔ１４において、３７，４５の２つのデータを出力する。
【０２３８】
入力２０７ｅ、２０７ｆから、
サイクルｔ１４において、３８，３９の２つのデータを入力し、
サイクルｔ１５において、４６，４７の２つのデータを入力し、
出力ｏｕｔ４、ｏｕｔ５に、
サイクルｔ１５において、３８，４６の２つのデータを出力し、
サイクルｔ１６において、３９，４７の２つのデータを出力する。
【０２３９】
データ組内並べ替え部２２０ｄは、以下のように動作する。なお、動作主体であるデータ組内並べ替え部２２０ｄは省略される。
【０２４０】
入力２０７ｇ、２０７ｈから、
サイクルｔ８において、４８，４９の２つのデータを入力し、
サイクルｔ９において、５６，５７の２つのデータを入力し、
出力ｏｕｔ６、ｏｕｔ７に、
サイクルｔ９において、４８，５６の２つのデータを出力し、
サイクルｔ１０において、４９，５７の２つのデータを出力する。
【０２４１】
同様に、入力２０７ｇ、２０７ｈから、
サイクルｔ１０において、５０，５１の２つのデータを入力し、
サイクルｔ１１において、５８，５９の２つのデータを入力し、
出力ｏｕｔ６、ｏｕｔ７に、
サイクルｔ１１において、５０，５８の２つのデータを出力し、
サイクルｔ１２において、５１，５９の２つのデータを出力する。
【０２４２】
入力２０７ｇ、２０７ｈから、
サイクルｔ１２において、５２，５３の２つのデータを入力し、
サイクルｔ１３において、６０，６１の２つのデータを入力し、
出力ｏｕｔ６、ｏｕｔ７に、
サイクルｔ１３において、５２，６０の２つのデータを出力し、
サイクルｔ１４において、５３，６１の２つのデータを出力する。
【０２４３】
入力２０７ｇ、２０７ｈから、
サイクルｔ１４において、５４，５５の２つのデータを入力し、
サイクルｔ１５において、６２，６３の２つのデータを入力し、
出力ｏｕｔ６、ｏｕｔ７に、
サイクルｔ１５において、５４，６２の２つのデータを出力し、
サイクルｔ１６において、５５，６３の２つのデータを出力する。
【０２４４】
以上説明したように、第１のデータ並べ替え部２０１が、逐次順序から中間順序への並べ替えを行い、第２のデータ並べ替え部２０４が、中間順序からビットリバース順序への並べ替えを行うことで、データ並べ替え部２００は、逐次順序からビットリバース順序への並べ替えを実現する。
【０２４５】
第２のデータ並べ替え部２０４を構成するデータ組内並べ替え部２２０ａ〜２２０ｄは、例えば図２３に示すデータ組内並べ替え部２２０で実現することができる。図２３を参照すると、データ組内並べ替え部２２０は、セレクタ回路２２１、２２４、２２５、及び、フリップフロップ２２２、２２３から構成される。
【０２４６】
図２４は、データ組内並べ替え部２２０の動作を示すタイムチャートである。図２４において、データ組内並べ替え部２２０は、サイクルｔ０、ｔ１において、入力ｉｎ０、ｉｎ１から、４つのデータ０，１，８，９をデータ組として入力して、データ組内の並べ替え処理を行い、サイクルｔ１、ｔ２において、出力ｏｕｔ０、ｏｕｔ１から４つのデータとして、０，８，１，９を出力する。具体的には、データ組内並べ替え部２２０は、サイクルｔ０において、入力ｉｎ０、ｉｎ１から０，１を入力し、セレクタ２２１は入力ｉｎ０から入力した０を選択する。また、サイクルｔ０において、フリップフロップ２２２はセレクタ２２１が選択した０を記憶し、フリップフロップ２２３は入力ｉｎ１から入力した１を記憶する。
【０２４７】
サイクルｔ１において、入力ｉｎ０、ｉｎ１から８，９を入力し、セレクタ２２１は入力ｉｎ１から入力した９を選択する。また、サイクルｔ１において、フリップフロップ２２２は記憶した０を出力するとともに入力ｉｎ１から入力した９を記憶し、フリップフロップ２２３は記憶した１を出力する。また、サイクルｔ１において、セレクタ２２４は、フリップフロップ２２２が出力する０を選択して、出力ｏｕｔ０に出力し、セレクタ２２５は、入力ｉｎ０から入力した８を選択して、出力ｏｕｔ１に出力する。
【０２４８】
サイクルｔ２において、フリップフロップ２２２は記憶した９を出力し、フリップフロップ２２３は記憶した１を出力する。また、サイクルｔ２において、セレクタ２２４は、フリップフロップ２２３が出力する１を選択して、出力ｏｕｔ０に出力し、セレクタ２２５は、フリップフロップ２２２が出力する９を選択して、出力ｏｕｔ１に出力する。
【０２４９】
以上、逐次順序からビットリバース順序への並べ替えを例に、データ並べ替え処理を説明したが、ビットリバース順序から逐次順序への並べ替えについても同様に、１ステップ目の並べ替えとして、ビットリバース順序から中間順序に並べ替えを行い、２ステップ目の並べ替えとして、中間順序から逐次順序に並べ替えを行う、２段階のステップで実現することができる。
【０２５０】
図２５は、ひねり乗算処理部２７０の構成例を示す図である。ひねり乗算処理部２７０は、符号絶対値−−表現で表現された複素信号：
Ａ＝Ｂ＋ｉＣ、及び、
Ｗ＝Ｘ＋ｉＹ
（ただし、ｉ２＝−１）を入力して、それらの複素乗算の結果である
Ｔ＝ＡｘＷ＝（ＢＸ−ＣＹ）＋ｉ（ＣＸ＋ＢＹ）
を演算して出力する。
【０２５１】
ひねり乗算処理部２７０は、補正回路２０ａ〜２０ｄ、乗算回路２７１ａ〜２７１ｄ、変換回路１０ａ〜１０ｄ、加算回路２７２ａ〜２７２ｂを備えている。
【０２５２】
補正回路２０ａ〜２０ｄは、例えば図８に示した補正回路２０により実現することができる。
【０２５３】
補正回路２０ａは、入力する複素信号Ａ＝Ｂ＋ｉＣの実数成分であるＢに対して補正処理を行う。
【０２５４】
同様に、補正回路２０ｂは、入力する複素信号Ａ＝Ｂ＋ｉＣの虚数成分であるｉＣに対して補正処理を行う。
【０２５５】
補正回路２０ｃは、入力する複素信号Ｗ＝Ｘ＋ｉＹの実数成分であるＸに対して補正処理を行う。
【０２５６】
補正回路２０ｄは、入力する複素信号Ｗ＝Ｘ＋ｉＹの虚数成分であるｉＹに対して補正処理を行う。
【０２５７】
乗算回路２７１ａ〜２７１ｄは、例えば図９に示した演算回路４１において、符号なし演算回路４３で符号なし乗算処理を行うことで実現することができる。
【０２５８】
乗算回路２７１ａは、符号絶対値−−表現で表現された入力Ａの実数成分Ｂと、入力Ｗの実数成分Ｘとの乗算処理を行い、その結果であるＢＸを出力する。
【０２５９】
乗算回路２７１ｂは、符号絶対値−−表現で表現された入力Ａの虚数成分ｉＣと入力Ｗの虚数成分ｉＹとの乗算処理を行い、その結果である−ＣＹを出力する。
【０２６０】
乗算回路２７１ｃは、符号絶対値−−表現で表現された入力Ａの虚数成分ｉＣと入力Ｗの実数成分Ｘとの乗算処理を行い、その結果であるｉＣＸを出力する。
【０２６１】
乗算回路２７１ｄは、符号絶対値−−表現で表現された入力Ａの実数成分Ｂと入力Ｗの虚数成分ｉＹとの乗算処理を行い、その結果であるｉＢＹを出力する。
【０２６２】
変換回路１０ａ〜１０ｄは、例えば図４に示す変換回路１０で実現することができる。
【０２６３】
変換回路１０ａは、乗算回路２７１ａが出力した符号絶対値−−表現で表現された信号ＢＸを２の補数表現へ変換して出力する。
【０２６４】
変換回路１０ｂは、乗算回路２７１ｂが出力した符号絶対値−−表現で表現された信号−ＣＹを２の補数表現へ変換して出力する。
【０２６５】
変換回路１０ｃは、乗算回路２７１ｃが出力した符号絶対値−−表現で表現された信号ｉＣＸを２の補数表現へ変換して出力する。
【０２６６】
変換回路１０ｄは、乗算回路２７１ｄが出力した符号絶対値−−表現で表現された信号ｉＢＹを２の補数表現へ変換して出力する。
【０２６７】
加算回路２７２ａ、２７２ｂは、２の補数表現で表現された入力に対して加算処理を行う加算回路で実現することができる。
【０２６８】
加算回路２７２ａは、変換回路１０ａが出力する２の補数表現で表現された信号ＢＸと、変換回路１０ｂが出力する２の補数表現で表現された信号−ＣＹとの加算処理を行い、その結果であるＢＸ−ＣＹを出力する。
【０２６９】
加算回路２７２ｂは、変換回路１０ｃが出力する２の補数表現で表現された信号ｉＣＸと、変換回路１０ｄが出力する２の補数表現で表現された信号ｉＢＹとの加算処理を行い、その結果であるｉ（ＣＸ＋ＢＹ）を出力する。
【０２７０】
これらの加算結果から、ひねり乗算処理部２７０は、その処理結果であるＴ＝ＡｘＷ＝（ＢＸ−ＣＹ）＋ｉ（ＣＸ＋ＢＹ）を出力する。
【０２７１】
（第２の例示的な実施形態の効果）
上記したように、第２の例示的な実施形態では、ＦＦＴ装置４００は、バタフライ演算において必要なデータの並べ替え処理である、「逐次順序」から、「ビットリバース順序」への並べ替えや、「ビットリバース順序」から「逐次順序」への並べ替えを、符号絶対値−−表現に変換した後、「中間順序」を介した２段階のステップで実現する。そのため、２の補数表現のまま並べ替え処理を行うのに対して、第１のデータ並べ替え部２０１や第２のデータ並べ替え部２０４を構成するＲＡＭ回路、フリップフロップ回路やセレクタ回路などの回路の動作率を低減することができる。
【０２７２】
また、ＦＦＴ装置４００は、ひねり乗算処理を構成する乗算処理と加算処理のうち、前者の乗算処理を符号絶対値−−表現のまま処理する。そのため、２の補数表現で乗算処理を行うのに対して、回路の動作率を低減することができる。
【０２７３】
一方、後者の加算処理は、２の補数表現で処理を行うが、乗算回路に比べて加算回路の回路規模は大幅に小さいため、乗算処理を符号絶対値−−表現で処理する分だけ、ひねり乗算処理を行うひねり乗算処理部２７０の回路の動作率を低減することができる。
【０２７４】
また、２の補数表現と符号絶対値−−表現との変換処理は、ビット反転処理のみで実現することができ、従来の符号絶対値表現が必要とした１加算処理（インクリメント処理）を必要としない。
【０２７５】
ビット反転処理はＸＯＲ回路のみで実現できるので、他の論理処理回路や演算処理回路と比較して圧倒的に小さい回路規模で実現することができる。
【０２７６】
また、符号絶対値−−表現の値に対する補正処理により、乗算や除算などの演算処理を符号絶対値−−表現のまま演算しても、発生する演算誤差を小さくすることができ、許容される演算誤差に応じて補正対象となるビット数を最適な値に設定することができる。その結果、補正処理に係る回路規模を小さくすることができる。
【０２７７】
したがって、第２の例示的な実施形態では、値０の近傍で正と負とで頻繁に変化する信号を処理する場合でも、データの並べ替え処理における回路の動作率を小さくすることができる。このため、データ並べ替え処理部における消費電力を低減することができる。
【０２７８】
一方、第２の例示的な実施形態では、バタフライ演算処理はバラフライ演算処理部において、２の補数表現のまま処理される。そのため、それら演算処理に係る回路の動作率は低減されないが、符号絶対値表現を適用した場合のようにデータ表現形式間の変換により回路規模が大きく増大することはない。したがって、データの並べ替え処理やひねり乗算処理に係る消費電力が小さくなる分だけ、ＦＦＴ装置全体の消費電力を低減することができる。
【０２７９】
図３０は、上記した第１、第２の例示的な実施形態の装置１００、４００の処理、機能をプログラムで実現する一形態を模式的に例示する図である。図３０を参照すると、プロセッサ装置３００は、プロセッサ３０１と、プロセッサ３０１で実行されるプログラム（命令群とデータ等）を記憶するプログラム記憶部３０２と、プロセッサ３０１によるデータの書き込み読み出しが行われるＲＡＭ３０３（第２の例示的な実施形態の図８のＲＡＭ回路２１０として機能してもよい）と、入力端子ＩＮから入力データを受信しプロセッサ３０１に供給する第１のインタフェース（インタフェース１）３０４と、プロセッサ３０１から出力されるデータを受け出力端子ＯＵＴから出力する第２のインタフェース（インタフェース２）３０５を備えている。プロセッサ３０１は、デジタル信号プロセッサ（Digital Signal Processor）等であってもよい。プログラム記憶部３０２は、ROM（Read-Only Memory）、EEPROM（Electrically Erasable Programmable Read-Only Memory）、あるいは、HDD(Hard Disk Drive)、USB（Universal Serial Bus）メモリ等であってもよい。プログラム記憶部３０２は、プロセッサ３０１のファームウェアを記憶する構成であってもよい。ＲＡＭ３０３は、プロセッサ３０１に内蔵される構成としてもよい。第１のインタフェース３０４は、入力回路（又は受信回路）と入力バッファ（受信バッファ）を備え、第２のインタフェース３０５は、出力バッファ（送信バッファ）と出力回路（送信回路）を備えた構成としてもよい。第１、第２のインタフェース３０４、３０５は、入出力回路（送受信回路（transceiver））を備えた一つのインタフェース回路としてもよい。プロセッサ３０１がプログラム記憶部３０２に記憶されたプログラムを実行することで、前記第１、第２の例示的な実施形態と同様の効果を奏することができる。なお、図３０は単に説明のために、プロセッサ装置３００の各部３０１〜３０５の構成を例示したが、これらの各部の一部又は全てをプロセッサ３０１に含める１チップ構成としてもよいことは勿論である。
【０２８０】
なお、上記の特許文献１−３、非特許文献１、２の各開示を、本書に引用をもって繰り込むものとする。本発明の全開示（請求の範囲を含む）の枠内において、さらにその基本的技術思想に基づいて、実施形態ないし実施例の変更・調整が可能である。また、本発明の請求の範囲の枠内において種々の開示要素（各請求項の各要素、各実施例の各要素、各図面の各要素等を含む）の多様な組み合わせ乃至選択が可能である。すなわち、本発明は、請求の範囲を含む全開示、技術的思想にしたがって当業者であればなし得るであろう各種変形、修正を含むことは勿論である。
【０２８１】
上記した実施形態は以下のように付記される（ただし、以下に制限されない）。
【０２８２】
(付記１）
データ値が正又は０の場合は、２の補数表現と同一であり、データ値が負の場合は、２の補数表現から符号を示す最上位ビット以外のビットを反転した表現形式である第２の表現形式により表現されたデータに対して記憶処理を行う記憶処理部と、
２の補数表現により表現されたデータ、又は、前記第２の表現形式により表現されたデータに補正処理を行ったデータの少なくともいずれかに対して演算処理を行う演算処理部と、
を備えた、ことを特徴とする信号処理装置。
【０２８３】
(付記２）
前記補正処理は、前記第２の表現形式により表現されたＮビット（Ｎは正整数）のデータが負の値の場合に、
前記Ｎビット（ただし、Ｎは所定の正整数）のデータのうち、最下位ビットからＭビット（ただし、ＭはＭ≦Ｎの正整数）に対して値１を加算する処理である、ことを特徴とする付記１に記載の信号処理装置。
【０２８４】
(付記３）
前記演算処理部は、
処理する演算が乗算又は除算の場合には、
前記第２の表現形式により表現されたデータに前記補正処理を行ったデータのいずれかに対して演算処理を行い、
処理する演算が加算又は減算の場合には、２の補数表現により表現されたデータに対して演算処理を行う、ことを特徴とする付記１又は２に記載の信号処理装置。
【０２８５】
(付記４）
前記記憶処理部は、
２の補数表現で表現されたデータを入力し、前記入力したデータを２の補数表現から前記第２の表現形式へ変換する第１の変換部と、
前記第２の表現形式でのデータの記憶処理及び出力を行う記憶回路と、
前記記憶回路から出力された前記第２の表現形式のデータを入力し、前記入力したデータを２の補数表現へ変換して出力する第２の変換部について、
前記記憶回路を備えた構成と、
前記記憶回路と、前記第１の変換部又は前記第２の変換部の少なくともいずれかを備えた構成
のうちの少なくともいずれかを含む、ことを特徴とする付記１乃至３のいずれかに記載の信号処理装置。
【０２８６】
(付記５）
前記演算処理部は、
２の補数表現により表現されたデータを入力し、２の補数表現により表現されたデータの演算処理を行う第１の演算回路と、
２の補数表現により表現されたデータを入力し、前記入力したデータを２の補数表現から前記第２の表現形式へ変換する第１の変換部と、
前記第２の表現形式により表現されたデータに前記補正処理を行う補正回路と、
前記補正回路で補正処理されたデータを入力し、前記補正処理されたデータの演算処理を行う第２の演算回路と、
前記第２の表現形式のデータを入力し、前記入力したデータを２の補数表現へ変換して出力する第２の変換部について、
前記第１の演算回路を備えた構成と、
前記補正回路及び前記第２の演算回路を備えた構成と、
前記補正回路及び前記第２の演算回路に、さらに前記第１の変換部又は前記第２の変換部の少なくともいずれかを備えた構成、
のうちの少なくともいずれかを含む、ことを特徴とする付記１乃至３のいずれかに記載の信号処理装置。
【０２８７】
(付記６）
前記第２の演算回路は、
演算対象である前記補正処理した前記第２の表現形式のデータの符号ビットの演算結果を符号ビットとして出力する符号演算回路と、
演算対象である前記補正処理した前記第２の表現形式のデータの前記符号ビット以外の絶対値部分を演算して出力する符号なし演算回路と、ことを特徴とする付記５に記載の信号処理装置。
【０２８８】
(付記７）
前記第１及び第２の変換部は、前記入力したデータの最上位ビットはそのまま出力し、
前記入力したデータの前記最上位ビット以外は、前記最上位ビットとの排他的論理和を行った結果を出力する、ことを特徴とする付記４乃至６のいずれかに記載の信号処理装置。
【０２８９】
(付記８）
付記１又は２に記載の信号処理装置において、データ表現形式として２の補数表現と、前記第２の表現形式の双方を使用して高速フーリエ変換又は逆高速フーリエ変換を行い、
前記演算処理部が、
バタフライ演算処理を行うバタフライ演算処理部と、
ひねり乗算処理を行うひねり乗算処理部と、
を備え、
前記記憶処理部が、
複数のデータの順序を並べ替えるデータ並べ替え処理部を備え、
前記バタフライ演算処理部は、２の補数表現により表現されたデータに対してバタフライ演算処理を行い、
前記ひねり乗算処理部は、乗算処理については、前記第２の表現形式により表現されたデータに補正処理を行ったデータに対して演算処理を行い、
加算処理については、２の補数表現により表現されたデータに対して演算処理を行い、
前記データ並べ替え処理部は、前記第２の表現形式により表現されたデータに対して記憶処理を行う、ことを特徴とする信号処理装置。
【０２９０】
（付記９）
前記データ並べ替え処理部は、
２の補数表現で表現されたデータを入力し前記第２の表現形式へ変換する第１の変換部と、
前記第２の表現形式で表現されたデータを入力し２の補数表現へ変換する第２の変換部と、
を備え、
前記第１の変換部は、入力する２の補数表現で表現されたデータを前記第２の表現形式に変換してデータ並べ替え処理を行い、
前記第２の変換部は、前記第２の表現形式で表現されたデータ並べ替え処理後のデータを２の補数表現に変換して出力する、ことを特徴とする付記８に記載の信号処理装置。
【０２９１】
（付記１０）
前記第１及び第２の変換部は、前記入力したデータの最上位ビットはそのまま出力し、
前記入力したデータの前記最上位ビット以外は、前記最上位ビットとの排他的論理和を行った結果を出力する、ことを特徴とする付記８又は９に記載の信号処理装置。
【０２９２】
(付記１１）
バタフライ演算処理を行うバタフライ演算処理部と、
ひねり乗算処理を行うひねり乗算処理部と、
複数のデータの順序を並べ替えるデータ並べ替え処理部と、
を備え、高速フーリエ変換（ＦＦＴ）又は逆高速フーリエ変換（ＩＦＦＴ）を行うＦＦＴ装置であって、
データ表現形式として２の補数表現と、２の補数表現と異なる第２の表現形式の双方を使用して演算を行い、
前記第２の表現形式は、非負のデータについては２の補数表現と同一であり、負のデータについては、前記データの２の補数表現から符号を示す最上位ビット以外のビットを反転した表現であり、
前記バタフライ演算処理部は、
２の補数表現により表現されたデータに対して処理を行い、
前記データ並べ替え処理部は、
前記第２の表現形式により表現されたデータに対して記憶処理を行い、
前記ひねり乗算処理部は、
乗算処理については、前記第２の表現形式により表現されたデータに補正処理を行ったデータに対して演算処理を行い、
加算処理については、２の補数表現により表現されたデータに対して演算処理を行う、ことを特徴とするＦＦＴ装置。
【０２９３】
(付記１２）
前記補正処理は、前記第２の表現形式により表現されたＮビット（Ｎは正整数）のデータが負の値の場合に、前記Ｎビット（Ｎは正整数）のデータのうち、最下位ビットからＭビット（ＭはＭ≦Ｎの正整数）に対して値１を加算する処理を行う、ことを特徴とする付記１１に記載のＦＦＴ装置。
【０２９４】
(付記１３）
前記データ並べ替え処理部は、
データを２の補数表現から前記第２の表現形式へ変換する第１の変換部と、
前記第２の表現形式から２の補数表現へ変換する第２の変換部と、
を備え、
前記第１の変換部により、入力する２の補数表現で表現されたデータを前記第２の表現形式に変換してデータ並べ替え処理を行い、
前記第２の変換部により、前記第２の表現形式で表現されたデータ並べ替え処理後のデータを２の補数表現に変換して出力する、ことを特徴とする付記１１又は１２に記載のＦＦＴ装置。
【０２９５】
(付記１４）
前記第１及び第２の変換部は、前記入力したデータの最上位ビットはそのまま出力し、
前記入力したデータの前記最上位ビット以外は、前記最上位ビットとの排他的論理和を行った結果を出力する、ことを特徴とする付記１１乃至１３のいずれかに記載のＦＦＴ装置。
【０２９６】
(付記１５）
２の補数表現と異なる第２の表現形式により表現されたデータに対して記憶処理を行う工程と、
２の補数表現により表現されたデータ、又は、前記第２の表現形式により表現されたデータに補正処理を行ったデータの少なくともいずれかに対して演算処理を行う工程と、
を含み、
前記第２の表現形式は、
データ値が正又は０の場合は、２の補数表現と同一であり、
データ値が負の場合は、２の補数表現から符号を示す最上位ビット以外のビットを反転した表現形式である、ことを特徴とする信号処理方法。
【０２９７】
(付記１６）
前記補正処理では、前記第２の表現形式により表現されたＮビット（Ｎは正整数）のデータが負の値の場合に、
前記Ｎビット（ただし、Ｎは所定の正整数）のデータのうち、最下位ビットからＭビット（ただし、ＭはＭ≦Ｎの正整数）に対して値１を加算する、ことを特徴とする付記１５に記載の信号処理方法。
【０２９８】
(付記１７）
前記演算処理では、処理する演算が乗算又は除算の場合には、
前記第２の表現形式により表現されたデータに前記補正処理を行ったデータのいずれかに対して演算処理を行い、
処理する演算が加算又は減算の場合には、２の補数表現により表現されたデータに対して演算処理を行う、ことを特徴とする付記１５又は１６に記載の信号処理方法。
【０２９９】
(付記１８）
前記記憶処理は、
２の補数表現で表現されたデータを入力し、前記入力したデータを２の補数表現から前記第２の表現形式へ変換する第１の変換処理と、
前記第２の表現形式でのデータの記憶回路へ記憶する記憶処理と、
前記記憶回路から出力された前記第２の表現形式のデータを入力し、前記入力したデータを２の補数表現へ変換して出力する第２の変換処理について、
前記記憶処理、又は、
前記記憶処理の前又は後の前記第１の変換処理又は前記第２の変換処理の少なくともいずれかを含む、ことを特徴とする付記１５乃至１７のいずれかに記載の信号処理方法。
【０３００】
(付記１９）
前記演算処理は、
２の補数表現により表現されたデータを入力し、２の補数表現により表現されたデータの演算処理を行う第１の演算処理と、
２の補数表現により表現されたデータを入力し、前記入力したデータを２の補数表現から前記第２の表現形式へ変換する第１の変換処理と、
前記第２の表現形式により表現されたデータに対して行う補正処理と、
前記補正処理されたデータの演算処理を行う第２の演算処理と、
前記第２の表現形式のデータを入力し、前記入力したデータを２の補数表現へ変換して出力する第２の変換処理について、
前記第１の演算処理、
前記補正処理及び前記第２の演算処理、
前記補正処理及び前記第２の演算処理に、さらに前記第１の変換処理又は前記第２の変換処理の少なくともいずれか、
のうちのいずれかを含む、ことを特徴とする付記１５乃至１７のいずれかに記載の信号処理方法。
【０３０１】
(付記２０）
付記１５又は１６に記載の信号処理方法において、データ表現形式として２の補数表現と、前記第２の表現形式の双方を使用して高速フーリエ変換又は逆高速フーリエ変換を行い、
前記演算処理が、
バタフライ演算処理を行うバタフライ演算処理と、
ひねり乗算処理を行うひねり乗算処理と、
を含み、高速フーリエ変換又は逆高速フーリエ変換を行い、
前記記憶処理が、
複数のデータの順序を並べ替えるデータ並べ替え処理を含み、
前記バタフライ演算処理は、
２の補数表現により表現されたデータに対してバタフライ演算処理を行い、
前記ひねり乗算処理は、乗算処理については、前記第２の表現形式により表現されたデータに補正処理を行ったデータに対して演算処理を行い、
加算処理については、２の補数表現により表現されたデータに対して演算処理を行い、
前記データ並べ替え処理は、前記第２の表現形式により表現されたデータに対して記憶処理を行う、ことを特徴とする信号処理方法。
【０３０２】
（付記２１）
前記データ並べ替え処理は、データを２の補数表現から前記第２の表現形式へ変換する第１の変換処理と、
前記第２の表現形式から２の補数表現へ変換する第２の変換処理と、
を含み、
前記第１の変換処理では、入力する２の補数表現で表現されたデータを前記第２の表現形式に変換してデータ並べ替え処理を行い、
前記第２の変換処理では、前記第２の表現形式で表現されたデータ並べ替え処理後のデータを２の補数表現に変換して出力する、ことを特徴とする付記２０に記載の信号処理方法。
【０３０３】
(付記２２）
バタフライ演算処理を行うバタフライ演算処理と、
ひねり乗算処理を行うひねり乗算処理と、
複数のデータの順序を並べ替えるデータ並べ替え処理と、
を含み、高速フーリエ変換（ＦＦＴ）又は逆高速フーリエ変換（ＩＦＦＴ）を行うＦＦＴ方法であって、
データ表現形式として２の補数表現と、２の補数表現と異なる第２の表現形式の双方を使用して演算を行い、
前記第２の表現形式は、非負のデータについては２の補数表現と同一であり、負のデータについては、前記データの２の補数表現から符号を示す最上位ビット以外のビットを反転した表現であり、
前記バタフライ演算処理では、
２の補数表現により表現されたデータに対して処理を行い、
前記データ並べ替え処理では、
前記第２の表現形式により表現されたデータに対して記憶処理を行い、
前記ひねり乗算処理では、
乗算処理については、前記第２の表現形式により表現されたデータに補正処理を行ったデータに対して演算処理を行い、
加算処理については、２の補数表現により表現されたデータに対して演算処理を行う、ことを特徴とするＦＦＴ演算方法。
【０３０４】
(付記２３）
前記補正処理は、前記第２の表現形式により表現されたＮビット（Ｎは正整数）のデータが負の値の場合に、前記Ｎビット（Ｎは正整数）のデータのうち、最下位ビットからＭビット（ＭはＭ≦Ｎの正整数）に対して値１を加算する処理を行う、ことを特徴とする付記２２に記載のＦＦＴ演算方法。
【０３０５】
（付記２４）
前記データ並べ替え処理は、データを２の補数表現から前記第２の表現形式へ変換する第１の変換処理と、
前記第２の表現形式から２の補数表現へ変換する第２の変換処理と、
を含み、
前記第１の変換処理では、入力する２の補数表現で表現されたデータを前記第２の表現形式に変換してデータ並べ替え処理を行い、
前記第２の変換処理では、前記第２の表現形式で表現されたデータ並べ替え処理後のデータを２の補数表現に変換して出力する、ことを特徴とする付記２２又は２３に記載のＦＦＴ演算方法。
【０３０６】
(付記２５）
データ値が正又は０の場合は、２の補数表現と同一であり、データ値が負の場合は、２の補数表現から符号を示す最上位ビット以外のビットを反転した表現形式である第２の表現形式により表現されたデータに対する記憶処理と、
２の補数表現により表現されたデータ、又は、前記第２の表現形式により表現されたデータに補正処理を行ったデータの少なくともいずれかに対する演算処理と、
をプロセッサに実行させるプログラム。
【０３０７】
(付記２６）
前記補正処理として、前記第２の表現形式により表現されたＮビット（Ｎは正整数）のデータが負の値の場合に、
前記Ｎビット（ただし、Ｎは所定の正整数）のデータのうち、最下位ビットからＭビット（ただし、ＭはＭ≦Ｎの正整数）に対して値１を加算する処理を実行する、ことを特徴とする付記２５に記載のプログラム。
【０３０８】
(付記２７）
前記演算処理として、処理する演算が乗算又は除算の場合には、
前記第２の表現形式により表現されたデータに前記補正処理を行ったデータのいずれかに対して演算処理を行い、
処理する演算が加算又は減算の場合には、２の補数表現により表現されたデータに対して演算処理を行う、付記２５又は２６に記載のプログラム。
【０３０９】
(付記２８）
前記記憶処理は、
２の補数表現で表現されたデータを入力し、前記入力したデータを２の補数表現から前記第２の表現形式へ変換する第１の変換処理と、
前記第２の表現形式でのデータの記憶回路へ記憶する記憶処理と、
前記記憶回路から出力された前記第２の表現形式のデータを入力し、前記入力したデータを２の補数表現へ変換して出力する第２の変換処理について、
前記記憶処理、又は、
前記記憶処理の前又は後の前記第１の変換処理又は前記第２の変換処理の少なくともいずれかを含む、付記２５乃至２７のいずれかに記載のプログラム。
【０３１０】
(付記２９）
前記演算処理は、
２の補数表現により表現されたデータを入力し、２の補数表現により表現されたデータの演算処理を行う第１の演算処理と、
２の補数表現により表現されたデータを入力し、前記入力したデータを２の補数表現から前記第２の表現形式へ変換する第１の変換処理と、
前記第２の表現形式により表現されたデータに対して行う補正処理と、
前記補正処理されたデータの演算処理を行う第２の演算処理と、
前記第２の表現形式のデータを入力し、前記入力したデータを２の補数表現へ変換して出力する第２の変換処理について、
前記第１の演算処理、
前記補正処理及び前記第２の演算処理、
前記補正処理及び前記第２の演算処理に、さらに前記第１の変換処理又は前記第２の変換処理の少なくともいずれか、
のうちのいずれかを含む、付記２５乃至２７のいずれかに記載のプログラム。
【０３１１】
(付記３０）
前記演算処理が、
バタフライ演算処理を行うバタフライ演算処理と、
ひねり乗算処理を行うひねり乗算処理と、
を含み、高速フーリエ変換又は逆高速フーリエ変換を行い、
前記記憶処理が、
複数のデータの順序を並べ替えるデータ並べ替え処理を含み、
前記バタフライ演算処理は、２の補数表現により表現されたデータに対してバタフライ演算処理を行い、
前記ひねり乗算処理は、乗算処理については、前記第２の表現形式により表現されたデータに補正処理を行ったデータに対して演算処理を行い、
加算処理については、２の補数表現により表現されたデータに対して演算処理を行い、
前記データ並べ替え処理は、前記第２の表現形式により表現されたデータに対して記憶処理を行う、付記２５又は２６に記載のプログラム。
【０３１２】
（付記３１）
前記データ並べ替え処理は、
データを２の補数表現から前記第２の表現形式へ変換する第１の変換処理と、
前記第２の表現形式から２の補数表現へ変換する第２の変換処理と、
を含み、
前記第１の変換処理では、入力する２の補数表現で表現されたデータを前記第２の表現形式に変換してデータ並べ替え処理を行い、
前記第２の変換処理では、前記第２の表現形式で表現されたデータ並べ替え処理後のデータを２の補数表現に変換して出力する、付記３０に記載のプログラム。
【符号の説明】
【０３１３】
１００  信号処理装置
１０１、１０３、１０５、１０８  記憶処理部
１０２、１０４、１０６、１０７  演算処理部
１０、１０ａ〜１０ｄ  変換回路
１７  ＸＯＲ回路
２０、２０ａ〜２０ｄ  補正回路
２１  セレクタ回路
２２  加算回路
３０  記憶回路
４０、４１  演算回路
４２  符号演算回路
４３  符号なし演算回路
２００  データ並べ替え部
２０１  第１のデータ並べ替え部（第１のデータ並べ替え手段）
２０２  第１のデータ振り分け部（第１のデータ振り分け手段）
２０３  第２のデータ振り分け部（第２のデータ振り分け手段）
２０４  第２のデータ並べ替え部（第２のデータ並べ替え手段）
２１０ａ〜２１０ｄ  ＲＡＭ回路
２２０  データ組内並べ替え部
２２０ａ〜２２０ｄ  データ組内並べ替え部
２２１、２２４、２２５  セレクタ回路
２２２、２２３  フリップフロップ
２３１、２３２  ２３３ａ〜２３３ｈ、２３４ａ〜２３４ｈ  変換回路
２４０ａ、２４０ｂ  バタフライ演算処理部
２５０、２５０ａ、２５０ｂ、２６０  データ並べ替え処理部
２７０  ひねり乗算処理部
２７１ａ〜２７１ｄ  乗算回路
２７２ａ、２７２ｂ  加算回路
３００  プロセッサ装置
３０１  プロセッサ
３０２  プログラム記憶部
３０３  ＲＡＭ
３０４  第１のインタフェース
３０５  第２のインタフェース
４００  ＦＦＴ装置
５００  ６４ポイントＦＦＴのデータフロー
５０１  データ並べ替え処理部（データ並べ替え処理）
５０２、５０３  バタフライ演算処理部（バタフライ演算処理）
５０４  ひねり乗算処理部（ひねり乗算処理）
６００  変換回路
６０１  ビット反転回路
６０２  １加算回路
【図１】
0006977883.tif 000002
【図２】
0006977883.tif 000003
【図３】
0006977883.tif 000004
【図４】
0006977883.tif 000005
【図５】
0006977883.tif 000006
【図６】
0006977883.tif 000007
【図７】
0006977883.tif 000008
【図８】
0006977883.tif 000009
【図９】
0006977883.tif 000010
【図１０】
0006977883.tif 000011
【図１１】
0006977883.tif 000012
【図１２】
0006977883.tif 000013
【図１３】
0006977883.tif 000014
【図１４】
0006977883.tif 000015
【図１５】
0006977883.tif 000016
【図１６】
0006977883.tif 000017
【図１７】
0006977883.tif 000018
【図１８】
0006977883.tif 000019
【図１９】
0006977883.tif 000020
【図２０】
0006977883.tif 000021
【図２１】
0006977883.tif 000022
【図２２】
0006977883.tif 000023
【図２３】
0006977883.tif 000024
【図２４】
0006977883.tif 000025
【図２５】
0006977883.tif 000026
【図２６】
0006977883.tif 000027
【図２７】
0006977883.tif 000028
【図２８】
0006977883.tif 000029
【図２９】
0006977883.tif 000030
【図３０】
0006977883.tif 000031