KR20150084814A - 초음파를 이용한 에코 제거 - Google Patents

초음파를 이용한 에코 제거 Download PDF

Info

Publication number
KR20150084814A
KR20150084814A KR1020157011615A KR20157011615A KR20150084814A KR 20150084814 A KR20150084814 A KR 20150084814A KR 1020157011615 A KR1020157011615 A KR 1020157011615A KR 20157011615 A KR20157011615 A KR 20157011615A KR 20150084814 A KR20150084814 A KR 20150084814A
Authority
KR
South Korea
Prior art keywords
frame
signal
processed frame
predetermined values
transmission sequence
Prior art date
Application number
KR1020157011615A
Other languages
English (en)
Other versions
KR101651794B1 (ko
Inventor
마이클 레비안트
노엄 다간
후이-야 리아오 넬슨
Original Assignee
퀄컴 인코포레이티드
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 퀄컴 인코포레이티드 filed Critical 퀄컴 인코포레이티드
Publication of KR20150084814A publication Critical patent/KR20150084814A/ko
Application granted granted Critical
Publication of KR101651794B1 publication Critical patent/KR101651794B1/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04MTELEPHONIC COMMUNICATION
    • H04M9/00Arrangements for interconnection not involving centralised switching
    • H04M9/08Two-way loud-speaking telephone systems with means for conditioning the signal, e.g. for suppressing echoes for one or both directions of traffic
    • H04M9/082Two-way loud-speaking telephone systems with means for conditioning the signal, e.g. for suppressing echoes for one or both directions of traffic using echo cancellers
    • GPHYSICS
    • G01MEASURING; TESTING
    • G01SRADIO DIRECTION-FINDING; RADIO NAVIGATION; DETERMINING DISTANCE OR VELOCITY BY USE OF RADIO WAVES; LOCATING OR PRESENCE-DETECTING BY USE OF THE REFLECTION OR RERADIATION OF RADIO WAVES; ANALOGOUS ARRANGEMENTS USING OTHER WAVES
    • G01S11/00Systems for determining distance or velocity not using reflection or reradiation
    • G01S11/14Systems for determining distance or velocity not using reflection or reradiation using ultrasonic, sonic, or infrasonic waves
    • GPHYSICS
    • G01MEASURING; TESTING
    • G01SRADIO DIRECTION-FINDING; RADIO NAVIGATION; DETERMINING DISTANCE OR VELOCITY BY USE OF RADIO WAVES; LOCATING OR PRESENCE-DETECTING BY USE OF THE REFLECTION OR RERADIATION OF RADIO WAVES; ANALOGOUS ARRANGEMENTS USING OTHER WAVES
    • G01S5/00Position-fixing by co-ordinating two or more direction or position line determinations; Position-fixing by co-ordinating two or more distance determinations
    • G01S5/18Position-fixing by co-ordinating two or more direction or position line determinations; Position-fixing by co-ordinating two or more distance determinations using ultrasonic, sonic, or infrasonic waves
    • G01S5/22Position of source determined by co-ordinating a plurality of position lines defined by path-difference measurements

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Radar, Positioning & Navigation (AREA)
  • Remote Sensing (AREA)
  • Signal Processing (AREA)
  • Cable Transmission Systems, Equalization Of Radio And Reduction Of Echo (AREA)
  • Telephone Function (AREA)
  • Transducers For Ultrasonic Waves (AREA)
  • Circuit For Audible Band Transducer (AREA)

Abstract

방법이 송신 시퀀스를 기술하는 신호 데이터와 그 송신 시퀀스에 연관된 미리 결정된 값들에 액세스하는 단계를 포함한다. 신호 데이터와 미리 결정된 값들은 메모리에 저장될 수도 있다. 그 방법은 송신 시퀀스에 따라 전자 디바이스의 스피커로부터 신호를 송신하는 단계를 포함한다. 그 방법은 전자 디바이스의 마이크로폰에서 수신된 하나 이상의 신호들에 기초하여 프레임을 생성하는 단계를 포함한다. 하나 이상의 신호들은 송신된 신호에 연관된 에코 신호를 포함한다. 그 방법은 에코 신호에 연관된 기여도가 감소되는 출력프레임을 산출하기 위해 미리 결정된 값들을 사용하여 프레임을 프로세싱하는 단계를 포함한다.

Description

초음파를 이용한 에코 제거{ECHO CANCELLATION USING ULTRASOUND}
우선권 주장
본 출원은 2012년 11월 15일자로 출원된 미국 특허 가출원 제61/727,011호와, 2013년 3월 15일자로 출원된 미국 특허 출원 제13/841,359호를 우선권 주장하며, 그것들의 내용은 전부가 참조에 의해 본원에 통합된다.
분야
본 개시물은 일반적으로 전자 디바이스에서의 에코 제거에 관한 것이다.
관련 기술의 설명
전자 디바이스들은 신호들 (예컨대, 오디오 신호들 및/또는 초음파 신호들) 을 수신하는 하나 이상의 마이크로폰들과 신호 (예컨대, 오디오 신호 및/또는 초음파 신호) 를 송신하도록 구성된 스피커(들)를 포함할 수도 있다. 제 1 전자 디바이스가 자신의 스피커(들)를 사용하여 신호를 송신할 수도 있고 송신된 신호는 다른 전자 디바이스들의 하나 이상의 마이크로폰들에서 수신될 수도 있다. 제 1 전자 디바이스의 스피커와 제 1 전자 디바이스의 마이크로폰이 매우 근접해 있는 경우, 에코 신호들이 제 1 전자 디바이스에서 다른 전자 디바이스들로부터 수신된 신호들과 간섭할 수도 있다. 에코 신호들은 제 1 전자 디바이스가 자신의 마이크로폰들 중 하나 이상에서 자신 소유의 송신된 신호를 수신하는 경우에 발생할 수도 있다.
예를 들어, 제 1 전자 디바이스는 무선 통신 디바이스 (예컨대, 셀룰러 통신 디바이스) 일 수도 있다. 제 1 전자 디바이스의 오퍼레이터가 말하는 경우, 스피치를 나타내는 신호가 제 1 전자 디바이스의 마이크로폰에 의해 검출되고 통신 네트워크를 통해 (예컨대, 셀룰러 네트워크를 통해) 제 2 전자 디바이스 (예컨대, 제 2 셀룰러 통신 디바이스) 로 송신될 수도 있다. 제 2 전자 디바이스는 제 1 전자 디바이스로부터 신호 (예컨대, 원단 (far end) 신호) 를 수신하고 프로세싱할 수도 있다. 그 신호 (예컨대, 제 1 전자 디바이스의 오퍼레이터의 스피치) 를 프로세싱하는 것은 제 2 전자 디바이스의 스피커에서 원단 신호를 출력하는 것을 포함할 수도 있다. 제 2 전자 디바이스의 스피커에 의해 출력된 원단 신호는 제 2 전자 디바이스의 마이크로폰에서 검출될 수도 있다. 원단 신호의 검출 외에도, 제 2 전자 디바이스의 마이크로폰은 근단 (near end) 신호 (예컨대, 제 2 전자 디바이스의 오퍼레이터의 스피치) 를 검출할 수도 있다.
제 2 전자 디바이스가 원단 신호 (또는 원단 신호에 상관된 신호) 를 제 1 전자 디바이스로 송신하는 경우 에코 신호가 발생할 수도 있다. 다른 방식으로 말하면, 제 2 전자 디바이스가 제 1 전자 디바이스의 오퍼레이터의 스피치를 나타내는 신호를 제 1 전자 디바이스로 되 송신하는 경우, 제 1 디바이스의 오퍼레이터는 자신이 말하는 것을 들을 것이다 (즉, 오퍼레이터는 에코를 들을 것이다). 에코 신호에 의해 야기된 간섭을 완화하기 위해, 제 2 전자 디바이스는 적응 필터, 이를테면 적응적 피드백 필터를 구비할 수도 있다. 적응 필터는 근단 신호를 제 1 전자 디바이스로 송신하기 전에 제 2 전자 디바이스의 마이크로폰에서 검출된 수신된 신호로부터 원단 신호를 필터링함으로써 에코를 감소시키도록 구성된다.
전자 디바이스가 필터, 하나 이상의 마이크로폰들, 및 미리 결정된 송신 시퀀스에 따라 신호 (예컨대, 초음파 신호) 를 송신하도록 구성된 송신기를 구비한다. 미리 결정된 송신 시퀀스는 원격회의에 대한 원격 당사자로부터의 음성과 같은 불확정 (indeterminate) 원단 신호와 구별된다. 전자 디바이스는 미리 결정된 송신 시퀀스에 연관된 미리 결정된 값들을 저장하는 메모리를 구비한다. 미리 결정된 값들은 미리 결정된 시퀀스에 따라 송신된 신호를 특징화한다. 전자 디바이스의 하나 이상의 마이크로폰들은 다른 전자 디바이스들에 의해 송신된 다른 신호들 (예컨대, 다른 초음파 신호들) 을 수신할 수도 있다. 덧붙여, 전자 디바이스의 송신기에 의해 송신된 신호는 전자 디바이스의 하나 이상의 마이크로폰들에서 에코 신호로서 수신될 수도 있다. 전자 디바이스의 하나 이상의 마이크로폰들에서 수신된 신호들 (예컨대, 다른 전자 디바이스들로부터의 다른 신호들과 에코 신호) 의 샘플들을 포함하는 프레임이 생성될 수도 있고, 그 프레임은 필터에 제공될 수도 있다. 그 필터는 미리 결정된 송신 시퀀스에 연관된 미리 결정된 값들에 기초하여 그 프레임에 포함된 샘플들의 각각에 대해 에코 제거 동작들을 수행하여 새로운 프레임을 생성하도록 구성될 수도 있다. 새로운 프레임에서, 수신된 신호에 대한 에코 신호의 기여도가 감소될 수도 있다.
특정 실시형태에서, 방법이 송신 시퀀스를 기술하는 신호 데이터와 그 송신 시퀀스에 연관된 미리 결정된 값들에 액세스하는 단계를 포함한다. 그 방법은 송신 시퀀스에 따라 전자 디바이스의 스피커로부터 신호를 송신하는 단계를 포함한다. 그 방법은 전자 디바이스의 마이크로폰에서 수신된 하나 이상의 신호들에 기초하여 프레임을 생성하는 단계를 포함한다. 하나 이상의 신호들은 송신된 신호에 연관된 에코 신호를 포함할 수도 있다. 그 방법은 에코 신호에 연관된 기여도가 (프레임에 비하여) 감소되는 출력 프레임을 산출하기 위해 미리 결정된 값들을 사용하여 프레임을 프로세싱하는 단계를 포함한다.
다른 실시형태에서, 장치가 송신 시퀀스에 따라 신호를 송신하도록 구성된 송신기, 하나 이상의 신호들을 수신하도록 구성된 수신기, 송신 시퀀스에 연관된 미리 결정된 값들, 제 1 프로세싱 경로, 및 제 1 로직을 저장하는 메모리를 포함한다. 제 1 프로세싱 경로는 하나 이상의 수신된 신호들에 기초하여 생성된 입력을 수신하며, 메모리로부터 미리 결정된 값들을 취출하고, 미리 결정된 값들에 기초하여 입력을 프로세싱하여 수신된 신호에서의 에코를 나타내는 출력을 산출하도록 구성될 수도 있다. 제 2 프로세싱 경로가 제 1 프로세싱 경로로부터의 입력과 출력을 수신하고, 입력과 출력 간의 차이에 기초하여 제 2 출력 (예컨대, 에코 제거된 또는 에코 감소된 출력) 을 생성하도록 구성될 수도 있다.
다른 실시형태에서, 컴퓨터 판독가능 저장 매체가 프로세서로 하여금 송신 시퀀스를 기술하는 신호 데이터와 그 송신 시퀀스에 연관된 미리 결정된 값들에 액세스하게 하는 프로세서에 의해 실행가능한 명령들을 포함한다. 그 명령들은, 프로세서에 의해 실행되는 경우, 프로세서로 하여금 전자 디바이스의 스피커에게 송신 시퀀스에 따라 신호를 송신할 것을 명령하게 한다. 그 명령들은, 프로세서에 의해 실행되는 경우, 프로세서로 하여금 전자 디바이스의 마이크로폰에서 수신된 하나 이상의 신호들에 기초하여 프레임을 생성하게 한다. 하나 이상의 신호들은 송신된 신호에 연관된 에코 신호를 포함한다. 그 명령들은, 프로세서에 의해 실행되는 경우, 에코 신호에 연관된 기여도가 감소되는 출력 프레임을 산출하기 위해 프로세서로 하여금 미리 결정된 값들을 사용하여 프레임을 프로세싱하게 한다.
다른 실시형태에서, 장치 송신 시퀀스에 따라 신호를 송신하는 수단과 하나 이상의 신호들을 수신하는 수단을 구비한다. 그 장치는 송신 시퀀스에 연관된 미리 결정된 값들을 저장하는 수단을 구비한다. 그 장치는 하나 이상의 수신된 신호들에 기초하여 입력을 생성하는 수단과 제 1 출력을 산출하기 위해 미리 결정된 값들에 기초하여 입력을 프로세싱하는 수단을 또한 구비한다. 제 1 출력은 입력에 대한 송신된 신호의 기여도를 나타낸다. 그 장치는 입력과 제 1 출력 간의 차이에 기초하여 제 2 출력을 생성하는 수단을 구비한다.
개시된 실시형태들 증 적어도 하나의 실시형태에 의해 제공되는 특정 장점이, 다른 에코 제거 필터들, 이를테면 적응적 피드백 필터에 비하여 감소된 컴퓨테이션 복잡도와 개선된 성능을 갖는 에코 제거를 수행하도록 구성된 필터이다. 예를 들어, 본 명세서에서 설명되는 실시형태의 필터들이, 적응 필터들에서 발견되는 바와 같이, 피드백 루프를 포함하지 않기 때문에 개선된 성능은 실현될 수도 있다. 개시된 실시형태들 중 적어도 하나의 실시형태에 의해 제공되는 다른 장점이 필터의 감소된 컴퓨테이션 복잡도로 인한 감소된 소비 전력이다. 본 개시물의 다른 양태들, 장점들, 및 특징들은 전체 출원의 검토 후에 명확하게 될 것이다.
도 1은 디바이스의 미리 결정된 송신 시퀀스에 연관된 미리 결정된 값들을 사용하여 에코 제거를 수행하도록 구성된 필터를 구비한 디바이스를 포함하는 시스템의 제 1 예시적 실시형태이며;
도 2는 디바이스의 미리 결정된 송신 시퀀스에 연관된 미리 결정된 값들을 사용하여 에코 제거를 수행하도록 구성된 필터를 구비한 디바이스를 포함하는 시스템의 제 2 예시적 실시형태이며;
도 3은 디바이스의 미리 결정된 송신 시퀀스에 연관된 미리 결정된 값들을 사용하여 에코 제거를 수행하도록 구성된 필터를 구비한 디바이스를 포함하는 다중-사용자 피어 투 피어 포지셔닝 시스템의 예시적 실시형태이며;
도 4는 디바이스의 미리 결정된 송신 시퀀스에 연관된 미리 결정된 값들을 사용하여 에코 제거를 수행하도록 구성된 필터를 구비한 디바이스의 다른 예시적 실시형태이며;
도 5는 디바이스의 미리 결정된 송신 시퀀스에 기초하여 에코 제거를 수행하도록 구성된 필터를 구비한 디바이스의 다른 예시적 실시형태이며;
도 6은 송신 시퀀스에 연관된 미리 결정된 값들을 사용하여 에코 제거를 수행하는 방법의 예시적 실시형태이며;
도 7은 송신 시퀀스에 연관된 미리 결정된 값들을 사용하여 에코 제거를 수행하는 방법의 다른 예시적 실시형태이며; 그리고
도 8은 도 1 내지 도 6에 관하여 개시된 다양한 방법들, 시스템들, 및 컴퓨터 판독가능 매체들을 지원하도록 동작가능한 전자 디바이스의 특정 예시적 실시형태의 블록도이다.
본 개시물의 특정 실시형태들은 도면들을 참조하여 추가로 설명된다 (이는 축척대로는 아니지만, 도면들에서 예시된 특정한 특징부들의 상대적 포지션들이 표시될 수도 있다). 설명에서, 공통 특징들이 도면들의 전체에 걸쳐 공통 참조 번호들에 의해 지정된다. 본원에 개시된 실시형태들은 미리 결정된 값들에 기초하여 에코 제거를 수행하도록 구성된 필터를 구비한 디바이스를 설명할 수도 있다. 미리 결정된 값들은 신호를 송신하기 위해 디바이스에 의해 사용된 미리 결정된 송신 시퀀스에 연관될 수도 있다. 본원에서 개시된 다양한 실시형태들의 필터들은, 불확정 신호 (예컨대 원단 신호) 에 연관된 에코를 감소시키는 적응적 피드백 필터와는 대조적으로, 그 필터들이 미리 결정된 신호에 연관된 에코를 제거하거나 또는 감소시킨다는 점에서 비-적응 필터들로서 설명될 수도 있다.
도 1을 참조하면, 미리 결정된 송신 시퀀스에 연관된 미리 결정된 값들을 사용하여 에코 제거를 수행하도록 구성된 필터를 구비한 디바이스 (100) 를 포함하는 시스템의 예시적 실시형태가 도시되어 있다. 일 실시형태에서, 디바이스 (100) 는 모바일 통신 디바이스 (예컨대, 셀 전화기), 스마트 폰, 태블릿 컴퓨팅 디바이스, 랩톱 컴퓨팅 디바이스, 개인휴대 정보 단말 (PDA) 디바이스, 또는 다른 전자 디바이스일 수도 있다. 디바이스 (100) 는 송신기 (110) (예컨대, 스피커 또는 트랜스듀서), 하나 이상의 수신기(들) (120) (예컨대, 하나 이상의 마이크로폰들), 메모리 (130), 및 필터 (140) 를 구비한다.
송신기 (110) 는 미리 결정된 송신 시퀀스에 따라 신호 (112) 를 송신하도록 구성될 수도 있다. 일 실시형태에서, 송신기 (110) 는 미리 결정된 송신 시퀀스에 따라 초음파 신호를 송신하도록 구성된 초음파 송신기일 수도 있다. 도 1에 도시된 바와 같이, 메모리 (130) 는 신호 데이터 (134) 를 저장할 수도 있다. 신호 데이터 (134) 는 미리 결정된 송신 시퀀스를 기술하는 정보를 포함할 수도 있다. 미리 결정된 송신 시퀀스는 디바이스 (100) 에 국소적으로 고유할 수도 있는 의사랜덤 잡음 (pseudorandom noise; PN) 시퀀스일 수도 있다. 일 실시형태에서, 신호 데이터 (134) 는 복수의 송신 시퀀스들 (예컨대, 복수의 골드 코드들, 복수의 카사미 (kasami) 코드들, 복수의 바커 코드들 등) 을 기술하는 정보를 포함할 수도 있고, 디바이스 (100) 는 송신기 (110) 로부터 송신된 신호 (112) 가 디바이스 (100) 에 대해 국소적으로 고유하도록 복수의 송신 시퀀스들 중에서 미리 결정된 송신 시퀀스를 선택할 수도 있다. 신호 데이터 (134) 외에도, 메모리 (130) 는 미리 결정된 송신 시퀀스에 연관된 미리 결정된 값들 (132) 을 저장할 수도 있다. 필터 (140) 는 미리 결정된 값들 (132) 을 사용하여 수신기(들) (120) 에서 수신된 입력 신호들에 대한 에코 제거 동작들을 수행하도록 구성될 수도 있다. 미리 결정된 값들 (132) 은 특정 수학적 연산들이 그것들에 대해 수행된 후에 신호 데이터 (134) 의 값들을 포함할 수도 있다. 예를 들어, 신호 데이터 (134) 가 미리 결정되므로, 신호 데이터 (134) 에 관련된 컴퓨테이션을 요하는 계산들이 미리 (예컨대, 미리 결정된 신호가 송신되기 전에) 수행되고 디바이스 (100) 의 동작 동안 컴퓨테이션적 부담을 감소시키는 미리 결정된 값들 (132) 로서 저장된다.
동작 동안, 하나 이상의 신호들 (예컨대, 하나 이상의 초음파 신호들) 이 수신기(들) (120) 에서 입력 신호로서 수신될 수도 있다. 하나 이상의 신호들은 소스 (180) (예컨대, 도 1에 도시되지 않은 다른 디바이스의 송신기) 로부터 수신된 신호 (182) 와 에코 신호 (112) 를 포함할 수도 있다. 도 3을 참조하여 설명되는 바와 같이, 디바이스 (100) 는 신호 (182) 에 기초하여 소스 (180) (또는 다른 동작) 의 포지션을 결정하도록 구성될 수도 있다. 입력 신호가 소스 (180) 의 포지션의 정확한 결정을 용이하게 하기 위해 에코 신호 (112) 를 제거하도록 필터링될 수도 있다. 에코 신호 (112) 에 의해 야기된 잡음을 완화하기 위해, 디바이스 (100) 는 입력 신호로부터 신호 (112) 를 감소시키거나 또는 제거하기 위해 미리 결정된 값들 (132) 에 기초하여 필터 (140) 에서 입력 신호를 프로세싱한다.
도 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) 에 연관된 특정 기능을 수행하는 하나 이상의 회로들 또는 회로의 부분들을 지칭할 수도 있다. 다른 실시형태에서, 프로세싱 경로와 프로세싱 블록이란 용어들은, 프로세서에 의해 실행되는 경우, 프로세서로 하여금 필터 (140) 에 연관된 특정 기능의 실행을 시작하게 하는, 컴퓨터 판독가능 저장 매체에 저장된 명령들을 지칭할 수도 있다.
입력 신호는 하나 이상의 수신기(들) (120) 에 의해 샘플링될 수도 있다. 입력 신호의 샘플이 프레임 (170) (예컨대, 결합된 신호 (182) 및 에코 신호 (112) 의 디지털화된 표현) 으로서 필터 (140) 에 제공될 수도 있다. 필터 (140) 는 에코 신호 (112) 를 감소시키거나 또는 제거하기 위해 미리 결정된 값들 (132) 을 사용하여 프레임 (170) 에 대한 에코 제거를 수행할 수도 있다. 프레임 (170;
Figure pct00001
) (즉, 수신기(들) (120) 에서 수신된 입력 신호의 샘플) 은
Figure pct00002
로서 수학적으로 표현될 수도 있고, 여기서
Figure pct00003
는 신호 (112) 에 영향을 미치는 임펄스 응답 (114) 에 해당하며,
Figure pct00004
는 신호 (112) 의 미리 결정된 송신 시퀀스에 해당하며,
Figure pct00005
은 신호 (182) 에 영향을 미치는 임펄스 응답 (184) 에 해당하며,
Figure pct00006
은 신호 (182) 의 미리 결정된 송신 시퀀스에 해당하며,
Figure pct00007
Figure pct00008
과 상이하고, 심볼
Figure pct00009
는 콘볼루션을 나타낸다.
프레임
Figure pct00010
에서,
Figure pct00011
는 신호 (112) (예컨대, 필터 (140) 에 의해 제거될 에코 신호) 에 해당하고
Figure pct00012
은 소스 (180) 로부터 수신된 신호 (182) 에 해당한다. 임펄스 응답 (114) 은 디바이스 (100) 주위의 영역 (예컨대, 디바이스 (100) 가 위치된 방) 의 음향효과 (acoustics) 가 신호 (112) 에 영향을 미치는 방법을 나타낼 수도 있고, 임펄스 응답 (184) 은 소스 (180) 주위의 영역 (예컨대, 소스 (180) 가 위치된 방) 이 신호 (182) 에 영향을 미치는 방법을 나타낼 수도 있다. 임펄스 응답 (114) 은 심지어 디바이스 (100) 와 소스 (180) 가 동일한 영역에 위치된 경우에도 임펄스 응답 (184) 과는 상이할 수도 있다.
필터 (140) 는 수신기(들) (120) 로부터 프레임 (170) 을 수신하고 그 프레임 (170) 을 제 1 프로세싱 경로 (142) 와 제 2 프로세싱 경로 (144) 로 제공할 수도 있다. 제 1 프로세싱 경로 (142) 는 프레임 (170) 을 제 1 프로세싱 블록 (150) 으로 제공할 수도 있다. 제 1 프로세싱 블록 (150) 은 제 2 프레임 (152) 을 산출하기 위해 프레임 (170) 과 미리 결정된 값들 (132) 의 콘볼루션을 수행하도록 구성될 수도 있다. 제 2 프레임 (152;
Figure pct00013
) 은
Figure pct00014
로서 수학적으로 표현될 수도 있다. 프레임
Figure pct00015
는 미리 결정된 값들 (132) (예컨대, 신호 (112) 의 미리 결정된 송신 시퀀스의 근사치) 과 입력 신호 (예컨대, 프레임
Figure pct00016
) 간의 상관을 나타낼 수도 있다. 디바이스 (100) 의 송신 시퀀스 (
Figure pct00017
) 와 소스 (180) 의 송신 시퀀스 (
Figure pct00018
) 는 실질적으로 직교되도록 선택된다. 따라서, 제 2 프레임 (152;
Figure pct00019
) 은 제 1 프레임 (170;
Figure pct00020
) 과 미리 결정된 값들 (132) 간의 상관에 기초하여
Figure pct00021
로 근사될 수도 있다.
제 2 프레임 (152) (예컨대, 프레임
Figure pct00022
) 은 제 1 프로세싱 블록 (150) 으로부터 제 2 프로세싱 블록 (154) 으로 제공될 수도 있으며 제 2 프로세싱 블록에서 프레임
Figure pct00023
는 제 3 프레임 (156) 을 산출하도록
Figure pct00024
에 의해 디콘볼루션된다. 제 2 프로세싱 블록 (154) 은 값들의 세트 (146) 를 사용하여
Figure pct00025
를 제거하기 위해 프레임
Figure pct00026
의 디콘볼루션을 수행할 수도 있다. 값들의 세트 (146) 는 연접된 (concatenated) 행렬 (W) 을 포함할 수도 있는데, 여기서
Figure pct00027
이고,
Figure pct00028
이며,
Figure pct00029
는 프레임
Figure pct00030
의 서브세트 (즉, 신호 데이터 (180) 로서 저장된 복수의 송신 시퀀스들의 서브세트) 에 해당하고,
Figure pct00031
은 잡음 대 신호 비가 곱해진 대각 항등 행렬이다. 따라서, 프레임
Figure pct00032
는 임펄스 응답 (114) 의 추정치에 해당할 수도 있으며, 다시 말하면
Figure pct00033
Figure pct00034
의 추정치이다.
제 3 프레임 (156) (예컨대, 프레임
Figure pct00035
) 은 제 3 프로세싱 블록 (158) 에 제공될 수도 있다. 제 3 프로세싱 블록 (158) 은 제 4 프레임 (160;
Figure pct00036
) 을 생성하기 위해 제 3 프레임 (156) (예컨대, 프레임
Figure pct00037
) 과 미리 결정된 값들 (132) (예컨대,
Figure pct00038
의 근사치) 을 콘볼루션할 수도 있는데, 제 4 프레임은
Figure pct00039
로서 수학적으로 표현될 수도 있다. 프레임
Figure pct00040
는 필터 (140) 에 의해 제거될 에코 신호 (112) 에 해당하는 프레임
Figure pct00041
의 부분의 추정치를 표현할 수도 있다.
제 4 프로세싱 블록 (162) 은 제 3 프로세싱 블록 (158) 으로부터의 제 4 프레임 (160) 과 프레임 (170) (예컨대, 프레임
Figure pct00042
) 을 입력들로서 수신하고 출력 프레임 (164) 을 생성할 수도 있다. 제 4 프로세싱 블록 (162) 은 프레임
Figure pct00043
로부터 프레임
Figure pct00044
(예컨대, 에코 신호 (112) 의 추정치) 를 감산함으로써 출력 프레임 (164) 을 생성할 수도 있다. 따라서, 출력 프레임 (164) 은
Figure pct00045
의 추정치 (즉, 임펄스 응답 (184) 에 의해 콘볼루션된 신호 (182)) 에 해당할 수도 있다.
디바이스 (100) 의 국소적으로 고유한 송신 시퀀스 (즉, PN 시퀀스 또는
Figure pct00046
) 에 연관된 미리 결정된 값들 (132) 을 저장한 다음 에코 제거를 수행하기 위해 미리 결정된 값들 (132) 을 사용함으로써, 디바이스 (100) 는 다른 에코 제거 필터들, 이를테면 적응적 피드백 필터에 비하여 에코 제거 필터 (140) 의 감소된 컴퓨테이션 복잡도로 인해 적은 전력을 소비할 수도 있다. 예를 들어, 에코 제거 동작들을 수행하기 위해, 적응적 피드백 필터가 송신 시퀀스 (
Figure pct00047
) 와 미지의 에코 신호에 대응하는 임펄스 응답 (
Figure pct00048
) 양쪽 모두를 결정하기 위하여 송신된 신호 및 수신된 신호에 동적으로 적응할 수도 있다. 그 반면, 필터 (140) 는 메모리 (130) 에 저장된 미리 결정된 값들 (132) (예컨대, 사전-송신 시퀀스 (
Figure pct00049
)) 을 사용하여 수신된 신호 (예컨대, 프레임
Figure pct00050
) 에 대한 에코 제거를 수행한다. 디바이스 (100) 의 송신 시퀀스가 미리 결정되고 메모리 (130) 에 미리 결정된 값들 (132) 로서 저장되기 때문에 필터 (140) 의 컴퓨테이션 복잡도는 감소될 수도 있다. 따라서, 에코 제거를 수행하기 위해, 필터 (140) 는 프로세싱 블록들 (150, 154, 158) 을 참조하여 설명된 바와 같은 콘벌루션을 사용하여 임펄스 응답 (114;
Figure pct00051
) 을 추정하는 것만을 필요로 한다. 덧붙여, 송신 시퀀스 및 임펄스 응답 양쪽 모두가 알려져 있지 않는 다른 필터들, 이를테면 적응적 피드백 필터에 비하여, 필터 (140) 를 사용하여 (즉, 미리 결정된 값들 (132) 을 사용하여 수신된 신호에 대한 콘볼루션 동작들을 수행함으로써) 에코 제거를 수행하는데 사용된 감소된 컴퓨테이션 자원들로 인해 구현 비용이 감소될 수도 있다.
도 2를 참조하면, 미리 결정된 값들을 사용하여 에코 제거를 수행하도록 구성된 필터를 구비한 디바이스 (200) 를 포함하는 시스템의 제 2 예시적 실시형태가 도시되어 있다. 특정 실시형태에서, 디바이스 (200) 는 모바일 통신 디바이스 (예컨대, 셀 전화기), 스마트 폰, 태블릿 컴퓨팅 디바이스, 랩톱 컴퓨팅 디바이스, 개인휴대 정보 단말 (PDA) 디바이스, 또는 다른 전자 디바이스일 수도 있다. 디바이스 (200) 는 송신기 (202), 하나 이상의 수신기(들) (204), 메모리 (206), 및 필터 (208) 를 구비한다.
송신기 (202) 는 미리 결정된 송신 시퀀스에 따라 신호 (272) 를 송신하도록 구성될 수도 있다. 일 실시형태에서, 송신기 (202) 는 미리 결정된 송신 시퀀스에 따라 초음파 신호를 송신하도록 구성된 초음파 송신기일 수도 있다. 도 2에 도시된 바와 같이, 메모리 (206) 는 신호 데이터 (242) 를 저장할 수도 있다. 신호 데이터 (242) 는 미리 결정된 송신 시퀀스를 기술하는 정보를 포함할 수도 있다. 미리 결정된 송신 시퀀스는 디바이스 (200) 에 국소적으로 고유할 수도 있는 의사랜덤 잡음 (PN) 시퀀스일 수도 있다. 일 실시형태에서, 신호 데이터 (242) 는 복수의 송신 시퀀스들 (예컨대, 복수의 골드 코드들, 복수의 카사미 코드들, 복수의 바커 코드들 등) 을 기술하는 정보를 포함할 수도 있고, 디바이스 (200) 는 송신기 (202) 로부터 송신된 신호 (272) 가 디바이스 (200) 에 대해 국소적으로 고유하도록 복수의 송신 시퀀스들 중에서 미리 결정된 송신 시퀀스를 선택할 수도 있다. 신호 데이터 (242) 외에도, 메모리 (206) 는 미리 결정된 송신 시퀀스에 연관된 미리 결정된 값들 (240) 을 저장할 수도 있다. 일 실시형태에서, 미리 결정된 값들 (240) 은 신호 데이터 (242) 에 기초하여 미리 계산된 값들, 이를테면 디바이스 (200) 에 국소적으로 고유한 미리 결정된 송신 시퀀스의 고속 푸리에 변환 (FFT) 을 포함할 수도 있다. 당업자는 제한하는 것이 아닌, 이산 코사인 변환, 이산 푸리에 변환, 또는 웨이브릿 변환과 같은 임의의 다른 일반적으로 알려진 시간 대 주파수 도메인 변환 기법들이 FFT 대신 사용될 수도 있다는 것을 쉽사리 인식할 것이다. 필터 (208) 는 미리 결정된 값들 (240) 을 사용하여 수신기(들) (204) 에서 수신된 입력 신호들에 대한 에코 제거 동작들을 수행하도록 구성될 수도 있다. 도 1의 필터 (140) 에 의해 수행된 에코 제거 동작들과는 대조적으로, 필터 (208) 에 의해 수행된 에코 제거 동작들은 주파수 도메인 (예컨대, FFT 동작들을 사용함) 과 시간 도메인 (예컨대, 역 고속 푸리에 변환 (IFFT) 동작들을 사용함) 양쪽 모두에서의 동작들을 포함할 수도 있다.
동작 동안, 하나 이상의 신호들 (예컨대, 하나 이상의 초음파 신호들) 이 수신기(들) (204) 에서 입력 신호로서 수신될 수도 있다. 하나 이상의 신호들은 소스 (280) (예컨대, 도 2에 도시되지 않은 다른 디바이스의 송신기) 로부터 수신된 신호 (282) 와 에코 신호 (272) 를 포함할 수도 있다. 에코 신호 (272) 는 신호 (282) 속으로 잡음을 도입할 수도 있다. 도 3을 참조하여 설명되는 바와 같이, 디바이스 (200) 는 신호 (282) 에 기초하여 소스 (280) (또는 다른 동작) 의 포지션을 결정하도록 구성될 수도 있다. 하나 이상의 수신기(들) (204) 에서 수신된 입력 신호가 에코 신호 (272) 를 제거하여 소스 (280) 의 포지션의 결정의 정확도를 개선하기 위해 필터링될 수도 있다.
도 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) 에 연관된 특정 기능을 수행하는 하나 이상의 회로들 또는 회로의 부분들을 지칭할 수도 있다. 다른 실시형태에서, 프로세싱 경로와 프로세싱 블록이란 용어들은, 프로세서에 의해 실행되는 경우, 프로세서로 하여금 필터 (208) 에 연관된 특정 기능의 실행을 시작하게 하는, 컴퓨터 판독가능 저장 매체에 저장된 명령들을 지칭할 수도 있다.
하나 이상의 수신기(들) (204) 에서 수신된 입력 신호가 하나 이상의 수신기(들) (204) 에 의해 샘플링될 수도 있다. 입력 신호의 샘플이 필터 (208) 에 프레임 (218) 으로서 제공될 수도 있다. 필터 (208) 는 에코 신호 (272) 를 감소시키거나 또는 제거하기 위해 미리 결정된 값들 (240) 을 사용하여 프레임 (218) 에 대한 에코 제거를 수행할 수도 있다. 프레임 (218) 은 필터 (208) 에서 프레임
Figure pct00052
로서 수신될 수도 있는데, 이 프레임은
Figure pct00053
로서 수학적으로 표현될 수도 있으며, 여기서
Figure pct00054
는 신호 (272) 에 영향을 미치는 임펄스 응답 (274) 에 해당하며,
Figure pct00055
는 신호 (112) 의 미리 결정된 송신 시퀀스에 해당하며,
Figure pct00056
은 신호 (282) 에 영향을 미치는 임펄스 응답 (284) 에 해당하며,
Figure pct00057
은 신호 (282) 의 미리 결정된 송신 시퀀스에 해당하며,
Figure pct00058
Figure pct00059
과 상이하고, 심볼
Figure pct00060
는 콘볼루션을 나타낸다. 제 1 프로세싱 블록 (250) 은 프레임 (220) 을 생성하기 위해 프레임
Figure pct00061
에 대한 FFT 동작을 수행할 수도 있다. 프레임 (220) 은 주파수 도메인에서의 프레임
Figure pct00062
를 나타낸다 (즉,
Figure pct00063
). 본원에서의 FFT 동작은 단지 예시적인 목적을 위한 것이고 제한하는 것이 아닌, 이산 코사인 변환, 이산 푸리에 변환, 또는 웨이브릿 변환과 같은 임의의 다른 일반적으로 알려진 시간 대 주파수 도메인 변환 기법들이, 제 1 프로세싱 블록 (250) 에서, FFT 대신 수행될 수도 있다.
프레임
Figure pct00064
에서,
Figure pct00065
는 필터 (208) 에 의해 제거되거나 또는 감소될 하나 이상의 수신기들 (204) 에서 수신된 에코 신호 (272) 에 해당한다. 게다가,
Figure pct00066
은 소스 (280) 로부터 수신된 신호 (282) 에 해당한다. 임펄스 응답 (274) 은 디바이스 (200) 주위의 영역 (예컨대, 디바이스 (200) 가 위치된 방) 의 음향효과가 신호 (272) 에 영향을 미치는 방법을 나타낼 수도 있고, 임펄스 응답 (284) 은 소스 (280) 주위의 영역 (예컨대, 소스 (280) 가 위치된 방) 이 신호 (282) 에 영향을 미치는 방법을 나타낼 수도 있다. 임펄스 응답 (274) 은 심지어 디바이스 (200) 와 소스 (280) 가 동일한 영역 (예컨대, 동일한 방) 에 위치된 경우에도 임펄스 응답 (284) 과는 상이할 수도 있다.
제 1 프로세싱 블록 (250) 은 프레임 (220) 을 제 1 프로세싱 경로 (210) 에 그리고 제 2 프로세싱 경로 (212) 에 제공할 수도 있다. 제 1 프로세싱 경로 (210) 는 프레임 (220) 을 제 2 프로세싱 블록 (252) 으로 제공할 수도 있다. 제 2 프로세싱 블록 (252) 은 제 2 프로세싱된 프레임 (222) 을 생성하기 위해 프레임 (220) 과 미리 결정된 값들 (240) 로부터 결정된
Figure pct00067
를 곱하도록 구성될 수도 있다. 따라서, 제 2 프로세싱 블록 (252) 은
Figure pct00068
Figure pct00069
를 곱하는데, 이는 (예컨대, 도 1의 제 1 프로세싱 블록 (150) 을 참조하여 설명된 바와 같이) 시간 도메인에서의 프레임
Figure pct00070
Figure pct00071
의 콘벌루션과 수학적으로 동일하다. 제 2 프레임 (222) 이 프레임
Figure pct00072
인데, 프레임
Figure pct00073
는 시간 도메인에서의
Figure pct00074
와 프레임
Figure pct00075
의 상관을 나타낸다. 제 2 프레임 (222) 은 제 3 프로세싱 블록 (254) 에 제공될 수도 있다.
제 3 프로세싱 블록 (254) 은 제 3 프레임 (224) 을 산출하기 위해 제 2 프레임 (222) 에 대한 IFFT 동작을 수행할 수도 있다. 본원에서의 IFFT 동작은 단지 예시적인 목적을 위한 것이고, 제한하는 것이 아닌 역 이산 코사인 변환, 역 이산 푸리에 변환, 또는 역 웨이브릿 변환과 같은 임의의 다른 일반적으로 알려진 주파수 대 시간 도메인 변환 기법들이 제 3 프로세싱 블록 (254) 에서 IFFT 대신 수행될 수도 있다. 제 3 프레임 (224), 즉 프레임
Figure pct00076
는, 시간 도메인에서의
Figure pct00077
와 입력 신호 (예컨대, 프레임
Figure pct00078
) 간의 상관을 나타낼 수도 있다. 예를 들어, 도 1의 신호 (112) 와 도 2의 신호 (272) 는 동일한 미리 결정된 송신 시퀀스에 따라 송신된다 (즉, 미리 결정된 값들 (240) = FFT (미리 결정된 값들 (132)) 라고 가정하면, 신호들 (182 및 282) 이 동일하거나 또는 실질적으로 유사하다는 것을 전제로, 도 2의 프레임
Figure pct00079
는 도 1의 프레임
Figure pct00080
와 동일할 수도 있다.
제 3 프레임 (224) (예컨대, 프레임
Figure pct00081
) 은 제 3 프로세싱 블록 (254) 으로부터 제 4 프로세싱 블록 (256) 으로 제공될 수도 있으며 제 4 프로세싱 블록에서 프레임
Figure pct00082
는 제 4 프레임 (226) 을 산출하기 위해
Figure pct00083
로부터 디콘볼루션된다. 제 4 프로세싱 블록 (256) 은 값들의 세트 (270) 를 사용하여
Figure pct00084
로부터 프레임
Figure pct00085
의 디콘볼루션을 수행할 수도 있다. 값들의 세트 (270) 는 도 1을 참조하여 설명된 값들의 세트 (146) 에 대응할 수도 있다. 제 4 프레임 (226) 은 프레임
Figure pct00086
일 수 있는데, 프레임
Figure pct00087
는 임펄스 응답 (274) 의 추정치 (예컨대,
Figure pct00088
의 추정치) 에 해당한다.
제 4 프레임 (226) (예컨대, 프레임
Figure pct00089
) 은 제 5 프로세싱 블록 (258) 에 제공될 수도 있다. 제 5 프로세싱 블록 (258) 은 제 5 프레임 (228;
Figure pct00090
) 을 생성하기 위해 제 4 프레임 (226) (예컨대,
Figure pct00091
) 에 대한 FFT 동작을 수행할 수도 있는데, 제 5 프레임은 주파수 도메인에서의 임펄스 응답 (274) 의 추정치에 해당한다. 본원에서의 FFT 동작은 단지 예시적인 목적을 위한 것이고, 제한하는 것이 아닌, 이산 코사인 변환, 이산 푸리에 변환, 또는 웨이브릿 변환과 같은 임의의 다른 일반적으로 알려진 시간 대 주파수 도메인 변환 기법들이, 제 5 프로세싱 블록 (258) 에서, FFT 대신 수행될 수도 있다.
제 5 프레임 (228) (예컨대, 프레임
Figure pct00092
) 은 제 6 프로세싱 블록 (260) 에 제공될 수도 있다. 제 6 프로세싱 블록 (260) 은 제 6 프레임 (230;
Figure pct00093
) 을 산출하기 위해 제 5 프레임 (228) 과 미리 결정된 값들 (240) (예컨대,
Figure pct00094
) 을 곱하도록 구성될 수도 있다. 주파수 도메인에서 프레임
Figure pct00095
(예컨대,
Figure pct00096
) 와 미리 결정된 값들 (240) (예컨대,
Figure pct00097
) 의 곱셈은, 도 1의 제 1 프로세싱 블록 (158) 을 참조하여 설명된 바와 같이, 시간 도메인에서의 미리 결정된 값들 (240) 에 의한 프레임
Figure pct00098
와의 콘벌루션과 수학적으로 동일하다. 제 6 프레임 (230) (예컨대, 프레임
Figure pct00099
) 은, 주파수 도메인에서, 필터 (208) 에 의해 제거될 에코 신호 (272) 에 해당하는 프레임
Figure pct00100
의 부분을 나타낼 수도 있다.
제 7 프로세싱 블록 (262) 은 제 6 프로세싱 블록 (260) 으로부터의 제 6 프레임 (230) (예컨대, 프레임
Figure pct00101
) 과 프레임 (220) (예컨대, 프레임
Figure pct00102
) 을 입력들로서 수신하고 출력 프레임 (232) 을 생성할 수도 있다. 제 7 프로세싱 블록 (262) 은 프레임
Figure pct00103
로부터 프레임
Figure pct00104
(예컨대, 신호 (272)) 를 감산함으로써 출력 프레임 (232) 을 생성할 수도 있다. 따라서, 출력 프레임 (232) 은 주파수 도메인에서의 신호 (282) 의 추정치를 나타낼 수도 있다.
디바이스 (200) 의 국소적으로 고유한 송신 시퀀스 (즉, PN 시퀀스) 에 연관된 미리 결정된 값들 (240) (예컨대,
Figure pct00105
) 을 저장한 다음 에코 제거를 수행하기 위해 미리 결정된 값들 (240) 을 사용함으로써, 디바이스 (200) 는 다른 에코 제거 필터들, 이를테면 적응적 피드백 필터에 비하여 에코 제거 필터 (208) 의 감소된 컴퓨테이션 복잡도로 인해 적은 전력을 소비할 수도 있다. 예를 들어, 에코 제거 동작들을 수행하기 위해, 적응적 피드백 필터가 송신 시퀀스 (
Figure pct00106
) 와 미지의 에코 신호에 대응하는 임펄스 응답 (
Figure pct00107
) 양쪽 모두를 결정하기 위하여 송신된 신호 및 수신된 신호에 동적으로 적응할 수도 있다. 그 반면, 필터 (140) 는 메모리 (206) 에 저장된 미리 결정된 값들 (240) (예컨대,
Figure pct00108
) 을 사용하여 수신된 신호 (예컨대, 프레임
Figure pct00109
) 에 대한 에코 제거를 수행한다. 디바이스 (200) 의 송신 시퀀스에 기초한 계산들이 미리 결정된 값들 (240) 로서 메모리 (206) 에 저장된 결과들을 사용하여 미리 행해질 수 있기 때문에 필터 (208) 의 컴퓨테이션 복잡도는 감소될 수도 있다. 따라서, 에코 제거를 수행하기 위해, 필터 (208) 는, 프로세싱 블록 (256) 을 참조하여 설명된 바와 같이, 임펄스 응답 (
Figure pct00110
) 을 추정하기만 한다. 도 2에서 보여준 바와 같이, 임펄스 응답 (예컨대, 프레임
Figure pct00111
) 은 시간 도메인 프로세싱 (예컨대, 디콘볼루션) 과 주파수 도메인 프로세싱의 조합을 사용하여 추정될 수도 있다. 덧붙여, 다른 필터들, 이를테면 적응적 피드백 필터에 비하여 필터 (208) 를 사용하여 에코 제거를 수행하는데 사용되는 컴퓨테이션 자원들로 인해 구현 비용이 감소될 수도 있다.
도 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) 이 지정된다.
제 1 전자 디바이스 (302) 는 마이크로폰들 (304, 306, 308) 중 하나 이상의 마이크로폰에서 제 2 신호 (350) 를 수신할 수도 있고 삼각측량을 사용하여 제 2 신호 (350) 에 기초하여 제 2 전자 디바이스 (340) 의 로케이션을 결정할 수도 있다. 예를 들어, 도 3에서, 제 1 전자 디바이스 (302) 는 제 2 신호 (350) 를 마이크로폰 (304) 에서의 신호 (350a), 마이크로폰 (308) 에서의 신호 (350b), 및 마이크로폰 (306) 에서의 신호 (350c) 로서 수신한다. 제 1 전자 디바이스 (302) 는 제 2 전자 디바이스 (340) 의 포지션을 추정, 또는 삼각측량하기 위해 신호들 (350a, 350b, 350c) 의 각각에 연관된 시간 지연들을 사용할 수도 있다. 일 실시형태에서, 제 2 전자 디바이스 (340) 의 포지션을 추정하는 것은 제 2 전자 디바이스 (340) 의 로케이션의 방향을 나타내는 각도 α와 거리 (380) 를 결정하는 것을 포함할 수도 있다. 특정 실시형태에서, 거리 (380) 는 제 1 전자 디바이스 (302) 와 제 2 전자 디바이스 (340) 간의 거리에 해당한다. 비록 세 개의 마이크로폰들만이 도 3에 도시되었지만, 제 1 전자 디바이스 (302) 는 세 개를 초과하는 마이크로폰들을 구비할 수도 있음에 주의한다.
도 3에 도시된 바와 같이, 제 1 신호 (320) 는 마이크로폰들 (304, 306, 308) 중 하나 이상의 마이크로폰에서 에코 신호 (예컨대, 신호들 (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 신호 (320) 및 제 2 신호 (350)) 의 샘플들을 포함하는 프레임을 수신할 수도 있고 제 2 전자 디바이스 (340) 의 포지션의 추정치를 계산하기 전에 에코 제거 동작들을 수행할 수도 있다. 특정 실시형태에서, 필터 (332) 는 도 1을 참조하여 설명된 필터 (140) 또는 도 2를 참조하여 설명된 필터 (208) 에 해당할 수도 있다.
일 실시형태에서, 디바이스 (302) 는 피어 투 피어 포지셔닝 시스템을 형성하기 위해 디바이스 (340) 및 다른 디바이스들 (미도시) 과 상호작용할 수도 있다. 디바이스 (302) 는 필터 (332) 의 출력에 기초하여 피어 투 피어 포지셔닝 시스템 내에서 동작하는 다른 디바이스들의 로케이션을 결정하도록 구성될 수도 있다. 피어 투 피어 포지셔닝 시스템 내에서 동작하는 디바이스들의 각각은, 디바이스 (302) 에서 수신되었던 신호를 송신했던 각각의 디바이스의 추정된 로케이션을 결정하기 위해, 디바이스 (302) 에서 (예컨대, 마이크로폰들 (304, 306, 308) 에서) 수신되고 디바이스 (302) 에 의해 사용되는 신호를 송신할 수도 있다.
디바이스들의 각각으로부터 송신된 신호들을 구별하기 위해, 디바이스 (302) 는 미리 결정된 송신 시퀀스들 (예컨대, 골드 코드들) 의 세트로부터 특정 송신 시퀀스를 선택하기 위해 다른 디바이스들의 각각과 협상할 수도 있다. 특정 실시형태에서, 송신 시퀀스들의 세트는 송신 시퀀스들의 각각이 패밀리에서의 다른 송신 시퀀스들에 비하여 낮은 상호 상관을 갖는 송신 시퀀스들의 패밀리를 포함한다. 특정 송신 시퀀스를 선택한 후, 디바이스 (302) 는 선택된 특정 송신 시퀀스에 따라 신호 (예컨대, 신호 (320)) 를 주기적으로 송신한다. 특정 실시형태에서, 송신 시퀀스들의 각각은 주기적 시퀀스를 포함할 수도 있다. 디바이스 (302) 는 시간 간격에 기초하여 신호 (320) 를 주기적으로 송신할 수도 있다. 일 실시형태에서, 시간 간격은 선택된 특정 송신 시퀀스의 길이에 기초하여 결정될 수도 있다.
제 1 전자 디바이스 (302) 의 국소적으로 고유한 송신 시퀀스 (예컨대, PN) 에 연관된 정보 (예컨대, 미리 결정된 값들 (334)) 을 저장한 다음 필터 (332) 를 사용한 에코 제거를 수행하기 위해 저장된 정보를 사용함으로써, 제 1 전자 디바이스 (302) 는 다른 에코 제거 필터들, 이를테면 적응적 피드백 필터에 비하여 필터 (332) 의 감소된 컴퓨테이션 복잡도로 인해 낮은 전력을 소비할 수도 있다. 필터 (332) 의 감소된 컴퓨테이션 복잡도는 제 1 전자 디바이스 (302) 가 더 빠른 로케이션 결정들을 수행하는 것을 또한 가능하게 할 수도 있다.
도 4를 참조하면, 에코 제거를 수행하도록 구성된 디바이스 (400) 의 다른 예시적 실시형태가 도시되어 있다. 도 4에 도시된 바와 같이, 디바이스 (400) 는 프로세서 (402), 수신기(들) (404), 송신기 (406), 및 메모리 (408) 를 구비한다. 특정 실시형태에서, 디바이스 (400) 는 도 1의 디바이스 (100), 도 2의 디바이스 (200), 또는 도 3의 디바이스 (302) 에 해당할 수도 있다. 메모리 (408) 는 명령들 (420) 을 저장할 수도 있다. 명령들 (420) 은 도 1의 필터 (140) 또는 도 2의 필터 (208) 를 참조하여 설명된 기능들 중 하나 이상의 기능을 수행하기 위해 프로세서 (402) 에 의해 실행가능할 수도 있다.
일 실시형태에서, 명령들 (420) 은 수신기(들) (404) 에서 수신된 신호들에 기초하여 로케이션 결정들을 수행하도록 실행가능한 명령들, 이를테면 로케이션 명령들 (426) 을 포함할 수도 있다. 로케이션 명령들 (426) 은 도 3을 참조하여 설명된 바와 같은 수신기(들) (404) 에서 다른 디바이스들로부터 수신된 신호들에 기초하여 다른 디바이스들의 포지션들을 결정, 또는 삼각측량하도록 프로세서 (402) 에 의해 실행가능할 수도 있다. 로케이션 명령들 (426) 은 다른 디바이스의 로케이션의 방향과 거리 (예컨대, 도 3을 참조하여 설명된 거리 (380)) 를 나타내는 각도 (예컨대, 도 3을 참조하여 설명된 각도 α) 를 결정하기 위해 프로세서 (402) 에 의해 실행가능할 수도 있다.
일 실시형태에서, 명령들 (420) 은 송신 시퀀스들 (440) 의 세트로부터 특정 송신 시퀀스를 동적으로 선택하도록 그리고 미리 결정된 값들 (430) 을 메모리 (408) 에 저장하도록 실행가능한 명령들을 포함할 수도 있다. 예를 들어, 명령들 (420) 은 시퀀스 선택 명령들 (424) 을 포함할 수도 있다. 시퀀스 선택 명령들 (424) 은 송신 시퀀스들 (440) 의 세트로부터 특정 송신 시퀀스를 선택하기 위해 프로세서 (402) 에 의해 실행가능할 수도 있다. 일 실시형태에서, 송신 시퀀스들 (440) 의 세트는 골드 코드 시퀀스들를 포함한다. 송신 시퀀스들 (440) 의 세트에서의 각각의 송신 시퀀스는 송신 시퀀스들 (440) 의 세트에서의 다른 송신 시퀀스들에 비하여 낮은 상호 상관을 가질 수도 있다. 시퀀스 선택 명령들 (424) 은 송신기 (406) 에 의해 사용될 국소적으로 고유한 송신 시퀀스를 결정하기 위해, 프로세서 (402) 로 하여금 디바이스 (400) 의 통신 범위 내에서, 무선 통신 링크 (예컨대, 블루투스 또는 Wi-Fi 통신 링크) 를 통해 다른 디바이스들과 통신하게 하는 명령들을 포함할 수도 있다. 디바이스 (400) 의 통신 범위 내의 각각의 디바이스는 상이한 송신 시퀀스를 사용할 수도 있는 반면 디바이스 (400) 의 통신 범위 외부의 디바이스들은 디바이스 (400) 와 동일한 송신 시퀀스를 동시에 사용할 수도 있다는 점에서 송신 시퀀스는 국소적으로 고유한 것으로 간주될 수도 있다.
송신 시퀀스를 선택한 후, 시퀀스 선택 명령들 (424) 은 프로세서 (402) 로 하여금 미리 결정된 값들 (430) 을 계산하게 하거나 또는 그 값들에 액세스하게 할 수도 있다. 일 실시형태에서, 송신기 (406) 가 송신 시퀀스에 따라 신호를 송신하는 것을 시작하기 전에 미리 결정된 값들 (430) 은 메모리 (408) 에 저장된다. 예를 들어, 송신 시퀀스를 선택한 후, 시퀀스 선택 명령들 (424) 은 프로세서 (402) 로 하여금 선택된 송신 시퀀스에 대한 미리 결정된 값들 (430) 을 계산하게 하고 미리 결정된 값들 (430) 을 메모리 (408) 에 저장하게 할 수도 있다. 이 특정 실시형태에서, 시퀀스 선택 명령들 (424) 은 동작 동안, 에코 제거를 위해 사용할 특정 선택된 송신 시퀀스와 미리 결정된 값들 (430) 의 대응하는 세트를 나타내기 위해 프로세서 (402) 에 의해 실행가능한 명령들을 포함할 수도 있다. 예시를 위하여, 송신 시퀀스들의 세트는 열 (10) 개의 상이한 송신 시퀀스들을 포함할 수도 있고 미리 결정된 값들 (430) 은 각각의 송신 시퀀스에 기초하여 계산된 값들을 포함할 수도 있다. 특정 송신 시퀀스가 송신기 (406) 를 통한 송신에서 사용하기 위해 선택될 수도 있다. 에코 제거 동작들 동안, 프로세서 (402) 는 송신기 (406) 에 의해 사용되는 특정 송신 시퀀스에 대응하는 미리 결정된 값들 (430) 을 사용할 수도 있다. 다른 실시형태에서, 미리 결정된 값들 (430) 중의 단일 세트만이 시퀀스 선택 명령들 (424) 을 사용하여 생성되고 메모리 (408) 에 저장될 수도 있다.
도 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) 를 참조하여 설명된 동작들 중 하나 이상의 동작을 수행하도록 구성된 회로 또는 다른 로직을 구비할 수도 있다. 필터 (510) 는 에코 제거 동작들에서 사용하기 위한 미리 결정된 값들 (520) 을 취출하기 위해 메모리 (508) 에 액세스할 수도 있다.
일 실시형태에서, 시퀀스 선택기 (512) 는 도 4의 시퀀스 선택 명령들 (424) 을 참조하여 설명되는 기능들 중 하나 이상을 수행하도록 구성된 회로 또는 다른 로직을 구비할 수도 있다. 일 실시형태에서, 로케이션 결정 유닛 (514) 은 도 4의 로케이션 명령들 (426) 을 참조하여 설명되는 기능들 중 하나 이상을 수행하도록 구성된 회로 또는 다른 로직을 구비할 수도 있다. 도 5에 도시된 바와 같이, 필터 (510), 시퀀스 선택기 (512), 및 로케이션 결정 유닛 (514) 은 프로세서 (502) 의 부분일 수도 있다. 다른 실시형태에서, 필터 (510), 시퀀스 선택기 (512), 및 로케이션 결정 유닛 (514) 중 하나 이상이 프로세서 (502) 외부에 있을 수도 있다. 예를 들어, 필터 (510), 시퀀스 선택기 (512), 및 로케이션 결정 유닛 (514) 중 하나 이상은 필드-프로그램가능 게이트 어레이 (FPGA) 디바이스, 주문형 집적회로 (ASIC), 특수 목적 프로세싱 유닛, 디지털 신호 프로세서 (DSP), 제어기, 다른 하드웨어 디바이스, 펌웨어 디바이스, 또는 그것들의 조합에 의해 구현될 수도 있다.
도 6을 참조하면, 에코 제거를 수행하는 방법 (600) 의 제 1 예시적 실시형태가 도시되어 있다. 602에서, 그 방법 (600) 은 송신 시퀀스를 기술하는 신호 데이터와 송신 시퀀스에 연관된 미리 결정된 값들에 액세스하는 단계를 포함한다. 예를 들어, 신호 데이터와 미리 결정된 값들은, 특정 송신 시퀀스에 대응하는 신호가 송신되기 전에, 메모리, 이를테면 도 1의 메모리 (130) 또는 도 2의 메모리 (206) 에 저장될 수도 있다.
그 방법 (600) 은 604에서, 송신 시퀀스에 따라 전자 디바이스의 송신기로부터 신호를 송신하는 단계를 포함한다. 606에서, 그 방법 (600) 은 전자 디바이스의 마이크로폰에서 수신된 하나 이상의 신호들에 기초하여 프레임을 생성하는 단계를 포함한다. 하나 이상의 신호들은 송신된 신호에 연관된 에코 신호를 포함할 수도 있다. 608에서, 그 방법 (600) 은 에코 신호에 연관된 기여도가 감소되는 출력프레임을 산출하기 위해 미리 결정된 값들을 사용하여 프레임을 프로세싱하는 단계를 포함한다. 특정 실시형태에서, 미리 결정된 값들을 사용한 프레임의 프로세싱은 도 1의 필터 (140) 에 의해 수행될 수도 있다. 다른 특정 실시형태에서, 미리 결정된 값들을 사용한 프레임의 프로세싱은 도 2의 필터 (208) 에 의해 수행될 수도 있다. 다른 특정 실시형태에서, 미리 결정된 값들을 사용한 프레임의 프로세싱은 도 3의 필터 (332) 에 의해 수행될 수도 있다. 다른 특정 실시형태에서, 미리 결정된 값들을 사용한 프레임의 프로세싱은 도 4의 에코 제거 명령들 (422) 을 사용하여 프로세서 (402) 에 의해 수행될 수도 있다. 다른 특정 실시형태에서, 미리 결정된 값들을 사용한 프레임의 프로세싱은 도 5의 필터 (510) 장치에 의해 수행될 수도 있다.
도 7을 참조하면, 에코 제거를 수행하는 방법 (700) 의 제 2 예시적 실시형태가 도시되어 있다. 702에서, 그 방법 (700) 은 제 1 프로세싱된 프레임을 수신하는 단계를 포함한다. 일 실시형태에서, 제 1 프로세싱된 프레임은 도 2의 필터 (208) 에서 수신될 수도 있는 도 2의 프레임 (220) 을 포함, 그 프레임 내에 포함, 또는 그 프레임에 해당할 수도 있다. 704에서, 그 방법 (700) 은 제 2 프로세싱된 프레임 (예컨대, 도 2의 프레임 (222)) 을 산출하기 위해 제 1 프로세싱된 프레임과 미리 결정된 값들을 곱하는 단계를 포함한다. 특정 실시형태에서, 미리 결정된 값들은 도 2의 미리 결정된 값들 (240) 일 수도 있다.
706에서, 그 방법 (700) 은 제 3 프로세싱된 프레임 (예컨대, 도 2의 프레임 (224)) 을 산출하기 위해 제 2 프로세싱된 프레임에 대한 역 고속 푸리에 변환 (IFFT) 을 수행하는 단계를 포함한다. 708에서, 그 방법 (700) 은 제 4 프로세싱된 프레임 (예컨대, 도 2의 프레임 (226)) 을 산출하기 위해 제 3 프로세싱된 프레임과 미리 결정된 값들의 세트를 곱하는 단계를 포함한다. 특정 실시형태에서, 미리 결정된 값들의 세트는 미리 결정된 값들 (270) 의 세트를 포함, 그 세트 내에 포함, 또는 그 세트에 해당할 수도 있다. 710에서, 그 방법 (700) 은 제 5 프로세싱된 프레임 (예컨대, 도 2의 프레임 (228)) 을 산출하기 위해 제 4 프로세싱된 프레임에 대해 FFT를 수행하는 단계를 포함한다. 712에서, 그 방법 (700) 은 제 6 프로세싱된 프레임 (예컨대, 도 2의 프레임 (230)) 을 산출하기 위해 제 5 프로세싱된 프레임과 미리 결정된 값들을 곱하는 단계와, 714에서, 제 1 프로세싱된 프레임과 제 6 프로세싱된 프레임 간의 차이를 결정하는 단계를 포함한다. 특정 실시형태에서, 제 1 프로세싱된 프레임과 제 6 프로세싱된 프레임 간의 차이는 에코 신호에 연관된 기여도가 입력 프레임 (예컨대, 입력 프레임 (218)) 에 비하여 감소된 출력 프레임 (예컨대, 도 2의 프레임 (232)) 을 산출시킨다.
도 8을 참조하면, 도 1 내지 도 7을 참조하여 설명되는 다양한 방법들, 시스템들, 및 컴퓨터-판독가능 매체들을 지원하도록 동작가능한 전자 디바이스 (800) 의 특정 예시적 실시형태의 블록도가 도시되어 있다. 전자 디바이스 (800) 는 메모리 (832) 에 커플링된 프로세서 (810), 이를테면 디지털 신호 프로세서 (DSP) 를 구비한다. 특정 실시형태에서, 전자 디바이스 (800) 는 도 1의 디바이스 (100) 또는 도 2의 제 1 전자 디바이스 (200), 도 3의 디바이스 (302), 도 4의 디바이스 (400), 또는 도 5의 디바이스 (500) 에 해당할 수도 있다.
도 8에 도시된 바와 같이, 전자 디바이스 (800) 는 프로세서 (810) 에 그리고 디스플레이 (828) 에 연결되는 디스플레이 제어기 (826) 를 구비한다. 코더/디코더 (CODEC) (834) 가 프로세서 (810) 에 또한 커플링될 수도 있다. 스피커(들) (836) 와 마이크로폰(들) (838) 이 CODEC (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) 에 해당할 수도 있다.
도 8에 도시된 바와 같이, 전자 디바이스 (800) 는 안테나 (842) 에 커플링되는 트랜시버 (850) 에 커플링될 수도 있는 무선 제어기 (840) 를 구비한다. 특정 실시형태에서, 프로세서 (810), 디스플레이 제어기 (826), 메모리 (832), CODEC (834), 트랜시버 (850), 및 무선 제어기 (840) 는 시스템-인-패키지 (system-in-package) 또는 시스템-온-칩 디바이스 (822) 에 구비된다. 특정 실시형태에서, 입력 디바이스 (830) 와 전력 공급부 (844) 가 시스템-온-칩 디바이스 (822) 에 커플링된다. 특정 실시형태에서, 디스플레이 (828), 입력 디바이스 (830), 스피커(들) (836), 마이크로폰 (838), 무선 안테나 (842), 및 전력 공급부 (844) 는 시스템-온-칩 디바이스 (822) 외부에 있을 수도 있다. 그러나, 디스플레이 (828), 입력 디바이스 (830), 스피커(들) (836), 마이크로폰 (들 (838), 무선 안테나 (842), 및 전력 공급부 (844) 의 각각은 시스템-온-칩 디바이스 (822) 의 컴포넌트, 이를테면 인터페이스 또는 제어기에 커플링될 수도 있다.
전자 디바이스 (800) 는 메모리 (832) 에 미리 결정된 값들, 이를테면 미리 결정된 값들 (882) 을 저장할 수도 있다. 일 실시형태에서, 미리 결정된 값들은 프로세서 (810) 의 메모리 (즉, 캐시 메모리) 에 미리 결정된 값들 (872) 로서 저장될 수도 있다. 프로세서 (810) 는 미리 결정된 값들 (882) 또는 메모리 (832) 에서의 미리 결정된 값들에 액세스하도록 구성된 시퀀스 선택 로직 (예컨대, 도 5의 시퀀스 선택기 (512)) 을 구비할 수도 있다. 전자 디바이스 (800) 는 마이크로폰(들) (838) 에서 신호들 (예컨대, 초음파 신호들) 을 수신할 수도 있다. 수신된 신호들은 스피커(들) (836) 에 의해 생성된 에코 신호를 포함할 수도 있다. 특정 실시형태에서, CODEC (834) 은 입력 프레임 (예컨대, 도 1의 입력 프레임 (170) 또는 도 2의 입력 프레임 (218)) 을 생성하고 그 입력 프레임을 프로세서 (810) 로 제공하기 위해 수신된 신호들을 프로세싱할 수도 있다. 다른 실시형태에서, 입력 프레임은 프로세서 (810) 에 의해 생성될 수도 있다.
특정 실시형태에서, 프로세서 (810) 는 출력 프레임 (예컨대, 도 1의 출력 프레임 (164) 또는 도 2의 출력 프레임 (232)) 을 산출하기 위해 입력 프레임을 프로세싱하도록 구성된 에코 제거 로직 (880) 을 구비할 수도 있다. 출력 프레임에 대한 에코 신호의 기여도가 입력 프레임에 대한 에코 신호의 기여도보다 작을 수도 있다. 일 실시형태에서, 에코 제거 로직 (880) 은 도 1의 필터 (140) 에 해당할 수도 있고 도 1의 프로세싱 블록들 (150, 154, 158, 162)) 을 참조하여 설명된 동작들 중 하나 이상을 수행하도록 구성될 수도 있다. 다른 실시형태에서, 에코 제거 로직 (880) 은 도 2의 필터 (208) 에 해당할 수도 있고 도 2의 프로세싱 블록들 (250~262) 을 참조하여 설명된 동작들 중 하나 이상을 수행하도록 구성될 수도 있다. 다른 실시형태에서, 에코 제거 로직 (880) 은 도 3의 필터 (332) 에 해당할 수도 있다. 또 다른 실시형태에서, 에코 제거 로직 (880) 은 도 5를 참조하여 설명된 필터 (510) 에 해당할 수도 있다.
다른 특정 실시형태에서, 메모리 (832) 는 도 1 내지 도 7을 참조하여 설명된 바와 같은 출력 프레임을 산출하기 위해 프로세서 (810) 로 하여금 입력 프레임에 대한 에코 제거 동작들을 수행하게 하는 에코 제거 명령들 (870) 을 저장할 수도 있다. 출력 프레임에 대한 에코 신호의 기여도가 입력 프레임에 대한 에코 신호의 기여도보다 작을 수도 있다. 예를 들어, 에코 제거 명령들 (870) 은 도 4의 에코 제거 명령들 (422) 에 해당할 수도 있다. 다른 실시형태에서, 에코 제거 명령들 (870) 은 도 1의 프로세싱 블록들 (150, 154, 158, 162) 을 참조하여 설명된 동작들 또는 도 2의 프로세싱 블록들 (250~262) 을 참조하여 설명된 동작들 중 하나 이상을 수행하기 위해 프로세서 (810) 에 의해 실행가능할 수도 있다.
프로세서 (810) 는 미리 결정된 송신 시퀀스를 기술하는 신호 데이터에 기초하여 미리 결정된 값들 (예컨대, 미리 결정된 값들에 관련된 송신 시퀀스가 전송되기 전에 결정된 값들, 이를테면 미리 결정된 값들 (882) 또는 미리 결정된 값들 (872)) 을 생성하도록 구성될 수도 있다. 특정 실시형태에서, 프로세서 (810) 는 미리 결정된 값들을 생성하도록 그리고 미리 결정된 값들을 메모리 (예컨대, 메모리 (832) 또는 프로세서 (810) 의 캐시 메모리) 에 저장하도록 또는 메모리 (832) 에서의 미리 결정된 값들에 액세스하도록 구성된 시퀀스 선택기 (예컨대, 도 5의 시퀀스 선택기 (512)) 를 구비할 수도 있다. 다른 실시형태에서, 메모리 (832) 는 프로세서 (810) 로 하여금 미리 결정된 값들을 생성하게 하고 미리 결정된 값들을 메모리 (예컨대, 메모리 (832) 또는 프로세서 (810) 의 캐시 메모리) 에 저장하게 하는 시퀀스 선택 명령들 (예컨대, 도 4의 시퀀스 선택 명령들 (424)) 을 저장할 수도 있다.
프로세서 (810) 는 도 3을 참조하여 설명된 바와 같은 출력 프레임에 기초하여 다른 전자 디바이스 (미도시) 의 로케이션을 결정하도록 구성될 수도 있다. 예를 들어, 수신된 신호들의 특정 부분이 다른 전자 디바이스에서 생성된 신호에 해당할 수도 있다. 프로세서 (810) 는 출력 프레임에 기초하여 전자 디바이스 (800) 를 기준으로 다른 전자 디바이스의 로케이션 (즉, 방향 및 거리) 을 결정하기 위해 삼각측량을 사용할 수도 있다. 특정 실시형태에서, 프로세서 (810) 는 다른 전자 디바이스의 로케이션을 결정함에 있어서 사용하기 위한 로케이션 로직 (예컨대, 도 5의 로케이션 결정 유닛 (514)) 을 포함할 수도 있다. 다른 실시형태에서, 메모리 (832) 는 프로세서 (810) 로 하여금 다른 전자 디바이스의 로케이션을 결정하게 하는 로케이션 명령들 (예컨대, 도 4의 로케이션 명령들 (426)) 을 저장할 수도 있다.
설명된 실시형태들에 연계하여, 송신 시퀀스에 따라 신호를 송신하는 수단을 구비할 수도 있는 시스템이 개시된다. 특정 실시형태에서, 신호를 송신하는 수단은 스피커(들) (836), 도 1의 송신기 (110), 도 2의 송신기 (202), 도 3의 송신기 (310), 도 4의 송신기 (406), 또는 도 5의 송신기 (506) 를 구비할 수도 있다. 그 시스템은 하나 이상의 신호들을 수신하는 수단을 구비할 수도 있다. 특정 실시형태에서, 하나 이상의 신호들을 수신하는 수단은 마이크로폰(들) (838), 도 1의 수신기(들) (120), 도 2의 수신기(들) (204), 도 3의 마이크로폰들 (304~308), 도 4의 수신기(들) (404), 또는 도 5의 수신기(들) (504) 를 구비할 수도 있다. 그 시스템은 송신 시퀀스에 연관된 미리 결정된 값들을 저장하는 수단을 구비할 수도 있다. 일 실시형태에서, 송신 시퀀스에 연관된 미리 결정된 값들을 저장하는 수단은 메모리 (832), 도 1의 메모리 (130), 도 2의 메모리 (206), 도 3의 메모리 (330), 도 4의 메모리 (408), 또는 도 5의 메모리 (508) 를 구비할 수도 있다. 다른 실시형태에서, 송신 시퀀스에 연관된 미리 결정된 값들을 저장하는 수단은 프로세서 (810) 의 메모리 (예컨대, 캐시 메모리) 또는 레지스터를 구비할 수도 있다.
시스템은 하나 이상의 수신된 신호들에 기초하여 입력 (예컨대, 도 1의 입력 프레임 (170) 또는 도 2의 입력 프레임 (218)) 을 생성하는 수단을 구비할 수도 있다. 일 실시형태에서, 하나 이상의 수신된 신호들에 기초하여 입력을 생성하는 수단은 프로세서 (810) 를 구비할 수도 있다. 다른 실시형태에서, 하나 이상의 수신된 신호들에 기초하여 입력을 생성하는 수단은 도 1의 수신기(들) (120) 또는 도 2의 수신기(들) (204) 를 구비할 수도 있다. 다른 실시형태에서, 하나 이상의 수신된 신호들에 기초하여 입력을 생성하는 수단은 도 5의 필터 (510) 를 구비할 수도 있다. 일 실시형태에서, 하나 이상의 수신된 신호들에 기초하여 입력을 생성하는 수단은 하나 이상의 수신된 신호들에 기초하여 입력을 생성하도록 구성된 필드-프로그램가능 게이트 어레이 (FPGA) 디바이스, 주문형 집적회로 (ASIC), 중앙 처리 유닛 (CPU) 과 같은 프로세싱 유닛, 디지털 신호 프로세서 (DSP), 제어기, 다른 하드웨어 디바이스, 펌웨어 디바이스, 또는 그것들의 임의의 조합에 의해 구현될 수도 있다.
시스템은 제 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의 제 2 프로세싱 경로 (210) (예컨대, 도 2의 프로세싱 블록들 (250~262)) 를 포함할 수도 있다. 다른 실시형태에서, 미리 결정된 값들에 기초하여 입력을 프로세싱하는 수단은 도 3의 필터 (332) 를 구비할 수도 있다. 일 실시형태에서, 제 1 프로세싱 경로 (142), 제 1 프로세싱 경로 (210) 는 도 1의 프로세싱 블록들 (150, 154, 158) 또는 도 2의 프로세싱 블록들 (252~260) 을 참조하여 설명된 기능들을 수행하도록 구성된 FPGA 디바이스, ASIC, CPU와 같은 프로세싱 유닛, DSP, 제어기, 다른 하드웨어 디바이스, 펌웨어 디바이스, 또는 그것들의 임의의 조합에 의해 구현될 수도 있다.
시스템은 입력과 제 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) 는 도 1의 프로세싱 블록 (162) 또는 도 2의 프로세싱 블록 (262) 을 참조하여 설명된 기능들을 수행하도록 구성된 FPGA 디바이스, ASIC, CPU와 같은 프로세싱 유닛, DSP, 제어기, 다른 하드웨어 디바이스, 펌웨어 디바이스, 또는 그것들의 임의의 조합에 의해 구현될 수도 있다.
일 실시형태에서, 입력 (예컨대, 도 2의 프레임 (220)) 을 생성하는 수단은 하나 이상의 수신된 신호들에 기초하여 생성된 프레임 (예컨대, 도 2의 프레임 (218)) 을 수신하는 수단과 그 프레임에 대해 고속 푸리에 변환 (FFT) 을 수행하는 수단을 구비할 수도 있다. 입력은 FFT의 결과를 포함할 수도 있다. 일 실시형태에서, 프레임에 대해 FFT를 수행하는 수단은 도 2의 제 1 프로세싱 블록 (250) 을 구비할 수도 있다. 일 실시형태에서, 제 1 프로세싱 블록 (250) 은 프레임을 수신하고 그 프레임에 대해 FFT를 수행하도록 구성된 FPGA 디바이스, ASIC, CPU와 같은 프로세싱 유닛, DSP, 제어기, 다른 하드웨어 디바이스, 펌웨어 디바이스, 또는 그것들의 임의의 조합에 의해 구현될 수도 있다.
특정 실시형태에서, 입력 (예컨대, 도 2의 프레임 (220)) 을 프로세싱하는 수단은 입력과 미리 결정된 값들을 곱합으로써 제 1 곱 (예컨대, 도 2의 프레임 (222)) 을 결정하는 수단, 제 1 곱에 대해 역 고속 푸리에 변환 (IFFT) 을 수행하는 수단, IFFT의 결과 (예컨대, 도 2의 프레임 (224)) 와 미리 결정된 값들의 세트 (예컨대, 도 2의 미리 결정된 값들의 세트 (270)) 를 곱함으로써 제 2 곱 (예컨대, 프레임 (226)) 을 결정하는 수단, 제 2 곱에 대해 제 2 FFT를 수행하는 수단, 및 제 1 출력 (예컨대, 프레임 (230)) 을 산출하기 위해 제 2 FFT의 결과 (예컨대, 도 2의 프레임 (228)) 와 미리 결정된 값들을 곱하는 수단을 구비한다.
일 실시형태에서, 제 1 곱을 결정하는 수단, 제 1 곱에 대해 IFFT를 수행하는 수단, 제 2 곱을 결정하는 수단, 제 2 곱에 대해 제 2 FFT를 수행하는 수단, 및 제 2 FFT의 결과를 곱하는 수단은 각각이 도 1의 제 2 프로세싱 블록 (154) 을 참조하여 설명된 기능들을 수행하도록 구성된 FPGA 디바이스, ASIC, CPU와 같은 프로세싱 유닛, DSP, 제어기, 다른 하드웨어 디바이스, 펌웨어 디바이스, 또는 그것들의 임의의 조합에 의해 구현될 수도 있다. 일 실시형태에서, 제 1 곱에 대해 IFFT를 수행하는 수단은 제 3 프로세싱 블록 (254) 에 해당한다. 일 실시형태에서, 미리 결정된 값들의 세트는 도 1을 참조하여 설명된 미리 결정된 값들 (132) 의 세트에 해당한다.
당업자들은 본원에서 개시된 실시형태들에 관련하여 설명되는 각종 예시적인 논리 블록들, 구성들, 모듈들, 회로들, 및 알고리즘 단계들이 전자 하드웨어, 컴퓨터 소프트웨어, 또는 양쪽 모두의 조합들로서 구현될 수도 있다는 것을 추가로 이해할 것이다. 다양한 예시적인 컴포넌트들, 블록들, 구성들, 모듈들, 회로들, 및 단계들은 일반적으로 그것들의 기능성의 측면에서 위에서 설명되었다. 이러한 기능성이 하드웨어 또는 소프트웨어 중 어느 것으로 구현되는지는 전체 시스템에 부과되는 특정 애플리케이션 및 설계 제약들에 달려있다. 당업자들은 설명된 기능성을 각 특정 애플리케이션에 대하여 다양한 방식들로 구현할 수도 있지만, 이러한 구현 결정들은 본 개시물의 범위를 벗어나도록 야기하는 것으로서 해석되지 않아야 한다.
본원에 개시된 실시형태들에 관련하여 설명된 방법 또는 알고리즘의 단계들은 하드웨어로, 프로세서에 의해 실행되는 소프트웨어 모듈로, 또는 이들 두 가지의 조합으로 직접 실시될 수도 있다. 소프트웨어 모듈은 RAM (random-access memory), 플래시 메모리, ROM (read-only memory), 프로그래밍가능 ROM (PROM), 소거가능 프로그래밍가능 ROM (EPROM), 전기적 소거가능 프로그래밍가능 ROM (EEPROM), 레지스터들, 하드 디스크, 착탈식 디스크, CD-ROM (compact disc read-only memory), 또는 이 기술분야에서 알려진 임의의 다른 형태의 비일시적 저장 매체에 존재할 수도 있다. 예시적인 저장 매체가 프로세서에 커플링되어서 그 프로세서는 저장 매체로부터 정보를 읽을 수 있고 그 저장 매체에 정보를 쓸 수 있다. 대체예에서, 저장 매체는 프로세서에 통합될 수도 있다. 프로세서와 저장 매체는 주문형 집적회로 (ASIC) 내에 존재할 수도 있다. ASIC은 컴퓨팅 디바이스 또는 사용자 단말 (모바일 전화기 또는 PDA) 내에 존재할 수도 있다. 대체예에서, 프로세서와 저장 매체는 컴퓨팅 디바이스 또는 사용자 단말에 개별 컴포넌트들로서 존재할 수도 있다.
개시된 실시형태들의 이전의 설명은 당업자가 개시된 실시형태들을 제작하고 사용하는 것을 가능하게 하기 위해 제공된다. 이들 실시형태들에 대한 다양한 변형예들은 당업자들에게 쉽사리 명확하게 될 것이고, 본원에서 정의된 원리들은 본 개시물의 범위로부터 벗어남 없이 다른 실시형태들에 적용될 수도 있다. 따라서, 본 개시물은 본원에서 개시된 실시형태들로 한정될 의도는 없으며 다음의 청구항들에 의해 정의된 원리들 및 신규한 특징들과 일치하는 가능한 가장 넓은 범위에 일치하는 것이다.

Claims (36)

  1. 송신 시퀀스를 기술하는 신호 데이터와 상기 송신 시퀀스에 연관된 미리 결정된 값들에 액세스하는 단계로서, 상기 신호 데이터와 상기 미리 결정된 값들은 메모리에 저장되는, 상기 액세스하는 단계;
    상기 송신 시퀀스에 따라 전자 디바이스의 스피커로부터 신호를 송신하는 단계;
    상기 전자 디바이스의 마이크로폰에서 수신된 하나 이상의 신호들에 기초하여 프레임을 생성하는 단계로서, 상기 하나 이상의 신호들은 송신된 상기 신호에 연관된 에코 신호를 포함하는, 상기 생성하는 단계; 및
    상기 에코 신호에 연관된 기여도가 감소되는 출력 프레임을 산출하기 위해 상기 미리 결정된 값들을 사용하여 상기 프레임을 프로세싱하는 단계를 포함하는, 방법.
  2. 제 1 항에 있어서,
    상기 미리 결정된 값들은 상기 송신 시퀀스의 고속 푸리에 변환 (FFT) 에 대응하는, 방법.
  3. 제 2 항에 있어서,
    상기 프레임을 프로세싱하는 단계는,
    제 1 프로세싱된 프레임을 산출하기 위해 상기 프레임에 대해 FFT를 수행하는 단계; 및
    에코 제거 로직에 상기 제 1 프로세싱된 프레임을 제공하는 단계를 더 포함하며,
    상기 에코 제거 로직은, 상기 미리 결정된 값들에 기초하여 상기 제 1 프로세싱된 프레임을 프로세싱하도록 구성되는, 방법.
  4. 제 3 항에 있어서,
    상기 미리 결정된 값들에 기초하여 상기 제 1 프로세싱된 프레임을 프로세싱하는 단계는,
    제 2 프로세싱된 프레임을 산출하기 위해 상기 제 1 프로세싱된 프레임과 상기 미리 결정된 값들을 곱하는 단계;
    제 3 프로세싱된 프레임을 산출하기 위해 상기 제 2 프로세싱된 프레임에 대해 역 고속 푸리에 변환 (IFFT) 을 수행하는 단계;
    제 4 프로세싱된 프레임을 산출하기 위해 상기 제 3 프로세싱된 프레임과 미리 결정된 값들의 세트를 곱하는 단계;
    제 5 프로세싱된 프레임을 산출하기 위해 상기 제 4 프로세싱된 프레임에 대해 FFT를 수행하는 단계;
    제 6 프로세싱된 프레임을 산출하기 위해 상기 제 5 프로세싱된 프레임과 상기 미리 결정된 값들을 곱하는 단계; 및
    상기 제 1 프로세싱된 프레임과 상기 제 6 프로세싱된 프레임 간의 차이를 결정하는 단계를 포함하는, 방법.
  5. 제 4 항에 있어서,
    상기 출력 프레임은 상기 제 1 프로세싱된 프레임과 상기 제 6 프로세싱된 프레임 간의 차이에 기초하여 생성되는, 방법.
  6. 제 1 항에 있어서,
    상기 송신 시퀀스는 상기 전자 디바이스에 국소적으로 고유한, 방법.
  7. 제 6 항에 있어서,
    상기 전자 디바이스는 모바일 통신 디바이스인, 방법.
  8. 제 1 항에 있어서,
    상기 하나 이상의 수신된 신호들은 제 2 전자 디바이스에 의해 송신된 제 2 신호를 포함하며,
    상기 방법은, 상기 출력 프레임에 기초하여 상기 제 2 전자 디바이스의 포지션을 결정하는 단계를 더 포함하며,
    상기 제 2 전자 디바이스는 상기 송신 시퀀스와는 상이한 제 2 송신 시퀀스에 따라 상기 제 2 신호를 송신하는, 방법.
  9. 제 8 항에 있어서,
    상기 하나 이상의 수신된 신호들은 초음파 신호들을 포함하는, 방법.
  10. 제 1 항에 있어서,
    상기 신호는 초음파 신호를 포함하고 상기 송신 시퀀스는 주기적 시퀀스인, 방법.
  11. 송신 시퀀스에 따라 신호를 송신하도록 구성된 송신기;
    하나 이상의 신호들을 수신하도록 구성된 수신기;
    상기 송신 시퀀스에 연관된 미리 결정된 값들을 저장하는 메모리;
    제 1 프로세싱 경로로서,
    상기 하나 이상의 수신된 신호들에 기초하여 생성되는 입력을 수신하도록;
    상기 메모리로부터 상기 미리 결정된 값들을 취출하도록; 그리고
    상기 입력에 대한 송신된 상기 신호의 기여도를 나타내는 출력을 산출하기 위해 상기 미리 결정된 값들에 기초하여 상기 입력을 프로세싱하도록 구성된 제 1 프로세싱 경로; 및
    제 2 프로세싱 경로로서,
    상기 입력을 수신하도록;
    상기 프로세싱 경로로부터 상기 출력을 수신하도록; 그리고
    상기 제 1 프로세싱 경로의 상기 출력과 상기 입력 간의 차이에 기초하여 출력 프레임을 생성하도록 구성된 제 2 프로세싱 경로를 포함하는, 장치.
  12. 제 11 항에 있어서,
    상기 제 1 프로세싱 경로와 상기 제 2 프로세싱 경로에 커플링된 프레임 로직을 더 포함하며,
    상기 프레임 로직은,
    상기 하나 이상의 수신된 신호들에 기초하여 생성된 프레임을 수신하도록;
    제 1 프로세싱된 프레임을 산출하기 위해 상기 프레임에 대해 고속 푸리에 변환 (FFT) 을 수행하도록; 그리고
    상기 제 1 프로세싱 경로에 그리고 상기 제 2 프로세싱 경로에 상기 제 1 프로세싱된 프레임을 제공하도록 구성되며,
    상기 입력은 상기 제 1 프로세싱된 프레임인, 장치.
  13. 제 12 항에 있어서,
    상기 제 1 프로세싱 경로는,
    제 2 프로세싱된 프레임을 산출하기 위해 상기 제 1 프로세싱된 프레임과 상기 미리 결정된 값들을 곱하도록;
    제 3 프로세싱된 프레임을 산출하기 위해 상기 제 2 프로세싱된 프레임에 대해 역 고속 푸리에 변환 (IFFT) 을 수행하도록;
    제 4 프로세싱된 프레임을 산출하기 위해 상기 제 3 프로세싱된 프레임과 미리 결정된 값들의 세트를 곱하도록;
    제 5 프로세싱된 프레임을 산출하기 위해 상기 제 4 프로세싱된 프레임에 대해 제 2 FFT를 수행하도록;
    상기 출력을 산출하기 위해 상기 제 5 프로세싱된 프레임과 상기 미리 결정된 값들을 곱하도록; 그리고
    상기 제 2 프로세싱 경로에 상기 출력을 제공하도록 구성되는, 장치.
  14. 제 13 항에 있어서,
    미리 결정된 에코 제거 값들은 상기 송신 시퀀스의 FFT에 대응하는, 장치.
  15. 제 13 항에 있어서,
    상기 미리 결정된 값들의 세트는 테플리츠 (Toeplitz) 행렬을 포함하는, 장치.
  16. 제 11 항에 있어서,
    상기 하나 이상의 수신된 신호들은 제 2 송신기에 의해 생성된 제 2 신호를 포함하며,
    상기 장치는,
    상기 제 2 프로세싱 경로로부터 제 2 출력을 수신하도록; 그리고
    상기 제 2 출력에 기초하여 상기 제 2 송신기의 포지션을 결정하도록 구성된 제 2 로직을 더 포함하며,
    상기 제 2 송신기는 상기 송신 시퀀스와는 상이한 제 2 송신 시퀀스에 따라 상기 제 2 신호를 생성하는, 장치.
  17. 제 16 항에 있어서,
    상기 입력은 상기 송신된 신호에 연관된 제 1 정보와 상기 제 2 신호에 연관된 제 2 정보를 포함하고,
    상기 제 2 출력에 대한 상기 송신된 신호의 기여도는 상기 입력에 대한 상기 송신된 신호의 기여도보다 적은, 장치.
  18. 제 17 항에 있어서,
    상기 송신기는 제 1 디바이스에 통합되고,
    상기 제 2 송신기는 상기 제 1 디바이스와는 상이한 제 2 디바이스에 통합되는, 장치.
  19. 제 11 항에 있어서,
    상기 송신된 신호는 초음파 신호를 포함하는, 장치.
  20. 제 19 항에 있어서,
    상기 초음파 신호는 주기적 신호를 포함하는, 장치.
  21. 제 11 항에 있어서,
    제 2 송신 시퀀스를 선택하도록;
    상기 제 2 송신 시퀀스에 연관된 제 2 미리 결정된 값들을 생성하도록; 그리고
    상기 메모리에 상기 제 2 미리 결정된 값들을 저장하도록 구성된 시퀀스 선택 로직을 더 포함하는, 장치.
  22. 제 21 항에 있어서,
    상기 제 2 송신 시퀀스를 선택하는 것에 후속하여, 상기 송신기는 상기 제 2 송신 시퀀스에 따라 제 2 신호를 송신하도록 구성되는, 장치.
  23. 제 21 항에 있어서,
    상기 선택 로직은 복수의 미리 결정된 송신 시퀀스들로부터 상기 제 2 송신 시퀀스를 선택하는, 장치.
  24. 제 23 항에 있어서,
    상기 복수의 미리 결정된 송신 시퀀스들은 골드 코드 시퀀스들을 포함하는, 장치.
  25. 명령들을 포함하는 컴퓨터 판독가능 저장 매체로서,
    상기 명령들은, 프로세서에 의해 실행되는 경우, 상기 프로세서로 하여금,
    송신 시퀀스를 기술하는 신호 데이터와 상기 송신 시퀀스에 연관된 미리 결정된 값들에 액세스하게 하며;
    전자 디바이스의 스피커로 하여금 상기 송신 시퀀스에 따라 신호를 송신하게 하며;
    상기 전자 디바이스의 마이크로폰에서 수신된 하나 이상의 신호들에 기초하여 프레임을 생성하게 하며; 그리고
    에코 신호에 연관된 기여도가 감소되는 출력 프레임을 산출하기 위해 상기 미리 결정된 값들을 사용하여 상기 프레임을 프로세싱하게 하며,
    상기 신호 데이터와 상기 미리 결정된 값들은 메모리에 저장되며,
    상기 하나 이상의 신호들은 상기 송신된 신호에 연관된 에코 신호를 포함하는, 컴퓨터 판독가능 저장 매체.
  26. 제 25 항에 있어서,
    상기 프로세서에 의해 실행되는 경우, 상기 프로세서로 하여금, 상기 신호가 송신되기 전에 상기 미리 결정된 값들을 산출하기 위해 상기 송신 시퀀스에 대해 고속 푸리에 변환 (FFT) 을 수행하게 하는 명령들을 더 포함하는, 컴퓨터 판독가능 저장 매체.
  27. 제 26 항에 있어서,
    상기 프로세서에 의해 실행되는 경우, 상기 프로세서로 하여금,
    제 1 프로세싱된 프레임을 산출하기 위해 상기 프레임에 대해 FFT를 수행하게 하며; 그리고
    상기 미리 결정된 값들에 기초하여 상기 제 1 프로세싱된 프레임을 프로세싱하도록 구성된 에코 제거 로직에 상기 제 1 프로세싱된 프레임을 제공하게 하는 명령들을 더 포함하는, 컴퓨터 판독가능 저장 매체.
  28. 제 27 항에 있어서,
    상기 프로세서에 의해 실행되는 경우, 상기 프로세서로 하여금,
    제 2 프로세싱된 프레임을 산출하기 위해 상기 제 1 프로세싱된 프레임과 상기 미리 결정된 값들을 곱하게 하며;
    제 3 프로세싱된 프레임을 산출하기 위해 상기 제 2 프로세싱된 프레임에 대해 역 고속 푸리에 변환 (IFFT) 을 수행하게 하며;
    제 4 프로세싱된 프레임을 산출하기 위해 상기 제 3 프로세싱된 프레임과 미리 결정된 값들의 세트를 곱하게 하며;
    제 5 프로세싱된 프레임을 산출하기 위해 상기 제 4 프로세싱된 프레임에 대해 제 2 FFT를 수행하게 하며;
    제 6 프로세싱된 프레임을 산출하기 위해 상기 제 5 프로세싱된 프레임과 상기 미리 결정된 값들을 곱하게 하며; 그리고
    상기 제 1 프로세싱된 프레임과 상기 제 6 프로세싱된 프레임 간의 차이를 결정하게 하는 명령들을 더 포함하는, 컴퓨터 판독가능 저장 매체.
  29. 제 28 항에 있어서,
    상기 출력 프레임은 상기 제 1 프로세싱된 프레임과 상기 제 6 프로세싱된 프레임 간의 차이에 기초하여 생성되는, 컴퓨터 판독가능 저장 매체.
  30. 제 25 항에 있어서,
    상기 송신 시퀀스는 상기 프로세서를 구비한 전자 디바이스에 국소적으로 고유한, 컴퓨터 판독가능 저장 매체.
  31. 제 30 항에 있어서,
    상기 전자 디바이스는 모바일 통신 디바이스인, 컴퓨터 판독가능 저장 매체.
  32. 송신 시퀀스에 따라 신호를 송신하는 수단;
    하나 이상의 신호들을 수신하는 수단;
    상기 송신 시퀀스에 연관된 미리 결정된 값들을 저장하는 수단;
    상기 하나 이상의 수신된 신호들에 기초하여 입력을 생성하는 수단;
    제 1 출력을 산출하기 위해 상기 미리 결정된 값들에 기초하여 상기 입력을 프로세싱하는 수단으로서, 상기 제 1 출력은 상기 입력에 대한 상기 송신된 신호의 기여도를 나타내는, 상기 입력을 프로세싱하는 수단; 및
    상기 입력과 상기 제 1 출력 간의 차이에 기초하여 제 2 출력을 생성하는 수단을 포함하는, 장치.
  33. 제 32 항에 있어서,
    상기 입력을 생성하는 수단은,
    상기 하나 이상의 수신된 신호들에 기초하여 생성된 프레임을 수신하는 수단; 및
    상기 프레임에 대해 고속 푸리에 변환 (FFT) 을 수행하는 수단을 포함하며,
    상기 입력은 상기 FFT의 결과인, 장치.
  34. 제 32 항에 있어서,
    상기 미리 결정된 값들은 상기 송신 시퀀스의 고속 푸리에 변환 (FFT) 에 대응하는, 장치.
  35. 제 34 항에 있어서,
    상기 입력을 프로세싱하는 수단은,
    상기 입력과 상기 미리 결정된 값들을 곱함으로써 제 1 곱을 결정하는 수단;
    상기 제 1 곱에 대해 역 고속 푸리에 변환 (IFFT) 을 수행하는 수단;
    상기 IFFT의 결과와 미리 결정된 값들의 세트를 곱함으로써 제 2 곱을 결정하는 수단;
    상기 제 2 곱에 대해 제 2 FFT를 수행하는 수단; 및
    상기 제 1 출력을 산출하기 위해 상기 제 2 FFT의 결과와 상기 미리 결정된 값들을 곱하는 수단을 포함하는, 장치.
  36. 제 35 항에 있어서,
    상기 미리 결정된 값들의 세트는 테플리츠 행렬에 대응하는, 장치.
KR1020157011615A 2012-11-15 2013-10-21 초음파를 이용한 에코 제거 KR101651794B1 (ko)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US201261727011P 2012-11-15 2012-11-15
US61/727,011 2012-11-15
US13/841,359 US9210270B2 (en) 2012-11-15 2013-03-15 Echo cancellation for ultrasound
US13/841,359 2013-03-15

Publications (2)

Publication Number Publication Date
KR20150084814A true KR20150084814A (ko) 2015-07-22
KR101651794B1 KR101651794B1 (ko) 2016-08-26

Family

ID=50682228

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020157011615A KR101651794B1 (ko) 2012-11-15 2013-10-21 초음파를 이용한 에코 제거

Country Status (6)

Country Link
US (1) US9210270B2 (ko)
EP (1) EP2920947B1 (ko)
JP (1) JP5978404B2 (ko)
KR (1) KR101651794B1 (ko)
CN (1) CN104769926B (ko)
WO (1) WO2014078016A1 (ko)

Families Citing this family (26)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9831843B1 (en) 2013-09-05 2017-11-28 Cirrus Logic, Inc. Opportunistic playback state changes for audio devices
US9525940B1 (en) 2014-03-05 2016-12-20 Cirrus Logic, Inc. Multi-path analog front end and analog-to-digital converter for a signal processing system
US9774342B1 (en) * 2014-03-05 2017-09-26 Cirrus Logic, Inc. Multi-path analog front end and analog-to-digital converter for a signal processing system
US9306588B2 (en) 2014-04-14 2016-04-05 Cirrus Logic, Inc. Switchable secondary playback path
KR102208696B1 (ko) * 2014-05-13 2021-01-28 삼성전자주식회사 센서 데이터 획득 방법 및 그 장치
US10785568B2 (en) 2014-06-26 2020-09-22 Cirrus Logic, Inc. Reducing audio artifacts in a system for enhancing dynamic range of audio signal path
US9596537B2 (en) 2014-09-11 2017-03-14 Cirrus Logic, Inc. Systems and methods for reduction of audio artifacts in an audio system with dynamic range enhancement
US9503027B2 (en) 2014-10-27 2016-11-22 Cirrus Logic, Inc. Systems and methods for dynamic range enhancement using an open-loop modulator in parallel with a closed-loop modulator
US9584911B2 (en) 2015-03-27 2017-02-28 Cirrus Logic, Inc. Multichip dynamic range enhancement (DRE) audio processing methods and apparatuses
US9959856B2 (en) 2015-06-15 2018-05-01 Cirrus Logic, Inc. Systems and methods for reducing artifacts and improving performance of a multi-path analog-to-digital converter
US9955254B2 (en) 2015-11-25 2018-04-24 Cirrus Logic, Inc. Systems and methods for preventing distortion due to supply-based modulation index changes in an audio playback system
US9543975B1 (en) 2015-12-29 2017-01-10 Cirrus Logic, Inc. Multi-path analog front end and analog-to-digital converter for a signal processing system with low-pass filter between paths
US9880802B2 (en) 2016-01-21 2018-01-30 Cirrus Logic, Inc. Systems and methods for reducing audio artifacts from switching between paths of a multi-path signal processing system
US9998826B2 (en) 2016-06-28 2018-06-12 Cirrus Logic, Inc. Optimization of performance and power in audio system
US10545561B2 (en) 2016-08-10 2020-01-28 Cirrus Logic, Inc. Multi-path digitation based on input signal fidelity and output requirements
US10263630B2 (en) 2016-08-11 2019-04-16 Cirrus Logic, Inc. Multi-path analog front end with adaptive path
US9813814B1 (en) 2016-08-23 2017-11-07 Cirrus Logic, Inc. Enhancing dynamic range based on spectral content of signal
US9780800B1 (en) 2016-09-19 2017-10-03 Cirrus Logic, Inc. Matching paths in a multiple path analog-to-digital converter
US9762255B1 (en) 2016-09-19 2017-09-12 Cirrus Logic, Inc. Reconfiguring paths in a multiple path analog-to-digital converter
US9929703B1 (en) 2016-09-27 2018-03-27 Cirrus Logic, Inc. Amplifier with configurable final output stage
US9967665B2 (en) 2016-10-05 2018-05-08 Cirrus Logic, Inc. Adaptation of dynamic range enhancement based on noise floor of signal
US10321230B2 (en) 2017-04-07 2019-06-11 Cirrus Logic, Inc. Switching in an audio system with multiple playback paths
US10008992B1 (en) 2017-04-14 2018-06-26 Cirrus Logic, Inc. Switching in amplifier with configurable final output stage
US9917557B1 (en) 2017-04-17 2018-03-13 Cirrus Logic, Inc. Calibration for amplifier with configurable final output stage
US10277981B1 (en) * 2018-10-02 2019-04-30 Sonos, Inc. Systems and methods of user localization
TWI790718B (zh) * 2021-08-19 2023-01-21 宏碁股份有限公司 會議終端及用於會議的回音消除方法

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CA2107198A1 (en) * 1993-09-28 1995-03-29 D. Erle Nelson Method and apparatus for accurate acoustic distance measurement
US20080198779A1 (en) * 2007-02-15 2008-08-21 Infineon Technologies Agst. Multi-channel communication device and methods for reducing echoes by inserting a training sequence under a spectral mask
US20120213380A1 (en) * 2009-10-29 2012-08-23 Universite Paris Descartes Method and Device for Cancelling Acoustic Echo by Audio Watermarking

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6563925B1 (en) * 1999-04-07 2003-05-13 Ericsson Inc. Method and apparatus for space-time echo cancellation
JP2000341658A (ja) * 1999-05-27 2000-12-08 Nec Eng Ltd 話者方向検出システム
US7515704B2 (en) 2004-01-05 2009-04-07 Telukuntla Krishna Prabhu N V R Method, apparatus and articles incorporating a step size control technique for echo signal cancellation
US7720232B2 (en) 2004-10-15 2010-05-18 Lifesize Communications, Inc. Speakerphone
US20080317241A1 (en) 2006-06-14 2008-12-25 Derek Wang Code-based echo cancellation
JP5071480B2 (ja) 2007-08-24 2012-11-14 富士通株式会社 エコー抑制装置、エコー抑制システム、エコー抑制方法及びコンピュータプログラム
EP2045620B1 (en) 2007-09-26 2015-08-12 Harman Becker Automotive Systems GmbH Acoustic propagation delay measurement
JP5405130B2 (ja) * 2009-01-09 2014-02-05 クラリオン株式会社 音再生装置および音再生方法
EP2221983B1 (en) 2009-02-20 2011-08-31 Harman Becker Automotive Systems GmbH Acoustic echo cancellation
JP2011227199A (ja) * 2010-04-16 2011-11-10 Nec Casio Mobile Communications Ltd 雑音抑圧装置、雑音抑圧方法及びプログラム
US8619970B2 (en) 2010-06-16 2013-12-31 Lectrosonics, Inc. Echo cancellers and echo cancelling methods
US8553904B2 (en) * 2010-10-14 2013-10-08 Hewlett-Packard Development Company, L.P. Systems and methods for performing sound source localization
GB2495131A (en) * 2011-09-30 2013-04-03 Skype A mobile device includes a received-signal beamformer that adapts to motion of the mobile device
US8903108B2 (en) * 2011-12-06 2014-12-02 Apple Inc. Near-field null and beamforming

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CA2107198A1 (en) * 1993-09-28 1995-03-29 D. Erle Nelson Method and apparatus for accurate acoustic distance measurement
US20080198779A1 (en) * 2007-02-15 2008-08-21 Infineon Technologies Agst. Multi-channel communication device and methods for reducing echoes by inserting a training sequence under a spectral mask
US20120213380A1 (en) * 2009-10-29 2012-08-23 Universite Paris Descartes Method and Device for Cancelling Acoustic Echo by Audio Watermarking

Also Published As

Publication number Publication date
WO2014078016A1 (en) 2014-05-22
JP5978404B2 (ja) 2016-08-24
CN104769926A (zh) 2015-07-08
CN104769926B (zh) 2017-03-22
JP2016500236A (ja) 2016-01-07
EP2920947B1 (en) 2016-09-21
US9210270B2 (en) 2015-12-08
EP2920947A1 (en) 2015-09-23
US20140135077A1 (en) 2014-05-15
KR101651794B1 (ko) 2016-08-26

Similar Documents

Publication Publication Date Title
KR101651794B1 (ko) 초음파를 이용한 에코 제거
EP2973558B1 (en) Methods for adaptive acoustic processing based on characterising the acoustic environment
CN105472189B (zh) 回波消除检测器、消除回波的方法和比较发生器
EP2277323B1 (en) Speech enhancement using multiple microphones on multiple devices
EP3066493A1 (en) Driver side location detection
WO2015184893A1 (zh) 移动终端通话语音降噪方法及装置
US10598543B1 (en) Multi microphone wall detection and location estimation
CN104994249B (zh) 声回波消除方法和装置
US9246545B1 (en) Adaptive estimation of delay in audio systems
US20130223188A1 (en) Proximity detecting apparatus and method based on audio signals
US20140341386A1 (en) Noise reduction
KR102169993B1 (ko) 에코 억제 기법
KR20150130845A (ko) 전자장치의 위치 측정 장치 및 방법
CN103268766A (zh) 双麦克风语音增强方法及装置
JP2010010856A (ja) ノイズキャンセル装置、ノイズキャンセル方法、ノイズキャンセルプログラム、ノイズキャンセルシステム、及び、基地局
KR102012522B1 (ko) 방향성 음향 신호 처리 장치
US12020716B2 (en) Processing method of sound watermark and sound watermark generating apparatus
CN102956236A (zh) 信息处理设备、信息处理方法和程序
US20240195918A1 (en) Microphone selection in multiple-microphone devices
US11533559B2 (en) Beamformer enhanced direction of arrival estimation in a reverberant environment with directional noise
CN117153180A (zh) 声音信号处理方法、装置、存储介质及电子设备
JP2009060232A (ja) 音声処理装置等

Legal Events

Date Code Title Description
A201 Request for examination
A302 Request for accelerated examination
E701 Decision to grant or registration of patent right
GRNT Written decision to grant