JP6723368B2 - 固定小数点ハイダイナミックレンジ高速フーリエ変換 - Google Patents

固定小数点ハイダイナミックレンジ高速フーリエ変換 Download PDF

Info

Publication number
JP6723368B2
JP6723368B2 JP2018539324A JP2018539324A JP6723368B2 JP 6723368 B2 JP6723368 B2 JP 6723368B2 JP 2018539324 A JP2018539324 A JP 2018539324A JP 2018539324 A JP2018539324 A JP 2018539324A JP 6723368 B2 JP6723368 B2 JP 6723368B2
Authority
JP
Japan
Prior art keywords
fft
value
algorithm
signal
output
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.)
Active
Application number
JP2018539324A
Other languages
English (en)
Other versions
JP2019506679A (ja
Inventor
ボリス・ラーナー
Original Assignee
アナログ ディヴァイスィズ インク
アナログ ディヴァイスィズ インク
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 アナログ ディヴァイスィズ インク, アナログ ディヴァイスィズ インク filed Critical アナログ ディヴァイスィズ インク
Publication of JP2019506679A publication Critical patent/JP2019506679A/ja
Application granted granted Critical
Publication of JP6723368B2 publication Critical patent/JP6723368B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F17/00Digital computing or data processing equipment or methods, specially adapted for specific functions
    • G06F17/10Complex mathematical operations
    • G06F17/14Fourier, Walsh or analogous domain transformations, e.g. Laplace, Hilbert, Karhunen-Loeve, transforms
    • G06F17/141Discrete Fourier transforms
    • G06F17/142Fast Fourier transforms, e.g. using a Cooley-Tukey type algorithm

Landscapes

  • Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computational Mathematics (AREA)
  • Data Mining & Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Pure & Applied Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Theoretical Computer Science (AREA)
  • Discrete Mathematics (AREA)
  • Databases & Information Systems (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Algebra (AREA)
  • Radar Systems Or Details Thereof (AREA)
  • Measurement Of Velocity Or Position Using Acoustic Or Ultrasonic Waves (AREA)
  • Complex Calculations (AREA)

Description

本開示は、一般に、デジタル信号処理に関し、より詳細には、固定小数点高速フーリエ変換を計算するためのアルゴリズムに関する。
受信機は、例えば電磁波(電磁受信機の場合)または音響波(音響受信機の場合)の形で信号を受信し、受信信号を電気信号に変換し、次いでこれを受信信号によって伝えられる情報を抽出するために分析する電子デバイスである。信号の挙動は、時間領域(例えば、信号振幅が経時的にどのように変化するか)、および周波数領域(すなわち、信号を構成する異なる周波数成分)において分析することができ、フーリエ変換はこれらの2つの領域を数学的に関連付ける。さらに、信号は、連続波形として、またはデジタル信号処理(DSP)用途においては、多数の時間領域点のセットとして分析することができる。高速フーリエ変換(FFT)は、デジタル形態で表される信号の離散フーリエ変換(DFT)、およびそれらの逆変換(IDFT)を計算するためのアルゴリズムを指す。
信号処理用途にわたるフーリエ変換の使用の普及により、その実行を計算上改善するために研究がなされ、したがって多くのFFTアプローチ、例えば時間におけるデシメーション、周波数におけるデシメーション、radix−2、radix−4、混合radix等が研究されてきた。それでも、FFTの実装におけるさらなる改善が望まれている。
米国特許出願第14/875,281号
本開示の実施形態は、固定小数点FFTを計算するためのメカニズムを提供する。これらの方法は、FFTが、物体までの距離、その位置、またはその速度を判定するために使用され得るレーダーおよびソナー受信機の用途に特に有利であり得る。しかしながら、これらの方法は、そのような用途に限定されず、実際には、例えば移動、電気通信、音源位置同定および分離等の固定小数点FFTが使用されるあらゆる用途に使用され得る。
本開示の一態様によれば、入力信号のFFTを生成するためのコンピュータ実装方法が開示される。方法は、入力信号に第1の複数段階FFTアルゴリズムを適用して、インデックスnでインデックス付けされたN個の第1の値Output1[n]を含む第1のFFTを生成することと、入力信号に第2の複数段階FFTアルゴリズムを適用して、第1の値と同じ方法でインデックス付けされたN個の第2の値Output2[n]を含む第2のFFTを生成することと、を含む。第1のFFTアルゴリズムは、第1のFFTアルゴリズムのゲインがKであるように、第1のFFTアルゴリズムの1つ以上の段階の出力をスケーリングするように構成され、第2のFFTアルゴリズムは、第2のFFTアルゴリズムのゲインがLであるように、第2のFFTアルゴリズムの1つ以上の段階の出力をスケーリングするように構成され、ここで、LはKより小さい。スケーリングは、典型的には、FFT出力の飽和を回避するために、固定小数点FFTの複数段階の出力の増大を制限するために使用される。方法は、第1の値および第2の値に基づいてインデックスnでインデックス付けされたN個のFFT値Output[n]を含むFFTを再構成することによってFFTを生成すること、をさらに含む。再構成は、各インデックスnについて、第1の値Output1[n]と第2の値Output2[n]との比較が、満たす場合には、第1のFFTの出力値[n]、つまり第1の値Output1[n]が飽和されていないことを確認/示す、所定の条件を満たしているかどうかを判定することと、肯定判定の場合(すなわち、第1のFFTの出力値[n]が飽和によりクリッピングされていないと判定された場合)、FFT値Output[n]として第1の値Output1[n]を含めることと、否定判定の場合(すなわち、第1のFFTの出力値[n]が飽和によりクリッピングされたと判定された場合)、FFT値Output[n]として、例えば第2の値Output2[n]に比例するかまたはこれに等しい値に基づく値を含めることと、によって実行される。FFT出力は、第1および第2のFFTアルゴリズムの出力を使用して再構成を実行することによって計算されるため、このアプローチは本明細書において再構成方法/アルゴリズムと呼ばれ、N個の値FFT値Output[n]は再構成値と呼ばれる。
いくつかの実施形態では、第1のFFTアルゴリズムは、2つ以上のバタフライ段階を含むFFTアルゴリズムであり、第1のFFTアルゴリズムの1つ以上の段階の出力をスケーリングすることは、複素指数入力信号に対する第1のFFTアルゴリズムのバタフライ段階の対に対する増大係数の逆数の2倍に等しいスケーリング係数によってバタフライ段階の全ての対の出力をスケーリングすることを含む。このようなスケーリングは、レーダーまたはソナー受信機とともに使用される場合、レーダーまたはソナー受信機により扱われ得るいかなる種類の入力信号に対しても、特定の入力信号に対して得ることができる信号対雑音比(SNR)の値を有することと、その入力信号をうまく処理するために必要なSNR値を有することの間のバランスが達成され得る。
例示的実施形態の本説明において、スケーリングは、時折、1つ以上のFFTバタフライ段階の出力にある特定のスケーリング係数の乗算に関連して説明される。しかしながら、他の手段により、例えば乗算によるスケーリングにおいて使用される係数の逆数であるスケーリング係数によるシフトまたは除算により、実質的に同じスケーリングが達成され得るため、乗算は単なる1つの限定されない例であることが、当業者に容易に認識されるであろう。したがって、本明細書に記載のようなスケーリング係数(複数を含む)による乗算によるスケーリングを効果的に実行するスケーリングの可能な実装の全て、およびスケーリングされるFFT出力段階の出力を効果的に低減するスケーリングの可能な実装の全てが、本開示の範囲内である。
本開示の一態様は、少なくとも1つの受信機と、本明細書に記載のFFT再構成方法を実行するように構成されたデータ処理システムと、を含むシステムを提供する。
本開示のいくつかの態様では、システムは、例えば自動車用途または航空機で使用されるレーダーまたはソナーシステムであってもよい。システムは、レーダーまたはソナー送信機をさらに含んでもよい。レーダー送信機は周波数ランプを含み得る無線信号を送信するように構成され、ソナー送信機は周波数ランプを含み得る音響信号を送信するように構成される。レーダー受信機は、物体から反射された送信された無線信号の少なくとも一部を含む無線信号を検出し、検出された無線信号に基づいてデータ処理システムに対する入力信号を生成するように構成される。ソナー受信機は、物体から反射された送信ソナー信号の少なくとも一部を含むソナー信号を検出し、検出されたソナー信号に基づいてデータ処理システムに対する入力信号を生成するように構成される。両方のシステムにおいて、データ処理システムは、FFT再構成アルゴリズムへの入力として入力信号を提供し、FFT再構成アルゴリズムの出力に基づいて、物体への距離の指示、物体の速度の指示、および物体の位置の指示うちの1つ以上を判定するように構成される。
本開示の別の態様は、FFT再構成アルゴリズムを使用して対象となるベースバンド信号を抽出するためのシステムを提供する。システムは、入力信号を受信し、本明細書に記載のようなFFT再構成アルゴリズムを実行するように構成された少なくとも1つのデータ処理システムを含み、入力信号は、1つ以上の無線アンテナによって検出される無線信号または1つ以上のソナーセンサによって検出されるソナー信号を含む。データ処理システムはさらに、FFT再構成アルゴリズムの出力に基づいてベースバンド信号を抽出するように構成される。
本開示の他の態様によれば、本明細に記載のFFT再構成方法を実行するように構成された少なくとも1つの受信機およびデータ処理システムを含むシステムは、例えば、直交周波数分割多重化に使用される電気通信システム、音源位置同定および分離に使用されるシステム、すなわち、音響寄与を環境に提供し得る様々な音源の空間位置(音源位置同定)を判定もしくは推定し、かつ/または1つ以上の音源の音響環境への寄与を区別する(音源分離)ために使用されるシステム、あるいは着信信号を受信し、環境について結論付けるために、受信信号についてFFTを実行する任意の他のシステムであってもよい。
当業者に認識されるように、本開示の態様、特に本明細書に記載のFFT再構成方法は、様々な様式で、例えば方法、システム、コンピュータプログラム製品、またはコンピュータ可読記憶媒体として具現化され得る。したがって、本開示の態様は、完全にハードウェアの実施形態、完全にソフトウェアの実施形態(ファームウェア、常駐ソフトウェア、マイクロコード等を含む)、またはソフトウェアおよびハードウェアの態様を組み合わせた実施形態の形態をとってもよく、それらは、本明細書において、全て一般的に「回路」、「モジュール」または「システムと」呼ぶこことができる。本開示において説明される機能は、1つ以上のコンピュータの1つ以上の処理ユニット、例えば1つ以上のマイクロプロセッサによって実行されるアルゴリズムとして実装され得る。様々な実施形態において、本明細書に記載の方法のそれぞれの異なるステップ、およびステップの一部は、異なる処理ユニットによって実行されてもよい。さらに、本開示の態様は、コンピュータ可読プログラムコードが具現化された、例えば記憶された、好ましくは非一時的な1つ以上のコンピュータ可読媒体(複数を含む)内に具現化された、コンピュータプログラム製品の形態をとってもよい。様々な実施形態において、そのようなコンピュータプログラムは、例えば、既存のデバイスおよびシステムに(例えば既存の受信機または/およびそれらのコントローラ等に)ダウンロード(更新)されてもよく、あるいは、これらのデバイスおよびシステムの製造時に記憶されてもよい。
本開示の他の特徴および利点は、以下の説明から、および特許請求の範囲から明らかである。
例示的なバタフライ演算を示す図である。 例示的なバタフライ演算を示す図である。 本開示の一実施形態による、例示的な6段階radix−2 FFTアルゴリズムのスケーリングを示す図である。 本開示の別の実施形態による、例示的な6段階radix−2 FFTアルゴリズムのスケーリングを示す図である。 本開示の一実施形態による、異なるゲイン値を有する2つのFFTアルゴリズムに基づいて、入力信号のFFT出力を生成するためのFFT再構成方法の概略図である。 本開示のいくつかの実施形態による、入力信号の実数部および虚数部を示すプロットである。 本開示のいくつかの実施形態による、同じ入力波形の理想的なFFTモデルの結果に重ね合わされた、図4に示す入力波形の256点FFTのシミュレーション結果を示すプロットである。 本開示のいくつかの実施形態による、図4に示すような入力波形に対して、同じ入力波形に対する理想的なFFTモデルの結果に重ね合わされた、本明細書に記載のFFT再構成方法を使用して生成されたFFT出力のシミュレーション結果を示すプロットである。 本開示のいくつかの実施形態による、図5に示すような入力信号であるが、図5の入力信号の振幅の2倍の振幅を有する入力信号の実数部および虚数部を示すプロットである。 本開示のいくつかの実施形態による、同じ入力波形の理想的なFFTモデルの結果に重ね合わされた、図8に示す入力波形の256点FFTのシミュレーション結果を示すプロットである。 本開示のいくつかの実施形態による、図8に示すような入力波形について、同じ入力波形に対する理想的なFFTモデルの結果に重ね合わされた、本明細書に記載のFFT再構成方法を使用して生成されたFFT出力に関するシミュレーション結果を図示するプロットである。 本開示のいくつかの実施形態による、FFT再構成アルゴリズムを利用する方法の例示的な流れ図である。 本開示のいくつかの実施形態による、例示的なデータ処理システムを示すブロック図である。 本開示のいくつかの実施形態による、FFT再構成アルゴリズムを実装するように構成された例示的な無線またはソナー受信機のシステム図である。
FFTの基本、ならびにレーダーおよびソナー用途におけるFFTの使用例
本明細書において前述されたように、FFTは、デジタル形態で表される信号の離散フーリエ変換および逆離散フーリエ変換を計算するためのアルゴリズムを指す。
FFTは、取得された信号に適用され得る変換関数の例であり、これによって、取得された信号(これは、場合によっては、例えば取得された波形を窓関数で乗じることにより、変換前に処理されてもよい)を、時間領域から周波数領域に変換する。その結果、取得された信号の一部の周波数分解が得られる。取得された信号を分析する際のFFTの使用を示す例は、以下に、例えばレーダー(すなわち、電磁気)またはソナー信号に関連して提供される。しかしながら、本明細書に記載のFFT再構成技術は、任意の他の設定および任意の他のタイプの受信信号、例えば電気通信に使用されるFFTまたは音源位置同定および分離に使用されるFFT等、他の任意のFFTにも等しく適用可能である。
レーダーおよびソナーシステムは、典型的には、以下のように機能する。まず、レーダー/ソナー送信機が信号を出力し、物体を探し出すためにそのエコーが評価される。多くの場合、送信機は周期的に信号を出力する。送信機によって送信された信号は、典型的にはチャープ信号である。周知であるように、チャープ信号は、周波数が時間とともに増加または減少する信号であり、前者の場合典型的に「アップチャープ」と呼ばれ、後者の場合典型的に「ダウンチャープ」と呼ばれる。時折「チャープ」という用語と同義的に使用される他の用語は、「周波数ランプ」、「周波数スイープ」または「スイープ信号」である。レーダーシステムの場合、使用される信号は、無線範囲内の電磁信号である。ソナーシステムの場合、使用される信号は、音響信号である。
送信信号は、物体から反射され、反射された、すなわち反響した信号が、レーダー/ソナー受信機により、適切なセンサを使用して取得される。レーダーシステムの場合、適切なセンサは、少なくとも1つであるが典型的には複数の無線アンテナを含む。ソナーシステムの場合、適切なセンサは、少なくとも1つであるが典型的には複数の音響センサを含む。
レーダー/ソナー受信機は、取得された反射信号を、レーダー/ソナーシステムのデータ処理ユニットに提供される電気入力信号に変換する。次いで、データ処理ユニットは、入力信号に対して一連の演算を実行するが、この演算は、1つ以上のFFTアルゴリズムの複数の適用を含む。
送信機により送信された信号がチャープ信号である場合、反射信号もまたチャープ信号である。物体は送信機からある特定の距離だけ離れているため、受信チャープ信号は、送信チャープ信号に対して位相シフトしている。送信信号と受信反射信号との間の位相差は、送信信号が物体に到達し、反射信号が戻ってくるのにどれ程の時間を要するかに正比例し、一方その時間は、物体までの距離に比例する。したがって、位相差は、物体までの距離を示す。送信信号はチャープであるため、送信チャープと反射チャープとの間の位相差は、本明細書に記載のようなFFTアルゴリズムの適用の結果として得られるFFT出力における位相差として現れる。したがって、受信チャープ信号へのFFTアルゴリズムの適用により、物体までの距離の推定が可能となる。さらに、受信チャープ信号へのFFTアルゴリズムの適用により、他の特性、例えば、送信機および/または受信機に対する移動物体の速度、物体の移動方向、および/または物体の位置等の推定も可能となり得る。
FFTアルゴリズムを使用して検出されたレーダー信号を処理するための1つのアプローチが以下で説明される。しかしながら、他の手法も当業者に知られており、それらは全て本開示の範囲内である。
レーダー受信機は、レーダーアンテナを使用して物体から反射された信号を検出し、各行が受信信号のサンプルの配列であり、次の行がサンプルの次の配列であり、全ての配列が一緒になって1つのランプを構成するデータの矩形を形成する。次いで、水平(窓)FFTが、サンプルの各行に対して実行される。次いで、水平FFTの結果に対して垂直窓FFTが実行され、物体から反射されレーダー受信機により検出された信号は、垂直窓FFTの結果の大きさにおいて「ピーク」として現れる。レーダー受信機の特定の入力アンテナに対する垂直窓FFTの結果は、典型的には2次元アレイとして配置され、1つの次元、典型的にはアレイの水平軸は周波数をインデックス付けし、他の次元、典型的にはアレイの垂直軸は物体の速度をインデックス付けする。送信信号がチャープである場合、そのようなアレイにおけるピークの周波数成分、すなわち、水平軸上に示されるようにピークが現れる周波数の値は、上述のように物体がどれ程遠くにあるかに正比例する、送信チャープと反射チャープとの間の位相差を示すことにより、タイムスタンプとして機能する。したがって、アレイの水平軸は、一般的に、物体までの距離または範囲をインデックス付けするものとして説明される。
周波数を変数fで表し、速度を変数vで表すことは、FFTアレイの各要素が値のある特定の対(f,v)でインデックス付けされることを意味し、fの値(すなわち、アレイ内の要素の水平の位置)は、物体の位置を示し、vの値(すなわち、アレイ内の要素の垂直の位置)は、物体の速度を示す。そのようなアレイの各要素は、垂直FFTの適用の結果から導出される値を含み、周波数および速度の値の所与の対に対する取得された信号の大きさを表す。ソナーシステムにより、同様の処理が行われる。
レーダーおよびソナー用途以外の用途では、FFTアルゴリズムを適用した結果は、上述のように2次元アレイに配置されてもよいが、速度の代わりに、例えば、時間等の対象となる他のパラメータがインデックス付けされてもよい。一般に、FFTアルゴリズムを適用した結果は、例えば1次元アレイまたは多次元アレイまたはテンソル等の、適切にインデックス付けされた任意の次元のアレイに配置されてもよい。
値のアレイで表される計算されたFFTの各要素は、典型的には、「周波数ビン」または単に「ビン」と呼ばれ、「ビン」という用語は、そのようなアレイが、取得された信号(複数を含む)のエネルギーがその中に分配される複数のビンを含むものとしてみなされ得ることを示している。様々な実施形態において、ビンは、複素数値または実数値を含有し得る。例えば、実数値は、複素数値の正の実数量X(f)に関して表すことができ、量Xは、例えば実際の大きさ、大きさの二乗、または大きさの圧縮変換、平方根または対数等として表される、取得された信号の様々な周波数成分fの大きさを表す。他の例では、実数値は、複素数値の正または負の実際の量X(f)のいずれかに関して表すことができ、量Xは、取得された信号の様々な周波数成分fの位相を表す。
周波数ビンは、受信機によって取得された全信号から特定の対象となる信号を分離すること、例えば、特定の対象となる物体から反射されたレーダーもしくはソナー信号の分離、または様々な音源からの寄与を含有する、取得された音響信号から特定の対象となる音源によって生成された音響信号の分離等は、どのビン(複数を含む)が対象となる信号に対応するかを特定することによって、および/またはどのビン(複数を含む)が有効となり得るかを特定することによって達成され得るという点で、様々な受信機によって使用されるFFTアルゴリズムに役立つ。そのために、ビンが評価され、それらが1つ以上の所定の基準を満たす値を含有するかどうかが判定される。例えば、1つの基準は、ビンの値をある特定の閾値と比較して、ビンが、取得された信号の比較的多量のエネルギーがそのビンに集中していることを示す「ピーク」を含有するものとして分類され得るかどうかを判定することを含み得る。各ビンにおけるピークの存在または不在を示すために、どこにレベル閾値を設定すべきかを判定するために、様々なアルゴリズムが実行され得るが、それらのアルゴリズムは全て、本開示の範囲内である。
実際には、上述のような値の2次元アレイは、典型的には、全ての入力アンテナに対して生成され、受信機は、典型的には、2つ以上のアンテナを含有し、したがって、アレイは3次元アレイとなり、第3の次元は異なるアンテナをインデックス付けする。上述の処理は、そのような3次元アレイの全てのアンテナ矩形スライスに対して実行され、場合によっては、続いてアンテナのビーム形成が行われる。
多くの異なる既知のFFTアプローチが共通して有するのは、それらが、信号を表すデジタル点をサブセットに分割し(「デシメーション」として知られるプロセスにおいて)、各サブセットのDFTを計算し、次いで各サブセットのDFTの結果を処理して、周波数領域点のセットからなる最終結果を生成することにより、段階的に計算を行うことである。別様に表すと、そのようなFFTアプローチは、DFT計算を、各段階がより小さいDFTを計算する段階に細分化し、次いで異なる段階である種の構造を使用して計算の結果を組み合わせる。
FFTの計算量のほとんどは、サブセットの処理にある。処理は、サブセットがまず中間結果まで処理され、周波数領域点の最終セットが生成されるまで中間結果がさらに処理される等の一連の段階において生じる。各段階は、それぞれr入力点を同時に処理してr出力点を生成する複数の並列演算を含むが、値rは、FFTアルゴリズムの「radix」として知られる。radix−2(すなわちr=2の値を有するradix)演算のデータフロー図は、バタフライ(入力点x0、x1が式y0=x0+t*x1およびy1=x0−t*x1に従って出力点y0、y1に処理される図1Aに示されるとおりである)の形に似ている(「t」は「回転係数」と呼ばれる)ため、これらの演算は、「バタフライ演算」または単に「バタフライ」として知られる。他のradixを有する演算もまた、バタフライ演算として知られる(rが4に等しい、図1Bに示される、radix−4演算等)。
浮動小数点対固定小数点表現
FFTを適用した結果を含むアレイ内の値は、固定小数点数または浮動小数点数として表され得る。
計算に関連して周知であるように、固定小数点数は、整数部(すなわち、小数点の左側の数字の部分)に対して確保される特定のビット数または桁数、および少数部(すなわち、小数点の右側の数字の部分)に対して確保される特定のビット数を有する。数字がいかに大きくても、または小さくても、それぞれの部分に対して常に同じビット数が使用される。例えば、固定小数点形式が十進数IIIII.FFFFFである場合、表され得る最大の正数は、符号なしの場合二進数11111.11111=31.96875および符号ありの場合01111.11111=15.96875であり、最小の正数は、二進数00000.00001=0.03125となる。そのような表現には、そのような数を処理するプロセッサが、小数点がどこにあるのかを知っていることが必要である。以下では、本質的に二進数表現である「ビット」が時折小数点表現に関連して説明されるが、本明細書において提供される説明に基づいて、当業者にはどれがどれかが容易に認識される。
同じく周知であるように、浮動小数点数は、整数部または小数部に対して特定のビット数を確保しない。その代わり、数に対する特定のビット数(「仮数」または「有意桁数」と呼ばれる)、およびその数内でどこに小数位があるのかを示すためのある特定のビット数(「指数」と呼ばれる)を確保する。したがって、10桁を使用して表され、2桁が指数に確保された浮動小数点数は、単純化のために符号なし浮動小数点数を考慮すると、9.9999999e+50の最大値、および0.0000001e−49の最小値を表し得る。符号あり浮動小数点数の場合、最小値は、−9.9999999e+50となる。
時折、同一幅の数に着目すると、仮数自体が指数に対するビットのいくつかを失うため、浮動小数点表現よりも整数表現が正確となり得る。しかしながら、アルゴリズムのダイナミックレンジが高いほど、固定小数点よりも浮動小数点がよい。固定桁数では、異なる桁の数が表され得るため、一般に、浮動小数点表現は、より高い正確性を提供し得る。一方、固定小数点表現は、例えば6ビットまたは右からの桁の二進数または小数点の位置に関する特定の規則を規定するソフトウェア実装によって制御される整数ハードウェア演算を使用し得るため、固定小数点処理の実装は、多くの場合、より低いコストおよび消費電力に関連する。これらの表現を操作するためのハードウェアは、浮動小数点よりもコストが低く、通常の整数演算を実行するためにもまた使用され得る。したがって、固定小数点FFTを使用することが、しばしば有利である。しかしながら、以下の項でより詳細に説明されるように、段階増大を適正に制御することが困難であるため、固定小数点FFTの使用が常に可能であるわけではない。
固定小数点FFTの段階増大
FFTアルゴリズムの連続する段階のそれぞれからの出力信号は、段階の計算を実行した結果としてその段階に提供された入力信号よりも大きくなり得る。各段階において入力信号が増大し得る係数は、入力信号の種類に依存して異なる。例えば、デルタ関数入力信号は、増大を全く経験せず、実質的に不規則な入力信号(すなわち、多くの異なる周波数を含み、その周波数表現の観点から「不規則」に見える入力信号)は、radix−2段階ごとにsqrt(2)の係数(または2つのradix−2段階ごとに2の係数)で増大し得、一方、実質的な複素指数、例えば、正弦波入力信号(すなわち、単一の周波数信号)は、radix−2段階ごとに2の係数で増大し得る。
周知のように、コンピュータは、典型的には二進乗算器を実装し、すなわち、乗算は、2を底とする形態で数を表すことによって実行され、任意の2つの数の乗算は、単なるビットのシフトおよび加算まで減じられる。そのような実装では、2の係数での値の増大(ゲイン)または2の係数での値のスケールダウンは、正しい方向での1ビットのシフトを意味する。例えば、例えば3(二進数表現では「11」)の値から6(二進数表現では「110」)の値までの2の係数での増大は、「11」(すなわち3の値)を左に1ビットだけシフトし、110(すなわち6の値)に至るものとして表される。同様に、例えば6の値から3の値への2の係数でのスケールダウンは、「110」を右に1ビットだけシフトし、「011」に至るものとして表される。したがって、2の係数での増大は、1ビットでの増大として説明されてもよく、4の係数での増大は、2ビットでの増大として説明されてもよく、以下同様である。したがって、不規則な信号入力に対するradix−2段階ごとのsqrt(2)の係数(または2つのradix−2段階ごとの2の係数)での増大は、2つのradix−2段階ごとの1ビットまたはradix−2段階ごとの0.5ビットの増大として見ることができ、複素指数、例えば正弦波入力信号に対するradix−2段階ごとの2の係数での増大は、radix−2段階ごとの1ビットでの増大として見ることができる。したがって、FFT出力は、複素指数型の入力に対してradix−2段階当たり1(またはそれ以上)の大きなビットで増大し得る場合から、最も少ない場合としてデルタ関数入力に対して全く増大がない場合まで様々である。しかしながら、平均的には、不規則な入力信号の場合と同様に、増大はradix−2段階当たり0.5ビットである。
各段階でのFFT出力の増大は、固定小数点FFTに関する周知の問題であり、前述のように、表される数がどれほど大きくても、または小さくても、整数および小数部分のそれぞれに対して同じ所定のビット数を使用し得るだけである。しかし、各段階における増大は、オーバーフロー、すなわち、計算が、所定の固定小数点実装が記憶または表し得る結果よりも大きさが大きい結果を生成する状況をもたらし得る。オーバーフローの場合、所与のメモリ要素は、記憶または表し得る最大の値を記憶または表し、この状態は「飽和」と呼ばれる。換言すれば、計算結果は、最大値にクリッピングされることになる。
オーバーフローにより、計算結果が正しく表され得ない結果となるため、典型的には、固定小数点FFTアルゴリズムは、オーバーフローを回避または大きく制限しようとする。オーバーフローを回避するための1つの手法は、FFTアルゴリズムのいくつかまたは全ての段階の後に、スケーリングを適用することであり、これは異なる方法で行うことができ、そのいくつかの例を以下に説明する。
FFT出力のスケーリング:例#1(「低」ゲイン)
1つの堅牢なスケーリングアプローチは、radix−2段階ごとに1ビットだけ出力をスケールダウンすることを含む。6段階64点FFTの例を図2に示すが、「>>1」と示されるボックスはそれぞれ、1ビットの右シフトを表している。本明細書で前述したように、1ビットの右シフトは、2の係数でのスケールダウン(すなわち、信号を1/2で乗算すること)を意味する。
図2に示すようなスケーリングにより、実際に遭遇する可能性のあるほとんどの入力信号のオーバーフローを回避することができ、その理由として、単一段階におけるビット増大は1ビットを超過し得るが、これは十分稀であり、例えば、ビット増大は、指数回転係数による乗算が入力指数を「回転」させる、いくつかの複素指数入力信号の段階当たり1ビット超過し得、これによりその実数または虚数要素をsqrt(2)の係数だけ増加することができ、次いで加算するとほぼ倍になる。ほとんどの潜在的な入力信号のオーバーフローを避けることが望ましいが、コストがかかり、平均増大は、平均入力信号に対してradix−2段階当たりわずか0.5ビットであるため、この種のスケーリングは、分解能のいくつかのビットを不必要に失う。図2に示される6段階の場合においては、3ビット(すなわち、段階当たり6段階×0.5ビット)の分解能が不必要に失われ、固定小数点FFTの商業的実現可能性に影響を及ぼし得る。
FFT出力のスケーリング:例#2(「高」ゲイン)
様々な用途において、あまり積極的でないスケーリング技術、すなわち、上記の例1に記載されたものよりも、平均入力に対して多くのビットを失わない技術が適切であり得る。2015年10月5日に出願され、参照によりその全体が本明細書に組み込まれる、係属中の米国特許出願第14/875,281号「Scaling Fixed−Point Fast Fourier Transforms in Radar and Sonar Applications」(特許文献1)に記載されている、そのようなスケーリングの1つは、例えば、純粋な複素指数入力信号に対するFFTアルゴリズムの連続するバタフライ段階の対の増大係数の逆数の2倍に等しいスケーリング係数によって、固定小数点FFTの連続するバタフライ段階の各対の出力を乗算するが、オーバーフローを防止しようとして任意のさらなるアクションを行わないことによるスケーリングを含み得る。換言すれば、図3に示されるように、2つのradix−2段階ごとに出力が2だけスケールダウンされ(すなわち、出力が事実上1/2で乗算される)、2つのradix−2段階ごとに1ビットまたは各radix−2段階ごとに0.5ビットだけスケーリングすることになる。radix−4段階が使用される場合、そのようなスケーリングは、各radix−4段階の出力が2だけスケールダウンされることを伴い(図示せず)、これは事実上2つのradix−2段階ごとに2だけスケールダウンするのと同様である。
このようなスケーリングは、上述したように、このような入力信号がradix−2段階の対ごとの2の係数によって(またはradix−4段階ごとの2の係数によって)増大するため、実質的に不規則な入力信号に適し得る。例えば、直交周波数分割多重(OFDM)のようなマルチキャリアシステムにおいてデータを符号化するために使用される広帯域信号は、そのような極めて不規則な信号と考えられてよく、このスケーリングはそのような信号に使用されてもよい。
同時係属中の米国特許出願第14/875,281号に記載されているように、このようなスケーリングはまた、コアクリーン信号が広帯域雑音によって劣化し得る複素指数または正弦波であり、例えば、レーダーおよびソナー用途の場合、要求される精度が雑音の増加とともに増大する実装において使用されてもよい。同時係属中の米国特許出願第14/875,281号に記載されているように、このような実装では、スケーリングの他に、入力信号は、オーバーフローが発生した場合に、信号を「循環」させるのではなく、その最大または最小レベルにおいて飽和させる限り、飽和によってオーバーフローが可能となり得る。軽度の飽和は、信号にいくらかの雑音を追加することと等価であり、一方、完全循環は、可能な最大値で信号を劣化させる。
レーダー/ソナー受信機のデータ処理システムのFFTアルゴリズムに提供される不規則な入力信号は、(コア信号がベースバンドでなければならないため)受信信号が非常に雑音が多いことを暗に意味する。radix−2 FFTにおいて、極めて不規則な入力信号は、段階ごとにsqrt(2)の係数で増大する。したがって、信号は、2つのradix−2段階ごとに、2(すなわちsqrt(2)×sqrt(2))の係数で増大する。そのような増大では、2つのradix−2段階ごとに2の係数で信号をスケーリングしても、そのようなスケーリングが増大に対する十分な補償を提供するため、典型的にはオーバーフローをもたらさない。前述のように、オーバーフローによって、計算結果が正しく表されないことになり、これは受信信号を劣化させる。オーバーフローを有さないことは、受信信号が、オーバーフローによる雑音の付与によってさらに劣化しないことを意味し、したがって、段階ごとにスケーリングする保守的で低ゲインの従来のアプローチと比較してSNRを増加させるが、これは、極めて不規則な信号の処理の成功にまさに必要とされていることである。
レーダー/ソナー受信機のFFTアルゴリズムに提供される純粋な複素指数入力信号(すなわち、単一周波数を含む信号)は、受信信号が非常にクリーンで雑音がないことを暗に意味する。radix−2 FFTにおいて、純粋な複素指数入力信号は、radix−2段階ごとに2の係数で増大する。したがって、信号は、2つのradix−2段階ごとに、4(すなわち2×2)の係数で増大する。そのような増大では、2つのradix−2段階ごとに2の係数で信号をスケーリングすると、2つのradix−2段階ごとに4の増大を補償しないため、飽和によるオーバーフローをもたらす可能性があり、雑音を増加させ、SNRを低下させる。しかしながら、そのような低下したSNRは、特定の用途において依然として許容可能であり得る。例えば、ピークの存在および位置のみが特定される必要があり、正確な大きさは特定されないレーダー/ソナー受信機では、受信反射信号はそもそも非常にクリーンで雑音がないため、FFT出力のピークを特定するために高いSNRが要求されない。
純粋な複素指数波形と極めて不規則な信号との間のいずれかにある入力信号は、受信信号があまりクリーンで無雑音ではないが、広帯域雑音により劣化することを暗に意味する。そのような信号が不規則信号に近いほど、雑音がより多い。radix−2 FFTにおいて、そのような入力信号は、radix−2段階ごとにsqrt(2)から2の間の係数で増大する。したがって、信号は、2つのradix−2段階ごとに、2から4の間の係数で増大する。上に要約した高ゲインスケーリングは、飽和によるオーバーフローによるノイズの量と入力信号のクリーン度との間のバランスを達成することを目的とし、次いで後者は受信機によってそのような受信信号をうまく処理するために必要なSNRを決定する。
−純粋に複素指数的ではないが、比較的微量の雑音を含む受信信号(すなわち、不規則信号の比較的小さい寄与を有するのみである信号)は、radix−2段階あたり、sqrt(2)よりも2に近い増大係数を有し、したがって、飽和によってオーバーフローしてより多くの雑音が付与される結果となり得る(すなわちSNRの減少)が、そのような信号はそもそも比較的クリーンであり、したがってうまく処理されるために高いSNRを必要としないため、これは許容され得る。
−純粋に不規則ではないが、比較的大きな雑音成分を含む受信信号(すなわち、不規則信号の比較的大きな寄与を有する信号)は、radix−2段階あたり、2よりもsqrt(2)に近い増大係数を有し、したがって、飽和によってオーバーフローする可能性が低く、より少ない雑音が付与される結果となり得る(すなわちSNRの増加)が、そのような信号はうまく処理されるために増加したSNRを必要とするため、これは有利である。
radix−4 FFTアルゴリズムにおいて、各radix−4段階における増大は、純粋な複素指数入力信号の場合4の係数であり、不規則入力信号の場合2の係数である。したがって、radix−4 FFTにおける対応するスケーリングは、上述のradix−2に対するものよりも2倍大きいスケーリングである。
スケールダウンは、FFTアルゴリズムの全体的なゲイン、すなわちFFTへの入力が増大する係数を低下させるため、特定のスケーリングが大きいほど、そのようなスケーリングを使用するFFTアルゴリズムのゲインは低くなる。したがって、図2に示されるようなFFTは、図3に示されるFFTと比較した場合、「低ゲイン」FFT(より大きなスケーリング)であると見なされてもよく、これは次いで「高ゲイン」FFTとみなされる。
高ゲインに対する低ゲインFFT
上述したように、高ゲインを有するFFT及び低ゲインを有するFFTはそれぞれ、長所と短所を有する。低ゲインFFTは、段階の増大を十分に補償する(すなわち、飽和を回避する)が、分解能のビットを失うことを犠牲にしている。高ゲインFFTは、場合によっては分解能のビットを節約することができるが、他の場合には段階の増大を十分に補償せず、飽和に至ることがある。大きさが制限されるようにFFTへの入力信号を調整することによって飽和を回避しようとすることは可能であるが、FFTが動作可能な入力信号のダイナミックレンジを減少させ、ダイナミックレンジが制限されたFFTをもたらす。
FFT再構成:ハイダイナミックレンジのFFT計算
本開示の実施形態は、固定小数点FFTを生成するために、本明細書ではFFT再構成技術と呼ばれる改良された技術を提供する。本技術は、出力の増大を制限するために異なる量のスケーリングを適用する2つ以上の固定小数点FFTアルゴリズムに入力信号を提供することを含み、結果としてFFTアルゴリズムのそれぞれが異なるゲインによって特徴付けられるFFT出力値のアレイを生成する。本技術はさらに、FFT出力値ごとに(すなわち、FFT_output_valueごとに)、相対的に高いゲインを有するFFTアルゴリズムの出力値が飽和によりクリッピングされたかどうかを判定することを含む。そうでなければ、そのFFTアルゴリズムの出力値(すなわち、比較的高いゲインを有するFFTアルゴリズム)が最終FFTに含まれる。あるいは、低ゲインを有するFFTアルゴリズムの出力値が最終FFTに含まれ、その値は最終FFTの他のアレイ要素に含まれる値と一致するように適切にスケーリングされる。異なるゲインを有する少なくとも2つのFFTアルゴリズムのFFT値を組み合わせることによって最終FFTを再構成することにより、それらの欠点を回避または最小限に抑えつつ、高ゲインおよび低ゲインFFTの両方の利点を得ることが可能になる。
図4は、本開示の一実施形態による、異なるゲイン値を有する2つのFFTアルゴリズムに基づいて、入力信号402の再構成FFT出力462を生成するためのFFT再構成方法400の概略図を提供する。少なくともプロセッサおよびメモリを含む任意のデータ処理システムは、本明細書で説明する他の実施形態の方法400または処理を実装するように構成され得る。例示的なデータ処理システムを図12に示す。
図4に示されるように、方法400は、入力信号402が第1のFFTアルゴリズム410および第2のFFTアルゴリズム420に提供されることから開始され得る。第1および第2のFFTアルゴリズムは、あるものが別のものより高いゲインを有するようなものである。図4の例は、第1のFFTアルゴリズム410が、第2のアルゴリズム410のゲインLよりも高いゲインKを有することを示し、これは、適切に表される(すなわち、飽和により最大値にクリッピングされない)ように、第1のFFTアルゴリズムのFFT出力は、第2のFFTアルゴリズムのFFT出力より多くのビットを必要し得ることを意味する。換言すれば、第2のFFTアルゴリズム420は、第1のアルゴリズムFFT410よりも積極的なスケーリングを適用するものである。いくつかの実施形態では、第1のFFTアルゴリズム410は、上述の例#2の「高」ゲインアルゴリズムであり得、一方で第2のFFTアルゴリズム420は、上述の例#1の「低」ゲインアルゴリズムであり得る。しかしながら、一般的に、FFTアルゴリズム410および420は、それぞれ、高ゲインおよび低ゲインによって特徴づけられた出力の増大を制限するために適用される任意の固定小数点FFTアルゴリズムおよび任意のスケーリング方法を含み得る。
いくつかの実施形態では、第1および第2のFFTアルゴリズムは、同じ数およびタイプの段階を含み得る。例えば、両方とも6つのradix−2バタフライ段階を含み得、第1および第2のFFTアルゴリズムは、それらの段階のうちの1つ以上に適用されるスケーリングのタイプが異なっている。しかし、他の実施形態では、第1および第2のFFTアルゴリズムは、それぞれのゲインKおよびLによって依然として特徴付けられ、比較可能な出力を生成する限り、それらのそれぞれで使用される段階の数および/またはタイプが異なっていてもよい。例えば、1つのFFTアルゴリズムは6つの段階を含み得、別のものは8つの段階を含み得、および/または1つのFFTアルゴリズムはradix−2段階を含み、別のFFTアルゴリズムはradix−4段階を含み得る。
第1および第2のFFTアルゴリズムは、スケーリングが最初に適用される段階でも異なることがある。一般に、第1および第2のFFTアルゴリズムは、期待される入力信号について、飽和が可能な第1の段階の後にスケーリングが適用されるように構成され得る。
いくつかの実施形態では、ゲイン係数KおよびLのそれぞれは、入力ヘッドルームに基づいて選択され得る、すなわち、第1のFFTアルゴリズムおよび第2のFFTアルゴリズムのそれぞれの出力を表すために提供されるビット数と、入力信号を表すために使用されるビット数との差である。例えば、例えば第1および第2のFFTアルゴリズムに先行して入力信号を提供するアナログデジタル変換器(ADC)(図示せず)が12ビットADCであるため、入力信号を表すために使用されるビット数は12であることを考察する。さらに、第1および第2のFFTアルゴリズムの両方が16ビットアルゴリズムであること、すなわち、それらが16ビット固定小数点表現を使用して出力を表し得ることを考察する。そのような場合、入力ヘッドルームは、各FFTアルゴリズムごとに4ビットであり、アルゴリズムは、入力ヘッドルームに対するそれらのゲインKおよびLの特定の関係をもたらすスケーリングを適用するように設計されてもよい。例えば、第1のFFTアルゴリズム410は、入力ヘッドルームのゲインKがNの平方根に対する比に等しい結果になるようなスケーリングを適用してもよく、第2のFFTアルゴリズム420は、ゲインKが入力ヘッドルームのNに対する比に等しい結果になるようなスケーリングを適用してもよく、ここで、NはアルゴリズムのそれぞれのFFT出力における要素の数である。
いくつかの実施形態では、第1および第2のFFTアルゴリズムのそれぞれは、入力信号402のデータサンプルの行にそれぞれの水平窓FFTアルゴリズムを適用することと、続いて水平窓FFTアルゴリズムの出力にそれぞれ垂直窓FFTアルゴリズムを適用することとを含み得る。
一般に、第1および第2のFFTアルゴリズムのそれぞれを入力信号のIサンプルに適用すると、インデックスnでインデックス付けされたN個の値を含むそれぞれのFFT出力が生成され、例えば、nは範囲[1:N]における整数であり得、ただし、FFT出力が多次元アレイまたはテンソル値として表される場合の多次元インデックス付けを含む、任意のタイプのインデックス付けが使用され得る。FFTを計算するために使用される入力信号のサンプル数Iは、FFT出力における値の数Nと等しくてもよいが、必ずしも等しい必要はない。
図4にN個の第1のFFT値Output1[n]412として示される、N個の第1のFFTの出力値(すなわち、入力信号402に第1のFFTアルゴリズム410を適用した結果)、および図4にN個の第2のFFT値Output2[n]422として示される、N個の第2のFFTの出力値(すなわち、入力信号402に第2のFFTアルゴリズム420を適用した結果)が、値ごとの処理ブロック460に提供される。
値ごとの処理460は、FFT出力値ごとに(すなわち、全てのN個の異なるインデックスに対して行われる特定のインデックスnでインデックス付けされた各出力値に対して)、飽和のためにクリッピングされなかった最高ゲインFFT出力の値を比較して選択することによって、最終FFT出力462を構成するように構成される。この目的のために、値ごとの処理460は、インデックスnの特定の値に対して、第1のFFT412のそのインデックスnによってインデックス付けされたFFT出力値と、第2のFFT422のそのインデックスnによってインデックス付けされたFFT出力値とが比較されて、それらの関係が、高ゲインFFTアルゴリズムのFFT出力値がいずれかの段階でクリッピングされなかったことを示す特定の所定の条件を満たすかどうかを判定する、比較および選択430を含む。そのような判定を行うための様々な方法が、次のセクション「クリッピングの検出」に記載される。
肯定判定の場合、すなわち、第1のFFT出力値Output1[n]がクリッピングされていないと判定された場合、その値は、図4にボックス440で示されるように、インデックスnでインデックス付けされた最終FFT内の位置で最終FFT出力462に加算される。否定判定の場合、すなわち、第1のFFT出力値Output1[n]がクリッピングされていると判定された場合、第2のFFT出力値Output2[n]の値に基づいて計算された値が、図4にボックス450で示されるように、インデックスnでインデックス付けされた最終FFT内の位置で最終FFT出力462に加算される。N個の第1および第2のアルゴリズム410および420のFFT出力の値のそれぞれについて値ごとの処理460を実行することによって、最終FFT出力462の値を保持するN個の位置が設定される。
典型的には、第1および第2のFFTアルゴリズムを実装するデータ処理システムは、第1のFFT値Output1[n]のうちの少なくともいくつか、好ましくは大部分が、第1のFFTアルゴリズム410のいずれの段階でもクリッピングされないように設計され、この場合、これらのFFT値は最終FFT出力462に加算される。これらのうちのいくつかがクリッピングされる場合、第2のFFT422の対応する値は、最終FFT出力462の他の値に相当するようにスケーリングされる必要がある。第1のFFTアルゴリズム410のゲインがKであり、第2のFFTアルゴリズム420のゲインがLであり、インデックスnでインデックス付けされた第2のFFT422の出力値がクリッピングされていない(すなわち、Output2[n]がクリッピングされていない)場合、図4にボックス450で示されるように、第1のFFT412の対応する出力値Output1[n]は、値Output2 [n]にK/Lを乗算することによって計算され得る。そのような値は、次いで、第1のFFT値Output1[n]がクリッピングされた場合に、インデックスnでインデックス付けされたFFT要素として、最終FFT出力462に加算され得る。
本明細書で提供される議論に基づいて、当業者は、図4に提供された説明を、異なるゲインを有する3つ以上のFFTアルゴリズムが使用される実装に容易に拡張することができ、これらの全ては本開示の範囲内である。そのような実装は、最終FFT出力の最高ダイナミックレンジを達成する際に、より多くの柔軟性を可能にし得る。例えば、3つのFFTアルゴリズムを有するシナリオの場合、最高ゲインFFTアルゴリズムの出力値[n]を、他のFFTアルゴリズムからの同じインデックスの1つ以上の出力値と比較し、それがクリッピングされるかどうかを判定する。そうであれば、値がクリッピングされていないと判定されるまで、次の最高ゲインFFTアルゴリズムの出力値[n]について同様の判定が行われ、以下同様である。次いで、最終FFT出力は、クリッピングされなかった最高ゲインFFTアルゴリズムのうちの1つ以上の出力値を取ることによって、クリッピングされず、再構成において出力値が使用された異なるFFTアルゴリズムのゲインの差を説明するために適切にスケーリングされた、次に高いゲインFFTアルゴリズムからの対応する出力値に基づいて残りの値を計算することによって、構成される。
例えば、図4の方法400に類似したFFT再構成方法では、G1>G2>G3である(すなわち、第1のFFTアルゴリズムが最高ゲインG1を有し、第3のFFTアルゴリズムが最低ゲインG2を有する)、ゲインG1、G2およびG3を有する3つのFFTアルゴリズムが実装されると考える。次いで、例えば、インデックスn=1の場合、第1のアルゴリズムのインデックス[1]であるFFT出力値Output1[1]は、飽和によってクリッピングされると判定され、第2のアルゴリズムのインデックス[1]を有するFFT出力値Output2[1]であると考える。システムは、第3のアルゴリズムの対応するFFT出力値Output3[1]がクリッピングされないように設計されていると仮定され得る。この場合、この値は最終FFT出力のインデックス[1]の出力値を計算するために使用される。しかし、まず、3つのFFTアルゴリズムのうち、最高ゲインを有するものがどれであり、その結果、1つ以上のFFT出力値がクリッピングされなかったと判定する必要がある。例えば、インデックスn=2の場合、第1のアルゴリズムのインデックス[2]を有するFFT出力値Output1[2]がクリッピングされないと判定されると考える。これは、このFFTアルゴリズムの値が最終FFT出力の対応する値、すなわち最終FFT出力Output[2]=Output1[2]の値として使用されることを意味する。これはまた、最終FFT出力に配置される全ての他の値が、ゲインG1との差を考慮に入れてスケーリングされる必要があることを意味する。インデックスn=1の例を続けると、これは、最終FFT出力Output[1]の値が、第3のFFTアルゴリズムの対応するFFT値(クリッピングしなかった最高ゲインのもの)Output3[1]に基づいて、Output[1]=G1/G3*Output3[1]として計算され得ることを意味する。別の例を考えると、例えば、第1のアルゴリズムのインデックス[3]を有するFFT出力値Output1[3]がクリッピングされると判定され得るが、第2のアルゴリズムのインデックス[3]を有するFFT出力値Output2[3]はクリッピングされると判定されない、インデックスn=3の場合、第3のアルゴリズムの対応するFFT値Output[3]はOutput[3]=G1/G2*Output2[3]として判定され得、以下同様である。
異なるゲインを特徴とする複数のFFTアルゴリズムへの入力信号を提供することにより、特定のゲインおよび特定のダイナミックレンジを有する単一のFFTアルゴリズムのみが使用される場合に可能となる再構成FFT出力を計算する、より高いダイナミックレンジを達成することができる。換言すれば、本明細書に記載されているようにFFT出力を再構成するために特定のダイナミックレンジを有する2つ以上のFFTアルゴリズムを使用すると、最終FFT出力のダイナミックレンジが効果的に増加する。
次に、値ごとの処理ブロック460の間に、FFTアルゴリズムの1つのうちの1つのFFT出力の特定の値[n]がクリッピングされた値であるかどうかを検出するための様々な方法がある。
クリッピングの検出
最も簡単な実装では、上述の方法は、最高ゲインFFTアルゴリズムの出力の値[n]を特定の閾値と単純に比較することによって演算するように修正され得るが、そのFFTアルゴリズムの出力値[n]がクリッピングされる可能性が高いかどうかを判定するために、そのインデックスnのために特別に選択される必要はない。そのような実装は計算上簡単であるが、これは、FFT出力がFFTアルゴリズムの中間段階のうちの1つで飽和した場合、飽和結果が複数の出力点に影響を及ぼすことがあり、それらのどれもが大きいわけでなければ、クリッピングが発生していないという指示を誤って提供するという欠点を有し得る。
したがって、好ましい実施形態では、クリッピングの検出は、1つ以上の他のFFTアルゴリズムの対応する出力値との比較に基づいている。上述したような改善されたFFT計算方法で使用される複数のFFTアルゴリズムのうちの少なくとも1つのFFTアルゴリズムの出力の値[n]がクリッピングされていないと仮定することは、うまく設計されたFFTデータ処理システムにとって合理的な仮定であり、1つ以上の他の高ゲインFFTアルゴリズムの対応する出力値[n]をその値と比較して、それらがクリッピングされているかどうかを判定し得る。比較は、高ゲインFFTアルゴリズムの全ての非飽和点の出力値、例えばゲインKが、K/L×クリッピングされなかったゲインLを有する低ゲインFFTアルゴリズムの対応する点の値、に等しいかまたは合理的に近くなければならないという認識に基づく多くの方法で実装され得る。そのような比較を実行する例示的な実施形態のいくつかを以下に説明する。この説明に基づいて、当業者は他の比較手法を想起することができ、その全ては本開示の範囲内である。
図4に示されるように2つのFFTアルゴリズムが実装された例を続けると、一実施形態では、第1の値Output1[n](すなわち、高ゲインFFTアルゴリズムのインデックス[n]の出力)と第2の値Output2[n]との比較は、クリッピングされていない第1の値Output1[n]が、第2の値Output2[n]にK/Lを乗算することと、乗算の結果から第1の値Output1[n]を減算することと、次いで減算の結果が少なくともゼロの値を含む所定の範囲内にあるかどうかを判定するために結果を評価することと、を含み得ることを示す条件を満たす。様々な実施形態では、この場合の所定の範囲は、例えば、負の値と正の値との絶対値が異なる特定の負の値から特定の正の値まで、ゼロを中心とする特定の範囲の値であり得、ゼロの1つの値を含むのみであり得、またはゼロを中心としない値の範囲であり得る。好ましくは、範囲は、第1の値Output1[n](すなわち、高ゲインFFTアルゴリズムのインデックス[n]の出力)が、その値が実際にはクリッピングされていないときにクリッピングされるという誤った結論の可能性を減らすような方法で定義される。
例えば、(Output1[n]−K/L*Output2[n])の絶対値がある特定の閾値T1と比較される(すなわち、範囲が[−T1〜T1]である)ことを考察する。第1のFFTアルゴリズム410が飽和しなかった場合であっても、範囲が「狭すぎる」(すなわち、T1が小さすぎる)ことによって、第2のFFTアルゴリズム420が選択され、本明細書で説明される改良された方法の値が否定される結果となり得る。範囲をあまりにも「広い」(すなわち、T1が大きすぎる)ようにすることは、飽和していたとしても第1のFFTアルゴリズム410を選択する結果となり得る。一般に、範囲は、第2の(すなわち、低ゲインの)FFTアルゴリズムの最悪の場合の精度よりも低くすべきではなく、FFTアルゴリズムの「精度」とは、特定の固定小数点FFTアルゴリズムの出力と無限精度の理想的な計算との比較を指す。例えば、閾値はこの精度の2倍、例えば2*sqrt(N)/(入力ヘッドルーム)として選択され得る。したがって、一実施形態では、比較は、abs(Output1[n]−(K/L)*Output2[n])<2*sqrt(N)/(Input Headroom)とすることができる。
上記のような乗算および減算テストは、効果的に、多くの方法で実行され得、その全てが本開示の範囲内にある。例えば、((K/L)*Output2[n]−Output1[n])を計算し、その結果を少なくともゼロの値を含むある特定の第1の範囲と比較することによって、上記のように正確に実行され得る。代替として、(Output1[n]−(K/L)*Output2[n])を計算し、その結果を、その範囲が第1の範囲と異なり得る、少なくとも0の値を含むある特定の第2の範囲と比較することによって実行されてもよく、またはこれらの減算のいずれかの絶対値を計算し、その結果をある特定の閾値と比較することによって実行されてもよい。
FFTゲインKおよびLは、通常2の累乗で表され得、すなわちK/Lは2に等しく、Mは整数であることに留意されたい。そのような場合、K/Lによる乗算は、固定値シフタ(これは、ハードウェアで実装され得、対応するソフトウェア論理を有する必要性を排除することができる)で実装されて、Mビットの左シフトを第2の値Output2[n]に適用することができる。
別の実施形態では、再び図4に示されるように2つのFFTアルゴリズムが実装されている例に続けて、第1の値Output1[n](すなわち、高ゲインFFTアルゴリズムのインデックス[n]の出力)と第2の値Output2[n]との比較は、第1の値Output1[n]がクリッピングされていないことを示し、第1のOutput1[n]を第2の値Output2[n]で除算し、除算の結果が少なくともK/Lの値を含む所定の範囲内にあるかどうかを判定する、条件を満たす。当業者は、上記に提供された範囲に関する考察に基づいて、この場合に適切な範囲を選択するための考察を得ることができるであろう。
比較を実行するさらに他の実施形態は、データ処理システムがデカルト領域から対数領域に値を変換することができる1つ以上の対数回路と、場合によっては逆変換可能な1つ以上の指数回路を含む場合に使用され得る。この実施形態は、例えば、0と1との間の数を表すときのものより大きいダイナミックレンジを目的として使用され得る、例えばlog2およびexp2命令を用いて、対数および指数を計算するための命令で構成されているいくつかのプロセッサの認識に基づいている。対数および指数を計算するためのプロセッサ命令は、以下ではそれぞれ「log回路」および「exp回路」と呼ばれる。この実施形態はさらに、既存のlogおよびexp回路の使用が、既存のlogおよびexp回路を使用してデカルト座標から対数領域への変換およびその逆の変換を行うことによって、対数領域での関数の実際の計算を実行することによって(そうすることによってデカルト領域での計算を実行することよりも計算が簡単になり得るため)、ある特定の他の関数を計算するために拡張され得るという考察に基づいている。例えば、以下の方程式によって示されるように、このようなアプローチは、デカルト領域における乗算および除算が対数領域における単純な加算および減算に変換されるため、プロセッサが乗算または除算命令を有していない場合に、除算および乗算のような関数に有用であり得る。
Figure 0006723368
このアプローチによれば、一実施形態では、第1の値Output1[n]と第2の値Output2[n]との比較が条件を満たすかどうかを判定することは、第1の値Output1[n]の対数を計算することと、第2の値Output2[n]の対数を計算することと、第1の値Output1[n]の対数から第2の値Output2[n]の対数を減算することと、減算の結果が少なくとも、あらかじめ計算されて参照のために記憶され得るlog(K/L)の値を含む所定の範囲内にあるかどうかを判定することと、を含み得る。このような実施形態では、比較はlog領域で実行される。しかしながら、他の実施形態では、比較は、まず、減算の結果の指数を計算し、次いで、指数が少なくともK/Lの値を含む所定の対応する範囲内にあるかどうかを判定することによって、デカルト領域で実行され得る。これらの実施形態の全てにおいて、改めて、当業者は、上記に提供された範囲に関する考察に基づいて、この場合に適切な範囲を選択するための考察を導くことができるであろう。
シミュレーション結果
図5〜図10は、+32,767または−32,768の値で飽和するように構成された例示的な符号付き固定小数点16ビット整数FFTのシミュレーション結果を提供する。次の「32K」と呼ばれる32,767の値は、この例の固定小数点FFT実装で表され得る最大値であり、これは、符号付き16ビット整数(32,767=215−1)の最大の可能な値であるためである。換言すれば、循環ではなく飽和した16ビット整数は、32,767=0x7FFFでの正の飽和、および−32,768=0x8000での負の飽和を暗に意味する。
図5は、いくつかの雑音を含む例示的な入力信号の実数部および虚数部を示すプロット500を示す。図5では、曲線502は、そのような雑音の多い複素入力波形の実数部を表し、曲線504は、虚数部を表す。
図5に示されるように、波形の振幅は約14K、すなわちFFTの全符号付き16ビットダイナミックレンジのほぼ半分である。ちょうど16ビットで行われ、radix−2段階ごとに0.5ビットのスケーリングを使用すると、FFTアルゴリズムが大幅に飽和する。図6は、図4のような入力波形の256点FFTのシミュレーション結果を示し、FFTピーク602を有する曲線として示されるように、FFTピーク604を用いて、理想のFFTモデル(すなわち、同じ入力波形についてFFTを計算した結果であるが、飽和のためのクリッピングがない場合の結果)に重ね合わされた、radix−2段階ごとについて0.5ビットによるスケーリングを実装するプロット600を示す。このシミュレーションでは、ビットの増大に起因する精度の損失を確実に防ぐために、理想的なモデルが16ビットの回転であるが、FFTの数値による32ビットのデータを維持しながら計算された。
図5に示されるような高レベル入力であっても、FFTアルゴリズムを適用したFFT結果は、ピーク602がはっきりと識別可能である点で適切であることに留意されたい。しかしながら、ピーク602が理想的なFFTのピーク604よりも顕著に小さいことが示されているように、顕著なクリッピングが基本ビンで発生し、このことは、ピーク602を有するノンアイディアFFTが最大値32Kで飽和したためであることが理解できる。いくらかのクリッピングはまた、他のビンでも発生したが、それは図6ではそれほど顕著ではない。対照的に、図7は、本開示の一実施形態に従って計算された再構成FFT出力を示すプロット700を示し、高ゲインおよび低ゲインのFFTが使用された(低ゲインの場合は上記の例#1、高ゲインの場合は上記の例#2)、また図5の入力波形の理想的なFFTモデルに重ね合わされた。この場合、顕著な不一致は全く観察されず、本開示の一実施形態に従って計算されたFFT出力のプロットは、ピーク702を有する単一のプロットとして示されるアイデアFFTのプロットと実質的に同じように見える。
図8は、図5と同じ入力信号を示しているが、振幅が倍になっている。図8の入力信号は、ほぼ利用可能な全ダイナミックレンジにあることに留意されたい。図8では、曲線802は、そのような雑音の多い複素入力波形の実数部を表し、曲線804は、虚数部を表す。
図9は、本開示のいくつかの実施形態による、図8に示すような入力波形の256点FFTのシミュレーション結果を示し、FFTピーク904を有する曲線として示される、同じ入力波形に対する理想的な32ビットFFTモデルの結果に重ね合わされた、FFTピーク902を有する曲線として示される、radix−2段階ごとの0.5ビットによるスケーリングを実装するプロットを示す。ピーク902とピーク904との間にははっきりと顕著な不一致が存在し、最も重要なことには、基本ビンのピーク(すなわちピーク902)でさえもはや、図9に示される低振幅のピークの残りの部分から明確に区別することができない。
対照的に、図10は、図7のものと同様のプロットを示すが、図8の入力信号を有する。したがって、図10は、高ゲインおよび低ゲインのFFTが使用された(低ゲインの場合は上述の例#1、高ゲインの場合は上述の例#2)、本開示の実施形態に従って計算され、また図8の入力波形の理想的なFFTモデルに重ね合わされた、再構成FFT出力を示すプロット1000を示す。図7の場合と同様に、図10のこの場合、顕著な不一致は全く観察されないが、本開示の一実施形態に従って計算されたFFT出力のプロットは、ピーク1002を有する単一のプロットとして示されるように、アイデアFFTのプロットと実質的に同じように見える。
理想的なFFTモデル(16ビット回転、32ビットデータ)の計算には、本明細書で提案されたFFT再構成方法による再構成FFT出力の計算よりもかなり多くの数学演算が必要であることに留意すべきである。16ビット回転を乗算するたびに、32ビットデータは2つの16ビット乗算を必要とし、FFT段階ごとにシフトと加算を行うが、本明細書において提案されている改良されたFFT計算は、各点につき1回、最後のみその再構成を実行する。レーダー/ソナー用途のいくつかの実施形態では、本明細書に記載のようなFFT出力再構成を適用する前に、全範囲FFTを行い、次に全ての速度FFTを行い、その後に大きさを行うことさえ可能である。
位相のみのFFT
上に提供された説明は、FFTアルゴリズムによって計算される入力信号の異なる周波数成分の大きさを表す複素数値および/または実数値が分析されるFFTアルゴリズムに、すなわち、大きさを表す複素数値または実数値のいずれかを含むFFTに適用可能である。FFTの計算を必要とするシステムの大部分は、そのようなFFTアルゴリズムを使用する。しかしながら、いくつかのシステムは、入力信号の様々な周波数成分の位相のみを使用して、環境について結論付ける。例えば、いくつかの音源位置同定システム、すなわち、対象となる音源の空間的位置に関して結論付けようとするシステムは、FFTの大きさまたは複雑な値を有する必要がないアルゴリズムを使用するが、位相を使用するだけで音源の位置を判定する。このようなアルゴリズムは、「位相変換」、「PHAT」または「PHAT重み付け」アルゴリズムと呼ばれることがある。さらに、いくつかの音源分離システム、すなわち、対象となる様々な音源の総音響環境に対する個々の寄与について結論付けようとするシステムではまた、いくつかのブラインド音源分離法に従って音源分離を実行するために位相情報のみを使用するアルゴリズム、例えば、時間−周波数ビンが局在化合図として位相を使用してどの源に属するかに従ってクラスタリングされるDUETアルゴリズム等を使用する。
上に提供された説明は、再構成技術をわずかに適合させることによって、位相のみのFFTに適用可能となり、スカラーによる複素数値のスケーリングが、スカラーが正であれば複素数の位相を変化させず、スカラーが負であれば位相を逆転させるという事実を説明し得る。これは、2つ以上のFFTアルゴリズムのFFT出力値が、アルゴリズムによって計算された複素値の位相を表す実数値である場合(a+ibとして表される複素値xについて、aは実数部であり、bは複素値xの虚数部であり、位相はb/aの逆正接、すなわち位相=逆正接(b/a)として計算され)、高ゲインFFTアルゴリズムの特定の出力値[n]がクリッピングされたかどうかについてのテストは、その出力値の位相を、クリッピングされていないと思われる低ゲインFFTアルゴリズムの出力値[n]の位相と単純に比較することである。位相が等しいか、またはそれらの差がある特定の所定の範囲内にあるようにほぼ等しい場合、これは高ゲインFFT値のクリッピングがなく、その値は最終FFT出力の値[n]として使用され得ることを示す。あるいは、低ゲインFFTアルゴリズムの値が最終FFTにおいて使用される(すなわち、これは、大きさを表す複素数値および実数値に関して上記で提供された説明に関する第2の差であり、高ゲインFFTのクリッピングが判定された場合、いくつかの例について上述したように、例えばゲインの差を説明するこの値をスケーリングすることなく、例えばK/Lによってスケーリングすることなく、最終FFTは低ゲインFFTの位相値を含むことになる)。
特定のFFT値[n]のクリッピングが発生したかどうかを判定するための適切な範囲を選択することに関して上記で提供されたものと同様の考察がここに当てはまり、したがって、簡潔にするために繰り返さない。
FFT再構成アルゴリズムを利用する例示的な方法
図11は、本明細書に記載のようなFFT再構成アルゴリズムを利用した方法の例示的なフロー図1100を示す。そのような方法は、例えば図12に示されるデータ処理システム1200等の、少なくともプロセッサおよびメモリを備える任意のデータ処理システムにより実行され得る。そのようなデータ処理システムは、レーダーまたはソナーシステム、特にレーダーまたはソナー受信機内に含まれても、またはそれらに通信可能に接続されてもよい。
方法1100は、まず、レーダーまたはソナー送信機が、対象となる1つ以上の物体により反射され、レーダーまたはソナー受信機により取得される信号を送信すると仮定する。そのような信号は、好ましくは、チャープ信号である。
方法1100は、データ処理システムがレーダー受信機のレーダーアンテナまたはソナー受信機のソナーセンサにより検出される信号を示す入力信号を得ることから開始し得る(図11のボックス1102)。検出された信号は、対象となる1つ以上の物体から反射された、レーダーまたはソナー送信機により送信された信号を含む。送信された信号は、チャープ信号であってもよく、この場合、検出される信号もまたチャープ信号を含む。様々な実施形態において、データ処理システムは、例えば、無線またはソナー受信機により取得された信号を受信および場合によっては前処理するように構成される、レーダーまたはソナー受信機のアナログフロントエンドから入力信号を受信し得る。いくつかの実施形態において、アナログフロントエンドは、(所望により)取得されたアナログ信号をデータ処理システムに提供された入力信号のデータサンプルに変換してもよい。
図11のボックス1104で示されるように、次いでデータ処理システムは、本明細書に記載のようなFFT再構成を適用してもよい。そのために、データ処理システムは、例えば、図4に関して上述されたようなステップを実行することができる。
いくつかの実施形態では、図4に関して上述された第1および第2のFFTアルゴリズムによるFFT計算は、データ矩形に対して水平(すなわち範囲)窓FFTを、続いて必須ではないが好ましくは垂直(速度)窓FFTを実行することを含むことができる。したがって、データ処理システムは、以下のステップのピーク特定の前に、水平FFTの結果に対して垂直FFTを実行してもよい。検出された物体の速度ではなく範囲のみが対象となる実装においては、データ処理システムは、水平FFTの出力に対してピーク特定を実行するように構成され得る。換言すれば、そのような実装において、データ処理システムは、入力信号に対して水平FFTを実行し、その結果を、周波数をインデックス付けする1次元アレイに配置するのみであり、それから、その物体に起因し得ると判定されたピークの周波数に基づいて物体までの距離が判定され得る。
データ処理システムがFFT再構成アルゴリズムの適用の出力を得ると、データ処理システムは、再構成FFT出力内に存在し得るゼロ以上のピークを特定するように構成される(図11のボックス1106)。本明細書において前述したように、ピークを特定するための手法は、当業者に知られており、ピークを特定するための既知の手段およびアルゴリズムのいずれも、本開示の範囲内である。
再構成FFT出力において特定されたピーク(複数を含む)に基づいて、データ処理システムは、場合によっては対象となる各物体に対して、例えばレーダー/ソナー受信機または送信機に対する物体までの距離の指示、物体の速度の指示、物体の移動方向の指示、および物体の位置の指示等のうちの1つ以上を判定し得る(図11のボックス1108)。そのために、本明細書に記載のように、データ処理システムは、物体の位置および移動に関する情報を判定するために、特定されたピークのxおよびy座標を判定する。レーダー受信機のFFT出力における特定されたピークに基づいて、物体までの距離、その位置、その移動方向および/またはその速度を判定するための様々な手法が、当該技術分野において知られており、本開示の範囲内である。
本明細書において前述したように、本明細書において提案されるFFT再構成方法は、レーダーおよびソナー用途に限定されない。結果として、図11に示されるものと同様の方法が想定され、本開示の範囲内であり、ボックス1102は、レーダーまたはソナーである必要がなく、例えば音響信号を受信したことに基づく入力信号等の、任意の他の対象となる受信された信号を示す入力信号を得ることを含むことができ、ボックス1108は、例えば、受信された音響信号からの雑音フィルタリングまたは音源分離(すなわち、受信された全音響信号からの個々の音源からの寄与の分離)等の、再構成FFT出力に基づいて対象となる他のパラメータを判定することを含むことができる。
例示的なデータ処理システム
図12は、本開示のいくつかの実施形態による、例示的なデータ処理システム1200を示すブロック図を示す。
図12に示されるように、データ処理システム1200は、システムバス1206を介してメモリ要素1204に結合された少なくとも1つのプロセッサ1202を含んでもよい。したがって、データ処理システムは、メモリ要素1204内にプログラムコードを記憶し得る。さらに、プロセッサ1202は、システムバス1206を介してメモリ要素1204からアクセスされ得るプログラムコードを実行し得る。一態様において、データ処理システムは、プログラムコードを記憶および/または実行するのに好適なコンピュータとして実装されてもよい。しかしながら、データ処理システム1200は、本開示内で説明された機能を実行することができるプロセッサおよびメモリを含む任意のシステムの形態で実装されてもよいことが理解されるべきである。
メモリ要素1204は、例えばローカルメモリ1208および1つ以上のバルク記憶デバイス1210等の1つ以上の物理メモリデバイスを含んでもよい。ローカルメモリは、プログラムコードの実際の実行中に一般に使用されるランダムアクセスメモリまたは他の非永続型メモリデバイス(複数を含む)を指し得る。バルク記憶デバイスは、ハードドライブまたは他の永続型データ記憶デバイスとして実装され得る。処理システム1200はまた、プログラムコードが実行中にバルク記憶デバイス1210から読み出されなければならない回数を低減するために、少なくともいくつかのプログラムコードの一時的記憶を提供する1つ以上のキャッシュメモリ(図示せず)を含んでもよい。
任意選択で、入力デバイス1212および出力デバイス1214として描かれる入力/出力(I/O)デバイスが、データ処理システムに結合され得る。入力デバイスの例は、キーボード、マウス等のポインティングデバイス等を含み得るが、これらに限定されない。出力デバイスの例は、モニタまたはディスプレイ、スピーカー等を含み得るが、これらに限定されない。入力および/または出力デバイスは、直接的に、または介在するI/Oコントローラを介してデータ処理システムに結合されてもよい。
一実施形態において、入力および出力デバイスは、組み合わされた入力/出力デバイス(図12において、入力デバイス1212および出力デバイス1214を囲む破線で示される)として実装されてもよい。そのような組み合わされたデバイスの例は、時折「タッチスクリーンディスプレイ」または単に「タッチスクリーン」とも呼ばれる、接触感知式ディスプレイである。そのような実施形態において、デバイスへの入力は、タッチスクリーンディスプレイ上またはその付近での、物理的な物体、例えばスタイラスまたはユーザの指等の動きにより提供され得る。
介在するプライベートまたは公衆ネットワークを介して他のシステム、コンピュータシステム、遠隔ネットワークデバイス、および/または遠隔記憶デバイスに結合されることを可能にするために、ネットワークアダプタ1216もまた任意選択でデータ処理システムに結合されてもよい。ネットワークアダプタは、前記システム、デバイスおよび/またはネットワークによりデータ処理システム1200に送信されたデータを受信するためのデータ受信機と、データ処理システム1200から前記システム、デバイスおよび/またはネットワークにデータを送信するためのデータ送信機とを備えてもよい。モデム、ケーブルモデム、およびイーサネット(登録商標)カードは、データ処理システム1200とともに使用され得る異なる種類のネットワークアダプタの例である。
図12において描かれているように、メモリ要素1204は、アプリケーション1218を記憶し得る。様々な実施形態において、アプリケーション1218は、ローカルメモリ1208内に、1つ以上のバルク記憶デバイス1210内に、またはローカルメモリおよびバルク記憶デバイスから離れて記憶されてもよい。データ処理システム1200は、アプリケーション1218の実行を容易化し得るオペレーティングシステム(図12には示されていない)をさらに実行し得ることが認識されるべきである。実行可能なプログラムコードの形態で実装されているアプリケーション1218は、データ処理システム1200により、例えばプロセッサ1202により実行され得る。アプリケーションの実行に応答して、データ処理システム1200は、本明細書に記載の1つ以上のFFT再構成演算または方法ステップを実行するように構成され得る。
FFT再構成を利用した例示的レーダーまたはソナーシステム
図13は、本開示のいくつかの実施形態による、FFT再構成方法を実装するように構成される例示的システム1300のシステム図を示す。いくつかの実施形態では、システム1300は、無線またはソナーシステムであってもよく、そのような実施形態では、システム1300は、物体から反射される信号を送信するための送信機1302を含み、これは、システム1300がレーダーシステムである場合にはレーダー送信機であり、システム1300がソナーシステムである場合にはソナー送信機である。
送信機1302は、チャープ信号生成器を含んでもよい。チャープ信号を生成するための様々な手段、例えばYIG発振器の使用、電圧調節発振器(VCO)を有するアナログ回路および線形もしくは指数関数的ランプ制御電圧の使用、またはデジタル信号プロセッサ(DSP)、デジタル−アナログ変換器(DAC)、およびダイレクトデジタルシンセサイザ(DDS)をデジタル的に使用し、数値制御発振器においてステップを変化させることによるデジタルでのチャープ信号の生成等が、当該技術分野において知られている。チャープ信号を生成するための手段および様式の全てが、本開示の範囲内である。
システム1300は、信号を検出するためのセンサ1304を、例えば、システム1300がレーダーシステムである場合は1つ以上の無線アンテナを、システム1300がソナーシステムである場合は1つ以上のソナーセンサをさらに含む。
システム1300はまた、FFT再構成方法を実行し、本明細書に記載のデータ処理機能の様々な態様を実装するための、少なくともプロセッサ1310およびメモリ1312を備えるデータ処理システム1308を含んでもよい。いくつかの実施形態において、データ処理システム1308は、図12に示すシステム1200として実装されてもよい。
いくつかの実施形態において、データ処理システム1308は、図11に示される方法1100、および本明細書に記載の他の処理特徴、例えば上述の「FFTの基本、ならびにレーダーおよびソナー用途におけるFFTの使用例」の項に記載の処理等を実行するように構成され得る。
任意選択で、受信機はまた、データ処理システム1308への入力信号として調整された信号を供給する前に、受信機1304により取得されたままの信号を調整するように構成された、信号調整器1306を含んでもよい。そのような調整は、例えばアナログ−デジタル変換、1つ以上の所定の基準に基づくフィルタリング(例えば、周波数の限定された帯域内の信号のみを処理するための帯域フィルタの適用)、増幅等のうちの1つ以上を含んでもよい。
本明細書に記載のようなFFT再構成の実装は、固定小数点FFTを使用したハイダイナミックレンジシステム1300の実装を可能にし、システムのコストおよび消費電力を有利に減少させる。
図13は、システム1300内に含まれるデータ処理システム1308を示しているが、他の実施形態において、データ処理システム1308は、システム1300の外部に実装されてもよく、この場合、データ処理システム1308は、任意の適切な通信チャネルを介してシステム1300を遠隔で制御するように構成され得る。換言すれば、図13に示されるようにシステム1300内に実装される代わりに、データ処理システム1308は、システム1300の外部にあり、システム1300に通信可能に結合されてもよい。
実施例
実施例1は、入力信号の高速フーリエ変換(FFT)を生成するためのコンピュータ実装方法を提供する。方法は、入力信号に第1の複数段階FFTアルゴリズムを適用して、インデックスnでインデックス付けされたN個の第1の値Output1[n]を含む第1のFFTを生成することであって、第1のFFTアルゴリズムが、第1のFFTアルゴリズムのゲインがKであるように、第1のFFTアルゴリズムの1つ以上の段階の出力をスケーリングするように構成される、生成することと、入力信号に第2の複数段階FFTアルゴリズムを適用して、インデックスnでインデックス付けされたN個の第2の値Output2[n]を含む第2のFFTを生成することであって、第2のFFTアルゴリズムが、第2のFFTアルゴリズムのゲインがLであるように、第2のFFTアルゴリズムの1つ以上の段階の出力をスケーリングするように構成され、LがKより小さい、生成することと、各インデックスnについて、第1の値Output1[n]と第2の値Output2[n]との比較が所定の条件を満たすかどうかを判定することと、肯定判定の場合(すなわち、第1のFFTの出力値[n]が飽和によってクリッピングされていないことが判定されたとき)、FFT値Output[n]として第1の値Output1[n]を含めること、および否定判定の場合(すなわち、第1のFFTの出力値[n]が飽和によってクリッピングされていると判定されたとき)、FFT値Output[n]として第2の値Output2[n]に基づく値を含めることと、によって、インデックスnでインデックス付けされたN個のFFT値Output[n]を含むFFTを生成することと、を含む。
実施例2は、FFT値Output[n]として第2の値Output2[n]に基づく値を含めることが、FFT値Output[n]として第2の値Output2[n]を乗算したK/Lの値を含めることを含む、実施例1に記載の方法を提供する。
実施例3は、第1の値Output1[n]と第2の値Output2[n]との比較が条件を満たすかどうかを判定することが、第2の値Output2[n]にK/Lを乗算することと、 乗算の結果から、第1の値Output1[n]を減算することと、減算の結果が少なくともゼロの値を含む所定の範囲内にあるかどうかを判定することと、を含む、実施例1または2に記載の方法を提供する。
実施例4は、K/Lが2に等しく、Mが整数であり、前記乗算がMビットの左シフトを前記第2の値Output2[n]に適用することを含む、実施例3に記載の方法を提供する。
実施例5は、第1の値Output1[n]と第2の値Output2[n]との比較が条件を満たすかどうかを判定することが、第1のOutput1[n]を第2の値Output2[n]で除算することと、除算結果が少なくともK/Lの値を含む所定の範囲内にあるかどうかを判定することと、を含む、実施例1または2に記載の方法を提供する。
実施例6は、第1の値Output1[n]と第2の値Output2[n]との比較が条件を満たすかどうかを判定することが、第1の値Output1[n]の対数を計算することと、第2の値Output2[n]の対数を計算することと、第1の値Output1[n]の対数から第2の値Output2[n]の対数を減算することと、減算の結果が少なくとも、log(K/L)の値を含む所定の範囲内にあるかどうかを判定することと、を含む、実施例1または2に記載の方法を提供する。
実施例7は、N個の第1の値Output1[n]、N個の第2の値Output2[n]、およびN個のFFT値Output[n]が、入力信号内に存在する1つ以上の周波数寄与のそれぞれの大きさを示す実数値を含む、実施例1〜6のいずれか1つに記載の方法を提供する。
実施例8は、N個の第1の値Output1[n]、N個の第2の値Output2[n]、およびN個のFFT値Output[n]は、入力信号内に存在する1つ以上の周波数寄与のそれぞれの大きさおよび位相を示す複素数値を含む、実施例1〜7のいずれか1つに記載の方法を提供する。
実施例9は、FFT値Output[n]として第2の値Output2[n]に基づく値を含めることが、FFT値Output[n]として第2の値Output2[n]を含めることを含む、実施例1に記載の方法を提供する。
実施例10は、第1の値Output1[n]と第2の値Output2[n]との比較が条件を満たすかどうかを判定することが、第1の値Output1[n]と第2の値Output2[n]との差が少なくともゼロの値を含む所定の範囲内にあるかどうかを判定することを含む、実施例9に記載の方法を提供する。
実施例11は、N個の第1の値Output1[n]、N個の第2の値Output2[n]、およびN個のFFT値Output[n]が、入力信号内に存在する1つ以上の周波数寄与のそれぞれの位相を示す実数値を含む、実施例9または10に記載の方法を提供する。
実施例12は、第1のFFTアルゴリズムが、2つ以上のバタフライ段階を含むFFTアルゴリズムであり、第1のFFTアルゴリズムの1つ以上の段階の出力をスケーリングすることが、複素指数入力信号に対する第1のFFTアルゴリズムのバタフライ段階の対に対する増大係数の逆数の2倍に等しいスケーリング係数によってバタフライ段階の全ての対の出力をスケーリングすることを含む、実施例1〜11のいずれか1つに記載の方法を提供する。
実施例13は、第1のFFTアルゴリズムが、radix−2アルゴリズムを含み、複素指数入力信号に対する第1のFFTアルゴリズムのバタフライ段階の対に対する増大係数の逆数の2倍に等しいスケーリング係数によってバタフライ段階の全ての対の出力をスケーリングすることが、1のスケーリング係数によって全ての対のうちの1つのバタフライ段階をスケーリングすることと、1/2のスケーリング係数によって連続するバタフライ段階の全ての対のうちの別のバタフライ段階をスケーリングすることと、を含む、実施例12に記載の方法を提供する。
実施例14は、第1のFFTアルゴリズムが、radix−4アルゴリズムを含み、複素指数入力信号に対するFFTアルゴリズムのバタフライ段階の対に対する増大係数の逆数の2倍に等しいスケーリング係数によってバタフライ段階の全ての対の出力をスケーリングすることが、1/2のスケーリング係数によって各バタフライ段階をスケーリングすることを含む、実施例12に記載の方法を提供する。
実施例15は、第2のFFTアルゴリズムが、2つ以上のバタフライ段階を含むradix−2 FFTアルゴリズムであり、第2のFFTアルゴリズムの1つ以上の段階の出力をスケーリングすることが、1/2のスケーリング係数によって各バタフライ段階をスケーリングすることを含む、実施例1〜14のいずれか1つに記載の方法を提供する。
実施例16は、1/2のスケーリング係数によってスケーリングすることが、スケーリングされるバタフライ段階の結果に1ビットの右シフトを適用することを含む、実施例13〜15のいずれか1つに記載の方法を提供する。
実施例17は、第2のFFTアルゴリズムが、2つ以上のバタフライ段階を含むradix−4 FFTアルゴリズムであり、第2のFFTアルゴリズムの1つ以上の段階の出力をスケーリングすることが、1/4のスケーリング係数によって各バタフライ段階をスケーリングすることを含む、実施例1〜14のいずれか1つに記載の方法を提供する。
実施例18は、1/4のスケーリング係数によってスケーリングすることが、スケーリングされるバタフライ段階の結果に2ビットの右シフトを適用することを含む、実施例18に記載の方法を提供する。
実施例19は、入力信号が実質的に複素指数信号または実質的に正弦波信号を含む、実施例1〜18のいずれか1つに記載の方法を提供する。
実施例20は、第1のFFTアルゴリズムを適用することが、入力信号のデータサンプルの行に第1の水平窓FFTアルゴリズムを適用することと、第1の水平窓FFTアルゴリズムの出力に第1の垂直窓FFTアルゴリズムを適用して、N個の第1の値Output1[n]を生成することと、を含み、かつ/または第2のFFTアルゴリズムを適用することが、入力信号のデータサンプルの行に第2の水平窓FFTアルゴリズムを適用することと、第2の水平窓FFTアルゴリズムの出力に第2の垂直窓FFTアルゴリズムを適用して、N個の第2の値Output2[n]を生成することと、を含む、実施例1〜19のいずれか1つに記載の方法を提供する。
実施例21は、第1のFFTアルゴリズムおよび第2のFFTアルゴリズムのそれぞれが、固定小数点FFTアルゴリズムを含む、実施例1〜20のいずれか1つに記載の方法を提供する。
実施例22は、Kが、Nの平方根に対する入力ヘッドルームの比として選択され、かつ/またはLが、Nに対する前記入力ヘッドルームの比として選択され、入力ヘッドルームが、第1のFFTアルゴリズムおよび第2のFFTアルゴリズムのそれぞれの出力を表すために提供されるビット数と入力信号を表すために使用されるビット数との差である、実施例1〜21のいずれか1つに記載の方法を提供する。
実施例23は、入力信号が、物体から反射された無線信号に基づいて生成され、方法が、N個のFFT値Output[n]に基づいて、物体までの距離の指示、物体の速度の指示、および物体の位置の指示のうちの1つ以上を判定することをさらに含む、実施例1〜22のいずれか1つに記載の方法を提供する。
実施例24は、入力信号の少なくとも1つの高速フーリエ変換(FFT)を生成するためのシステムを提供し、システムは、実施例1〜22のいずれか1つに記載の方法を実装するように構成されたデータ処理システムを含む。
実施例25は、データ処理システムがさらに、実施例23による方法を実装するように構成され、システムが、無線信号を送信するように構成されたレーダー送信機と、物体から反射された送信された無線信号の少なくとも一部を含む信号を検出し、検出された信号に基づいて入力信号を生成するように構成されたレーダー受信機と、をさらに含む、実施例24に記載のシステムを提供する。
実施例26は、プロセッサ上で実行されると、実施例1〜23のいずれか1つに記載の方法を実行するように構成されたソフトウェアコード部分を記憶する、非一時的コンピュータ可読記憶媒体を提供する。
実施例27は、実施例1〜23のいずれか1つに記載の方法を実行するためのコンピュータ可読命令を含むコンピュータプログラム製品を提供する。
変形例および実装
図2〜図13に示されるような例示的実装を参照して本開示の実施形態を上で説明したが、当業者には、上述の様々な教示が、多種多様な他の実装に適用可能であることが理解されるだろう。具体的には、本開示において提供されるいくつかの説明はradix−2 FFTに言及しているが、これらの説明は、段階とともに実装される他のFFTにも適用可能である。さらに、本明細書において提供される実施例は、6つの段階を含むFFTを参照して、かつ16ビット整数FFTを参照して説明されているが、当然ながら、他の実装において、任意の他の段階数および任意のビット数が使用され得る。
ある特定の状況において、本明細書において議論される特徴は、自動車システム、セーフティクリティカルな工業用途、医療システム、科学機器、ワイヤレスおよび有線通信、レーダー、工業プロセス制御、オーディオおよびビデオ機器、電流感知、計器(極めて精密となり得る)、ならびに他のデジタル処理ベースシステムに適用可能となり得る。
さらに、上で議論されたある特定の実施形態は、医療画像法、患者モニタリング、医療機器、および在宅ヘルスケアのためのデジタル信号処理技術に提供され得る。これには、肺モニタ、加速度計、心拍数モニタ、ペースメーカー等が含まれ得る。他の用途には、安全システム(例えば、安定性制御システム、運転者補助システム、制動システム、インフォテインメントおよび任意の種類の内装用途)のための自動車技術が含まれ得る。
さらに他の例示的シナリオにおいて、本開示の教示は、生産性、エネルギー効率、および信頼性の向上を助けるプロセス制御システムを含む産業市場において適用可能となり得る。消費者向けの用途においては、上で議論された信号処理回路の教示は、(例えばデジタルスチルカメラ、カムコーダ等のための)画像処理、オートフォーカス、および画像安定化に使用され得る。他の消費者向けの用途には、ホームシアターシステム用のオーディオおよびビデオプロセッサ、DVDレコーダ、ならびに高解像度テレビが含まれ得る。
上記実施形態の議論において、システムのコンポーネント、例えばクロック、マルチプレクサ、バッファ、および/または他のコンポーネント等は、特定の回路の必要性に対応するために、容易に交換、置換、または別様に改良され得る。さらに、補完的な電子デバイス、ハードウェア、ソフトウェア等の使用が、視覚的なディザリングに関連した本開示の教示を実装するための同等に実行可能な選択肢を提供することが留意されるべきである。
本明細書において提案される固定小数点FFTのFFT再構成機能を実装するための様々なシステムの一部は、本明細書に記載の機能を実施するための電子回路を含み得る。いくつかの場合において、システムの1つ以上の部分が、本明細書に記載の機能を実行するために特別に構成されたプロセッサにより提供され得る。例えば、プロセッサは、1つ以上の特定用途向けコンポーネントを含んでもよく、または、本明細書に記載の機能を実行するように構成されたプログラム可能な論理ゲートを含んでもよい。回路は、アナログ領域、デジタル領域、または混合信号領域内で動作し得る。いくつかの場合において、プロセッサは、非一時的コンピュータ可読記憶媒体に記憶された1つ以上の命令を実行することにより、本明細書に記載の機能を実行するように構成されてもよい。
1つの例示的実施形態において、図4、図12および図13の任意の数の電気回路が、関連電子デバイスの基板上に実装されてもよい。基板は、電子デバイスの内部電子システムの様々なコンポーネントを保持し得、さらに他の周辺機器へのコネクタを提供し得る一般的な回路基板であり得る。より具体的には、基板は、システムの他のコンポーネントが電気的に通信し得る電気接続を提供し得る。任意の好適なプロセッサ(デジタル信号プロセッサ、マイクロプロセッサ、補助チップセット等を含む)、コンピュータ可読非一時的メモリ要素等が、特定の構成の必要性、処理需要量、コンピュータ設計等に基づいて基板に好適に結合され得る。外部記憶装置、追加のセンサ、オーディオ/ビデオ表示用コントローラ、および周辺デバイス等の他のコンポーネントが、プラグインカードとしてボードに取り付けられてもよく、ケーブルを介してボードに取り付けられてもよく、またはボード自体に統合されてもよい。様々な実施形態において、本明細書に記載の機能は、これらの機能をサポートする構造内に配置された1つ以上の構成可能な(例えばプログラム可能な)要素内で動作するソフトウェアまたはファームウェアとしてエミュレーション形態で実装されてもよい。エミュレーションを提供するソフトウェアまたはファームウェアは、プロセッサにそれらの機能を実行させるための命令を含む非一時的コンピュータ可読記憶媒体上に提供されてもよい。
別の例示的実施形態において、図4、図12および図13の電気回路は、スタンドアローンモジュール(例えば、特定のアプリケーションまたは機能を実行するように構成された関連コンポーネントおよび回路を有するデバイス)として実装されてもよく、または、電子デバイスの特定用途向けハードウェアへのプラグインモジュールとして実装されてもよい。複数の固定小数点FFTを使用するFFT再構成を実装する本開示の特定の実施形態は、部分的または全体的に、システムオンチップ(SOC)パッケージ内に容易に含まれ得ることに留意されたい。SOCは、コンピュータまたは他の電子システムのコンポーネントを、単一チップ内に統合するICを表す。これは、デジタル、アナログ、混合信号、およびしばしば無線周波数機能を含有し得、それらの全てが単一チップ基板上に提供され得る。他の実施形態は、単一電子パッケージ内に位置し、電子パッケージを通して互いに密接に相互作用するように構成される複数の別個のICを有する、マルチチップモジュール(MCM)を含んでもよい。様々な他の実施形態において、本明細書において提案されるFFT再構成は、特定用途向け集積回路(ASIC)、フィールドプログラマブルゲートアレイ(FPGA)、および他の半導体チップにおける1つ以上のシリコンコア内に実装されてもよい。
また、本明細書において概説された仕様、寸法、および関係(例えば、プロセッサの数、論理演算等)は全て、単に例示および教示のみを目的として提供されたことに留意することが不可欠である。そのような情報は、本開示の趣旨、または添付の特許請求の範囲から逸脱せずに大きく変動し得る。仕様は、1つの限定されない実施例にのみ適用され、したがってそのように解釈されるべきである。上記説明において、例示的実施形態は、特定のプロセッサおよび/またはコンポーネントの配置を参照して説明された。添付の特許請求の範囲から逸脱せずに、そのような実施形態に様々な修正および変更がなされてもよい。したがって、説明および図面は、限定的ではなく例示的なものとしてみなされるべきである。
本明細書において提供される数々の実施例に関して、2つ、3つ、4つ、またはそれ以上の電気コンポーネントに関して相互作用が説明され得る。しかしながら、これは、明確化および例示のみを目的としてなされている。システムは、任意の好適な様式で統合されてもよいことが認識されるべきである。同様の代替設計に従って、図4、図12および図13の図示されたコンポーネント、モジュール、および要素のうちのいずれかは、様々な可能な構成で組み合わされてもよく、それらは全て、明確に本明細書の広範な範囲内に含まれる。ある特定の場合において、限られた数の電気要素のみを参照することによって、フローの所与のセットの機能の1つ以上を説明することがより容易となり得る。図4、図12および図13の電気回路およびその教示は、容易に拡張可能であり、多数のコンポーネント、ならびに複雑/高度な配置および構成に対応することができることが、認識されるべきである。したがって、提供された実施例は、多種多様な他のアーキテクチャに適用され得るように、電気回路の広範な教示の範囲を限定する、またはそれを阻害するべきではない。
本明細書において、「一実施形態」、「例示的実施形態」、「実施形態」、「別の実施形態」、「いくつかの実施形態」、「様々な実施形態」、「他の実施形態」、「代替の実施形態」等に含まれる様々な特徴(例えば、要素、構造、モジュール、コンポーネント、ステップ、演算、特性等)への言及は、任意のそのような特徴が本開示の1つ以上の実施形態に含まれるが、同じ実施形態において組み合わされても、または必ずしも組み合わされなくてもよいことを意味するように意図されることに留意されたい。
また、本明細書において提案されるようなFFT再構成に関連する機能が、図4、図12および図13に図示されるシステムにより、またはシステム内で実行され得る可能な機能のいくつかを示すにすぎないことに留意することが重要である。これらの演算のいくつかは、適宜削除もしくは除外されてもよく、または、これらの演算は、本開示の範囲から逸脱せずに、大幅に修正もしくは変更されてもよい。さらに、これらの演算のタイミングが大幅に改変されてもよい。上記の演算フローは、例示および議論を目的として提供されている。任意の好適な配置、順序、構成、およびタイミングのメカニズムが、本開示の教示から逸脱せずに提供され得るという点で、本明細書に記載の実施形態により実質的な柔軟性が提供される。
上述の装置の全ての任意選択の特徴は全て、本明細書に記載の方法またはプロセスに関して実装されてもよく、実施例における詳細は、1つ以上の実施形態におけるいずれにおいても使用され得る。
数々の他の変更、置換、変形、改変および修正が、当業者に確認され得、本開示は、全てのそのような変更、置換、変形、改変および修正を、添付の特許請求の範囲内に含まれるものとして包含することが意図される。
特許請求の範囲は、USPTOの前に使用されたスタイルにおいて単独従属形式で示されているが、任意の請求項は、明らかに技術的に実現不可能でない限り、同じ種類の任意の先行する請求項に従属し、またそれと組み合わされてもよいことが理解されるべきである。
1200 データ処理システム
1202 プロセッサ
1204 メモリ要素
1206 システムバス
1208 ローカルメモリ
1210 バルク記憶デバイス
1212 入力デバイス
1214 出力デバイス
1216 ネットワークアダプタ
1218 アプリケーション
1300 システム
1302 送信機
1304 受信機
1306 調整器
1308 データ処理システム
1310 プロセッサ
1312 メモリ

Claims (15)

  1. 物体までの距離、前記物体の速度、および前記物体の位置のうちの1つ以上を判定するためのシステムであって、
    前記物体から反射された信号を受信するように構成された受信機と、
    入力信号にゲインKを有する第1のFFTアルゴリズムを適用して、第1のFFTを生成することであって、前記入力信号が、前記物体から反射された前記信号に基づいて生成される、生成することと、
    前記入力信号にゲインKよりも小さいゲインLを有する第2のFFTアルゴリズムを適用して、第2のFFTを生成することと、
    前記第1のFFTおよび前記第2のFFTに基づき、前記入力信号のFFTを生成することと、
    前記入力信号の前記FFTに基づいて、前記物体までの距離、前記物体の速度、および前記物体の位置のうちの1つ以上を判定することと、を行うように構成されたデータ処理システムと、を含むシステム。
  2. 前記第1のFFTは、インデックスnでインデックス付けされたN個の第1の値Output1[n]を含み、
    前記第2のFFTは、前記インデックスnでインデックス付けされたN個の第2の値Output2[n]を含み、
    前記第1のFFTおよび前記第2のFFTに基づき、前記入力信号のFFTを生成することは、インデックスnでインデックス付けされたN個のFFT値Output[n]を生成することを含み、
    前記FFT値Output[n]を生成することは、
    各インデックスnについて、前記第1の値Output1[n]と前記第2の値Output2[n]に基づいて、所定の条件が満たされるかどうかを判定することと、
    肯定判定の場合、前記FFT値Output[n]として前記第1の値Output1[n]を含めることと、
    否定判定の場合、前記FFT値Output[n]として前記第2の値Output2[n]に基づく値を含めることと、を含む、請求項1に記載のシステム。
  3. 前記FFT値Output[n]として前記第2の値Output2[n]に基づく前記値を含めることは、前記FFT値Output[n]として前記第2の値Output2[n]K/Lを乗算して得られる値を含めることを含む、請求項2に記載のシステム。
  4. 前記第1の値Output1[n]と前記第2の値Output2[n]に基づいて、所定の条件が満たされるかどうかを判定することは、
    前記第2の値Output2[n]にK/Lを乗算することと、
    前記乗算の結果から、前記第1の値Output1[n]を減算することと、
    前記減算の結果が少なくともゼロの値を包含する所定の範囲内にあるかどうかを判定することと、を含む、請求項2に記載のシステム。
  5. 前記条件は、クリッピングが発生しなかったことを示す条件である、請求項2に記載のシステム。
  6. Kは、Nの平方根に対する入力ヘッドルームの比として選択され、かつ/またはLは、Nに対する前記入力ヘッドルームの比として選択され、前記入力ヘッドルームは、前記第1のFFTアルゴリズムおよび前記第2のFFTアルゴリズムのそれぞれの出力を表すために提供されるビット数と前記入力信号を表すために使用されるビット数との差であり、Nは、前記第1のFFTアルゴリズムおよび前記第2のFFTアルゴリズムのそれぞれのFFT出力における要素の数である、請求項1に記載のシステム。
  7. 前記第1のFFTアルゴリズムおよび前記第2のFFTアルゴリズムのそれぞれは、固定小数点FFTアルゴリズムである、請求項1に記載のシステム。
  8. 前記第1のFFTアルゴリズムは、2つ以上のバタフライ段階を含むFFTアルゴリズムであり、前記第1のFFTアルゴリズムは、複素指数入力信号について、前記第1のFFTアルゴリズムのバタフライ段階の対に対する増大係数の逆数の2倍に等しいスケーリング係数によってバタフライ段階の全ての対の出力をスケーリングすることによって前記第1のFFTアルゴリズムの1つ以上の段階の出力をスケーリングするように構成されている、請求項1に記載のシステム。
  9. 前記第2のFFTアルゴリズムは、2つ以上のバタフライ段階を含むradix−2 FFTアルゴリズムであり、前記第2のFFTアルゴリズムは、1/2のスケーリング係数によって各バタフライ段階をスケーリングすることによって前記第2のFFTアルゴリズムの1つ以上の段階の出力をスケーリングするように構成されている、請求項1に記載のシステム。
  10. 前記第2のFFTアルゴリズムは、2つ以上のバタフライ段階を含むradix−4 FFTアルゴリズムであり、前記第2のFFTアルゴリズムは、1/4のスケーリング係数によって各バタフライ段階をスケーリングすることによって前記第2のFFTアルゴリズムの1つ以上の段階の出力をスケーリングするように構成されている、請求項1に記載のシステム。
  11. 前記物体から反射される前記信号は無線信号であり、前記受信機はレーダー受信機であるか、または
    前記物体から反射される前記信号は音響信号であり、前記受信機はソナー受信機である、請求項1に記載のシステム。
  12. 受信機によって受信された信号に基づいて、対象となるベースバンド信号を抽出するためのシステムであって、
    前記信号を受信し、前記信号を、データ処理システムへの入力信号として提供される電気信号に変換するように構成された受信機であって、前記信号が電磁信号または音響信号である、受信機と、
    前記入力信号にゲインKを有する第1のFFTアルゴリズムを適用して、第1のFFTを生成し、
    前記入力信号にゲインKよりも小さいゲインLを有する第2のFFTアルゴリズムを適用して、第2のFFTを生成し、
    前記第1のFFTおよび前記第2のFFTに基づいて前記入力信号の再構成FFTを生成し、
    前記再構成FFTに基づいて対象となる前記ベースバンド信号を抽出するように構成された前記データ処理システムと、を備えるシステム。
  13. 前記第1のFFTは、インデックスnでインデックス付けされたN個の第1の値Output1[n]を含み、
    前記第2のFFTは、前記インデックスnでインデックス付けされたN個の第2の値Output2[n]を含み、
    前記第1のFFTおよび前記第2のFFTに基づき、前記入力信号のFFTを生成することは、インデックスnでインデックス付けされたN個のFFT値Output[n]を生成することを含み、
    前記FFT値Output[n]を生成することは、
    各インデックスnについて、前記第1の値Output1[n]と前記第2の値Output2[n]に基づいて、所定の条件が満たされるかどうかを判定することと、
    肯定判定の場合、前記FFT値Output[n]として前記第1の値Output1[n]を含めることと、
    否定判定の場合、前記FFT値Output[n]として前記第2の値Output2[n]に基づく値を含めることと、を含む、請求項11に記載のシステム。
  14. 前記第1のFFTアルゴリズムおよび前記第2のFFTアルゴリズムのそれぞれは、固定小数点FFTアルゴリズムである、請求項11に記載のシステム。
  15. 電気通信システムと、
    音源位置同定システムと、
    音源分離システムと、
    自動車システムと、
    航空システムと、のうちの1つである、請求項11に記載のシステム。
JP2018539324A 2016-01-28 2017-01-30 固定小数点ハイダイナミックレンジ高速フーリエ変換 Active JP6723368B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US15/008,984 2016-01-28
US15/008,984 US9946687B2 (en) 2016-01-28 2016-01-28 Fixed-point high dynamic range fast fourier transforms
PCT/US2017/015634 WO2017132670A1 (en) 2016-01-28 2017-01-30 Fixed-point high dynamic range fast fourier transforms

Publications (2)

Publication Number Publication Date
JP2019506679A JP2019506679A (ja) 2019-03-07
JP6723368B2 true JP6723368B2 (ja) 2020-07-15

Family

ID=59386779

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2018539324A Active JP6723368B2 (ja) 2016-01-28 2017-01-30 固定小数点ハイダイナミックレンジ高速フーリエ変換

Country Status (5)

Country Link
US (1) US9946687B2 (ja)
JP (1) JP6723368B2 (ja)
CN (1) CN108701119B (ja)
DE (1) DE112017000555T5 (ja)
WO (1) WO2017132670A1 (ja)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10877142B2 (en) * 2018-01-12 2020-12-29 Ronald Gene Lundgren Methods, systems and devices to augur imminent catastrophic events to personnel and assets and sound image a radar target using a radar's received doppler audio butterfly
US11221397B2 (en) * 2019-04-05 2022-01-11 Texas Instruments Incorporated Two-dimensional FFT computation
US11448744B2 (en) * 2019-12-31 2022-09-20 Woven Planet North America, Inc. Sequential doppler focusing
US11709225B2 (en) * 2020-06-19 2023-07-25 Nxp B.V. Compression of data employing variable mantissa size
US20220034996A1 (en) * 2020-08-03 2022-02-03 Metawave Corporation Pipelined fft with localized twiddle
DE102022200283A1 (de) * 2022-01-13 2023-07-13 Robert Bosch Gesellschaft mit beschränkter Haftung Radarsystem und Verfahren zum Betreiben eines Radarsystems

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6137839A (en) 1996-05-09 2000-10-24 Texas Instruments Incorporated Variable scaling of 16-bit fixed point fast fourier forward and inverse transforms to improve precision for implementation of discrete multitone for asymmetric digital subscriber loops
US7088791B2 (en) 2001-10-19 2006-08-08 Texas Instruments Incorporated Systems and methods for improving FFT signal-to-noise ratio by identifying stage without bit growth
US7197525B2 (en) * 2002-11-26 2007-03-27 Analog Devices, Inc. Method and system for fixed point fast fourier transform with improved SNR
KR100925427B1 (ko) 2002-12-27 2009-11-06 엘지전자 주식회사 채널 등화기
US7835454B2 (en) 2004-04-30 2010-11-16 Analog Devices, B.V. Multicarrier modulation systems
US8218426B2 (en) 2008-03-28 2012-07-10 Qualcomm Incorporated Multiple stage fourier transform apparatus, processes, and articles of manufacture
CN101266292B (zh) * 2008-05-08 2011-01-12 北京航空航天大学 一种gnss反射信号的频域处理装置和方法
US8548105B2 (en) * 2008-08-05 2013-10-01 Qualcomm Incorported Joint time-frequency automatic gain control for wireless communication
US9977116B2 (en) * 2015-10-05 2018-05-22 Analog Devices, Inc. Scaling fixed-point fast Fourier transforms in radar and sonar applications

Also Published As

Publication number Publication date
CN108701119A (zh) 2018-10-23
US9946687B2 (en) 2018-04-17
CN108701119B (zh) 2022-08-09
US20170220522A1 (en) 2017-08-03
DE112017000555T5 (de) 2018-10-18
JP2019506679A (ja) 2019-03-07
WO2017132670A1 (en) 2017-08-03

Similar Documents

Publication Publication Date Title
JP6723368B2 (ja) 固定小数点ハイダイナミックレンジ高速フーリエ変換
JP6392289B2 (ja) レーダーおよびソナー用途における固定小数点高速フーリエ変換のスケーリング
CN110688964A (zh) 一种基于稀疏分解的小波阈值与emd联合降噪方法
CN109901101A (zh) 基于电磁矢量传感器互质阵列相干信号到达角估计方法
CN1933434A (zh) 频谱估计的方法和装置
US9151842B2 (en) Method and apparatus for time of flight sensor 2-dimensional and 3-dimensional map generation
CN109923430B (zh) 用于进行相位差展开的装置及方法
WO2019081035A1 (en) DEVICE AND METHOD FOR ESTIMATING SOUND ARRIVAL DIRECTION FROM A PLURALITY OF SOUND SOURCES
Serbes et al. Modified dual tree complex wavelet transform for processing quadrature signals
CN108702143A (zh) 具有置信度输入的数字滤波器
KR101183658B1 (ko) 이산 퓨리에 변환의 고속 처리 장치 및 방법
CN114826846A (zh) 频偏抵消序列的生成方法、装置、设备及介质
JP3728756B2 (ja) 離散フーリエ変換値の遅延時間補正装置
US8594167B2 (en) Determining spectral samples of a finite length sequence at non-uniformly spaced frequencies
US20190243867A1 (en) Emergent time to causal time signal transformations
US20100079170A1 (en) Apparatus and method for the analysis of a periodic signal
US9268745B2 (en) Method for fast wavelet transform of a signal
JP7056739B2 (ja) 波源方向推定装置、波源方向推定方法、およびプログラム
Jacobsen et al. Fast, accurate frequency estimators
Sugiura et al. Phase Locking Value Calculator Based on Hardware-Oriented Mathematical Expression
US20190123944A1 (en) Method and System Providing Fourier Transform Based Signal Processing with Reduced Computational Complexity
Singh et al. Implementation of interpolation algorithm in FPGA for fine frequency accuracy
Aboelaze Verilog Review and Fixed Point Arithmetics
CN116996137A (zh) 一种基于加权叠加的低信噪比宽带线性调频信号检测算法
Benson Adaptive Thresholding for Detection of Radar Receiver Signals

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20180727

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20180727

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20190729

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20190902

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20191202

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20200525

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20200623

R150 Certificate of patent or registration of utility model

Ref document number: 6723368

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250