(57)【要約】  高速フーリエ変換（ＦＦＴ）を生成するための方法が開示される。本方法は、出力の増大を減少させるために異なるスケーリングを適用する２つ以上の固定小数点ＦＦＴアルゴリズムに入力信号を提供することを含み、結果としてＦＦＴアルゴリズムのそれぞれが異なるゲインによって特徴付けられるＦＦＴ出力値のアレイを生成する。本方法は、ＦＦＴ出力値ごとに、相対的に高いゲインを有するＦＦＴアルゴリズムの出力値が飽和によりクリッピングされたかどうかを判定することをさらに含む。そうでなければ、そのＦＦＴアルゴリズムの出力値は最終ＦＦＴに含まれる。あるいは、低ゲインを有するＦＦＴアルゴリズムの出力値が最終ＦＦＴに含まれる。異なるＦＦＴからの値のそのような組み合わせによって最終ＦＦＴを再構成することにより、それらの欠点を回避または最小限に抑えながら、高ゲインおよび低ゲインＦＦＴの両方の利点から利益を得ることを可能にする。
2019506679.tif 000002
【特許請求の範囲】
【請求項１】
入力信号の高速フーリエ変換（ＦＦＴ）を生成するためのコンピュータ実装方法であって、
前記入力信号に第１のＦＦＴアルゴリズムを適用して、インデックスｎでインデックス付けされたＮ個の第１の値Ｏｕｔｐｕｔ１［ｎ］を含む第１のＦＦＴを生成することであって、前記第１のＦＦＴアルゴリズムが、前記第１のＦＦＴアルゴリズムのゲインがＫであるように、前記第１のＦＦＴアルゴリズムの１つ以上の段階の出力をスケーリングするように構成される、ことと、
前記入力信号に第２のＦＦＴアルゴリズムを適用して、前記インデックスｎでインデックス付けされたＮ個の第２の値Ｏｕｔｐｕｔ２［ｎ］を含む第２のＦＦＴを生成することであって、前記第２のＦＦＴアルゴリズムが、前記第２のＦＦＴアルゴリズムのゲインがＬであるように、前記第２のＦＦＴアルゴリズムの１つ以上の段階の出力をスケーリングするように構成され、ＬがＫよりも小さい、ことと、
各インデックスｎについて、前記第１の値Ｏｕｔｐｕｔ１［ｎ］と前記第２の値Ｏｕｔｐｕｔ２［ｎ］との比較が条件を満たすかどうかを判定すること、
肯定判定の場合、前記インデックスｎでインデックス付けされたＮ個のＦＦＴ値Ｏｕｔｐｕｔ［ｎ］として前記第１の値Ｏｕｔｐｕｔ１［ｎ］を含めること、および
否定判定の場合、前記ＦＦＴ値Ｏｕｔｐｕｔ［ｎ］として前記第２の値Ｏｕｔｐｕｔ２［ｎ］に基づく値を含めること、によって、前記ＦＦＴ値Ｏｕｔｐｕｔ［ｎ］を含む前記ＦＦＴを生成することと、を含む方法。
【請求項２】
前記ＦＦＴ値Ｏｕｔｐｕｔ［ｎ］として前記第２の値Ｏｕｔｐｕｔ２［ｎ］に基づく前記値を含めることは、前記ＦＦＴ値Ｏｕｔｐｕｔ［ｎ］として前記第２の値Ｏｕｔｐｕｔ２［ｎ］を乗算したＫ／Ｌの値を含めることを含む、請求項１に記載の方法。
【請求項３】
前記第１の値Ｏｕｔｐｕｔ１［ｎ］と前記第２の値Ｏｕｔｐｕｔ２［ｎ］との比較が前記条件を満たすかどうかを判定することは、
前記第２の値Ｏｕｔｐｕｔ２［ｎ］にＫ／Ｌを乗算することと、
前記乗算の結果から、前記第１の値Ｏｕｔｐｕｔ１［ｎ］を減算することと、
前記減算の結果が少なくともゼロの値を含む範囲内にあるかどうかを判定することと、を含む、請求項１に記載の方法。
【請求項４】
Ｋ／Ｌは２Ｍに等しく、Ｍは整数であり、前記乗算はＭビットの左シフトを前記第２の値Ｏｕｔｐｕｔ２［ｎ］に適用することを含む、請求項３に記載の方法。
【請求項５】
前記Ｎ個の第１の値Ｏｕｔｐｕｔ１［ｎ］、前記Ｎ個の第２の値Ｏｕｔｐｕｔ２［ｎ］、および前記Ｎ個のＦＦＴ値Ｏｕｔｐｕｔ［ｎ］は、前記入力信号内に存在する１つ以上の周波数寄与のそれぞれの大きさを示す実数値を含む、請求項１に記載の方法。
【請求項６】
前記Ｎ個の第１の値Ｏｕｔｐｕｔ１［ｎ］、前記Ｎ個の第２の値Ｏｕｔｐｕｔ２［ｎ］、および前記Ｎ個のＦＦＴ値Ｏｕｔｐｕｔ［ｎ］は、前記入力信号内に存在する１つ以上の周波数寄与のそれぞれの大きさおよび位相を示す複素数値を含む、請求項１に記載の方法。
【請求項７】
前記ＦＦＴ値Ｏｕｔｐｕｔ［ｎ］として前記第２の値Ｏｕｔｐｕｔ２［ｎ］に基づく前記値を含めることは、前記ＦＦＴ値Ｏｕｔｐｕｔ［ｎ］として前記第２の値Ｏｕｔｐｕｔ２［ｎ］を含めることを含む、請求項１に記載の方法。
【請求項８】
前記第１の値Ｏｕｔｐｕｔ１［ｎ］と前記第２の値Ｏｕｔｐｕｔ２［ｎ］との比較が前記条件を満たすかどうかを判定することは、前記第１の値Ｏｕｔｐｕｔ１［ｎ］と前記第２の値Ｏｕｔｐｕｔ２［ｎ］との差が少なくともゼロの値を含む範囲内にあるかどうかを判定することを含む、請求項７に記載の方法。
【請求項９】
前記Ｎ個の第１の値Ｏｕｔｐｕｔ１［ｎ］、前記Ｎ個の第２の値Ｏｕｔｐｕｔ２［ｎ］、および前記Ｎ個のＦＦＴ値Ｏｕｔｐｕｔ［ｎ］は、前記入力信号内に存在する１つ以上の周波数寄与のそれぞれの位相を示す実数値を含む、請求項７に記載の方法。
【請求項１０】
前記第１のＦＦＴアルゴリズムは、２つ以上のバタフライ段階を含むＦＦＴアルゴリズムであり、前記第１のＦＦＴアルゴリズムの１つ以上の段階の前記出力をスケーリングすることは、複素指数入力信号に対する前記第１のＦＦＴアルゴリズムのバタフライ段階の対に対する増大係数の逆数の２倍に等しいスケーリング係数によってバタフライ段階の全ての対の出力をスケーリングすることを含む、請求項１に記載の方法。
【請求項１１】
前記第１のＦＦＴアルゴリズムは、ｒａｄｉｘ−２アルゴリズムを含み、前記複素指数入力信号に対する前記第１のＦＦＴアルゴリズムのバタフライ段階の前記対に対する前記増大係数の前記逆数の２倍に等しい前記スケーリング係数によってバタフライ段階の全ての対の前記出力をスケーリングすることは、１のスケーリング係数によって前記全ての対のうちの１つのバタフライ段階をスケーリングすることと、１／２のスケーリング係数によって連続するバタフライ段階の前記全ての対の別のバタフライ段階をスケーリングすることとを含む、請求項１０に記載の方法。
【請求項１２】
前記第１のＦＦＴアルゴリズムは、ｒａｄｉｘ−４アルゴリズムを含み、前記複素指数入力信号に対する前記第１のＦＦＴアルゴリズムのバタフライ段階の前記対に対する前記増大係数の前記逆数の２倍に等しい前記スケーリング係数によってバタフライ段階の全ての対の前記出力をスケーリングすることは、１／２のスケーリング係数によって各バタフライ段階をスケーリングすることを含む、請求項１０に記載の方法。
【請求項１３】
前記第２のＦＦＴアルゴリズムは、２つ以上のバタフライ段階を含むｒａｄｉｘ−２  ＦＦＴアルゴリズムであり、前記第２のＦＦＴアルゴリズムの１つ以上の段階の前記出力をスケーリングすることは、１／２のスケーリング係数によって各バタフライ段階をスケーリングすることを含む、請求項１に記載の方法。
【請求項１４】
前記１／２のスケーリング係数によってスケーリングすることは、スケーリングされる前記バタフライ段階の結果に１ビットの右シフトを適用することを含む、請求項１３に記載の方法。
【請求項１５】
前記第２のＦＦＴアルゴリズムは、２つ以上のバタフライ段階を含むｒａｄｉｘ−４  ＦＦＴアルゴリズムであり、前記第２のＦＦＴアルゴリズムの１つ以上の段階の前記出力をスケーリングすることは、１／４のスケーリング係数によって各バタフライ段階をスケーリングすることを含む、請求項１に記載の方法。
【請求項１６】
前記１／４のスケーリング係数によってスケーリングすることは、スケーリングされる前記バタフライ段階の結果に２ビットの右シフトを適用することを含む、請求項１５に記載の方法。
【請求項１７】
前記第１のＦＦＴアルゴリズムを適用することは、前記入力信号のデータサンプルの行に第１の水平窓ＦＦＴアルゴリズムを適用することと、前記第１の水平窓ＦＦＴアルゴリズムの出力に第１の垂直窓ＦＦＴアルゴリズムを適用することと、を含み、かつ／または
前記第２のＦＦＴアルゴリズムを適用することは、前記入力信号のデータサンプルの行に第２の水平窓ＦＦＴアルゴリズムを適用することと、前記第２の水平窓ＦＦＴアルゴリズムの出力に第２の垂直窓ＦＦＴアルゴリズムを適用することとを含む、請求項１に記載の方法。
【請求項１８】
前記第１のＦＦＴアルゴリズムおよび前記第２のＦＦＴアルゴリズムのそれぞれは、固定小数点ＦＦＴアルゴリズムを含む、請求項１に記載の方法。
【請求項１９】
Ｋは、Ｎの平方根に対する入力ヘッドルームの比として選択され、かつ／またはＬは、Ｎに対する前記入力ヘッドルームの比として選択され、前記入力ヘッドルームが、前記第１のＦＦＴアルゴリズムおよび前記第２のＦＦＴアルゴリズムのそれぞれの前記出力を表すために提供されるビット数と前記入力信号を表すために使用されるビット数との差である、請求項１に記載の方法。
【請求項２０】
前記入力信号は、物体から反射された無線信号に基づいて生成され、前記方法は、前記ＦＦＴ値Ｏｕｔｐｕｔ［ｎ］に基づき、前記物体までの距離の指示、前記物体の速度の指示、及び前記物体の位置の指示のうちの１つ以上を判定することをさらに含む、請求項１に記載の方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示は、一般に、デジタル信号処理に関し、より詳細には、固定小数点高速フーリエ変換を計算するためのアルゴリズムに関する。
【背景技術】
【０００２】
受信機は、例えば電磁波（電磁受信機の場合）または音響波（音響受信機の場合）の形で信号を受信し、受信信号を電気信号に変換し、次いでこれを受信信号によって伝えられる情報を抽出するために分析する電子デバイスである。信号の挙動は、時間領域（例えば、信号振幅が経時的にどのように変化するか）、および周波数領域（すなわち、信号を構成する異なる周波数成分）において分析することができ、フーリエ変換はこれらの２つの領域を数学的に関連付ける。さらに、信号は、連続波形として、またはデジタル信号処理（ＤＳＰ）用途においては、多数の時間領域点のセットとして分析することができる。高速フーリエ変換（ＦＦＴ）は、デジタル形態で表される信号の離散フーリエ変換（ＤＦＴ）、およびそれらの逆変換（ＩＤＦＴ）を計算するためのアルゴリズムを指す。
【０００３】
信号処理用途にわたるフーリエ変換の使用の普及により、その実行を計算上改善するために研究がなされ、したがって多くのＦＦＴアプローチ、例えば時間におけるデシメーション、周波数におけるデシメーション、ｒａｄｉｘ−２、ｒａｄｉｘ−４、混合ｒａｄｉｘ等が研究されてきた。それでも、ＦＦＴの実装におけるさらなる改善が望まれている。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】米国特許出願第１４／８７５，２８１号
【発明の概要】
【課題を解決するための手段】
【０００５】
本開示の実施形態は、固定小数点ＦＦＴを計算するためのメカニズムを提供する。これらの方法は、ＦＦＴが、物体までの距離、その位置、またはその速度を判定するために使用され得るレーダーおよびソナー受信機の用途に特に有利であり得る。しかしながら、これらの方法は、そのような用途に限定されず、実際には、例えば移動、電気通信、音源位置同定および分離等の固定小数点ＦＦＴが使用されるあらゆる用途に使用され得る。
【０００６】
本開示の一態様によれば、入力信号のＦＦＴを生成するためのコンピュータ実装方法が開示される。方法は、入力信号に第１の複数段階ＦＦＴアルゴリズムを適用して、インデックスｎでインデックス付けされたＮ個の第１の値Ｏｕｔｐｕｔ１［ｎ］を含む第１のＦＦＴを生成することと、入力信号に第２の複数段階ＦＦＴアルゴリズムを適用して、第１の値と同じ方法でインデックス付けされたＮ個の第２の値Ｏｕｔｐｕｔ２［ｎ］を含む第２のＦＦＴを生成することと、を含む。第１のＦＦＴアルゴリズムは、第１のＦＦＴアルゴリズムのゲインがＫであるように、第１のＦＦＴアルゴリズムの１つ以上の段階の出力をスケーリングするように構成され、第２のＦＦＴアルゴリズムは、第２のＦＦＴアルゴリズムのゲインがＬであるように、第２のＦＦＴアルゴリズムの１つ以上の段階の出力をスケーリングするように構成され、ここで、ＬはＫより小さい。スケーリングは、典型的には、ＦＦＴ出力の飽和を回避するために、固定小数点ＦＦＴの複数段階の出力の増大を制限するために使用される。方法は、第１の値および第２の値に基づいてインデックスｎでインデックス付けされたＮ個のＦＦＴ値Ｏｕｔｐｕｔ［ｎ］を含むＦＦＴを再構成することによってＦＦＴを生成すること、をさらに含む。再構成は、各インデックスｎについて、第１の値Ｏｕｔｐｕｔ１［ｎ］と第２の値Ｏｕｔｐｕｔ２［ｎ］との比較が、満たす場合には、第１のＦＦＴの出力値［ｎ］、つまり第１の値Ｏｕｔｐｕｔ１［ｎ］が飽和されていないことを確認／示す、所定の条件を満たしているかどうかを判定することと、肯定判定の場合（すなわち、第１のＦＦＴの出力値［ｎ］が飽和によりクリッピングされていないと判定された場合）、ＦＦＴ値Ｏｕｔｐｕｔ［ｎ］として第１の値Ｏｕｔｐｕｔ１［ｎ］を含めることと、否定判定の場合（すなわち、第１のＦＦＴの出力値［ｎ］が飽和によりクリッピングされたと判定された場合）、ＦＦＴ値Ｏｕｔｐｕｔ［ｎ］として、例えば第２の値Ｏｕｔｐｕｔ２［ｎ］に比例するかまたはこれに等しい値に基づく値を含めることと、によって実行される。ＦＦＴ出力は、第１および第２のＦＦＴアルゴリズムの出力を使用して再構成を実行することによって計算されるため、このアプローチは本明細書において再構成方法／アルゴリズムと呼ばれ、Ｎ個の値ＦＦＴ値Ｏｕｔｐｕｔ［ｎ］は再構成値と呼ばれる。
【０００７】
いくつかの実施形態では、第１のＦＦＴアルゴリズムは、２つ以上のバタフライ段階を含むＦＦＴアルゴリズムであり、第１のＦＦＴアルゴリズムの１つ以上の段階の出力をスケーリングすることは、複素指数入力信号に対する第１のＦＦＴアルゴリズムのバタフライ段階の対に対する増大係数の逆数の２倍に等しいスケーリング係数によってバタフライ段階の全ての対の出力をスケーリングすることを含む。このようなスケーリングは、レーダーまたはソナー受信機とともに使用される場合、レーダーまたはソナー受信機により扱われ得るいかなる種類の入力信号に対しても、特定の入力信号に対して得ることができる信号対雑音比（ＳＮＲ）の値を有することと、その入力信号をうまく処理するために必要なＳＮＲ値を有することの間のバランスが達成され得る。
【０００８】
例示的実施形態の本説明において、スケーリングは、時折、１つ以上のＦＦＴバタフライ段階の出力にある特定のスケーリング係数の乗算に関連して説明される。しかしながら、他の手段により、例えば乗算によるスケーリングにおいて使用される係数の逆数であるスケーリング係数によるシフトまたは除算により、実質的に同じスケーリングが達成され得るため、乗算は単なる１つの限定されない例であることが、当業者に容易に認識されるであろう。したがって、本明細書に記載のようなスケーリング係数（複数を含む）による乗算によるスケーリングを効果的に実行するスケーリングの可能な実装の全て、およびスケーリングされるＦＦＴ出力段階の出力を効果的に低減するスケーリングの可能な実装の全てが、本開示の範囲内である。
【０００９】
本開示の一態様は、少なくとも１つの受信機と、本明細書に記載のＦＦＴ再構成方法を実行するように構成されたデータ処理システムと、を含むシステムを提供する。
【００１０】
本開示のいくつかの態様では、システムは、例えば自動車用途または航空機で使用されるレーダーまたはソナーシステムであってもよい。システムは、レーダーまたはソナー送信機をさらに含んでもよい。レーダー送信機は周波数ランプを含み得る無線信号を送信するように構成され、ソナー送信機は周波数ランプを含み得る音響信号を送信するように構成される。レーダー受信機は、物体から反射された送信された無線信号の少なくとも一部を含む無線信号を検出し、検出された無線信号に基づいてデータ処理システムに対する入力信号を生成するように構成される。ソナー受信機は、物体から反射された送信ソナー信号の少なくとも一部を含むソナー信号を検出し、検出されたソナー信号に基づいてデータ処理システムに対する入力信号を生成するように構成される。両方のシステムにおいて、データ処理システムは、ＦＦＴ再構成アルゴリズムへの入力として入力信号を提供し、ＦＦＴ再構成アルゴリズムの出力に基づいて、物体への距離の指示、物体の速度の指示、および物体の位置の指示うちの１つ以上を判定するように構成される。
【００１１】
本開示の別の態様は、ＦＦＴ再構成アルゴリズムを使用して対象となるベースバンド信号を抽出するためのシステムを提供する。システムは、入力信号を受信し、本明細書に記載のようなＦＦＴ再構成アルゴリズムを実行するように構成された少なくとも１つのデータ処理システムを含み、入力信号は、１つ以上の無線アンテナによって検出される無線信号または１つ以上のソナーセンサによって検出されるソナー信号を含む。データ処理システムはさらに、ＦＦＴ再構成アルゴリズムの出力に基づいてベースバンド信号を抽出するように構成される。
【００１２】
本開示の他の態様によれば、本明細に記載のＦＦＴ再構成方法を実行するように構成された少なくとも１つの受信機およびデータ処理システムを含むシステムは、例えば、直交周波数分割多重化に使用される電気通信システム、音源位置同定および分離に使用されるシステム、すなわち、音響寄与を環境に提供し得る様々な音源の空間位置（音源位置同定）を判定もしくは推定し、かつ／または１つ以上の音源の音響環境への寄与を区別する（音源分離）ために使用されるシステム、あるいは着信信号を受信し、環境について結論付けるために、受信信号についてＦＦＴを実行する任意の他のシステムであってもよい。
【００１３】
当業者に認識されるように、本開示の態様、特に本明細書に記載のＦＦＴ再構成方法は、様々な様式で、例えば方法、システム、コンピュータプログラム製品、またはコンピュータ可読記憶媒体として具現化され得る。したがって、本開示の態様は、完全にハードウェアの実施形態、完全にソフトウェアの実施形態（ファームウェア、常駐ソフトウェア、マイクロコード等を含む）、またはソフトウェアおよびハードウェアの態様を組み合わせた実施形態の形態をとってもよく、それらは、本明細書において、全て一般的に「回路」、「モジュール」または「システムと」呼ぶこことができる。本開示において説明される機能は、１つ以上のコンピュータの１つ以上の処理ユニット、例えば１つ以上のマイクロプロセッサによって実行されるアルゴリズムとして実装され得る。様々な実施形態において、本明細書に記載の方法のそれぞれの異なるステップ、およびステップの一部は、異なる処理ユニットによって実行されてもよい。さらに、本開示の態様は、コンピュータ可読プログラムコードが具現化された、例えば記憶された、好ましくは非一時的な１つ以上のコンピュータ可読媒体（複数を含む）内に具現化された、コンピュータプログラム製品の形態をとってもよい。様々な実施形態において、そのようなコンピュータプログラムは、例えば、既存のデバイスおよびシステムに（例えば既存の受信機または／およびそれらのコントローラ等に）ダウンロード（更新）されてもよく、あるいは、これらのデバイスおよびシステムの製造時に記憶されてもよい。
【００１４】
本開示の他の特徴および利点は、以下の説明から、および特許請求の範囲から明らかである。
【図面の簡単な説明】
【００１５】
【図１Ａ】例示的なバタフライ演算を示す図である。
【図１Ｂ】例示的なバタフライ演算を示す図である。
【図２】本開示の一実施形態による、例示的な６段階ｒａｄｉｘ−２  ＦＦＴアルゴリズムのスケーリングを示す図である。
【図３】本開示の別の実施形態による、例示的な６段階ｒａｄｉｘ−２  ＦＦＴアルゴリズムのスケーリングを示す図である。
【図４】本開示の一実施形態による、異なるゲイン値を有する２つのＦＦＴアルゴリズムに基づいて、入力信号のＦＦＴ出力を生成するためのＦＦＴ再構成方法の概略図である。
【図５】本開示のいくつかの実施形態による、入力信号の実数部および虚数部を示すプロットである。
【図６】本開示のいくつかの実施形態による、同じ入力波形の理想的なＦＦＴモデルの結果に重ね合わされた、図４に示す入力波形の２５６点ＦＦＴのシミュレーション結果を示すプロットである。
【図７】本開示のいくつかの実施形態による、図４に示すような入力波形に対して、同じ入力波形に対する理想的なＦＦＴモデルの結果に重ね合わされた、本明細書に記載のＦＦＴ再構成方法を使用して生成されたＦＦＴ出力のシミュレーション結果を示すプロットである。
【図８】本開示のいくつかの実施形態による、図５に示すような入力信号であるが、図５の入力信号の振幅の２倍の振幅を有する入力信号の実数部および虚数部を示すプロットである。
【図９】本開示のいくつかの実施形態による、同じ入力波形の理想的なＦＦＴモデルの結果に重ね合わされた、図８に示す入力波形の２５６点ＦＦＴのシミュレーション結果を示すプロットである。
【図１０】本開示のいくつかの実施形態による、図８に示すような入力波形について、同じ入力波形に対する理想的なＦＦＴモデルの結果に重ね合わされた、本明細書に記載のＦＦＴ再構成方法を使用して生成されたＦＦＴ出力に関するシミュレーション結果を図示するプロットである。
【図１１】本開示のいくつかの実施形態による、ＦＦＴ再構成アルゴリズムを利用する方法の例示的な流れ図である。
【図１２】本開示のいくつかの実施形態による、例示的なデータ処理システムを示すブロック図である。
【図１３】本開示のいくつかの実施形態による、ＦＦＴ再構成アルゴリズムを実装するように構成された例示的な無線またはソナー受信機のシステム図である。
【発明を実施するための形態】
【００１６】
ＦＦＴの基本、ならびにレーダーおよびソナー用途におけるＦＦＴの使用例
本明細書において前述されたように、ＦＦＴは、デジタル形態で表される信号の離散フーリエ変換および逆離散フーリエ変換を計算するためのアルゴリズムを指す。
【００１７】
ＦＦＴは、取得された信号に適用され得る変換関数の例であり、これによって、取得された信号（これは、場合によっては、例えば取得された波形を窓関数で乗じることにより、変換前に処理されてもよい）を、時間領域から周波数領域に変換する。その結果、取得された信号の一部の周波数分解が得られる。取得された信号を分析する際のＦＦＴの使用を示す例は、以下に、例えばレーダー（すなわち、電磁気）またはソナー信号に関連して提供される。しかしながら、本明細書に記載のＦＦＴ再構成技術は、任意の他の設定および任意の他のタイプの受信信号、例えば電気通信に使用されるＦＦＴまたは音源位置同定および分離に使用されるＦＦＴ等、他の任意のＦＦＴにも等しく適用可能である。
【００１８】
レーダーおよびソナーシステムは、典型的には、以下のように機能する。まず、レーダー／ソナー送信機が信号を出力し、物体を探し出すためにそのエコーが評価される。多くの場合、送信機は周期的に信号を出力する。送信機によって送信された信号は、典型的にはチャープ信号である。周知であるように、チャープ信号は、周波数が時間とともに増加または減少する信号であり、前者の場合典型的に「アップチャープ」と呼ばれ、後者の場合典型的に「ダウンチャープ」と呼ばれる。時折「チャープ」という用語と同義的に使用される他の用語は、「周波数ランプ」、「周波数スイープ」または「スイープ信号」である。レーダーシステムの場合、使用される信号は、無線範囲内の電磁信号である。ソナーシステムの場合、使用される信号は、音響信号である。
【００１９】
送信信号は、物体から反射され、反射された、すなわち反響した信号が、レーダー／ソナー受信機により、適切なセンサを使用して取得される。レーダーシステムの場合、適切なセンサは、少なくとも１つであるが典型的には複数の無線アンテナを含む。ソナーシステムの場合、適切なセンサは、少なくとも１つであるが典型的には複数の音響センサを含む。
【００２０】
レーダー／ソナー受信機は、取得された反射信号を、レーダー／ソナーシステムのデータ処理ユニットに提供される電気入力信号に変換する。次いで、データ処理ユニットは、入力信号に対して一連の演算を実行するが、この演算は、１つ以上のＦＦＴアルゴリズムの複数の適用を含む。
【００２１】
送信機により送信された信号がチャープ信号である場合、反射信号もまたチャープ信号である。物体は送信機からある特定の距離だけ離れているため、受信チャープ信号は、送信チャープ信号に対して位相シフトしている。送信信号と受信反射信号との間の位相差は、送信信号が物体に到達し、反射信号が戻ってくるのにどれ程の時間を要するかに正比例し、一方その時間は、物体までの距離に比例する。したがって、位相差は、物体までの距離を示す。送信信号はチャープであるため、送信チャープと反射チャープとの間の位相差は、本明細書に記載のようなＦＦＴアルゴリズムの適用の結果として得られるＦＦＴ出力における位相差として現れる。したがって、受信チャープ信号へのＦＦＴアルゴリズムの適用により、物体までの距離の推定が可能となる。さらに、受信チャープ信号へのＦＦＴアルゴリズムの適用により、他の特性、例えば、送信機および／または受信機に対する移動物体の速度、物体の移動方向、および／または物体の位置等の推定も可能となり得る。
【００２２】
ＦＦＴアルゴリズムを使用して検出されたレーダー信号を処理するための１つのアプローチが以下で説明される。しかしながら、他の手法も当業者に知られており、それらは全て本開示の範囲内である。
【００２３】
レーダー受信機は、レーダーアンテナを使用して物体から反射された信号を検出し、各行が受信信号のサンプルの配列であり、次の行がサンプルの次の配列であり、全ての配列が一緒になって１つのランプを構成するデータの矩形を形成する。次いで、水平（窓）ＦＦＴが、サンプルの各行に対して実行される。次いで、水平ＦＦＴの結果に対して垂直窓ＦＦＴが実行され、物体から反射されレーダー受信機により検出された信号は、垂直窓ＦＦＴの結果の大きさにおいて「ピーク」として現れる。レーダー受信機の特定の入力アンテナに対する垂直窓ＦＦＴの結果は、典型的には２次元アレイとして配置され、１つの次元、典型的にはアレイの水平軸は周波数をインデックス付けし、他の次元、典型的にはアレイの垂直軸は物体の速度をインデックス付けする。送信信号がチャープである場合、そのようなアレイにおけるピークの周波数成分、すなわち、水平軸上に示されるようにピークが現れる周波数の値は、上述のように物体がどれ程遠くにあるかに正比例する、送信チャープと反射チャープとの間の位相差を示すことにより、タイムスタンプとして機能する。したがって、アレイの水平軸は、一般的に、物体までの距離または範囲をインデックス付けするものとして説明される。
【００２４】
周波数を変数ｆで表し、速度を変数ｖで表すことは、ＦＦＴアレイの各要素が値のある特定の対（ｆ，ｖ）でインデックス付けされることを意味し、ｆの値（すなわち、アレイ内の要素の水平の位置）は、物体の位置を示し、ｖの値（すなわち、アレイ内の要素の垂直の位置）は、物体の速度を示す。そのようなアレイの各要素は、垂直ＦＦＴの適用の結果から導出される値を含み、周波数および速度の値の所与の対に対する取得された信号の大きさを表す。ソナーシステムにより、同様の処理が行われる。
【００２５】
レーダーおよびソナー用途以外の用途では、ＦＦＴアルゴリズムを適用した結果は、上述のように２次元アレイに配置されてもよいが、速度の代わりに、例えば、時間等の対象となる他のパラメータがインデックス付けされてもよい。一般に、ＦＦＴアルゴリズムを適用した結果は、例えば１次元アレイまたは多次元アレイまたはテンソル等の、適切にインデックス付けされた任意の次元のアレイに配置されてもよい。
【００２６】
値のアレイで表される計算されたＦＦＴの各要素は、典型的には、「周波数ビン」または単に「ビン」と呼ばれ、「ビン」という用語は、そのようなアレイが、取得された信号（複数を含む）のエネルギーがその中に分配される複数のビンを含むものとしてみなされ得ることを示している。様々な実施形態において、ビンは、複素数値または実数値を含有し得る。例えば、実数値は、複素数値の正の実数量Ｘ（ｆ）に関して表すことができ、量Ｘは、例えば実際の大きさ、大きさの二乗、または大きさの圧縮変換、平方根または対数等として表される、取得された信号の様々な周波数成分ｆの大きさを表す。他の例では、実数値は、複素数値の正または負の実際の量Ｘ（ｆ）のいずれかに関して表すことができ、量Ｘは、取得された信号の様々な周波数成分ｆの位相を表す。
【００２７】
周波数ビンは、受信機によって取得された全信号から特定の対象となる信号を分離すること、例えば、特定の対象となる物体から反射されたレーダーもしくはソナー信号の分離、または様々な音源からの寄与を含有する、取得された音響信号から特定の対象となる音源によって生成された音響信号の分離等は、どのビン（複数を含む）が対象となる信号に対応するかを特定することによって、および／またはどのビン（複数を含む）が有効となり得るかを特定することによって達成され得るという点で、様々な受信機によって使用されるＦＦＴアルゴリズムに役立つ。そのために、ビンが評価され、それらが１つ以上の所定の基準を満たす値を含有するかどうかが判定される。例えば、１つの基準は、ビンの値をある特定の閾値と比較して、ビンが、取得された信号の比較的多量のエネルギーがそのビンに集中していることを示す「ピーク」を含有するものとして分類され得るかどうかを判定することを含み得る。各ビンにおけるピークの存在または不在を示すために、どこにレベル閾値を設定すべきかを判定するために、様々なアルゴリズムが実行され得るが、それらのアルゴリズムは全て、本開示の範囲内である。
【００２８】
実際には、上述のような値の２次元アレイは、典型的には、全ての入力アンテナに対して生成され、受信機は、典型的には、２つ以上のアンテナを含有し、したがって、アレイは３次元アレイとなり、第３の次元は異なるアンテナをインデックス付けする。上述の処理は、そのような３次元アレイの全てのアンテナ矩形スライスに対して実行され、場合によっては、続いてアンテナのビーム形成が行われる。
【００２９】
多くの異なる既知のＦＦＴアプローチが共通して有するのは、それらが、信号を表すデジタル点をサブセットに分割し（「デシメーション」として知られるプロセスにおいて）、各サブセットのＤＦＴを計算し、次いで各サブセットのＤＦＴの結果を処理して、周波数領域点のセットからなる最終結果を生成することにより、段階的に計算を行うことである。別様に表すと、そのようなＦＦＴアプローチは、ＤＦＴ計算を、各段階がより小さいＤＦＴを計算する段階に細分化し、次いで異なる段階である種の構造を使用して計算の結果を組み合わせる。
【００３０】
ＦＦＴの計算量のほとんどは、サブセットの処理にある。処理は、サブセットがまず中間結果まで処理され、周波数領域点の最終セットが生成されるまで中間結果がさらに処理される等の一連の段階において生じる。各段階は、それぞれｒ入力点を同時に処理してｒ出力点を生成する複数の並列演算を含むが、値ｒは、ＦＦＴアルゴリズムの「ｒａｄｉｘ」として知られる。ｒａｄｉｘ−２（すなわちｒ＝２の値を有するｒａｄｉｘ）演算のデータフロー図は、バタフライ（入力点ｘ０、ｘ１が式ｙ０＝ｘ０＋ｔ＊ｘ１およびｙ１＝ｘ０−ｔ＊ｘ１に従って出力点ｙ０、ｙ１に処理される図１Ａに示されるとおりである）の形に似ている（「ｔ」は「回転係数」と呼ばれる）ため、これらの演算は、「バタフライ演算」または単に「バタフライ」として知られる。他のｒａｄｉｘを有する演算もまた、バタフライ演算として知られる（ｒが４に等しい、図１Ｂに示される、ｒａｄｉｘ−４演算等）。
【００３１】
浮動小数点対固定小数点表現
ＦＦＴを適用した結果を含むアレイ内の値は、固定小数点数または浮動小数点数として表され得る。
【００３２】
計算に関連して周知であるように、固定小数点数は、整数部（すなわち、小数点の左側の数字の部分）に対して確保される特定のビット数または桁数、および少数部（すなわち、小数点の右側の数字の部分）に対して確保される特定のビット数を有する。数字がいかに大きくても、または小さくても、それぞれの部分に対して常に同じビット数が使用される。例えば、固定小数点形式が十進数ＩＩＩＩＩ．ＦＦＦＦＦである場合、表され得る最大の正数は、符号なしの場合二進数１１１１１．１１１１１＝３１．９６８７５および符号ありの場合０１１１１．１１１１１＝１５．９６８７５であり、最小の正数は、二進数０００００．００００１＝０．０３１２５となる。そのような表現には、そのような数を処理するプロセッサが、小数点がどこにあるのかを知っていることが必要である。以下では、本質的に二進数表現である「ビット」が時折小数点表現に関連して説明されるが、本明細書において提供される説明に基づいて、当業者にはどれがどれかが容易に認識される。
【００３３】
同じく周知であるように、浮動小数点数は、整数部または小数部に対して特定のビット数を確保しない。その代わり、数に対する特定のビット数（「仮数」または「有意桁数」と呼ばれる）、およびその数内でどこに小数位があるのかを示すためのある特定のビット数（「指数」と呼ばれる）を確保する。したがって、１０桁を使用して表され、２桁が指数に確保された浮動小数点数は、単純化のために符号なし浮動小数点数を考慮すると、９．９９９９９９９ｅ＋５０の最大値、および０．００００００１ｅ−４９の最小値を表し得る。符号あり浮動小数点数の場合、最小値は、−９．９９９９９９９ｅ＋５０となる。
【００３４】
時折、同一幅の数に着目すると、仮数自体が指数に対するビットのいくつかを失うため、浮動小数点表現よりも整数表現が正確となり得る。しかしながら、アルゴリズムのダイナミックレンジが高いほど、固定小数点よりも浮動小数点がよい。固定桁数では、異なる桁の数が表され得るため、一般に、浮動小数点表現は、より高い正確性を提供し得る。一方、固定小数点表現は、例えば６ビットまたは右からの桁の二進数または小数点の位置に関する特定の規則を規定するソフトウェア実装によって制御される整数ハードウェア演算を使用し得るため、固定小数点処理の実装は、多くの場合、より低いコストおよび消費電力に関連する。これらの表現を操作するためのハードウェアは、浮動小数点よりもコストが低く、通常の整数演算を実行するためにもまた使用され得る。したがって、固定小数点ＦＦＴを使用することが、しばしば有利である。しかしながら、以下の項でより詳細に説明されるように、段階増大を適正に制御することが困難であるため、固定小数点ＦＦＴの使用が常に可能であるわけではない。
【００３５】
固定小数点ＦＦＴの段階増大
ＦＦＴアルゴリズムの連続する段階のそれぞれからの出力信号は、段階の計算を実行した結果としてその段階に提供された入力信号よりも大きくなり得る。各段階において入力信号が増大し得る係数は、入力信号の種類に依存して異なる。例えば、デルタ関数入力信号は、増大を全く経験せず、実質的に不規則な入力信号（すなわち、多くの異なる周波数を含み、その周波数表現の観点から「不規則」に見える入力信号）は、ｒａｄｉｘ−２段階ごとにｓｑｒｔ（２）の係数（または２つのｒａｄｉｘ−２段階ごとに２の係数）で増大し得、一方、実質的な複素指数、例えば、正弦波入力信号（すなわち、単一の周波数信号）は、ｒａｄｉｘ−２段階ごとに２の係数で増大し得る。
【００３６】
周知のように、コンピュータは、典型的には二進乗算器を実装し、すなわち、乗算は、２を底とする形態で数を表すことによって実行され、任意の２つの数の乗算は、単なるビットのシフトおよび加算まで減じられる。そのような実装では、２の係数での値の増大（ゲイン）または２の係数での値のスケールダウンは、正しい方向での１ビットのシフトを意味する。例えば、例えば３（二進数表現では「１１」）の値から６（二進数表現では「１１０」）の値までの２の係数での増大は、「１１」（すなわち３の値）を左に１ビットだけシフトし、１１０（すなわち６の値）に至るものとして表される。同様に、例えば６の値から３の値への２の係数でのスケールダウンは、「１１０」を右に１ビットだけシフトし、「０１１」に至るものとして表される。したがって、２の係数での増大は、１ビットでの増大として説明されてもよく、４の係数での増大は、２ビットでの増大として説明されてもよく、以下同様である。したがって、不規則な信号入力に対するｒａｄｉｘ−２段階ごとのｓｑｒｔ（２）の係数（または２つのｒａｄｉｘ−２段階ごとの２の係数）での増大は、２つのｒａｄｉｘ−２段階ごとの１ビットまたはｒａｄｉｘ−２段階ごとの０．５ビットの増大として見ることができ、複素指数、例えば正弦波入力信号に対するｒａｄｉｘ−２段階ごとの２の係数での増大は、ｒａｄｉｘ−２段階ごとの１ビットでの増大として見ることができる。したがって、ＦＦＴ出力は、複素指数型の入力に対してｒａｄｉｘ−２段階当たり１（またはそれ以上）の大きなビットで増大し得る場合から、最も少ない場合としてデルタ関数入力に対して全く増大がない場合まで様々である。しかしながら、平均的には、不規則な入力信号の場合と同様に、増大はｒａｄｉｘ−２段階当たり０．５ビットである。
【００３７】
各段階でのＦＦＴ出力の増大は、固定小数点ＦＦＴに関する周知の問題であり、前述のように、表される数がどれほど大きくても、または小さくても、整数および小数部分のそれぞれに対して同じ所定のビット数を使用し得るだけである。しかし、各段階における増大は、オーバーフロー、すなわち、計算が、所定の固定小数点実装が記憶または表し得る結果よりも大きさが大きい結果を生成する状況をもたらし得る。オーバーフローの場合、所与のメモリ要素は、記憶または表し得る最大の値を記憶または表し、この状態は「飽和」と呼ばれる。換言すれば、計算結果は、最大値にクリッピングされることになる。
【００３８】
オーバーフローにより、計算結果が正しく表され得ない結果となるため、典型的には、固定小数点ＦＦＴアルゴリズムは、オーバーフローを回避または大きく制限しようとする。オーバーフローを回避するための１つの手法は、ＦＦＴアルゴリズムのいくつかまたは全ての段階の後に、スケーリングを適用することであり、これは異なる方法で行うことができ、そのいくつかの例を以下に説明する。
【００３９】
ＦＦＴ出力のスケーリング：例＃１（「低」ゲイン）
１つの堅牢なスケーリングアプローチは、ｒａｄｉｘ−２段階ごとに１ビットだけ出力をスケールダウンすることを含む。６段階６４点ＦＦＴの例を図２に示すが、「＞＞１」と示されるボックスはそれぞれ、１ビットの右シフトを表している。本明細書で前述したように、１ビットの右シフトは、２の係数でのスケールダウン（すなわち、信号を１／２で乗算すること）を意味する。
【００４０】
図２に示すようなスケーリングにより、実際に遭遇する可能性のあるほとんどの入力信号のオーバーフローを回避することができ、その理由として、単一段階におけるビット増大は１ビットを超過し得るが、これは十分稀であり、例えば、ビット増大は、指数回転係数による乗算が入力指数を「回転」させる、いくつかの複素指数入力信号の段階当たり１ビット超過し得、これによりその実数または虚数要素をｓｑｒｔ（２）の係数だけ増加することができ、次いで加算するとほぼ倍になる。ほとんどの潜在的な入力信号のオーバーフローを避けることが望ましいが、コストがかかり、平均増大は、平均入力信号に対してｒａｄｉｘ−２段階当たりわずか０．５ビットであるため、この種のスケーリングは、分解能のいくつかのビットを不必要に失う。図２に示される６段階の場合においては、３ビット（すなわち、段階当たり６段階×０．５ビット）の分解能が不必要に失われ、固定小数点ＦＦＴの商業的実現可能性に影響を及ぼし得る。
【００４１】
ＦＦＴ出力のスケーリング：例＃２（「高」ゲイン）
様々な用途において、あまり積極的でないスケーリング技術、すなわち、上記の例１に記載されたものよりも、平均入力に対して多くのビットを失わない技術が適切であり得る。２０１５年１０月５日に出願され、参照によりその全体が本明細書に組み込まれる、係属中の米国特許出願第１４／８７５，２８１号「Ｓｃａｌｉｎｇ  Ｆｉｘｅｄ−Ｐｏｉｎｔ  Ｆａｓｔ  Ｆｏｕｒｉｅｒ  Ｔｒａｎｓｆｏｒｍｓ  ｉｎ  Ｒａｄａｒ  ａｎｄ  Ｓｏｎａｒ  Ａｐｐｌｉｃａｔｉｏｎｓ」（特許文献１）に記載されている、そのようなスケーリングの１つは、例えば、純粋な複素指数入力信号に対するＦＦＴアルゴリズムの連続するバタフライ段階の対の増大係数の逆数の２倍に等しいスケーリング係数によって、固定小数点ＦＦＴの連続するバタフライ段階の各対の出力を乗算するが、オーバーフローを防止しようとして任意のさらなるアクションを行わないことによるスケーリングを含み得る。換言すれば、図３に示されるように、２つのｒａｄｉｘ−２段階ごとに出力が２だけスケールダウンされ（すなわち、出力が事実上１／２で乗算される）、２つのｒａｄｉｘ−２段階ごとに１ビットまたは各ｒａｄｉｘ−２段階ごとに０．５ビットだけスケーリングすることになる。ｒａｄｉｘ−４段階が使用される場合、そのようなスケーリングは、各ｒａｄｉｘ−４段階の出力が２だけスケールダウンされることを伴い（図示せず）、これは事実上２つのｒａｄｉｘ−２段階ごとに２だけスケールダウンするのと同様である。
【００４２】
このようなスケーリングは、上述したように、このような入力信号がｒａｄｉｘ−２段階の対ごとの２の係数によって（またはｒａｄｉｘ−４段階ごとの２の係数によって）増大するため、実質的に不規則な入力信号に適し得る。例えば、直交周波数分割多重（ＯＦＤＭ）のようなマルチキャリアシステムにおいてデータを符号化するために使用される広帯域信号は、そのような極めて不規則な信号と考えられてよく、このスケーリングはそのような信号に使用されてもよい。
【００４３】
同時係属中の米国特許出願第１４／８７５，２８１号に記載されているように、このようなスケーリングはまた、コアクリーン信号が広帯域雑音によって劣化し得る複素指数または正弦波であり、例えば、レーダーおよびソナー用途の場合、要求される精度が雑音の増加とともに増大する実装において使用されてもよい。同時係属中の米国特許出願第１４／８７５，２８１号に記載されているように、このような実装では、スケーリングの他に、入力信号は、オーバーフローが発生した場合に、信号を「循環」させるのではなく、その最大または最小レベルにおいて飽和させる限り、飽和によってオーバーフローが可能となり得る。軽度の飽和は、信号にいくらかの雑音を追加することと等価であり、一方、完全循環は、可能な最大値で信号を劣化させる。
【００４４】
レーダー／ソナー受信機のデータ処理システムのＦＦＴアルゴリズムに提供される不規則な入力信号は、（コア信号がベースバンドでなければならないため）受信信号が非常に雑音が多いことを暗に意味する。ｒａｄｉｘ−２  ＦＦＴにおいて、極めて不規則な入力信号は、段階ごとにｓｑｒｔ（２）の係数で増大する。したがって、信号は、２つのｒａｄｉｘ−２段階ごとに、２（すなわちｓｑｒｔ（２）×ｓｑｒｔ（２））の係数で増大する。そのような増大では、２つのｒａｄｉｘ−２段階ごとに２の係数で信号をスケーリングしても、そのようなスケーリングが増大に対する十分な補償を提供するため、典型的にはオーバーフローをもたらさない。前述のように、オーバーフローによって、計算結果が正しく表されないことになり、これは受信信号を劣化させる。オーバーフローを有さないことは、受信信号が、オーバーフローによる雑音の付与によってさらに劣化しないことを意味し、したがって、段階ごとにスケーリングする保守的で低ゲインの従来のアプローチと比較してＳＮＲを増加させるが、これは、極めて不規則な信号の処理の成功にまさに必要とされていることである。
【００４５】
レーダー／ソナー受信機のＦＦＴアルゴリズムに提供される純粋な複素指数入力信号（すなわち、単一周波数を含む信号）は、受信信号が非常にクリーンで雑音がないことを暗に意味する。ｒａｄｉｘ−２  ＦＦＴにおいて、純粋な複素指数入力信号は、ｒａｄｉｘ−２段階ごとに２の係数で増大する。したがって、信号は、２つのｒａｄｉｘ−２段階ごとに、４（すなわち２×２）の係数で増大する。そのような増大では、２つのｒａｄｉｘ−２段階ごとに２の係数で信号をスケーリングすると、２つのｒａｄｉｘ−２段階ごとに４の増大を補償しないため、飽和によるオーバーフローをもたらす可能性があり、雑音を増加させ、ＳＮＲを低下させる。しかしながら、そのような低下したＳＮＲは、特定の用途において依然として許容可能であり得る。例えば、ピークの存在および位置のみが特定される必要があり、正確な大きさは特定されないレーダー／ソナー受信機では、受信反射信号はそもそも非常にクリーンで雑音がないため、ＦＦＴ出力のピークを特定するために高いＳＮＲが要求されない。
【００４６】
純粋な複素指数波形と極めて不規則な信号との間のいずれかにある入力信号は、受信信号があまりクリーンで無雑音ではないが、広帯域雑音により劣化することを暗に意味する。そのような信号が不規則信号に近いほど、雑音がより多い。ｒａｄｉｘ−２  ＦＦＴにおいて、そのような入力信号は、ｒａｄｉｘ−２段階ごとにｓｑｒｔ（２）から２の間の係数で増大する。したがって、信号は、２つのｒａｄｉｘ−２段階ごとに、２から４の間の係数で増大する。上に要約した高ゲインスケーリングは、飽和によるオーバーフローによるノイズの量と入力信号のクリーン度との間のバランスを達成することを目的とし、次いで後者は受信機によってそのような受信信号をうまく処理するために必要なＳＮＲを決定する。
−純粋に複素指数的ではないが、比較的微量の雑音を含む受信信号（すなわち、不規則信号の比較的小さい寄与を有するのみである信号）は、ｒａｄｉｘ−２段階あたり、ｓｑｒｔ（２）よりも２に近い増大係数を有し、したがって、飽和によってオーバーフローしてより多くの雑音が付与される結果となり得る（すなわちＳＮＲの減少）が、そのような信号はそもそも比較的クリーンであり、したがってうまく処理されるために高いＳＮＲを必要としないため、これは許容され得る。
−純粋に不規則ではないが、比較的大きな雑音成分を含む受信信号（すなわち、不規則信号の比較的大きな寄与を有する信号）は、ｒａｄｉｘ−２段階あたり、２よりもｓｑｒｔ（２）に近い増大係数を有し、したがって、飽和によってオーバーフローする可能性が低く、より少ない雑音が付与される結果となり得る（すなわちＳＮＲの増加）が、そのような信号はうまく処理されるために増加したＳＮＲを必要とするため、これは有利である。
【００４７】
ｒａｄｉｘ−４  ＦＦＴアルゴリズムにおいて、各ｒａｄｉｘ−４段階における増大は、純粋な複素指数入力信号の場合４の係数であり、不規則入力信号の場合２の係数である。したがって、ｒａｄｉｘ−４  ＦＦＴにおける対応するスケーリングは、上述のｒａｄｉｘ−２に対するものよりも２倍大きいスケーリングである。
【００４８】
スケールダウンは、ＦＦＴアルゴリズムの全体的なゲイン、すなわちＦＦＴへの入力が増大する係数を低下させるため、特定のスケーリングが大きいほど、そのようなスケーリングを使用するＦＦＴアルゴリズムのゲインは低くなる。したがって、図２に示されるようなＦＦＴは、図３に示されるＦＦＴと比較した場合、「低ゲイン」ＦＦＴ（より大きなスケーリング）であると見なされてもよく、これは次いで「高ゲイン」ＦＦＴとみなされる。
【００４９】
高ゲインに対する低ゲインＦＦＴ
上述したように、高ゲインを有するＦＦＴ及び低ゲインを有するＦＦＴはそれぞれ、長所と短所を有する。低ゲインＦＦＴは、段階の増大を十分に補償する（すなわち、飽和を回避する）が、分解能のビットを失うことを犠牲にしている。高ゲインＦＦＴは、場合によっては分解能のビットを節約することができるが、他の場合には段階の増大を十分に補償せず、飽和に至ることがある。大きさが制限されるようにＦＦＴへの入力信号を調整することによって飽和を回避しようとすることは可能であるが、ＦＦＴが動作可能な入力信号のダイナミックレンジを減少させ、ダイナミックレンジが制限されたＦＦＴをもたらす。
【００５０】
ＦＦＴ再構成：ハイダイナミックレンジのＦＦＴ計算
本開示の実施形態は、固定小数点ＦＦＴを生成するために、本明細書ではＦＦＴ再構成技術と呼ばれる改良された技術を提供する。本技術は、出力の増大を制限するために異なる量のスケーリングを適用する２つ以上の固定小数点ＦＦＴアルゴリズムに入力信号を提供することを含み、結果としてＦＦＴアルゴリズムのそれぞれが異なるゲインによって特徴付けられるＦＦＴ出力値のアレイを生成する。本技術はさらに、ＦＦＴ出力値ごとに（すなわち、ＦＦＴ＿ｏｕｔｐｕｔ＿ｖａｌｕｅごとに）、相対的に高いゲインを有するＦＦＴアルゴリズムの出力値が飽和によりクリッピングされたかどうかを判定することを含む。そうでなければ、そのＦＦＴアルゴリズムの出力値（すなわち、比較的高いゲインを有するＦＦＴアルゴリズム）が最終ＦＦＴに含まれる。あるいは、低ゲインを有するＦＦＴアルゴリズムの出力値が最終ＦＦＴに含まれ、その値は最終ＦＦＴの他のアレイ要素に含まれる値と一致するように適切にスケーリングされる。異なるゲインを有する少なくとも２つのＦＦＴアルゴリズムのＦＦＴ値を組み合わせることによって最終ＦＦＴを再構成することにより、それらの欠点を回避または最小限に抑えつつ、高ゲインおよび低ゲインＦＦＴの両方の利点を得ることが可能になる。
【００５１】
図４は、本開示の一実施形態による、異なるゲイン値を有する２つのＦＦＴアルゴリズムに基づいて、入力信号４０２の再構成ＦＦＴ出力４６２を生成するためのＦＦＴ再構成方法４００の概略図を提供する。少なくともプロセッサおよびメモリを含む任意のデータ処理システムは、本明細書で説明する他の実施形態の方法４００または処理を実装するように構成され得る。例示的なデータ処理システムを図１２に示す。
【００５２】
図４に示されるように、方法４００は、入力信号４０２が第１のＦＦＴアルゴリズム４１０および第２のＦＦＴアルゴリズム４２０に提供されることから開始され得る。第１および第２のＦＦＴアルゴリズムは、あるものが別のものより高いゲインを有するようなものである。図４の例は、第１のＦＦＴアルゴリズム４１０が、第２のアルゴリズム４１０のゲインＬよりも高いゲインＫを有することを示し、これは、適切に表される（すなわち、飽和により最大値にクリッピングされない）ように、第１のＦＦＴアルゴリズムのＦＦＴ出力は、第２のＦＦＴアルゴリズムのＦＦＴ出力より多くのビットを必要し得ることを意味する。換言すれば、第２のＦＦＴアルゴリズム４２０は、第１のアルゴリズムＦＦＴ４１０よりも積極的なスケーリングを適用するものである。いくつかの実施形態では、第１のＦＦＴアルゴリズム４１０は、上述の例＃２の「高」ゲインアルゴリズムであり得、一方で第２のＦＦＴアルゴリズム４２０は、上述の例＃１の「低」ゲインアルゴリズムであり得る。しかしながら、一般的に、ＦＦＴアルゴリズム４１０および４２０は、それぞれ、高ゲインおよび低ゲインによって特徴づけられた出力の増大を制限するために適用される任意の固定小数点ＦＦＴアルゴリズムおよび任意のスケーリング方法を含み得る。
【００５３】
いくつかの実施形態では、第１および第２のＦＦＴアルゴリズムは、同じ数およびタイプの段階を含み得る。例えば、両方とも６つのｒａｄｉｘ−２バタフライ段階を含み得、第１および第２のＦＦＴアルゴリズムは、それらの段階のうちの１つ以上に適用されるスケーリングのタイプが異なっている。しかし、他の実施形態では、第１および第２のＦＦＴアルゴリズムは、それぞれのゲインＫおよびＬによって依然として特徴付けられ、比較可能な出力を生成する限り、それらのそれぞれで使用される段階の数および／またはタイプが異なっていてもよい。例えば、１つのＦＦＴアルゴリズムは６つの段階を含み得、別のものは８つの段階を含み得、および／または１つのＦＦＴアルゴリズムはｒａｄｉｘ−２段階を含み、別のＦＦＴアルゴリズムはｒａｄｉｘ−４段階を含み得る。
【００５４】
第１および第２のＦＦＴアルゴリズムは、スケーリングが最初に適用される段階でも異なることがある。一般に、第１および第２のＦＦＴアルゴリズムは、期待される入力信号について、飽和が可能な第１の段階の後にスケーリングが適用されるように構成され得る。
【００５５】
いくつかの実施形態では、ゲイン係数ＫおよびＬのそれぞれは、入力ヘッドルームに基づいて選択され得る、すなわち、第１のＦＦＴアルゴリズムおよび第２のＦＦＴアルゴリズムのそれぞれの出力を表すために提供されるビット数と、入力信号を表すために使用されるビット数との差である。例えば、例えば第１および第２のＦＦＴアルゴリズムに先行して入力信号を提供するアナログデジタル変換器（ＡＤＣ）（図示せず）が１２ビットＡＤＣであるため、入力信号を表すために使用されるビット数は１２であることを考察する。さらに、第１および第２のＦＦＴアルゴリズムの両方が１６ビットアルゴリズムであること、すなわち、それらが１６ビット固定小数点表現を使用して出力を表し得ることを考察する。そのような場合、入力ヘッドルームは、各ＦＦＴアルゴリズムごとに４ビットであり、アルゴリズムは、入力ヘッドルームに対するそれらのゲインＫおよびＬの特定の関係をもたらすスケーリングを適用するように設計されてもよい。例えば、第１のＦＦＴアルゴリズム４１０は、入力ヘッドルームのゲインＫがＮの平方根に対する比に等しい結果になるようなスケーリングを適用してもよく、第２のＦＦＴアルゴリズム４２０は、ゲインＫが入力ヘッドルームのＮに対する比に等しい結果になるようなスケーリングを適用してもよく、ここで、ＮはアルゴリズムのそれぞれのＦＦＴ出力における要素の数である。
【００５６】
いくつかの実施形態では、第１および第２のＦＦＴアルゴリズムのそれぞれは、入力信号４０２のデータサンプルの行にそれぞれの水平窓ＦＦＴアルゴリズムを適用することと、続いて水平窓ＦＦＴアルゴリズムの出力にそれぞれ垂直窓ＦＦＴアルゴリズムを適用することとを含み得る。
【００５７】
一般に、第１および第２のＦＦＴアルゴリズムのそれぞれを入力信号のＩサンプルに適用すると、インデックスｎでインデックス付けされたＮ個の値を含むそれぞれのＦＦＴ出力が生成され、例えば、ｎは範囲［１：Ｎ］における整数であり得、ただし、ＦＦＴ出力が多次元アレイまたはテンソル値として表される場合の多次元インデックス付けを含む、任意のタイプのインデックス付けが使用され得る。ＦＦＴを計算するために使用される入力信号のサンプル数Ｉは、ＦＦＴ出力における値の数Ｎと等しくてもよいが、必ずしも等しい必要はない。
【００５８】
図４にＮ個の第１のＦＦＴ値Ｏｕｔｐｕｔ１［ｎ］４１２として示される、Ｎ個の第１のＦＦＴの出力値（すなわち、入力信号４０２に第１のＦＦＴアルゴリズム４１０を適用した結果）、および図４にＮ個の第２のＦＦＴ値Ｏｕｔｐｕｔ２［ｎ］４２２として示される、Ｎ個の第２のＦＦＴの出力値（すなわち、入力信号４０２に第２のＦＦＴアルゴリズム４２０を適用した結果）が、値ごとの処理ブロック４６０に提供される。
【００５９】
値ごとの処理４６０は、ＦＦＴ出力値ごとに（すなわち、全てのＮ個の異なるインデックスに対して行われる特定のインデックスｎでインデックス付けされた各出力値に対して）、飽和のためにクリッピングされなかった最高ゲインＦＦＴ出力の値を比較して選択することによって、最終ＦＦＴ出力４６２を構成するように構成される。この目的のために、値ごとの処理４６０は、インデックスｎの特定の値に対して、第１のＦＦＴ４１２のそのインデックスｎによってインデックス付けされたＦＦＴ出力値と、第２のＦＦＴ４２２のそのインデックスｎによってインデックス付けされたＦＦＴ出力値とが比較されて、それらの関係が、高ゲインＦＦＴアルゴリズムのＦＦＴ出力値がいずれかの段階でクリッピングされなかったことを示す特定の所定の条件を満たすかどうかを判定する、比較および選択４３０を含む。そのような判定を行うための様々な方法が、次のセクション「クリッピングの検出」に記載される。
【００６０】
肯定判定の場合、すなわち、第１のＦＦＴ出力値Ｏｕｔｐｕｔ１［ｎ］がクリッピングされていないと判定された場合、その値は、図４にボックス４４０で示されるように、インデックスｎでインデックス付けされた最終ＦＦＴ内の位置で最終ＦＦＴ出力４６２に加算される。否定判定の場合、すなわち、第１のＦＦＴ出力値Ｏｕｔｐｕｔ１［ｎ］がクリッピングされていると判定された場合、第２のＦＦＴ出力値Ｏｕｔｐｕｔ２［ｎ］の値に基づいて計算された値が、図４にボックス４５０で示されるように、インデックスｎでインデックス付けされた最終ＦＦＴ内の位置で最終ＦＦＴ出力４６２に加算される。Ｎ個の第１および第２のアルゴリズム４１０および４２０のＦＦＴ出力の値のそれぞれについて値ごとの処理４６０を実行することによって、最終ＦＦＴ出力４６２の値を保持するＮ個の位置が設定される。
【００６１】
典型的には、第１および第２のＦＦＴアルゴリズムを実装するデータ処理システムは、第１のＦＦＴ値Ｏｕｔｐｕｔ１［ｎ］のうちの少なくともいくつか、好ましくは大部分が、第１のＦＦＴアルゴリズム４１０のいずれの段階でもクリッピングされないように設計され、この場合、これらのＦＦＴ値は最終ＦＦＴ出力４６２に加算される。これらのうちのいくつかがクリッピングされる場合、第２のＦＦＴ４２２の対応する値は、最終ＦＦＴ出力４６２の他の値に相当するようにスケーリングされる必要がある。第１のＦＦＴアルゴリズム４１０のゲインがＫであり、第２のＦＦＴアルゴリズム４２０のゲインがＬであり、インデックスｎでインデックス付けされた第２のＦＦＴ４２２の出力値がクリッピングされていない（すなわち、Ｏｕｔｐｕｔ２［ｎ］がクリッピングされていない）場合、図４にボックス４５０で示されるように、第１のＦＦＴ４１２の対応する出力値Ｏｕｔｐｕｔ１［ｎ］は、値Ｏｕｔｐｕｔ２  ［ｎ］にＫ／Ｌを乗算することによって計算され得る。そのような値は、次いで、第１のＦＦＴ値Ｏｕｔｐｕｔ１［ｎ］がクリッピングされた場合に、インデックスｎでインデックス付けされたＦＦＴ要素として、最終ＦＦＴ出力４６２に加算され得る。
【００６２】
本明細書で提供される議論に基づいて、当業者は、図４に提供された説明を、異なるゲインを有する３つ以上のＦＦＴアルゴリズムが使用される実装に容易に拡張することができ、これらの全ては本開示の範囲内である。そのような実装は、最終ＦＦＴ出力の最高ダイナミックレンジを達成する際に、より多くの柔軟性を可能にし得る。例えば、３つのＦＦＴアルゴリズムを有するシナリオの場合、最高ゲインＦＦＴアルゴリズムの出力値［ｎ］を、他のＦＦＴアルゴリズムからの同じインデックスの１つ以上の出力値と比較し、それがクリッピングされるかどうかを判定する。そうであれば、値がクリッピングされていないと判定されるまで、次の最高ゲインＦＦＴアルゴリズムの出力値［ｎ］について同様の判定が行われ、以下同様である。次いで、最終ＦＦＴ出力は、クリッピングされなかった最高ゲインＦＦＴアルゴリズムのうちの１つ以上の出力値を取ることによって、クリッピングされず、再構成において出力値が使用された異なるＦＦＴアルゴリズムのゲインの差を説明するために適切にスケーリングされた、次に高いゲインＦＦＴアルゴリズムからの対応する出力値に基づいて残りの値を計算することによって、構成される。
【００６３】
例えば、図４の方法４００に類似したＦＦＴ再構成方法では、Ｇ１＞Ｇ２＞Ｇ３である（すなわち、第１のＦＦＴアルゴリズムが最高ゲインＧ１を有し、第３のＦＦＴアルゴリズムが最低ゲインＧ２を有する）、ゲインＧ１、Ｇ２およびＧ３を有する３つのＦＦＴアルゴリズムが実装されると考える。次いで、例えば、インデックスｎ＝１の場合、第１のアルゴリズムのインデックス［１］であるＦＦＴ出力値Ｏｕｔｐｕｔ１［１］は、飽和によってクリッピングされると判定され、第２のアルゴリズムのインデックス［１］を有するＦＦＴ出力値Ｏｕｔｐｕｔ２［１］であると考える。システムは、第３のアルゴリズムの対応するＦＦＴ出力値Ｏｕｔｐｕｔ３［１］がクリッピングされないように設計されていると仮定され得る。この場合、この値は最終ＦＦＴ出力のインデックス［１］の出力値を計算するために使用される。しかし、まず、３つのＦＦＴアルゴリズムのうち、最高ゲインを有するものがどれであり、その結果、１つ以上のＦＦＴ出力値がクリッピングされなかったと判定する必要がある。例えば、インデックスｎ＝２の場合、第１のアルゴリズムのインデックス［２］を有するＦＦＴ出力値Ｏｕｔｐｕｔ１［２］がクリッピングされないと判定されると考える。これは、このＦＦＴアルゴリズムの値が最終ＦＦＴ出力の対応する値、すなわち最終ＦＦＴ出力Ｏｕｔｐｕｔ［２］＝Ｏｕｔｐｕｔ１［２］の値として使用されることを意味する。これはまた、最終ＦＦＴ出力に配置される全ての他の値が、ゲインＧ１との差を考慮に入れてスケーリングされる必要があることを意味する。インデックスｎ＝１の例を続けると、これは、最終ＦＦＴ出力Ｏｕｔｐｕｔ［１］の値が、第３のＦＦＴアルゴリズムの対応するＦＦＴ値（クリッピングしなかった最高ゲインのもの）Ｏｕｔｐｕｔ３［１］に基づいて、Ｏｕｔｐｕｔ［１］＝Ｇ１／Ｇ３＊Ｏｕｔｐｕｔ３［１］として計算され得ることを意味する。別の例を考えると、例えば、第１のアルゴリズムのインデックス［３］を有するＦＦＴ出力値Ｏｕｔｐｕｔ１［３］がクリッピングされると判定され得るが、第２のアルゴリズムのインデックス［３］を有するＦＦＴ出力値Ｏｕｔｐｕｔ２［３］はクリッピングされると判定されない、インデックスｎ＝３の場合、第３のアルゴリズムの対応するＦＦＴ値Ｏｕｔｐｕｔ［３］はＯｕｔｐｕｔ［３］＝Ｇ１／Ｇ２＊Ｏｕｔｐｕｔ２［３］として判定され得、以下同様である。
【００６４】
異なるゲインを特徴とする複数のＦＦＴアルゴリズムへの入力信号を提供することにより、特定のゲインおよび特定のダイナミックレンジを有する単一のＦＦＴアルゴリズムのみが使用される場合に可能となる再構成ＦＦＴ出力を計算する、より高いダイナミックレンジを達成することができる。換言すれば、本明細書に記載されているようにＦＦＴ出力を再構成するために特定のダイナミックレンジを有する２つ以上のＦＦＴアルゴリズムを使用すると、最終ＦＦＴ出力のダイナミックレンジが効果的に増加する。
【００６５】
次に、値ごとの処理ブロック４６０の間に、ＦＦＴアルゴリズムの１つのうちの１つのＦＦＴ出力の特定の値［ｎ］がクリッピングされた値であるかどうかを検出するための様々な方法がある。
【００６６】
クリッピングの検出
最も簡単な実装では、上述の方法は、最高ゲインＦＦＴアルゴリズムの出力の値［ｎ］を特定の閾値と単純に比較することによって演算するように修正され得るが、そのＦＦＴアルゴリズムの出力値［ｎ］がクリッピングされる可能性が高いかどうかを判定するために、そのインデックスｎのために特別に選択される必要はない。そのような実装は計算上簡単であるが、これは、ＦＦＴ出力がＦＦＴアルゴリズムの中間段階のうちの１つで飽和した場合、飽和結果が複数の出力点に影響を及ぼすことがあり、それらのどれもが大きいわけでなければ、クリッピングが発生していないという指示を誤って提供するという欠点を有し得る。
【００６７】
したがって、好ましい実施形態では、クリッピングの検出は、１つ以上の他のＦＦＴアルゴリズムの対応する出力値との比較に基づいている。上述したような改善されたＦＦＴ計算方法で使用される複数のＦＦＴアルゴリズムのうちの少なくとも１つのＦＦＴアルゴリズムの出力の値［ｎ］がクリッピングされていないと仮定することは、うまく設計されたＦＦＴデータ処理システムにとって合理的な仮定であり、１つ以上の他の高ゲインＦＦＴアルゴリズムの対応する出力値［ｎ］をその値と比較して、それらがクリッピングされているかどうかを判定し得る。比較は、高ゲインＦＦＴアルゴリズムの全ての非飽和点の出力値、例えばゲインＫが、Ｋ／Ｌ×クリッピングされなかったゲインＬを有する低ゲインＦＦＴアルゴリズムの対応する点の値、に等しいかまたは合理的に近くなければならないという認識に基づく多くの方法で実装され得る。そのような比較を実行する例示的な実施形態のいくつかを以下に説明する。この説明に基づいて、当業者は他の比較手法を想起することができ、その全ては本開示の範囲内である。
【００６８】
図４に示されるように２つのＦＦＴアルゴリズムが実装された例を続けると、一実施形態では、第１の値Ｏｕｔｐｕｔ１［ｎ］（すなわち、高ゲインＦＦＴアルゴリズムのインデックス［ｎ］の出力）と第２の値Ｏｕｔｐｕｔ２［ｎ］との比較は、クリッピングされていない第１の値Ｏｕｔｐｕｔ１［ｎ］が、第２の値Ｏｕｔｐｕｔ２［ｎ］にＫ／Ｌを乗算することと、乗算の結果から第１の値Ｏｕｔｐｕｔ１［ｎ］を減算することと、次いで減算の結果が少なくともゼロの値を含む所定の範囲内にあるかどうかを判定するために結果を評価することと、を含み得ることを示す条件を満たす。様々な実施形態では、この場合の所定の範囲は、例えば、負の値と正の値との絶対値が異なる特定の負の値から特定の正の値まで、ゼロを中心とする特定の範囲の値であり得、ゼロの１つの値を含むのみであり得、またはゼロを中心としない値の範囲であり得る。好ましくは、範囲は、第１の値Ｏｕｔｐｕｔ１［ｎ］（すなわち、高ゲインＦＦＴアルゴリズムのインデックス［ｎ］の出力）が、その値が実際にはクリッピングされていないときにクリッピングされるという誤った結論の可能性を減らすような方法で定義される。
【００６９】
例えば、（Ｏｕｔｐｕｔ１［ｎ］−Ｋ／Ｌ＊Ｏｕｔｐｕｔ２［ｎ］）の絶対値がある特定の閾値Ｔ１と比較される（すなわち、範囲が［−Ｔ１〜Ｔ１］である）ことを考察する。第１のＦＦＴアルゴリズム４１０が飽和しなかった場合であっても、範囲が「狭すぎる」（すなわち、Ｔ１が小さすぎる）ことによって、第２のＦＦＴアルゴリズム４２０が選択され、本明細書で説明される改良された方法の値が否定される結果となり得る。範囲をあまりにも「広い」（すなわち、Ｔ１が大きすぎる）ようにすることは、飽和していたとしても第１のＦＦＴアルゴリズム４１０を選択する結果となり得る。一般に、範囲は、第２の（すなわち、低ゲインの）ＦＦＴアルゴリズムの最悪の場合の精度よりも低くすべきではなく、ＦＦＴアルゴリズムの「精度」とは、特定の固定小数点ＦＦＴアルゴリズムの出力と無限精度の理想的な計算との比較を指す。例えば、閾値はこの精度の２倍、例えば２＊ｓｑｒｔ（Ｎ）／（入力ヘッドルーム）として選択され得る。したがって、一実施形態では、比較は、ａｂｓ（Ｏｕｔｐｕｔ１［ｎ］−（Ｋ／Ｌ）＊Ｏｕｔｐｕｔ２［ｎ］）＜２＊ｓｑｒｔ（Ｎ）／（Ｉｎｐｕｔ  Ｈｅａｄｒｏｏｍ）とすることができる。
【００７０】
上記のような乗算および減算テストは、効果的に、多くの方法で実行され得、その全てが本開示の範囲内にある。例えば、（（Ｋ／Ｌ）＊Ｏｕｔｐｕｔ２［ｎ］−Ｏｕｔｐｕｔ１［ｎ］）を計算し、その結果を少なくともゼロの値を含むある特定の第１の範囲と比較することによって、上記のように正確に実行され得る。代替として、（Ｏｕｔｐｕｔ１［ｎ］−（Ｋ／Ｌ）＊Ｏｕｔｐｕｔ２［ｎ］）を計算し、その結果を、その範囲が第１の範囲と異なり得る、少なくとも０の値を含むある特定の第２の範囲と比較することによって実行されてもよく、またはこれらの減算のいずれかの絶対値を計算し、その結果をある特定の閾値と比較することによって実行されてもよい。
【００７１】
ＦＦＴゲインＫおよびＬは、通常２の累乗で表され得、すなわちＫ／Ｌは２Ｍに等しく、Ｍは整数であることに留意されたい。そのような場合、Ｋ／Ｌによる乗算は、固定値シフタ（これは、ハードウェアで実装され得、対応するソフトウェア論理を有する必要性を排除することができる）で実装されて、Ｍビットの左シフトを第２の値Ｏｕｔｐｕｔ２［ｎ］に適用することができる。
【００７２】
別の実施形態では、再び図４に示されるように２つのＦＦＴアルゴリズムが実装されている例に続けて、第１の値Ｏｕｔｐｕｔ１［ｎ］（すなわち、高ゲインＦＦＴアルゴリズムのインデックス［ｎ］の出力）と第２の値Ｏｕｔｐｕｔ２［ｎ］との比較は、第１の値Ｏｕｔｐｕｔ１［ｎ］がクリッピングされていないことを示し、第１のＯｕｔｐｕｔ１［ｎ］を第２の値Ｏｕｔｐｕｔ２［ｎ］で除算し、除算の結果が少なくともＫ／Ｌの値を含む所定の範囲内にあるかどうかを判定する、条件を満たす。当業者は、上記に提供された範囲に関する考察に基づいて、この場合に適切な範囲を選択するための考察を得ることができるであろう。
【００７３】
比較を実行するさらに他の実施形態は、データ処理システムがデカルト領域から対数領域に値を変換することができる１つ以上の対数回路と、場合によっては逆変換可能な１つ以上の指数回路を含む場合に使用され得る。この実施形態は、例えば、０と１との間の数を表すときのものより大きいダイナミックレンジを目的として使用され得る、例えばｌｏｇ２およびｅｘｐ２命令を用いて、対数および指数を計算するための命令で構成されているいくつかのプロセッサの認識に基づいている。対数および指数を計算するためのプロセッサ命令は、以下ではそれぞれ「ｌｏｇ回路」および「ｅｘｐ回路」と呼ばれる。この実施形態はさらに、既存のｌｏｇおよびｅｘｐ回路の使用が、既存のｌｏｇおよびｅｘｐ回路を使用してデカルト座標から対数領域への変換およびその逆の変換を行うことによって、対数領域での関数の実際の計算を実行することによって（そうすることによってデカルト領域での計算を実行することよりも計算が簡単になり得るため）、ある特定の他の関数を計算するために拡張され得るという考察に基づいている。例えば、以下の方程式によって示されるように、このようなアプローチは、デカルト領域における乗算および除算が対数領域における単純な加算および減算に変換されるため、プロセッサが乗算または除算命令を有していない場合に、除算および乗算のような関数に有用であり得る。
【００７４】
【数１】
2019506679.tif 000003
【００７５】
このアプローチによれば、一実施形態では、第１の値Ｏｕｔｐｕｔ１［ｎ］と第２の値Ｏｕｔｐｕｔ２［ｎ］との比較が条件を満たすかどうかを判定することは、第１の値Ｏｕｔｐｕｔ１［ｎ］の対数を計算することと、第２の値Ｏｕｔｐｕｔ２［ｎ］の対数を計算することと、第１の値Ｏｕｔｐｕｔ１［ｎ］の対数から第２の値Ｏｕｔｐｕｔ２［ｎ］の対数を減算することと、減算の結果が少なくとも、あらかじめ計算されて参照のために記憶され得るｌｏｇ（Ｋ／Ｌ）の値を含む所定の範囲内にあるかどうかを判定することと、を含み得る。このような実施形態では、比較はｌｏｇ領域で実行される。しかしながら、他の実施形態では、比較は、まず、減算の結果の指数を計算し、次いで、指数が少なくともＫ／Ｌの値を含む所定の対応する範囲内にあるかどうかを判定することによって、デカルト領域で実行され得る。これらの実施形態の全てにおいて、改めて、当業者は、上記に提供された範囲に関する考察に基づいて、この場合に適切な範囲を選択するための考察を導くことができるであろう。
【００７６】
シミュレーション結果
図５〜図１０は、＋３２，７６７または−３２，７６８の値で飽和するように構成された例示的な符号付き固定小数点１６ビット整数ＦＦＴのシミュレーション結果を提供する。次の「３２Ｋ」と呼ばれる３２，７６７の値は、この例の固定小数点ＦＦＴ実装で表され得る最大値であり、これは、符号付き１６ビット整数（３２，７６７＝２１５−１）の最大の可能な値であるためである。換言すれば、循環ではなく飽和した１６ビット整数は、３２，７６７＝０ｘ７ＦＦＦでの正の飽和、および−３２，７６８＝０ｘ８０００での負の飽和を暗に意味する。
【００７７】
図５は、いくつかの雑音を含む例示的な入力信号の実数部および虚数部を示すプロット５００を示す。図５では、曲線５０２は、そのような雑音の多い複素入力波形の実数部を表し、曲線５０４は、虚数部を表す。
【００７８】
図５に示されるように、波形の振幅は約１４Ｋ、すなわちＦＦＴの全符号付き１６ビットダイナミックレンジのほぼ半分である。ちょうど１６ビットで行われ、ｒａｄｉｘ−２段階ごとに０．５ビットのスケーリングを使用すると、ＦＦＴアルゴリズムが大幅に飽和する。図６は、図４のような入力波形の２５６点ＦＦＴのシミュレーション結果を示し、ＦＦＴピーク６０２を有する曲線として示されるように、ＦＦＴピーク６０４を用いて、理想のＦＦＴモデル（すなわち、同じ入力波形についてＦＦＴを計算した結果であるが、飽和のためのクリッピングがない場合の結果）に重ね合わされた、ｒａｄｉｘ−２段階ごとについて０．５ビットによるスケーリングを実装するプロット６００を示す。このシミュレーションでは、ビットの増大に起因する精度の損失を確実に防ぐために、理想的なモデルが１６ビットの回転であるが、ＦＦＴの数値による３２ビットのデータを維持しながら計算された。
【００７９】
図５に示されるような高レベル入力であっても、ＦＦＴアルゴリズムを適用したＦＦＴ結果は、ピーク６０２がはっきりと識別可能である点で適切であることに留意されたい。しかしながら、ピーク６０２が理想的なＦＦＴのピーク６０４よりも顕著に小さいことが示されているように、顕著なクリッピングが基本ビンで発生し、このことは、ピーク６０２を有するノンアイディアＦＦＴが最大値３２Ｋで飽和したためであることが理解できる。いくらかのクリッピングはまた、他のビンでも発生したが、それは図６ではそれほど顕著ではない。対照的に、図７は、本開示の一実施形態に従って計算された再構成ＦＦＴ出力を示すプロット７００を示し、高ゲインおよび低ゲインのＦＦＴが使用された（低ゲインの場合は上記の例＃１、高ゲインの場合は上記の例＃２）、また図５の入力波形の理想的なＦＦＴモデルに重ね合わされた。この場合、顕著な不一致は全く観察されず、本開示の一実施形態に従って計算されたＦＦＴ出力のプロットは、ピーク７０２を有する単一のプロットとして示されるアイデアＦＦＴのプロットと実質的に同じように見える。
【００８０】
図８は、図５と同じ入力信号を示しているが、振幅が倍になっている。図８の入力信号は、ほぼ利用可能な全ダイナミックレンジにあることに留意されたい。図８では、曲線８０２は、そのような雑音の多い複素入力波形の実数部を表し、曲線８０４は、虚数部を表す。
【００８１】
図９は、本開示のいくつかの実施形態による、図８に示すような入力波形の２５６点ＦＦＴのシミュレーション結果を示し、ＦＦＴピーク９０４を有する曲線として示される、同じ入力波形に対する理想的な３２ビットＦＦＴモデルの結果に重ね合わされた、ＦＦＴピーク９０２を有する曲線として示される、ｒａｄｉｘ−２段階ごとの０．５ビットによるスケーリングを実装するプロットを示す。ピーク９０２とピーク９０４との間にははっきりと顕著な不一致が存在し、最も重要なことには、基本ビンのピーク（すなわちピーク９０２）でさえもはや、図９に示される低振幅のピークの残りの部分から明確に区別することができない。
【００８２】
対照的に、図１０は、図７のものと同様のプロットを示すが、図８の入力信号を有する。したがって、図１０は、高ゲインおよび低ゲインのＦＦＴが使用された（低ゲインの場合は上述の例＃１、高ゲインの場合は上述の例＃２）、本開示の実施形態に従って計算され、また図８の入力波形の理想的なＦＦＴモデルに重ね合わされた、再構成ＦＦＴ出力を示すプロット１０００を示す。図７の場合と同様に、図１０のこの場合、顕著な不一致は全く観察されないが、本開示の一実施形態に従って計算されたＦＦＴ出力のプロットは、ピーク１００２を有する単一のプロットとして示されるように、アイデアＦＦＴのプロットと実質的に同じように見える。
【００８３】
理想的なＦＦＴモデル（１６ビット回転、３２ビットデータ）の計算には、本明細書で提案されたＦＦＴ再構成方法による再構成ＦＦＴ出力の計算よりもかなり多くの数学演算が必要であることに留意すべきである。１６ビット回転を乗算するたびに、３２ビットデータは２つの１６ビット乗算を必要とし、ＦＦＴ段階ごとにシフトと加算を行うが、本明細書において提案されている改良されたＦＦＴ計算は、各点につき１回、最後のみその再構成を実行する。レーダー／ソナー用途のいくつかの実施形態では、本明細書に記載のようなＦＦＴ出力再構成を適用する前に、全範囲ＦＦＴを行い、次に全ての速度ＦＦＴを行い、その後に大きさを行うことさえ可能である。
【００８４】
位相のみのＦＦＴ
上に提供された説明は、ＦＦＴアルゴリズムによって計算される入力信号の異なる周波数成分の大きさを表す複素数値および／または実数値が分析されるＦＦＴアルゴリズムに、すなわち、大きさを表す複素数値または実数値のいずれかを含むＦＦＴに適用可能である。ＦＦＴの計算を必要とするシステムの大部分は、そのようなＦＦＴアルゴリズムを使用する。しかしながら、いくつかのシステムは、入力信号の様々な周波数成分の位相のみを使用して、環境について結論付ける。例えば、いくつかの音源位置同定システム、すなわち、対象となる音源の空間的位置に関して結論付けようとするシステムは、ＦＦＴの大きさまたは複雑な値を有する必要がないアルゴリズムを使用するが、位相を使用するだけで音源の位置を判定する。このようなアルゴリズムは、「位相変換」、「ＰＨＡＴ」または「ＰＨＡＴ重み付け」アルゴリズムと呼ばれることがある。さらに、いくつかの音源分離システム、すなわち、対象となる様々な音源の総音響環境に対する個々の寄与について結論付けようとするシステムではまた、いくつかのブラインド音源分離法に従って音源分離を実行するために位相情報のみを使用するアルゴリズム、例えば、時間−周波数ビンが局在化合図として位相を使用してどの源に属するかに従ってクラスタリングされるＤＵＥＴアルゴリズム等を使用する。
【００８５】
上に提供された説明は、再構成技術をわずかに適合させることによって、位相のみのＦＦＴに適用可能となり、スカラーによる複素数値のスケーリングが、スカラーが正であれば複素数の位相を変化させず、スカラーが負であれば位相を逆転させるという事実を説明し得る。これは、２つ以上のＦＦＴアルゴリズムのＦＦＴ出力値が、アルゴリズムによって計算された複素値の位相を表す実数値である場合（ａ＋ｉｂとして表される複素値ｘについて、ａは実数部であり、ｂは複素値ｘの虚数部であり、位相はｂ／ａの逆正接、すなわち位相＝逆正接（ｂ／ａ）として計算され）、高ゲインＦＦＴアルゴリズムの特定の出力値［ｎ］がクリッピングされたかどうかについてのテストは、その出力値の位相を、クリッピングされていないと思われる低ゲインＦＦＴアルゴリズムの出力値［ｎ］の位相と単純に比較することである。位相が等しいか、またはそれらの差がある特定の所定の範囲内にあるようにほぼ等しい場合、これは高ゲインＦＦＴ値のクリッピングがなく、その値は最終ＦＦＴ出力の値［ｎ］として使用され得ることを示す。あるいは、低ゲインＦＦＴアルゴリズムの値が最終ＦＦＴにおいて使用される（すなわち、これは、大きさを表す複素数値および実数値に関して上記で提供された説明に関する第２の差であり、高ゲインＦＦＴのクリッピングが判定された場合、いくつかの例について上述したように、例えばゲインの差を説明するこの値をスケーリングすることなく、例えばＫ／Ｌによってスケーリングすることなく、最終ＦＦＴは低ゲインＦＦＴの位相値を含むことになる）。
【００８６】
特定のＦＦＴ値［ｎ］のクリッピングが発生したかどうかを判定するための適切な範囲を選択することに関して上記で提供されたものと同様の考察がここに当てはまり、したがって、簡潔にするために繰り返さない。
【００８７】
ＦＦＴ再構成アルゴリズムを利用する例示的な方法
図１１は、本明細書に記載のようなＦＦＴ再構成アルゴリズムを利用した方法の例示的なフロー図１１００を示す。そのような方法は、例えば図１２に示されるデータ処理システム１２００等の、少なくともプロセッサおよびメモリを備える任意のデータ処理システムにより実行され得る。そのようなデータ処理システムは、レーダーまたはソナーシステム、特にレーダーまたはソナー受信機内に含まれても、またはそれらに通信可能に接続されてもよい。
【００８８】
方法１１００は、まず、レーダーまたはソナー送信機が、対象となる１つ以上の物体により反射され、レーダーまたはソナー受信機により取得される信号を送信すると仮定する。そのような信号は、好ましくは、チャープ信号である。
【００８９】
方法１１００は、データ処理システムがレーダー受信機のレーダーアンテナまたはソナー受信機のソナーセンサにより検出される信号を示す入力信号を得ることから開始し得る（図１１のボックス１１０２）。検出された信号は、対象となる１つ以上の物体から反射された、レーダーまたはソナー送信機により送信された信号を含む。送信された信号は、チャープ信号であってもよく、この場合、検出される信号もまたチャープ信号を含む。様々な実施形態において、データ処理システムは、例えば、無線またはソナー受信機により取得された信号を受信および場合によっては前処理するように構成される、レーダーまたはソナー受信機のアナログフロントエンドから入力信号を受信し得る。いくつかの実施形態において、アナログフロントエンドは、（所望により）取得されたアナログ信号をデータ処理システムに提供された入力信号のデータサンプルに変換してもよい。
【００９０】
図１１のボックス１１０４で示されるように、次いでデータ処理システムは、本明細書に記載のようなＦＦＴ再構成を適用してもよい。そのために、データ処理システムは、例えば、図４に関して上述されたようなステップを実行することができる。
【００９１】
いくつかの実施形態では、図４に関して上述された第１および第２のＦＦＴアルゴリズムによるＦＦＴ計算は、データ矩形に対して水平（すなわち範囲）窓ＦＦＴを、続いて必須ではないが好ましくは垂直（速度）窓ＦＦＴを実行することを含むことができる。したがって、データ処理システムは、以下のステップのピーク特定の前に、水平ＦＦＴの結果に対して垂直ＦＦＴを実行してもよい。検出された物体の速度ではなく範囲のみが対象となる実装においては、データ処理システムは、水平ＦＦＴの出力に対してピーク特定を実行するように構成され得る。換言すれば、そのような実装において、データ処理システムは、入力信号に対して水平ＦＦＴを実行し、その結果を、周波数をインデックス付けする１次元アレイに配置するのみであり、それから、その物体に起因し得ると判定されたピークの周波数に基づいて物体までの距離が判定され得る。
【００９２】
データ処理システムがＦＦＴ再構成アルゴリズムの適用の出力を得ると、データ処理システムは、再構成ＦＦＴ出力内に存在し得るゼロ以上のピークを特定するように構成される（図１１のボックス１１０６）。本明細書において前述したように、ピークを特定するための手法は、当業者に知られており、ピークを特定するための既知の手段およびアルゴリズムのいずれも、本開示の範囲内である。
【００９３】
再構成ＦＦＴ出力において特定されたピーク（複数を含む）に基づいて、データ処理システムは、場合によっては対象となる各物体に対して、例えばレーダー／ソナー受信機または送信機に対する物体までの距離の指示、物体の速度の指示、物体の移動方向の指示、および物体の位置の指示等のうちの１つ以上を判定し得る（図１１のボックス１１０８）。そのために、本明細書に記載のように、データ処理システムは、物体の位置および移動に関する情報を判定するために、特定されたピークのｘおよびｙ座標を判定する。レーダー受信機のＦＦＴ出力における特定されたピークに基づいて、物体までの距離、その位置、その移動方向および／またはその速度を判定するための様々な手法が、当該技術分野において知られており、本開示の範囲内である。
【００９４】
本明細書において前述したように、本明細書において提案されるＦＦＴ再構成方法は、レーダーおよびソナー用途に限定されない。結果として、図１１に示されるものと同様の方法が想定され、本開示の範囲内であり、ボックス１１０２は、レーダーまたはソナーである必要がなく、例えば音響信号を受信したことに基づく入力信号等の、任意の他の対象となる受信された信号を示す入力信号を得ることを含むことができ、ボックス１１０８は、例えば、受信された音響信号からの雑音フィルタリングまたは音源分離（すなわち、受信された全音響信号からの個々の音源からの寄与の分離）等の、再構成ＦＦＴ出力に基づいて対象となる他のパラメータを判定することを含むことができる。
【００９５】
例示的なデータ処理システム
図１２は、本開示のいくつかの実施形態による、例示的なデータ処理システム１２００を示すブロック図を示す。
【００９６】
図１２に示されるように、データ処理システム１２００は、システムバス１２０６を介してメモリ要素１２０４に結合された少なくとも１つのプロセッサ１２０２を含んでもよい。したがって、データ処理システムは、メモリ要素１２０４内にプログラムコードを記憶し得る。さらに、プロセッサ１２０２は、システムバス１２０６を介してメモリ要素１２０４からアクセスされ得るプログラムコードを実行し得る。一態様において、データ処理システムは、プログラムコードを記憶および／または実行するのに好適なコンピュータとして実装されてもよい。しかしながら、データ処理システム１２００は、本開示内で説明された機能を実行することができるプロセッサおよびメモリを含む任意のシステムの形態で実装されてもよいことが理解されるべきである。
【００９７】
メモリ要素１２０４は、例えばローカルメモリ１２０８および１つ以上のバルク記憶デバイス１２１０等の１つ以上の物理メモリデバイスを含んでもよい。ローカルメモリは、プログラムコードの実際の実行中に一般に使用されるランダムアクセスメモリまたは他の非永続型メモリデバイス（複数を含む）を指し得る。バルク記憶デバイスは、ハードドライブまたは他の永続型データ記憶デバイスとして実装され得る。処理システム１２００はまた、プログラムコードが実行中にバルク記憶デバイス１２１０から読み出されなければならない回数を低減するために、少なくともいくつかのプログラムコードの一時的記憶を提供する１つ以上のキャッシュメモリ（図示せず）を含んでもよい。
【００９８】
任意選択で、入力デバイス１２１２および出力デバイス１２１４として描かれる入力／出力（Ｉ／Ｏ）デバイスが、データ処理システムに結合され得る。入力デバイスの例は、キーボード、マウス等のポインティングデバイス等を含み得るが、これらに限定されない。出力デバイスの例は、モニタまたはディスプレイ、スピーカー等を含み得るが、これらに限定されない。入力および／または出力デバイスは、直接的に、または介在するＩ／Ｏコントローラを介してデータ処理システムに結合されてもよい。
【００９９】
一実施形態において、入力および出力デバイスは、組み合わされた入力／出力デバイス（図１２において、入力デバイス１２１２および出力デバイス１２１４を囲む破線で示される）として実装されてもよい。そのような組み合わされたデバイスの例は、時折「タッチスクリーンディスプレイ」または単に「タッチスクリーン」とも呼ばれる、接触感知式ディスプレイである。そのような実施形態において、デバイスへの入力は、タッチスクリーンディスプレイ上またはその付近での、物理的な物体、例えばスタイラスまたはユーザの指等の動きにより提供され得る。
【０１００】
介在するプライベートまたは公衆ネットワークを介して他のシステム、コンピュータシステム、遠隔ネットワークデバイス、および／または遠隔記憶デバイスに結合されることを可能にするために、ネットワークアダプタ１２１６もまた任意選択でデータ処理システムに結合されてもよい。ネットワークアダプタは、前記システム、デバイスおよび／またはネットワークによりデータ処理システム１２００に送信されたデータを受信するためのデータ受信機と、データ処理システム１２００から前記システム、デバイスおよび／またはネットワークにデータを送信するためのデータ送信機とを備えてもよい。モデム、ケーブルモデム、およびイーサネット（登録商標）カードは、データ処理システム１２００とともに使用され得る異なる種類のネットワークアダプタの例である。
【０１０１】
図１２において描かれているように、メモリ要素１２０４は、アプリケーション１２１８を記憶し得る。様々な実施形態において、アプリケーション１２１８は、ローカルメモリ１２０８内に、１つ以上のバルク記憶デバイス１２１０内に、またはローカルメモリおよびバルク記憶デバイスから離れて記憶されてもよい。データ処理システム１２００は、アプリケーション１２１８の実行を容易化し得るオペレーティングシステム（図１２には示されていない）をさらに実行し得ることが認識されるべきである。実行可能なプログラムコードの形態で実装されているアプリケーション１２１８は、データ処理システム１２００により、例えばプロセッサ１２０２により実行され得る。アプリケーションの実行に応答して、データ処理システム１２００は、本明細書に記載の１つ以上のＦＦＴ再構成演算または方法ステップを実行するように構成され得る。
【０１０２】
ＦＦＴ再構成を利用した例示的レーダーまたはソナーシステム
図１３は、本開示のいくつかの実施形態による、ＦＦＴ再構成方法を実装するように構成される例示的システム１３００のシステム図を示す。いくつかの実施形態では、システム１３００は、無線またはソナーシステムであってもよく、そのような実施形態では、システム１３００は、物体から反射される信号を送信するための送信機１３０２を含み、これは、システム１３００がレーダーシステムである場合にはレーダー送信機であり、システム１３００がソナーシステムである場合にはソナー送信機である。
【０１０３】
送信機１３０２は、チャープ信号生成器を含んでもよい。チャープ信号を生成するための様々な手段、例えばＹＩＧ発振器の使用、電圧調節発振器（ＶＣＯ）を有するアナログ回路および線形もしくは指数関数的ランプ制御電圧の使用、またはデジタル信号プロセッサ（ＤＳＰ）、デジタル−アナログ変換器（ＤＡＣ）、およびダイレクトデジタルシンセサイザ（ＤＤＳ）をデジタル的に使用し、数値制御発振器においてステップを変化させることによるデジタルでのチャープ信号の生成等が、当該技術分野において知られている。チャープ信号を生成するための手段および様式の全てが、本開示の範囲内である。
【０１０４】
システム１３００は、信号を検出するためのセンサ１３０４を、例えば、システム１３００がレーダーシステムである場合は１つ以上の無線アンテナを、システム１３００がソナーシステムである場合は１つ以上のソナーセンサをさらに含む。
【０１０５】
システム１３００はまた、ＦＦＴ再構成方法を実行し、本明細書に記載のデータ処理機能の様々な態様を実装するための、少なくともプロセッサ１３１０およびメモリ１３１２を備えるデータ処理システム１３０８を含んでもよい。いくつかの実施形態において、データ処理システム１３０８は、図１２に示すシステム１２００として実装されてもよい。
【０１０６】
いくつかの実施形態において、データ処理システム１３０８は、図１１に示される方法１１００、および本明細書に記載の他の処理特徴、例えば上述の「ＦＦＴの基本、ならびにレーダーおよびソナー用途におけるＦＦＴの使用例」の項に記載の処理等を実行するように構成され得る。
【０１０７】
任意選択で、受信機はまた、データ処理システム１３０８への入力信号として調整された信号を供給する前に、受信機１３０４により取得されたままの信号を調整するように構成された、信号調整器１３０６を含んでもよい。そのような調整は、例えばアナログ−デジタル変換、１つ以上の所定の基準に基づくフィルタリング（例えば、周波数の限定された帯域内の信号のみを処理するための帯域フィルタの適用）、増幅等のうちの１つ以上を含んでもよい。
【０１０８】
本明細書に記載のようなＦＦＴ再構成の実装は、固定小数点ＦＦＴを使用したハイダイナミックレンジシステム１３００の実装を可能にし、システムのコストおよび消費電力を有利に減少させる。
【０１０９】
図１３は、システム１３００内に含まれるデータ処理システム１３０８を示しているが、他の実施形態において、データ処理システム１３０８は、システム１３００の外部に実装されてもよく、この場合、データ処理システム１３０８は、任意の適切な通信チャネルを介してシステム１３００を遠隔で制御するように構成され得る。換言すれば、図１３に示されるようにシステム１３００内に実装される代わりに、データ処理システム１３０８は、システム１３００の外部にあり、システム１３００に通信可能に結合されてもよい。
【０１１０】
実施例
実施例１は、入力信号の高速フーリエ変換（ＦＦＴ）を生成するためのコンピュータ実装方法を提供する。方法は、入力信号に第１の複数段階ＦＦＴアルゴリズムを適用して、インデックスｎでインデックス付けされたＮ個の第１の値Ｏｕｔｐｕｔ１［ｎ］を含む第１のＦＦＴを生成することであって、第１のＦＦＴアルゴリズムが、第１のＦＦＴアルゴリズムのゲインがＫであるように、第１のＦＦＴアルゴリズムの１つ以上の段階の出力をスケーリングするように構成される、生成することと、入力信号に第２の複数段階ＦＦＴアルゴリズムを適用して、インデックスｎでインデックス付けされたＮ個の第２の値Ｏｕｔｐｕｔ２［ｎ］を含む第２のＦＦＴを生成することであって、第２のＦＦＴアルゴリズムが、第２のＦＦＴアルゴリズムのゲインがＬであるように、第２のＦＦＴアルゴリズムの１つ以上の段階の出力をスケーリングするように構成され、ＬがＫより小さい、生成することと、各インデックスｎについて、第１の値Ｏｕｔｐｕｔ１［ｎ］と第２の値Ｏｕｔｐｕｔ２［ｎ］との比較が所定の条件を満たすかどうかを判定することと、肯定判定の場合（すなわち、第１のＦＦＴの出力値［ｎ］が飽和によってクリッピングされていないことが判定されたとき）、ＦＦＴ値Ｏｕｔｐｕｔ［ｎ］として第１の値Ｏｕｔｐｕｔ１［ｎ］を含めること、および否定判定の場合（すなわち、第１のＦＦＴの出力値［ｎ］が飽和によってクリッピングされていると判定されたとき）、ＦＦＴ値Ｏｕｔｐｕｔ［ｎ］として第２の値Ｏｕｔｐｕｔ２［ｎ］に基づく値を含めることと、によって、インデックスｎでインデックス付けされたＮ個のＦＦＴ値Ｏｕｔｐｕｔ［ｎ］を含むＦＦＴを生成することと、を含む。
【０１１１】
実施例２は、ＦＦＴ値Ｏｕｔｐｕｔ［ｎ］として第２の値Ｏｕｔｐｕｔ２［ｎ］に基づく値を含めることが、ＦＦＴ値Ｏｕｔｐｕｔ［ｎ］として第２の値Ｏｕｔｐｕｔ２［ｎ］を乗算したＫ／Ｌの値を含めることを含む、実施例１に記載の方法を提供する。
【０１１２】
実施例３は、第１の値Ｏｕｔｐｕｔ１［ｎ］と第２の値Ｏｕｔｐｕｔ２［ｎ］との比較が条件を満たすかどうかを判定することが、第２の値Ｏｕｔｐｕｔ２［ｎ］にＫ／Ｌを乗算することと、 乗算の結果から、第１の値Ｏｕｔｐｕｔ１［ｎ］を減算することと、減算の結果が少なくともゼロの値を含む所定の範囲内にあるかどうかを判定することと、を含む、実施例１または２に記載の方法を提供する。
【０１１３】
実施例４は、Ｋ／Ｌが２Ｍに等しく、Ｍが整数であり、前記乗算がＭビットの左シフトを前記第２の値Ｏｕｔｐｕｔ２［ｎ］に適用することを含む、実施例３に記載の方法を提供する。
【０１１４】
実施例５は、第１の値Ｏｕｔｐｕｔ１［ｎ］と第２の値Ｏｕｔｐｕｔ２［ｎ］との比較が条件を満たすかどうかを判定することが、第１のＯｕｔｐｕｔ１［ｎ］を第２の値Ｏｕｔｐｕｔ２［ｎ］で除算することと、除算結果が少なくともＫ／Ｌの値を含む所定の範囲内にあるかどうかを判定することと、を含む、実施例１または２に記載の方法を提供する。
【０１１５】
実施例６は、第１の値Ｏｕｔｐｕｔ１［ｎ］と第２の値Ｏｕｔｐｕｔ２［ｎ］との比較が条件を満たすかどうかを判定することが、第１の値Ｏｕｔｐｕｔ１［ｎ］の対数を計算することと、第２の値Ｏｕｔｐｕｔ２［ｎ］の対数を計算することと、第１の値Ｏｕｔｐｕｔ１［ｎ］の対数から第２の値Ｏｕｔｐｕｔ２［ｎ］の対数を減算することと、減算の結果が少なくとも、ｌｏｇ（Ｋ／Ｌ）の値を含む所定の範囲内にあるかどうかを判定することと、を含む、実施例１または２に記載の方法を提供する。
【０１１６】
実施例７は、Ｎ個の第１の値Ｏｕｔｐｕｔ１［ｎ］、Ｎ個の第２の値Ｏｕｔｐｕｔ２［ｎ］、およびＮ個のＦＦＴ値Ｏｕｔｐｕｔ［ｎ］が、入力信号内に存在する１つ以上の周波数寄与のそれぞれの大きさを示す実数値を含む、実施例１〜６のいずれか１つに記載の方法を提供する。
【０１１７】
実施例８は、Ｎ個の第１の値Ｏｕｔｐｕｔ１［ｎ］、Ｎ個の第２の値Ｏｕｔｐｕｔ２［ｎ］、およびＮ個のＦＦＴ値Ｏｕｔｐｕｔ［ｎ］は、入力信号内に存在する１つ以上の周波数寄与のそれぞれの大きさおよび位相を示す複素数値を含む、実施例１〜７のいずれか１つに記載の方法を提供する。
【０１１８】
実施例９は、ＦＦＴ値Ｏｕｔｐｕｔ［ｎ］として第２の値Ｏｕｔｐｕｔ２［ｎ］に基づく値を含めることが、ＦＦＴ値Ｏｕｔｐｕｔ［ｎ］として第２の値Ｏｕｔｐｕｔ２［ｎ］を含めることを含む、実施例１に記載の方法を提供する。
【０１１９】
実施例１０は、第１の値Ｏｕｔｐｕｔ１［ｎ］と第２の値Ｏｕｔｐｕｔ２［ｎ］との比較が条件を満たすかどうかを判定することが、第１の値Ｏｕｔｐｕｔ１［ｎ］と第２の値Ｏｕｔｐｕｔ２［ｎ］との差が少なくともゼロの値を含む所定の範囲内にあるかどうかを判定することを含む、実施例９に記載の方法を提供する。
【０１２０】
実施例１１は、Ｎ個の第１の値Ｏｕｔｐｕｔ１［ｎ］、Ｎ個の第２の値Ｏｕｔｐｕｔ２［ｎ］、およびＮ個のＦＦＴ値Ｏｕｔｐｕｔ［ｎ］が、入力信号内に存在する１つ以上の周波数寄与のそれぞれの位相を示す実数値を含む、実施例９または１０に記載の方法を提供する。
【０１２１】
実施例１２は、第１のＦＦＴアルゴリズムが、２つ以上のバタフライ段階を含むＦＦＴアルゴリズムであり、第１のＦＦＴアルゴリズムの１つ以上の段階の出力をスケーリングすることが、複素指数入力信号に対する第１のＦＦＴアルゴリズムのバタフライ段階の対に対する増大係数の逆数の２倍に等しいスケーリング係数によってバタフライ段階の全ての対の出力をスケーリングすることを含む、実施例１〜１１のいずれか１つに記載の方法を提供する。
【０１２２】
実施例１３は、第１のＦＦＴアルゴリズムが、ｒａｄｉｘ−２アルゴリズムを含み、複素指数入力信号に対する第１のＦＦＴアルゴリズムのバタフライ段階の対に対する増大係数の逆数の２倍に等しいスケーリング係数によってバタフライ段階の全ての対の出力をスケーリングすることが、１のスケーリング係数によって全ての対のうちの１つのバタフライ段階をスケーリングすることと、１／２のスケーリング係数によって連続するバタフライ段階の全ての対のうちの別のバタフライ段階をスケーリングすることと、を含む、実施例１２に記載の方法を提供する。
【０１２３】
実施例１４は、第１のＦＦＴアルゴリズムが、ｒａｄｉｘ−４アルゴリズムを含み、複素指数入力信号に対するＦＦＴアルゴリズムのバタフライ段階の対に対する増大係数の逆数の２倍に等しいスケーリング係数によってバタフライ段階の全ての対の出力をスケーリングすることが、１／２のスケーリング係数によって各バタフライ段階をスケーリングすることを含む、実施例１２に記載の方法を提供する。
【０１２４】
実施例１５は、第２のＦＦＴアルゴリズムが、２つ以上のバタフライ段階を含むｒａｄｉｘ−２  ＦＦＴアルゴリズムであり、第２のＦＦＴアルゴリズムの１つ以上の段階の出力をスケーリングすることが、１／２のスケーリング係数によって各バタフライ段階をスケーリングすることを含む、実施例１〜１４のいずれか１つに記載の方法を提供する。
【０１２５】
実施例１６は、１／２のスケーリング係数によってスケーリングすることが、スケーリングされるバタフライ段階の結果に１ビットの右シフトを適用することを含む、実施例１３〜１５のいずれか１つに記載の方法を提供する。
【０１２６】
実施例１７は、第２のＦＦＴアルゴリズムが、２つ以上のバタフライ段階を含むｒａｄｉｘ−４  ＦＦＴアルゴリズムであり、第２のＦＦＴアルゴリズムの１つ以上の段階の出力をスケーリングすることが、１／４のスケーリング係数によって各バタフライ段階をスケーリングすることを含む、実施例１〜１４のいずれか１つに記載の方法を提供する。
【０１２７】
実施例１８は、１／４のスケーリング係数によってスケーリングすることが、スケーリングされるバタフライ段階の結果に２ビットの右シフトを適用することを含む、実施例１８に記載の方法を提供する。
【０１２８】
実施例１９は、入力信号が実質的に複素指数信号または実質的に正弦波信号を含む、実施例１〜１８のいずれか１つに記載の方法を提供する。
【０１２９】
実施例２０は、第１のＦＦＴアルゴリズムを適用することが、入力信号のデータサンプルの行に第１の水平窓ＦＦＴアルゴリズムを適用することと、第１の水平窓ＦＦＴアルゴリズムの出力に第１の垂直窓ＦＦＴアルゴリズムを適用して、Ｎ個の第１の値Ｏｕｔｐｕｔ１［ｎ］を生成することと、を含み、かつ／または第２のＦＦＴアルゴリズムを適用することが、入力信号のデータサンプルの行に第２の水平窓ＦＦＴアルゴリズムを適用することと、第２の水平窓ＦＦＴアルゴリズムの出力に第２の垂直窓ＦＦＴアルゴリズムを適用して、Ｎ個の第２の値Ｏｕｔｐｕｔ２［ｎ］を生成することと、を含む、実施例１〜１９のいずれか１つに記載の方法を提供する。
【０１３０】
実施例２１は、第１のＦＦＴアルゴリズムおよび第２のＦＦＴアルゴリズムのそれぞれが、固定小数点ＦＦＴアルゴリズムを含む、実施例１〜２０のいずれか１つに記載の方法を提供する。
【０１３１】
実施例２２は、Ｋが、Ｎの平方根に対する入力ヘッドルームの比として選択され、かつ／またはＬが、Ｎに対する前記入力ヘッドルームの比として選択され、入力ヘッドルームが、第１のＦＦＴアルゴリズムおよび第２のＦＦＴアルゴリズムのそれぞれの出力を表すために提供されるビット数と入力信号を表すために使用されるビット数との差である、実施例１〜２１のいずれか１つに記載の方法を提供する。
【０１３２】
実施例２３は、入力信号が、物体から反射された無線信号に基づいて生成され、方法が、Ｎ個のＦＦＴ値Ｏｕｔｐｕｔ［ｎ］に基づいて、物体までの距離の指示、物体の速度の指示、および物体の位置の指示のうちの１つ以上を判定することをさらに含む、実施例１〜２２のいずれか１つに記載の方法を提供する。
【０１３３】
実施例２４は、入力信号の少なくとも１つの高速フーリエ変換（ＦＦＴ）を生成するためのシステムを提供し、システムは、実施例１〜２２のいずれか１つに記載の方法を実装するように構成されたデータ処理システムを含む。
【０１３４】
実施例２５は、データ処理システムがさらに、実施例２３による方法を実装するように構成され、システムが、無線信号を送信するように構成されたレーダー送信機と、物体から反射された送信された無線信号の少なくとも一部を含む信号を検出し、検出された信号に基づいて入力信号を生成するように構成されたレーダー受信機と、をさらに含む、実施例２４に記載のシステムを提供する。
【０１３５】
実施例２６は、プロセッサ上で実行されると、実施例１〜２３のいずれか１つに記載の方法を実行するように構成されたソフトウェアコード部分を記憶する、非一時的コンピュータ可読記憶媒体を提供する。
【０１３６】
実施例２７は、実施例１〜２３のいずれか１つに記載の方法を実行するためのコンピュータ可読命令を含むコンピュータプログラム製品を提供する。
【０１３７】
変形例および実装
図２〜図１３に示されるような例示的実装を参照して本開示の実施形態を上で説明したが、当業者には、上述の様々な教示が、多種多様な他の実装に適用可能であることが理解されるだろう。具体的には、本開示において提供されるいくつかの説明はｒａｄｉｘ−２  ＦＦＴに言及しているが、これらの説明は、段階とともに実装される他のＦＦＴにも適用可能である。さらに、本明細書において提供される実施例は、６つの段階を含むＦＦＴを参照して、かつ１６ビット整数ＦＦＴを参照して説明されているが、当然ながら、他の実装において、任意の他の段階数および任意のビット数が使用され得る。
【０１３８】
ある特定の状況において、本明細書において議論される特徴は、自動車システム、セーフティクリティカルな工業用途、医療システム、科学機器、ワイヤレスおよび有線通信、レーダー、工業プロセス制御、オーディオおよびビデオ機器、電流感知、計器（極めて精密となり得る）、ならびに他のデジタル処理ベースシステムに適用可能となり得る。
【０１３９】
さらに、上で議論されたある特定の実施形態は、医療画像法、患者モニタリング、医療機器、および在宅ヘルスケアのためのデジタル信号処理技術に提供され得る。これには、肺モニタ、加速度計、心拍数モニタ、ペースメーカー等が含まれ得る。他の用途には、安全システム（例えば、安定性制御システム、運転者補助システム、制動システム、インフォテインメントおよび任意の種類の内装用途）のための自動車技術が含まれ得る。
【０１４０】
さらに他の例示的シナリオにおいて、本開示の教示は、生産性、エネルギー効率、および信頼性の向上を助けるプロセス制御システムを含む産業市場において適用可能となり得る。消費者向けの用途においては、上で議論された信号処理回路の教示は、（例えばデジタルスチルカメラ、カムコーダ等のための）画像処理、オートフォーカス、および画像安定化に使用され得る。他の消費者向けの用途には、ホームシアターシステム用のオーディオおよびビデオプロセッサ、ＤＶＤレコーダ、ならびに高解像度テレビが含まれ得る。
【０１４１】
上記実施形態の議論において、システムのコンポーネント、例えばクロック、マルチプレクサ、バッファ、および／または他のコンポーネント等は、特定の回路の必要性に対応するために、容易に交換、置換、または別様に改良され得る。さらに、補完的な電子デバイス、ハードウェア、ソフトウェア等の使用が、視覚的なディザリングに関連した本開示の教示を実装するための同等に実行可能な選択肢を提供することが留意されるべきである。
【０１４２】
本明細書において提案される固定小数点ＦＦＴのＦＦＴ再構成機能を実装するための様々なシステムの一部は、本明細書に記載の機能を実施するための電子回路を含み得る。いくつかの場合において、システムの１つ以上の部分が、本明細書に記載の機能を実行するために特別に構成されたプロセッサにより提供され得る。例えば、プロセッサは、１つ以上の特定用途向けコンポーネントを含んでもよく、または、本明細書に記載の機能を実行するように構成されたプログラム可能な論理ゲートを含んでもよい。回路は、アナログ領域、デジタル領域、または混合信号領域内で動作し得る。いくつかの場合において、プロセッサは、非一時的コンピュータ可読記憶媒体に記憶された１つ以上の命令を実行することにより、本明細書に記載の機能を実行するように構成されてもよい。
【０１４３】
１つの例示的実施形態において、図４、図１２および図１３の任意の数の電気回路が、関連電子デバイスの基板上に実装されてもよい。基板は、電子デバイスの内部電子システムの様々なコンポーネントを保持し得、さらに他の周辺機器へのコネクタを提供し得る一般的な回路基板であり得る。より具体的には、基板は、システムの他のコンポーネントが電気的に通信し得る電気接続を提供し得る。任意の好適なプロセッサ（デジタル信号プロセッサ、マイクロプロセッサ、補助チップセット等を含む）、コンピュータ可読非一時的メモリ要素等が、特定の構成の必要性、処理需要量、コンピュータ設計等に基づいて基板に好適に結合され得る。外部記憶装置、追加のセンサ、オーディオ／ビデオ表示用コントローラ、および周辺デバイス等の他のコンポーネントが、プラグインカードとしてボードに取り付けられてもよく、ケーブルを介してボードに取り付けられてもよく、またはボード自体に統合されてもよい。様々な実施形態において、本明細書に記載の機能は、これらの機能をサポートする構造内に配置された１つ以上の構成可能な（例えばプログラム可能な）要素内で動作するソフトウェアまたはファームウェアとしてエミュレーション形態で実装されてもよい。エミュレーションを提供するソフトウェアまたはファームウェアは、プロセッサにそれらの機能を実行させるための命令を含む非一時的コンピュータ可読記憶媒体上に提供されてもよい。
【０１４４】
別の例示的実施形態において、図４、図１２および図１３の電気回路は、スタンドアローンモジュール（例えば、特定のアプリケーションまたは機能を実行するように構成された関連コンポーネントおよび回路を有するデバイス）として実装されてもよく、または、電子デバイスの特定用途向けハードウェアへのプラグインモジュールとして実装されてもよい。複数の固定小数点ＦＦＴを使用するＦＦＴ再構成を実装する本開示の特定の実施形態は、部分的または全体的に、システムオンチップ（ＳＯＣ）パッケージ内に容易に含まれ得ることに留意されたい。ＳＯＣは、コンピュータまたは他の電子システムのコンポーネントを、単一チップ内に統合するＩＣを表す。これは、デジタル、アナログ、混合信号、およびしばしば無線周波数機能を含有し得、それらの全てが単一チップ基板上に提供され得る。他の実施形態は、単一電子パッケージ内に位置し、電子パッケージを通して互いに密接に相互作用するように構成される複数の別個のＩＣを有する、マルチチップモジュール（ＭＣＭ）を含んでもよい。様々な他の実施形態において、本明細書において提案されるＦＦＴ再構成は、特定用途向け集積回路（ＡＳＩＣ）、フィールドプログラマブルゲートアレイ（ＦＰＧＡ）、および他の半導体チップにおける１つ以上のシリコンコア内に実装されてもよい。
【０１４５】
また、本明細書において概説された仕様、寸法、および関係（例えば、プロセッサの数、論理演算等）は全て、単に例示および教示のみを目的として提供されたことに留意することが不可欠である。そのような情報は、本開示の趣旨、または添付の特許請求の範囲から逸脱せずに大きく変動し得る。仕様は、１つの限定されない実施例にのみ適用され、したがってそのように解釈されるべきである。上記説明において、例示的実施形態は、特定のプロセッサおよび／またはコンポーネントの配置を参照して説明された。添付の特許請求の範囲から逸脱せずに、そのような実施形態に様々な修正および変更がなされてもよい。したがって、説明および図面は、限定的ではなく例示的なものとしてみなされるべきである。
【０１４６】
本明細書において提供される数々の実施例に関して、２つ、３つ、４つ、またはそれ以上の電気コンポーネントに関して相互作用が説明され得る。しかしながら、これは、明確化および例示のみを目的としてなされている。システムは、任意の好適な様式で統合されてもよいことが認識されるべきである。同様の代替設計に従って、図４、図１２および図１３の図示されたコンポーネント、モジュール、および要素のうちのいずれかは、様々な可能な構成で組み合わされてもよく、それらは全て、明確に本明細書の広範な範囲内に含まれる。ある特定の場合において、限られた数の電気要素のみを参照することによって、フローの所与のセットの機能の１つ以上を説明することがより容易となり得る。図４、図１２および図１３の電気回路およびその教示は、容易に拡張可能であり、多数のコンポーネント、ならびに複雑／高度な配置および構成に対応することができることが、認識されるべきである。したがって、提供された実施例は、多種多様な他のアーキテクチャに適用され得るように、電気回路の広範な教示の範囲を限定する、またはそれを阻害するべきではない。
【０１４７】
本明細書において、「一実施形態」、「例示的実施形態」、「実施形態」、「別の実施形態」、「いくつかの実施形態」、「様々な実施形態」、「他の実施形態」、「代替の実施形態」等に含まれる様々な特徴（例えば、要素、構造、モジュール、コンポーネント、ステップ、演算、特性等）への言及は、任意のそのような特徴が本開示の１つ以上の実施形態に含まれるが、同じ実施形態において組み合わされても、または必ずしも組み合わされなくてもよいことを意味するように意図されることに留意されたい。
【０１４８】
また、本明細書において提案されるようなＦＦＴ再構成に関連する機能が、図４、図１２および図１３に図示されるシステムにより、またはシステム内で実行され得る可能な機能のいくつかを示すにすぎないことに留意することが重要である。これらの演算のいくつかは、適宜削除もしくは除外されてもよく、または、これらの演算は、本開示の範囲から逸脱せずに、大幅に修正もしくは変更されてもよい。さらに、これらの演算のタイミングが大幅に改変されてもよい。上記の演算フローは、例示および議論を目的として提供されている。任意の好適な配置、順序、構成、およびタイミングのメカニズムが、本開示の教示から逸脱せずに提供され得るという点で、本明細書に記載の実施形態により実質的な柔軟性が提供される。
【０１４９】
上述の装置の全ての任意選択の特徴は全て、本明細書に記載の方法またはプロセスに関して実装されてもよく、実施例における詳細は、１つ以上の実施形態におけるいずれにおいても使用され得る。
【０１５０】
数々の他の変更、置換、変形、改変および修正が、当業者に確認され得、本開示は、全てのそのような変更、置換、変形、改変および修正を、添付の特許請求の範囲内に含まれるものとして包含することが意図される。
【０１５１】
特許請求の範囲は、ＵＳＰＴＯの前に使用されたスタイルにおいて単独従属形式で示されているが、任意の請求項は、明らかに技術的に実現不可能でない限り、同じ種類の任意の先行する請求項に従属し、またそれと組み合わされてもよいことが理解されるべきである。
【符号の説明】
【０１５２】
１２００  データ処理システム
１２０２  プロセッサ
１２０４  メモリ要素
１２０６  システムバス
１２０８  ローカルメモリ
１２１０  バルク記憶デバイス
１２１２  入力デバイス
１２１４  出力デバイス
１２１６  ネットワークアダプタ
１２１８  アプリケーション
１３００  システム
１３０２  送信機
１３０４  受信機
１３０６  調整器
１３０８  データ処理システム
１３１０  プロセッサ
１３１２  メモリ
【図１Ａ】
2019506679.tif 000004
【図１Ｂ】
2019506679.tif 000005
【図２】
2019506679.tif 000006
【図３】
2019506679.tif 000007
【図４】
2019506679.tif 000008
【図５】
2019506679.tif 000009
【図６】
2019506679.tif 000010
【図７】
2019506679.tif 000011
【図８】
2019506679.tif 000012
【図９】
2019506679.tif 000013
【図１０】
2019506679.tif 000014
【図１１】
2019506679.tif 000015
【図１２】
2019506679.tif 000016
【図１３】
2019506679.tif 000017
【手続補正書】
【提出日】平成30年7月27日(2018.7.27)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
物体までの距離の指示、前記物体の速度の指示、および前記物体の位置の指示のうちの１つ以上を判定するためのシステムであって、
前記物体から反射された信号を受信するように構成された受信機と、
入力信号にゲインＫを有する第１のＦＦＴアルゴリズムを適用して、第１のＦＦＴを生成することであって、前記入力信号が、前記物体から反射された前記信号に基づいて生成される、生成することと、
前記入力信号にゲインＫよりも小さいゲインＬを有する第２のＦＦＴアルゴリズムを適用して、第２のＦＦＴを生成することと、
前記第１のＦＦＴおよび前記第２のＦＦＴに基づき、前記入力信号のＦＦＴを生成することと、
前記入力信号の前記ＦＦＴに基づいて、前記物体までの距離の指示、前記物体の速度の指示、および前記物体の位置の指示のうちの１つ以上を判定することと、を行うように構成されたデータ処理システムと、を含むシステム。
【請求項２】
前記第１のＦＦＴは、インデックスｎでインデックス付けされたＮ個の第１の値Ｏｕｔｐｕｔ１［ｎ］を含み、
前記第２のＦＦＴは、前記インデックスｎでインデックス付けされたＮ個の第２の値Ｏｕｔｐｕｔ２［ｎ］を含み、
ＦＦＴ値Ｏｕｔｐｕｔ［ｎ］を生成することは、
各インデックスｎについて、前記第１の値Ｏｕｔｐｕｔ１［ｎ］と前記第２の値Ｏｕｔｐｕｔ２［ｎ］との比較が条件を満たすかどうかを判定することと、
肯定判定の場合、前記ＦＦＴ値Ｏｕｔｐｕｔ［ｎ］として前記第１の値Ｏｕｔｐｕｔ１［ｎ］を含めることと、
否定判定の場合、前記ＦＦＴ値Ｏｕｔｐｕｔ［ｎ］として前記第２の値Ｏｕｔｐｕｔ２［ｎ］に基づく値を含めることと、を含む、請求項１に記載のシステム。
【請求項３】
前記ＦＦＴ値Ｏｕｔｐｕｔ［ｎ］として前記第２の値Ｏｕｔｐｕｔ２［ｎ］に基づく前記値を含めることは、前記ＦＦＴ値Ｏｕｔｐｕｔ［ｎ］として前記第２の値Ｏｕｔｐｕｔ２［ｎ］を乗算したＫ／Ｌの値を含めることを含む、請求項２に記載のシステム。
【請求項４】
前記第１の値Ｏｕｔｐｕｔ１［ｎ］と前記第２の値Ｏｕｔｐｕｔ２［ｎ］との比較が前記条件を満たすかどうかを判定することは、
前記第２の値Ｏｕｔｐｕｔ２［ｎ］にＫ／Ｌを乗算することと、
前記乗算の結果から、前記第１の値Ｏｕｔｐｕｔ１［ｎ］を減算することと、
前記減算の結果が少なくともゼロの値を含む範囲内にあるかどうかを判定することと、を含む、請求項２に記載のシステム。
【請求項５】
前記条件は、クリッピングが発生しなかったことを示す条件である、請求項２に記載のシステム。
【請求項６】
Ｋは、Ｎの平方根に対する入力ヘッドルームの比として選択され、かつ／またはＬは、Ｎに対する前記入力ヘッドルームの比として選択され、前記入力ヘッドルームは、前記第１のＦＦＴアルゴリズムおよび前記第２のＦＦＴアルゴリズムのそれぞれの出力を表すために提供されるビット数と前記入力信号を表すために使用されるビット数との差である、請求項１に記載のシステム。
【請求項７】
前記第１のＦＦＴアルゴリズムおよび前記第２のＦＦＴアルゴリズムのそれぞれは、固定小数点ＦＦＴアルゴリズムである、請求項１に記載のシステム。
【請求項８】
前記第１のＦＦＴアルゴリズムは、２つ以上のバタフライ段階を含むＦＦＴアルゴリズムであり、前記第１のＦＦＴアルゴリズムは、複素指数入力信号に対する前記第１のＦＦＴアルゴリズムのバタフライ段階の対に対する増大係数の逆数の２倍に等しいスケーリング係数によってバタフライ段階の全ての対の出力をスケーリングすることによって前記第１のＦＦＴアルゴリズムの１つ以上の段階の出力をスケーリングするように構成されている、請求項１に記載のシステム。
【請求項９】
前記第２のＦＦＴアルゴリズムは、２つ以上のバタフライ段階を含むｒａｄｉｘ−２  ＦＦＴアルゴリズムであり、前記第２のＦＦＴアルゴリズムは、１／２のスケーリング係数によって各バタフライ段階をスケーリングすることによって前記第２のＦＦＴアルゴリズムの１つ以上の段階の出力をスケーリングするように構成されている、請求項１に記載のシステム。
【請求項１０】
前記第２のＦＦＴアルゴリズムは、２つ以上のバタフライ段階を含むｒａｄｉｘ−４  ＦＦＴアルゴリズムであり、前記第２のＦＦＴアルゴリズムは、１／４のスケーリング係数によって各バタフライ段階をスケーリングすることによって前記第２のＦＦＴアルゴリズムの１つ以上の段階の出力をスケーリングするように構成されている、請求項１に記載のシステム。
【請求項１１】
前記物体から反射される前記信号は無線信号であり、前記受信機はレーダー受信機であるか、または
前記物体から反射される前記信号は音響信号であり、前記受信機はソナー受信機である、請求項１に記載のシステム。
【請求項１２】
受信機によって受信された信号に基づいて、対象となるベースバンド信号を抽出するためのシステムであって、
前記信号を受信し、前記信号を、データ処理システムへの入力信号として提供される電気信号に変換するように構成された受信機であって、前記信号が電磁信号または音響信号である、受信機と、
前記入力信号にゲインＫを有する第１のＦＦＴアルゴリズムを適用して、第１のＦＦＴを生成し、
前記入力信号にゲインＫよりも小さいゲインＬを有する第２のＦＦＴアルゴリズムを適用して、第２のＦＦＴを生成し、
前記第１のＦＦＴおよび前記第２のＦＦＴに基づいて前記入力信号の再構成ＦＦＴを生成し、
前記再構成ＦＦＴに基づいて対象となる前記ベースバンド信号を抽出するように構成された前記データ処理システムと、を備えるシステム。
【請求項１３】
前記第１のＦＦＴは、インデックスｎでインデックス付けされたＮ個の第１の値Ｏｕｔｐｕｔ１［ｎ］を含み、
前記第２のＦＦＴは、前記インデックスｎでインデックス付けされたＮ個の第２の値Ｏｕｔｐｕｔ２［ｎ］を含み、
ＦＦＴ値Ｏｕｔｐｕｔ［ｎ］を生成することは、
各インデックスｎについて、前記第１の値Ｏｕｔｐｕｔ１［ｎ］と前記第２の値Ｏｕｔｐｕｔ２［ｎ］との比較が条件を満たすかどうかを判定することと、
肯定判定の場合、前記ＦＦＴ値Ｏｕｔｐｕｔ［ｎ］として前記第１の値Ｏｕｔｐｕｔ１［ｎ］を含めることと、
否定判定の場合、前記ＦＦＴ値Ｏｕｔｐｕｔ［ｎ］として前記第２の値Ｏｕｔｐｕｔ２［ｎ］に基づく値を含めることと、を含む、請求項１１に記載のシステム。
【請求項１４】
前記第１のＦＦＴアルゴリズムおよび前記第２のＦＦＴアルゴリズムのそれぞれは、固定小数点ＦＦＴアルゴリズムである、請求項１１に記載のシステム。
【請求項１５】
電気通信システムと、
音源位置同定システムと、
音源分離システムと、
自動車システムと、
航空システムと、のうちの１つである、請求項１１に記載のシステム。
【国際調査報告】
2019506679.tif 000018
2019506679.tif 000019