(57)【特許請求の範囲】
【請求項１】
方法であって、
送信シーケンスを記述した信号データおよび前記送信シーケンスに関連付けられた所定値にアクセスすることと、ここにおいて、前記信号データおよび前記所定値は、メモリ内に記憶される、
前記送信シーケンスに従って第１の電子デバイスのスピーカから第１の信号を送信することと、
前記第１の電子デバイスの複数のマイクロフォンで受信された信号に基づいてフレームを生成することと、ここで、前記受信された信号は、前記第１の信号および第２の電子デバイスによって送信される第２の信号に関連付けられたエコー信号を含む、
前記エコー信号に関連付けられた干渉が軽減される出力フレームを生成するために、前記所定値を使用して前記フレームを処理することと、
前記出力フレームに基づいて、および前記受信された信号に基づいて、前記第２の電子デバイスの位置を決定することと、
を備える、方法。
【請求項２】
前記所定値は、前記送信シーケンスの高速フーリエ変換（ＦＦＴ）に対応する、請求項１に記載の方法。
【請求項３】
前記フレームを処理することは
第１の処理フレームを生成するために前記フレームにＦＦＴを行うことと、
エコーキャンセルロジックに前記第１の処理フレームを提供することと、
を備え、
前記エコーキャンセルロジックは、前記所定値に基づいて前記第１の処理フレームを処理するように構成される、
請求項２に記載の方法。
【請求項４】
前記第１の処理フレームを処理することは、
第２の処理フレームを生成するために、前記第１の処理フレームに前記所定値を乗算することと、
第３の処理フレームを生成するために、前記第２の処理フレームに逆高速フーリエ変換（ＩＦＦＴ）を行うことと、
第４の処理フレームを生成するために、前記第３の処理フレームに所定値の組を乗算することと、
第５の処理フレームを生成するために、前記第４の処理フレームにＦＦＴを行うことと、
第６の処理フレームを生成するために、前記第５の処理フレームに前記所定値を乗算することと、
前記第１の処理フレームと前記第６の処理フレームとの間の差分を決定することと、
を備える、請求項３に記載の方法。
【請求項５】
前記出力フレームは、前記第１の処理フレームと前記第６の処理フレームとの間の前記差分に基づいて生成される、請求項４に記載の方法。
【請求項６】
前記送信シーケンスは、前記第１の電子デバイスに局所的に一意である、請求項１に記載の方法。
【請求項７】
前記第１の電子デバイスは、モバイル通信デバイスを含む、請求項１に記載の方法。
【請求項８】
前記第２の電子デバイスは、前記送信シーケンスとは異なる第２の送信シーケンスに従って前記第２の信号を送信する、請求項１に記載の方法。
【請求項９】
前記受信された信号は、超音波信号を備える、請求項８に記載の方法。
【請求項１０】
前記第１の信号は超音波信号を備え、前記送信シーケンスは周期的シーケンスである、請求項１に記載の方法。
【請求項１１】
装置であって、
送信シーケンスに従って第１の信号を送信するように構成された第１の送信機と、
前記第１の信号および第２の送信機によって送信される第２の信号に関連付け付けられたエコー信号を含む、信号を受信するように構成された受信機と、
前記送信シーケンスに関連付けられた所定値を記憶するメモリと、
第１の処理経路と第２の処理経路とを備えるフィルタと、ここで、前記フィルタは、
前記第１の処理経路において入力を受信し、ここにおいて、前記入力は、前記受信された信号に基づいて生成される、
前記メモリから前記所定値を検索し、
前記第１の処理経路の出力を生成するために、前記所定値に基づいて前記入力を処理し、ここで、前記第１の処理経路の前記出力は、前記入力への前記第１の信号の干渉を示す、
前記第２の処理経路において前記第１の処理経路の前記出力を受信し、
前記第１の処理経路における前記入力と前記第１の処理経路の前記出力との間の差分に基づいて、出力フレームを生成する
ように構成される、
前記出力フレームに基づいて、および前記受信された信号に基づいて、前記第２の送信機のロケーションを決定するように構成されたロジックと、
を備える装置。
【請求項１２】
前記フィルタは、前記第１の処理経路および前記第２の処理経路に結合されたフレームロジックをさらに備え、前記フレームロジックは、
前記受信された信号に基づいて生成された入力フレームを受信し、
第１の処理フレームを生成するために、前記受信された入力フレームに高速フーリエ変換（ＦＦＴ）を行い、
前記第１の処理フレームを前記第１の処理経路および前記第２の処理経路に提供する
ように構成され、
前記入力は、前記第１の処理フレームである、
請求項１１に記載の装置。
【請求項１３】
前記フィルタはさらに、
第２の処理フレームを生成するために、前記第１の処理フレームに前記所定値を乗算し、
第３の処理フレームを生成するために、前記第２の処理フレームに逆高速フーリエ変換（ＩＦＦＴ）を行い、
第４の処理フレームを生成するために、前記第３の処理フレームに所定値の組を乗算し、
第５の処理フレームを生成するために、前記第４の処理フレームに第２のＦＦＴを行い、
前記出力を生成するために、前記第５の処理フレームに前記所定値を乗算し、
前記出力を前記第２の処理経路に提供する
ように構成される、請求項１２に記載の装置。
【請求項１４】
前記所定値は、前記送信シーケンスのＦＦＴに対応する、請求項１３に記載の装置。
【請求項１５】
前記所定値の組は、テプリッツ行列を備える、請求項１３に記載の装置。
【請求項１６】
前記第２の信号は、前記送信シーケンスとは異なる第２の送信シーケンスに基づく、請求項１１に記載の装置。
【請求項１７】
前記入力は、前記第１の信号に関連付けられた第１の情報と、前記第２の信号に関連付けられた第２の情報とを含み、前記第２の処理経路から第２の出力への前記第１の信号の干渉は、前記入力への前記第１の信号の前記干渉よりも少ない、請求項１６に記載の装置。
【請求項１８】
前記第１の送信機は第１のデバイスに組み込まれ、前記第２の送信機は前記第１のデバイスとは異なる第２のデバイスに組み込まれる、請求項１７に記載の装置。
【請求項１９】
前記第１の信号は超音波信号を備える、請求項１１に記載の装置。
【請求項２０】
前記超音波信号は、周期信号を備える、請求項１９に記載の装置。
【請求項２１】
第２の送信シーケンスを選択し、
前記第２の送信シーケンスに関連付けられた第２の所定値を生成し、
前記第２の所定値を前記メモリに記憶する
ように構成された、シーケンス選択ロジックをさらに備える、請求項１１に記載の装置。
【請求項２２】
前記第２の送信シーケンスを選択した後に、前記第１の送信機は、前記第２の送信シーケンスに従って信号を送信するように構成される、請求項２１に記載の装置。
【請求項２３】
前記選択ロジックは、複数の所定の送信シーケンスから前記第２の送信シーケンスを選択する、請求項２１に記載の装置。
【請求項２４】
前記複数の所定の送信シーケンスは、ｇｏｌｄ符号シーケンスを備える、請求項２３に記載の装置。
【請求項２５】
命令を記憶するコンピュータ読取可能記憶媒体であって、前記命令は、プロセッサによって実行されるとき、前記プロセッサに、
送信シーケンスを記述した信号データおよび前記送信シーケンスに関連付けられた所定値にアクセスすることと、ここにおいて、前記信号データおよび前記所定値は、メモリ内に記憶される、
第１の電子デバイスのスピーカに、前記送信シーケンスに従って第１の信号を送信させることと、
前記第１の電子デバイスの複数のマイクロフォンで受信された信号に基づいてフレームを生成することと、ここで、前記受信された信号は、前記第１の信号および第２の電子デバイスによって送信される第２の信号に関連付けられたエコー信号を含む、
前記エコー信号に関連付けられた干渉が軽減される出力フレームを生成するために、前記所定値を使用して前記フレームを処理することと、
前記出力フレームに基づいて、および前記受信された信号に基づいて、前記第２の電子デバイスのロケーションを決定することと、
を行わせる、コンピュータ読取可能記憶媒体。
【請求項２６】
前記プロセッサによって実行されるとき、前記プロセッサに、前記第１の信号が送信される前に、前記所定値を生成するために前記送信シーケンスに高速フーリエ変換（ＦＦＴ）を行わせる命令をさらに記憶する、請求項２５に記載のコンピュータ読取可能記憶媒体。
【請求項２７】
前記プロセッサによって実行されるとき、前記プロセッサに、
第１の処理フレームを生成するために、前記フレームにＦＦＴを行うことと、
前記所定値に基づいて前記第１の処理フレームを処理するように構成されるエコーキャンセルロジックに、前記第１の処理フレームを提供することと、
を行わせる命令をさらに記憶する、請求項２６に記載のコンピュータ読取可能記憶媒体。
【請求項２８】
前記プロセッサによって実行されるとき、前記プロセッサに、
第２の処理フレームを生成するために、前記第１の処理フレームに前記所定値を乗算することと、
第３の処理フレームを生成するために、前記第２の処理フレームに逆高速フーリエ変換（ＩＦＦＴ）を行うことと、
第４の処理フレームを生成するために、前記第３の処理フレームに前記所定値の組を乗算することと、
第５の処理フレームを生成するために、前記第４の処理フレームに第２のＦＦＴを行うことと、
第６の処理フレームを生成するために、前記第５の処理フレームに前記所定値を乗算することと、
前記第１の処理フレームと前記第６の処理フレームとの間の差分を決定することと、
を行わせる命令をさらに記憶する、請求項２７に記載のコンピュータ読取可能記憶媒体。
【請求項２９】
前記出力フレームは、前記第１の処理フレームと前記第６の処理フレームとの間の前記差分に基づいて生成される、請求項２８に記載のコンピュータ読取可能記憶媒体。
【請求項３０】
前記送信シーケンスは、前記第１の電子デバイスに局所的に一意である、請求項２５に記載のコンピュータ読取可能記憶媒体。
【請求項３１】
前記第１の電子デバイスは、モバイル通信デバイスを含む、請求項２５に記載のコンピュータ読取可能記憶媒体。
【請求項３２】
装置であって、
送信シーケンスに従って第１の電子デバイスから第１の信号を送信するための手段と、
前記第１の信号および第２の電子デバイスによって送信される第２の信号に関連付けられたエコー信号を含む、信号を受信するための手段と、
前記送信シーケンスに関連付けられた所定値を記憶するための手段と、
前記受信された信号に基づいて入力を生成するための手段と、
第１の出力を生成するために、前記所定値に基づいて前記入力を処理するための手段と、ここにおいて、前記第１の出力は、前記入力への前記第１の信号の干渉を示す、
前記入力と前記第１の出力との間の差分に基づいて第２の出力を生成するための手段と、
前記第２の出力に基づいて、および前記受信された信号に基づいて、前記第２の電子デバイスのロケーションを決定するための手段と
を備える、装置。
【請求項３３】
前記入力を生成するための前記手段は、
前記受信された信号に基づいて生成されたフレームを受信するための手段と、
前記フレームに高速フーリエ変換（ＦＦＴ）を行うための手段と
を備え、
前記入力は、前記ＦＦＴの結果である、
請求項３２に記載の装置。
【請求項３４】
前記所定値は、前記送信シーケンスの高速フーリエ変換（ＦＦＴ）に対応する、請求項３２に記載の装置。
【請求項３５】
前記入力を処理するための前記手段は、
前記入力に前記所定値を乗算することによって、第１の積を決定するための手段と、
前記第１の積に逆高速フーリエ変換（ＩＦＦＴ）を行うための手段と、
前記ＩＦＦＴの結果に所定値の組を乗算することによって、第２の積を決定するための手段と、
前記第２の積に第２のＦＦＴを行うための手段と、
前記第１の出力を生成するために、前記第２のＦＦＴの結果に前記所定値を乗算するための手段と
を備える、請求項３４に記載の装置。
【請求項３６】
前記所定値の組は、テプリッツ行列に対応する、請求項３５に記載の装置。
【発明の詳細な説明】
【優先権の主張】
【０００１】
[0001]  本願は、２０１２年１１月１５日に出願された米国仮出願特許第６１／７２７，０１１号からの優先権を主張し、また２０１３年３月１５日に出願された米国非仮出願特許第１３／８４１，３５９号に対する優先権を主張し、それらの全内容は、参照により本明細書に明示的に組み込まれている。
【技術分野】
【０００２】
[0002]  本開示は、一般に、電子デバイスにおけるエコーキャンセルに関する。
【背景技術】
【０００３】
[0003]  電子デバイスは、信号（例えば、音声信号および／または超音波信号）を受信するための１つまたは複数のマイクロフォンと、信号（例えば、音声信号および／または超音波信号）を送信するように構成されるスピーカとを含み得る。第１の電子デバイスは、そのスピーカを使用して信号を送信し、送信された信号は、他の電子デバイスの１つまたは複数のマイクロフォンで受信され得る。第１の電子デバイスのスピーカと第１の電子デバイスのマイクロフォンとが極めて近接しているときに、エコー信号は、第１の電子デバイスで受信された他の電子デバイスからの信号に干渉し得る。エコー信号は、第１の電子デバイスが、それ自体で送信された信号を受信するときに、そのマイクロフォンの１つまたは複数で発生し得る。
【０００４】
[0004]  例えば、第１の電子デバイスは、ワイヤレス通信デバイス（例えば、セルラ通信デバイス）であり得る。第１の電子デバイスのオペレータが通話するときに、発話を表す信号が第１の電子デバイスのマイクロフォンによって検出され、通信ネットワーク（例えば、セルラネットワークを介して）を介して第２の電子デバイス（例えば、第２のセルラ通信デバイス）に送信され得る。第２の電子デバイスは、第１の電子デバイスからの信号（例えば、遠端信号）を受信および処理し得る。信号（例えば、第１の電子デバイスのオペレータの発話）を処理することは、第２の電子デバイスのスピーカで遠端信号を出力することを含み得る。第２のデバイスのスピーカによる遠端信号出力は、第２の電子デバイスのマイクロフォンで検出され得る。遠端信号を検出することに加えて、第２の電子デバイスのマイクロフォンは、近端信号（例えば、第２の電子デバイスのオペレータの発話）を検出し得る。
【０００５】
[0005]  エコー信号は、第２の電子デバイスが遠端信号（または遠端信号に相関する信号）を第１の電子デバイスに送信するときに、発生し得る。別の方法を記載すると、第１の電子デバイスのオペレータの発話が第１の電子デバイスへ戻るのを表す信号を、第２の電子デバイスが送信するときに、第１のデバイスのオペレータは自分自身の話し声が聞こえるだろう（すなわち、オペレータはエコーを聞くだろう）。エコー信号によって引き起こされた干渉を軽減するために、第２の電子デバイスは、適応フィードバックフィルタなどの適応フィルタを含み得る。適応フィルタは、近端信号を第１の電子デバイスに送信する前に、第２の電子デバイスのマイクロフォンで検出された受信された信号からの遠端信号をフィルタリングすることによってエコーを軽減するように構成される。
【発明の概要】
【０００６】
[0006]  電子デバイスは、フィルタ、１つまたは複数のマイクロフォン、および所定の送信シーケンスに従って信号（例えば、超音波信号）を送信するように構成された送信機を含む。所定の送信シーケンスは、テレビ会議（teleconference）のための遠隔パーティからの音声のような、不定の（indeterminate）遠端信号とは異なるものである。電子デバイスは、所定の送信シーケンスに関連付けられた所定値を記憶するメモリを含む。所定値は、所定のシーケンスに従って送信される信号を特徴付ける。電子デバイスの１つまたは複数のマイクロフォンは、他の電子デバイスによって送信された他の信号（例えば、他の超音波信号）を受信し得る。加えて、電子デバイスの送信機によって送信された信号は、エコー信号として電子デバイスの１つまたは複数のマイクロフォンで受信され得る。フレームは、電子デバイスの１つまたは複数のマイクロフォンで受信された信号（例えば、他の電子デバイスからの他の信号およびエコー信号）のサンプルを含むように生成され、フレームは、フィルタに提供され得る。フィルタは、新規のフレームを生成するために、所定の送信シーケンスに関連付けられた所定値に基づいてフレーム内に含まれるサンプルの各々にエコーキャンセル動作を行うように構成され得る。新規のフレームでは、受信された信号へのエコー信号の寄与が軽減され得る。
【０００７】
[0007]  特定の実施形態では、方法は、送信シーケンスを記述した信号データおよび送信シーケンスに関連付けられた所定値にアクセスすることを含む。方法は、送信シーケンスに従って電子デバイスのスピーカから信号を送信することを含む。方法は、電子デバイスのマイクロフォンで受信された１つまたは複数の信号に基づいてフレームを生成することを含む。１つまたは複数の信号は、送信された信号に関連付けられたエコー信号を含み得る。方法は、エコー信号に関連付けられた寄与が軽減される（フレームと比較すると）出力フレームを生成するために、所定値を使用してフレームを処理することを含む。
【０００８】
[0008]  別の実施形態では、装置は、送信シーケンスに従って信号を送信するように構成された送信機、１つまたは複数の信号を受信するように構成された受信機、送信シーケンスに関連付けられた所定値を記憶するメモリ、第１の処理経路、および第１のロジックを含む。第１の処理経路は、１つまたは複数の受信された信号に基づいて生成される入力を受信し、メモリから所定値を検索し、受信された信号においてエコーを示す出力を生成するために、所定値に基づいて入力を処理するように構成され得る。
【０００９】
第２の処理経路は、入力および第１の処理経路から出力を受信し、入力と出力との間の差分に基づいて、第２の出力（例えば、エコーキャンセルされた、またはエコーが軽減された出力）を生成するように構成され得る。
【００１０】
[0009]  別の実施形態では、コンピュータ読取可能記憶媒体は、プロセッサに、送信シーケンスを記述した信号データおよび送信シーケンスに関連付けられた所定値にアクセスすることを行わせる、プロセッサによって実行可能な命令を含む。命令は、プロセッサによって実行可能なとき、プロセッサに、送信シーケンスに従って信号を送信するために電子デバイスのスピーカに命令することを行わせる。命令は、プロセッサによって実行可能なとき、プロセッサに、電子デバイスのマイクロフォンで受信された１つまたは複数の信号に基づいてフレームを生成することを行わせる。１つまたは複数の信号は、送信された信号に関連付けられたエコー信号を含む。命令は、プロセッサによって実行可能なとき、プロセッサに、エコー信号に関連付けられた寄与が軽減される出力フレームを作り出すために、所定値を使用してフレームを生成することを含む。
【００１１】
[0010]  別の実施形態では、装置は、送信シーケンスに従って、信号を送信するための手段と、１つまたは複数の信号を受信するための手段とを含む。装置は、送信シーケンスに関連付けられた所定値を記憶するための手段を含む。装置はまた、１つまたは複数の受信された信号に基づく入力を生成するための手段と、第１の出力を生成するために所定値に基づいて入力を処理するための手段とを含む。第１の出力は、入力への送信された信号の寄与を示す。装置は、入力と第１の出力との間の差分に基づいて第２の出力を生成するための手段を含む。
【００１２】
[0011]  開示された実施形態のうちの少なくとも１つによって提供される特定の利点は、適応フィードバックフィルタなどの他のエコーキャンセルフィルタと比較すると、軽減された計算上の複雑さおよび改善された性能を有するエコーキャンセルを行うように構成されたフィルタである。例えば、本明細書で説明される実施形態のフィルタは、適応フィルタにおいて見られるようなフィードバックループを含まないため、改善された性能が実現され得る。開示される実施形態のうちの少なくとも１つによって提供される別の利点は、フィルタに関する軽減された計算上の複雑さによって軽減された電力消費である。本開示の他の態様、利点、および特徴は、本願全体の考察の後に明らかになるだろう。
【図面の簡単な説明】
【００１３】
【図１】[0012]  図１は、デバイスの所定の送信シーケンスに関連付けられた所定値を使用してエコーキャンセルを行うように構成されたフィルタを含んでいるデバイスを含むシステムの第１の例示的な実施形態である。
【図２】[0013]  図２は、デバイスの所定の送信シーケンスに関連付けられた所定値を使用してエコーキャンセルを行うように構成されたフィルタを含んでいるデバイスを含むシステムの第２の例示的な実施形態である。
【図３】[0014]  図３は、デバイスの所定の送信シーケンスに関連付けられた所定値を使用してエコーキャンセルを行うように構成されたフィルタを含んでいるデバイスを含む、マルチユーザ・ピア・ツー・ピア測位システム（multi-user peer-to-peer positioning system）の例示的な実施形態である。
【図４】[0015]  図４は、デバイスの所定の送信シーケンスに関連付けられた所定値を使用してエコーキャンセルを行うように構成されたフィルタを含んでいるデバイスの、別の例示的な実施形態である。
【図５】[0016]  図５は、デバイスの所定の送信シーケンスに基づいてエコーキャンセルを行うように構成されたフィルタを含んでいるデバイスの、別の例示的な実施形態である。
【図６】[0017]  図６は、送信シーケンスに関連付けられた所定値を使用してエコーキャンセルを行う方法の、例示的な実施形態である。
【図７】[0018]  図７は、送信シーケンスに関連付けられた所定値を使用してエコーキャンセルを行う方法の、別の例示的な実施形態である。
【図８】[0019]  図８は、図１−６に関して開示された様々な方法、システム、およびコンピュータ読取可能媒体をサポートするために動作可能である電子デバイスの特定の例示的な実施形態のブロック図である。
【発明を実施するための形態】
【００１４】
[0020]  本開示の特定の実施形態が、図面を参照してさらに説明される（図面に図示されたある特徴に関する相対位置が示され得るが、それは拡大縮小（scale）のためでない）。説明では、共通の特徴は、図面を通して共通の参照番号が割り当てられる。本明細書で説明される実施形態は、所定値に基づいてエコーキャンセルを行うように構成されたフィルタを含むデバイスを説明し得る。所定値は、信号を送信するためにデバイスによって使用される所定の送信シーケンスに関連付けられ得る。本明細書で開示される様々な実施形態のフィルタは、不確定信号（例えば、遠端信号）に関連付けられたエコーを軽減する適応フィードバックフィルタとは対照的に、フィルタが所定の信号に関連付けられたエコーを除去または軽減するという点で、非適応フィルタ（non-adaptive filters）として説明され得る。
【００１５】
[0021]  図１を参照すると、所定の送信シーケンスに関連付けられた所定値を使用してエコーキャンセルを行うように構成されたフィルタを含んでいるデバイス１００を含むシステムの、例示的な実施形態が示されている。実施形態では、デバイス１００は、モバイル通信デバイス（例えば、携帯電話）、スマートフォン、タブレットコンピューティングデバイス、ラップトップコンピューティングデバイス、携帯情報端末（ＰＤＡ）デバイス、または他の電子デバイスであり得る。デバイス１００は、送信機１１０（例えば、スピーカまたはトランスデューサ）、１つまたは複数の受信機１２０（例えば、１つまたは複数のマイクロフォン）、メモリ１３０、およびフィルタ１４０を含む。
【００１６】
[0022]  送信機１１０は、所定の送信シーケンスに従って、信号１１２を送信するように構成され得る。実施形態では、送信機１１０は、所定の送信シーケンスに従って、超音波信号を送信するように構成される超音波送信機であり得る。図１に示されるように、メモリ１３０は、信号データ１３４を記憶し得る。信号データ１３４は、所定の信号シーケンスを記述する情報を含み得る。所定の送信シーケンスは、局所的にデバイス１００に一意でありうる疑似ランダムノイズ（ＰＮ）であり得る。実施形態では、信号データ１３４は、複数の送信シーケンスを記述する情報（例えば、複数のｇｏｌｄ符号、複数のｋａｓａｍｉ符号、複数のｂａｒｋｅｒ符号など）を含み得、デバイス１００は、送信機１１０から送信される信号１１２が局所的にデバイス１００に一意であるように、複数の送信シーケンスの中から所定の送信シーケンスを選択し得る。信号データ１３４に加えて、メモリ１３０は、所定の送信シーケンスに関連付けられた所定値１３２を記憶し得る。フィルタ１４０は、所定値１３２を使用して受信機１２０で受信された入力信号にエコーキャンセル動作を行うように構成され得る。所定値１３２は、特定の数学演算（mathematical operations）がそれらに行われた後の信号データ１３４の値を含み得る。例えば、信号データ１３４があらかじめ決定されるため、信号データ１３４に関連したコンピュータに要求される計算は、デバイス１００の動作中の計算負荷を軽減するために、前もって（例えば、所定の信号が送信される前に）行われ、また所定値１３２として記憶される。
【００１７】
[0023]  動作中、１つまたは複数の信号（例えば、１つまたは複数の超音波信号）は、入力信号として受信機１２０で受信され得る。１つまたは複数の信号は、ソース１８０（例えば、図１に示されていない別のデバイスの送信機）から受信された信号１８２およびエコー信号１１２）を含み得る。図３に関連して説明されるように、デバイス１００は、信号１８２に基づいてソース１８０（または別の動作）の位置を決定するように構成され得る。入力信号は、ソース１８０の位置に関して誤差のない決定を容易にするために、エコー信号１１２を除去するようにフィルタリングされ得る。エコー信号１１２によって引き起こされたノイズを軽減するために、デバイス１００は、入力信号から信号１１２を軽減または削除するために所定値１３２に基づいてフィルタ１４０で入力信号を処理する。
【００１８】
[0024]  図１で示されるように、フィルタ１４０は、第１の処理経路１４２および第２の処理経路１４４を含み得る。第１の処理経路１４２は、第１の処理ブロック１５０、第２の処理ブロック１５４、および第３の処理ブロック１５８などの複数の処理ブロックを含む。第２の処理経路１４４は、第４の処理ブロック１６２を含む。処理経路および処理ブロックという用語は、説明の簡略化のために、エレメント１４２、１４４および１５０、１５４、１５８、１６２の各々を説明するために使用され得る。処理経路および処理ブロックという用語は、特定の物理回路を要求することを意図するものではなく、むしろ、処理経路および処理ブロックが、処理経路１４２、１４４および処理ブロック１５０、１５４、１５８、１６２の各々に関連して説明される機能のような特定の機能を実装するために動作可能であるフィルタ１４０の特定の部分を説明するために使用される。このように、処理経路および処理ブロックという用語は、特定の実施形態では、フィルタ１４０に関連付けられた特定の機能を行う回路の一部分あるいは１つまたは複数の回路を指し得る。別の実施形態では、処理経路および処理ブロックという用語は、プロセッサによって実行されるときに、プロセッサに、フィルタ１４０に関連付けられた特定の機能の実行を開始させる、コンピュータ読取可能な記憶媒体内に記憶される命令を指し得る。
【００１９】
[0025]  入力信号は、１つまたは複数の受信機１２０によってサンプリングされ得る。入力信号のサンプルは、フィルタ１４０にフレーム１７０（例えば、エコー信号１１２と信号１８２が組み合わせられたものの、デジタル化された表現）として提供され得る。フィルタ１４０は、所定値１３２を使用して、エコー信号１１２を軽減または削除するためにフレーム１７０にエコーキャンセルを行い得る。フレーム１７０、  
【数１】
0005978404.tif 000002
【００２０】
（すなわち、受信機１２０で受信された入力信号のサンプル）は、  
【数２】
0005978404.tif 000003
【００２１】
として数学的に表され、ここで、  
【数３】
0005978404.tif 000004
【００２２】
は、信号１１２に影響を与えるインパルス応答１１４に対応し、  
【数４】
0005978404.tif 000005
【００２３】
は、信号１１２の所定の送信シーケンスに対応し、  
【数５】
0005978404.tif 000006
【００２４】
は、信号１８２に影響を与えるインパルス応答１８４に対応し、  
【数６】
0005978404.tif 000007
【００２５】
は、信号１８２の所定の送信シーケンスに対応し、ここで、
【数７】
0005978404.tif 000008
【００２６】
は、
【数８】
0005978404.tif 000009
【００２７】
と異なり、記号
【数９】
0005978404.tif 000010
【００２８】
は、畳み込みを示す。
【００２９】
[0026]  フレーム  
【数１０】
0005978404.tif 000011
【００３０】
は、信号１１２（例えば、フィルタ１４０によってキャンセルされるべきエコー信号）に対応し、また  
【数１１】
0005978404.tif 000012
【００３１】
は、ソース１８０から受信された信号１８２に対応する。インパルス応答１１４は、デバイス１００を囲むエリア（例えば、デバイス１００が位置付けられる部屋（room））の音響効果（acoustics）が、どのように信号１１２に影響を与えるかを示し、またインパルス応答１８４は、ソース１８０を囲むエリア（例えば、ソース１８０が位置付けられる部屋）の音響効果が、どのように信号１８２に影響を与えるかを示し得る。インパルス応答１１４は、デバイス１００とソース１８０とが同じエリアに位置付けられる場合であっても、インパルス応答１８４とは異なり得る。
【００３２】
[0027]  フィルタ１４０は、受信機１２０からフレーム１７０を受信し、第１の処理経路１４２および第２の処理経路１４４にフレーム１７０を提供し得る。第１の処理経路１４２は、フレーム１７０を第１の処理ブロック１５０に提供し得る。第１の処理ブロック１５０は、第２のフレーム１５２を生成するために、所定値１３２でフレーム１７０の畳み込みを行うように構成され得る。第２のフレーム１５２、  
【数１２】
0005978404.tif 000013
【００３３】
として数学的に表され得る。フレーム  
【数１３】
0005978404.tif 000014
【００３４】
は、所定値１３２（例えば、信号１１２の所定の送信シーケンスの近似値（approximation））と入力信号
【数１４】
0005978404.tif 000015
【００３５】
との間の相互関係を示し得る。デバイス１００の送信シーケンス  
【数１５】
0005978404.tif 000016
【００３６】
と、ソース１８０の送信シーケンス  
【数１６】
0005978404.tif 000017
【００３７】
とは、ほぼ（substantially）直交であるように選択される。そのため、第２のフレーム１５２
【数１７】
0005978404.tif 000018
【００３８】
は、第１のフレーム１７０、  
【数１８】
0005978404.tif 000019
【００３９】
と所定値１３２との間の相互関係に基づいて  
【数１９】
0005978404.tif 000020
【００４０】
を概算する。
【００４１】
[0028]  第２のフレーム１５２  
【数２０】
0005978404.tif 000021
【００４２】
は、第１の処理ブロック１５０から第２の処理ブロック１５４に提供され、ここで、フレーム  
【数２１】
0005978404.tif 000022
【００４３】
は、第３のフレーム１５６を生成するために、  
【数２２】
0005978404.tif 000023
【００４４】
によってデコンボリュートされる（de-convoluted）。第２の処理ブロック１５４は、値の組１４６を使用して  
【数２３】
0005978404.tif 000024
【００４５】
を除去するために、フレーム
【数２４】
0005978404.tif 000025
【００４６】
のデコンボリューションを行い得る。値の組１４６は、連結したマトリックス（concatenated matrix）Ｗを含み、ここで  
【数２５】
0005978404.tif 000026
【００４７】
（すなわち、信号データ１８０として記憶された複数の送信シーケンスのサブセット）に対応し、Ｉは、信号比に対する雑音によって乗算された対角恒等マトリックス（diagonal identity matrix）である。そのため、フレーム  
【数２６】
0005978404.tif 000027
【００４８】
は、インパルス応答１１４の推定値に対応し、すなわち、
【数２７】
0005978404.tif 000028
【００４９】
の推定値である。
【００５０】
[0029]  第３のフレーム１５６  
【数２８】
0005978404.tif 000029
【００５１】
は、第３の処理ブロック１５８に提供され得る。第３の処理ブロック１５８は、
第４のフレーム１６０、
【数２９】
0005978404.tif 000030
【００５２】
を生成するために、所定値１３２  
【数３０】
0005978404.tif 000031
【００５３】
で第３のフレーム１５６  
【数３１】
0005978404.tif 000032
【００５４】
を畳み込み、それは、  
【数３２】
0005978404.tif 000033
【００５５】
として数学的に表され得る。フレーム  
【数３３】
0005978404.tif 000034
【００５６】
は、フィルタ１４０によって除去されるべき、エコー信号１１２）に対応するフレーム  
【数３４】
0005978404.tif 000035
【００５７】
の位置の近似値を表し得る。
【００５８】
[0030]  第４の処理ブロック１６２は、入力としてフレーム１７０  
【数３５】
0005978404.tif 000036
【００５９】
および第３の処理ブロック１５８からの第４のフレーム１６０を受信し、出力フレーム１６４を生成し得る。第４の処理ブロック１６２は、フレーム  
【数３６】
0005978404.tif 000037
【００６０】
からフレーム  
【数３７】
0005978404.tif 000038
【００６１】
（例えば、エコー信号１１２の推定値）を差し引くことによって出力フレーム１６４を生成し得る。そのため、出力フレーム１６４は、  
【数３８】
0005978404.tif 000039
【００６２】
の推定値（すなわちインパルス応答１８４によって畳み込みされた信号１８２）に対応し得る。
【００６３】
[0031]  デバイス１００の局所的に一意である送信シーケンス
【数３９】
0005978404.tif 000040
【００６４】
に関連付けられた所定値１３２を記憶し、次にエコーキャンセルを行うために所定値１３２を使用することによって、デバイス１００は、適応フィードバックフィルタなどの他のエコーキャンセルフィルタと比較すると、エコーキャンセルフィルタ１４０の軽減された計算上の複雑さによって、より電力消費が低くなり得る。例えば、エコーキャンセル動作を行うために、適応フィードバックフィルタは、既知でないエコー信号に対応する  
【数４０】
0005978404.tif 000041
【００６５】
の両方を決定するために、送信された信号と受信された信号とを動的に（dynamically）適応させ得る。対照的に、フィルタ１４０は、メモリ１３０に記憶された所定値１３２
【数４１】
0005978404.tif 000042
【００６６】
を使用して、受信された信号  
【数４２】
0005978404.tif 000043
【００６７】
にエコーキャンセルを行う。デバイス１００の送信シーケンスがあらかじめ決定され、所定値１３２としてメモリ１３０において記憶されるため、フィルタ１４０の計算上の複雑さは、軽減され得る。そのため、エコーキャンセルを行うために、フィルタ１４０は、処理ブロック１５０、１５４、１５８に関連して説明されるように、畳み込みを使用してインパルス応答１１４  
【数４３】
0005978404.tif 000044
【００６８】
の推定のみを必要とする。加えて実施コストは、送信シーケンスおよびインパルス応答の両方が既知でない場合に、適応フィードバックフィルタなどの他のフィルタと比較すると、フィルタ１４０を使用して（すなわち、所定値１３２を使用する受信された信号に畳み込み動作を行うことによって）エコーキャンセルを行うために使用される軽減された計算リソースのために軽減され得る。
【００６９】
[0032]  図２を参照すると、所定値を使用してエコーキャンセルを行うように構成されたフィルタを含んでいるデバイス２００を含むシステムの、第２の例示的な実施形態が示されている。特定の実施形態では、デバイス２００は、モバイル通信デバイス（例えば、携帯電話）、スマートフォン、タブレットコンピューティングデバイス、ラップトップコンピューティングデバイス、携帯情報端末（ＰＤＡ）デバイス、または他の電子デバイスであり得る。デバイス２００は、送信機２０２、１つまたは複数の受信機２０４、メモリ２０６、およびフィルタ２０８を含む。
【００７０】
[0033]  送信機２０２は、所定の送信シーケンスに従って、信号２７２を送信するように構成され得る。実施形態では、送信機２０２は、所定の送信シーケンスに従って、超音波信号を送信するように構成された超音波送信機であり得る。図２に示されるように、メモリ２０６は、信号データ２４２を記憶し得る。信号データ２４２は、所定の信号シーケンスを記述する情報を含み得る。所定の送信シーケンスは、デバイス２００に局所的に一意でありうる疑似ランダムノイズ（ＰＮ）シーケンスであり得る。実施形態では、信号データ２４２は、複数の送信シーケンスを記述する情報（例えば、複数のｇｏｌｄ符号、複数のｋａｓａｍｉ符号、複数のｂａｒｋｅｒ符号など）を含み得、デバイス２００は、送信機２０２から送信された信号２７２がデバイス２００に局所的に一意であるように、複数の送信シーケンスの中から所定の送信シーケンスを選択し得る。信号データ２４２に加えて、メモリ２０６は、所定の送信シーケンスに関連付けられた所定値２４０を記憶し得る。実施形態では、所定値２４０は、デバイス２００に局所的に一意である所定の送信シーケンスの高速フーリエ変換（ＦＦＴ）のような信号データに基づく事前に計算された値を含み得る。当業者は、離散コサイン変換、離散フーリエ変換、またはウェーブレット変換などのいずれかの他の一般に既知である時間周波数領域変換技法が、限定されることなく、ＦＦＴの代わりに使用され得ることを容易に理解するだろう。フィルタ２０８は、所定値２４０を使用して、受信機２０４で受信された入力信号にエコーキャンセル動作を行うように構成され得る。図１のフィルタ１４０によって行われるエコーキャンセル動作とは対照的に、フィルタ２０８によって行われるエコーキャンセル動作は、周波数領域（例えば、ＦＦＴ動作を使用して）および時間領域（例えば、逆高速フーリエ変換（ＩＦＦＴ）動作を使用して）の両方での動作を含み得る。
【００７１】
[0034]  動作中、１つまたは複数の信号（例えば、１つまたは複数の超音波信号）は、入力信号として受信機２０４で受信され得る。１つまたは複数の信号は、ソース２８０（例えば、図２で示されていない別のデバイスの送信機）から受信された信号２８２およびエコー信号２７２を含み得る。エコー信号２７２は、ノイズを信号２８２に導入し得る。図３に関連して説明されるように、デバイス２００は、信号２８２に基づいてソース２８０（または別の動作）の位置を決定するように構成され得る。１つまたは複数の受信機２０４で受信された入力信号は、ソース２８０の位置に関する決定の正確さを改善にするために、エコー信号２７２を除去するようにフィルタリングされ得る。
【００７２】
[0035]  図２で示されるように、フィルタ２０８は、第１の処理ブロック２５０、第１の処理経路２１０、および第２の処理経路２１２を含み得る。第１の処理経路２１０は、第２の処理ブロック２５２、第３の処理ブロック２５４、第４の処理ブロック２５６、第５の処理ブロック２５８、および第６の処理ブロック２６０のような複数の処理ブロックを含む。第２の処理経路２１２は、第７の処理ブロック２６２を含む。処理経路および処理ブロックという用語は、説明の簡略化のために、エレメント２１０、２１２および２５０、２５２、２５４、２５６、２５８、２６０、２６２の各々を説明するために使用され得る。処理経路および処理ブロックという用語は、特定の物理回路を要求することを意図するものではなく、むしろ、処理経路および処理ブロックは、処理経路２１０、２１２および処理ブロック２５０、２５２、２５４、２５６、２５８、２６０、２６２の各々に関連して説明される機能のような特定の機能を実装するために動作可能であるフィルタ２０８の特定の部分を説明するために使用される。このように、処理経路および処理ブロックという用語は、特定の実施形態では、フィルタ２０８に関連付けられた特定の機能を行う回路の一部分あるいは１つまたは複数の回路を指し得る。別の実施形態では、処理経路および処理ブロックという用語は、プロセッサによって実行されるときに、プロセッサに、フィルタ２０８に関連付けられた特定の機能の実行を開始させる、コンピュータ読取可能な記憶媒体内に記憶される命令を指し得る。
【００７３】
[0036]  １つまたは複数の受信機２０４で受信した入力信号は、１つまたは複数の受信機２０４によってサンプリングされ得る。入力信号のサンプルは、フレーム２１８としてフィルタ２０８に提供され得る。フィルタ２０８は、所定値２４０を使用して、エコー信号２７２を軽減または削除するためにフレーム２１８にエコーキャンセルを行い得る。フレーム２１８は、フレーム  
【数４４】
0005978404.tif 000045
【００７４】
としてフィルタ２０８で受信され、それは、
【数４５】
0005978404.tif 000046
【００７５】
として数学的に表され、ここで、  
【数４６】
0005978404.tif 000047
【００７６】
は、信号２７２に影響を与えるインパルス応答２７４に対応し、  
【数４７】
0005978404.tif 000048
【００７７】
は、信号１１２の所定の送信シーケンスに対応し、  
【数４８】
0005978404.tif 000049
【００７８】
は、信号２８２に影響を与えるインパルス応答２８４に対応し、  
【数４９】
0005978404.tif 000050
【００７９】
は、信号２８２の所定の送信シーケンスに対応し、ここで、
【数５０】
0005978404.tif 000051
【００８０】
は、
【数５１】
0005978404.tif 000052
【００８１】
と異なり、記号
【数５２】
0005978404.tif 000053
【００８２】
は、畳み込みを示す。
【００８３】
第１の処理ブロック２５０は、フレーム２２０を生成するためにフレーム  
【数５３】
0005978404.tif 000054
【００８４】
にＦＦＴ動作を行い得る。フレーム２２０は、周波数範囲  
【数５４】
0005978404.tif 000055
【００８５】
においてフレーム  
【数５５】
0005978404.tif 000056
【００８６】
を表す。本明細書におけるＦＦＴ処理は、例示の目的のためだけのものであり、離散コサイン変換、離散フーリエ変換、またはウェーブレット変換などのいずれかの他の一般に既知である時間周波数領域変換技法が、限定されることなく、ＦＦＴの代わりに第１の処理ブロック２５０で行われ得る。
【００８７】
[0037]  フレーム  
【数５６】
0005978404.tif 000057
【００８８】
は、フィルタ２０８によってキャンセルまたは軽減されるべき１つまたは複数の受信機２０４で受信されるエコー信号２７２に対応する。さらに、  
【数５７】
0005978404.tif 000058
【００８９】
は、ソース２８０から受信された信号２８２に対応する。インパルス応答２７４は、デバイス２００を囲むエリア（例えば、デバイス２００が位置付けられる部屋）の音響効果が、どのように信号２７２に影響を与えるかを示し、またインパルス応答２８４は、ソース２８０を囲むエリア（例えば、ソース２８０が位置付けられる部屋）の音響効果が、どのように信号２８２に影響を与えるかを示し得る。インパルス応答２７４は、デバイス２００とソース２８０とが同じエリア（例えば、同じ部屋）に位置付けられる場合であっても、インパルス応答２８４とは異なり得る。
【００９０】
[0038]  第１の処理ブロック２５０は、第１の処理経路２１０および第２の処理経路２１２にフレーム２２０を提供し得る。第１の処理経路２１０は、フレーム２２０を第２の処理ブロック２５２に提供し得る。第２の処理ブロック２５２は、第２の処理フレーム２２２を生成するために、所定値２４０から決定される
【数５８】
0005978404.tif 000059
【００９１】
をフレーム２２０に乗算するように構成され得る。そのため、第２の処理ブロック２５２は、  
【数５９】
0005978404.tif 000060
【００９２】
を乗算し、それは、時間領域（例えば、図１の第１の処理ブロック１５０に関して説明されるような）において
【数６０】
0005978404.tif 000061
【００９３】
と数学的に等価である。第２のフレーム２２２は、  
【数６１】
0005978404.tif 000062
【００９４】
であり、ここで、フレーム  
【数６２】
0005978404.tif 000063
【００９５】
は、時間領域においてフレーム
【数６３】
0005978404.tif 000064
【００９６】
を表す。第２のフレーム２２２は、第３の処理ブロック２５４に提供され得る。
【００９７】
[0039]  第３の処理ブロック２５４は、第３のフレーム２２４を作り出すために第２のフレーム２２２にＩＦＦＴ動作を行い得る。本明細書におけるＩＦＦＴ動作は例示の目的のためだけのものであり、逆離散コサイン変換、逆離散フーリエ変換、または逆ウェーブレット変換などのいずれかの他の一般に既知である時間周波数領域変換技法が、限定されることなく、ＩＦＦＴの代わりに第３の処理ブロック２５４で行われ得る。第３のフレーム２２４、フレーム  
【数６４】
0005978404.tif 000065
【００９８】
の相関関係を示し得る。例えば、図１の信号１１２および図２の信号２７２が同じ所定の送信シーケンス（すなわち、所定値２４０＝ＦＦＴ（所定値１３２））に従って送信されると仮定すると、図２のフレーム  
【数６５】
0005978404.tif 000066
【００９９】
は、信号１８２と２８２とが同じかまたはほぼ同じであるときに、図１のフレーム  
【数６６】
0005978404.tif 000067
【０１００】
と同じであり得る。
【０１０１】
[0040]  第３のフレーム２２４  
【数６７】
0005978404.tif 000068
【０１０２】
は、第３の処理ブロック２５４から第４の処理ブロック２５６に提供され、ここで、フレーム  
【数６８】
0005978404.tif 000069
【０１０３】
は、第４のフレーム２２６生成するために、  
【数６９】
0005978404.tif 000070
【０１０４】
からデコンボリュートされる。第４の処理ブロック２５６は、値の組２７０を使用して  
【数７０】
0005978404.tif 000071
【０１０５】
のデコンボリューションを行い得る。値の組２７０は、図１に関連して説明される値の組１４６に対応し得る。第４のフレーム２２６は、フレーム  
【数７１】
0005978404.tif 000072
【０１０６】
は、インパルス応答２７４の推定値  
【数７２】
0005978404.tif 000073
【０１０７】
に対応する。
【０１０８】
[0041]  第４のフレーム２２６  
【数７３】
0005978404.tif 000074
【０１０９】
は、第５の処理ブロック２５８に提供され得る。第５の処理ブロック２５８は、第５のフレーム２２８、
【数７４】
0005978404.tif 000075
【０１１０】
を生成するために、第４のフレーム２２６  
【数７５】
0005978404.tif 000076
【０１１１】
にＦＦＴ動作を行い、それは、周波数領域内のインパルス応答２７４の推定値に対応する。本明細書におけるＦＦＴ動作は例示の目的のためだけのものであり、離散コサイン変換、離散フーリエ変換、またはウェーブレット変換などのいずれかの他の一般に既知である時間周波数領域変換技法が、限定されることなく、ＦＦＴの代わりに第５の処理ブロック２５８で行われ得る。
【０１１２】
[0042]  第５のフレーム２２８  
【数７６】
0005978404.tif 000077
【０１１３】
は、第６の処理ブロック２６０に提供され得る。第６の処理ブロック２６０は、第６のフレーム２３０、
【数７７】
0005978404.tif 000078
【０１１４】
を生成するために、第５のフレーム２２８に所定値２４０  
【数７８】
0005978404.tif 000079
【０１１５】
を乗算するように構成され得る。フレーム  
【数７９】
0005978404.tif 000080
【０１１６】
に周波数領域内の所定値２４０  
【数８０】
0005978404.tif 000081
【０１１７】
を乗算することは、図１の第１の処理ブロック１５８に関連して説明されるような、時間領域内の所定値２４０によるフレーム  
【数８１】
0005978404.tif 000082
【０１１８】
の畳み込みと数学的に等価である。第６のフレーム２３０  
【数８２】
0005978404.tif 000083
【０１１９】
は、フィルタ２０８によってキャンセルされるべきエコー信号２７２に対応するフレーム
【数８３】
0005978404.tif 000084
【０１２０】
の一部分を、周波数領域において表し得る。
【０１２１】
[0043]  第７の処理ブロック２６２は、入力としてフレーム２２０  
【数８４】
0005978404.tif 000085
【０１２２】
および第６の処理ブロック２６０からの第６のフレーム２３０
【数８５】
0005978404.tif 000086
【０１２３】
を受信し、出力フレーム２３２を生成し得る。第７の処理ブロック２６２は、フレーム  
【数８６】
0005978404.tif 000087
【０１２４】
からフレーム  
【数８７】
0005978404.tif 000088
【０１２５】
（例えば、信号２７２）を差し引くことによって出力フレーム２３２を生成し得る。そのため、出力フレーム２３２は、周波数領域内の信号２８２の推定値を表し得る。
【０１２６】
[0044]  デバイス２００の送信シーケンス（すなわち、ＰＮシーケンス）に局所的に一意である関連付けられた所定値２４０  
【数８８】
0005978404.tif 000089
【０１２７】
を記憶し、次にエコーキャンセルを行うために所定値２４０を使用することによって、デバイス２００は、適応フィードバックフィルタなどの他のエコーキャンセルフィルタと比較すると、エコーキャンセルフィルタ２０８の軽減された計算上の複雑さによって、より電力消費が低くなり得る。例えば、エコーキャンセル動作を行うために、適応フィードバックフィルタは、既知でないエコー信号に対応する  
【数８９】
0005978404.tif 000090
【０１２８】
の両方を決定するために、送信された信号と受信された信号とを動的に適応させ得る。対照的に、フィルタ１４０は、メモリ２０６に記憶された所定値２４０
【数９０】
0005978404.tif 000091
【０１２９】
を使用して、受信された信号  
【数９１】
0005978404.tif 000092
【０１３０】
にエコーキャンセルを行う。デバイス２００の送信シーケンスに基づく計算が、所定値２４０としてメモリ２０６に前もって記憶された結果を用いてなされ得るため、フィルタ２０８の計算上の複雑さは、軽減され得る。そのため、エコーキャンセルを行うために、処理ブロック２５６に関連して説明されるように、フィルタ２０８がインパルス応答  
【数９２】
0005978404.tif 000093
【０１３１】
のみを推定する。図２で証明されるように、インパルス応答
【数９３】
0005978404.tif 000094
【０１３２】
は、時間領域処理（例えば、デコンボリュート）と周波数領域処理との組み合わせを使用して推定され得る。加えて実施コストは、適応フィードバックフィルタなどの他のフィルタと比較すると、フィルタ２０８を使用してエコーキャンセルを行うために使用される計算リソースのために軽減され得る。
【０１３３】
[0045]  図３を参照すると、マルチユーザ・ピア・ツー・ピア測位システム３００の例示的な実施形態が示されている。図３に示されるように、マルチユーザ・ピア・ツー・ピア測位システム３００は、第１の電子デバイス３０２と第２の電子デバイス３４０とを含む。第１の電子デバイス３０２は、マイクロフォン３０４、３０６、３０８、および送信機３１０を含む。特定の実施形態では、マイクロフォン３０４、３０６、３０８は、図１に関連して説明される受信機１２０または図２に関連して説明される受信機２０４に対応し、送信機３１０は、図１に関連して説明される送信機１１０または図２に関連して説明される送信機２０２に対応し得る。図３で示されるように、第１の電子デバイス３０２は、第１の送信シーケンスに従って送信機３１０から第１の信号３２０（例えば、第１の超音波信号）を送信し、第２の電子デバイス３４０は、第２の送信シーケンスに従って送信機３４２から第２の信号３５０（例えば、第２の超音波信号）を送信し得る。図３で示されるように、第１の信号３２０は第１のパターン３２２によって表され、第２の信号３５０は第２のパターン３５２によって表される。
【０１３４】
[0046]  第１の電子デバイス３０２は、マイクロフォン３０４、３０６、３０８で第２の信号３５０を受信し、また三角測量（triangulation）を使用して第２の信号３５０に基づいて第２の電子デバイス３４０のロケーションを決定し得る。例えば、図３では、第１の電子デバイス３０２は、マイクロフォン３０４において信号３５０ａ、マイクロフォン３０８において信号３５０ｂ、およびマイクロフォン３０６において信号３５０ｃとして第２の信号３５０を受信する。第１の電子デバイス３０２は、第２の電子デバイス３４０の位置を三角測量するか、または推定するために信号３５０ａ、３５０ｂ、３５０ｃの各々に関連付けられた時間遅延を使用し得る。実施形態では、第２の電子デバイス３４０の位置を推定することは、第２の電子デバイス３４０および距離３８０のロケーションの方向を示す角度αを決定することを含み得る。特定の実施形態では、距離３８０は、第１の電子デバイス３０２と第２の電子デバイス３４０との間の距離に対応する。３つのマイクロフォンのみが図３で示されているが、第１の電子デバイス３０２は、３つ以上のマイクロフォンを含み得るということに留意されたい。
【０１３５】
[0047]  図３に示されるように、第１の信号３２０は、マイクロフォン３０４、３０６、３０８のうちの１つまたは複数において、エコー信号（例えば、信号３２０ａ、３２０ｂ、３２０ｃ）として受信され得る。エコー信号は、第２の電子デバイス３４０の位置の計算精度に干渉するか、またはそうでなければ、計算精度を悪化させ得る。図３に示されるように、第１の電子デバイス３０２は、メモリ３３０とフィルタ３３２とを含む。メモリ３３０は、第１の信号を送信するための送信機３１０によって使用される第１の送信シーケンスに関連付けられた所定値３３４を記憶し得る。特定の実施形態では、メモリ３３０は、図１のメモリ１３０または図２のメモリ２０６に対応し得る。フィルタ３３２は、マイクロフォン３０４、３０６、３０８（例えば第１の信号３０２および第２の信号３５０）の各々で受信された信号のサンプルを含むフレームを受信し、また第２の電子デバイス３４０の位置の推定値を計算する前にエコーキャンセル処理を行い得る。特定の実施形態では、フィルタ３３２は、図１に関連して説明されるフィルタ１４０、または図２に関連して説明されるフィルタ２０８に対応し得る。
【０１３６】
[0048]  実施形態では、デバイス３０２は、デバイス３４０およびピア・ツー・ピア測位システムを形成するための他のデバイス（図示されない）とやり取り（interact with）し得る。デバイス３０２は、フィルタ３３２の出力に基づいてピア・ツー・ピア測位システム内で動作する他のデバイスのロケーションを決定するように構成され得る。ピア・ツー・ピア測位システム内で動作するデバイスの各々は、デバイス３０２（例えば、マイクロフォン３０４、３０６、３０８において）で受信された信号を送信し、デバイス３０２で受信された信号が送信される各デバイスの推定されるロケーションを決定するためにデバイス３０２によって使用され得る。
【０１３７】
[0049]  デバイスの各々から送信された信号を区別するために、デバイス３０２は、所定の送信シーケンスの組（例えば、ｇｏｌｄ符号）からの特定の送信シーケンスを選択するために、他のデバイスの各々と交渉（negotiate）し得る。特定の実施形態では、送信シーケンスの組は、送信シーケンスの各々がファミリ内の他の送信シーケンスに対して低い相互相関（low cross-correlation）を有する送信シーケンスのファミリを備える。特定の送信シーケンスを選択した後、デバイス３０２は、選択された特定の送信シーケンスに従って信号（例えば、信号３０２）を周期的に送信する。特定の実施形態は、送信シーケンスの各々が周期的シーケンスを備え得る。デバイス３０２は、時間間隔に基づいて信号３２０を周期的に送信し得る。実施形態では、時間間隔は選択された特定の送信シーケンスの長さに基づいて決定され得る。
【０１３８】
[0050]  第１の電子デバイス３０２の局所的に一意である送信シーケンス（例えば、ＰＮ）に関連付けられた情報（例えば、所定値３３４）を記憶し、次にフィルタ３３２を使用してエコーキャンセルを行うための記憶された情報を使用することによって、第１の電子デバイス３０２は、適応フィードバックフィルタなどの他のエコーキャンセルフィルタと比較されるようなフィルタ３３２の軽減された計算上の複雑さによって、より電力消費が低くなり得る。フィルタ３３２の軽減された計算上の複雑さはまた、第１の電子デバイス３０２がより速いロケーション決定を行うことを可能にし得る。
【０１３９】
[0051]  図４を参照すると、エコーキャンセルを行うように構成されたデバイス４００の別の例示的な実施形態が示されている。図４に示されるように、デバイス４００は、プロセッサ４０２、受信機４０４、送信機４０６、およびメモリ４０８を含む。特定の実施形態では、デバイス４００は、図１のデバイス１００、図２のデバイス２００、または図３のデバイス３０２に対応し得る。メモリ４０８は、命令４２０を記憶し得る。命令４２０は、図１のフィルタ１４０または図２のフィルタ２０８に関連して説明される機能のうちの１つまたは複数を行うためにプロセッサ４０２によって実行可能であり得る。
【０１４０】
[0052]  実施形態では、命令４２０は、ロケーション命令４２６などの受信機４０４で受信された信号に基づいて、ロケーション決定を行うために実行可能な命令を含み得る。ロケーション命令４２６は、図３に関連して説明されるように、受信機４０４で他のデバイスから受信された信号に基づいて他のデバイスの位置を決定または三角測量するために、プロセッサ４０２によって実行可能であり得る。ロケーション命令４２６は、他のデバイスおよび距離（例えば、図３に関連して説明される距離３８０）のロケーションの方向を示す角度（例えば、図３に関連して説明される角度α）を決定するためにプロセッサ４０２によって実行可能であり得る。
【０１４１】
[0053]  実施形態では、命令４２０は、送信シーケンスの組４４０から特定の送信シーケンスを動的に選択し、メモリ４０８で所定値４３０を記憶するために実行可能な命令を含み得る。例えば、命令４２０は、シーケンス選択命令４２４を含み得る。シーケンス選択命令４２４は、送信シーケンスの組４４０からの特定の送信シーケンスを選択するためにプロセッサ４０２によって実行可能であり得る。実施形態では、送信シーケンスの組４４０は、ｇｏｌｄ符号シーケンスを備える。送信シーケンスの組４４０における各送信シーケンスは、送信シーケンスの組４４０における他の送信シーケンスに関して低い相関関係を有し得る。シーケンス選択命令４２４は、デバイス４００の通信範囲内で、送信機４０６によって使用されるべき局所的に一意な送信シーケンスを決定するために、プロセッサ４０２にワイヤレス通信リンク（例えば、Ｂｌｕｅｔｏｏｔｈ（登録商標）またはＷｉ−Ｆｉ（登録商標）通信リンク）を介して他のデバイスと通信させる命令を含み得る。送信シーケンスは、デバイス４００の通信範囲外にあるデバイスがデバイス４００と同じ送信シーケンスを同時に使用し得る場合に、デバイス４００の通信範囲内の各デバイスが異なる送信シーケンスを使用し得るという点で、局所的に一意であると考えられ得る。
【０１４２】
[0054]  送信シーケンスを選択した後、シーケンス選択命令４２４は、プロセッサ４０２に、所定値４３０を計算させるか、または所定値４３０にアクセスさせ得る。実施形態では、所定値４３０は、送信機４０６が送信シーケンスに従って信号を送信するのを開始する前に、メモリ４０８で記憶される。例えば、送信シーケンスを選択した後に、シーケンス選択命令４２４は、プロセッサ４０２に、選択された送信シーケンスに関する所定値４３０を計算させ、またメモリ４０８に所定値４３０を記憶させ得る。この特定の実施形態では、シーケンス選択命令４２４は、動作中に特定の選択された送信シーケンスを指示し、エコーキャンセルに使用するための対応する所定値の組４３０を指示する、プロセッサ４０２によって実行可能な命令を含み得る。説明のために、送信シーケンスの組は、１０の異なる送信シーケンスを含み、所定値４３０は、各送信シーケンスに基づいて計算された値を含み得る。特定の送信シーケンスは、送信機４０６を介する送信での使用のために選択され得る。エコーキャンセルの動作中、プロセッサ４０２は、送信機４０６によって使用される特定の送信シーケンスに対応する所定値４３０を使用し得る。別の実施形態では、単一の所定値の組４３０のみが生成され、シーケンス選択命令４２４を使用してメモリ４０８に記憶され得る。
【０１４３】
[0055]  図５を参照すると、エコーキャンセルを行うように構成されたデバイス５００の別の例示的な実施形態が示される。図５に示されるように、デバイス５００は、プロセッサ５０２、受信機５０４、送信機５０６、およびメモリ５０８を含む。特定の実施形態では、デバイス５００は、図１のデバイス１００または図２のデバイス２００に対応し得る。メモリ５０８は、送信シーケンスの組５２２および所定値５２０を記憶し得る。図５に示されるように、プロセッサ５０２は、フィルタ５１０、シーケンスセレクタ５１２、およびロケーション決定ユニット５１４を含む。特定の実施形態では、フィルタ５１０は、図１のフィルタ１４０または図２のフィルタ２０８に対応し得る。例えば、フィルタ５１０は、図１のフィルタ１４０または図２のフィルタ２０８に関連して説明される動作のうちの１つまたは複数を行うように構成される回路または他のロジックを含み得る。フィルタ５１０は、エコーキャンセル処理での使用のための所定値５２０を検索するためにメモリ５０８にアクセスし得る。
【０１４４】
[0056]  実施形態では、シーケンスセレクタ５１２は、図４のシーケンス送信命令４２４に関連して説明される機能の１つまたは複数を行うように構成される回路または他のロジックを含み得る。実施形態では、ロケーション決定ユニット５１４は、図４のロケーション命令４２６に関連して説明される機能のうちの１つまたは複数を行うように構成される回路または他のロジックを含み得る。図５で示されるように、フィルタ５１０、シーケンスセレクタ５１２、およびロケーション決定ユニット５１４は、プロセッサ５０２の一部であり得る。別の実施形態では、フィルタ５１０、シーケンスセレクタ５１２、およびロケーション決定ユニット５１４のうちの１つまたは複数は、プロセッサ５０２の外部にあり得る。例えば、フィルタ５１０、シーケンスセレクタ５１２、およびロケーション決定ユニット５１４のうちの１つまたは複数は、フィールドプログラマブルゲートアレイ（ＦＰＧＡ）デバイス、特定用途向け集積回路（ＡＳＩＣ）、専用処理ユニット、デジタル信号プロセッサ（ＤＳＰ）、コントローラ、別のハードウェアデバイス、ファームウェアデバイス、またはこれらの任意の組み合わせによって実装されうる。
【０１４５】
[0057]  図６を参照すると、エコーキャンセルを行う方法６００の第１の例示的な実施形態が示されている。６０２では、方法６００は、送信シーケンスを記述した信号データおよび送信シーケンスに関連付けられた所定値にアクセスすることを備える。例えば、信号データおよび所定値は、特定の送信シーケンスに対応する信号が送信される前に、図１のメモリ１３０または図２のメモリ２０６のようなメモリに記憶され得る。
【０１４６】
[0058]  方法６００は、６０４では、送信シーケンスに従って電子デバイスの送信機から信号を送信することを含む。６０６では、方法６００は、電子デバイスのマイクロフォンで受信される１つまたは複数の信号に基づいてフレームを生成することを含む。１つまたは複数の信号は、送信された信号に関連付けられたエコー信号を含み得る。６０８では、方法６００は、エコー信号に関連付けられた寄与が軽減される出力フレームを作り出すために、所定値を使用するフレームを処理することを含む。特定の実施形態では、所定値を使用するフレームの処理は、図１のフィルタ１４０によって行われ得る。別の特定の実施形態では、所定値を使用するフレームの処理は、図２のフィルタ２０８によって行われ得る。別の特定の実施形態では、所定値を使用するフレームの処理は、図３のフィルタ３３２によって行われ得る。別の特定の実施形態では、所定値を使用するフレームの処理は、図４のエコーキャンセル命令４２２を使用するプロセッサ４０２によって行われ得る。別の特定の実施形態では、所定値を使用するフレームの処理は、図５のフィルタ５１０によって行われ得る。
【０１４７】
[0059]  図７を参照すると、エコーキャンセルを行う方法７００の第２の例示的な実施形態が示されている。７０２では、方法７００は、第１の処理フレームを受信することを含む。実施形態では、第１の処理フレームは、図２のフィルタ２０８で受信され得る図２のフレーム２２０を含み、フレーム２２０内に含まれ、またはフレーム２２０に対応し得る。７０４では、方法７００は、第２の処理フレーム（例えば、図２のフレーム２２２）を生成するために、第１の処理フレームに所定値を乗算することを含む。特定の実施形態では、所定値は、図２の所定値２４０であり得る。
【０１４８】
[0060]  ７０６では、方法７００は、第３の処理フレーム（例えば、図２のフレーム２２４）を生成するために、第２の処理フレームに逆高速フーリエ変換（ＩＦＦＴ）を行うことを含む。７０８では、方法７００は、第４の処理フレーム（例えば、図２のフレーム２２６）を生成するために、第３の処理フレームに所定値の組を乗算することを含む。特定の実施形態では、所定値の組は、所定値２７０の組を含み、所定値２７０の組に含まれ、または所定値２７０の組に対応し得る。７１０では、方法７００は、第５の処理フレーム（例えば、図２のフレーム２２８）を生成するために、第４の処理フレームにＦＦＴを行うことを含む。７１２では、方法７００は、第６の処理フレーム（例えば、図２のフレーム２３０）を生成するために、第５の処理フレームに所定値を乗算し、７１４では、第１の処理フレームと第６の処理フレームとの間の差分を決定することを含む。特定の実施形態では、第１の処理フレームと第６の処理フレームとの間の差分は、エコー信号に関連付けられた寄与が入力フレーム（例えば、入力フレーム２１８）に関して軽減される出力フレーム（例えば、図２のフレーム２３２）を生成する。
【０１４９】
[0061]  図８を参照すると、図１−７に関して説明された様々な方法、システム、およびコンピュータ読取可能媒体をサポートするために動作可能である電子デバイス８００の特定の例示的な実施形態のブロック図が示されている。電子デバイス８００は、メモリ８３２に結合された、デジタル信号プロセッサ（ＤＳＰ）のようなプロセッサ８１０を含む。特定の実施形態では、電子デバイス８００は、図１のデバイス１００または図２の第１の電子デバイス２００、図３のデバイス３０２、図４のデバイス４００、あるいは図５のデバイス５００に対応し得る。
【０１５０】
[0062]  図８に示されるように、電子デバイス８００は、プロセッサ８１０およびディスプレイ８２８に結合されるディスプレイコントローラを含む。符号器／復号器（コーデック）８３４はまた、プロセッサ８１０に結合され得る。スピーカ８３６およびマイクロフォン８３８は、コーデック８３４に結合され得る。特定の実施形態では、マイクロフォン８３８は、電子デバイス８００の内部にあり得る。実施形態では、マイクロフォン８３８は、図１の受信機１２０、図２の受信機２０４、図３のマイクロフォン３０４、３０６、３０８、図４の受信機４０４、または図５の受信機５０４に対応し得る。実施形態では、スピーカ８３６は、図１の送信機１１０、図２の送信機２０２、図３の送信機３１０、図４の送信機４０６、または図５の送信機５０６に対応し得る。
【０１５１】
[0063]  図８に示されるように、電子デバイス８００は、アンテナ８４２に結合されるトランシーバ８５０に結合され得る、ワイヤレスコントローラ８４０を含む。特定の実施形態では、プロセッサ８１０、ディスプレイコントローラ８２６、メモリ８３２、コーデック８３４、トランシーバ８５０、およびワイヤレスコントローラ８４０が、システムインパッケージ（system-in-package）またはシステムオンチップ（system-on-chip）のデバイス８２２に含まれる。特定の実施形態では、入力デバイス８３０および電源８４４が、システムオンチップのデバイス８２２に結合される。特定の実施形態では、ディスプレイ８２８、入力デバイス８３０、スピーカ８３６、マイクロフォン８３８、ワイヤレスアンテナ８４２、および電源８４４は、システムオンチップのデバイス８２２の外部にあり得る。しかしながら、ディスプレイ８２８、入力デバイス８３０、スピーカ８３６、マイクロフォン８３８、ワイヤレスアンテナ８４２、および電源８４４のうちの各々は、インタフェースまたはコントローラなどの、システムオンチップのデバイス８２２のコンポーネントに結合され得る。
【０１５２】
[0064]  電子デバイス８００は、メモリ８３２において、所定値８８２のような所定値を記憶し得る。実施形態では、所定値は、所定値８７２としてプロセッサ８１０のメモリ（すなわち、キャッシュメモリ）において記憶され得る。プロセッサ８１０は、所定値８８２、またはメモリ８３２における所定値にアクセスするように構成されるシーケンス選択ロジック（例えば、図５のシーケンスセレクタ５１２）を含み得る。電子デバイス８００は、マイクロフォン８３８において信号（例えば、超音波信号）を含み得る。受信された信号は、スピーカ８３６によって生成されるエコー信号を含み得る。特定の実施形態では、コーデック８３４は、入力フレーム（例えば、図１の入力フレーム１７０、または図２の入力フレーム２１８）を生成し、プロセッサ８１０に入力フレームを提供するために受信された信号を処理し得る。別の実施形態では、入力フレームは、プロセッサ８１０によって生成され得る。
【０１５３】
[0065]  特定の実施形態では、プロセッサ８１０は、出力フレーム（例えば、図１の出力フレーム１６４または図２の出力フレーム２３２）を生成するために、入力フレームを処理するように構成されるエコーキャンセルロジック８８０を含み得る。出力フレームへのエコーキャンセルの寄与は、入力フレームへのエコー信号の寄与よりも小さくなり得る。実施形態では、エコーキャンセルロジック８８０は、図１のフィルタ１４０に対応し、また図１の処理ブロック１５０、１５４、１５８、１６２に関連して説明される動作のうちの１つまたは複数を行うように構成され得る。別の実施形態では、エコーキャンセルロジック８８０は、図２のフィルタ２０８に対応し、また図２の処理ブロック２５０−２６２に関連して説明される動作のうちの１つまたは複数を行うように構成され得る。別の実施形態では、エコーキャンセルロジック８８０は、図３のフィルタ３３２に対応し得る。さらに別の実施形態では、エコーキャンセルロジック８８０は、図５に関連して説明されるフィルタ５１０に対応し得る。
【０１５４】
[0066]  別の特定の実施形態では、メモリ８３２は、プロセッサ８１０に、図１−７に関連して説明されるような出力フレームを生成するための入力フレームにエコーキャンセル動作を行わせるエコーキャンセル命令８７０を記憶し得る。出力信号へのエコー信号の寄与は、入力フレームへのエコー信号の寄与よりも小さくなり得る。例えば、エコーキャンセル命令８７０は、図４のエコーキャンセル命令４２２に対応し得る。別の実施形態では、エコーキャンセル命令８７０は、図１の処理ブロック１５０、１５４、１５８、１６２に関連して説明される動作、または図２の処理ブロック２５０−２６２に関連して説明される動作のうち１つまたは複数を行うために、プロセッサによって実行可能であり得る。
【０１５５】
[0067]  プロセッサ８１０は、所定の送信シーケンスを記述した信号データに基づいて、所定値（例えば、所定値８８２または所定値８７２のような、所定値に関連する送信シーケンスが送られる前に決定される値）を生成するように構成され得る。特定の実施形態では、プロセッサ８１０は、所定値を生成するように構成され、メモリ（例えば、メモリ８３２またはプロセッサ８１０のキャッシュメモリ）における所定値を記憶するように構成され、あるいはメモリ８３２において所定値にアクセスするように構成される、シーケンスセレクタ（例えば、図５のシーケンスセレクタ５１２）を含み得る。別の実施形態では、メモリ８３２は、プロセッサ８１０に、所定値を生成させ、メモリ（例えば、プロセッサ８１０のキャッシュメモリまたはメモリ８３２）に所定値を記憶させるシーケンス選択命令（例えば、図４のシーケンス選択命令４２４）を記憶し得る。
【０１５６】
[0068]  プロセッサ８１０は、図３に関連して説明されるような出力フレームに基づいて、別の電子デバイス（図示されない）のロケーションを決定するように構成され得る。例えば、受信された信号の特定の部分は、他の電子デバイスで生成される信号に対応し得る。プロセッサ８１０は、出力フレームに基づいて、電子デバイス８００に対する他の電子デバイスのロケーション（すなわち、方向および距離）を決定するために、三角測量を使用し得る。特定の実施形態では、プロセッサ８１０は、他の電子デバイスのロケーションを決定する際に使用するためのロケーションロジック（例えば、図５のロケーション決定ユニット５１４）を含み得る。別の実施形態では、メモリ８３２は、プロセッサ８１０に他の電子デバイスのロケーションを決定させるロケーション命令（例えば、図４のロケーション命令４２６）を記憶し得る。
【０１５７】
[0069]  説明された実施形態と共に、システムは、送信シーケンスに従って信号を送信するための手段を含み得ることが開示される。特定の実施形態では、信号を送信するための手段は、スピーカ８３６、図１の送信機１１０、図２の送信機２０２、図３の送信機３１０、図４の送信機４０６、または図５の送信機５０６を含み得る。システムは、１つまたは複数の信号を受信するための手段を含み得る。特定の実施形態では、１つまたは複数の信号を受信するための手段は、マイクロフォン８３８、図１の受信機１２０、図２の受信機２０４、図３のマイクロフォン３０４−３０８、図４の受信機４０４、または図５の受信機５０４を含み得る。システムは、送信シーケンスに関連付けられた所定値を記憶するための手段を含み得る。実施形態では、送信シーケンスに関連付けられた所定値を記憶するための手段は、メモリ８３２、図１のメモリ１３０、図２のメモリ２０６、図３のメモリ３３０、図４のメモリ４０８、または図５のメモリ５０８を含み得る。別の実施形態では、送信シーケンスに関連付けられた所定値を記憶するための手段は、プロセッサ８１０のレジスタまたはメモリ（例えば、キャッシュメモリ）を含み得る。
【０１５８】
[0070]  システムは、１つまたは複数の受信された信号に基づいて入力（例えば、図１の入力フレーム１７０、または図２の入力フレーム２１８）を生成するための手段を含み得る。実施形態では、１つまたは複数の受信された信号に基づいて入力を生成するための手段は、プロセッサ８１０を含み得る。別の実施形態では、１つまたは複数の受信された信号に基づいて入力を生成するための手段は、図１の受信機１２０または図２の受信機２０４を含み得る。別の実施形態では、１つまたは複数の受信された信号に基づいて入力を生成するための手段は、図５のフィルタ５１０を含み得る。実施形態では、１つまたは複数の受信された信号に基づいて入力を生成するための手段は、フィールドプログラマブルゲートアレイ（ＦＰＧＡ）デバイス、特定用途向け集積回路（ＡＳＩＣ）、中央処理装置（ＣＰＵ）のような処理ユニット、デジタル信号プロセッサ（ＤＳＰ）、コントローラ、別のハードウェアデバイス、ファームウェアデバイス、あるいは１つまたは複数の受信された信号に基づいて入力信号を生成するように構成されたこれらの任意の組み合わせによって実装されうる。
【０１５９】
[0071]  システムは、第１の出力（例えば、図１のフレーム１６０、または図２のフレーム２３０）を生成するために、所定値に基づいて入力を処理するための手段を含み得る。第１の出力は、入力への送信された信号の寄与を示し得る。実施形態では、所定値に基づいて入力を処理するための手段は、エコーキャンセルロジック８８０を含み、それは、プロセッサ８１０内に組み込まれ得る。別の実施形態では、エコーキャンセルロジック８８０は、プロセッサ８１０の外部にあり、ＦＰＧＡデバイス、ＡＳＩＣ、ＣＰＵなどの処理ユニット、ＤＳＰ、コントローラ、別のハードウェアデバイス、ファームウェアデバイス、またはそれらのいずれかの組み合わせによって実装され得る。実施形態では、所定値に基づいて入力を処理するための手段は、図１のフィルタ１４０の、図１の第１の処理経路１４２（例えば、図１の処理ブロック１５０、１５４、１５８、１６２）を含み得る。別の実施形態では、所定値に基づいて入力を処理するための手段は、図２のフィルタ２０８の、図２の第１の処理経路２１０（例えば、図２の処理ブロック２５０−２６２）を含み得る。別の実施形態では、所定値に基づいて入力を処理するための手段は、図３のフィルタ３３２を含み得る。実施形態では、第１の処理経路１４２、第１の処理経路２１０は、ＦＰＧＡデバイス、ＡＳＩＣ、ＣＰＵなどの処理ユニット、ＤＳＰ、コントローラ、別のハードウェアデバイス、ファームウェアデバイス、あるいは、図１の処理ブロック１５０、１５４、１５８または図２の処理ブロック２５２−２６０に関連して説明される機能を行うように構成されるそれらの組み合わせによって実装され得る。
【０１６０】
[0072]  システムは、入力と第１の出力との間の差分基づいて、第２の出力（例えば、図１の出力フレーム１６４、または図２の出力フレーム２３２）を生成するための手段を含み得る。実施形態では、第２の出力を生成するための手段は、エコーキャンセルロジック８８０を含み得る。特定の実施形態では、エコーキャンセルロジック８８０は、プロセッサ８１０内に組み込まれ得る。別の実施形態では、エコーキャンセルロジック８８０は、プロセッサ８１０（例えば、特定用途向け回路）の外部にあり得る。実施形態では、第２の出力を生成するための手段は、図１のフィルタ１４０の第２の処理経路１４４（例えば、図１の処理ブロック１６２）、図２のフィルタ２０８の第２の処理経路２１２（例えば、図２の処理ブロック２６２）を含み得るか、あるいは図３のフィルタ３３２を含み得る。実施形態では、図１のフィルタ１４０の第２の処理経路１４４または図２のフィルタ２０８の第２の処理経路２１２は、ＦＰＧＡデバイス、ＡＳＩＣ、ＣＰＵなどの処理ユニット、ＤＳＰ、コントローラ、別のハードウェアデバイス、ファームウェアデバイス、あるいは、図１の処理ブロック１６２または図２の処理ブロック２６２に関連して説明される機能を行うように構成されるそれらの組み合わせによって実装され得る。
【０１６１】
[0073]  実施形態では、入力を生成するための手段（例えば、図２のフレーム２２０）は、１つまたは複数の受信された信号に基づいて生成されたフレーム（例えば、図２のフレーム２１８）を受信するための手段、およびフレームに高速フーリエ変換（ＦＦＴ）を行うための手段を含み得る。入力は、ＦＦＴの結果を含み得る。実施形態では、フレームにＦＦＴを行うための手段は、図２の第１の処理ブロック２５０を含み得る。実施形態では、第１の処理ブロック２５０は、ＦＰＧＡデバイス、ＡＳＩＣ、ＣＰＵなどの処理ユニット、ＤＳＰ、コントローラ、別のハードウェアデバイス、ファームウェアデバイス、あるいは、フレームを受信するようにかつフレームにＦＦＴを行うように構成されるそれらの組み合わせによって実装され得る。
【０１６２】
[0074]  特定の実施形態では、入力（例えば、図２のフレーム２２０）を処理するための手段は、入力に所定値を乗算することによって第１の積（例えば、図２のフレーム２２２）を決定するための手段と、第１の積に逆高速フーリエ変換（ＩＦＦＴ）を行うための手段と、ＩＦＦＴの結果（例えば、図２のフレーム２２４）に所定値の組（例えば、図２の所定値の組２７０）を乗算することによって第２の積（例えば、フレーム２２６）を決定するための手段と、第２の積に第２のＦＦＴを行うための手段と、第１の出力（例えば、フレーム２３０）を生成するために第２のＦＦＴの結果（例えば、図２のフレーム２２８）に所定値を乗算するための手段とを含む。
【０１６３】
[0075]  実施形態では、第１の積を決定するための手段、第１の積にＩＦＦＴを行うための手段、第２の積を決定するための手段、第２の積に第２のＦＦＴを行うための手段、および第２のＦＦＴの結果を乗算するための手段は、ＦＰＧＡデバイス、ＡＳＩＣ、ＣＰＵなどの処理ユニット、ＤＳＰ、コントローラ、別のハードウェアデバイス、ファームウェアデバイス、あるいは、図１の第２の処理ブロック１５４に関連して説明される機能を行うように構成されたそれらの任意の組み合わせによって各々実装され得る。実施形態では、第１の積にＩＦＦＴを行うための手段は、第３の処理ブロック２５４に対応する。実施形態では、所定値の組は、図１に関連して説明される所定値の組１３２に対応し得る。
【０１６４】
[0076]  当業者はさらに、本明細書に開示された実施形態に関連して説明される様々な実例となるロジックブロック、構成、モジュール、回路、アルゴリズムステップが電子ハードウェア、コンピュータソフトウェアまたは両方の組み合わせとして実装されることを理解するであろう。さまざまな例示的なコンポーネント、ブロック、構成、モジュール、回路、およびステップが、一般に、それらの機能の観点から上記で説明された。このような機能が、ハードウェアまたはソフトウェアとして実装されるかどうかは、システム全体に課せられた、特定のアプリケーションおよび設計制約に依存する。当業者であれば、説明された機能を特定のアプリケーションごとに様々な方法で実装し得るが、このような実装の決定は、本開示の範囲からの逸脱を生じるものと解釈されるべきではない。
【０１６５】
[0077]  本明細書で開示された態様に関連して説明された方法またはアルゴリズムのステップは、直接ハードウェアにおいて、プロセッサによって実行されるソフトウェアモジュールにおいて、またはこれら２つの組み合わせにおいて、具現化され得る。ソフトウェアモジュールは、ランダムアクセスメモリ（ＲＡＭ）、フラッシュメモリ、読み出し専用メモリ（ＲＯＭ）、プログラマブル読み出し専用メモリ（ＰＲＯＭ）、消去可能ＰＲＯＭ（ＥＰＲＯＭ）、電気的消去可能ＰＲＯＭ（ＥＥＰＲＯＭ（登録商標））、レジスタ、ハードディスク、リムーバブルディスク、コンパクトディスク読み出し専用メモリ（ＣＤ−ＲＯＭ）、あるいは当該技術において既知の任意のその他の形状の非一時的な記憶媒体に存在しうる。例示的な記憶媒体は、プロセッサが記憶媒体から情報を読み取り、また記憶媒体に情報を書き込むことができるように、プロセッサに結合されうる。代替的に、記憶媒体は、プロセッサに統合されうる。プロセッサおよび記憶媒体は、特定用途向け集積回路（ＡＳＩＣ）に存在しうる。ＡＳＩＣは、コンピューティングデバイスまたはユーザ端末（例えば、モバイル電話またはＰＤＡ）に存在しうる。代替において、プロセッサおよび記憶媒体は、コンピューティングデバイスまたはユーザ端末内に個別のコンポーネントとして存在しうる。
【０１６６】
[0078]  開示された実施形態の先の説明は、開示された実施形態を製造または使用することを当業者に可能にするために提供される。これらの実施形態に対する様々な修正は、当業者にとって容易に明らかであり、本明細書に定義された原理は、本開示の範囲から逸脱することなく他の実施形態に適用されうる。したがって、本開示は、本明細書に開示された実施形態に制限されるようには意図されず、下記の特許請求の範囲によって定義されるような原理および新規な特徴と一致する最も広い範囲を与えられることとなる。
以下に、本願出願の当初の特許請求の範囲に記載された発明を付記する。
［Ｃ１］
方法であって、
送信シーケンスを記述した信号データおよび前記送信シーケンスに関連付けられた所定値にアクセスすることと、ここにおいて、前記信号データおよび前記所定値は、メモリ内に記憶される、
前記送信シーケンスに従って電子デバイスのスピーカから信号を送信することと、
前記電子デバイスのマイクロフォンで受信された１つまたは複数の信号に基づいてフレームを生成することと、ここで、前記１つまたは複数の信号は、前記送信された信号に関連付けられたエコー信号を含む、
前記エコー信号に関連付けられた寄与が軽減される出力フレームを生成するために、前記所定値を使用して前記フレームを処理することと
を備える、方法。
［Ｃ２］
前記所定値は、前記送信シーケンスの高速フーリエ変換（ＦＦＴ）に対応する、Ｃ１に記載の方法。
［Ｃ３］
前記フレームを処理することはさらに、
第１の処理フレームを生成するために前記フレームにＦＦＴを行うことと、
エコーキャンセルロジックに前記第１の処理フレームを提供することと、
を備え、
前記エコーキャンセルロジックは、前記所定値に基づいて前記第１の処理フレームを処理するように構成される、
Ｃ２に記載の方法。
［Ｃ４］
前記所定値に基づいて前記第１の処理フレームを処理することは、
第２の処理フレームを生成するために、前記第１の処理フレームに前記所定値を乗算することと、
第３の処理フレームを生成するために、前記第２の処理フレームに逆高速フーリエ変換（ＩＦＦＴ）を行うことと、
第４の処理フレームを生成するために、前記第３の処理フレームに所定値の組を乗算することと、
第５の処理フレームを生成するために、前記第４の処理フレームにＦＦＴを行うことと、
第６の処理フレームを生成するために、前記第５の処理フレームに前記所定値を乗算することと、
前記第１の処理フレームと前記第６の処理フレームとの間の差分を決定することと、
を備える、Ｃ３に記載の方法。
［Ｃ５］
前記出力フレームは、前記第１の処理フレームと前記第６の処理フレームとの間の前記差分に基づいて生成される、Ｃ４に記載の方法。
［Ｃ６］
前記送信シーケンスは、前記電子デバイスに局所的に一意である、Ｃ１に記載の方法。
［Ｃ７］
前記電子デバイスは、モバイル通信デバイスである、Ｃ６に記載の方法。
［Ｃ８］
前記１つまたは複数の受信された信号は、第２の電子デバイスによって送信された第２の信号を含み、前記方法はさらに、前記出力フレームに基づいて前記第２の電子デバイスの位置を決定することを備え、前記第２の電子デバイスは、前記送信シーケンスとは異なる第２の送信シーケンスに従って前記第２の信号を送信する、Ｃ１に記載の方法。
［Ｃ９］
前記１つまたは複数の受信された信号は、超音波信号を備える、Ｃ８に記載の方法。
［Ｃ１０］
前記信号は超音波信号を備え、前記送信シーケンスは周期的シーケンスを備える、Ｃ１に記載の方法。
［Ｃ１１］
装置であって、
送信シーケンスに従って信号を送信するように構成された送信機と、
１つまたは複数の信号を受信するように構成された受信機と、
前記送信シーケンスに関連付けられた所定値を記憶するメモリと、
前記１つまたは複数の受信された信号に基づいて生成される入力を受信し、
前記メモリから前記所定値を検索し、
前記入力への前記送信された信号の寄与を示す出力を生成するために、前記所定値に基づいて前記入力を処理する
ように構成された第１の処理経路と、
前記入力を受信し、
前記処理経路から前記出力を受信し、
前記第１の処理経路の前記入力と前記出力との間の差分に基づいて、出力フレームを生成する
ように構成された第２の処理経路と、
を備える装置。
［Ｃ１２］
前記第１の処理経路および前記第２の処理経路に結合されたフレームロジックをさらに備え、前記フレームロジックは、
前記１つまたは複数の受信された信号に基づいて生成されたフレームを受信し、
第１の処理フレームを生成するために、前記フレームに高速フーリエ変換（ＦＦＴ）を行い、
前記第１の処理フレームを前記第１の処理経路および前記第２の処理経路に提供する
ように構成され、
前記入力は、前記第１の処理フレームである、
Ｃ１１に記載の装置。
［Ｃ１３］
前記第１の処理経路は、
第２の処理フレームを生成するために、前記第１の処理フレームに前記所定値を乗算し、
第３の処理フレームを生成するために、前記第２の処理フレームに逆高速フーリエ変換（ＩＦＦＴ）を行い、
第４の処理フレームを生成するために、前記第３の処理フレームに所定値の組を乗算し、
第５の処理フレームを生成するために、前記第４の処理フレームに第２のＦＦＴを行い、
前記出力を生成するために、前記第５の処理フレームに前記所定値を乗算し、
前記出力を前記第２の処理経路に提供する
ように構成される、Ｃ１２に記載の装置。
［Ｃ１４］
所定のエコーキャンセル値は、前記送信シーケンスのＦＦＴに対応する、Ｃ１３に記載の装置。
［Ｃ１５］
前記所定値の組は、テプリッツ行列を備える、Ｃ１３に記載の装置。
［Ｃ１６］
前記１つまたは複数の受信された信号は、第２の送信機によって生成された第２の信号を含み、前記装置はさらに、
前記第２の処理経路から第２の出力を受信し、
前記第２の出力に基づいて前記第２の送信機の位置を決定する
ように構成された第２のロジックを備え、
前記第２の送信機は、前記送信シーケンスとは異なる第２の送信シーケンスに従って、前記第２の信号を生成する、
Ｃ１１に記載の装置。
［Ｃ１７］
前記入力は、前記送信された信号に関連付けられた第１の情報と、前記第２の信号に関連付けられた第２の情報とを含み、前記第２の出力への前記送信された信号の寄与は、前記入力への前記送信された信号の前記寄与よりも少ない、Ｃ１６に記載の装置。
［Ｃ１８］
前記送信機は第１のデバイスに組み込まれ、前記第２の送信機は前記第１のデバイスとは異なる第２のデバイスに組み込まれる、Ｃ１７に記載の装置。
［Ｃ１９］
前記送信された信号は超音波を備える、Ｃ１１に記載の装置。
［Ｃ２０］
前記超音波信号は、周期信号を備える、Ｃ１９に記載の装置。
［Ｃ２１］
第２の送信シーケンスを選択し、
前記第２の送信シーケンスに関連付けられた第２の所定値を生成し、
前記第２の所定値を前記メモリに記憶する
ように構成された、シーケンス選択ロジックをさらに備える、Ｃ１１に記載の装置。
［Ｃ２２］
前記第２の送信シーケンスを選択した後に、前記送信機は、前記第２の送信シーケンスに従って第２の信号を送信するように構成される、Ｃ２１に記載の装置。
［Ｃ２３］
前記選択ロジックは、複数の所定の送信シーケンスから前記第２の送信シーケンスを選択する、Ｃ２１に記載の装置。
［Ｃ２４］
前記複数の所定の送信シーケンスは、ｇｏｌｄ符号シーケンスを備える、Ｃ２３に記載の装置。
［Ｃ２５］
命令を備えるコンピュータ読取可能記憶媒体であって、前記命令は、プロセッサによって実行されるとき、前記プロセッサに、
送信シーケンスを記述した信号データおよび前記送信シーケンスに関連付けられた所定値にアクセスすることと、ここにおいて、前記信号データおよび前記所定値は、メモリ内に記憶される、
電子デバイスのスピーカに、前記送信シーケンスに従って信号を送信させることと、
前記電子デバイスのマイクロフォンで受信された１つまたは複数の信号に基づいてフレームを生成することと、ここで、前記１つまたは複数の信号は、送信された信号に関連付けられたエコー信号を含む、
前記エコー信号に関連付けられた寄与が軽減される出力フレームを生成するために、前記所定値を使用して前記フレームを処理することと、
を行わせる、コンピュータ読取可能記憶媒体。
［Ｃ２６］
前記プロセッサによって実行されるとき、前記プロセッサに、前記信号が送信される前に、前記所定値を生成するために前記送信シーケンスで高速フーリエ変換（ＦＦＴ）を行わせる命令をさらに備える、Ｃ２５に記載のコンピュータ読取可能記憶媒体。
［Ｃ２７］
前記プロセッサによって実行されるとき、前記プロセッサに、
第１の処理フレームを生成するために、前記フレームにＦＦＴを行うことと、
前記所定値に基づいて前記第１の処理フレームを処理するように構成されるエコーキャンセルロジックに、前記第１の処理フレームを提供することと、
を行わせる命令をさらに備える、Ｃ２６に記載のコンピュータ読取可能記憶媒体。
［Ｃ２８］
前記プロセッサによって実行されるとき、前記プロセッサに、
第２の処理フレームを生成するために、前記第１の処理フレームに前記所定値を乗算することと、
第３の処理フレームを生成するために、前記第２の処理フレームに逆高速フーリエ変換（ＩＦＦＴ）を行うことと、
第４の処理フレームを生成するために、前記第３の処理フレームに前記所定値の組を乗算することと、
第５の処理フレームを生成するために、前記第４の処理フレームに第２のＦＦＴを行うことと、
第６の処理フレームを生成するために、前記第５の処理フレームに前記所定値を乗算することと、
前記第１の処理フレームと前記第６の処理フレームとの間の差分を決定することと、
を行わせる命令をさらに備える、Ｃ２７に記載のコンピュータ読取可能記憶媒体。
［Ｃ２９］
前記出力フレームは、前記第１の処理フレームと前記第６の処理フレームとの間の前記差分に基づいて生成される、Ｃ２８に記載のコンピュータ読取可能記憶媒体。
［Ｃ３０］
前記送信シーケンスは、前記プロセッサを含む電子デバイスに局所的に一意である、Ｃ２５に記載のコンピュータ読取可能記憶媒体。
［Ｃ３１］
前記電子デバイスは、モバイル通信デバイスである、Ｃ３０に記載のコンピュータ読取可能記憶媒体。
［Ｃ３２］
装置であって、
送信シーケンスに従って信号を送信するための手段と、
１つまたは複数の信号を受信するための手段と、
前記送信シーケンスに関連付けられた所定値を記憶するための手段と、
前記１つまたは複数の受信された信号に基づいて入力を生成するための手段と、
第１の出力を生成するために、前記所定値に基づいて前記入力を処理するための手段と、ここにおいて、第１の出力は、前記入力への前記送信された信号の寄与を示す、
前記入力と前記第１の出力との間の差分に基づいて第２の出力を生成するための手段と
を備える、装置。
［Ｃ３３］
前記入力を生成するための前記手段は、
前記１つまたは複数の受信された信号に基づいて生成されたフレームを受信するための手段と、
前記フレームに高速フーリエ変換（ＦＦＴ）を行うための手段と
を備え、
前記入力は、前記ＦＦＴの結果である、
Ｃ３２に記載の装置。
［Ｃ３４］
前記所定値は、前記送信シーケンスの高速フーリエ変換（ＦＦＴ）に対応する、Ｃ３２に記載の装置。
［Ｃ３５］
前記入力を処理するための前記手段は、
前記入力に前記所定値を乗算することによって、第１の積を決定するための手段と、
前記第１の積に逆高速フーリエ変換（ＩＦＦＴ）を行うための手段と、
前記ＩＦＦＴの結果に所定値の組を乗算することによって、第２の積を決定するための手段と、
前記第２の積に第２のＦＦＴを行うための手段と、
前記第１の出力を生成するために、前記第２のＦＦＴの結果に前記所定値を乗算するための手段と
を備える、Ｃ３４に記載の装置。
［Ｃ３６］
前記所定値の組は、テプリッツ行列に対応する、Ｃ３５に記載の装置。
【図１】
0005978404.tif 000095
【図２】
0005978404.tif 000096
【図３】
0005978404.tif 000097
【図４】
0005978404.tif 000098
【図５】
0005978404.tif 000099
【図６】
0005978404.tif 000100
【図７】
0005978404.tif 000101
【図８】
0005978404.tif 000102