(57)【特許請求の範囲】
【請求項１】
入力データ列を蓄える入力バッファと、
前記入力バッファから前記入力データ列とその後に挿入された０値データ列とからなる半分以上の点が０値であるデータ列を２以上の繰り返し回数ＭでＮ点ごとのデータ列として入力し、繰り返し１回目に入力したデータ列は変更せずに出力し、繰り返し２回目以降に入力したデータ列に位相を乗算して出力する位相乗算部と、
前記位相乗算部から出力されたＮ点ごとのデータ列を順次入力し、前記入力したデータ列のそれぞれにＮ点の離散フーリエ変換または逆離散フーリエ変換を実行してＭ×Ｎ点の変換データ列を出力する変換演算部と
を備えたことを特徴とする演算装置。
【請求項２】
前記入力バッファに蓄えられたデータ列が、前記位相乗算部によって位相が乗算されたデータ列で更新されること
を特徴とする請求項１記載の演算装置。
【請求項３】
前記入力データ列が中央に配置されその両側にＮ／２点の０値データ列が配置されたＭ×Ｎ点のデータ列のうち、０値を除いた前記入力データ列の後半のデータ列の符号を反転させる符号反転部を備え、
前記位相乗算部は、前記符号反転部から前記入力データ列が中央に配置されその両側に０値データ列が配置されたＭ×Ｎ点のデータ列を前記繰り返し回数ＭでＮ点ごとのデータ列として入力すること
を特徴とする請求項１記載の演算装置。
【請求項４】
０値データ列が中央に配置されその両側に前記入力データ列の前半のＮ／２点のデータ列と後半のＮ／２点のデータ列とが配置されたＭ×Ｎ点のデータ列のうち、０値を除いた前記入力データ列の後半のデータ列の符号を反転させる符号反転部を備え、
前記位相乗算部は、前記符号反転部から０値データ列が中央に配置されその両側に前記入力データ列の前半のデータ列と後半のデータ列とが配置されたＭ×Ｎ点のデータ列を前記繰り返し回数ＭでＮ点ごとのデータ列として入力すること
を特徴とする請求項１記載の演算装置。
【請求項５】
前記位相乗算部は、前記入力バッファから前記入力データ列とその後に挿入された０値データ列とからなりＭ×ＮであるＮ’点のデータ列を繰り返し回数ＭでＮ’／Ｍ点ごとのデータ列として入力し、
前記変換演算部は、前記位相乗算部から出力されたＮ’／Ｍ点ごとのデータ列を順次入力して、前記入力したデータ列のそれぞれにＮ’／Ｍ点の離散フーリエ変換または逆離散フーリエ変換を実行すること
を特徴とする請求項１記載の演算装置。
【請求項６】
Ｎ点の前記入力データ列の前半のデータ列と後半のデータ列との実部と虚部を入れ替えて加減算する加減算部を備え、
前記位相乗算部は、前記加減算部で加減算されたデータ列に位相を乗算して出力し、
前記変換演算部は、前記位相乗算部から出力されたデータ列を順次入力して、入力したデータ列のそれぞれにＮ／２点の離散フーリエ変換または逆離散フーリエ変換を実行すること
を特徴とする請求項１記載の演算装置。
【請求項７】
入力バッファが、Ｎ点の入力データ列を蓄えるステップと、
位相乗算部が、前記入力バッファから前記入力データ列とその後に挿入された０値データ列とからなる半分以上の点が０値であるデータ列を２以上の繰り返し回数ＭでＮ点ごとのデータ列として入力し、繰り返し１回目に入力したデータ列は変更せずに出力し、繰り返し２回目以降に入力したデータ列に位相を乗算して出力するステップと、
変換演算部が、前記位相乗算部から出力されたＮ点ごとのデータ列を順次入力し、前記入力したデータ列のそれぞれにＮ点の離散フーリエ変換または逆離散フーリエ変換を実行してＭ×Ｎ点の変換データ列を出力するステップと
を備えたことを特徴とする演算方法。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、高速フーリエ変換（以下、ＦＦＴと記載する）を含む離散フーリエ変換、または、逆高速フーリエ変換（以下、ＩＦＦＴと記載する）を含む逆離散フーリエ変換を行う演算装置および演算方法に関する。
【背景技術】
【０００２】
ＦＦＴ演算装置は、Ｎ点の時間軸上のデータ列を、Ｎ点の周波数軸上のデータ列に変換して出力する。また、ＩＦＦＴ演算装置は、Ｎ点の周波数軸上のデータ列を、Ｎ点の時間軸上のデータ列に変換して出力する。ＦＦＴ演算装置およびＩＦＦＴ演算装置において、変換対象のデータ列の点数Ｎが多くなるにつれて変換に必要な演算量も増加する。【０００３】
そこで、従来から、変換可能な点数は少ないが安価な演算器を用いてより多くの点数のデータ列をＦＦＴまたはＩＦＦＴする技術が提案されている。
例えば、特許文献１に記載される演算装置は、２Ｎ点のデータ列をＮ点ごとのデータ列に分離し、Ｎ点のＦＦＴまたはＩＦＦＴが可能な演算器によって上記分離したデータ列を変換して２Ｎ点の変換データ列を得ている。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００３−１１５８１３号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
特許文献１に記載される演算装置は、入力データ列の半分以上の点が０値であるか否かによらずに回路規模を削減することができる。
しかしながら、特許文献１に記載の演算装置では、入力データ列の半分以上の点が０値である場合に、さらなる回路規模の削減ができないという課題があった。【０００６】
この発明は上記課題を解決するもので、入力データ列の半分以上の点が０値である場合に、回路規模をさらに削減することができる演算装置および演算方法を得ることを目的とする。
【課題を解決するための手段】
【０００７】
この発明に係る演算装置は、入力バッファ、位相乗算部および変換演算部を備える。
入力バッファは、入力データ列を蓄える。
位相乗算部は、入力バッファから入力データ列とその後に挿入された０値データとからなる半分以上の点が０値であるデータ列を２以上の繰り返し回数ＭでＮ点ごとのデータ列として入力し、繰り返し１回目に入力したデータ列は変更せずに出力し、繰り返し２回目以降に入力したデータ列に位相を乗算して出力する。
変換演算部は、位相乗算部から出力されたＮ点ごとのデータ列を順次入力し、入力したデータ列のそれぞれにＮ点の離散フーリエ変換または逆離散フーリエ変換を実行してＭ×Ｎ点の変換データ列を出力する。
【発明の効果】
【０００８】
この発明によれば、入力データ列とその後に挿入された０値データ列とからなる半分以上の点が０値であるデータ列を２以上の繰り返し回数ＭでＮ点ごとのデータ列として入力して、Ｎ点の離散フーリエ変換または逆離散フーリエ変換を実行してＭ×Ｎ点の変換データ列を出力する。このように構成することで、回路規模をさらに削減することができる。
【図面の簡単な説明】
【０００９】
【図１】この発明の実施の形態１に係る演算装置の構成を示すブロック図である。
【図２】実施の形態１に係る演算装置の動作を示すフローチャートである。
【図３】実施の形態１に係る演算装置によるＦＦＴの概要を示す図である。
【図４】実施の形態１に係る演算装置の変形例を示すブロック図である。
【図５】この発明の実施の形態２に係る演算装置の構成を示すブロック図である。
【図６】実施の形態２に係る演算装置の動作を示すフローチャートである。
【図７】符号反転部による符号反転の概要を示す図である。
【図８】符号反転部による符号反転の他の概要を示す図である。
【図９】この発明の実施の形態３に係る演算装置の構成を示すブロック図である。
【図１０】実施の形態３に係る演算装置の動作を示すフローチャートである。
【図１１】加減算部による加減算の概要を示す図である。
【図１２】この発明の実施の形態４に係る演算装置の構成を示すブロック図である。
【図１３】実施の形態４に係る演算装置の動作を示すフローチャートである。
【図１４】この発明の実施の形態５に係る演算装置の構成を示すブロック図である。
【発明を実施するための形態】
【００１０】
以下、この発明をより詳細に説明するため、この発明を実施するための形態について、添付の図面に従って説明する。
実施の形態１．
図１は、この発明の実施の形態１に係る演算装置１の構成を示すブロック図である。
演算装置１は、離散フーリエ変換または逆離散フーリエ変換を行う装置であり、図１に示すように、入力バッファ２、位相乗算部３、変換演算部４、出力バッファ５および制御部６を備える。以降では、演算装置１がＦＦＴを実行する場合を例に挙げて説明する。
【００１１】
入力バッファ２は、変換対象の入力データ列を蓄える。入力データ列は、演算装置１がＦＦＴ演算装置である場合、時間軸上のデータ列であり、演算装置１がＩＦＦＴ演算装置である場合、周波数軸上のデータ列である。
入力バッファ２には、例えば、ＦＩＦＯ（Ｆｉｒｓｔ  Ｉｎ  Ｆｉｒｓｔ  Ｏｕｔ）型のメモリを用いてもよい。
【００１２】
位相乗算部３は、入力バッファ２から入力したデータ列に位相を乗算する。
ここで、位相は、離散フーリエ変換または逆離散フーリエ変換のアルゴリズムにおいて変換対象のデータに乗算される回転子である。
また、位相乗算部３は、入力バッファ２から、入力データ列とその後に挿入された０値データ列とからなるデータ列を、繰り返し回数ＭでＮ点ごとのデータ列として入力する。
なお、ＮとＭは、それぞれ２以上の整数である。
【００１３】
位相乗算部３は、入力バッファ２から繰り返し１回目に入力したデータ列は変更せずに変換演算部４に出力し、繰り返し２回目に入力したデータ列には位相を乗算して変換演算部４に出力する。
Ｎ点の入力データ列とその後にＮ点の０値データ列を挿入したデータ列を、Ｎ点ごとのデータ列として位相乗算部３に入力した場合を例に挙げる。
この場合、繰り返し２回目のＮ点のデータ列ｘ（０），ｘ（１），・・・，ｘ（Ｎ−１）に乗算する位相ｗ（ｊ）＝ｗ（０），ｗ（１），・・・，ｗ（Ｎ−１）は、下記式（１）で表すことができる。ただし、ｊはＮ点のデータ列におけるデータの位置であり、ｊ＝０，１，・・・，Ｎ−１である。πは円周率、ｉは虚数単位である。
ｗ（ｊ）＝ｅｘｐ（−πｉ（ｊ／Ｎ））      ・・・（１）
【００１４】
変換演算部４は、位相乗算部３から出力された繰り返し回数Ｍ分のＮ点ごとのデータ列を順次入力し、入力したデータ列のそれぞれにＮ点のＦＦＴを行う。また、変換演算部４は、Ｎ点のＦＦＴデータ列を繰り返し順に出力バッファ５に出力する。
【００１５】
出力バッファ５は、変換演算部４から出力されたＦＦＴデータ列を蓄える。
また、出力バッファ５は、繰り返し回ごとのＦＦＴデータ列を１回目のＦＦＴデータ列から順に外部に出力する。これにより、Ｍ×Ｎ点のＦＦＴデータ列が出力データ列として得られる。ＦＦＴデータ列の出力先は、ＦＦＴデータ列を利用した情報処理を行う装置、回路または機能が考えられる。
なお、出力データ列としてＦＦＴデータ列の整列が不要である場合は、出力バッファ５を省略してもよい。
【００１６】
制御部６は、入力バッファ２、位相乗算部３、変換演算部４および出力バッファ５のそれぞれを制御する。例えば、入力バッファ２は、制御部６の指示で入力データ列を蓄え、制御部６の指示でデータ列を位相乗算部３に出力する。位相乗算部３は、制御部６の指示でデータ列に位相を乗算し、変換演算部４は、制御部６の指示でデータ列にＦＦＴを実行する。さらに、出力バッファ５は、制御部６の指示でＦＦＴデータ列を蓄え、制御部６の指示でＦＦＴデータ列を出力する。
【００１７】
次に動作について説明する。
図２は、演算装置１の動作を示すフローチャートであり、Ｎ点のＦＦＴを行う変換演算部４を用いてＭ×ＮのＦＦＴデータ列を出力するまでの一連の処理を示している。図３は演算装置１によるＦＦＴの概要を示す図である。
以降では、繰り返し回数Ｍが２であり、位相乗算部３に入力されるデータ列が、図３に示すように、Ｎ点の入力データ列とその後にＮ点分の０値データ列が挿入された２Ｎ点のデータ列であるものとする。
【００１８】
まず、Ｎ点の入力データ列が入力バッファ２に蓄えられる（ステップＳＴ１）。
位相乗算部３は、入力バッファ２から、Ｎ点の入力データ列とその後に挿入された０値データ列とからなるデータ列を、繰り返し回数ＭでＮ点ごとのデータ列として入力する。
【００１９】
位相乗算部３は、入力したデータ列が繰り返し１回目のデータ列である場合（ステップＳＴ２；ＮＯ）、このデータ列を変更せずに変換演算部４に出力する。
また、位相乗算部３は、入力したデータ列が繰り返し２回目以降のデータ列である場合（ステップＳＴ２；ＹＥＳ）、このデータ列に位相を乗算する（ステップＳＴ３）。
ここで繰り返し２回目のデータ列に乗算される位相ｗ（ｊ）は、上記式（１）によって算出することができる。位相ｗ（ｊ）が乗算されたＮ点のデータ列は、位相乗算部３から変換演算部４に出力される。
【００２０】
変換演算部４は、位相乗算部３から繰り返し回数Ｍ分のＮ点ごとのデータ列を順次入力して、入力したデータ列にＮ点のＦＦＴを実行する（ステップＳＴ４）。このとき、変換演算部４は、位相乗算部３から入力した繰り返し１回目のデータ列にＦＦＴを実行して、１回目のＦＦＴデータ列として出力バッファ５に出力する。
次に、変換演算部４は、位相乗算部３から入力した繰り返し２回目のデータ列にＦＦＴを実行し、２回目のＦＦＴデータ列として出力バッファ５に出力する。
【００２１】
出力バッファ５は、変換演算部４から出力された繰り返し回ごとのＦＦＴデータ列を蓄える（ステップＳＴ５）。Ｍ＝２であるので、１回目のＦＦＴデータ列と２回目のＦＦＴデータ列とが順に出力バッファ５に蓄えられる。
次に、ステップＳＴ２からステップＳＴ５までの一連の処理がＭ回目のデータ列に実行されていない場合（ステップＳＴ６；ＮＯ）、ステップＳＴ２に戻り、次の繰り返し回のデータ列に上記一連の処理が実行される。
【００２２】
上記一連の処理がＭ回目のデータ列に実行されていれば（ステップＳＴ６；ＹＥＳ）、出力バッファ５は、１回目のＦＦＴデータ列からＭ回目のＦＦＴデータ列までを順に出力する（ステップＳＴ７）。Ｍ＝２であるので、１回目のＦＦＴデータ列と２回目のＦＦＴデータ列とがこの順で出力バッファ５から出力される。これにより、変換演算部４としてＦＦＴデータ列を整列しない演算器を用いても、出力バッファ５によってＦＦＴデータ列を整列させることができる。
【００２３】
制御部６は、図２に示したステップＳＴ１からステップＳＴ７までの処理が実行されるように、入力バッファ２、位相乗算部３、変換演算部４および出力バッファ５のそれぞれを制御する。図３に示す２Ｎ点の出力データ列は、１回目のＦＦＴデータ列と２回目のＦＦＴデータ列とからなるデータ列である。
【００２４】
なお、フーリエ変換の点数と入力データ列の点数Ｎとの間に“入力データ列の点数Ｎ≦フーリエ変換の点数”という関係があり、入力データ列の点数Ｎがフーリエ変換の点数に満たない場合、入力データ列の後にＮ点を超える０値データ列が挿入される。これによりＮ点を超える点数のＦＦＴデータ列が得られる。
【００２５】
また、図２の説明において、位相乗算部３は、繰り返し１回目のデータ列を変更せずに変換演算部４に出力することを示した。ここでは、位相乗算部３が、入力バッファ２から入力したデータ列をそのまま変換演算部４に出力している。
ただし、“データ列を変更しない”という動作の内容には、前述したようにデータ列に位相を乗算せずに出力することの他に、データ列に位相ｗ（０）＝１を乗算して乗算前と同じ値のデータ列を出力することも含まれる。
【００２６】
例えば、Ｎ点の入力データ列の後に２Ｎ分の０値データ列を挿入してＦＦＴを実行する場合に、演算装置１が、下記の（Ａ）から（Ｄ）までの動作を３回（Ｍ＝３）繰り返して３Ｎ点のＦＦＴデータ列を算出するように構成してもよい。
（Ａ）位相乗算部３は、入力バッファ２から、Ｎ点の入力データ列とその後に２Ｎ分の０値データ列が挿入されたデータ列をＮ点ごとのデータ列として入力する。
（Ｂ）位相乗算部３は、入力バッファ２から入力したＮ点のデータ列に位相を乗算する。
（Ｃ）変換演算部４は、位相乗算部３により位相が乗算されたデータ列にＮ点のＦＦＴを実行する。
（Ｄ）出力バッファ５は、変換演算部４から出力されたＮ点のＦＦＴデータ列を蓄える。
上記の（Ａ）から（Ｄ）までの動作が３回繰り返されると、出力バッファ５は、１回目のＦＦＴデータ列から３回目のＦＦＴデータ列までを順に出力する。これにより、３Ｎ点のＦＦＴデータ列が得られる。
【００２７】
（Ｂ）でデータ列に乗算される位相ｗ（０），ｗ（１），・・・，ｗ（Ｎ−１）は、Ｎ点のデータ列をｘ（０），ｘ（１），・・・，ｘ（Ｎ−１）とすると、下記式（２）で表される。ただし、ｋは、繰り返し回を示すパラメータであり、ｋ＝０，１，・・・，Ｍ−１である。繰り返し１回目がｋ＝０、繰り返し２回目がｋ＝１というように対応する。
繰り返し１回目のデータ列には、下記式（２）に従い、ｗ（０，ｊ）＝１が乗算され、位相の乗算前と同じ値のデータ列が変換演算部４に出力される。
ｗ（ｋ，ｊ）＝ｅｘｐ（−２πｉ（ｊｋ／３Ｎ））      ・・・（２）
【００２８】
なお、位相乗算部３は、入力バッファ２から、入力データ列とその後に挿入された０値データ列とからなるＮ’（＝Ｍ×Ｎ）点のデータ列を、繰り返し回数ＭでＮ’／Ｍ点ごとのデータ列として入力してもよい。この場合、変換演算部４は、位相乗算部３から出力されたＮ’／Ｍ点ごとのデータ列を入力して、入力したデータ列のそれぞれにＮ’／Ｍ点のＦＦＴを実行することになる。これにより、Ｎ’／Ｍ点のＦＦＴを実行する変換演算部４を用いて、Ｍ×Ｎ点のＦＦＴデータ列を得ることができる。
【００２９】
また、入力バッファ２に蓄えたデータ列を位相乗算部３の出力で更新してもよい。
図４は実施の形態１に係る演算装置の変形例を示すブロック図である。図４において、図１と同一の構成要素には同一の符号を付して説明を省略する。
演算装置１Ａは、図４に示すように、入力バッファ２Ａ、位相乗算部３Ａ、変換演算部４、出力バッファ５および制御部６を備える。
【００３０】
入力バッファ２Ａは、変換対象の入力データ列を蓄える。位相乗算部３Ａは、入力バッファ２Ａから入力したデータ列に位相を乗算する。
入力バッファ２Ａに蓄えられたデータ列は、位相乗算部３Ａが位相を乗算したデータ列によって上書きされて更新される。
【００３１】
位相乗算部３ＡによってＮ点のデータ列に乗算される位相ｗ（ｋ，ｊ）＝ｗ（ｋ，０），ｗ（ｋ，１），・・・，ｗ（ｋ，Ｎ−１）は、下記式（３）で表すことができる。
ただし、ｋは、繰り返し２回目からの繰り返し回数Ｍに対応するパラメータであって、ｋ＝１，・・・，Ｍ−１である。
ｗ（０，ｊ）＝１
ｗ（ｋ，ｊ）＝ｅｘｐ（−２πｉ（ｊ／ＭＮ））      ・・・（３）
【００３２】
例えば、位相乗算部３Ａは、入力バッファ２Ａが蓄えたデータ列ｘ（ｊ）を入力して、データ列ｘ（ｊ）をそのまま、あるいはデータ列ｘ（ｊ）に位相ｗ（０，ｊ）を乗算して変換演算部４に出力する。
次に、位相乗算部３Ａは、データ列ｘ（ｊ）に位相ｗ（１，ｊ）を乗算して入力バッファ２Ａに出力する。入力バッファ２Ａに蓄えられたデータ列ｘ（ｊ）は、位相乗算部３Ａが位相を乗算したデータ列ｘ（ｊ）×ｗ（１，ｊ）で上書きされる。
位相ｗ（ｋ，ｊ）は、上記式（３）に示すように、繰り返し回数Ｍによらず一定の値をとる。従って、位相乗算部３Ａでは、繰り返し２回目以降で繰り返しの何回目かを区別しなくても、データ列に乗算する位相を決定することができる。
【００３３】
変換演算部４がＦＦＴを行う場合について示したが、実施の形態１に係る演算装置は、ＩＦＦＴを行う場合においても同様に構成することができる。
また、出力バッファ５を（２ＭＮ−Ｎ）点のデータを蓄積可能な容量のバッファとし、変換演算部４を、複数のデータストリームを連続してＦＦＴまたはＩＦＦＴを実行する、いわゆるストリーム型の演算器としてもよい。
このように構成することで、演算装置１は、定期的に入力データ列が入力されると、ＦＦＴまたはＩＦＦＴ結果を連続して出力することが可能となる。
【００３４】
以上のように、実施の形態１に係る演算装置１は、入力データ列とその後に挿入された０値データ列とからなる半分以上の点が０値であるデータ列を繰り返し回数ＭでＮ点ごとのデータ列として入力し、Ｎ点のＦＦＴを実行してＭ×Ｎ点のＦＦＴデータ列を出力する。特に、位相乗算部３は、入力バッファ２から、入力データ列とその後に挿入された０値データ列とからなるＮ’（＝Ｍ×Ｎ）点のデータ列を繰り返し回数ＭでＮ’／Ｍ点ごとのデータ列として入力する。変換演算部４は、位相乗算部３から出力されたＮ’／Ｍ点ごとのデータ列を入力して、入力したデータ列にＮ’／Ｍ点のＦＦＴを実行する。
このように構成することで、入力データ列がＮ点以下であっても、０値データ列が挿入されて出力データ列の点数が補間される。さらに、出力データ列の点数分のＦＦＴまたはＩＦＦＴを行う演算器を用いなくても、入力データ列よりも多くの点数の出力データ列を得ることができる。これにより、回路規模をさらに削減することができる
【００３５】
また、実施の形態１に係る演算装置１Ａにおいて、位相乗算部３Ａは、入力バッファ２Ａが蓄えるデータ列を、位相を乗算したデータ列で更新する。
これにより、位相乗算部３Ａでは、繰り返し２回目以降で繰り返しの何回目かを区別しなくても、データ列に乗算する位相を決定することができる。
【００３６】
実施の形態２．
実施の形態２では、入力データ列を循環シフトさせる。これにより、入力データ列が中央に配置されその両側に０値データ列が配置されたデータ列、もしくは、０値データ列が中央に配置されその両側に入力データ列の前半のデータ列と後半のデータ列とが配置されたデータ列を対象としてＦＦＴまたはＩＦＦＴが実行される。
【００３７】
図５は、この発明の実施の形態２に係る演算装置１Ｂの構成を示すブロック図である。
図５において、図１と同一構成要素には同一符号を付して説明を省略する。
演算装置１Ｂは、図５に示すように、入力バッファ２、位相乗算部３、変換演算部４、出力バッファ５、制御部６および符号反転部７を備える。符号反転部７は、入力データ列の符号を反転させる。
【００３８】
例えば、符号反転部７は、入力データ列が中央に配置されその両側にＮ／２点の０値データ列が配置されたＭ×Ｎ点のデータ列のうち、０値を除いたＮ点の入力データ列の後半のデータ列の符号を反転させる。これにより、入力データ列が中央に配置されその両側にＮ／２点の０値データ列が配置されたＭ×Ｎ点のデータ列が、繰り返し回数ＭでＮ点ごとのデータ列として位相乗算部３に出力される。
【００３９】
また、符号反転部７は、０値データ列が中央に配置されその両側に入力データ列の前半のＮ／２点のデータ列と後半のＮ／２点のデータ列とが配置されたＭ×Ｎ点のデータ列のうち、０値を除いたＮ点の入力データ列の後半のデータ列の符号を反転させる。
これにより、０値データ列が中央に配置されその両側に入力データ列の前半のＮ／２点のデータ列と後半のＮ／２点のデータ列とが配置されたＭ×Ｎ点のデータ列が、繰り返し回数ＭでＮ点ごとのデータ列として位相乗算部３に出力される。
【００４０】
次に動作について説明する。
図６は演算装置１Ｂの動作を示すフローチャートであり、Ｎ点のＦＦＴを行う変換演算部４を用いてＭ×Ｎの変換データ列を出力するまでの一連の処理を示している。
図７は、符号反転部７による符号反転の概要を示す図であって、Ｎ点の入力データ列における前半のデータ列をデータＡ、後半のデータ列をデータＢとしている。
以降では、繰り返し回数Ｍが２であり、符号反転部７に入力されるデータ列が、入力データ列が中央に配置されその両側にＮ／２点の０値データ列が配置されたＭ×Ｎ点のデータ列のうち、０値を除いたＮ点の入力データ列であるものとする。
【００４１】
まず、Ｎ点の入力データが入力バッファ２に蓄えられる（ステップＳＴ１ａ）。
符号反転部７は、入力バッファ２から繰り返し回数ＭでＮ点の入力データ列を入力し、入力データ列が繰り返し１回目のデータ列であると（ステップＳＴ２ａ；ＹＥＳ）、図７に示すように入力データ列の符号を反転せずに位相乗算部３に出力する。
位相乗算部３は、入力したデータ列が繰り返し１回目のデータ列である場合（ステップＳＴ４ａ；ＮＯ）、このデータ列を変更せずに変換演算部４に出力する。
【００４２】
一方、符号反転部７は、入力データ列が繰り返し２回目のデータ列である場合（ステップＳＴ２ａ；ＮＯ）、図７に示すように、入力データ列の後半のデータＢの符号を反転させる（ステップＳＴ３ａ）。入力データ列の後半のデータ列（データＢ）の符号が反転されることで、データＢがデータＡよりも先に位相乗算部３に出力される。
これにより、入力データ列が循環シフトされ、入力データ列が中央に配置されその両側にＮ／２点の０値データ列が配置された２Ｎ点のデータ列が、繰り返し回数ＭでＮ点ごとのデータ列として位相乗算部３に出力される。
【００４３】
位相乗算部３は、入力したデータ列が繰り返し２回目以降のデータ列である場合（ステップＳＴ４ａ；ＹＥＳ）、このデータ列に位相を乗算して変換演算部４に出力する（ステップＳＴ５ａ）。繰り返し２回目のデータ列に乗算される位相ｗ（ｊ）は、上記式（１）により算出することができる。位相ｗ（ｊ）が乗算されたＮ点のデータ列は、位相乗算部３から変換演算部４に出力される。
【００４４】
この後のステップＳＴ６ａからステップＳＴ９ａまでの処理は、図２のステップＳＴ４からステップＳＴ７までの処理と同一であるので説明を省略する。
これにより、入力データ列が中央に配置されその両側にＮ／２点の０値データ列が配置された２Ｎ点のＦＦＴデータ列を得ることができる。
【００４５】
図８は、符号反転部７による符号反転の他の概要を示す図であって、Ｎ点の入力データ列における前半のデータ列をデータＡ、後半のデータ列をデータＢとしている。
図６のステップＳＴ３ａにおいて、符号反転部７が、図８に示すように、０値データ列が中央に配置されその両側に入力データ列の前半のＮ／２点のデータ列と後半のＮ／２点のデータ列とが配置されたＭ×Ｎ点のデータ列のうち、０値を除いた入力データ列の後半のデータＡの符号を反転させる。
これにより、入力データ列が循環シフトされ、０値データ列が中央に配置されその両側に入力データ列の前半のデータ列と後半のデータ列とが配置されたＭ×Ｎ点のデータ列が繰り返し回数ＭでＮ点ごとのデータ列として位相乗算部３に出力される。
そして、ステップＳＴ４ａからステップＳＴ９ａまでの処理が実行されることにより、０値データ列が中央に配置されその両側に入力データ列の前半のデータ列と後半のデータ列とが配置された２Ｎ点のＦＦＴデータ列を得ることができる。
【００４６】
なお、入力データ列の点数がＮ点に満たなければ、入力バッファ２から符号反転部７へ出力される入力データ列の後に０値データ列が挿入される。
符号反転部７が入力データ列の後半のデータ列の符号を反転させることで、入力データ列が中央に配置されその両側にＮ／２点の０値データ列が配置された２Ｎ点のデータ列がＮ点ごとに位相乗算部３に出力される。
また、符号反転部７が入力データ列の前半のデータ列の符号を反転させることで、０値データ列が中央に配置されその両側に入力データ列の前半のデータ列と後半のデータ列とが配置された２Ｎ点のデータ列がＮ点ごとに位相乗算部３に出力される。
【００４７】
変換演算部４がＦＦＴを行う場合について示したが、実施の形態２に係る演算装置１Ｂは、ＩＦＦＴを行う場合においても同様に構成することができる。
【００４８】
以上のように、実施の形態２に係る演算装置１Ｂは、入力データ列の後半のデータ列の符号を反転させる符号反転部７を備える。位相乗算部３は、符号反転部７から、入力データ列が中央に配置されその両側に０値データ列が配置されたＭ×Ｎ点のデータ列を、繰り返し回数ＭでＮ点ごとのデータ列として入力する。
または、符号反転部７は、入力データ列の前半のデータ列の符号を反転させる。これにより、位相乗算部３は、符号反転部７から、０値データ列が中央に配置されその両側に入力データ列の前半のデータ列と後半のデータ列とが配置されたＭ×Ｎ点のデータ列を、繰り返し回数ＭでＮ点ごとのデータ列として入力する。
このように構成することで、入力データ列が中央に配置されその両側に０値データ列が配置されたＦＦＴデータ列、または、０値データ列が中央に配置されその両側に入力データ列の前半のデータ列と後半のデータ列とが配置されたＦＦＴデータ列が得られる。
例えば、合成開口レーダの画像化処理では、０値データ列が中央に配置されその両側に入力データ列の前半のデータ列と後半のデータ列とが配置されたＦＦＴデータ列が利用される。このような場合に演算装置１Ｂを適用することができる。
【００４９】
実施の形態３．
図９は、この発明の実施の形態３に係る演算装置１Ｃの構成を示すブロック図である。
図９において、図１と同一構成要素には同一符号を付して説明を省略する。
演算装置１Ｃは、図９に示すように、入力バッファ２Ｂ、位相乗算部３、変換演算部４、出力バッファ５、制御部６および加減算部８を備える。入力バッファ２Ｂは、入力データ列を蓄えるとともに、入力データ列を前半のデータ列と後半のデータ列とに分けて加減算部８に出力する。加減算部８は、入力バッファ２Ｂから入力した２つのデータ列を加減算する。
【００５０】
次に動作について説明する。
図１０は、演算装置１Ｃの動作を示すフローチャートであり、Ｎ点のＦＦＴを行う変換演算部４を用いてＭ×Ｎの変換データ列を出力するまでの一連の処理を示している。
図１１は、加減算部８による加減算の概要を示す図であり、Ｎ点の入力データ列の前半のデータ列をＡ［ｊ］、後半のデータ列をＢ［ｊ］としている。
以降では、Ｎ点の入力データ列であり、２Ｎ点のＦＦＴデータ列を得るものとする。
【００５１】
まず、Ｎ点の入力データが入力バッファ２Ｂに蓄えられる（ステップＳＴ１ｂ）。
加減算部８は、入力バッファ２Ｂから、Ｎ点の入力データ列における前半のデータ列と後半のデータ列とを同時に入力する（ステップＳＴ２ｂ）。
加減算部８は、入力バッファ２Ｂから入力した２つのデータ列を、実部と虚部とを入れ替えつつ、加減算を行う（ステップＳＴ３ｂ）。
【００５２】
例えば、図１１に示すように、入力バッファ２Ｂから加減算部８が入力する２つの複素データ列をＡ［ｊ］，Ｂ［ｊ］とする。加減算部８は、入力データ列を“０，Ａ［ｊ］，Ｂ［ｊ］，０”という２Ｎ点のデータ列とみなして、基数４のＦＦＴを行う。このＦＦＴは、複素データ列の実部と虚部の入れ替えと、加減算とで実現することができる。
すなわち、基数４に対応して繰り返し回数Ｍ＝４で演算処理が行われる。
【００５３】
まず、加減算部８が繰り返し１回目の加算を行って、図１１に示すＮ／２点のデータ列Ａ［ｊ］＋Ｂ［ｊ］が得られ、位相乗算部３に出力される。
次に、繰り返し２回目で実部と虚部とを入れ替えた減算によって、Ｎ／２点のデータ列−ｉＡ［ｊ］−Ｂ［ｊ］が得られ、位相乗算部３に出力される。
続いて、繰り返し３回目で実部と虚部とを入れ替えた加算によって、Ｎ／２点のデータ列−Ａ［ｊ］＋Ｂ［ｊ］が得られ、位相乗算部３に出力される。
最後に、繰り返し４回目で実部と虚部とを入れ替えた減算によって、Ｎ／２点のデータ列ｉＡ［ｊ］−Ｂ［ｊ］が得られ、位相乗算部３に出力される。
【００５４】
位相乗算部３は、加減算部８から繰り返し回ごとに入力したＮ／２点のデータ列に位相を乗算する（ステップＳＴ４ｂ）。位相が乗算されたＮ／２点のデータ列は位相乗算部３から変換演算部４に出力される。
Ｎ／２点のデータ列をｘ（０），ｘ（１），・・・，ｘ（Ｎ／２−１）とすると、このデータ列に乗算される位相ｗ（ｋ，０），ｗ（ｋ，１），・・・，ｗ（ｋ，Ｎ／２−１）は、下記式（４）で表すことができる。
ただし、基数４に対応する繰り返し回数をｋ＝０，１，２，３としている。
ｗ（ｋ，ｊ）＝ｅｘｐ（−２πｉ（ｊｋ／２Ｎ））      ・・・（４）
【００５５】
変換演算部４は、位相乗算部３から入力したＮ／２点のデータ列にＮ／２点のＦＦＴを実行する（ステップＳＴ５ｂ）。
出力バッファ５は、変換演算部４から出力された繰り返し回ごとのＦＦＴデータ列を蓄える（ステップＳＴ６ｂ）。Ｍ＝４であることから、１回目から４回目のＦＦＴデータ列が順に出力バッファ５に蓄えられる。
【００５６】
この後のステップＳＴ７ｂおよびステップＳＴ８ｂの処理は、図２に示したステップＳＴ６およびステップＳＴ７と同じ処理であるので説明を省略する。これにより、２Ｎ点のＦＦＴデータ列を得ることができる。
【００５７】
なお、加減算部８が、入力データ列を“０，Ａ［ｊ］，Ｂ［ｊ］，０”とみなした場合を示した。ただし、加減算部８が入力したデータ列を“Ａ［ｊ］，０，０，Ｂ［ｊ］”、“０，０，Ａ［ｊ］，Ｂ［ｊ］”または“Ａ［ｊ］，Ｂ［ｊ］，０，０”のいずれかとみなしても、データ列の実部と虚部の入れ替えと、加減算とによって、ＦＦＴを行うことができる。
【００５８】
なお、０値を挿入して４Ｎ点のデータ列とみなした場合であっても、加減算部８は、データ列の実部と虚部の入れ替えと符号操作だけでＦＦＴを行うことができる。
例えば、４Ｎ点となるように０値を挿入した場合、Ａ［ｊ］の前半とＢ［ｊ］の後半が０値データ列となる。この場合、繰り返し１回目の加減算で、前半のデータ列をＢ［ｊ］とし、後半のデータ列をＡ［ｊ］とすればよい。
【００５９】
変換演算部４がＦＦＴを行う場合について示したが、実施の形態３に係る演算装置１Ｃは、ＩＦＦＴを行う場合においても同様に構成することができる。
【００６０】
以上のように、実施の形態３に係る演算装置１Ｃは、入力バッファ２ＢからＮ点の入力データ列の前半のデータ列と後半のデータ列との実部と虚部を入れ替えて加減算する加減算部８を備える。位相乗算部３は、加減算部８により加減算されたデータ列に位相を乗算する。変換演算部４は、位相乗算部３から出力されたデータ列を順次入力して、入力したデータ列のそれぞれにＮ’／４点のＦＦＴを実行してＭ×Ｎ点のＦＦＴデータ列を出力する。このように構成することでも、入力データ列の半分以上の点が０値である場合に回路規模を削減することができる。
【００６１】
実施の形態４．
図１２はこの発明の実施の形態４に係る演算装置１Ｄの構成を示すブロック図である。図１２において、図１と同一構成要素には同一符号を付して説明を省略する。
演算装置１Ｄは、図１２に示すように、入力バッファ２、位相乗算部３、第１の変換演算部４ａ、第２の変換演算部４ｂ、出力バッファ５および制御部６を備える。
第１の変換演算部４ａは、入力バッファ２から出力された入力データ列を入力し、入力データ列にＮ点のＦＦＴを実行する。第２の変換演算部４ｂは、位相乗算部３から出力されたデータ列を入力し、入力したデータ列にＮ点のＦＦＴを実行する。
【００６２】
次に動作について説明する。
図１３は、演算装置１Ｄの動作を示すフローチャートであり、Ｎ点のＦＦＴを行う第１の変換演算部４ａと第２の変換演算部４ｂとを用いて２Ｎの変換データ列を出力するまでの一連の処理を示している。
まず、Ｎ点の入力データが入力バッファ２に蓄えられる（ステップＳＴ１ｃ）。
次に、位相乗算部３および第１の変換演算部４ａが、入力バッファ２から、Ｎ点の入力データ列を入力する（ステップＳＴ２ｃ）。
【００６３】
位相乗算部３は、入力バッファ２から入力したＮ点の入力データ列に位相を乗算して、第２の変換演算部４ｂに出力する（ステップＳＴ３ｃ）。例えば、上記式（１）に従って決定された位相がＮ点の入力データ列に乗算される。
続いて、第１の変換演算部４ａは、入力バッファ２から入力したＮ点の入力データ列にＮ点のＦＦＴを実行し、第２の変換演算部４ｂは、位相乗算部３から入力したデータ列にＮ点のＦＦＴを実行する（ステップＳＴ４ｃ）。
【００６４】
出力バッファ５は、第１の変換演算部４ａから出力されたＦＦＴデータ列と第２の変換演算部４ｂから出力されたＦＦＴデータ列とを蓄える（ステップＳＴ５ｃ）。次に、出力バッファ５は、第１の変換演算部４ａのＦＦＴデータ列から第２の変換演算部４ｂのＦＦＴデータ列までを順に出力する（ステップＳＴ６ｃ）。これにより、実施の形態１で示した構成に比べて、１／２の時間で２Ｎ点のＦＦＴデータ列を得ることができる。
【００６５】
なお、入力バッファ２は、例えば、ＦＩＦＯを用いて実現することができる。
また、第１の変換演算部４ａにより算出されたＦＦＴデータ列と第２の変換演算部４ｂにより算出されたＦＦＴデータ列とをそのまま２点同時出力とすれば、出力バッファ５を省略することができる。
【００６６】
Ｎ点の入力データ列から２Ｎ点のＦＦＴデータ列を得る演算装置１Ｄを示したが、３Ｎ個以上の変換演算部を設けることによって、Ｎ点の入力データ列から３Ｎ点以上のＦＦＴデータ列を得ることができる。すなわち、演算装置１Ｄは、２以上のＭ個の変換演算部を備えてもよい。例えば、Ｍ＝３である場合、３個の変換演算部のうちの第１の変換演算部が、入力バッファから出力された入力データ列を入力し、入力データ列にＮ点のＦＦＴを実行する。３個の変換演算部のうちの第２以上の変換演算部が、位相乗算部３から出力されたデータ列を入力し、入力したデータ列にＮ点のＦＦＴを実行する。そして、第１から第３までの変換演算部が算出したＦＦＴデータ列を合わせることにより、３Ｎ点のＦＦＴデータ列が出力される。
【００６７】
第１の変換演算部４ａおよび第２の変換演算部４ｂがＦＦＴを行う場合について示したが、実施の形態４に係る演算装置１Ｄは、ＩＦＦＴを行う場合においても同様に構成することができる。
【００６８】
以上のように、実施の形態４に係る演算装置１Ｄは、入力バッファ２、位相乗算部３、第１の変換演算部４ａおよび第２の変換演算部４ｂを備える。
入力バッファ２は、入力データ列を蓄える。位相乗算部３は、入力バッファ２から出力された入力データ列を入力し、入力データ列に位相を乗算して出力する。第１の変換演算部４ａは、入力バッファ２から出力された入力データ列を入力して、入力データ列にＮ点のＦＦＴを実行する。第２の変換演算部４ｂは、位相乗算部３から出力されたデータ列を入力し、入力したデータ列にＮ点のＦＦＴを実行する。
第１の変換演算部４ａにより得られたＦＦＴデータ列と第２の変換演算部４ｂにより得られたＦＦＴデータ列とを合わせて２Ｎ点のＦＦＴデータ列を出力する。
このように構成することで、実施の形態１の構成よりも迅速にＦＦＴ結果を得ることができる。なお、演算装置１Ｄは、実施の形態１の構成に比べて変換演算部が増加するが、２Ｎ点のＦＦＴ演算器を設けた構成よりも回路規模を削減することができる。
【００６９】
実施の形態５．
実施の形態１に係る演算装置１，１Ａ、実施の形態２に係る演算装置１Ｂ、実施の形態３に係る演算装置１Ｃおよび実施の形態４に係る演算装置１Ｄのそれぞれの機能は、処理回路により実現される。すなわち、これらの演算装置のそれぞれは、実施の形態１〜４に示した機能の動作を行うための処理回路を備える。処理回路は、専用のハードウェアであっても、メモリに記憶されたプログラムを実行するプロセッサであってもよい。
【００７０】
処理回路が専用のハードウェアである場合、処理回路は、例えば、単一回路、複合回路、プログラム化したプロセッサ、並列プログラム化したプロセッサ、ＡＳＩＣ（Ａｐｐｌｉｃａｔｉｏｎ  Ｓｐｅｃｉｆｉｃ  Ｉｎｔｅｇｒａｔｅｄ  Ｃｉｒｃｕｉｔ）、ＦＰＧＡ（Ｆｉｅｌｄ−Ｐｒｏｇｒａｍｍａｂｌｅ  Ｇａｔｅ  Ａｒｒａｙ）、または、これらを組み合わせたものが該当する。各実施の形態に係る演算装置のそれぞれの機能を、個々に対応した処理回路で実現してもよいし、それぞれの機能をまとめて１つの処理回路で実現してもよい。
【００７１】
図１４はこの発明の実施の形態５に係る演算装置１Ｅの構成を示すブロック図であり、演算装置１Ｅは、上記処理回路がプロセッサ１０２である場合を示している。
演算装置１Ｅでは、プロセッサ１０２がメモリ１０１に記憶されたプログラムを実行することにより、演算装置１，１Ａ〜１Ｄのうちのいずれかの機能が実現される。
また、演算装置１Ｅは、図１４に示すように、入出力器１００、メモリ１０１、およびプロセッサ１０２を備える。
【００７２】
入出力器１００は、変換対象のデータ列を入力してメモリ１０１に出力し、変換結果のデータ列を出力する機器である。メモリ１０１は、データ列を蓄えるメモリである。
入出力器１００とメモリ１０１が、実施の形態１〜４における入力バッファおよび出力バッファの機能を実現する。メモリ１０１は、例えば、ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）、ＲＯＭ、フラッシュメモリ、ＥＰＲＯＭ（Ｅｒａｓａｂｌｅ  Ｐｒｏｇｒａｍｍａｂｌｅ  ＲＯＭ）、ＥＥＰＲＯＭ（Ｅｌｅｃｔｒｉｃａｌｌｙ  ＥＰＲＯＭ）などの不揮発性または揮発性の半導体メモリ、磁気ディスク、フレキシブルディスク、光ディスク、コンパクトディスク、ミニディスク、ＤＶＤ（Ｄｉｇｉｔａｌ  Ｖｅｒｓａｔｉｌｅ  Ｄｉｓｋ）などが該当する。
【００７３】
処理回路がプロセッサ１０２である場合、演算装置１，１Ａ〜１Ｄの機能は、ソフトウェア、ファームウェア、またはソフトウェアとファームウェアとの組み合わせにより実現される。ソフトウェアまたはファームウェアはプログラムとして記述され、メモリ１０１に記憶される。プロセッサ１０２は、メモリ１０１に記憶されたプログラムを読み出して実行することにより、演算装置１，１Ａ〜１Ｄのそれぞれの機能を実現する。すなわち、演算装置１Ｅは、処理回路により実行されるときに、演算装置１，１Ａ〜１Ｄのそれぞれの機能の動作が結果的に実行されることになるプログラムを格納するためのメモリ１０１を備える。また、これらのプログラムは、演算装置１，１Ａ〜１Ｄの各機能の手順または方法をコンピュータに実行させるものといえる。
【００７４】
例えば、演算装置１の機能のうち、位相乗算部３、変換演算部４および制御部６の機能が、プロセッサ１０２により実行される。演算装置１Ａの機能のうち、位相乗算部３Ａ、変換演算部４および制御部６の機能が、プロセッサ１０２により実行される。演算装置１Ｂの機能のうち、位相乗算部３、変換演算部４、制御部６および符号反転部７の機能が、プロセッサ１０２により実行される。演算装置１Ｃの機能のうち、位相乗算部３、変換演算部４、制御部６および加減算部８の機能が、プロセッサ１０２により実行される。演算装置１Ｄの機能のうち、位相乗算部３、第１の変換演算部４ａ、第２の変換演算部４ｂおよび制御部６の機能が、プロセッサ１０２により実行される。
【００７５】
ここで、演算装置１Ｅが、演算装置１の各機能を実現する場合を例に挙げて説明する。
まず、入出力器１００は、Ｎ点の入力データ列をメモリ１０１に蓄える。
プロセッサ１０２は、メモリ１０１から、Ｎ点の入力データ列とその後に挿入された０値データ列とからなるデータ列を繰り返し回数ＭでＮ点ごとのデータ列として入力する。ここでは、Ｍ＝２であるものとする。
【００７６】
プロセッサ１０２は、入力したデータ列が繰り返し１回目のデータ列である場合、このデータ列を変更せず、繰り返し２回目のデータ列である場合、このデータ列に位相を乗算する。データ列に乗算される位相は、上記式（１）によって算出することができる。
【００７７】
プロセッサ１０２は、繰り返し１回目のデータ列にＦＦＴを実行して、１回目のＦＦＴデータ列としてメモリ１０１に出力する。次に、プロセッサ１０２は、繰り返し２回目のデータ列にＦＦＴを実行し、２回目のＦＦＴデータ列としてメモリ１０１に出力する。
メモリ１０１は、プロセッサ１０２から入力したＦＦＴデータ列を記憶する。
【００７８】
プロセッサ１０２は、１回目のＦＦＴデータ列と２回目のＦＦＴデータ列とが順に並ぶようにメモリ１０１上でデータ列を整列する。
入出力器１００は、メモリ１０１から１回目のＦＦＴデータ列と２回目のＦＦＴデータ列を順に読み出して、２Ｎ点のＦＦＴデータ列として出力する。
なお、繰り返し順にＦＦＴデータ列がメモリ１０１から出力されてＦＦＴデータ列の整列が不要である場合、上記の整列処理を省略してもよい。
【００７９】
なお、演算装置１，１Ａ〜１Ｄの機能をプロセッサ１０２で実現する場合を示したが、これらの機能の一部を専用のハードウェアで実現し、残りをソフトウェアまたはファームウェアで実現してもよい。例えば、演算装置１の位相乗算部３を専用のハードウェアとしての処理回路でその機能を実現し、変換演算部４については、処理回路がメモリ１０１に記憶されたプログラムを読み出して実行することによりその機能を実現する。
このように、処理回路は、ハードウェア、ソフトウェア、ファームウェアまたはこれらの組み合わせによって、前述の各機能を実現することができる。
【００８０】
これまで、演算装置１ＥがＦＦＴを行う場合について示したが、ＩＦＦＴを行う場合においても同様に構成することができる。
【００８１】
以上のように、実施の形態５に係る演算装置１Ｅにおいて、プロセッサ１０２が、実施の形態１から実施の形態４に示した演算装置のそれぞれの機能を実現する。
このように構成しても、入力データ列の半分以上の点が０値である場合において、回路規模を削減することができる。
また、これらの演算装置における処理をプロセッサ１０２で実現することにより、実施の形態１〜４に示したようにフーリエ変換の点数が半分または数分の一になるため、変換演算部の前後の処理を加えても、全体の処理時間を短縮することができる。
【００８２】
なお、本発明はその発明の範囲内において、各実施の形態の自由な組み合わせあるいは各実施の形態の任意の構成要素の変形、もしくは各実施の形態において任意の構成要素の省略が可能である。
【産業上の利用可能性】
【００８３】
この発明に係る演算装置は、入力データの半分以上の点が０値であっても回路規模を削減することができるので、離散フーリエ変換または逆離散フーリエ変換を用いた情報処理を行う様々な機器に適用することができる。
【符号の説明】
【００８４】
１、１Ａ〜１Ｅ  演算装置、２，２Ａ，２Ｂ  入力バッファ、３，３Ａ  位相乗算部、４  変換演算部、４ａ  第１の変換演算部、４ｂ  第２の変換演算部、５  出力バッファ、６  制御部、７  符号反転部、８  加減算部、１００  入出力器、１０１  メモリ、１０２  プロセッサ。
【図１】
0006505334.tif 000002
【図２】
0006505334.tif 000003
【図３】
0006505334.tif 000004
【図４】
0006505334.tif 000005
【図５】
0006505334.tif 000006
【図６】
0006505334.tif 000007
【図７】
0006505334.tif 000008
【図８】
0006505334.tif 000009
【図９】
0006505334.tif 000010
【図１０】
0006505334.tif 000011
【図１１】
0006505334.tif 000012
【図１２】
0006505334.tif 000013
【図１３】
0006505334.tif 000014
【図１４】
0006505334.tif 000015