(57)【要約】本発明は、回路規模や消費電力の増大を抑制又は低減可能とする信号処理装置を提供する。信号処理装置は、２の補数表現により表現されたデータに対して演算処理を行う演算処理部と、データ表現形式として第２の表現形式により表現されたデータに対して記憶処理を行う記憶処理部と、を備え、前記第２の表現形式は、データ値が正または０の場合は２の補数表現と同一であり、データ値が負の場合は、２の補数表現から符号を示す最上位ビットよりも下位の全ビットを反転した表現形式である。
2019131754.tif 000002
【特許請求の範囲】
【請求項１】
２の補数表現により表現されたデータに対して演算処理を行う演算処理部と、
データ表現形式として第２の表現形式により表現されたデータに対して記憶処理を行う記憶処理部と、
を備え、
前記第２の表現形式は、
データ値が正または０の場合は２の補数表現と同一であり、
データ値が負の場合は、２の補数表現から符号を示す最上位ビットよりも下位の全ビットを反転した表現形式である、ことを特徴とする信号処理装置。
【請求項２】
前記記憶処理部は、
データ表現形式を２の補数表現から前記第２の表現形式へ変換する第１の変換部と、
データ表現形式を前記第２の表現形式から２の補数表現へ変換する第２の変換部と、
を備え、
前記第１の変換部は、入力する２の補数表現で表現されたデータを前記第２の表現形式に変換して記憶処理を行い、
前記第２の変換部は、前記第２の表現形式で表現された記憶処理後のデータを２の補数表現に変換して出力する、ことを特徴とする請求項１に記載の信号処理装置。
【請求項３】
前記第１及び第２の変換部は、
入力するデータの最上位ビットはそのまま出力し、
入力するデータの最上位ビットよりも下位の各ビットについては、前記各ビットと前記最上位ビットとの排他的論理和を行った結果を出力する、ことを特徴とする請求項２に記載の信号処理装置。
【請求項４】
入力したデータの高速フーリエ変換又は逆高速フーリエ変換を行う請求項１乃至３のいずれか１項に記載の信号処理装置であって、
前記演算処理部が、
バタフライ演算処理を行うバタフライ演算処理部と、
ひねり乗算処理を行うひねり乗算処理部と、
を備え、
前記記憶処理部が、
複数のデータの順序を並べ替えるデータ並べ替え処理部を備えた、ことを特徴とする信号処理装置。
【請求項５】
前記データ並べ替え処理部は、
逐次順序のデータをビットリバース順序に並び替え、対応する１つ又は複数の後段のバタフライ演算処理部へ出力する１つ又は複数の第１のデータ並べ替え処理部と、
前記バタフライ演算処理部から出力されるビットリバース順序のデータに対して、逐次順序に並び替えた上で出力する第２のデータ並べ替え処理部と、
を備えたことを特徴とする請求項４に記載の信号処理装置。
【請求項６】
２の補数表現により表現されたデータに対して演算処理を行う演算処理工程と、
データ表現形式として第２の表現形式により表現されたデータに対して記憶処理を行う記憶処理工程と、
を含み
前記第２の表現形式は、
データ値が正または０の場合は２の補数表現と同一であり、
データ値が負の場合は、２の補数表現から符号を示す最上位ビットよりも下位の全ビットを反転した表現形式である、ことを特徴とする信号処理方法。
【請求項７】
前記記憶処理工程は、
２の補数表現で表現されたデータを入力し前記データの表現形式を２の補数表現から前記第２の表現形式に変換する第１の変換工程と、
前記第２の表現形式に変換したデータの記憶処理を行う工程と、
前記第２の表現形式で表現された記憶処理後のデータを２の補数表現に変換して出力する第２の変換工程と、
を含む、ことを特徴とする請求項６に記載の信号処理方法。
【請求項８】
前記第１及び第２の変換工程において、
入力するデータの最上位ビットはそのまま出力し、
入力するデータの最上位ビットよりも下位の各ビットについては、前記各ビットと前記最上位ビットとの排他的論理和を行った結果を出力する、ことを特徴とする請求項７に記載の信号処理方法。
【請求項９】
高速フーリエ変換又は逆高速フーリエ変換におけるバタフライ演算処理、および、ひねり乗算処理では、前記演算処理工程により、２の補数表現により表現されたデータに対する演算処理を行い、
前記高速フーリエ変換又は前記逆高速フーリエ変換におけるデータの順序の並べ替え処理では、前記記憶処理工程により、前記第２の表現形式により表現されたデータに対して記憶処理を行う、ことを特徴とする請求項６乃至８のいずれか１項に記載の信号処理方法。
【請求項１０】
２の補数表現により表現されたデータに対して演算処理を行う演算処理と、
データ値が正または０の場合は２の補数表現と同一であり、データ値が負の場合は、２の補数表現から符号を示す最上位ビットよりも下位の全ビットを反転した表現形式である第２の表現形式により表現されたデータに対して記憶処理を行う記憶処理を、
コンピュータに実行させるプログラム。
【請求項１１】
前記記憶処理は、
２の補数表現で表現されたデータを入力し前記データの表現形式を２の補数表現から前記第２の表現形式に変換する第１の変換処理と、
前記第２の表現形式に変換したデータに対してメモリに記憶する記憶処理と、
前記第２の表現形式で表現された記憶処理後のデータを２の補数表現に変換して出力する第２の変換処理と、
を含む、請求項１０に記載のプログラム。
【請求項１２】
請求項１０又は１１に記載のプログラムであって、
高速フーリエ変換又は逆高速フーリエ変換における、
バタフライ演算処理を行うバタフライ演算処理と、
ひねり乗算処理を行うひねり乗算処理と、
複数のデータの順序を並べ替えるデータ並べ替え処理を、
備え、
前記バタフライ演算処理及び前記ひねり乗算処理は、それぞれ、前記演算処理として実行し、
前記データ並べ替え処理は、前記記憶処理として実行する、プログラム。
【請求項１３】
請求項１０乃至１２のいずれか１項に記載のプログラムを記録した記録媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
（関連出願についての記載）
本発明は、日本国特許出願：特願２０１７−２５０７４０号（２０１７年１２月２７日出願）の優先権主張に基づくものであり、同出願の全記載内容は引用をもって本書に組み込み記載されているものとする。
本発明は、信号処理装置、方法、プログラムと記録媒体に関する。
【背景技術】
【０００２】
デジタル信号処理において重要な処理の１つとして、高速フーリエ変換（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）回路により実現したデジタル信号処理回路の動的な消費電力（ダイナミック電力）Pは、下記に示す式(1)で表現することができる。
P=（1/2）*a*C*V2*f  … (1)
ここで、
a:回路動作率（percentage-activity）、
C:負荷容量、
V:電圧、
f:動作周波数
である。回路動作率（percentage-activity）は、ある時間期間におけるスイッチング回数の推定値と該期間におけるクロックサイクル数の比率で与えられる。【００１６】
信号データのビット単位の動作率（トグル率）は回路動作率aを決定することから、ビット単位の動作率の低減が、消費電力の低減に有効である。ところで、通信向け信号処理の信号データは、値０の近傍で正と負とで頻繁に変化することが多い。また、デジタル信号処理において重要な処理の１つとして、高速フーリエ変換（ＦＦＴ）処理においても、その内部データが値０の近傍の小さい値をとることが多い。【００１７】
これらの処理において、２の補数表現を用いた場合、ビット単位の動作率が大きくなり、その結果消費電力が大きくなるという問題がある。【００１８】
それに対し、値０の近傍におけるビット単位の動作率が小さいデジタルデータの表現方法として、符号絶対値表現がある。図１５には、２の補数表現と符号絶対値表現の一例として、８ビットの信号データにおける＋７〜−８の信号値の２進数表現が示されている。２の補数表現では、値０を境界として、正の値と負の値との間で上位ビット側のビット値が大きく異なることがわかる。従って、値０の近傍で正と負とで頻繁に変化する信号を表現した場合、ビット単位の動作率が大きくなることになる。【００１９】
例えば、＋１から−１に変化した場合、最下位ビット（Least Significant Bit; LSB）以外の７ビットがすべて遷移することになる。【００２０】
一方、符号絶対値表現は、最上位ビット（Most Significant Bit; MSB）で符号を表し、それ以外のビットで値の絶対値を表すことから、値０を境界として、正の値と負の値との間でビット値の差異が小さい。従って、値０の近傍で正と負とで頻繁に変化する信号を表現した場合でも、ビット単位の動作率は小さいという特徴がある。例えば、信号の値が＋１から−１に変化した場合、最上位ビットの１ビットのみが遷移することになる。【００２１】
ところが、符号絶対値表現では、減算処理を加算処理で表現できないことから、加算処理回路と減算処理回路とを別に用意する必要がある。その結果、加減算処理を実現する回路の規模が大きくなる。回路規模は、式(1)に示した動的な消費電力Pにおける負荷容量Cを決定することから、回路規模の増大は消費電力を増大させる。【００２２】
すなわち、符号絶対値表現は、２の補数表現と比較して、回路動作率aを低減できるものの、加減算回路の負荷容量Cが増大する。このため、特に加減算処理の多い信号処理の場合、消費電力が大きくなる、という問題がある。【００２３】
また、加減算処理には効率的に回路実現が可能な２の補数表現を使用し、加減算処理以外には、動作率を低減できる符号絶対値表現を使用することも考えられる。しかしながら、２の補数表現と符号絶対値表現との変換には、ビット反転処理と１加算処理（インクリメント処理）が必要になる。したがって、変換処理が多く必要な回路の場合、その変換回路の分だけ消費電力が大きくなる、という問題がある。【００２４】
図１６には、２の補数表現と符号絶対値表現との変換回路６００の構成の一例が示されている。変換回路６００は、ビット反転回路６０１と１加算回路６０２とを接続した構成である。変換回路６００において、特に、１加算回路６０２の回路規模は、他の論理処理回路や演算処理回路と比較して無視できない規模となる。このため、変換処理が多く必要になる場合、その変換回路の分だけ、回路全体の回路規模や消費電力が増大する、という問題がある。【００２５】
したがって、本発明は、上記課題に鑑みて創案されたものであって、回路全体の回路規模や消費電力の増大を抑制又は低減可能とする信号処理装置、方法、プログラムを提供することを目的とする。
【課題を解決するための手段】
【００２６】
本発明の１つの側面によれば、２の補数表現により表現されたデータに対して演算処理を行う演算処理部と、データ表現形式として第２の表現形式により表現されたデータに対して記憶処理を行う記憶処理部と、を備え、前記第２の表現形式は、データ値が正または０の場合は２の補数表現と同一であり、データ値が負の場合は、２の補数表現から符号を示す最上位ビットよりも下位の全ビットを反転した表現形式である信号処理装置が提供される。【００２７】
本発明の１つの側面によれば、２の補数表現により表現されたデータに対して演算処理を行う演算処理工程と、
データ表現形式として第２の表現形式により表現されたデータに対して記憶処理を行う記憶処理工程と、
を含み、前記第２の表現形式は、
データ値が正または０の場合は２の補数表現と同一であり、
データ値が負の場合は、２の補数表現から符号を示す最上位ビットよりも下位の全ビットを反転した表現形式である、信号処理方法が提供される。【００２８】
本発明の１つの側面によれば、２の補数表現により表現されたデータに対して演算処理を行う演算処理と、
データ値が正又は０の場合は２の補数表現と同一であり、データ値が負の場合は、２の補数表現から符号を示す最上位ビットよりも下位の全ビットを反転した表現形式である第２の表現形式により表現されたデータに対して記憶処理を行う記憶処理を、コンピュータ（プロセッサ）に実行させるプログラムが提供される。本発明によれば、該プログラムを記録した非一時的なコンピュータ読み出し可能な媒体(non-transitory computer-readable medium）が提供される。【００２９】
本発明の１つの側面によれば、信号処理として高速フーリエ変換（逆高速フーリエ変換）を行う装置が提供される。本発明の１つの側面の高速フーリエ変換装置（逆高速フーリエ変換装置）によれば、バタフライ演算処理を行うバタフライ演算処理部と、ひねり乗算処理を行うひねり乗算処理部と、複数のデータの順序を並べ替えるデータ並べ替え処理部と、を備え、データ表現形式として２の補数表現と、２の補数表現と異なる第２の表現形式の双方を使用して処理を行い、
前記第２の表現形式は、データ値が正又は０の場合は２の補数表現と同一であり、データ値が負の場合は、２の補数表現から符号を示す最上位ビット以外のビットを反転した表現であり、
前記バタフライ演算処理部と前記ひねり乗算処理部は、２の補数表現により表現されたデータに対して処理を行い、
前記データ並べ替え処理部は、前記第２の表現形式により表現されたデータに対して記憶処理を行う。【００３０】
本発明によれば、バタフライ演算処理、ひねり乗算処理、及び、複数のデータの順序を並べ替えるデータ並び替え処理を実行しデータの高速フーリエ変換（逆高速フーリエ変換）を行うプロセッサに、
前記バタフライ演算処理と前記ひねり乗算処理は、２の補数表現により表現されたデータに対して処理を行い、
データ値が正又は０の場合は２の補数表現と同一であり、データ値が負の場合は、２の補数表現から符号を示す最上位ビットよりも下位の全ビットを反転した表現形式である第２の表現形式により表現されたデータに対して記憶処理を行う前記データ並び替え処理を実行させるプログラムが提供される。本発明によれば、該プログラムを記録した非一時的なコンピュータ読み出し可能な媒体(non-transitory computer-readable medium）が提供される。
【発明の効果】
【００３１】
本発明によれば、信号処理装置の回路規模や消費電力の増大を抑制又は低減することができる。
【図面の簡単な説明】
【００３２】
【図１】本発明の第１の実施形態に係る信号処理回路の構成を説明する図である。
【図２】本発明の第１の実施形態に係る記憶処理部の構成を説明する図である。
【図３】本発明の第１の実施形態に係るデータ表現形式の一例を表形式で示した図である。
【図４】本発明の第１の実施形態に係る変換回路の構成を例示する図である。
【図５】本発明の第２の実施形態に係る信号処理回路の構成を説明する図である。
【図６】本発明の第２の実施形態に係るＦＦＴ処理における逐次順序に従うデータ組を模式的に示す図である。
【図７】本発明の第２の実施形態に係るＦＦＴ処理におけるビットリバース順序に従うデータ組を模式的に示す図である。
【図８】本発明の第２の実施形態に係るデータ組内並べ替え部２２０の構成の一例を示す図である。
【図９】本発明の第２の実施形態に係る逐次順序に従うデータ組の配列を模式的に示す図である。
【図１０】本発明の第２の実施形態に係る中間順序に従うデータ組の配列を模式的に示す図である。
【図１１】本発明の第２の実施形態に係るデータ並べ替え部の動作を説明するタイムチャートである。
【図１２】本発明の第２の実施形態に係るデータ並べ替え部の構成の一例を示す図である。
【図１３】本発明の第２の実施形態に係るデータ組内並べ替え部２２０の動作を説明するタイムチャートである。
【図１４】２段階のバタフライ演算を用いる６４ポイントＦＦＴ処理のデータフローの一例を説明する図である。
【図１５】データ表現形式の一例を表形式で示した図である。
【図１６】変換回路の構成の一例を示す図である。
【図１７Ａ】本発明に係る方法の一形態を説明する図である。
【図１７Ｂ】図１７Ａの記憶処理工程（ステップＳ１）の手順を説明する図である。
【図１８】本発明に係るコンピュータプログラムの一形態を説明する図である。
【発明を実施するための形態】
【００３３】
以下、図面を参照して、本発明のいくつかの例示的な実施形態について説明する。
【００３４】
（第１の実施形態）
図１は、本発明の例示的な第１の実施形態に係る信号処理装置１０の構成例を示す図である。信号処理装置１０は、信号データのバッファリング処理、リタイミング処理や並べ替え処理等の記憶処理を行う記憶処理部１１ａ、１１ｂ、１１ｃと、加減算や乗除算等の演算処理を行う演算処理部１２ａ、１２ｂと、を備えている。なお、図１において、矢印は、処理におけるデータの流れの一例を例示したものである（各部間の信号が常に一方向であることに制限するという意味に解釈すべきでないことは勿論である）。また、以下では、記憶処理部１１ａ、１１ｂ、１１ｃ等は、特に、各部を指定して説明する必要がある場合を除いて、a、b、c等の記号を省略し、記憶処理部１１で参照される。他の要素についても同様とされる。
【００３５】
記憶処理部１１ａは、信号処理装置１０の外部（図示せず）から、２の補数表現により表現された信号データを入力して記憶処理を行い、演算処理部１２ａに出力する。
【００３６】
演算処理部１２ａは、記憶処理部１１ａから、２の補数表現により表現された信号データを入力して演算処理を行い、記憶処理部１１ｂに出力する。
【００３７】
記憶処理部１１ｂは、演算処理部１２ａから、２の補数表現により表現された信号データを入力して記憶処理を行い、演算処理部１２ｂに出力する。
【００３８】
演算処理部１２ｂは、記憶処理部１１ｂから、２の補数表現により表現された信号データを入力して演算処理を行い、記憶処理部１１ｃに出力する。
【００３９】
記憶処理部１１ｃは、演算処理部１２ｂから、２の補数表現により表現された信号データを入力して記憶処理を行い、信号処理装置１０の外部に出力する。
【００４０】
記憶処理部１１ａ、１１ｂ、１１ｃは、例えば図２に示す記憶処理部１１により実現することができる。
【００４１】
図２を参照すると、記憶処理部１１は、第１の変換回路１３ａ、記憶回路１４、第２の変換回路１３ｂを備えている。
【００４２】
第１の変換回路１３ａは、入力する２の補数表現で表現された信号データを、符号絶対値−−表現で表現された信号データに変換して出力する回路である。なお、「符号絶対値−−表現」は、実施形態で発明者が新たに命名した用語であり、特許請求の範囲の第２の表現形態に対応している。「符号絶対値−−表現」は、データ値が正又は０の場合は２の補数表現と同一であり、データ値が負の場合は、２の補数表現から符号を示す最上位ビット以外のビットを反転した表現である。
【００４３】
図３には、符号絶対値−−表現と、その比較として、２の補数表現、及び符号絶対値表現による、６ビットの信号データにおける＋１５〜−１６の信号値の２進数表現が示されている。図３において、データ値が正の場合、符号絶対値−−表現、２の補数表現、及び符号絶対値表現ともすべて同一のビット表現である。
【００４４】
データ値が０の場合、符号絶対値−−表現と２の補数表現は同一のビット表現である。
【００４５】
データ値が負の場合、符号絶対値−−表現は、２の補数表現から、符号を示す最上位ビット以外のビットを反転した表現である。同様に、データ値が負の場合、２の補数表現は、符号絶対値−−表現から、符号を示す最上位ビット以外のビットを反転した表現である。
【００４６】
図３に示すように、符号絶対値−−表現は、符号絶対値表現と同様に、値０を境界として、正の値と負の値との間でビット値の差異が小さい。従って、値０の近傍で正と負とで頻繁に変化する信号を表現した場合でも、ビット単位の動作率は小さいという特徴がある。
【００４７】
符号絶対値−−表現において、例えば、信号値が＋１（"00001"）から−２("10001")に変化した場合、最上位ビットの１ビットのみが遷移することになる。
【００４８】
再び図２を参照すると、記憶回路１４は、第１の変換回路１３ａが出力する符号絶対値−−表現で表現された信号データを入力して符号絶対値−−表現のまま記憶処理を行い、符号絶対値−−表現のまま第２の変換回路１３ｂに出力する回路である。
【００４９】
第２の変換回路１３ｂは、記憶回路１４が出力する符号絶対値−−表現で表現された信号データを、２の補数表現で表現された信号データに変換して出力する回路である。
【００５０】
第１、第２の変換回路１３ａ、１３ｂは、同一の構成とされ、例えば、図４に示す変換回路１３で実現することができる。図４を参照すると、変換回路１３は、２の補数表現のＮビット（Ｎは正の整数）の信号データ（IN[0]〜IN[N-1]）を並列に入力して、２の補数表現から符号絶対値−−表現へ変換してNビット（OUT[0]〜OUT[N-1]）を並列に出力する回路である。また、変換回路１３は、符号絶対値−−表現のＮビットの信号データ（IN[0]〜IN[N-1]）を並列に入力して、該符号絶対値−−表現から２の補数表現へ変換してNビット（OUT[0]〜OUT[N-1]）を並列に出力する回路である。
【００５１】
変換回路１３は、入力IN[N-1]から入力する符号を示す最上位ビットは、そのまま符号ビットとしてOUT[N-1]に出力する。
【００５２】
入力IN[0]〜IN[N-2]から入力するそれ以外のビットは、それぞれ、XOR（exclusive OR）回路１７により入力IN[N-1]から入力する符号を示す最上位ビットとの排他的論理和をとった後、出力OUT[0]〜OUT[N-2]にそれぞれ出力する。
【００５３】
従って、入力するデータ値が正又は０の場合、入力IN[N-1]から入力する符号を示す最上位ビットは値０であり、出力OUT[0]〜OUT[N-2]には、それぞれ、入力IN[0]〜IN[N-2]に入力されたデータ値がそのまま出力される。
【００５４】
一方、入力するデータ値が負の場合、入力IN[N-1]から入力する符号を示す最上位ビットは値１であり、排他的論理和処理により出力OUT[0]〜OUT[N-2]には、それぞれ、入力IN[0]〜IN[N-2]に入力されたデータ値を反転したデータが出力される。
【００５５】
以上の処理により、変換回路１３は、２の補数表現から符号絶対値−−表現へ、又は、符号絶対値−−表現から２の補数表現への変換処理が実現される。
【００５６】
以上のように変換回路１３において、２の補数表現と、符号絶対値−−表現との変換は、ビット反転処理のみで実現することができ、符号絶対値表現が必要とした１加算処理を必要としない。ビット反転処理は、排他的論理和（XOR回路）のみで実現できるので、他の論理処理回路や演算処理回路と比較して圧倒的に小さい回路規模で実現することができる。
【００５７】
図１７Ａは、第１の実施形態の方法を説明する図である。第１の実施形態の方法は、データ表現形式として、符号絶対値−−表現形式により表現されたデータに対して記憶処理を行う記憶処理工程（ステップＳ１）と、２の補数表現により表現されたデータに対して演算処理を行う演算処理工程（ステップＳ２）とを少なくとも含む。なお、演算処理工程（ステップＳ２）のあとに記憶処理工程（ステップＳ１）をさらに含むようにしてもよい。また、演算処理工程を最初に実行し、つづいて記憶処理工程を実行するようにしてもよい。
【００５８】
図１７Ｂは、図１７Ａの記憶処理工程（ステップＳ１）の手順を説明する図である。データを２の補数表現から符号絶対値−−表現形式に変換する第１変換工程（ステップＳ１１）と、符号絶対値−−表現形式に変換したデータの記憶処理を行う工程（ステップＳ１２）と、記憶処理後の符号絶対値−−表現形式のデータを読み出し２の補数表現へ変換して出力する第２変換工程（ステップＳ１３）と、を含む。
【００５９】
（第１の実施形態の効果）
以上説明したように、本実施形態においては、信号処理装置１０は、記憶処理部１１ａ、１１ｂ、１１ｃにおいて、２の補数表現で表現されるデータを符号絶対値−−表現に変換して記憶処理を行った後、再び２の補数表現に変換する。
【００６０】
図３に示すように、符号絶対値−−表現は、符号絶対値表現と同様に、値０を境界として、正の値と負の値との間でビット値の差異が小さい。従って、値０の近傍で正と負とで頻繁に変化する信号を表現した場合でも、ビット単位の動作率は小さいという特徴がある。その結果、２の補数表現のまま処理する場合と比べて、記憶処理部１１ａ、１１ｂ、１１ｃにおける回路の動作率を低減することができる。
【００６１】
また、変換回路１３による２の補数表現と符号絶対値−−表現との変換処理は、ビット反転処理のみで実現することができ、符号絶対値表現が必要とした１加算処理（インクリメント処理）を必要としない。
【００６２】
ビット反転処理は、ＸＯＲ回路のみで実現できる。このため、他の論理処理回路や演算処理回路と比較して圧倒的に小さい回路規模で実現することができる。
【００６３】
従って、本実施形態では、値０の近傍で正と負とで頻繁に変化する信号を処理する場合でも、記憶処理部１１ａ、１１ｂ、１１ｃにおける回路の動作率を小さくすることができる。このため、記憶処理部１１ａ、１１ｂ、１１ｃにおける消費電力を低減することができる。
【００６４】
一方、本実施形態では、演算処理は、演算処理部１２ａ、１２ｂにおいて、２の補数表現のまま処理される。そのため、演算処理に係る回路の動作率は低減されない。しかし、符号絶対値表現を適用した場合のように、データ表現形式間の変換によって回路規模が増大する、ということはない。従って、記憶処理部１１ａ、１１ｂ、１１ｃでの消費電力が小さくなる分だけ、信号処理装置全体の消費電力を低減することができる。
【００６５】
なお、本実施形態では、信号データのバッファリング処理、リタイミング処理や並べ替え処理等の記憶処理は、記憶処理部１１ａ、１１ｂ、１１ｃにおいて、符号絶対値−−表現で処理を行い、加減算や乗除算等の演算処理は、演算処理部１２ａ、１２ｂにおいて２の補数表現で処理を行うとしたが、符号絶対値−−表現での処理で所望の結果が得られる場合、記憶処理部１１ａ、１１ｂ、１１ｃにおいて、記憶処理に限らず、符号絶対値−−表現に基づき、加減算や乗除算等の演算処理を行ってもよい。
【００６６】
（第２の実施形態）
本発明の例示的な第２の実施形態について説明する。第２の実施形態は、本発明をＦＦＴ装置に適用したものである。ＦＦＴ装置には、バタフライ演算処理を行うバタフライ演算処理部と、ひねり乗算処理を行うひねり乗算処理部と、複数のデータの順序を並べ替えるデータ並べ替え処理部と、を備え、前記バタフライ演算処理部と前記ひねり乗算処理部は、２の補数表現により表現されたデータに対して処理を行い、前記データ並べ替え処理部は、符号絶対値−−表現により表現されたデータに対して記憶処理を行う。
【００６７】
図５は、本発明の第２の実施形態に係るＦＦＴ装置２０の構成例を示すブロック図である。ＦＦＴ装置２０は、図１４に示されたデータフロー５００に従って、２段階の基数８のバタフライ処理に分解された６４ポイントＦＦＴを、パイプライン回路方式によって処理する。ＦＦＴ装置２０は、時間領域のデータｘ(n)（n＝0，1，・・・ ，N-1）を入力し、ｘ(n)をＦＦＴ処理によりフーリエ変換して周波数領域の信号Ｘ(k)（k＝0，1，・・・，N-1）を生成して出力する。ここで、ＮはＦＦＴブロックサイズを表す正整数である。特に制限されないが、ＦＦＴ装置２０は、８データ並列で６４ポイントＦＦＴ処理を行うものとする（N=64）。この場合、ＦＦＴ装置２０は、時間領域のデータｘ(n)を入力し、ＦＦＴ処理によりフーリエ変換した周波数領域の信号Ｘ(k)を生成して出力する。このとき、入力データｘ(n) として、８データずつ、８サイクルの期間に、図６に示す順序で、合計で６４個のデータが入力される。なお、ここでは、図６において、表の内容（８行×８列の要素）として示された、0から63までの数字は、ｘ(n)の添え字nを表している。
【００６８】
具体的には、１サイクル目に、データ組Ｐ１を構成するｘ(0)，ｘ(1)，・・・，ｘ(7)の８データが入力される。
【００６９】
そして、２サイクル目に、データ組Ｐ２を構成するｘ(8)，ｘ(9)，・・・，ｘ(15)の８データが入力される。以降同様に、３サイクル目から８サイクル目まで、データ組Ｐ３〜Ｐ８を構成するデータが入力される。
【００７０】
同様に、出力データＸ(k)として、８データずつ、８サイクルの期間に、図６に示す順序で、６４データが出力される。なお、ここでは、図６の表の内容として示された、0から６３までの数字は、Ｘ(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との並べ替え、
をそれぞれ行うと、図７に示されている「ビットリバース順序」になる。
【０１０３】
次に、変換回路２３２は、第２のデータ並べ替え部２０４により「ビットリバース順序」に並べ替えられた符号絶対値−−表現で表現されたデータを、２の補数表現に変換する。変換回路２３２は、変換回路２３３ａ〜２３３ｈから構成され、並列に入力される２の補数表現で表現されたデータをそれぞれ符号絶対値−−表現に変換する。変換回路２３３ａ〜２３３ｈは、図４に示した変換回路１３で構成することができる。
【０１０４】
第１のデータ並べ替え部２０１は、第１のデータ振り分け部２０２、４つのＲＡＭ（Random Access memory）回路２１０ａ、２１０ｂ、２１０ｃ、２１０ｄ、第２のデータ振り分け部２０３を備えている。
【０１０５】
第１のデータ振り分け部２０２は、８つの入力ｉｎ０〜ｉｎ７から、変換回路２３３ａ〜２３３ｈを介して、８つのデータを同時に入力して、データの振り分け処理を行い、８つの出力２０５ａ〜２０５ｈへ出力する。
【０１０６】
ＲＡＭ回路２１０ａは、第１のデータ振り分け部２０２がその出力２０５ａ及び２０５ｂに出力した２つのデータを入力し、これらを組みにして記憶し、出力２０６ａ及び２０６ｂに、再び２つのデータとして出力する。
【０１０７】
同様に、ＲＡＭ回路２１０ｂは、第１のデータ振り分け部２０２がその出力２０５ｃ及び２０５ｄに出力した２つのデータを入力しこれらを組みにして記憶し、出力２０６ｃ及び２０６ｄに再び２つのデータとして出力する。
【０１０８】
ＲＡＭ回路２１０ｃは、第１のデータ振り分け部２０２がその出力２０５ｅ及び２０５ｆに出力した２つのデータを入力しこれらを組みにして記憶し、出力２０６ｅ及び２０６ｆに再び２つのデータとして出力する。
【０１０９】
ＲＡＭ回路２１０ｄは、第１のデータ振り分け部２０２がその２０５ｇ及び２０５ｈに出力した２つのデータを入力しこれらを組みにして記憶し、出力２０６ｇ及び２０６ｈに再び２つのデータとして出力する。
【０１１０】
第２のデータ振り分け部２０３は、８つの入力２０６ａ〜２０６ｈから８つのデータを同時に入力して、データの振り分け処理を行い、８つの出力２０７ａ〜２０７ｈへ出力する。
【０１１１】
第２のデータ並べ替え部２０４は、４つのデータ組内並べ替え部２２０ａ〜２２０ｄを備えている。
【０１１２】
データ組内並べ替え部２２０ａは、第２のデータ振り分け部２０３の２つの出力２０７ａ、２０７ｂからのデータを入力して、４つのデータから構成されるデータ組の内部で並べ替え処理を行い、変換回路２３４a、２３４ｂを介して出力ｏｕｔ０、ｏｕｔ１にそれぞれ出力する。
【０１１３】
同様に、データ組内並べ替え部２２０ｂは、第２のデータ振り分け部２０３の２つの出力２０７ｃ、２０７ｄからのデータを入力して、４つのデータから構成されるデータ組の内部で並べ替え処理を行い、変換回路２３４ｃ、２３４ｄを介して出力ｏｕｔ２、ｏｕｔ３にそれぞれ出力する。
【０１１４】
データ組内並べ替え部２２０ｃは、第２のデータ振り分け部２０３の２つの出力２０７ｅ、２０７ｆからのデータを入力して、４つのデータから構成されるデータ組の内部で並べ替え処理を行い、変換回路２３４e、２３４fを介して出力ｏｕｔ４、ｏｕｔ５にそれぞれ出力する。
【０１１５】
データ組内並べ替え部２２０ｄは、第２のデータ振り分け部２０３の２つの出力２０７ｇ、２０７ｈからのデータを入力して、４つのデータから構成されるデータ組の内部で並べ替え処理を行い、変換回路２３４g、２３４hを介して出力ｏｕｔ６、ｏｕｔ７にそれぞれ出力する。
【０１１６】
変換回路２３２は、変換回路２３４ａ〜２３４ｈから構成される。変換回路２３４ａ〜２３４ｈは、第２の並べ替え部２０４から並列に出力される符号絶対値−−表現で表現されたデータをそれぞれ入力し、それぞれ２の補数表現に変換する。変換回路２３４ａ〜２３４ｈは図４に示す変換回路１３で構成することができる。
【０１１７】
次に、データ並べ替え処理部２００の具体的な動作を説明する。図１１は、図８に示したデータ並べ替え処理部２００の動作を説明するためのタイムチャートである。図１１の横軸は時間（サイクル番号で表す）であり、各行は、図８の各部のデータ線（入力、出力）のデータを表している。図１１において、サイクル（列）とデータ線（行）の配列の要素の数字：０〜６３は、データｘ（０）・・・、ｘ（６３）（例えば図６のデータ組Ｐ１、・・・、Ｐ８の各データ）を表している。
【０１１８】
データ並べ替え処理部２００は、ｔ０〜ｔ７の８サイクルにおいて、入力ｉｎ０〜ｉｎ７より８並列で、０〜６３の６４個のデータを逐次順序で入力し、ｔ９〜ｔ１６の８サイクルにおいて８並列で、０〜６３の６４個のデータをビットリバース順序で出力ｏｕｔ０〜ｏｕｔ７より出力する。
【０１１９】
まず、第１のデータ並べ替え手段２０１の動作の詳細を説明する。第１のデータ並べ替え手段２０１は、ｔ０〜ｔ７の８サイクルにおいて８並列で、０〜６３の６４個のデータを逐次順序で入力し、ｔ８〜ｔ１５の８サイクルにおいて８並列で、０〜６３の６４個のデータを中間順序で出力する。
【０１２０】
第１のデータ振り分け部２０２は以下の動作を行う。なお、以下では、動作主体である第１のデータ振り分け部２０２は省略される。
【０１２１】
サイクルｔ０及びｔ１において、
ｉｎ０から入力したデータを出力２０５ａに出力し、
ｉｎ１から入力したデータを出力２０５ｂに出力し、
ｉｎ２から入力したデータを出力２０５ｃに出力し、
ｉｎ３から入力したデータを出力２０５ｄに出力し、
ｉｎ４から入力したデータを出力２０５ｅに出力し、
ｉｎ５から入力したデータを出力２０５ｆに出力し、
ｉｎ６から入力したデータを出力２０５ｇに出力し、
ｉｎ７から入力したデータを出力２０５ｈに出力する。
【０１２２】
サイクルｔ２及びｔ３において、
ｉｎ０から入力したデータを出力２０５ｃに出力し、
ｉｎ１から入力したデータを出力２０５ｄに出力し、
ｉｎ２から入力したデータを出力２０５ｅに出力し、
ｉｎ３から入力したデータを出力２０５ｆに出力し、
ｉｎ４から入力したデータを出力２０５ｇに出力し、
ｉｎ５から入力したデータを出力２０５ｈに出力し、
ｉｎ６から入力したデータを出力２０５ａに出力し、
ｉｎ７から入力したデータを出力２０５ｂに出力する。
【０１２３】
サイクルｔ４及びｔ５において、
ｉｎ０から入力したデータを出力２０５ｅに出力し、
ｉｎ１から入力したデータを出力２０５ｆに出力し、
ｉｎ２から入力したデータを出力２０５ｇに出力し、
ｉｎ３から入力したデータを出力２０５ｈに出力し、
ｉｎ４から入力したデータを出力２０５ａに出力し、
ｉｎ５から入力したデータを出力２０５ｂに出力し、
ｉｎ６から入力したデータを出力２０５ｃに出力し、
ｉｎ７から入力したデータを出力２０５ｄに出力する。
【０１２４】
サイクルｔ６及びｔ７において、
ｉｎ０から入力したデータを出力２０５ｇに出力し、
ｉｎ１から入力したデータを出力２０５ｈに出力し、
ｉｎ２から入力したデータを出力２０５ａに出力し、
ｉｎ３から入力したデータを出力２０５ｂに出力し、
ｉｎ４から入力したデータを出力２０５ｃに出力し、
ｉｎ５から入力したデータを出力２０５ｄに出力し、
ｉｎ６から入力したデータを出力２０５ｅに出力し、
ｉｎ７から入力したデータを出力２０５ｆに出力する。
【０１２５】
すわなち、第１のデータ振り分け部２０２は、サイクルｔ０からｔ７において以下の動作を行う。
【０１２６】
（１）サイクルｔ０において、入力ｉｎ０〜ｉｎ７から０〜７の８データをそれぞれ入力し、出力２０５ａ〜２０５ｈに０〜７の８データをそれぞれ出力する。
【０１２７】
（２）サイクルｔ１において、入力ｉｎ０〜ｉｎ７から８〜１５の８データをそれぞれ入力し、出力２０５ａ〜２０５ｈに８〜１５の８データをそれぞれ出力する。
【０１２８】
（３）サイクルｔ２において、入力ｉｎ０〜ｉｎ７から１６〜２３の８データをそれぞれ入力し、出力２０５ａ、２０５ｂに２２、２３、出力２０５ｃ〜２０５ｈに１６〜２１の８データをそれぞれ出力する。
【０１２９】
（４）サイクルｔ３において、入力ｉｎ０〜ｉｎ７から２４〜３１の８データをそれぞれ入力し、出力２０５ａ、２０５ｂに３０、３１、出力２０５ｃ〜２０５ｈに、２４〜２９の８データをそれぞれ出力する。
【０１３０】
（５）サイクルｔ４において、入力ｉｎ０〜ｉｎ７から３２〜３９の８データをそれぞれ入力し、出力２０５ａ〜２０５ｄに３６〜３９、出力２０５ｅ〜２０５ｈに３２〜３５の８データをそれぞれ出力する。
【０１３１】
（６）サイクルｔ５において、入力ｉｎ０〜ｉｎ７から４０〜４７の８データをそれぞれ入力し、出力２０５ａ〜２０５ｄに４４〜４７、出力２０５ｅ〜２０５ｈに４０〜４３の８データをそれぞれ出力する。
【０１３２】
（７）サイクルｔ６において、入力ｉｎ０〜ｉｎ７から４８〜５５の８データをそれぞれ入力し、出力２０５ａ〜２０５ｆに５０〜５５、出力２０５ｇ、２０５ｈに４８、４９の８データをそれぞれ出力する。
【０１３３】
（８）サイクルｔ７において、入力ｉｎ０〜ｉｎ７から５６〜６３の８データをそれぞれ入力し、出力２０５ａ〜２０５ｆに５８〜６３、出力２０５ｇ、２０５ｈに５６、５７の８データをそれぞれ出力する。
【０１３４】
なお、上記（１）〜（８）において、０〜７、８〜１５、１６〜２３、２４〜３１、３２〜３９、４０〜４７、４８〜５５、５６〜６３の各８データは、例えば図６のデータ組Ｐ１を構成するｘ（０）〜ｘ（７）、データ組Ｐ２を構成するｘ（８）〜ｘ（１５）、データ組Ｐ３を構成するｘ（１６）〜ｘ（２３）、データ組Ｐ４を構成するｘ（２４）〜ｘ（３１）、データ組Ｐ５を構成するｘ（３２）〜ｘ（３９）、データ組Ｐ６を構成するｘ（４０）〜ｘ（４７）、データ組Ｐ７を構成するｘ（４８）〜ｘ（５５）、データ組Ｐ８を構成するｘ（５６）〜ｘ（６３）に対応している。すなわち、データの数字ｎはｘ（ｎ）の添え字ｎを表している。以下、データに関して、同様の表記が用いられる。
【０１３５】
以上説明したように、第１のデータ振り分け部２０２は、並列して同時に入力する８つのデータに対してローテート処理して出力するものであり、例えばシフト回路で容易に実現することができる。例えばｉｎ０〜ｉｎ７からの８データ（データ：７ビット）を並列に記憶保持するレジスタにおいて、例えばサイクルｔ２及びｔ３では、２つのデータ分（２×７ビット）右ローテートすることで、ｉｎ６、ｉｎ７、ｉｎ０〜ｉｎ５のデータをこの順に並べた８データが得られる。サイクルｔ４及びｔ５では、例えば４つのデータ分（４×７ビット）、左又は右にローテートすることで、ｉｎ４〜ｉｎ７、ｉｎ０〜ｉｎ３のデータをこの順に並べた８データが得られる。サイクルｔ６及びｔ７では、例えば２つのデータ分（２×７ビット）左ローテートすることで、ｉｎ２〜ｉｎ７、ｉｎ０〜ｉｎ１のデータをこの順に並べた８データが得られる。並列８データはそれぞれ、出力２０５ａ〜２０５ｈに出力される。
【０１３６】
次に、ＲＡＭ回路２１０ａは、以下の動作を行う。なお、第１のデータ振り分け部２０２の出力２０５ａ、２０５ｂは、ＲＡＭ回路２１０ａの入力にそれぞれ接続されるため、ＲＡＭ回路２１０ａに関する説明では、入力２０５ａ、２０５ｂという。また、動作主体であるＲＡＭ回路２１０ａは省略される。ＲＡＭ回路２１０ｂ〜２１０ｄの入力についても同様とする。
【０１３７】
（１）サイクルｔ０において、入力２０５ａ、２０５ｂから入力した０，１の２つのデータを、サイクルｔ８において出力２０６ａ、２０６ｂに出力する。
【０１３８】
（２）サイクルｔ１において、入力２０５ａ、２０５ｂから入力した８，９の２つのデータを、サイクルｔ９において出力２０６ａ、２０６ｂに出力する。
【０１３９】
（３）サイクルｔ２において入力２０５ａ、２０５ｂから入力した２２，２３の２つのデータを、サイクルｔ１４において出力２０６ａ、２０６ｂに出力する。
【０１４０】
（４）サイクルｔ３において入力２０５ａ、２０５ｂから入力した３０，３１の２つのデータを、サイクルｔ１５において出力２０６ａ、２０６ｂに出力する。
【０１４１】
（５）サイクルｔ４において入力２０５ａ、２０５ｂから入力した３６，３７の２つのデータを、サイクルｔ１２において出力２０６ａ、２０６ｂに出力する。
【０１４２】
（６）サイクルｔ５において入力２０５ａ、２０５ｂから入力した４４，４５の２つのデータを、サイクルｔ１３において出力２０６ａ、２０６ｂに出力する。
【０１４３】
（７）サイクルｔ６において、入力２０５ａ、２０５ｂから入力した５０，５１の２つのデータを、サイクルｔ１０において出力２０６ａ、２０６ｂに出力する。
【０１４４】
（８）サイクルｔ７において入力２０５ａ、２０５ｂから入力した５８，５９の２つのデータを、サイクルｔ１１において出力２０６ａ、２０６ｂに出力する。
【０１４５】
同様に、ＲＡＭ回路２１０ｂは、以下の動作を行う。
（１）サイクルｔ０において入力２０５ｃ、２０５ｄから入力した２，３の２つのデータを、サイクルｔ１０において出力２０６ｃ、２０６ｄに出力する。
【０１４６】
（２）サイクルｔ１において入力２０５ｃ、２０５ｄから入力した１０，１１の２つのデータを、サイクルｔ１１において出力２０６ｃ、２０６ｄに出力する。
【０１４７】
（３）サイクルｔ２において入力２０５ｃ、２０５ｄから入力した１６，１７の２つのデータを、サイクルｔ８において出力２０６ｃ、２０６ｄに出力する。
【０１４８】
（４）サイクルｔ３において入力２０５ｃ、２０５ｄから入力した２４，２５の２つのデータを、サイクルｔ９において出力２０６ｃ、２０６ｄに出力する。
【０１４９】
（５）サイクルｔ４において入力２０５ｃ、２０５ｄから入力した３８，３９の２つのデータを、サイクルｔ１４において出力２０６ｃ、２０６ｄに出力する。
【０１５０】
（６）サイクルｔ５において入力２０５ｃ、２０５ｄから入力した４６，４７の２つのデータを、サイクルｔ１５において出力２０６ｃ、２０６ｄに出力する。
【０１５１】
（７）サイクルｔ６において入力２０５ｃ、２０５ｄから入力した５２，５３の２つのデータを、サイクルｔ１２において出力２０６ｃ、２０６ｄに出力する。
【０１５２】
（８）サイクルｔ７において入力２０５ｃ、２０５ｄから入力した６０，６１の２つのデータを、サイクルｔ１３において出力２０６ｃ、２０６ｄに出力する。
【０１５３】
同様に、ＲＡＭ回路２１０ｃは、以下の動作を行う。
（１）サイクルｔ０において入力２０５ｅ、２０５ｆから入力した４，５の２つのデータを、サイクルｔ１２において出力２０６ｅ、２０６ｆに出力する。
【０１５４】
（２）サイクルｔ１において入力２０５ｅ、２０５ｆから入力した１２，１３の２つのデータを、サイクルｔ１３において出力２０６ｅ、２０６ｆに出力する。
【０１５５】
（３）サイクルｔ２において入力２０５ｅ、２０５ｆから入力した１８，１９の２つのデータを、サイクルｔ１０において出力２０６ｅ、２０６ｆに出力する。
【０１５６】
（４）サイクルｔ３において入力２０５ｅ、２０５ｆから入力した２６，２７の２つのデータを、サイクルｔ１１において出力２０６ｅ、２０６ｆに出力する。
【０１５７】
（５）サイクルｔ４において入力２０５ｅ、２０５ｆから入力した３２，３３の２つのデータを、サイクルｔ８において出力２０６ｅ、２０６ｆに出力する。
【０１５８】
（６）サイクルｔ５において入力２０５ｅ、２０５ｆから入力した４０，４１の２つのデータを、サイクルｔ９において出力２０６ｅ、２０６ｆに出力する。
【０１５９】
（７）サイクルｔ６において入力２０５ｅ、２０５ｆから入力した５４，５５の２つのデータを、サイクルｔ１４において出力２０６ｅ、２０６ｆに出力する。
【０１６０】
（８）サイクルｔ７において入力２０５ｅ、２０５ｆから入力した６２，６３の２つのデータを、サイクルｔ１５において出力２０６ｅ、２０６ｆに出力する。
【０１６１】
同様に、ＲＡＭ回路２１０ｄは、以下の動作を行う。
（１）サイクルｔ０において入力２０５ｇ、２０５ｈから入力した６，７の２つのデータを、サイクルｔ１４において出力２０６ｇ、２０６ｈに出力する。
【０１６２】
（２）サイクルｔ１において入力２０５ｇ、２０５ｈから入力した１４，１５の２つのデータを、サイクルｔ１５において出力２０６ｇ、２０６ｈに出力する。
【０１６３】
（３）サイクルｔ２において入力２０５ｇ、２０５ｈから入力した２０，２１の２つのデータを、サイクルｔ１２において出力２０６ｇ、２０６ｈに出力する。
【０１６４】
（４）サイクルｔ３において入力２０５ｇ、２０５ｈから入力した２８，２９の２つのデータを、サイクルｔ１３において出力２０６ｇ、２０６ｈに出力する。
【０１６５】
（５）サイクルｔ４において入力２０５ｇ、２０５ｈから入力した３４，３５の２つのデータを、サイクルｔ１０において出力２０６ｇ、２０６ｈに出力する。
【０１６６】
（６）サイクルｔ５において入力２０５ｇ、２０５ｈから入力した４２，４３の２つのデータを、サイクルｔ１１において出力２０６ｇ、２０６ｈに出力する。
【０１６７】
（７）サイクルｔ６において入力２０５ｇ、２０５ｈから入力した４８，４９の２つのデータを、サイクルｔ８において出力２０６ｇ、２０６ｈに出力する。
【０１６８】
（８）サイクルｔ７において入力２０５ｇ、２０５ｈから入力した５６，５７の２つのデータを、サイクルｔ９において出力２０６ｇ、２０６ｈに出力する。
【０１６９】
次に、第２のデータ振り分け部２０３は、以下の動作を行う。なお、ＲＡＭ回路２１０ａ〜２１０ｄの出力２０６ａ〜２０６ｈは第２のデータ振り分け部２０３の入力に接続されるため、第２のデータ振り分け部２０３の説明では、入力２０６ａ〜２０６ｈという。また、動作主体である第２のデータ振り分け部２０３は省略される。
【０１７０】
サイクルｔ８及びｔ９において、
入力２０６ａから入力したデータを出力２０７ａに出力し、
入力２０６ｂから入力したデータを出力２０７ｂに出力し、
入力２０６ｃから入力したデータを出力２０７ｃに出力し、
入力２０６ｄから入力したデータを出力２０７ｄに出力し、
入力２０６ｅから入力したデータを出力２０７ｅに出力し、
入力２０６ｆから入力したデータを出力２０７ｆに出力し、
入力２０６ｇから入力したデータを出力２０７ｇに出力し、
入力２０６ｈから入力したデータを出力２０７ｈに出力する。
【０１７１】
サイクルｔ１０及びｔ１１において、
入力２０６ａから入力したデータを出力２０７ｇに出力し、
入力２０６ｂから入力したデータを出力２０７ｈに出力し、
入力２０６ｃから入力したデータを出力２０７ａに出力し、
入力２０６ｄから入力したデータを出力２０７ｂに出力し、
入力２０６ｅから入力したデータを出力２０７ｃに出力し、
入力２０６ｆから入力したデータを出力２０７ｄに出力し、
入力２０６ｇから入力したデータを出力２０７ｅに出力し、
入力２０６ｈから入力したデータを出力２０７ｆに出力する。
【０１７２】
サイクルｔ１２及びｔ１３において、
入力２０６ａから入力したデータを出力２０７ｅに出力し、
入力２０６ｂから入力したデータを出力２０７ｆに出力し、
入力２０６ｃから入力したデータを出力２０７ｇに出力し、
入力２０６ｄから入力したデータを出力２０７ｈに出力し、
入力２０６ｅから入力したデータを出力２０７ａに出力し、
入力２０６ｆから入力したデータを出力２０７ｂに出力し、
入力２０６ｇから入力したデータを出力２０７ｃに出力し、
入力２０６ｈから入力したデータを出力２０７ｄに出力する。
【０１７３】
サイクルｔ１４及びｔ１５において、
入力２０６ａから入力したデータを出力２０７ｃに出力し、
入力２０６ｂから入力したデータを出力２０７ｄに出力し、
入力２０６ｃから入力したデータを出力２０７ｅに出力し、
入力２０６ｄから入力したデータを出力２０７ｆに出力し、
入力２０６ｅから入力したデータを出力２０７ｇに出力し、
入力２０６ｆから入力したデータを出力２０７ｈに出力し、
入力２０６ｇから入力したデータを出力２０７ａに出力し、
入力２０６ｈから入力したデータを出力２０７ｂに出力する。
【０１７４】
すわなち、第２のデータ振り分け部２０３は、以下の動作を行う。
【０１７５】
（１）サイクルｔ０において、入力２０６ａ〜２０６ｈから０，１，１６、１７，３２，３３，４８，４９の８データをそれぞれ入力し、出力２０７ａ〜２０７ｈに０，１，１６、１７，３２，３３，４８，４９の８データをそれぞれ出力する。
【０１７６】
（２）サイクルｔ１において、入力２０６ａ〜２０６ｈから８，９，２４，２５，４０，４１，５６，５７の８データをそれぞれ入力し、出力２０７ａ〜２０７ｈに８，９，２４，２５，４０，４１，５６，５７の８データをそれぞれ出力する。
【０１７７】
（３）サイクルｔ２において、入力２０６ａ〜２０６ｈから５０，５１，２，３，１８，１９，３４，３５の８データをそれぞれ入力し、出力２０７ａ〜２０７ｈに２，３，１８，１９，３４，３５，５０，５１の８データをそれぞれ出力する。
【０１７８】
（４）サイクルｔ３において、入力２０６ａ〜２０６ｈから５８，５９，１０，１１，２６，２７，４２，４３の８データをそれぞれ入力し、出力２０７ａ〜２０７ｈに１０，１１，２６，２７，４２，４３，５８，５９の８データをそれぞれ出力する。
【０１７９】
（５）サイクルｔ４において、入力２０６ａ〜２０６ｈから３６，３７，５２，５３，４，５，２０，２１の８データをそれぞれ入力し、出力２０７ａ〜２０７ｈに４，５，２０，２１，３６，３７，５２，５３の８データをそれぞれ出力する。
【０１８０】
（６）サイクルｔ５において、入力２０６ａ〜２０６ｈから４４，４５，６０，６１，１２，１３，２８，２９の８データをそれぞれ入力し、出力２０７ａ〜２０７ｈに１２，１３，２８，２９，４４，４５，６０，６１の８データをそれぞれ出力する。
【０１８１】
（７）サイクルｔ６において、入力２０６ａ〜２０６ｈから２２，２３，３８，３９，５４，５５，６，７の８データをそれぞれ入力し、出力２０７ａ〜２０７ｈに６，７，２２，２３，３８，３９，５４，５５の８データをそれぞれ出力する。
【０１８２】
（８）サイクルｔ７において、入力２０６ａ〜２０６ｈから３０，３１，４６，４７，６２，６３，１４，１５の８データをそれぞれ入力し、出力２０７ａ〜２０７ｈに１４，１５，３０，３１，４６，４７，６２，６３の８データをそれぞれ出力する。
【０１８３】
第２のデータ振り分け部２０３も、並列して同時に入力する８つのデータに対して、前述した第１のデータ振り分け部２０２と同様に、ローテート処理して出力するものであり、例えばシフト回路で容易に実現することができる。
【０１８４】
次に、図１１を参照して第２のデータ並べ替え部２０４の動作の詳細を説明する。第２のデータ並べ替え部２０４は、ｔ８〜ｔ１５の８サイクルにおいて８並列で、０〜６３の６４個のデータを中間順序で入力し、ｔ９〜ｔ１６の８サイクルにおいて８並列で、０〜６３の６４個のデータをビットリバース順序で出力する。
【０１８５】
データ組内並べ替え部２２０ａは、以下のように動作する。なお、動作主体であるデータ組内並べ替え部２２０ａは省略される。
【０１８６】
入力２０７ａ、２０７ｂから、
サイクルｔ８において、０，１の２つのデータを入力し、
サイクルｔ９において、８，９の２つのデータを入力し、
出力ｏｕｔ０、ｏｕｔ１にそれぞれ接続する変換回路２３４ａ、２３４ｂに、
サイクルｔ９において、０，８の２つのデータを出力し、
サイクルｔ１０において、１，９の２つのデータを出力する。
【０１８７】
同様に、入力２０７ａ、２０７ｂから、
サイクルｔ１０において、２，３の２つのデータを入力し、
サイクルｔ１１において、１０，１１の２つのデータを入力し、
出力ｏｕｔ０、ｏｕｔ１にそれぞれ接続する変換回路２３４ａ、２３４ｂに、
サイクルｔ１１において、２，１０の２つのデータを出力し、
サイクルｔ１２において、３，１１の２つのデータを出力する。
【０１８８】
入力２０７ａ、２０７ｂから、
サイクルｔ１２において、４，５の２つのデータを入力し、
サイクルｔ１３において、１２，１３の２つのデータを入力し、
出力ｏｕｔ０、ｏｕｔ１にそれぞれ接続する変換回路２３４ａ、２３４ｂに、
サイクルｔ１３において、４，１２の２つのデータを出力し、、
サイクルｔ１４において、５，１３の２つのデータを出力する。
【０１８９】
入力２０７ａ、２０７ｂから、
サイクルｔ１４において、６，７の２つのデータを入力し、
サイクルｔ１５において、１４，１５の２つのデータを入力し、
出力ｏｕｔ０、ｏｕｔ１にそれぞれ接続する変換回路２３４ａ、２３４ｂに、
サイクルｔ１５において、６，１４の２つのデータを出力し、
サイクルｔ１６において、７，１５の２つのデータを出力する。
【０１９０】
データ組内並べ替え部２２０ｂは、以下のように動作する。なお、動作主体であるデータ組内並べ替え部２２０ｂは省略される。
【０１９１】
入力２０７ｃ、２０７ｄから、
サイクルｔ８において、１６，１７の２つのデータを入力し、
サイクルｔ９において、２４，２５の２つのデータを入力し、
出力ｏｕｔ２、ｏｕｔ３にそれぞれ接続する変換回路２３４ｃ、２３４ｄに、
サイクルｔ９において、１６，２４の２つのデータを出力し、
サイクルｔ１０において、１７，２５の２つのデータを出力する。
【０１９２】
同様に、
入力２０７ｃ、２０７ｄから、
サイクルｔ１０において、１８，１９の２つのデータを入力し、
サイクルｔ１１において、２６，２７の２つのデータを入力し、
出力ｏｕｔ２、ｏｕｔ３にそれぞれ接続する変換回路２３４ｃ、２３４ｄに、
サイクルｔ１１において、１８，２６の２つのデータを出力し、
サイクルｔ１２において、１９，２７の２つのデータを出力する。
【０１９３】
入力２０７ｃ、２０７ｄから、
サイクルｔ１２において、２０，２１の２つのデータを入力し、
サイクルｔ１３において、２８，２９の２つのデータを入力し、
出力ｏｕｔ２、ｏｕｔ３にそれぞれ接続する変換回路２３４ｃ、２３４ｄに、
サイクルｔ１３において、２０，２８の２つのデータを出力し、
サイクルｔ１４において、２１，２９の２つのデータを出力する。
【０１９４】
入力２０７ｃ、２０７ｄから、
サイクルｔ１４において、２２，２３の２つのデータを入力し、
サイクルｔ１５において、３０，３１の２つのデータを入力し、
出力ｏｕｔ２、ｏｕｔ３にそれぞれ接続する変換回路２３４ｃ、２３４ｄに、
サイクルｔ１５において、２２，３０の２つのデータを出力し、
サイクルｔ１６において、２３，３１の２つのデータを出力する。
【０１９５】
データ組内並べ替え部２２０ｃは、以下のように動作する。なお、動作主体であるデータ組内並べ替え部２２０ｃは省略される。
【０１９６】
入力２０７ｅ、２０７ｆから、
サイクルｔ８において、３２，３３の２つのデータを入力し、
サイクルｔ９において、４０，４１の２つのデータを入力し、
出力ｏｕｔ４、ｏｕｔ５にそれぞれ接続する変換回路２３４ｅ、２３４ｆに、
サイクルｔ９において、３２，４０の２つのデータを出力し、
サイクルｔ１０において、３３，４１の２つのデータを出力する。
【０１９７】
同様に、
入力２０７ｅ、２０７ｆから、
サイクルｔ１０において、３４，３５の２つのデータを入力し、
サイクルｔ１１において、４２，４３の２つのデータを入力し、
出力ｏｕｔ４、ｏｕｔ５にそれぞれ接続する変換回路２３４ｅ、２３４ｆに、
サイクルｔ１１において、３４，４２の２つのデータを出力し、
サイクルｔ１２において、３５，４３の２つのデータを出力する。
【０１９８】
入力２０７ｅ、２０７ｆから、
サイクルｔ１２において、３６，３７の２つのデータを入力し、
サイクルｔ１３において、４４，４５の２つのデータを入力し、
出力ｏｕｔ４、ｏｕｔ５にそれぞれ接続する変換回路２３４ｅ、２３４ｆに、
サイクルｔ１３において、３６，４４の２つのデータを出力し、
サイクルｔ１４において、３７，４５の２つのデータを出力する。
【０１９９】
入力２０７ｅ、２０７ｆから、
サイクルｔ１４において、３８，３９の２つのデータを入力し、
サイクルｔ１５において、４６，４７の２つのデータを入力し、
出力ｏｕｔ４、ｏｕｔ５にそれぞれ接続する変換回路２３４ｅ、２３４ｆに、
サイクルｔ１５において、３８，４６の２つのデータを出力し、
サイクルｔ１６において、３９，４７の２つのデータを出力する。
【０２００】
データ組内並べ替え部２２０ｄは、以下のように動作する。なお、動作主体であるデータ組内並べ替え部２２０ｄは省略される。
【０２０１】
入力２０７ｇ、２０７ｈから、
サイクルｔ８において、４８，４９の２つのデータを入力し、
サイクルｔ９において、５６，５７の２つのデータを入力し、
出力ｏｕｔ６、ｏｕｔ７にそれぞれ接続する変換回路２３４ｇ、２３４ｈに、
サイクルｔ９において、４８，５６の２つのデータを出力し、
サイクルｔ１０において、４９，５７の２つのデータを出力する。
【０２０２】
同様に、入力２０７ｇ、２０７ｈから、
サイクルｔ１０において、５０，５１の２つのデータを入力し、
サイクルｔ１１において、５８，５９の２つのデータを入力し、
出力ｏｕｔ６、ｏｕｔ７にそれぞれ接続する変換回路２３４ｇ、２３４ｈに、
サイクルｔ１１において、５０，５８の２つのデータを出力し、
サイクルｔ１２において、５１，５９の２つのデータを出力する。
【０２０３】
入力２０７ｇ、２０７ｈから、
サイクルｔ１２において、５２，５３の２つのデータを入力し、
サイクルｔ１３において、６０，６１の２つのデータを入力し、
出力ｏｕｔ６、ｏｕｔ７にそれぞれ接続する変換回路２３４ｇ、２３４ｈに、
サイクルｔ１３において、５２，６０の２つのデータを出力し、
サイクルｔ１４において、５３，６１の２つのデータを出力する。
【０２０４】
入力２０７ｇ、２０７ｈから、
サイクルｔ１４において、５４，５５の２つのデータを入力し、
サイクルｔ１５において、６２，６３の２つのデータを入力し、
出力ｏｕｔ６、ｏｕｔ７にそれぞれ接続する変換回路２３４ｇ、２３４ｈに、
サイクルｔ１５において、５４，６２の２つのデータを出力し、
サイクルｔ１６において、５５，６３の２つのデータを出力する。
【０２０５】
以上説明したように、第１のデータ並べ替え部２０１が、逐次順序から中間順序への並べ替えを行い、第２のデータ並べ替え部２０４が、中間順序からビットリバース順序への並べ替えを行うことで、データ並べ替え処理部２００は、逐次順序からビットリバース順序への並べ替えを実現する。
【０２０６】
第２のデータ並べ替え部２０４を構成するデータ組内並べ替え部２２０ａ〜２２０ｄは、例えば図１２に示すデータ組内並べ替え部２２０で実現することができる。図１２を参照すると、データ組内並べ替え部２２０は、セレクタ回路２２１、２２４、２２５、及び、フリップフロップ２２２、２２３から構成される。
【０２０７】
図１３は、データ組内並べ替え部２２０の動作を説明するタイムチャートである。図１３において、データ組内並べ替え部２２０は、サイクルｔ０、ｔ１において、入力ｉｎ０、ｉｎ１から、０，１，８，９の４つのデータをデータ組として入力して、データ組内の並べ替え処理を行い、サイクルｔ１、ｔ２において、出力ｏｕｔ０、ｏｕｔ１から４つのデータとして、０，８，１，９を出力する。
【０２０８】
具体的には、データ組内並べ替え部２２０では、サイクルｔ０において、入力ｉｎ０、ｉｎ１から０，１の２つのデータを入力し、セレクタ２２１は、入力ｉｎ０から入力した０を選択して出力する。また、サイクルｔ０において、フリップフロップ２２２は、セレクタ２２１で選択出力された０を記憶する。フリップフロップ２２３は、入力ｉｎ１から入力した１を記憶する。
【０２０９】
次のサイクルｔ１において、入力ｉｎ０、ｉｎ１から８，９の２つのデータを入力し、セレクタ２２１は、入力ｉｎ１から入力した９を選択出力する。また、サイクルｔ１において、フリップフロップ２２２は、サイクルｔ０で記憶した０を出力するとともに、入力ｉｎ１から入力した９を記憶する。フリップフロップ２２３は、サイクルｔ０で記憶した１を出力する。
【０２１０】
また、サイクルｔ１において、セレクタ２２４は、フリップフロップ２２２が出力する０を選択して、出力ｏｕｔ０に出力する。セレクタ２２５は、入力ｉｎ０から入力した８を選択して、出力ｏｕｔ１に出力する。
【０２１１】
サイクルｔ２において、フリップフロップ２２２は、記憶した９を出力する。フリップフロップ２２３は、記憶した１を出力する。
【０２１２】
また、サイクルｔ２において、セレクタ２２４は、フリップフロップ２２３が出力する１を選択して、出力ｏｕｔ０に出力する。セレクタ２２５は、フリップフロップ２２２が出力する９を選択して、出力ｏｕｔ１に出力する。なお、特に制限されないが、フリップフロップ２２２、２２３は、サイクル毎のクロック信号（クロックパルス）ＣＫの立ち上がりでデータ端子のデータを記憶し、該クロックパルスの立ち下がりで出力端子Ｑから出力するマスタ・スレーブ構成のフリップフロップであってもよい。あるいは、例えばデータ端子Ｄのデータをクロックパルスの立ち上がりエッジ（又は立ち上がり）に応答して出力端子Ｑから出力するエッジトリガ型のフリップフロップで構成してもよい。
【０２１３】
以上、逐次順序からビットリバース順序への並べ替えを例に、データ並べ替え処理を説明したが、ビットリバース順序から逐次順序への並べ替えについても同様に、符号絶対値−−表現に変換した後、１ステップ目の並べ替えとして、ビットリバース順序から中間順序に並べ替えを行い、２ステップ目の並べ替えとして、中間順序から逐次順序に中部替えを行う、２段階のステップで実現することができる。
【０２１４】
（第２の実施形態の効果）
以上のように、本実施形態では、ＦＦＴ装置２０は、バタフライ演算において必要なデータの並べ替え処理である、「逐次順序」から、「ビットリバース順序」への並べ替えや、「ビットリバース順序」から「逐次順序」への並べ替えを、符号絶対値−−表現に変換した後、「中間順序」を介した２段階のステップで実現する。そのため、２の補数表現のまま並べ替え処理を行うのに対して、第１のデータ並べ替え部２０１や第２のデータ並べ替え部２０４を構成するＲＡＭ回路、フリップフロップ回路やセレクタ回路などの回路の動作率を低減することができる。
【０２１５】
また、２の補数表現と符号絶対値−−表現との変換処理は、ビット反転処理のみで実現することができ、符号絶対値表現で必要とされた１加算処理（インクリメント処理）は不要である。
【０２１６】
ビット反転回路は、ＸＯＲ回路のみで実現できるので、他の論理処理回路や演算処理回路と比較して圧倒的に小さい回路規模で実現することができる。
【０２１７】
従って、本実施形態では、値０の近傍で正と負とで頻繁に変化する信号を処理する場合でも、データの並べ替え処理における回路の動作率を小さくすることができるため、データ並べ替え処理部における消費電力を低減することができる。
【０２１８】
一方、本実施形態では、バタフライ演算処理やひねり乗算処理はバラフライ演算処理部やひねり乗算処理部において２の補数表現のまま処理される。
【０２１９】
そのため、これら演算処理に係る回路の動作率は低減されない。符号絶対値表現を適用した場合のようにデータ表現形式間の変換により回路規模が増大することはない。従って、データの並べ替え処理に係る消費電力が小さくなる分だけ、ＦＦＴ装置全体の消費電力を低減することができる。
【０２２０】
図１８は、上記した第１、第２の実施形態の装置１０、２０の処理、機能をプログラムで実現する一形態を模式的に例示する図である。図１８を参照すると、プロセッサ装置３００は、プロセッサ３０１と、プロセッサ３０１で実行されるプログラム（命令群とデータ等）を記憶するプログラム記憶部３０２と、プロセッサ３０１によるデータの書き込み読み出しが行われるＲＡＭ３０３（第２の実施形態の図８のＲＡＭ回路２１０として機能してもよい）と、入力端子ＩＮから入力データを受信しプロセッサ３０１に供給する第１のインタフェース（インタフェース１）３０４と、プロセッサ３０１から出力されるデータを受け出力端子ＯＵＴから出力する第２のインタフェース（インタフェース２）３０５を備えている。プロセッサ３０１は、デジタル信号プロセッサ（Digital Signal Processor）等であってもよいし、無線通信用等のＦＦＴプロセッサであってもよい。プログラム記憶部３０２は、ROM（Read-Only Memory）、EEPROM（Electrically Erasable Programmable Read-Only Memory）、あるいは、HDD(Hard Disk Drive)、USB（Universal Serial Bus）メモリ等であってもよい。プログラム記憶部３０２は、プロセッサ３０１のファームウェアを記憶する構成であってもよい。ＲＡＭ３０３はプロセッサ３０１に内蔵される構成としてもよい。第１のインタフェース３０４は、入力回路（又は受信回路）と入力バッファ（受信バッファ）を備え、第２のインタフェース３０５は、出力バッファ（送信バッファ）と出力回路（送信回路）を備えた構成としてもよい。第１、第２のインタフェース３０４、３０５は、入出力回路（送受信回路（transceiver））を備えた一つのインタフェース回路としてもよい。プロセッサ３０１がプログラム記憶部３０２に記憶されたプログラムを実行することで、前記第１、第２の実施形態と同様の効果を奏することができる。なお、図１８は単に説明のために、プロセッサ装置３００の各部３０１〜３０５の構成を例示したが、これらの各部の一部又は全てをプロセッサ３０１に含める１チップ構成としてもよいことは勿論である。
【０２２１】
なお、上記の特許文献１−３、非特許文献１、２の各開示を、本書に引用をもって繰り込むものとする。本発明の全開示（請求の範囲を含む）の枠内において、さらにその基本的技術思想に基づいて、実施形態ないし実施例の変更・調整が可能である。また、本発明の請求の範囲の枠内において種々の開示要素（各請求項の各要素、各実施例の各要素、各図面の各要素等を含む）の多様な組み合わせ乃至選択が可能である。すなわち、本発明は、請求の範囲を含む全開示、技術的思想にしたがって当業者であればなし得るであろう各種変形、修正を含むことは勿論である。
【符号の説明】
【０２２２】
１０  信号処理装置
１１、１１ａ、１１ｂ、１１ｃ  記憶処理部
１２ａ、１２ｂ  演算処理部
１３、１３ａ、１３ｂ  変換回路
１４  記憶回路
１７  ＸＯＲ回路
２０  ＦＦＴ装置
２１ａ、２１ｂ  バタフライ演算処理部
２２  ひねり乗算処理部
２００、２００ａ〜２００ｃ  データ並べ替え処理部
２００  データ並べ替え処理部
２０１  第１のデータ並べ替え部（手段）
２０２  第１のデータ振り分け部
２０３  第２のデータ振り分け部
２０４  第２のデータ並べ替え部（手段）
２０５ａ〜２０５ｈ  出力（第１のデータ振り分け部の出力データ）  
２０６ａ〜２０５ｈ  出力（ＲＡＭ回路の出力データ）  
２０７ａ〜２０７ｈ  出力（第２のデータ振り分け部の出力データ）  
２１０ａ〜２１０ｄ  ＲＡＭ回路
２２０  データ組内並べ替え部
２２０ａ〜２２０ｄ  データ組内並べ替え部
２２１、２２４、２２５  セレクタ回路
２２２、２２３  フリップフロップ
２３１、２３２、２３３ａ〜２３３ｈ、２３４ａ〜２３４ｈ  変換回路
３００  プロセッサ装置
３０１  プロセッサ
３０２  プログラム記憶部
３０３  ＲＡＭ
３０４  第１のインタフェース
３０５  第２のインタフェース
５００  データフロー
５０１  データ並べ替え処理部
５０２、５０３  バタフライ演算処理部
５０４  ひねり乗算処理部
５０５ａ〜５０５ｈ  部分データフロー
６００  変換回路
６０１  ビット反転回路
６０２  １加算回路
【図１】
2019131754.tif 000003
【図２】
2019131754.tif 000004
【図３】
2019131754.tif 000005
【図４】
2019131754.tif 000006
【図５】
2019131754.tif 000007
【図６】
2019131754.tif 000008
【図７】
2019131754.tif 000009
【図８】
2019131754.tif 000010
【図９】
2019131754.tif 000011
【図１０】
2019131754.tif 000012
【図１１】
2019131754.tif 000013
【図１２】
2019131754.tif 000014
【図１３】
2019131754.tif 000015
【図１４】
2019131754.tif 000016
【図１５】
2019131754.tif 000017
【図１６】
2019131754.tif 000018
【図１７Ａ】
2019131754.tif 000019
【図１７Ｂ】
2019131754.tif 000020
【図１８】
2019131754.tif 000021
【手続補正書】
【提出日】令和2年6月26日(2020.6.26)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
入力したデータの高速フーリエ変換又は逆高速フーリエ変換を行う信号処理装置であって、
バタフライ演算処理を行うバタフライ演算処理部と、
データにひねり係数を乗算する処理を行うひねり乗算処理部と、
複数のデータの順序を並べ替えるデータ並べ替え処理部と、
を備え、
前記バタフライ演算処理部と前記ひねり乗算処理部は、２の補数表現により表現されたデータに対して演算処理を行い、
前記データ並べ替え処理部は、第２の表現形式により表現された複数のデータの順序の並べ替えを行い、
前記第２の表現形式は、データ値が正または０の場合は２の補数表現と同一であり、
データ値が負の場合は、２の補数表現から符号を示す最上位ビットよりも下位の全ビットを反転した表現形式である、ことを特徴とする信号処理装置。
【請求項２】
前記データ並べ替え処理部は、
データ表現形式を２の補数表現から前記第２の表現形式へ変換する第１の変換部と、
データ表現形式を前記第２の表現形式から２の補数表現へ変換する第２の変換部と、
を備え、
前記第１の変換部は、入力する２の補数表現で表現されたデータを前記第２の表現形式に変換し、
前記第２の変換部は、前記第２の表現形式で表現された並べ替え後のデータを２の補数表現に変換して出力する、ことを特徴とする請求項１に記載の信号処理装置。
【請求項３】
前記データ並べ替え処理部として、
逐次順序のデータをビットリバース順序に並べ替え、対応する１つ又は複数の後段のバタフライ演算処理部へ出力する１つ又は複数の第１のデータ並べ替え処理部と、
前記バタフライ演算処理部から出力されるビットリバース順序のデータに対して、逐次順序に並べ替えた上で出力する第２のデータ並べ替え処理部と、
を備えたことを特徴とする請求項１又は２に記載の信号処理装置。
【請求項４】
N×Nポイント（Nは２のべき乗）の高速フーリエ変換又は逆高速フーリエ変換を行い、
前記データ並べ替え処理部として、第１乃至第３のデータ並べ替え処理部を備え
前記バタフライ演算処理部として、第１及び第２のバタフライ演算処理部を備え、
前記第１のデータ並べ替え処理部は、逐次順序で並列に入力されるN個のデータをNサイクル分入力し、ビットリバース順序に並べ替え、ビットリバース順序に並べ替えたデータを、N個並列にNサイクル分出力し、
前記第１のバタフライ演算処理部は、前記第１のデータ並べ替え処理部から並列に出力されるN個のデータのバタフライ演算を行い、前記バタフライ演算の結果のN個のデータを並列に出力し、
前記第２のデータ並べ替え処理部は、前記第１のバタフライ演算処理部から逐次順序で並列に出力されるN個のデータをNサイクル分入力し、ビットリバース順序に並べ替え、ビットリバース順序に並べ替えたデータを、N個並列にNサイクル分出力し、
前記ひねり乗算処理部は、前記第２のバタフライ演算処理部から出力されるデータに対して、対応するひねり係数を乗算し、
前記第２のバタフライ演算処理部は、前記ひねり乗算処理部から出力されるN個のデータのバタフライ演算を行い、前記バタフライ演算の結果のN個のデータを並列に出力し、
前記第３のデータ並べ替え処理部は、前記第２のバタフライ演算処理部から並列に出力されるN個のデータをNサイクル分入力し、ビットリバース順序のデータを逐次順序のデータに並べ替え、前記逐次順序に並べ替えたデータを、N個並列にNサイクル分出力する、ことを特徴とする請求項１に記載の信号処理装置。
【請求項５】
N×Nポイント（Nは２のべき乗）の高速フーリエ変換又は逆高速フーリエ変換を行い、
前記データ並べ替え処理部において、
各サイクルごとN個のデータを並列にNサイクル分入力し、
N個の前記第１の変換部は、並列に入力したN個の２の補数表現のデータを前記第２の表現形式に変換してN個並列に出力し、
N個の前記第１の変換部から並列に出力されるN個のデータの１サイクル目からNサイクルまで２サイクルごと、シフト量を０から順次２データ分増加させ、循環的にシフトしたデータをN個並列に出力する第１の振り分け部と、
前記第１の振り分け部から並列に出力されるN個のデータをNサイクル分、N行N列に記憶し、２×２のデータを要素の単位としたN/2行、N/2列のうち、k+(k-1) mod N/2行、k列（kは１〜N/2の整数、mod は剰余関数）の２×２の要素は元の位置にあり、他の要素は、行ごとに、対応する列の置換を行った上で、1列目からN列目まで、N行ごとデータを並列に出力する、N/2個のメモリと、
前記N/2個のメモリから順次並列に出力されるN個のデータの１サイクル目からNサイクルまで２サイクルごと、シフト量を０から順次２データ分増加させ、前記第１の振り分け部と反対方向に循環的にシフトしたデータをN個並列に出力する第２の振り分け部と、
各々が、前記第２の振り分け部から並列に出力されるN個のデータの隣り合う各２つのデータからなるN／２個のデータ組の各々について、連続する２サイクル分からなる２×２のデータのうち前のサイクルの２番目のデータと後のサイクルの１番目のデータとの並べ替えを行い、並べ替え後のN／２個のデータ組を各サイクルごと並列に出力する、N／２個の並べ替え部と、
を備え、
前記N／２個の並べ替え部からN個並列に出力される第iサイクルの第ｊ番目のデータは、N個のデータをNサイクル分入力したデータの第jサイクルの第ｉ番目のデータであり、
N個の前記第２の変換部は、前記N／２個の並べ替え部から出力されるN個のデータを前記第２の表現形式から２の補数表現に変換して並列に出力する、ことを特徴とする請求項２に記載の信号処理装置。
【請求項６】
高速フーリエ変換又は逆高速フーリエ変換におけるバタフライ演算処理、および、ひねり乗算処理では、２の補数表現により表現されたデータに対する演算処理を行い、
前記高速フーリエ変換又は前記逆高速フーリエ変換におけるデータの順序の並べ替え処理では、第２の表現形式により表現された複数のデータの並べ替えを行い、
前記第２の表現形式は、データ値が正または０の場合は２の補数表現と同一であり、
データ値が負の場合は、２の補数表現から符号を示す最上位ビットよりも下位の全ビットを反転した表現形式である、ことを特徴とする信号処理方法。
【請求項７】
前記並べ替え処理は、
２の補数表現で表現されたデータを入力し前記データの表現形式を２の補数表現から前記第２の表現形式に変換する第１の変換処理と、
前記第２の表現形式に変換したデータの並べ替えを行う処理と、
前記第２の表現形式で表現された記憶処理後のデータを２の補数表現に変換して出力する第２の変換処理と、
を含む、ことを特徴とする請求項６に記載の信号処理方法。
【請求項８】
高速フーリエ変換又は逆高速フーリエ変換をコンピュータに実行させるプログラムであって、
バタフライ演算処理と、
ひねり乗算処理と、
複数のデータの順序を並べ替えるデータ並べ替え処理を、
備え、
前記バタフライ演算処理及び前記ひねり乗算処理では、それぞれ、２の補数表現により表現されたデータに対する演算処理を行い、
前記データ並べ替え処理では、第２の表現形式のデータに対して並べ替えを行い、
前記第２の表現形式は、データ値が正または０の場合は２の補数表現と同一であり、
データ値が負の場合は、２の補数表現から符号を示す最上位ビットよりも下位の全ビットを反転した表現形式である、プログラム。
【請求項９】
前記データ並べ替え処理は、
入力するデータのデータ表現形式を２の補数表現から前記第２の表現形式へ変換する第１の変換処理と、
前記第２の表現形式のデータの並べ替えを行う並べ替え処理と、
前記並べ替えたデータのデータ表現形式を前記第２の表現形式から２の補数表現へ変換して出力する第２の変換処理を実行する、請求項８に記載のプログラム。
【国際調査報告】
2019131754.tif 000022
2019131754.tif 000023