JP2011060177A - 高速フーリエ変換演算装置 - Google Patents

高速フーリエ変換演算装置 Download PDF

Info

Publication number
JP2011060177A
JP2011060177A JP2009211576A JP2009211576A JP2011060177A JP 2011060177 A JP2011060177 A JP 2011060177A JP 2009211576 A JP2009211576 A JP 2009211576A JP 2009211576 A JP2009211576 A JP 2009211576A JP 2011060177 A JP2011060177 A JP 2011060177A
Authority
JP
Japan
Prior art keywords
shift amount
fourier transform
fast fourier
bit shift
unit
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2009211576A
Other languages
English (en)
Other versions
JP5414434B2 (ja
Inventor
Katsumi Takahashi
勝己 高橋
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Mitsubishi Electric Corp
Original Assignee
Mitsubishi Electric Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Mitsubishi Electric Corp filed Critical Mitsubishi Electric Corp
Priority to JP2009211576A priority Critical patent/JP5414434B2/ja
Publication of JP2011060177A publication Critical patent/JP2011060177A/ja
Application granted granted Critical
Publication of JP5414434B2 publication Critical patent/JP5414434B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Complex Calculations (AREA)

Abstract

【課題】桁あふれ発生時にビットシフト量を更新することにより、後続データの演算処理時に桁あふれの発生を抑制することのできる高速フーリエ変換演算装置を得る。
【解決手段】入力データを取り込む入力線1と、複数のバタフライ演算部5a〜5nの少なくとも1つに接続されたビットシフト部6a〜6nと、最終段のビットシフト部6nに接続されて演算結果を出力する出力線4と、ビットシフト部におけるビットシフト量を制御するシフト量制御部とを備えている。複数のバタフライ演算部5a〜5nの少なくとも1つは、自身の桁あふれを検出する機能を有する。シフト量制御部3は、複数のバタフライ演算部5a〜5nのいずれかで桁あふれが検出された場合に、ビットシフト量を調整する。
【選択図】図1

Description

この発明は、バタフライ演算を固定小数点演算で行い、FFT(高速フーリエ変換)演算またはIFFT(逆高速フーリエ変換)演算を繰り返し実行し続ける高速フーリエ変換演算装置に関するものである。
一般に、固定小数点は、浮動小数点に比べて演算回路が簡単となり、回路規模を小さくできるという利点がある反面、扱うことのできる数のダイナミックレンジが狭いという問題を抱えている。なお、このような演算装置においては、入力されるデータの傾向が似通っている(急変することが少ない)問題を扱うことが多い。
上記のようなダイナミックレンジが狭いという問題を改善するために、従来から、特定のバタフライ演算のみでビットシフトを行うという演算方法および演算装置が提案されている(たとえば、特許文献1参照)。
ただし、上記特許文献1では、バタフライ演算における桁あふれを監視しておらず、ビットシフトを行う位置を固定している。
特開平10−49516号公報
従来の高速フーリエ変換演算装置は、上記特許文献1に記載のように、バタフライ演算で桁あふれが生じても、これを回避することができないという課題があった。
この発明は、上記のような課題を解決するためになされたものであり、桁あふれが生じた場合に、ビットシフト量を更新することにより、後続データの演算処理の際に、桁あふれの発生を抑制することのできる高速フーリエ変換演算装置を得ることを目的とする。
この発明に係る高速フーリエ変換演算装置は、入力データに対して、固定ビット長の固定小数点演算で高速フーリエ変換を行う複数のバタフライ演算部を有する高速フーリエ変換演算装置であって、入力データを取り込む入力線と、複数のバタフライ演算部の少なくとも1つの演算データに対してビットシフトを行うビットシフト部と、ビットシフト部のうちの最終段のビットシフト部に接続されて演算結果を出力する出力線と、ビットシフト部におけるビットシフト量を制御するシフト量制御部と、を備え、複数のバタフライ演算部の少なくとも1つは、自身の桁あふれを検出する機能を有し、シフト量制御部は、複数のバタフライ演算部のいずれかで桁あふれが検出された場合にビットシフト量を調整するものである。
この発明によれば、桁あふれの有無に応じて、ビットシフト量(ビットシフト位置)を制御することにより、桁あふれが発生しても、その後のデータ処理においてビットシフトの制御を補正して、桁あふれの発生を抑制することができる。
この発明の実施の形態1に係る高速フーリエ変換演算装置を示すブロック構成図である。 この発明の実施の形態3に係る高速フーリエ変換演算装置を示すブロック構成図である。 この発明の実施の形態4に係る高速フーリエ変換演算装置を示すブロック構成図である。 この発明の実施の形態6に係る高速フーリエ変換演算装置を示すブロック構成図である。 この発明の実施の形態6による演算処理を示す説明図である。
実施の形態1.
以下、図面を参照しながら、この発明の実施の形態1について説明する。
図1はこの発明の実施の形態1に係る高速フーリエ変換演算装置を示すブロック構成図であり、最大で214(=16384)点のFFT(または、IFFT)演算を実行可能な構成を示している。
図1において、高速フーリエ変換演算装置は、高速フーリエ変換の対象となる入力データを取り込む入力線1と、入力データに対して高速フーリエ変換演算を行う高速フーリエ変換部2と、高速フーリエ変換部2のビットシフト量を制御するシフト量制御部3と、高速フーリエ変換の結果(出力データ)を出力する出力線4とを備えている。
高速フーリエ変換部2は、バタフライ演算を行う14個(a、b、・・・、m、n)のバタフライ演算部5a〜5nと、ビットシフトを行うビットシフト部6a〜6nとを備えている。
バタフライ演算部5a〜5nとビットシフト部6a〜6nとは、交互にかつ順次に配置されるとともに、それぞれ、シフト量制御部3に接続されている。
すなわち、バタフライ演算部5a〜5nのデータ出力端子には、ビットシフト部6a〜6nが個別に接続され、バタフライ演算部5a〜5nは、ビットシフト部6a〜6mを介して順次に直列接続されており、最終段のビットシフト部6nには、出力線4が接続されている。
バタフライ演算部5a〜5nは、各々の演算データを、下段側のビットシフト部6a〜6nに個別に入力するとともに、シフト量制御部3に入力する。
ビットシフト部6a〜6nは、シフト量制御部3の制御下で入力データに対するビットシフトを行い、ビットシフト部6a〜6mは、下段側のバタフライ演算部5b〜5nに対して順次にビットシフト後のデータを入力し、最終段のビットシフト部6nは、出力線4を介して出力データを出力する。
以下、図1に示したこの発明の実施の形態1に係る高速フーリエ変換演算装置の各部の機能および動作について説明する。
(1)まず、入力線1からのデータが、高速フーリエ変換部2内の最上段側のバタフライ演算部5aに入力される。
(2)高速フーリエ変換部2は、シフト量制御部3の指示にしたがって、入力データに対してFFT(または、IFFT)演算を順次に実行する。
(3)高速フーリエ変換部2は、最終的なFFT(または、IFFT)の演算結果を、ビットシフト部6nから出力線2を介して出力する。
(4)このとき、シフト量制御部3は、高速フーリエ変換部2内の各バタフライ演算部5a〜5nから「桁あふれ状況(または、最大値)」を取り込み、高速フーリエ変換部2内の各ビットシフト部6a〜6nに対する指示内容を更新する。
(5)以下、高速フーリエ変換部2およびシフト量制御部3は、次の入力データ(後続データ)に対して、上記(1)〜(4)の処理を実行する。
次に、高速フーリエ変換部2の内部における動作について、さらに詳細に説明する。
(6)まず、最上段側のバタフライ演算部5aは、常に、入力データに対してバタフライ演算を実行して、演算データを下段側に出力する。
(7)バタフライ演算部5aは、バタフライ演算時の「桁あふれ」の有無情報を、シフト量制御部3に報告する。
(8)以下、下段側のバタフライ演算部5b〜5nは、バタフライ演算部5aと同じように、上記処理動作を順次に実行する。
(9)一方、バタフライ演算部5aに接続されたビットシフト部6aは、常に、入力データに対してビットシフトを行い、ビットシフト後のデータを出力する。このとき、ビットシフト部6aによるビットシフト量は、シフト量制御部3からの指示にしたがって決定される。
(10)以下、下段側のビットシフト部6b〜6nは、ビットシフト部6aと同じように、上記処理動作(9)を実行する。このとき、シフト量制御部3は、ビットシフト5a〜5nに対して、個別にビットシフト量を指示する。
以上の処理動作(1)〜(10)により、高速フーリエ変換演算装置は、高速フーリエ変換を実行し続けることができる。
なお、バタフライ演算部5a〜5nは、内部メモリ(図示せず)を有し、バタフライ演算の実行時に、データの入れ替え処理も同時に行う。
また、図1に示した高速フーリエ変換演算装置は、出力線4の後段処理(図示せず)で必要となる場合には、桁あふれの有無やビットシフト量の情報を、後段処理に渡すことができるように構成されているものとする。
ここで、シフト量制御部3の動作例について補足説明する。
シフト量制御部3は、シミュレーション結果や事前観測結果に基づいて、ビットシフト部6a〜6nに対するシフト量の初期値を定める。これにより、各ビットシフト部6a〜6nは、それぞれに指定されたシフト量のビットシフトを行う。
このとき、各ビットシフト部6a〜6nに対するシフト量の初期値は、たとえば、以下のような値に定められる。
奇数番目のビットシフト部6a、6c、6e、6g、6i、6k、6mに対するシフト量は、「1」に設定される。
偶数番目のビットシフト部6b、6d、6f、6h、6j、6l、6nに対するシフト量は、「0」に設定される。
シフト量制御部3は、バタフライ演算部5b〜5nのいずれかから「桁あふれ」が報告された場合に、「桁あふれ」を報告したバタフライ演算部の上段側に接続されたビットシフト部のシフト量を変更する。
このときのシフト量の変更処理は、具体的には、たとえば以下のように実行される。
「桁あふれ」を検出したバタフライ演算部よりも上段側で、かつ、「桁あふれ」を検出したバタフライ演算部に最も近い位置のビットシフト部の値を「1」だけ増加させる。
なお、バタフライ演算部5aから「桁あふれ」が報告された場合には、一過性のものと見なして、特に対処(シフト量の変更処理)を行わないものとする。
以上のように、この発明の実施の形態1(図1)に係る高速フーリエ変換演算装置は、入力データに対して、固定ビット長の固定小数点演算で高速フーリエ変換を行う複数のバタフライ演算部5a〜5nを有する高速フーリエ変換演算装置であって、入力データを取り込む入力線1と、複数のバタフライ演算部5a〜5nの少なくとも1つの演算データに対してビットシフトを行うビットシフト部6a〜6nと、ビットシフト部6a〜6nのうちの最終段のビットシフト部6nに接続されて演算結果を出力する出力線4と、ビットシフト部6a〜6nにおけるビットシフト量を制御するシフト量制御部3とを備えている。
複数のバタフライ演算部5a〜5nの少なくとも1つは、自身の桁あふれを検出する機能を有し、シフト量制御部3は、複数のバタフライ演算部5a〜5nのいずれかで「桁あふれ」が検出された場合に、ビットシフト部6a〜6n(の少なくとも1つ)のビットシフト量を調整(変更)する。
このシフト量変更処理により、同様の傾向を有する後続データに対してFFT(または、IFFT)演算を行う際に、「桁あふれ」の発生を抑制することができる。
なお、上記説明では、バタフライ演算部5aから「桁あふれ」が報告された場合に対処しなかったが、シフト量制御部3から入力線1の前段処理部に向けて制御線(図示せず)を設け、バタフライ演算部5aから「桁あふれ」が報告された場合に、バタフライ演算部5aの前段処理に対して、シフト量制御部3から入力データのレベル値の低解させる要求を出力してもよい。これにより、バタフライ演算部5aにおける「桁あふれ」も抑制することができる。
また、バタフライ演算部5aにおける「桁あふれ」を抑制するために、バタフライ演算部5aの上段側にビットシフト部(図示せず)を増設し、増設したビットシフト部に対して、シフト量制御部3からシフト量「1」を指定してもよい。
これにより、同様の傾向を有する後続データにFFT(または、IFFT)演算を行う際に、バタフライ演算部5aでの「桁あふれ」の発生が一過性とならない場合であっても、「桁あふれ」の発生を抑制することができる。
実施の形態2.
上記実施の形態1(図1)では、バタフライ演算部5a〜5nとビットシフト部6a〜6nとにより14個の対を構成し、かつ、ビットシフト部6a〜6nの各シフト量を任意に設定したが、偶数番目のビットシフト部6b、6d、6f、6h、6j、6l、6nを削減して、2回のバタフライ演算処理に対して1回のビットシフト処理を行うように構成してもよい。
また、上記のようにビットシフト部を削減する代わりに、図1の構成を変更せずに、各ビットシフト部6a〜6nで指定可能なシフト量を最大「1」としてもよい。
以下、シフト量を最大「1」とした場合のシフト量制御部3の動作について、補足説明する。
この場合、シフト量制御部3は、バタフライ演算部5b〜5nのいずれかから「桁あふれ」が報告された場合に、以下の条件(a)〜(c)のすべてを満たすビットシフト部のシフト量を「1」に変更する。
(a)「桁あふれ」を検出したバタフライ演算部よりも上段側に位置する。
(b)シフト量が「0」である。
(c)上記(a)、(b)の両方を満たすビットシフト部のうち、最も下段側に位置する。
なお、上記シフト量変更処理において、シフト量が更新されるビットシフト部は、14個のビットシフト部6a〜6nのうちの1個のみであるが、シフト量が更新されたビットシフト部よりも下段側のすべてのビットシフト部のシフト量を変更してもよい。
たとえば、前述の条件(a)〜(c)を満たすビットシフト部が、ビットシフト部6dのみであった場合、ビットシフト部6dおよび下段側のビットシフト部6e〜6nのシフト量(「0」または「1」)が反転することになる。
このシフト量変更処理の場合、ビットシフト部6a〜6nのうちの1個のみのシフト量を「1」に変更する場合よりも、「桁あふれ」に対する抑制作用が弱くなるので、シフト量制御部3は、「桁あふれ」に対して、さらに緩やかな調整を行うことができる。
これにより、「桁あふれ」の発生を抑制しつつ、さらに小さい回路規模で高速フーリエ変換演算装置を実現することができる。
なお、以上の説明では、シフト量制御部3において、バタフライ演算部5a〜5nのうちのどこで「桁あふれ」が発生したかが検出可能な場合を例にとって説明したが、「桁あふれ」の発生の有無さえ検出できれば、バタフライ演算部5a〜5nのうちのどこで発生したかが検出不可能な場合であっても、上記と同様の対応を行うことができる。
たとえば、「桁あふれ」の発生位置が区別不可能な場合、「桁あふれ」の発生箇所を、以下の基準(A)または(B)のいずれか一方で設定することにより、前述の対応が可能になる。
(A)最終段のバタフライ演算部5nで発生したと見なす。
(B)シフト量が「0」であるビットシフト部のうち、最も上段側に位置するビットシフト部の直後のバタフライ演算部で発生したものと見なす。
上記基準(A)、(B)のいずれを採用するかは、高速フーリエ変換演算装置の使用目的などに応じて任意に選択され得る。
以上のように、この発明の実施の形態2によれば、前述の実施の形態1よりも構成が簡略化するので、さらに小さい回路規模で高速フーリエ変換演算装置を実現することができる。
実施の形態3.
なお、上記実施の形態1(図1)では、最終段のビットシフト部6nを出力線4に接続したが、図2のように、ビットシフト部6nと出力線4との間に最大値検出部7を挿入してもよい。
図2はこの発明の実施の形態3に係る高速フーリエ変換演算装置を示すブロック構成図であり、前述(図1参照)と同様のものについては、前述と同一符号を付して、または、符号の後に「A」を付して詳述を省略する。
この場合、図1との相違点は、高速フーリエ変換部2A内に最大値検出部7が追加された点のみである。
以下、図2に示したこの発明の実施の形態3による動作について説明する。
図2において、最大値検出部7は、ビットシフト部6nからの出力データに基づいて、FFT(または、IFFT)の演算結果の塊ごとに絶対値の最大値を検出し、最大値をシフト量制御部3Aに報告するとともに、出力線4を介して外部に出力する。
シフト量制御部3Aは、最大値検出部7から受け取った最大値が所定値よりも小さい場合には、ビットシフト部6a〜6nに指示するシフト量を削減する。
たとえば、各データのビット幅が「16ビット」であるのに対し、受け取った最大値が213(=8192)未満であった場合には、出力データ値を4倍にしても16ビットの表現範囲内に収まることが明らかなので、ビットシフト部6a〜6nのうちでシフト量が「1」以上で、かつ、最も下段側に位置するビットシフト部のシフト量を「1」だけ減らす。
これにより、「桁あふれ」を抑制すると同時に、出力データ値の大きさが小さいレベルに固定されることを防ぐことができる。
なお、前述の図1(最大値検出部7を有していない)の構成においても、以下のシフト量制御部3の動作(A1)、(A2)を選択することにより、同様に、「桁あふれ」を抑制すると同時に、出力データ値の大きさが小さいレベルに固定されることを防ぐことができる。
(A1)「桁あふれ」が発生しない期間が設定値を超えた場合に、シフト量を初期値に戻す。
(A2)シフト量の変更履歴を保持し、「桁あふれ」が発生しない期間が設定値を超えるごとに、変更履歴を逆にたどって、順次に変更を元に戻す。
以上のように、この発明の実施の形態3(図2)に係る高速フーリエ変換演算装置によれば、出力線4の上段側に挿入された最大値検出部7を備え、シフト量制御部3Aは、最大値検出部7の検出結果に応じて、ビットシフト量を調整するので、図1の(最大値検出部7を有していない)構成においても、「桁あふれ」を抑制すると同時に、出力データ値の大きさが小さいレベルに固定されることを防ぐことができる。
実施の形態4.
なお、上記実施の形態3(図2)では、出力線4の上段側に最大値検出部7のみを挿入したが、図3のように、入力線1の下段側に入力バッファ8を挿入するとともに、出力線4の上段側にさらに出力バッファ9を挿入してもよい。
図3はこの発明の実施の形態4に係る高速フーリエ変換演算装置を示すブロック構成図であり、前述(図1、図2参照)と同様のものについては、前述と同一符号を付して、または、符号の後に「B」を付して詳述を省略する。
この場合、図2との相違点は、高速フーリエ変換部2B内に入力バッファ8および出力バッファ9が追加された点のみである。
入力バッファ8は、後述する「桁あふれ」の発生時において、シフト量制御部3Bの制御下で、蓄積した入力データを再送する。
また、出力バッファ9は、「桁あふれ」の発生時において、シフト量制御部3Bの制御下で、蓄積した出力データを破棄する。
以下、図3を参照しながら、この発明の実施の形態4による動作について、前述との相違部に着目して説明する。
まず、入力線1から入力されたデータは、一度、入力バッファ8に蓄えられ、入力バッファ8を介して高速フーリエ変換部2Bに取り込まれる。
以下、高速フーリエ変換部2Bは、入力データに対して高速フーリエ変換演算を行い、演算結果を、最大値検出部7を介して出力バッファ9に蓄えた後、出力線4から演算結果(出力データ)を出力する。
このとき、バタフライ演算部5a〜5nのいずれにおいても「桁あふれ」が発生していなければ、データは、入力バッファ8および出力バッファ9を経由するのみであり、前述と比べて、出力線4から得られる出力データ値に変化はない。
一方、バタフライ演算部5a〜5nのいずれかで「桁あふれ」が発生した場合には、次の動作(B1)〜(B5)により対処が可能になる。
(B1)「桁あふれ」が発生したバタフライ演算部は、「桁あふれ」をシフト量制御部3Bに報告する。
(B2)すべてのバタフライ演算部5a〜5nは、一度、演算処理を打ち切る。
(B3)出力バッファ9は、既に演算済みのデータを途中まで受け取っていたとしても、これを破棄する。
(B4)シフト量制御部3Bは、ビットシフト部6a〜6nのシフト量を更新する。
(B5)シフト量制御部3Bは、入力バッファ8にデータの再送を指示する。
以上のように、この発明の実施の形態4(図3)に係る高速フーリエ変換演算装置は、入力線1の下段側に挿入されて入力データを蓄積する入力バッファ8と、出力線4の上段側に挿入されて演算結果を蓄積する出力バッファ9とを備えている。
シフト量制御部3Bは、複数のバタフライ演算部5a〜5nのいずれかで「桁あふれ」が発生した場合に、ビットシフト部のビットシフト量を調整するとともに、入力バッファ8に蓄積された入力データを、複数のバタフライ演算部5a〜5nのうちの最上段のバタフライ演算部5aに導入して、演算処理を再実行させる。
これにより、「桁あふれ」が生じていないFFT(または、IFFT)の演算結果を、出力線4の下段側に送ることができる。
実施の形態5.
なお、上記実施の形態4(図3)では、各FFT(または、IFFT)演算を独立に扱うものとしたが、複数回分(たとえば、8000個分)を1つの塊として扱い、その塊内においては、同一のシフト量で演算処理を施してもよい。
ただし、図3の構成において、1つの塊とする数が大きい場合には、何度もやり直しが発生して、大幅に処理時間が増大する可能性がある。
したがって、処理時間の増大を回避するために、シフト量制御部3Bの制御下で、以下の動作を行うことが望ましい。
図3において、まず、シフト量制御部3Bは、塊の中から数個のFFT(または、IFFT)をサンプルとして取り出し、入力バッファ8を介して高速フーリエ変換部2Bに導入する。
以下、高速フーリエ変換部2Bによる演算処理において「桁あふれ」が発生すれば、前述のようにシフト量を調整し、すべてのサンプルに対して上記を施す。この間、出力バッファ9は、受け取るデータをすべて破棄する。
続いて、入力バッファ8は、1つの塊内のデータのすべてを高速フーリエ変換部2Bに導入し、高速フーリエ変換部2Bは、高速フーリエ変換を行う。このとき、「桁あふれ」が発生しても、シフト量の更新や演算処理のやり直しは行わない。
なお、「桁あふれ」の発生時において、出力バッファ9は、サンプルとして処理した結果を破棄せず、また、入力バッファ8は、高速フーリエ変換部2Bに導入するデータをサンプル以外に限定することにより、サンプルに対する重複処理を回避してもよい。
上記動作により、「桁あふれ」を完全には抑制することができないものの、処理時間の大幅な増加を招かずに処理を行う高速フーリエ変換演算装置を得ることができる。
以上のように、この発明の実施の形態5によれば、シフト量制御部3Bは、複数回の高速フーリエ変換演算処理を1つの塊として、1つの塊の間のビットシフト量を共通に設定し、1つの塊として演算処理を行う。
また、シフト量制御部3Bは、1つの塊の中からサンプルを取得して、サンプルに対してビットシフト量を決定する。
これにより、1つの塊内の処理条件を同一にすることができる。
また、出力線4よりも後段の処理において、同一塊内の異なるFFT(または、IFFT)の演算結果について、相互に比較および参照する処理を行うことができる。
実施の形態6.
なお、上記実施の形態1〜5(図1〜図3)では、単一の高速フーリエ変換部に対してビットシフト量を制御したが、図4のように、複数の高速フーリエ変換部2a〜2dに対してビットシフト量を制御してもよい。
図4はこの発明の実施の形態6に係る高速フーリエ変換演算装置を示すブロック構成図であり、前述(図1参照)と同様のものについては、前述と同一符号を付して、または、符号の後に「C」を付して詳述を省略する。
図4において、高速フーリエ変換演算装置は、直列配置された複数(たとえば、4個)の高速フーリエ変換部2a〜2dと、高速フーリエ変換部2a、2cの出力データを蓄えるメモリ11a、11bと、高速フーリエ変換部2bと高速フーリエ変換部2cとの間に挿入されて任意の処理を行う中間処理部12とを備えている。
入力線1は、最上段の高速フーリエ変換部2aに接続され、演算結果を出力する出力線4は、最終段の高速フーリエ変換部2dに接続されている。
シフト量制御部3Cは、高速フーリエ変換部2a〜2dのビットシフト量を制御する。
高速フーリエ変換部2a〜2dは、それぞれ、前述の実施の形態1〜5のいずれかで示したものと同様の構成を有している。
ここでは、高速フーリエ変換演算処理を複数回実行する一例として、まず、高速フーリエ変換部2a、2bにおいて2次元FFT演算を行い、中間処理部12において中間処理を施した後で、さらに、高速フーリエ変換部2c、2dにおいて2次元IFFT演算を行う場合の構成を示している。
図5はこの発明の実施の形態6による演算処理を示す説明図である。
図5において、2次元FFTは、2次元データ100に対して、横軸の1次元FFT演算と縦軸の1次元FFT演算との両方を行うことにより実現する。
以下、図4および図5を参照しながら、この発明の実施の形態6による動作(C1)〜(C11)について説明する。
(C1)まず、入力線1を介して、高速フーリエ変換部2aに2次元データが入力される。
(C2)高速フーリエ変換部2aは、シフト量制御部3Cの指示にしたがって、図5内の横軸の1次元FFT演算を行う。
(C3)高速フーリエ変換部2aは、FFTの演算結果をメモリ11aに格納する。
(C4)次段の高速フーリエ変換部2bは、メモリ11aから、図5内の縦軸の1次元FFT演算を実行可能な順番でデータを取り出す。
(C5)高速フーリエ変換部2bは、シフト量制御部3Cの指示にしたがって、図5内の縦軸の1次元FFT演算を行う。
(C6)高速フーリエ変換部2bは、FFTの演算結果を中間処理部12に送る。
(C7)中間処理部12は、高速フーリエ変換部2bの演算結果にデータ処理を施し、高速フーリエ変換部2cに入力する。
(C8)高速フーリエ変換部2cは、シフト量制御部3Cの指示にしたがって、図5内の縦軸の1次元IFFT演算を行う。
(C9)高速フーリエ変換部2cは、FFTの演算結果をメモリ11bに格納する。
(C10)最終段の高速フーリエ変換部2dは、メモリ11bから、図5内の横軸の1次元IFFTを実行できる順番でデータを取り出す。
(C11)高速フーリエ変換部2dは、シフト量制御部3Cの指示にしたがって、図5内の横軸の1次元IFFT演算を行う。
ここで、シフト量制御部3Cは、個々の高速フーリエ変換部2a〜2dに対し、シミュレーション結果や事前観測結果に基づいて、それぞれに個別のシフト量を設定する。
また、シフト量制御部3Cは、たとえば高速フーリエ変換2b内の最上段のバタフライ演算部で「桁あふれ」が発生した場合に、前述の実施の形態1で述べた複数の高速フーリエ変換部に対するシフト量制御も行う。
すなわち、シフト量制御部3Cは、高速フーリエ変換2b内の最上段のバタフライ演算部で「桁あふれ」が発生した場合には、高速フーリエ変換2a内の最終段のビットシフト部のシフト量を調整することになる。
以上のように、この発明の実施の形態6(図4)によれば、シフト量制御部3Cは、複数の高速フーリエ変換演算処理のうちの、複数の同じ高速フーリエ変換演算処理に対しても、それぞれに異なるビットシフト量を与え、各ビットシフト量を調整する。
これにより、複数の高速フーリエ変換部2a〜2dを用いて複数の演算処理を行う際に、高速フーリエ変換ごとに適したシフト量に基づき演算を行うことのできる高速フーリエ変換演算装置を得ることができる。
1 入力線、2、2A、2B、2a〜2d 高速フーリエ変換部、3、3A、3B、3C シフト量制御部、4 出力線、5a〜5n バタフライ演算部、6a〜6n ビットシフト部、7 最大値検出部、8 入力バッファ、9 出力バッファ、11a、11b メモリ、12 中間処理部。

Claims (6)

  1. 入力データに対して、固定ビット長の固定小数点演算で高速フーリエ変換を行う複数のバタフライ演算部を有する高速フーリエ変換演算装置であって、
    前記入力データを取り込む入力線と、
    前記複数のバタフライ演算部の少なくとも1つの演算データに対してビットシフトを行うビットシフト部と、
    前記ビットシフト部のうちの最終段のビットシフト部に接続されて演算結果を出力する出力線と、
    前記ビットシフト部におけるビットシフト量を制御するシフト量制御部と、を備え、
    前記複数のバタフライ演算部の少なくとも1つは、自身の桁あふれを検出する機能を有し、
    前記シフト量制御部は、前記複数のバタフライ演算部のいずれかで桁あふれが検出された場合に、前記ビットシフト量を調整することを特徴とする高速フーリエ変換演算装置。
  2. 前記出力線の上段側に挿入された最大値検出部を備え、
    前記シフト量制御部は、前記最大値検出部の検出結果に応じて、前記ビットシフト量を調整することを特徴とする請求項1に記載の高速フーリエ変換演算装置。
  3. 前記入力線の下段側に挿入されて前記入力データを蓄積する入力バッファと、
    前記出力線の上段側に挿入されて前記演算結果を蓄積する出力バッファと、を備え、
    前記シフト量制御部は、
    前記前記複数のバタフライ演算部のいずれかで桁あふれが発生した場合に、
    前記ビットシフト量を調整するとともに、前記入力バッファに蓄積された入力データを、前記複数のバタフライ演算部のうちの最上段のバタフライ演算部に導入して、演算処理を再実行させることを特徴とする請求項1または請求項2に記載の高速フーリエ変換演算装置。
  4. 前記シフト量制御部は、複数回の高速フーリエ変換演算処理を1つの塊として、前記1つの塊の間のビットシフト量を共通に設定することを特徴とする請求項3に記載の高速フーリエ変換演算装置。
  5. 前記シフト量制御部は、前記1つの塊の中からサンプルを取得して、前記サンプルに対して前記ビットシフト量を決定することを特徴とする請求項4に記載の高速フーリエ変換演算装置。
  6. 前記シフト量制御部は、前記複数の高速フーリエ変換演算処理のうちの、複数の同じ高速フーリエ変換演算処理に対しても、それぞれに異なるビットシフト量を与え、各ビットシフト量を調整することを特徴とする請求項1から請求項5までのいずれか1項に記載の高速フーリエ変換演算装置。
JP2009211576A 2009-09-14 2009-09-14 高速フーリエ変換演算装置 Expired - Fee Related JP5414434B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2009211576A JP5414434B2 (ja) 2009-09-14 2009-09-14 高速フーリエ変換演算装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2009211576A JP5414434B2 (ja) 2009-09-14 2009-09-14 高速フーリエ変換演算装置

Publications (2)

Publication Number Publication Date
JP2011060177A true JP2011060177A (ja) 2011-03-24
JP5414434B2 JP5414434B2 (ja) 2014-02-12

Family

ID=43947704

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2009211576A Expired - Fee Related JP5414434B2 (ja) 2009-09-14 2009-09-14 高速フーリエ変換演算装置

Country Status (1)

Country Link
JP (1) JP5414434B2 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9639922B2 (en) 2013-11-22 2017-05-02 Canon Kabushiki Kaisha Generation method of image restoration filter, image processing method, image pickup apparatus, image processing apparatus, and recording medium

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS60225279A (ja) * 1984-04-23 1985-11-09 Mitsubishi Electric Corp フーリエ変換装置
JPH09319733A (ja) * 1996-05-30 1997-12-12 Jisedai Digital Television Hoso Syst Kenkyusho:Kk Fft演算方法とfft演算回路

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS60225279A (ja) * 1984-04-23 1985-11-09 Mitsubishi Electric Corp フーリエ変換装置
JPH09319733A (ja) * 1996-05-30 1997-12-12 Jisedai Digital Television Hoso Syst Kenkyusho:Kk Fft演算方法とfft演算回路

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9639922B2 (en) 2013-11-22 2017-05-02 Canon Kabushiki Kaisha Generation method of image restoration filter, image processing method, image pickup apparatus, image processing apparatus, and recording medium

Also Published As

Publication number Publication date
JP5414434B2 (ja) 2014-02-12

Similar Documents

Publication Publication Date Title
JP2012231401A5 (ja)
WO2018023847A1 (zh) 用于缩放图像的处理器和方法
JP5414434B2 (ja) 高速フーリエ変換演算装置
EP2800010A1 (en) Fft/dft reverse arrangement system and method and computing system thereof
JP2012086450A5 (ja) 画像形成装置、画像形成方法、およびプログラム
JP5327482B2 (ja) 画像処理装置及び画像処理方法
JP4900680B2 (ja) 半導体メモリ試験装置
JP2008219195A (ja) コントローラ装置、ライン同期エラー判定方法、及び画像処理装置
CN1232219A (zh) 流水线型多处理器***
JP2001157049A5 (ja)
US9880974B2 (en) Folded butterfly module, pipelined FFT processor using the same, and control method of the same
JP2017194509A5 (ja) 表示端末装置、表示装置、データ処理方法及びデータ処理プログラム
JP5630798B1 (ja) プロセッサーおよび方法
CN105096247B (zh) 图像插值方法和装置
JP2011080949A (ja) レーダ画像処理装置
JP6199203B2 (ja) 最適化システム
JP5932855B2 (ja) 画像処理システム、画像処理方法及び画像処理プログラム
CN103227128B (zh) 调整具有停留时间限制的工艺阶段产能的方法及***
CN112037118B (zh) 图像缩放硬件加速方法、装置、***及可读存储介质
JP2012059131A (ja) Simd型マイクロプロセッサ及びその処理方法
JP6005578B2 (ja) 情報処理装置および情報処理方法
JP2009205573A (ja) バッファ制御装置およびバッファ制御方法
JP6981297B2 (ja) データ処理装置、データ量調整方法、及びデータ量調整プログラム
TW201643746A (zh) 資料分配裝置、訊號處理裝置及其資料分配方法
JP2009211959A (ja) 画像前処理装置

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20120201

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20130619

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20130625

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20130809

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20131015

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20131112

LAPS Cancellation because of no payment of annual fees