(58)【調査した分野】(Int.Cl.,DB名)
前記入力は、前記第1の信号に関連付けられた第1の情報と、前記第2の信号に関連付けられた第2の情報とを含み、前記第2の処理経路から第2の出力への前記第1の信号の干渉は、前記入力への前記第1の信号の前記干渉よりも少ない、請求項16に記載の装置。
【発明を実施するための形態】
【0014】
[0020] 本開示の特定の実施形態が、図面を参照してさらに説明される(図面に図示されたある特徴に関する相対位置が示され得るが、それは拡大縮小(scale)のためでない)。説明では、共通の特徴は、図面を通して共通の参照番号が割り当てられる。本明細書で説明される実施形態は、所定値に基づいてエコーキャンセルを行うように構成されたフィルタを含むデバイスを説明し得る。所定値は、信号を送信するためにデバイスによって使用される所定の送信シーケンスに関連付けられ得る。本明細書で開示される様々な実施形態のフィルタは、不確定信号(例えば、遠端信号)に関連付けられたエコーを軽減する適応フィードバックフィルタとは対照的に、フィルタが所定の信号に関連付けられたエコーを除去または軽減するという点で、非適応フィルタ(non-adaptive filters)として説明され得る。
【0015】
[0021]
図1を参照すると、所定の送信シーケンスに関連付けられた所定値を使用してエコーキャンセルを行うように構成されたフィルタを含んでいるデバイス100を含むシステムの、例示的な実施形態が示されている。実施形態では、デバイス100は、モバイル通信デバイス(例えば、携帯電話)、スマートフォン、タブレットコンピューティングデバイス、ラップトップコンピューティングデバイス、携帯情報端末(PDA)デバイス、または他の電子デバイスであり得る。デバイス100は、送信機110(例えば、スピーカまたはトランスデューサ)、1つまたは複数の受信機120(例えば、1つまたは複数のマイクロフォン)、メモリ130、およびフィルタ140を含む。
【0016】
[0022] 送信機110は、所定の送信シーケンスに従って、信号112を送信するように構成され得る。実施形態では、送信機110は、所定の送信シーケンスに従って、超音波信号を送信するように構成される超音波送信機であり得る。
図1に示されるように、メモリ130は、信号データ134を記憶し得る。信号データ134は、所定の信号シーケンスを記述する情報を含み得る。所定の送信シーケンスは、局所的にデバイス100に一意でありうる疑似ランダムノイズ(PN)であり得る。実施形態では、信号データ134は、複数の送信シーケンスを記述する情報(例えば、複数のgold符号、複数のkasami符号、複数のbarker符号など)を含み得、デバイス100は、送信機110から送信される信号112が局所的にデバイス100に一意であるように、複数の送信シーケンスの中から所定の送信シーケンスを選択し得る。信号データ134に加えて、メモリ130は、所定の送信シーケンスに関連付けられた所定値132を記憶し得る。フィルタ140は、所定値132を使用して受信機120で受信された入力信号にエコーキャンセル動作を行うように構成され得る。所定値132は、特定の数学演算(mathematical operations)がそれらに行われた後の信号データ134の値を含み得る。例えば、信号データ134があらかじめ決定されるため、信号データ134に関連したコンピュータに要求される計算は、デバイス100の動作中の計算負荷を軽減するために、前もって(例えば、所定の信号が送信される前に)行われ、また所定値132として記憶される。
【0017】
[0023] 動作中、1つまたは複数の信号(例えば、1つまたは複数の超音波信号)は、入力信号として受信機120で受信され得る。1つまたは複数の信号は、ソース180(例えば、
図1に示されていない別のデバイスの送信機)から受信された信号182およびエコー信号112)を含み得る。
図3に関連して説明されるように、デバイス100は、信号182に基づいてソース180(または別の動作)の位置を決定するように構成され得る。入力信号は、ソース180の位置に関して誤差のない決定を容易にするために、エコー信号112を除去するようにフィルタリングされ得る。エコー信号112によって引き起こされたノイズを軽減するために、デバイス100は、入力信号から信号112を軽減または削除するために所定値132に基づいてフィルタ140で入力信号を処理する。
【0018】
[0024]
図1で示されるように、フィルタ140は、第1の処理経路142および第2の処理経路144を含み得る。第1の処理経路142は、第1の処理ブロック150、第2の処理ブロック154、および第3の処理ブロック158などの複数の処理ブロックを含む。第2の処理経路144は、第4の処理ブロック162を含む。処理経路および処理ブロックという用語は、説明の簡略化のために、エレメント142、144および150、154、158、162の各々を説明するために使用され得る。処理経路および処理ブロックという用語は、特定の物理回路を要求することを意図するものではなく、むしろ、処理経路および処理ブロックが、処理経路142、144および処理ブロック150、154、158、162の各々に関連して説明される機能のような特定の機能を実装するために動作可能であるフィルタ140の特定の部分を説明するために使用される。このように、処理経路および処理ブロックという用語は、特定の実施形態では、フィルタ140に関連付けられた特定の機能を行う回路の一部分あるいは1つまたは複数の回路を指し得る。別の実施形態では、処理経路および処理ブロックという用語は、プロセッサによって実行されるときに、プロセッサに、フィルタ140に関連付けられた特定の機能の実行を開始させる、コンピュータ読取可能な記憶媒体内に記憶される命令を指し得る。
【0019】
[0025] 入力信号は、1つまたは複数の受信機120によってサンプリングされ得る。入力信号のサンプルは、フィルタ140にフレーム170(例えば、エコー信号112と信号182が組み合わせられたものの、デジタル化された表現)として提供され得る。フィルタ140は、所定値132を使用して、エコー信号112を軽減または削除するためにフレーム170にエコーキャンセルを行い得る。フレーム170、
【数1】
【0020】
(すなわち、受信機120で受信された入力信号のサンプル)は、
【数2】
【0021】
として数学的に表され、ここで、
【数3】
【0022】
は、信号112に影響を与えるインパルス応答114に対応し、
【数4】
【0023】
は、信号112の所定の送信シーケンスに対応し、
【数5】
【0024】
は、信号182に影響を与えるインパルス応答184に対応し、
【数6】
【0025】
は、信号182の所定の送信シーケンスに対応し、ここで、
【数7】
【0030】
は、信号112(例えば、フィルタ140によってキャンセルされるべきエコー信号)に対応し、また
【数11】
【0031】
は、ソース180から受信された信号182に対応する。インパルス応答114は、デバイス100を囲むエリア(例えば、デバイス100が位置付けられる部屋(room))の音響効果(acoustics)が、どのように信号112に影響を与えるかを示し、またインパルス応答184は、ソース180を囲むエリア(例えば、ソース180が位置付けられる部屋)の音響効果が、どのように信号182に影響を与えるかを示し得る。インパルス応答114は、デバイス100とソース180とが同じエリアに位置付けられる場合であっても、インパルス応答184とは異なり得る。
【0032】
[0027] フィルタ140は、受信機120からフレーム170を受信し、第1の処理経路142および第2の処理経路144にフレーム170を提供し得る。第1の処理経路142は、フレーム170を第1の処理ブロック150に提供し得る。第1の処理ブロック150は、第2のフレーム152を生成するために、所定値132でフレーム170の畳み込みを行うように構成され得る。第2のフレーム152、
【数12】
【0033】
として数学的に表され得る。フレーム
【数13】
【0034】
は、所定値132(例えば、信号112の所定の送信シーケンスの近似値(approximation))と入力信号
【数14】
【0035】
との間の相互関係を示し得る。デバイス100の送信シーケンス
【数15】
【0036】
と、ソース180の送信シーケンス
【数16】
【0037】
とは、ほぼ(substantially)直交であるように選択される。そのため、第2のフレーム152
【数17】
【0038】
は、第1のフレーム170、
【数18】
【0039】
と所定値132との間の相互関係に基づいて
【数19】
【0041】
[0028] 第2のフレーム152
【数20】
【0042】
は、第1の処理ブロック150から第2の処理ブロック154に提供され、ここで、フレーム
【数21】
【0043】
は、第3のフレーム156を生成するために、
【数22】
【0044】
によってデコンボリュートされる(de-convoluted)。第2の処理ブロック154は、値の組146を使用して
【数23】
【0045】
を除去するために、フレーム
【数24】
【0046】
のデコンボリューションを行い得る。値の組146は、連結したマトリックス(concatenated matrix)Wを含み、ここで
【数25】
【0047】
(すなわち、信号データ180として記憶された複数の送信シーケンスのサブセット)に対応し、Iは、信号比に対する雑音によって乗算された対角恒等マトリックス(diagonal identity matrix)である。そのため、フレーム
【数26】
【0048】
は、インパルス応答114の推定値に対応し、すなわち、
【数27】
【0050】
[0029] 第3のフレーム156
【数28】
【0051】
は、第3の処理ブロック158に提供され得る。第3の処理ブロック158は、
第4のフレーム160、
【数29】
【0052】
を生成するために、所定値132
【数30】
【0055】
として数学的に表され得る。フレーム
【数33】
【0056】
は、フィルタ140によって除去されるべき、エコー信号112)に対応するフレーム
【数34】
【0058】
[0030] 第4の処理ブロック162は、入力としてフレーム170
【数35】
【0059】
および第3の処理ブロック158からの第4のフレーム160を受信し、出力フレーム164を生成し得る。第4の処理ブロック162は、フレーム
【数36】
【0061】
(例えば、エコー信号112の推定値)を差し引くことによって出力フレーム164を生成し得る。そのため、出力フレーム164は、
【数38】
【0062】
の推定値(すなわちインパルス応答184によって畳み込みされた信号182)に対応し得る。
【0063】
[0031] デバイス100の局所的に一意である送信シーケンス
【数39】
【0064】
に関連付けられた所定値132を記憶し、次にエコーキャンセルを行うために所定値132を使用することによって、デバイス100は、適応フィードバックフィルタなどの他のエコーキャンセルフィルタと比較すると、エコーキャンセルフィルタ140の軽減された計算上の複雑さによって、より電力消費が低くなり得る。例えば、エコーキャンセル動作を行うために、適応フィードバックフィルタは、既知でないエコー信号に対応する
【数40】
【0065】
の両方を決定するために、送信された信号と受信された信号とを動的に(dynamically)適応させ得る。対照的に、フィルタ140は、メモリ130に記憶された所定値132
【数41】
【0066】
を使用して、受信された信号
【数42】
【0067】
にエコーキャンセルを行う。デバイス100の送信シーケンスがあらかじめ決定され、所定値132としてメモリ130において記憶されるため、フィルタ140の計算上の複雑さは、軽減され得る。そのため、エコーキャンセルを行うために、フィルタ140は、処理ブロック150、154、158に関連して説明されるように、畳み込みを使用してインパルス応答114
【数43】
【0068】
の推定のみを必要とする。加えて実施コストは、送信シーケンスおよびインパルス応答の両方が既知でない場合に、適応フィードバックフィルタなどの他のフィルタと比較すると、フィルタ140を使用して(すなわち、所定値132を使用する受信された信号に畳み込み動作を行うことによって)エコーキャンセルを行うために使用される軽減された計算リソースのために軽減され得る。
【0069】
[0032]
図2を参照すると、所定値を使用してエコーキャンセルを行うように構成されたフィルタを含んでいるデバイス200を含むシステムの、第2の例示的な実施形態が示されている。特定の実施形態では、デバイス200は、モバイル通信デバイス(例えば、携帯電話)、スマートフォン、タブレットコンピューティングデバイス、ラップトップコンピューティングデバイス、携帯情報端末(PDA)デバイス、または他の電子デバイスであり得る。デバイス200は、送信機202、1つまたは複数の受信機204、メモリ206、およびフィルタ208を含む。
【0070】
[0033] 送信機202は、所定の送信シーケンスに従って、信号272を送信するように構成され得る。実施形態では、送信機202は、所定の送信シーケンスに従って、超音波信号を送信するように構成された超音波送信機であり得る。
図2に示されるように、メモリ206は、信号データ242を記憶し得る。信号データ242は、所定の信号シーケンスを記述する情報を含み得る。所定の送信シーケンスは、デバイス200に局所的に一意でありうる疑似ランダムノイズ(PN)シーケンスであり得る。実施形態では、信号データ242は、複数の送信シーケンスを記述する情報(例えば、複数のgold符号、複数のkasami符号、複数のbarker符号など)を含み得、デバイス200は、送信機202から送信された信号272がデバイス200に局所的に一意であるように、複数の送信シーケンスの中から所定の送信シーケンスを選択し得る。信号データ242に加えて、メモリ206は、所定の送信シーケンスに関連付けられた所定値240を記憶し得る。実施形態では、所定値240は、デバイス200に局所的に一意である所定の送信シーケンスの高速フーリエ変換(FFT)のような信号データに基づく事前に計算された値を含み得る。当業者は、離散コサイン変換、離散フーリエ変換、またはウェーブレット変換などのいずれかの他の一般に既知である時間周波数領域変換技法が、限定されることなく、FFTの代わりに使用され得ることを容易に理解するだろう。フィルタ208は、所定値240を使用して、受信機204で受信された入力信号にエコーキャンセル動作を行うように構成され得る。
図1のフィルタ140によって行われるエコーキャンセル動作とは対照的に、フィルタ208によって行われるエコーキャンセル動作は、周波数領域(例えば、FFT動作を使用して)および時間領域(例えば、逆高速フーリエ変換(IFFT)動作を使用して)の両方での動作を含み得る。
【0071】
[0034] 動作中、1つまたは複数の信号(例えば、1つまたは複数の超音波信号)は、入力信号として受信機204で受信され得る。1つまたは複数の信号は、ソース280(例えば、
図2で示されていない別のデバイスの送信機)から受信された信号282およびエコー信号272を含み得る。エコー信号272は、ノイズを信号282に導入し得る。
図3に関連して説明されるように、デバイス200は、信号282に基づいてソース280(または別の動作)の位置を決定するように構成され得る。1つまたは複数の受信機204で受信された入力信号は、ソース280の位置に関する決定の正確さを改善にするために、エコー信号272を除去するようにフィルタリングされ得る。
【0072】
[0035]
図2で示されるように、フィルタ208は、第1の処理ブロック250、第1の処理経路210、および第2の処理経路212を含み得る。第1の処理経路210は、第2の処理ブロック252、第3の処理ブロック254、第4の処理ブロック256、第5の処理ブロック258、および第6の処理ブロック260のような複数の処理ブロックを含む。第2の処理経路212は、第7の処理ブロック262を含む。処理経路および処理ブロックという用語は、説明の簡略化のために、エレメント210、212および250、252、254、256、258、260、262の各々を説明するために使用され得る。処理経路および処理ブロックという用語は、特定の物理回路を要求することを意図するものではなく、むしろ、処理経路および処理ブロックは、処理経路210、212および処理ブロック250、252、254、256、258、260、262の各々に関連して説明される機能のような特定の機能を実装するために動作可能であるフィルタ208の特定の部分を説明するために使用される。このように、処理経路および処理ブロックという用語は、特定の実施形態では、フィルタ208に関連付けられた特定の機能を行う回路の一部分あるいは1つまたは複数の回路を指し得る。別の実施形態では、処理経路および処理ブロックという用語は、プロセッサによって実行されるときに、プロセッサに、フィルタ208に関連付けられた特定の機能の実行を開始させる、コンピュータ読取可能な記憶媒体内に記憶される命令を指し得る。
【0073】
[0036] 1つまたは複数の受信機204で受信した入力信号は、1つまたは複数の受信機204によってサンプリングされ得る。入力信号のサンプルは、フレーム218としてフィルタ208に提供され得る。フィルタ208は、所定値240を使用して、エコー信号272を軽減または削除するためにフレーム218にエコーキャンセルを行い得る。フレーム218は、フレーム
【数44】
【0074】
としてフィルタ208で受信され、それは、
【数45】
【0075】
として数学的に表され、ここで、
【数46】
【0076】
は、信号272に影響を与えるインパルス応答274に対応し、
【数47】
【0077】
は、信号112の所定の送信シーケンスに対応し、
【数48】
【0078】
は、信号282に影響を与えるインパルス応答284に対応し、
【数49】
【0079】
は、信号282の所定の送信シーケンスに対応し、ここで、
【数50】
【0083】
第1の処理ブロック250は、フレーム220を生成するためにフレーム
【数53】
【0084】
にFFT動作を行い得る。フレーム220は、周波数範囲
【数54】
【0086】
を表す。本明細書におけるFFT処理は、例示の目的のためだけのものであり、離散コサイン変換、離散フーリエ変換、またはウェーブレット変換などのいずれかの他の一般に既知である時間周波数領域変換技法が、限定されることなく、FFTの代わりに第1の処理ブロック250で行われ得る。
【0088】
は、フィルタ208によってキャンセルまたは軽減されるべき1つまたは複数の受信機204で受信されるエコー信号272に対応する。さらに、
【数57】
【0089】
は、ソース280から受信された信号282に対応する。インパルス応答274は、デバイス200を囲むエリア(例えば、デバイス200が位置付けられる部屋)の音響効果が、どのように信号272に影響を与えるかを示し、またインパルス応答284は、ソース280を囲むエリア(例えば、ソース280が位置付けられる部屋)の音響効果が、どのように信号282に影響を与えるかを示し得る。インパルス応答274は、デバイス200とソース280とが同じエリア(例えば、同じ部屋)に位置付けられる場合であっても、インパルス応答284とは異なり得る。
【0090】
[0038] 第1の処理ブロック250は、第1の処理経路210および第2の処理経路212にフレーム220を提供し得る。第1の処理経路210は、フレーム220を第2の処理ブロック252に提供し得る。第2の処理ブロック252は、第2の処理フレーム222を生成するために、所定値240から決定される
【数58】
【0091】
をフレーム220に乗算するように構成され得る。そのため、第2の処理ブロック252は、
【数59】
【0092】
を乗算し、それは、時間領域(例えば、
図1の第1の処理ブロック150に関して説明されるような)において
【数60】
【0093】
と数学的に等価である。第2のフレーム222は、
【数61】
【0094】
であり、ここで、フレーム
【数62】
【0095】
は、時間領域においてフレーム
【数63】
【0096】
を表す。第2のフレーム222は、第3の処理ブロック254に提供され得る。
【0097】
[0039] 第3の処理ブロック254は、第3のフレーム224を作り出すために第2のフレーム222にIFFT動作を行い得る。本明細書におけるIFFT動作は例示の目的のためだけのものであり、逆離散コサイン変換、逆離散フーリエ変換、または逆ウェーブレット変換などのいずれかの他の一般に既知である時間周波数領域変換技法が、限定されることなく、IFFTの代わりに第3の処理ブロック254で行われ得る。第3のフレーム224、フレーム
【数64】
【0098】
の相関関係を示し得る。例えば、
図1の信号112および
図2の信号272が同じ所定の送信シーケンス(すなわち、所定値240=FFT(所定値132))に従って送信されると仮定すると、
図2のフレーム
【数65】
【0099】
は、信号182と282とが同じかまたはほぼ同じであるときに、
図1のフレーム
【数66】
【0101】
[0040] 第3のフレーム224
【数67】
【0102】
は、第3の処理ブロック254から第4の処理ブロック256に提供され、ここで、フレーム
【数68】
【0103】
は、第4のフレーム226生成するために、
【数69】
【0104】
からデコンボリュートされる。第4の処理ブロック256は、値の組270を使用して
【数70】
【0105】
のデコンボリューションを行い得る。値の組270は、
図1に関連して説明される値の組146に対応し得る。第4のフレーム226は、フレーム
【数71】
【0106】
は、インパルス応答274の推定値
【数72】
【0108】
[0041] 第4のフレーム226
【数73】
【0109】
は、第5の処理ブロック258に提供され得る。第5の処理ブロック258は、第5のフレーム228、
【数74】
【0110】
を生成するために、第4のフレーム226
【数75】
【0111】
にFFT動作を行い、それは、周波数領域内のインパルス応答274の推定値に対応する。本明細書におけるFFT動作は例示の目的のためだけのものであり、離散コサイン変換、離散フーリエ変換、またはウェーブレット変換などのいずれかの他の一般に既知である時間周波数領域変換技法が、限定されることなく、FFTの代わりに第5の処理ブロック258で行われ得る。
【0112】
[0042] 第5のフレーム228
【数76】
【0113】
は、第6の処理ブロック260に提供され得る。第6の処理ブロック260は、第6のフレーム230、
【数77】
【0114】
を生成するために、第5のフレーム228に所定値240
【数78】
【0115】
を乗算するように構成され得る。フレーム
【数79】
【0116】
に周波数領域内の所定値240
【数80】
【0117】
を乗算することは、
図1の第1の処理ブロック158に関連して説明されるような、時間領域内の所定値240によるフレーム
【数81】
【0118】
の畳み込みと数学的に等価である。第6のフレーム230
【数82】
【0119】
は、フィルタ208によってキャンセルされるべきエコー信号272に対応するフレーム
【数83】
【0120】
の一部分を、周波数領域において表し得る。
【0121】
[0043] 第7の処理ブロック262は、入力としてフレーム220
【数84】
【0122】
および第6の処理ブロック260からの第6のフレーム230
【数85】
【0123】
を受信し、出力フレーム232を生成し得る。第7の処理ブロック262は、フレーム
【数86】
【0125】
(例えば、信号272)を差し引くことによって出力フレーム232を生成し得る。そのため、出力フレーム232は、周波数領域内の信号282の推定値を表し得る。
【0126】
[0044] デバイス200の送信シーケンス(すなわち、PNシーケンス)に局所的に一意である関連付けられた所定値240
【数88】
【0127】
を記憶し、次にエコーキャンセルを行うために所定値240を使用することによって、デバイス200は、適応フィードバックフィルタなどの他のエコーキャンセルフィルタと比較すると、エコーキャンセルフィルタ208の軽減された計算上の複雑さによって、より電力消費が低くなり得る。例えば、エコーキャンセル動作を行うために、適応フィードバックフィルタは、既知でないエコー信号に対応する
【数89】
【0128】
の両方を決定するために、送信された信号と受信された信号とを動的に適応させ得る。対照的に、フィルタ140は、メモリ206に記憶された所定値240
【数90】
【0129】
を使用して、受信された信号
【数91】
【0130】
にエコーキャンセルを行う。デバイス200の送信シーケンスに基づく計算が、所定値240としてメモリ206に前もって記憶された結果を用いてなされ得るため、フィルタ208の計算上の複雑さは、軽減され得る。そのため、エコーキャンセルを行うために、処理ブロック256に関連して説明されるように、フィルタ208がインパルス応答
【数92】
【0131】
のみを推定する。
図2で証明されるように、インパルス応答
【数93】
【0132】
は、時間領域処理(例えば、デコンボリュート)と周波数領域処理との組み合わせを使用して推定され得る。加えて実施コストは、適応フィードバックフィルタなどの他のフィルタと比較すると、フィルタ208を使用してエコーキャンセルを行うために使用される計算リソースのために軽減され得る。
【0133】
[0045]
図3を参照すると、マルチユーザ・ピア・ツー・ピア測位システム300の例示的な実施形態が示されている。
図3に示されるように、マルチユーザ・ピア・ツー・ピア測位システム300は、第1の電子デバイス302と第2の電子デバイス340とを含む。第1の電子デバイス302は、マイクロフォン304、306、308、および送信機310を含む。特定の実施形態では、マイクロフォン304、306、308は、
図1に関連して説明される受信機120または
図2に関連して説明される受信機204に対応し、送信機310は、
図1に関連して説明される送信機110または
図2に関連して説明される送信機202に対応し得る。
図3で示されるように、第1の電子デバイス302は、第1の送信シーケンスに従って送信機310から第1の信号320(例えば、第1の超音波信号)を送信し、第2の電子デバイス340は、第2の送信シーケンスに従って送信機342から第2の信号350(例えば、第2の超音波信号)を送信し得る。
図3で示されるように、第1の信号320は第1のパターン322によって表され、第2の信号350は第2のパターン352によって表される。
【0134】
[0046] 第1の電子デバイス302は、マイクロフォン304、306、30
8で第2の信号350を受信し、また三角測量(triangulation)を使用して第2の信号350に基づいて第2の電子デバイス340のロケーションを決定し得る。例えば、
図3では、第1の電子デバイス302は、マイクロフォン304において信号350a、マイクロフォン308において信号350b、およびマイクロフォン306において信号350cとして第2の信号350を受信する。第1の電子デバイス302は、第2の電子デバイス340の位置を三角測量するか、または推定するために信号350a、350b、350cの各々に関連付けられた時間遅延を使用し得る。実施形態では、第2の電子デバイス340の位置を推定することは、第2の電子デバイス340および距離380のロケーションの方向を示す角度αを決定することを含み得る。特定の実施形態では、距離380は、第1の電子デバイス302と第2の電子デバイス340との間の距離に対応する。3つのマイクロフォンのみが
図3で示されているが、第1の電子デバイス302は、3つ以上のマイクロフォンを含み得るということに留意されたい。
【0135】
[0047]
図3に示されるように、第1の信号320は、マイクロフォン304、306、308のうちの1つまたは複数において、エコー信号(例えば、信号320a、320b、320c)として受信され得る。エコー信号は、第2の電子デバイス340の位置の計算精度に干渉するか、またはそうでなければ、計算精度を悪化させ得る。
図3に示されるように、第1の電子デバイス302は、メモリ330とフィルタ332とを含む。メモリ330は、第1の信号を送信するための送信機310によって使用される第1の送信シーケンスに関連付けられた所定値334を記憶し得る。特定の実施形態では、メモリ330は、
図1のメモリ130または
図2のメモリ206に対応し得る。フィルタ332は、マイクロフォン304、306、308(例えば第1の信号302および第2の信号350)の各々で受信された信号のサンプルを含むフレームを受信し、また第2の電子デバイス340の位置の推定値を計算する前にエコーキャンセル処理を行い得る。特定の実施形態では、フィルタ332は、
図1に関連して説明されるフィルタ140、または
図2に関連して説明されるフィルタ208に対応し得る。
【0136】
[0048] 実施形態では、デバイス302は、デバイス340およびピア・ツー・ピア測位システムを形成するための他のデバイス(図示されない)とやり取り(interact with)し得る。デバイス302は、フィルタ332の出力に基づいてピア・ツー・ピア測位システム内で動作する他のデバイスのロケーションを決定するように構成され得る。ピア・ツー・ピア測位システム内で動作するデバイスの各々は、デバイス302(例えば、マイクロフォン304、306、308において)で受信された信号を送信し、デバイス302で受信された信号が送信される各デバイスの推定されるロケーションを決定するためにデバイス302によって使用され得る。
【0137】
[0049] デバイスの各々から送信された信号を区別するために、デバイス302は、所定の送信シーケンスの組(例えば、gold符号)からの特定の送信シーケンスを選択するために、他のデバイスの各々と交渉(negotiate)し得る。特定の実施形態では、送信シーケンスの組は、送信シーケンスの各々がファミリ内の他の送信シーケンスに対して低い相互相関(low cross-correlation)を有する送信シーケンスのファミリを備える。特定の送信シーケンスを選択した後、デバイス302は、選択された特定の送信シーケンスに従って信号(例えば、信号302)を周期的に送信する。特定の実施形態は、送信シーケンスの各々が周期的シーケンスを備え得る。デバイス302は、時間間隔に基づいて信号320を周期的に送信し得る。実施形態では、時間間隔は選択された特定の送信シーケンスの長さに基づいて決定され得る。
【0138】
[0050] 第1の電子デバイス302の局所的に一意である送信シーケンス(例えば、PN)に関連付けられた情報(例えば、所定値334)を記憶し、次にフィルタ332を使用してエコーキャンセルを行うための記憶された情報を使用することによって、第1の電子デバイス302は、適応フィードバックフィルタなどの他のエコーキャンセルフィルタと比較されるようなフィルタ332の軽減された計算上の複雑さによって、より電力消費が低くなり得る。フィルタ332の軽減された計算上の複雑さはまた、第1の電子デバイス302がより速いロケーション決定を行うことを可能にし得る。
【0139】
[0051]
図4を参照すると、エコーキャンセルを行うように構成されたデバイス400の別の例示的な実施形態が示されている。
図4に示されるように、デバイス400は、プロセッサ402、受信機404、送信機406、およびメモリ408を含む。特定の実施形態では、デバイス400は、
図1のデバイス100、
図2のデバイス200、または
図3のデバイス302に対応し得る。メモリ408は、命令420を記憶し得る。命令420は、
図1のフィルタ140または
図2のフィルタ208に関連して説明される機能のうちの1つまたは複数を行うためにプロセッサ402によって実行可能であり得る。
【0140】
[0052] 実施形態では、命令420は、ロケーション命令426などの受信機404で受信された信号に基づいて、ロケーション決定を行うために実行可能な命令を含み得る。ロケーション命令426は、
図3に関連して説明されるように、受信機404で他のデバイスから受信された信号に基づいて他のデバイスの位置を決定または三角測量するために、プロセッサ402によって実行可能であり得る。ロケーション命令426は、他のデバイスおよび距離(例えば、
図3に関連して説明される距離380)のロケーションの方向を示す角度(例えば、
図3に関連して説明される角度α)を決定するためにプロセッサ402によって実行可能であり得る。
【0141】
[0053] 実施形態では、命令420は、送信シーケンスの組440から特定の送信シーケンスを動的に選択し、メモリ408で所定値430を記憶するために実行可能な命令を含み得る。例えば、命令420は、シーケンス選択命令424を含み得る。シーケンス選択命令424は、送信シーケンスの組440からの特定の送信シーケンスを選択するためにプロセッサ402によって実行可能であり得る。実施形態では、送信シーケンスの組440は、gold符号シーケンスを備える。送信シーケンスの組440における各送信シーケンスは、送信シーケンスの組440における他の送信シーケンスに関して低い相関関係を有し得る。シーケンス選択命令424は、デバイス400の通信範囲内で、送信機406によって使用されるべき局所的に一意な送信シーケンスを決定するために、プロセッサ402にワイヤレス通信リンク(例えば、Bluetooth(登録商標)またはWi−Fi(登録商標)通信リンク)を介して他のデバイスと通信させる命令を含み得る。送信シーケンスは、デバイス400の通信範囲外にあるデバイスがデバイス400と同じ送信シーケンスを同時に使用し得る場合に、デバイス400の通信範囲内の各デバイスが異なる送信シーケンスを使用し得るという点で、局所的に一意であると考えられ得る。
【0142】
[0054] 送信シーケンスを選択した後、シーケンス選択命令424は、プロセッサ402に、所定値430を計算させるか、または所定値430にアクセスさせ得る。実施形態では、所定値430は、送信機406が送信シーケンスに従って信号を送信するのを開始する前に、メモリ408で記憶される。例えば、送信シーケンスを選択した後に、シーケンス選択命令424は、プロセッサ402に、選択された送信シーケンスに関する所定値430を計算させ、またメモリ408に所定値430を記憶させ得る。この特定の実施形態では、シーケンス選択命令424は、動作中に特定の選択された送信シーケンスを指示し、エコーキャンセルに使用するための対応する所定値の組430を指示する、プロセッサ402によって実行可能な命令を含み得る。説明のために、送信シーケンスの組は、10の異なる送信シーケンスを含み、所定値430は、各送信シーケンスに基づいて計算された値を含み得る。特定の送信シーケンスは、送信機406を介する送信での使用のために選択され得る。エコーキャンセルの動作中、プロセッサ402は、送信機406によって使用される特定の送信シーケンスに対応する所定値430を使用し得る。別の実施形態では、単一の所定値の組430のみが生成され、シーケンス選択命令424を使用してメモリ408に記憶され得る。
【0143】
[0055]
図5を参照すると、エコーキャンセルを行うように構成されたデバイス500の別の例示的な実施形態が示される。
図5に示されるように、デバイス500は、プロセッサ502、受信機504、送信機506、およびメモリ508を含む。特定の実施形態では、デバイス500は、
図1のデバイス100または
図2のデバイス200に対応し得る。メモリ508は、送信シーケンスの組522および所定値520を記憶し得る。
図5に示されるように、プロセッサ502は、フィルタ510、シーケンスセレクタ512、およびロケーション決定ユニット514を含む。特定の実施形態では、フィルタ510は、
図1のフィルタ140または
図2のフィルタ208に対応し得る。例えば、フィルタ510は、
図1のフィルタ140または
図2のフィルタ208に関連して説明される動作のうちの1つまたは複数を行うように構成される回路または他のロジックを含み得る。フィルタ510は、エコーキャンセル処理での使用のための所定値520を検索するためにメモリ508にアクセスし得る。
【0144】
[0056] 実施形態では、シーケンスセレクタ512は、
図4のシーケンス送信命令424に関連して説明される機能の1つまたは複数を行うように構成される回路または他のロジックを含み得る。実施形態では、ロケーション決定ユニット514は、
図4のロケーション命令426に関連して説明される機能のうちの1つまたは複数を行うように構成される回路または他のロジックを含み得る。
図5で示されるように、フィルタ510、シーケンスセレクタ512、およびロケーション決定ユニット514は、プロセッサ502の一部であり得る。別の実施形態では、フィルタ510、シーケンスセレクタ512、およびロケーション決定ユニット514のうちの1つまたは複数は、プロセッサ502の外部にあり得る。例えば、フィルタ510、シーケンスセレクタ512、およびロケーション決定ユニット514のうちの1つまたは複数は、フィールドプログラマブルゲートアレイ(FPGA)デバイス、特定用途向け集積回路(ASIC)、専用処理ユニット、デジタル信号プロセッサ(DSP)、コントローラ、別のハードウェアデバイス、ファームウェアデバイス、またはこれらの任意の組み合わせによって実装されうる。
【0145】
[0057]
図6を参照すると、エコーキャンセルを行う方法600の第1の例示的な実施形態が示されている。602では、方法600は、送信シーケンスを記述した信号データおよび送信シーケンスに関連付けられた所定値にアクセスすることを備える。例えば、信号データおよび所定値は、特定の送信シーケンスに対応する信号が送信される前に、
図1のメモリ130または
図2のメモリ206のようなメモリに記憶され得る。
【0146】
[0058] 方法600は、604では、送信シーケンスに従って電子デバイスの送信機から信号を送信することを含む。606では、方法600は、電子デバイスのマイクロフォンで受信される1つまたは複数の信号に基づいてフレームを生成することを含む。1つまたは複数の信号は、送信された信号に関連付けられたエコー信号を含み得る。608では、方法600は、エコー信号に関連付けられた寄与が軽減される出力フレームを作り出すために、所定値を使用するフレームを処理することを含む。特定の実施形態では、所定値を使用するフレームの処理は、
図1のフィルタ140によって行われ得る。別の特定の実施形態では、所定値を使用するフレームの処理は、
図2のフィルタ208によって行われ得る。別の特定の実施形態では、所定値を使用するフレームの処理は、
図3のフィルタ332によって行われ得る。別の特定の実施形態では、所定値を使用するフレームの処理は、
図4のエコーキャンセル命令422を使用するプロセッサ402によって行われ得る。別の特定の実施形態では、所定値を使用するフレームの処理は、
図5のフィルタ510によって行われ得る。
【0147】
[0059]
図7を参照すると、エコーキャンセルを行う方法700の第2の例示的な実施形態が示されている。702では、方法700は、第1の処理フレームを受信することを含む。実施形態では、第1の処理フレームは、
図2のフィルタ208で受信され得る
図2のフレーム220を含み、フレーム220内に含まれ、またはフレーム220に対応し得る。704では、方法700は、第2の処理フレーム(例えば、
図2のフレーム222)を生成するために、第1の処理フレームに所定値を乗算することを含む。特定の実施形態では、所定値は、
図2の所定値240であり得る。
【0148】
[0060] 706では、方法700は、第3の処理フレーム(例えば、
図2のフレーム224)を生成するために、第2の処理フレームに逆高速フーリエ変換(IFFT)を行うことを含む。708では、方法700は、第4の処理フレーム(例えば、
図2のフレーム226)を生成するために、第3の処理フレームに所定値の組を乗算することを含む。特定の実施形態では、所定値の組は、所定値270の組を含み、所定値270の組に含まれ、または所定値270の組に対応し得る。710では、方法700は、第5の処理フレーム(例えば、
図2のフレーム228)を生成するために、第4の処理フレームにFFTを行うことを含む。712では、方法700は、第6の処理フレーム(例えば、
図2のフレーム230)を生成するために、第5の処理フレームに所定値を乗算し、714では、第1の処理フレームと第6の処理フレームとの間の差分を決定することを含む。特定の実施形態では、第1の処理フレームと第6の処理フレームとの間の差分は、エコー信号に関連付けられた寄与が入力フレーム(例えば、入力フレーム218)に関して軽減される出力フレーム(例えば、
図2のフレーム232)を生成する。
【0149】
[0061]
図8を参照すると、
図1−7に関して説明された様々な方法、システム、およびコンピュータ読取可能媒体をサポートするために動作可能である電子デバイス800の特定の例示的な実施形態のブロック図が示されている。電子デバイス800は、メモリ832に結合された、デジタル信号プロセッサ(DSP)のようなプロセッサ810を含む。特定の実施形態では、電子デバイス800は、
図1のデバイス100または
図2の第1の電子デバイス200、
図3のデバイス302、
図4のデバイス400、あるいは
図5のデバイス500に対応し得る。
【0150】
[0062]
図8に示されるように、電子デバイス800は、プロセッサ810およびディスプレイ828に結合されるディスプレイコントローラを含む。符号器/復号器(コーデック)834はまた、プロセッサ810に結合され得る。スピーカ836およびマイクロフォン838は、コーデック834に結合され得る。特定の実施形態では、マイクロフォン838は、電子デバイス800の内部にあり得る。実施形態では、マイクロフォン838は、
図1の受信機120、
図2の受信機204、
図3のマイクロフォン304、306、308、
図4の受信機404、または
図5の受信機504に対応し得る。実施形態では、スピーカ836は、
図1の送信機110、
図2の送信機202、
図3の送信機310、
図4の送信機406、または
図5の送信機506に対応し得る。
【0151】
[0063]
図8に示されるように、電子デバイス800は、アンテナ842に結合されるトランシーバ850に結合され得る、ワイヤレスコントローラ840を含む。特定の実施形態では、プロセッサ810、ディスプレイコントローラ826、メモリ832、コーデック834、トランシーバ850、およびワイヤレスコントローラ840が、システムインパッケージ(system-in-package)またはシステムオンチップ(system-on-chip)のデバイス822に含まれる。特定の実施形態では、入力デバイス830および電源844が、システムオンチップのデバイス822に結合される。特定の実施形態では、ディスプレイ828、入力デバイス830、スピーカ836、マイクロフォン838、ワイヤレスアンテナ842、および電源844は、システムオンチップのデバイス822の外部にあり得る。しかしながら、ディスプレイ828、入力デバイス830、スピーカ836、マイクロフォン838、ワイヤレスアンテナ842、および電源844のうちの各々は、インタフェースまたはコントローラなどの、システムオンチップのデバイス822のコンポーネントに結合され得る。
【0152】
[0064] 電子デバイス800は、メモリ832において、所定値882のような所定値を記憶し得る。実施形態では、所定値は、所定値872としてプロセッサ810のメモリ(すなわち、キャッシュメモリ)において記憶され得る。プロセッサ810は、所定値882、またはメモリ832における所定値にアクセスするように構成されるシーケンス選択ロジック(例えば、
図5のシーケンスセレクタ512)を含み得る。電子デバイス800は、マイクロフォン838において信号(例えば、超音波信号)を含み得る。受信された信号は、スピーカ836によって生成されるエコー信号を含み得る。特定の実施形態では、コーデック834は、入力フレーム(例えば、
図1の入力フレーム170、または
図2の入力フレーム218)を生成し、プロセッサ810に入力フレームを提供するために受信された信号を処理し得る。別の実施形態では、入力フレームは、プロセッサ810によって生成され得る。
【0153】
[0065] 特定の実施形態では、プロセッサ810は、出力フレーム(例えば、
図1の出力フレーム164または
図2の出力フレーム232)を生成するために、入力フレームを処理するように構成されるエコーキャンセルロジック880を含み得る。出力フレームへのエコーキャンセルの寄与は、入力フレームへのエコー信号の寄与よりも小さくなり得る。実施形態では、エコーキャンセルロジック880は、
図1のフィルタ140に対応し、また
図1の処理ブロック150、154、158、162に関連して説明される動作のうちの1つまたは複数を行うように構成され得る。別の実施形態では、エコーキャンセルロジック880は、
図2のフィルタ208に対応し、また
図2の処理ブロック250−262に関連して説明される動作のうちの1つまたは複数を行うように構成され得る。別の実施形態では、エコーキャンセルロジック880は、
図3のフィルタ332に対応し得る。さらに別の実施形態では、エコーキャンセルロジック880は、
図5に関連して説明されるフィルタ510に対応し得る。
【0154】
[0066] 別の特定の実施形態では、メモリ832は、プロセッサ810に、
図1−7に関連して説明されるような出力フレームを生成するための入力フレームにエコーキャンセル動作を行わせるエコーキャンセル命令870を記憶し得る。出力信号へのエコー信号の寄与は、入力フレームへのエコー信号の寄与よりも小さくなり得る。例えば、エコーキャンセル命令870は、
図4のエコーキャンセル命令422に対応し得る。別の実施形態では、エコーキャンセル命令870は、
図1の処理ブロック150、154、158、162に関連して説明される動作、または
図2の処理ブロック250−262に関連して説明される動作のうち1つまたは複数を行うために、プロセッサによって実行可能であり得る。
【0155】
[0067] プロセッサ810は、所定の送信シーケンスを記述した信号データに基づいて、所定値(例えば、所定値882または所定値872のような、所定値に関連する送信シーケンスが送られる前に決定される値)を生成するように構成され得る。特定の実施形態では、プロセッサ810は、所定値を生成するように構成され、メモリ(例えば、メモリ832またはプロセッサ810のキャッシュメモリ)における所定値を記憶するように構成され、あるいはメモリ832において所定値にアクセスするように構成される、シーケンスセレクタ(例えば、
図5のシーケンスセレクタ512)を含み得る。別の実施形態では、メモリ832は、プロセッサ810に、所定値を生成させ、メモリ(例えば、プロセッサ810のキャッシュメモリまたはメモリ832)に所定値を記憶させるシーケンス選択命令(例えば、
図4のシーケンス選択命令424)を記憶し得る。
【0156】
[0068] プロセッサ810は、
図3に関連して説明されるような出力フレームに基づいて、別の電子デバイス(図示されない)のロケーションを決定するように構成され得る。例えば、受信された信号の特定の部分は、他の電子デバイスで生成される信号に対応し得る。プロセッサ810は、出力フレームに基づいて、電子デバイス800に対する他の電子デバイスのロケーション(すなわち、方向および距離)を決定するために、三角測量を使用し得る。特定の実施形態では、プロセッサ810は、他の電子デバイスのロケーションを決定する際に使用するためのロケーションロジック(例えば、
図5のロケーション決定ユニット514)を含み得る。別の実施形態では、メモリ832は、プロセッサ810に他の電子デバイスのロケーションを決定させるロケーション命令(例えば、
図4のロケーション命令426)を記憶し得る。
【0157】
[0069] 説明された実施形態と共に、システムは、送信シーケンスに従って信号を送信するための手段を含み得ることが開示される。特定の実施形態では、信号を送信するための手段は、スピーカ836、
図1の送信機110、
図2の送信機202、
図3の送信機310、
図4の送信機406、または
図5の送信機506を含み得る。システムは、1つまたは複数の信号を受信するための手段を含み得る。特定の実施形態では、1つまたは複数の信号を受信するための手段は、マイクロフォン838、
図1の受信機120、
図2の受信機204、
図3のマイクロフォン304−308、
図4の受信機404、または
図5の受信機504を含み得る。システムは、送信シーケンスに関連付けられた所定値を記憶するための手段を含み得る。実施形態では、送信シーケンスに関連付けられた所定値を記憶するための手段は、メモリ832、
図1のメモリ130、
図2のメモリ206、
図3のメモリ330、
図4のメモリ408、または
図5のメモリ508を含み得る。別の実施形態では、送信シーケンスに関連付けられた所定値を記憶するための手段は、プロセッサ810のレジスタまたはメモリ(例えば、キャッシュメモリ)を含み得る。
【0158】
[0070] システムは、1つまたは複数の受信された信号に基づいて入力(例えば、
図1の入力フレーム170、または
図2の入力フレーム218)を生成するための手段を含み得る。実施形態では、1つまたは複数の受信された信号に基づいて入力を生成するための手段は、プロセッサ810を含み得る。別の実施形態では、1つまたは複数の受信された信号に基づいて入力を生成するための手段は、
図1の受信機120または
図2の受信機204を含み得る。別の実施形態では、1つまたは複数の受信された信号に基づいて入力を生成するための手段は、
図5のフィルタ510を含み得る。実施形態では、1つまたは複数の受信された信号に基づいて入力を生成するための手段は、フィールドプログラマブルゲートアレイ(FPGA)デバイス、特定用途向け集積回路(ASIC)、中央処理装置(CPU)のような処理ユニット、デジタル信号プロセッサ(DSP)、コントローラ、別のハードウェアデバイス、ファームウェアデバイス、あるいは1つまたは複数の受信された信号に基づいて入力信号を生成するように構成されたこれらの任意の組み合わせによって実装されうる。
【0159】
[0071] システムは、第1の出力(例えば、
図1のフレーム160、または
図2のフレーム230)を生成するために、所定値に基づいて入力を処理するための手段を含み得る。第1の出力は、入力への送信された信号の寄与を示し得る。実施形態では、所定値に基づいて入力を処理するための手段は、エコーキャンセルロジック880を含み、それは、プロセッサ810内に組み込まれ得る。別の実施形態では、エコーキャンセルロジック880は、プロセッサ810の外部にあり、FPGAデバイス、ASIC、CPUなどの処理ユニット、DSP、コントローラ、別のハードウェアデバイス、ファームウェアデバイス、またはそれらのいずれかの組み合わせによって実装され得る。実施形態では、所定値に基づいて入力を処理するための手段は、
図1のフィルタ140の、
図1の第1の処理経路142(例えば、
図1の処理ブロック150、154、158、162)を含み得る。別の実施形態では、所定値に基づいて入力を処理するための手段は、
図2のフィルタ208の、
図2の第1の処理経路210(例えば、
図2の処理ブロック250−262)を含み得る。別の実施形態では、所定値に基づいて入力を処理するための手段は、
図3のフィルタ332を含み得る。実施形態では、第1の処理経路142、第1の処理経路210は、FPGAデバイス、ASIC、CPUなどの処理ユニット、DSP、コントローラ、別のハードウェアデバイス、ファームウェアデバイス、あるいは、
図1の処理ブロック150、154、158または
図2の処理ブロック252−260に関連して説明される機能を行うように構成されるそれらの組み合わせによって実装され得る。
【0160】
[0072] システムは、入力と第1の出力との間の差分基づいて、第2の出力(例えば、
図1の出力フレーム164、または
図2の出力フレーム232)を生成するための手段を含み得る。実施形態では、第2の出力を生成するための手段は、エコーキャンセルロジック880を含み得る。特定の実施形態では、エコーキャンセルロジック880は、プロセッサ810内に組み込まれ得る。別の実施形態では、エコーキャンセルロジック880は、プロセッサ810(例えば、特定用途向け回路)の外部にあり得る。実施形態では、第2の出力を生成するための手段は、
図1のフィルタ140の第2の処理経路144(例えば、
図1の処理ブロック162)、
図2のフィルタ208の第2の処理経路212(例えば、
図2の処理ブロック262)を含み得るか、あるいは
図3のフィルタ332を含み得る。実施形態では、
図1のフィルタ140の第2の処理経路144または
図2のフィルタ208の第2の処理経路212は、FPGAデバイス、ASIC、CPUなどの処理ユニット、DSP、コントローラ、別のハードウェアデバイス、ファームウェアデバイス、あるいは、
図1の処理ブロック162または
図2の処理ブロック262に関連して説明される機能を行うように構成されるそれらの組み合わせによって実装され得る。
【0161】
[0073] 実施形態では、入力を生成するための手段(例えば、
図2のフレーム220)は、1つまたは複数の受信された信号に基づいて生成されたフレーム(例えば、
図2のフレーム218)を受信するための手段、およびフレームに高速フーリエ変換(FFT)を行うための手段を含み得る。入力は、FFTの結果を含み得る。実施形態では、フレームにFFTを行うための手段は、
図2の第1の処理ブロック250を含み得る。実施形態では、第1の処理ブロック250は、FPGAデバイス、ASIC、CPUなどの処理ユニット、DSP、コントローラ、別のハードウェアデバイス、ファームウェアデバイス、あるいは、フレームを受信するようにかつフレームにFFTを行うように構成されるそれらの組み合わせによって実装され得る。
【0162】
[0074] 特定の実施形態では、入力(例えば、
図2のフレーム220)を処理するための手段は、入力に所定値を乗算することによって第1の積(例えば、
図2のフレーム222)を決定するための手段と、第1の積に逆高速フーリエ変換(IFFT)を行うための手段と、IFFTの結果(例えば、
図2のフレーム224)に所定値の組(例えば、
図2の所定値の組270)を乗算することによって第2の積(例えば、フレーム226)を決定するための手段と、第2の積に第2のFFTを行うための手段と、第1の出力(例えば、フレーム230)を生成するために第2のFFTの結果(例えば、
図2のフレーム228)に所定値を乗算するための手段とを含む。
【0163】
[0075] 実施形態では、第1の積を決定するための手段、第1の積にIFFTを行うための手段、第2の積を決定するための手段、第2の積に第2のFFTを行うための手段、および第2のFFTの結果を乗算するための手段は、FPGAデバイス、ASIC、CPUなどの処理ユニット、DSP、コントローラ、別のハードウェアデバイス、ファームウェアデバイス、あるいは、
図1の第2の処理ブロック154に関連して説明される機能を行うように構成されたそれらの任意の組み合わせによって各々実装され得る。実施形態では、第1の積にIFFTを行うための手段は、第3の処理ブロック254に対応する。実施形態では、所定値の組は、
図1に関連して説明される所定値の組132に対応し得る。
【0164】
[0076] 当業者はさらに、本明細書に開示された実施形態に関連して説明される様々な実例となるロジックブロック、構成、モジュール、回路、アルゴリズムステップが電子ハードウェア、コンピュータソフトウェアまたは両方の組み合わせとして実装されることを理解するであろう。さまざまな例示的なコンポーネント、ブロック、構成、モジュール、回路、およびステップが、一般に、それらの機能の観点から上記で説明された。このような機能が、ハードウェアまたはソフトウェアとして実装されるかどうかは、システム全体に課せられた、特定のアプリケーションおよび設計制約に依存する。当業者であれば、説明された機能を特定のアプリケーションごとに様々な方法で実装し得るが、このような実装の決定は、本開示の範囲からの逸脱を生じるものと解釈されるべきではない。
【0165】
[0077] 本明細書で開示された態様に関連して説明された方法またはアルゴリズムのステップは、直接ハードウェアにおいて、プロセッサによって実行されるソフトウェアモジュールにおいて、またはこれら2つの組み合わせにおいて、具現化され得る。ソフトウェアモジュールは、ランダムアクセスメモリ(RAM)、フラッシュメモリ、読み出し専用メモリ(ROM)、プログラマブル読み出し専用メモリ(PROM)、消去可能PROM(EPROM)、電気的消去可能PROM(EEPROM(登録商標))、レジスタ、ハードディスク、リムーバブルディスク、コンパクトディスク読み出し専用メモリ(CD−ROM)、あるいは当該技術において既知の任意のその他の形状の非一時的な記憶媒体に存在しうる。例示的な記憶媒体は、プロセッサが記憶媒体から情報を読み取り、また記憶媒体に情報を書き込むことができるように、プロセッサに結合されうる。代替的に、記憶媒体は、プロセッサに統合されうる。プロセッサおよび記憶媒体は、特定用途向け集積回路(ASIC)に存在しうる。ASICは、コンピューティングデバイスまたはユーザ端末(例えば、モバイル電話またはPDA)に存在しうる。代替において、プロセッサおよび記憶媒体は、コンピューティングデバイスまたはユーザ端末内に個別のコンポーネントとして存在しうる。
【0166】
[0078] 開示された実施形態の先の説明は、開示された実施形態を製造または使用することを当業者に可能にするために提供される。これらの実施形態に対する様々な修正は、当業者にとって容易に明らかであり、本明細書に定義された原理は、本開示の範囲から逸脱することなく他の実施形態に適用されうる。したがって、本開示は、本明細書に開示された実施形態に制限されるようには意図されず、下記の特許請求の範囲によって定義されるような原理および新規な特徴と一致する最も広い範囲を与えられることとなる。
以下に、本願出願の当初の特許請求の範囲に記載された発明を付記する。
[C1]
方法であって、
送信シーケンスを記述した信号データおよび前記送信シーケンスに関連付けられた所定値にアクセスすることと、ここにおいて、前記信号データおよび前記所定値は、メモリ内に記憶される、
前記送信シーケンスに従って電子デバイスのスピーカから信号を送信することと、
前記電子デバイスのマイクロフォンで受信された1つまたは複数の信号に基づいてフレームを生成することと、ここで、前記1つまたは複数の信号は、前記送信された信号に関連付けられたエコー信号を含む、
前記エコー信号に関連付けられた寄与が軽減される出力フレームを生成するために、前記所定値を使用して前記フレームを処理することと
を備える、方法。
[C2]
前記所定値は、前記送信シーケンスの高速フーリエ変換(FFT)に対応する、C1に記載の方法。
[C3]
前記フレームを処理することはさらに、
第1の処理フレームを生成するために前記フレームにFFTを行うことと、
エコーキャンセルロジックに前記第1の処理フレームを提供することと、
を備え、
前記エコーキャンセルロジックは、前記所定値に基づいて前記第1の処理フレームを処理するように構成される、
C2に記載の方法。
[C4]
前記所定値に基づいて前記第1の処理フレームを処理することは、
第2の処理フレームを生成するために、前記第1の処理フレームに前記所定値を乗算することと、
第3の処理フレームを生成するために、前記第2の処理フレームに逆高速フーリエ変換(IFFT)を行うことと、
第4の処理フレームを生成するために、前記第3の処理フレームに所定値の組を乗算することと、
第5の処理フレームを生成するために、前記第4の処理フレームにFFTを行うことと、
第6の処理フレームを生成するために、前記第5の処理フレームに前記所定値を乗算することと、
前記第1の処理フレームと前記第6の処理フレームとの間の差分を決定することと、
を備える、C3に記載の方法。
[C5]
前記出力フレームは、前記第1の処理フレームと前記第6の処理フレームとの間の前記差分に基づいて生成される、C4に記載の方法。
[C6]
前記送信シーケンスは、前記電子デバイスに局所的に一意である、C1に記載の方法。
[C7]
前記電子デバイスは、モバイル通信デバイスである、C6に記載の方法。
[C8]
前記1つまたは複数の受信された信号は、第2の電子デバイスによって送信された第2の信号を含み、前記方法はさらに、前記出力フレームに基づいて前記第2の電子デバイスの位置を決定することを備え、前記第2の電子デバイスは、前記送信シーケンスとは異なる第2の送信シーケンスに従って前記第2の信号を送信する、C1に記載の方法。
[C9]
前記1つまたは複数の受信された信号は、超音波信号を備える、C8に記載の方法。
[C10]
前記信号は超音波信号を備え、前記送信シーケンスは周期的シーケンスを備える、C1に記載の方法。
[C11]
装置であって、
送信シーケンスに従って信号を送信するように構成された送信機と、
1つまたは複数の信号を受信するように構成された受信機と、
前記送信シーケンスに関連付けられた所定値を記憶するメモリと、
前記1つまたは複数の受信された信号に基づいて生成される入力を受信し、
前記メモリから前記所定値を検索し、
前記入力への前記送信された信号の寄与を示す出力を生成するために、前記所定値に基づいて前記入力を処理する
ように構成された第1の処理経路と、
前記入力を受信し、
前記処理経路から前記出力を受信し、
前記第1の処理経路の前記入力と前記出力との間の差分に基づいて、出力フレームを生成する
ように構成された第2の処理経路と、
を備える装置。
[C12]
前記第1の処理経路および前記第2の処理経路に結合されたフレームロジックをさらに備え、前記フレームロジックは、
前記1つまたは複数の受信された信号に基づいて生成されたフレームを受信し、
第1の処理フレームを生成するために、前記フレームに高速フーリエ変換(FFT)を行い、
前記第1の処理フレームを前記第1の処理経路および前記第2の処理経路に提供する
ように構成され、
前記入力は、前記第1の処理フレームである、
C11に記載の装置。
[C13]
前記第1の処理経路は、
第2の処理フレームを生成するために、前記第1の処理フレームに前記所定値を乗算し、
第3の処理フレームを生成するために、前記第2の処理フレームに逆高速フーリエ変換(IFFT)を行い、
第4の処理フレームを生成するために、前記第3の処理フレームに所定値の組を乗算し、
第5の処理フレームを生成するために、前記第4の処理フレームに第2のFFTを行い、
前記出力を生成するために、前記第5の処理フレームに前記所定値を乗算し、
前記出力を前記第2の処理経路に提供する
ように構成される、C12に記載の装置。
[C14]
所定のエコーキャンセル値は、前記送信シーケンスのFFTに対応する、C13に記載の装置。
[C15]
前記所定値の組は、テプリッツ行列を備える、C13に記載の装置。
[C16]
前記1つまたは複数の受信された信号は、第2の送信機によって生成された第2の信号を含み、前記装置はさらに、
前記第2の処理経路から第2の出力を受信し、
前記第2の出力に基づいて前記第2の送信機の位置を決定する
ように構成された第2のロジックを備え、
前記第2の送信機は、前記送信シーケンスとは異なる第2の送信シーケンスに従って、前記第2の信号を生成する、
C11に記載の装置。
[C17]
前記入力は、前記送信された信号に関連付けられた第1の情報と、前記第2の信号に関連付けられた第2の情報とを含み、前記第2の出力への前記送信された信号の寄与は、前記入力への前記送信された信号の前記寄与よりも少ない、C16に記載の装置。
[C18]
前記送信機は第1のデバイスに組み込まれ、前記第2の送信機は前記第1のデバイスとは異なる第2のデバイスに組み込まれる、C17に記載の装置。
[C19]
前記送信された信号は超音波を備える、C11に記載の装置。
[C20]
前記超音波信号は、周期信号を備える、C19に記載の装置。
[C21]
第2の送信シーケンスを選択し、
前記第2の送信シーケンスに関連付けられた第2の所定値を生成し、
前記第2の所定値を前記メモリに記憶する
ように構成された、シーケンス選択ロジックをさらに備える、C11に記載の装置。
[C22]
前記第2の送信シーケンスを選択した後に、前記送信機は、前記第2の送信シーケンスに従って第2の信号を送信するように構成される、C21に記載の装置。
[C23]
前記選択ロジックは、複数の所定の送信シーケンスから前記第2の送信シーケンスを選択する、C21に記載の装置。
[C24]
前記複数の所定の送信シーケンスは、gold符号シーケンスを備える、C23に記載の装置。
[C25]
命令を備えるコンピュータ読取可能記憶媒体であって、前記命令は、プロセッサによって実行されるとき、前記プロセッサに、
送信シーケンスを記述した信号データおよび前記送信シーケンスに関連付けられた所定値にアクセスすることと、ここにおいて、前記信号データおよび前記所定値は、メモリ内に記憶される、
電子デバイスのスピーカに、前記送信シーケンスに従って信号を送信させることと、
前記電子デバイスのマイクロフォンで受信された1つまたは複数の信号に基づいてフレームを生成することと、ここで、前記1つまたは複数の信号は、送信された信号に関連付けられたエコー信号を含む、
前記エコー信号に関連付けられた寄与が軽減される出力フレームを生成するために、前記所定値を使用して前記フレームを処理することと、
を行わせる、コンピュータ読取可能記憶媒体。
[C26]
前記プロセッサによって実行されるとき、前記プロセッサに、前記信号が送信される前に、前記所定値を生成するために前記送信シーケンスで高速フーリエ変換(FFT)を行わせる命令をさらに備える、C25に記載のコンピュータ読取可能記憶媒体。
[C27]
前記プロセッサによって実行されるとき、前記プロセッサに、
第1の処理フレームを生成するために、前記フレームにFFTを行うことと、
前記所定値に基づいて前記第1の処理フレームを処理するように構成されるエコーキャンセルロジックに、前記第1の処理フレームを提供することと、
を行わせる命令をさらに備える、C26に記載のコンピュータ読取可能記憶媒体。
[C28]
前記プロセッサによって実行されるとき、前記プロセッサに、
第2の処理フレームを生成するために、前記第1の処理フレームに前記所定値を乗算することと、
第3の処理フレームを生成するために、前記第2の処理フレームに逆高速フーリエ変換(IFFT)を行うことと、
第4の処理フレームを生成するために、前記第3の処理フレームに前記所定値の組を乗算することと、
第5の処理フレームを生成するために、前記第4の処理フレームに第2のFFTを行うことと、
第6の処理フレームを生成するために、前記第5の処理フレームに前記所定値を乗算することと、
前記第1の処理フレームと前記第6の処理フレームとの間の差分を決定することと、
を行わせる命令をさらに備える、C27に記載のコンピュータ読取可能記憶媒体。
[C29]
前記出力フレームは、前記第1の処理フレームと前記第6の処理フレームとの間の前記差分に基づいて生成される、C28に記載のコンピュータ読取可能記憶媒体。
[C30]
前記送信シーケンスは、前記プロセッサを含む電子デバイスに局所的に一意である、C25に記載のコンピュータ読取可能記憶媒体。
[C31]
前記電子デバイスは、モバイル通信デバイスである、C30に記載のコンピュータ読取可能記憶媒体。
[C32]
装置であって、
送信シーケンスに従って信号を送信するための手段と、
1つまたは複数の信号を受信するための手段と、
前記送信シーケンスに関連付けられた所定値を記憶するための手段と、
前記1つまたは複数の受信された信号に基づいて入力を生成するための手段と、
第1の出力を生成するために、前記所定値に基づいて前記入力を処理するための手段と、ここにおいて、第1の出力は、前記入力への前記送信された信号の寄与を示す、
前記入力と前記第1の出力との間の差分に基づいて第2の出力を生成するための手段と
を備える、装置。
[C33]
前記入力を生成するための前記手段は、
前記1つまたは複数の受信された信号に基づいて生成されたフレームを受信するための手段と、
前記フレームに高速フーリエ変換(FFT)を行うための手段と
を備え、
前記入力は、前記FFTの結果である、
C32に記載の装置。
[C34]
前記所定値は、前記送信シーケンスの高速フーリエ変換(FFT)に対応する、C32に記載の装置。
[C35]
前記入力を処理するための前記手段は、
前記入力に前記所定値を乗算することによって、第1の積を決定するための手段と、
前記第1の積に逆高速フーリエ変換(IFFT)を行うための手段と、
前記IFFTの結果に所定値の組を乗算することによって、第2の積を決定するための手段と、
前記第2の積に第2のFFTを行うための手段と、
前記第1の出力を生成するために、前記第2のFFTの結果に前記所定値を乗算するための手段と
を備える、C34に記載の装置。
[C36]
前記所定値の組は、テプリッツ行列に対応する、C35に記載の装置。