Nothing Special   »   [go: up one dir, main page]

KR100524341B1 - 음향 에코 제거기 - Google Patents

음향 에코 제거기 Download PDF

Info

Publication number
KR100524341B1
KR100524341B1 KR10-1999-7010301A KR19997010301A KR100524341B1 KR 100524341 B1 KR100524341 B1 KR 100524341B1 KR 19997010301 A KR19997010301 A KR 19997010301A KR 100524341 B1 KR100524341 B1 KR 100524341B1
Authority
KR
South Korea
Prior art keywords
echo
update
adaptive filter
value
signal
Prior art date
Application number
KR10-1999-7010301A
Other languages
English (en)
Other versions
KR20010012349A (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 KR20010012349A publication Critical patent/KR20010012349A/ko
Application granted granted Critical
Publication of KR100524341B1 publication Critical patent/KR100524341B1/ko

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04BTRANSMISSION
    • H04B3/00Line transmission systems
    • H04B3/02Details
    • H04B3/20Reducing echo effects or singing; Opening or closing transmitting path; Conditioning for transmission in one direction or the other
    • 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
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Cable Transmission Systems, Equalization Of Radio And Reduction Of Echo (AREA)
  • Telephone Function (AREA)

Abstract

적응 에코-소거 필터의 유효 전달 함수 계수를 주기적으로 조정하여 시스템 상태 변화를 추적하는 에코 제거기가 개시된다. 유효 계수의 주기적인 조정은, 시스템 파라미터 측정의 전략적이고 신규한 조합에 기초하여 변화되는 보다 자주 조정되는 갱신 계수 및 갱신 이득 세트를 이용하여 구현된다. 연속적이기 보다는 주기적으로 필터링 계수를 갱신하고 갱신 이득의 크기에 대해 소프트하며 퍼지-논리형인 결정을 함으로써, 예시적인 실시예들이 안정성의 희생없이 시스템 속도 및 적응을 최적화한다. 일반적으로, 비교적 큰 갱신 이득은, 원단(far-end)사용자만이 말하고 근단(near-end) 신호가 비교적 노이즈가 없는 상황에서 적용된다. 그러나, 근단에서의 싱글 토크, 더블 토크, 및 높은 근단 노이즈 상황에서, 적응 필터가 비안정화되지 않거나 근단 스피치 및 노이즈 신호의 왜곡을 유발시키지 않도록 보다 보수적인 방법이 사용된다. 어느 상황에서나, 갱신 이득은, 적응 필터가 일반적인 안정 상태 에코 환경에 일치하도록 수렴하여, 이미 적당하게 적응된 필터의 에러 방해요소가 최소화되도록 감소된다. 비수렴 기간 동안에 높거나 낮은 갱신 이득을 적용할지의 여부에 대한 결정은, 피크 갱신 계수값 및 기준선 갱신 계수값의 비율을 포함한 시스템 상태 게이지에 일부 의존한다. 시스템 상태 게이지는 그 중에서도 시스템 수렴의 레벨을 가리킨다. 예시적인 실시예에서, 비교적 높은 가변 갱신 이득은 수정된 정규화 최소공배수(NLMS) 알고리즘을 사용함으로써 비수렴된 원단 싱글 토크 상황에 적용된다. 다른 비수렴 상황에서는, 갱신 이득은 시스템 상태 게이지의 정규화 버젼에 기초하여 보다 보수적으로 조정된다. 시스템 불안정성을 생성하지 않도록 주의하면서 비교적 큰 갱신 이득을 동적으로 제공함으로써, 예시적인 실시예는 다양한 시스템 환경 및 상태에서 성공적으로 에코를 소거하도록 신속하고 강력하게 적응된다.

Description

음향 에코 제거기{ACOUSTIC ECHO CANCELER}
본 발명은 통신 시스템에 관한 것으로서, 보다 상세하게는 양방향 통신 링크에서의 에코 제거에 관한 것이다.
많은 통신 시스템, 예컨대 지상 통신선 및 무선 전화 시스템에 있어서, 음성 신호는 종종 양방향 통신 링크를 통해 두 시스템 사용자간에 전송된다. 이러한 시스템에서, 근단 사용자(near-end user)의 음성은 대개 통신 링크의 일단에 있는 근단 마이크로폰에 의해 검출된 다음, 링크를 통해 재생용의 원단(far-end) 확성기로 전송되어 원단 사용자에게 제공된다. 이와 반대로, 원단 사용자의 음성은 원단 마이크로폰에 의해 검출된 후, 통신 링크를 통해 재생용 근단 확성기로 전송되어 근단 사용자에게 제공된다. 통신 링크의 어느 한 단부에서, 근접 마이크로폰에 의해 검출된 확성기 출력은 통신 링크를 통해 부주의하게 역전송될 수 있어 이것은 사용자 입장에서 볼 때 허용될 수 없는 파괴적인 피드백 도는 에코가 될 수 있다. 더욱이, 라운드 트립 루프 이득이 임의의 가청 주파수에서 1 보다 큰 경우, 시스템은 당해 분야에 공지된 바와 같이 "하울링(howling)"을 일으키는 경향이 있다.
따라서, 이러한 바람직하지 않은 에코 신호의 전송을 방지하기 위하여, 마이크로폰 음향 입력은 가능한 한 확성기의 출력으로부터 격리되어야 한다. 핸드셋 마이크로폰이 사용자의 입에 가깝게 위치하고 핸드셋 확성기가 사용자의 귀를 필수적으로 가리도록 되어 있는 종래의 전화기 핸드셋에서는 요구되는 격리가 쉽게 이루어진다. 그러나, 휴대 전화의 물리적인 크기가 감소하고 핸즈-프리 확성기-전화가 더욱 보급됨에 따라 제조업자들은 확성기에서 마이크로폰으로의 음향 경로가 사용자의 머리 또는 몸체에 의해 차단되지 않는 디자인쪽으로 이동하게 되었다. 그 결과, 현대적인 시스템에서는 더욱 정교한 에코 억제 기술이 요구되었다.
이러한 요구는 폐쇄된 운송 환경에 의해 확성기 신호의 다중 반사가 고이득 핸즈 프리 마이크로폰에 다시 결합될 수 있는 핸즈 프리 자동 전화기의 경우에 특히 명백하다. 차량 내에서의 사용자의 이동, 및 예컨대 운전중에 창문이 개폐되거나 사용자가 머리를 움직일 때의 에코 신호의 상대적 방향 및 세기의 변화는 자동차 환경에서의 에코 억제를 더욱 복잡하게 만든다. 또한, 더 최근에 개발된 디지털 전화는 충분한 신호 지연을 도입하여 비선형 신호 왜곡을 발생시키는 보코더를 통해 음성 신호를 처리한다. 공지된 바와 같이, 이러한 긴 지연은 사용자의 입장에서 볼 때 신호 에코의 문제를 확대시키는 경향이 있으며, 추가적인 비선형 왜곡은 음성 신호가 보코더를 통과한 경우에는 에코 억제를 어렵게 만들 수 있다.
통상적으로, 에코 억제는 마이크로폰 출력으로부터 에코 신호를 추정하여 제거함으로써 근단 음성 및 잡음만이 통신 링크를 통해 전송되도록 하는 적응 필터를 사용하는 에코 제거 회로를 사용하여 달성되어 왔다. 이러한 시스템은 예컨대 1995년 12월 12일자로 허여된 "에러 신호를 수정하기 위하여 에코 추정을 이용하는 에코 제거 시스템 및 방법"이라는 제목의 미국 특허 제5,475,731호, 및 1995년 12월 27일자로 출원된 "적응 필터의 게이징 수렴도"라는 제목의 미국 특허 출원 제08/578,944호에 설명되어 있는데, 이들은 본 명세서에 참조되었다. 이 인용 문헌들에 설명된 시스템은 에코 신호를 제거하거나 억제하는 데 효과적이지만, 이러한 시스템의 어떤 특성은 몇몇 상황에서 시스템을 비실용적으로 만든다.
예컨대, 아래에 상세히 설명되는 바와 같이, 이러한 시스템은 근단 사용자와 원단 사용자가 동시에 이야기하는 더블 토크 상황에 적합하지 않다. 또한, 전술한 시스템은 주변 잡음, 예컨대 도로 및 교통 잡음이 마이크로폰 입력보다 큰 상황에 적합하지 않다. 따라서, 개량된 에코 억제 시스템이 필요하다.
<발명의 요약>
본 발명은 시스템 조건이 변하는 것을 추적하기 위하여 적응 에코 제거 필터의 유효 전달 함수 계수가 주기적으로 조정되는 에코 제거기를 제공하여 상기 및 다른 요구를 만족시킨다. 유효 계수의 주기적인 조정은 더 빈번하게 조정되는 갱신 계수 세트, 및 시스템 파라미터 측정치의 전략적이고 신규한 조합에 기초하여 변하는 갱신 이득을 이용하여 달성된다. 본 명세서에서 시스템 상태 게이지로서 언급되는 키 시스템 파라미터 측정치는 피크 갱신 계수값 및 기준선 갱신 계수값의 비를 포함한다. 시스템 상태 게이지는 시스템 수렴도를 나타내며, 시스템을 계수 갱신 이득을 동적으로 조정하는 데 극히 유용하게 만드는 많은 이로운 특성을 나타낸다.
종래의 에코 소거 장치는 유효 필터링 계수가 연속적으로 또는 샘플 대 샘플 방식으로 갱신되는 적응 필터를 제공하지만, 본 발명에 따른 에코 소거 장치는 유효 필터링 계수가 덜 빈번하게, 예컨대 샘플-블록 대 샘플-블록 방식으로 갱신되는 적응 필터를 제공한다. 유효 필터링 계수를 연속적이 아니라 주기적으로 갱신함으로써, 그리고 갱신 이득의 크기에 대한 유연한 퍼지 논리형의 결정을 하는 데에 시스템 상태 게이지를 사용함으로써 본 발명의 실시예는 안정성을 해치지 않고 시스템 속도 및 적응을 최적화한다.
일반적으로, 본 발명의 실시예는 원단 사용자만이 이야기하고 근단 신호는 비교적 잡음이 없는 상황에 비교적 큰 갱신 이득을 적용한다. 그러나, 근단 신호 토크, 더블 토크 및 높은 근단 잡음 상황에서는 적응 필터가 불안정하게 되거나 근단 음성 및 잡음 신호에 왜곡이 발생하는 것을 방지하기 위하여 더 보존적인 방식이 이용된다. 어느 경우에나, 갱신 이득은 적응 필터가 일반적인 정상 에코 환경에 적합하도록 수렴될 때 감소되어 이미 적당히 적응된 필터의 잘못된 교란을 최소화한다. 비수렴 기간 동안에 높은 갱신 이득 또는 낮은 갱신 이득을 적용할 것인지에 대한 결정은 일부는 시스템 상태 게이지에, 일부는 각종 시스템 신호에 존재하는 에너지의 측정치에 기초한다.
예시적인 실시예에서는 공지의 정규화된 최소 평균 제곱(NLMS) 방식의 수정된 형태를 이용하여 비수렴된 원단 싱글 토크 상황중에 비교적 높은 갱신 이득을 적용한다. 다른 비수렴 상황에서, 갱신 이득은 시스템 상태 게이지의 정규화 버젼에 기초하여 더 보수적으로 조정된다. 예시적인 실시예는 시스템 불안정이 발생하는 것에 개의치 않고 비교적 큰 갱신 이득을 동적으로 제공함으로써 시스템 조건 및 환경의 큰 변화시에 에코를 성공적으로 제거할 수 있도록 빠르고 강건하게 적응한다.
제1 실시예에서, 에코 유발 신호로부터 발생하는 입력 신호의 에코 성분을 추정하고 입력 신호로부터 에코 성분 추정치를 감하여 에코가 제거된 출력 신호를 제공하는 에코 소거 장치는 에코 유발 신호를 필터링하여 에코 성분 추정치를 제공하기 위한 적응 필터를 포함한다. 적응 필터의 적응 필터 전달 함수는 에코 유발 신호 및 에코 제거 출력 신호에 따라 적응한다. 에코 소거 장치는 또한 적응 필터에 결합되어 적응 필터 전달 함수의 변화에 대응하는 갱신치를 저장하기 위한 저장 장치 및 저장 장치에 결합되어 상태 표시자를 계산하기 위한 프로세서를 포함한다. 상태 표시자는 제1 값 및 제2 값의 함수로서 계산되며, 제1 값은 갱신치의 제1 파티션의 함수이고, 제2 값은 갱신치의 제2 파티션의 함수이다.
제2 실시예에서, 에코 소거 장치는 에코 유발 신호를 필터링하는 적응 필터 및 갱신치를 저장하기 위한 저장 장치를 포함하는데, 갱신치는 에코 유발 신호 및 에코 소거 장치의 에코 제거 출력 신호에 따라 조정되며, 적응 필터의 적응 필터 전달 함수는 갱신치에 따라 조정된다.
제3 실시예에서 에코 소거 장치는 에코 유발 신호를 필터링하여 에코 성분 추정치를 제공하기 위한 디지털 필터, 및 디지털 필터에 결합되어 복수의 프로파일 계수를 저장하기 위한 저장 장치를 포함한다. 예시적인 장치에서, 디지털 필터의 필터 계수 각각의 효과는 프로파일 계수중 대응하는 계수에 따라 조정된다. 또한, 프로파일 계수는 제1 프로파일 계수를 제1 값으로 설정하고 나머지 프로파일 계수를 제1 값의 2진 표현을 시프트시킴으로써 도출되는 값으로 설정함으로써 초기화된다.
제4 실시예에서, 에코 소거 장치는 에코 유발 신호를 필터링하여 에코 성분 추정치를 제공하기 위한 적응 필터를 포함하는데, 적응 필터의 적응 필터 전달 함수는 에코 유발 신호, 에코 제거 출력 신호 및 가변 갱신 이득에 따라 적응된다. 예시적인 장치는 또한 입력 신호의 측정 에너지 레벨 및 에코 제거 출력 신호의 측정 에너지 레벨의 함수를 계산하고 계산된 함수에 따라 가변 갱신 이득을 설정하기 위한 프로세서를 포함한다.
본 발명의 상기 및 다른 특징은 첨부 도면에 도시된 실시예를 참조하여 상세히 설명된다. 당해 분야의 전문가는 설명되는 실시예들이 설명 및 이해의 목적으로 제공되는 것이며 다양한 등가적인 실시예들이 그 안에 고려되어 있다는 점을 이해할 것이다.
도 1은 예컨대 본 발명의 가르침을 실현하는 데 사용될 수 있는 에코 억제 시스템의 하이 레벨 블록도.
도 2는 정보 신호의 에코 성분을 제거하기 위하여 적응 필터를 사용하는 종래의 최소 평균 제곱 에코 소거 장치를 나타내는 도면.
도 3은 이중 적응 필터를 사용하는 공지된 에코 제거기를 나타내는 도면.
도 4는 본 발명의 가르침에 따른 에코 소거 장치의 제1 실시예를 나타내는 도면.
도 5는 본 발명의 가르침에 따른 에코 소거 장치의 제2 실시예를 나타내는 도면.
일반적으로, 본 발명은 통신 링크에서 에코를 제거하기 위한 예시적인 방법 및 시스템을 가르친다. 예컨대, 본 발명의 가르침은 자동차의 운전자가 다른 자동차 사용자 또는 지상 통신선 사용자와 이야기하기 위하여 핸즈 프리 이동 전화를 사용하는 경우에 적용될 수 있다. 이롭게도, 본 발명의 가르침은 음향식 에코 제거기(즉, 마이크로폰과 이에 가까이 위치한 확성기간의 피드백에 의해 발생하는 에코를 억제하도록 설계된 에코 제거기), 및 통신망식 에코 제거기(즉, 사용자들간의 실제 링크에 의해 발생하는 에코를 억제하도록 설계된 에코 제거기) 모두에 적용될 수 있다. 당업자는 본 발명에 포함된 가르침의 일부는 특정 에코 제거기에 더 직접적으로 적용할 수 있으며, 다른 가르침은 임의 방식의 제거기에 동일하게 적용할 수 있다는 것을 알 것이다. 당업자는 또한 실시예들이 설명을 위해 이동 전화 시스템에 대해 설명되지만 본 발명의 가르침은 모든 방식의 통신 링크에 쉽게 적용할 수 있다는 것을 알 것이다.
차량에 장착된 핸즈 프리 액세사리에 있어서, 근단 마이크로폰은 대개 근단 사용자의 입으로부터 약 12인치 가량 떨어진다. 사용자의 음성을 취할 수 있을 만큼 충분히 민감한 마이크로폰은 또한 확성기로부터의 소리 및 차안의 모든 잡음을 쉽게 취할 수 있을 만큼 충분히 민감하다. 음향 에코 억제가 없는 경우, 원단 사용자는 확성기에서 방송된 후에 차안에 반사되어 근단 마이크로폰으로 되돌아 오는 그 자신의 음성을 듣는다. 전술한 바와 같이, 억제되지 않은 음향 에코는 원단 사용자를 성가시게 하며 대화를 할 수 없게 만든다.
따라서, 이상적인 음향 에코 억제기는 원단 사용자가 그 자신의 음성의 에코를 듣지 못하게 하는 동시에 자연적인 전이중 대화를 가능하게 한다. 그러나, 자동차 환경은 음향 에코 제거기가 상기 목표를 달성하는 데 있어서 특히 걸림돌이 되기 때문에, 종래의 방법은 이상적이 아닌 것이 확인되었다. 자동차 환경은 많은 이유로 특히 어렵다. 먼저, 사람들은 종종 들으면서 대답하기 때문에 더블 토크 상황이 빈번하게 발생한다. 또한, 디지털 시스템과 관련된 통상의 신호 처리 지연은 에코 억제가 매우 높을 것을 요구한다(예컨대 싱글 토크에 대해서는 45 dB이고 더블 토크에 대해서는 25 dB). 더우기, 자동차내에서의 에코는 대개 45 dB 감쇠되는 데에 약 50 ms가 걸리며, 설비는 확성기에 대한 마이크로폰의 위치가 변한다.
핸즈 프리 자동차 전화의 음향 에코 억제가 특히 어려운 추가적인 이유로는 자동차 사용자의 음성에 대한 신호 대 잡음비가 0 dB 정도로 낮을 수 있다는 점, 확성기에서 마이크로폰으로의 에코가 마이크로폰으로의 자동차 사용자의 음성보다 더 클 수 있다는 점, 원단 신호가 핸즈 프리 대 핸즈 프리 호출의 경우 또는 사용자들간의 무선 주파수 수신이 저품질인 경우에 매우 잡음이 많을 수 있다는 점, 확성기와 마이크로폰간의 에코 경로가 자동차 사용자가 움직일 때 일정하게 변하며, 이러한 변화는 자동차 사용자의 머리가 통상적으로 확성기와 마이크로폰 사이에서 주요 장애물 또는 주요 반사면이 된다는 점, 확성기 왜곡으로 인하여 에코 경로가 비선형이 된다는 점, 그리고 에코 억제기를 학습시키는 데 사용되는 음성 신호가 일시적인 에코-경로-위상 모호성을 발생시키는 음성 안에 주기적인 성분을 갖는다는 점 등이 있다.
이러한 장애에도 불구하고, 본 발명은 음질을 크게 저하시키지 않고 큰 에코 억제를 제공하는 음향 에코 제거기를 구성하는 방법 및 장치를 가르친다. 이러한 음향 에코 제거기의 성능 목표는 모든 조건하에서 하울링을 방지하고, 사용자의 대화의 시작이 싱글 토크중에 예컨대 필요 없이 연속된 에코 억제로 인하여 차단되는 것을 방지하며, 디지털 및 아날로그 호출에 대해 싱글 토크중의 45 dB 및 더블 토크중의 25 dB의 IS-55A 에코 억제 권고안을 만족시키고, 대화중에 음성 피드백의 자연스런 표현을 허용하고 다운 링크 신호상에서 잡음 버스트중에 자동차 사용자가 차단되는 것을 방지하기 위하여 이중 토크중에 자동차 사용자의 음성의 왜곡을 최소화하며, 에코 경로의 큰 변화 후에 IS-55A 표준을 따르지만 더블 토크중에 자동차 사용자 음성 신호상에 더 많은 왜곡을, 그리고 원단 싱글 토크중에 자동차 잡음상에 더 많은 잡음을 허용하고, 마이크로폰으로의 자동차 사용자의 음성만큼 큰 진폭을 가진 에코를 억제하며, 예컨대 차의 좌석을 움직이거나 바이저를 움직이는 자동차 사용자로부터 복원되도록 가능한 한 신속하게 에코 제거기를 적응시키고, 사용자 이동으로 인한 에코 경로 변화를 가능한 한 빠르게 추적하며, 조용한 상태에서 에코 제거기를 매우 빠르게 적응시켜 최고의 잡음 레벨에서도 적응을 완전히 중단하지 않고 잡음이 증가할 때 적응을 감속시키고, 원단 신호 진폭의 변화를 보상하도록 적응 이득을 정규화하며, 더블 토크중에 적응을 동결하고 더블 토크간의 짧은 기간중에 적응을 다시 시작하며, DTMF 톤, 링백(ring back), 또는 잘못된 교차 상관 피크를 발생시키는 원단 대화내의 긴 음성과 같은 주기적인 원단 신호중에 적응을 동결하고, 다운 링크 대화 또는 잡음중에 업 링크를 통해 전송되는 자동차 잡음의 왜곡을 최소화하며, 확성기 경로에서의 스위치된 감쇠 및 에코 억제를 위해서만 생성된 다른 왜곡을 방지하고, 원단이 조용하고 자동차가 잡음이 많거나 조용한 때 고성능을 제공하며, 핸즈 프리 대 핸즈 프리 상황을 포함하여 원단이 잡음이 많은 때 양호한 성능을 제공하고, 에코 억제를 실현하는 데 필요한 RAM, MIPS 및 ROM을 최소화하며, TDMA 전화에서의 용이한 구현을 제공하며, 망 에코의 감도를 최소화하고 한 사용자의 대화 중단이 다른 사용자가 끼어 들 수 있는 충분한 시간동안 들리는 자연스런 대화를 허용하기 위하여 신호 지연을 최소화하는 것이다.
음향식 에코 억제 외에, 통신망식 에코 억제는 또한 예컨대 자동차 사용자가 아날로그(예컨대 AMPS) 호출의 경우에 확성기를 통해 반향된 그 자신의 음성을 듣지 못하도록 하기 위해 이동 전화에 바람직하다. 즉, 디지털 시스템(예컨대 DAMPS 및 GSM)과 달리, 많은 아날로그 시스템은 통상 공중 교환 전화망(PSTN)의 중앙국에 위치한 4 대 2 유선 하이브리드의 임피던스 오정합에 의해 발생하는 에코를 제거하지 못한다. 또한, 핸즈 프리 액세사리 시스템 코드는 추가적인 4-10 msec의 지연을 유발할 수 있으며, 디지털 전화는 추가적인 4 msec의 라운드 트립 지연을 유발할 수 있다. 따라서, 망 에코는 특히 차량 핸즈 프리 액세사리에 민감하다.
이동 전화의 경우, 통신망식 에코 억제는 음향식 에코 억제보다 다소 적게 문제가 된다. 예컨대, 망 에코 경로는 에코를 포함하지 않으며 사용자가 한 셀 내에서 이동할 때 일정하게 유지된다. 또한, 에코 경로는 대개 16 msec 이하이며, 더 짧은 라운드 트립 지연 때문에 약 10-20 dB의 억제만이 필요하다. 따라서, 통상적으로 엄격하게 선형인 제거 스킴이 잘 맞는다. 더우기, 망 에코는 통상적으로 -6 dB보다 클 수 없으며, 에코가 억제되어야 하는 지상 통신선 신호는 대개 조용한 배경을 갖는다(그러나, 잡음 배경도 처리되어야 한다). 그럼에도 불구하고, 이동 전화의 경우 통신망식 에코 제거는 문제가 있다. 예컨대,에코는 모든 호출에 대해 상이하기 때문에 적응 필터 계수는 재사용되어서는 안되며, 적응은 극히 빨라야 한다. 또한, 망 에코 제거기는 아날로그 셀로의 셀룰러 핸드오프 후에 빠르게 재적응하여야 하며, 디지털 셀로의 핸드오프 후에 디스에이블되어야 한다. 이롭게도, 본 발명의 가르침은 이러한 망 에코 제거기를 구성하는 데 사용될 수 있다.
도 1은 예컨대 본 발명의 가르침을 실현하는 데 사용될 수 있는 에코 억제 시스템(100)의 하이 레벨 블록도이다. 도시된 바와 같이, 에코 억제 시스템(100)은 마이크로폰(110), 확성기(120), 에코 제거기(130), 잔여 에코 억제기(160), 송수신기(170) 및 안테나(180)를 포함한다. 에코 제거기(130)는 합산 장치(140) 및 적응 필터(150)를 포함한다. 도 1에서, 마이크로폰(110)의 출력은 합산 장치(140)의 가산 입력에 결합된다. 합산 장치(140)의 출력은 적응 필터(150)에 접속되어 에코 제거기(130)의 제1 출력으로서 기능한다. 에코 제거기(130)의 제1 및 제2 출력은 각각 잔여 에코 억제기(160)의 제1 및 제2 입력에 결합된다. 잔여 에코 억제기의 출력은 송수신기(170)의 입력에 결합되고, 송수신기(170)는 안테나(180)에 양방향으로 결합된다. 송수신기(170)의 출력은 잔여 에코 억제기(160)의 제3 입력, 에코 제거기(130)의 입력 및 확성기(120)의 입력에 결합된다. 적응 필터(150)의 출력은 합산 장치(140)의 감산 입력에 결합된다.
동작에 있어서, 마이크로폰(110)의 출력에서 발생하는 근단 신호 s(n)는 에코 제거기(130) 및 잔여 에코 억제기(160)를 이용하여 처리되어 에코가 제거된 근단 신호 y(n)가 생성되며, 이 신호는 송수신기(170) 및 안테나(180)를 통해 원단 사용자에게 전송된다. 안테나(180)를 통해 송수신기(170)에서 수신된 원단 신호 x(n)은 시스템의 근단 사용자에게 제공되기 위하여 확성기(120)로 입력된다. 도 1의 구성이 이동 전화에 사용되기 적합하지만(즉, 신호가 송수신기(170) 및 안테나(180)를 통해 원단 사용자에게 송수신됨), 도 1의 실시예의 에코 제거 특성은 임의의 양방향 통신 링크에 동일하게 적용될 수 있다는 것을 알 것이다. 또한, 전술한 바와 같이, 본 실시예는 음향식 에코 제거기를 나타내고 있지만, 본 실시예의 에코 제거 특성은 통신망식 에코 제거기에도 적용될 수 있다.
더욱이, 도 1의 시스템은 시스템이 사용되는 특수 응용에 따라 본질상 아날로그 또는 디지털일 수 있다는 것을 알 것이다. 따라서, 도 1의 각종 신호(예컨대 s(n), y(n) 및 x(n))는 실제로 시간의 연속 함수(즉, s(t), y(t) 및 x(t))이거나 이산 시간 샘들(즉, s(nT), y(nT) 및 x(nT), 여기서 T는 샘플 주기)의 열일 수 있다. 그러나, 간단히 하기 위하여, 현재의 논의에 있어서 모든 신호는 디지털인 것으로 가정하며, 따라서 신호는 샘플 수의 함수로서만(즉, s(n), y(n) 및 x(n)) 간결하게 쓰여진다. 명백히 도시되지는 않았지만, 아날로그/디지털 변환기 및 디지털/아날로그 변환기가 전술한 회로 내에 적당히(예컨대 도 1에서 마이크로폰(110)의 출력에, 그리고 확성기(120)의 입력에) 배치된 것으로 가정한다. 디지털 신호에 대한 가정은 본 명세서에 설명된 디지털 실시예에 대한 아날로그 등가가 쉽게 도출될 수 있으므로 일반성을 잃지 않을 것이다.
도 1에 도시된 바와 같이, 근단 신호 s(n)는 근단 잡음 성분 w(n), 근단 음성 성분 v(n) 및 근단 에코 성분 u(n)을 포함하여 여러 성분을 포함할 수 있다. 잡음 성분 w(n)은 예컨대 자동차 이동 전화에 에코 억제 시스템(100)이 설치된 곳에서의 도로 및 교통 소음으로 인하여 발생할 수 있다. 에코 성분 u(n)은 확성기(120)로부터의 음향 출력이 마이크로폰(110)으로 다시 반사될 때에 발생한다. 공지된 바와 같이, 에코 성분 u(n)의 진폭 및 형상은 확성기(120)와 마이크로폰(110) 사이에 존재하는 유효 시스템 전달 함수 또는 음향 에코 경로 H(z)에 따라 변한다. 시스템 전달 함수 H(z)는 근단 환경 및 확성기(120)와 마이크로폰(110)의 상대적 물리 위치에 따라 변한다. 따라서, 전달 함수 H(z)는 일반적으로 알려지지 않으며, 근단 환경의 변화에 따라(예컨대 근단 사용자가 그의 좌석의 위치를 변화시킬 때) 변하게 된다.
일반적으로, 에코 제거기(130)는 적응 필터(150)를 사용하여 원단 신호 x(n)를 처리하여 근단 신호 s(n)의 에코 성분 u(n)의 추정치 을 생성한다. 적응 필터(150)의 전달 함수는 시스템 전달 함수 H(z)와 근사하게 설정되며, 추정치 는 합산 장치(140)를 사용하여 근단 신호 s(n)로부터 감산되어 에코 제거기 출력 신호 e(n)가 생성된다. 원단 사용자만이 말하고 있고 근단에 잡음이 없는 것으로 가정하면(즉, v(n) 및 w(n)은 제로), 출력 신호 e(n)는 근단 에코 신호 u(n)과 에코 신호 추정치 사이의 차이를 나타낸다. 따라서, 에코 제거기 출력 신호 e(n)는 종종 에러 신호라 한다. 시스템 전달 함수 H(z)는 시간에 따라 변하기 때문에, 에러 신호 e(n)는 전술한 바와 같이 진정한 시스템 전달 함수 H(z)를 추적하도록 적응 필터(150)의 전달 함수를 갱신하는 데 사용된다.
시스템(100)이 설치되거나 전력을 공급받을 때, 또는 시스템 전달 함수 H(z)가 갑자기 변할 때, 적응 필터(150)의 전달 함수가 진정한 전달 함수 H(z)의 비교적 나쁜 근사치가 되는 유한 기간이 존재한다. 그러나, 필터(150)는 에러 신호 e(n)에 응답하여 적응하므로, 적응 필터(150)의 전달 함수는 진정한 전달 함수 H(z)를 향해 수렴될 것이다. 따라서, 에코 제거기는 적응 필터(150)의 전달 함수가 진정한 시스템 전달 함수 H(z)의 양호한 근사치인지의 여부에 따라 수렴되거나 수렴되지 않는다. 에코 제거기(130)가 수렴될 때, 에러 신호 e(n)는 원하는 바의 근단 신호 s(n)의 에코 제거 버젼을 나타낸다. 그러나, 에코 제거기(130)가 수렴되지 않을 때, 근단 신호 s(n)는 허용할 수 없이 큰 에코 성분을 포함할 것이다. 또한, 예컨대 확성기에 의해 발생되는 근단 신호 s(n)에서의 비선형성 또는 다른 비선형 시스템 성분(도시되지 않음)은 물론 지속적인 사용자의 이동은 에코 제거기가 완전히 수렴하여 에코를 12-20 dB 이상으로 많이 억제하는 것을 방해할 수 있다. 따라서, 잔여 에코 억제의 몇몇 형태가 예컨대 45 dB의 개량된 레벨을 얻기 위하여 필요할 수 있다.
도 1에 도시된 바와 같이, 잔여 에코 억제기(160)는 추가 에코 감쇠를 위하여 에코 소거 장치(130)의 출력에 배치될 수 있다. 종래의 잔여 에코 제거기는 예컨대 본 명세서에 참조된 미국 특허 제5,475,731호에 설명되어 있다. 또한, 개량된 잔여 에코 억제기가 미국 특허 출원 제08/775,797호에 설명되어 있는데, 본원은 이 출원의 일부 연속 출원이다.
일반적으로, 잔여 에코 억제기(160)는 조정 가능한 클립핑 임계치를 가진 센터 클립퍼를 사용하여 에러 신호 e(n)를 처리함으로써 에러 신호 e(n) 내의 에코 성분을 감쇠시킨다. 잔여 에코 억제의 레벨은 에러 신호 e(n)에 존재할 수 있는 임의의 근단 음성 또는 잡음 성분에 도입된 왜곡의 레벨과 같이 클립핑 임계치의 크기에 비례하여 변한다. 도 1에 개념적으로(즉, 점선에 의해) 도시된 바와 같이, 잔여 에코 억제기(160)의 클립핑 임계치는 본 실시예에서는 에코 제거기(130)에 의해 도달된 상대적인 제거 레벨의 측정치에 기초하는 제어 신호 c(n)에 따라 조정된다. 즉, 에코 제거기(130)가 수렴하고 에코 제거기(130)에 의해 제공된 에코 제거의 유효 레벨이 증가할 때, 잔여 에코 억제기의 클립핑 임계치는 감소하고, 그 반대의 경우도 성립한다. 이러한 방식으로, 잔여 에코 억제기(160)는 필요한 정도로만 활성화되어, 잔여 에코 억제기(160)에 의해 도입되는 임의의 왜곡이 최소화된다.
본 출원은 에코 제거기(130)의 예시적인 실시예들에 관한 것이기 때문에, 잔여 에코 억제기(160)의 동작에 대한 상세한 설명은 생략된다. 에코 제거기(130)에 의해 도달되는 압도적인 제거 레벨의 적당한 측정치가 계산될 수 있다면, 이러한 잔여 에코 억제기가 본 발명의 실시예와 관련하여 유효하게 사용될 수 있다는 것으로 본 발명의 목적을 실현하는 데 충분하다. 이롭게도, 본 발명은 이러한 측정치를 계산하고 이용하는 예시적인 방법을 제공한다.
아래의 상세한 설명이 부분적으로는 미국 특허 출원 제08/775,797호에 설명된 것과 같이 잔여 에코 억제기에 제어 신호 c(n)를 제공하는 것에 관한 것이지만, 이러한 제어 신호 c(n)는 임의의 형태의 잔여 에코 제거기와 함께 사용하기에 적합할 수 있다는 것을 알 것이다. 또한, 잔여 에코 억제기(160)의 사용은 선택적이며, 아래에 설명되는 에코 제거기(130)의 예시적인 실시예들은 단독으로도 매우 유용하다. 그러나, 예시적인 실시예를 상세히 설명하기 전에, 본 발명의 특징 및 장점을 설명하기 위하여 2 가지의 공지된 에코 제거 방법이 설명된다.
도 2는 적응 에코 제거 필터의 계수를 갱신하기 위하여 최소 평균 제곱(LMS) 알고리즘을 사용하는 종래의 에코 제거 시스템(200)의 블록도이다. 도시된 바와 같이, 종래의 시스템(200)은 마이크로폰(110), 확성기(120) 및 에코 제거기(230)를 포함한다. 에코 제거기(230)는 제1, 제2 및 제3 합산 장치(205, 215, 255), 제1, 제2 및 제3 곱셈기(245, 235, 225), 계수 레지스터(210) 및 샘플 큐(220)를 포함한다. 편의를 위하여 도 2의 시스템(200)의 동작을 이해하는 데 불필요한 요소(예컨대 송수신기, 안테나, 선택적인 잔여 에코 억제기 등)는 도시되지 않는다.
도 2에서, 가는 선은 직렬 또는 스칼라 접속을 나타내는데 사용되고, 굵은 선은 병렬, 또는 벡터 접속을 나타내는데 사용된다.
도시된 바와 같이, 마이크로폰(110)의 출력 s(n)은 제1 합산 장치(205)의 부가 입력에 결합된다. 제1 합산 장치(205)의 출력은 제1 다중화기(245)의 제1 입력부에 결합되고 에코 제거기(230)의 출력 e(n)으로서 기능한다. 스칼라 갱신 이득 인자 μFIXED는 제1 다중화기(245)의 제2 입력에 결합되고, 제1 다중화기(245)의 출력은 제2 다중화기(235)의 제1 입력에 결합된다. 제2 다중화기(235)의 병렬 출력은 제3 합산 장치(255)의 제1 입력에 결합되고, 제3 합산 장치(255)의 병렬 출력은 계수 레지스터(210)에 입력된다. 계수 레지스터(210)의 병렬 출력은 제3 합산 장치(255)의 제2 입력 및 제3 다중화기(225)의 제1 입력에 결합된다. 제3 다중화기(225)의 병렬 출력은 제2 합산 장치(215)의 입력에 결합되고, 제2 합산 장치(215)의 출력 은 제1 합산 장치(205)의 감산 입력에 결합된다. 원단 신호 x(n)는 확성기(120)의 입력 및 샘플 큐(220)에 결합된다. 샘플 큐(220)의 병렬 출력은 제2 다중화기(235)의 제2 입력 및 제3 다중화기(225)의 제2 입력에 결합된다.
동작시, 원단 신호 x(n)...x(n-m+1) 중 가장 최근의 m 샘플은 샘플 큐(220)에 저장되고, 일반적인 LMS 필터 계수 h0(n)...hm-1(n) 세트는 계수 레지스터(210)에 저장된다. 에코 성분 μ(n)의 추정치 는 이 때 계수 레지스터(210)의 내용들의 콘볼루션으로서 계산되고 샘플 큐(220)에 저장된 원단 신호는 다음 수학식 1과 같다.
부수적으로, LMS 필터 계수 h0(n)...hm-1(n)은 고정된 갱신 이득 μFIXED, 에러 신호 e(n), 및 샘플 큐(220)의 내용을 이용하여 갱신된다. 즉,
hi(n+1) = hi(n) + μFIXEDe(n) x (n-1), i=0...m-1
와 같다. 여기서, 에러 신호 e(n)은 e(n)=s(n)-으로서 제1 합산 장치(205)를 사용하여 계산된다. 따라서, LMS 필터 계수 h0(n)...hm-1(n)은 추정기 이 개선되고 에러 신호 e(n)이 감소함에 따라 실제 시스템 전달 함수 H(z)의 계수로 수렴한다. 계수 h0(n)...hm-1(n)가 수렴하는 속도는 고정된 갱신 이득 μFIXED의 크기에 의존할 것이다. 즉, 고정된 갱신 이득 μFIXED이 크면 클수록 필터는 보다 빠르게 수렴한다.
그러나, 고정된 갱신 이득 μFIXED에 따라, 시스템 설계자는 더블 토크와 근단 노이즈 상황에서의 거칠기에 대한 고속 수렴과 상충관계에 있으며, 여기서 거칠기는 근단 사용자의 목소리의 낮은 왜곡 및 에코-추정 필터 계수의 최소의 혼란을 포함한다. 고정된 갱신 이득 μFIXED는 적응 필터가 에러 신호 e(n)의 비에코 성분을 너무 빠르게 추적하는 염려없이 너무 높게 설정될 수는 없다. 장점으로, 본 발명은 에코-소거 필터의 갱신 이득이 일반적인 시스템 환경의 변화 및 필터의 수렴도의 변화에 적응된다. 일반적으로, 본 발명의 예시적인 실시예는 비수렴된 최종의 싱글 토크 상황에서의 높은 갱신 이득 및 다른 경우에서의 낮은 갱신 이득을 이용한다. 이와 같이, 예시적인 실시예는 다른 것들 중에서 적응 필터 수렴의 레벨을 가리키는 에코 소거 시스템의 일반적인 상태를 측정한다. 그러나, 시스템 상태를 측정하는 예시적인 방법을 기술하기 전에, 시스템 수렴을 측정하는 공지된 방법을 고려하는 것이 유익하다.
도 3은 시스템 수렴을 측정하기 위한 메카니즘을 제공하는 듀얼 적응 필터를 이용한 에코-소거 시스템(300)의 블록도이다. 이러한 시스템은, 본 명세서에 참조된 미국 특허 출원 제08/578,944호에 기술되어 있다. 인용된 출원에서는, 시스템 수렴의 근사화가 잔여 에코 억제기의 클리핑 임계치를 제어하고 시스템의 적응률을 제어하는데 사용된다. 도 3에 도시된 바와 같이, 듀얼-필터 에코 소거 시스템(300)은 마이크로폰(110), 확성기(120), 및 에코 제거기(330)를 포함한다. 에코 제거기(330)는 제1 및 제2 합산 장치(305, 315), 및 제1 및 제2 적응 필터(310, 320)를 포함한다. 다시 편의상, 도 3을 이해하는데 있어 불필요한 구성요소들은 도시되어 있지 않고, 굵은 선은 병렬 접속을 나타내는데 사용된다.
도 3에서, 마이크로폰(110)의 출력 s(n)은 제1 합산 장치(305)의 부가 입력에 결합되고, 제1 합산 장치(305)의 출력은 제2 합산 장치(315)의 부가 입력에 결합된다. 제2 합산 장치(315)의 출력은 제2 적응 필터(320)에 결합되고 에코 제거기(330)의 출력 e(n)으로서 기능한다. 제2 적응 필터(320)의 제1 출력 은 제2 합산 장치(315)의 감산 입력에 결합되고, 제2 적응 필터(320)의 제2 (병렬) 출력은 제1 적응 필터(310)의 제1 입력에 결합된다. 제1 적응 필터(310)의 출력 은 제1 합산 장치(305)의 제2 입력에 결합된다. 원단 신호 x(n)은 제2 적응 필터(320)의 제2 입력, 제1 적응 필터(310)의 입력, 및 확성기(120)의 입력에 결합된다.
동작시, LMS 계수 갱신은 제2 적응 필터(320)의 갱신 메모리(도시되어 있지 않음)내의 l 샘플의 블록상에 축적된다. 갱신 메모리의 내용은 제2 필터(320)의 필터 계수로서 사용되고, 도 1의 계수 레지스터(210)내에 저장되어 있는 계수에 대하여 상술된 바와 같이 갱신된다. 제2 필터(320)의 계수가 (l 샘플의 블록상에) 축적되는 동안, 제1 필터(310)의 계수는 고정된다. 도 3에 도시된 바와 같이, 제2 필터는, 갱신물들이 바로 유효하도록 에코 추정에 직접 기여한다. 즉, 제1 필터(310)의 출력 및 제2 필터(320)의 출력 은 모두 근단 신호 s(n)에서 감산되어 에러 신호 e(n)을 생성한다. 따라서, 개념상으로는, 제1 및 제2 필터(310, 320)는 세로로 일렬이 되어 단일, 복합 에코 추정치 + 를 생성하는 복합 적응 필터로서 기능한다. 그러나, 제2 필터(320)의 갱신 계수가 l 샘플의 블록상에 시스템 활동의 표시를 제공하기 때문에, 이하 설명될 시스템 수렴의 레벨 표시를 제공하는데 사용될 수 있다.
l 샘플의 각 블록의 일단에서, 제2 필터(320)의 갱신 계수는 제1 필터(310)의 필터 계수에 가산되며, 제2 필터(320)의 갱신 계수는 0으로 리셋되고, 시스템 수렴의 측정치가 계산된다. 인용된 특허 출원에서는, 수렴 측정치가 블록의 일단에서의 갱신 계수에 존재하는 에너지 대 블록상에서 원단 신호 x(n)에 측정된 에너지의 비율로서 계산된다. 1에 근접하는 비율은 비교적 낮은 수렴도를 가리키고 0에 가까운 비율은 비교적 높은 수렴도를 가리킨다. 즉, 갱신 계수에서의 고레벨 에너지는, 제2 필터(및 복합 필터)가 l 샘플의 블록상에서 적극적으로 적응하거나, 또는 변화하므로, 상대적으로 시스템은 최소한 수렴되지 않는다는 것을 나타낸다. 그와는 반대로, 갱신 계수에서의 저레벨 에너지는, 상기 필터가 l 샘플의 블록상에서 소극적으로 변화하고 상대적으로 상기 필터는 최소한 수렴된다는 것을 나타낸다. 계수에서의 평균 에너지는 원단 신호 크기의 변화에 대한 수렴 측정치를 정규화하기 위해 원단 신호의 측정 에너지로 나누어지고, 그 결과로 나타나는 수렴 측정은 잔여 에코 억제기를 제어하는데 사용되고 시스템의 적응률을 제어하는데 사용된다.
상술된 수렴 측정, 또는 게이지가 이론적으로는 시스템 수렴의 일부 표시를 제공하지만, 현재 경험적인 평가로는, 애매모호한 말이나 매우 근단의 노이즈가 시스템 수렴의 레벨과는 무관하게 높은 갱신 계수 에너지를 생성할 것이기 때문에, 이러한 수렴 게이지는 조용한 싱글 토크 상황에만 유용한 것으로 나타났다. 장점으로, 본 발명은, 계수 갱신 벡터의 피크 및 형태가 시스템 상태의 표시기에 보다 유용하다는 것을 개시하고 있다.
보다 상세하게는, 본 발명은, 매우 유용한 시스템 상태의 표시기는 피크 갱신 계수 크기의 측정치 대 기준선 갱신 계수 크기의 측정치의 비율에 기초하여 계산될 수 있다. 수렴된 시스템의 갱신 계수가 샘플의 블록상에서 비교적 거의 변하지 않기 때문에, 이러한 수렴된 시스템은 한정된 피크-기준선 크기 비율를 가질 것이다. 그와는 반대로, 크게 비수렴된 시스템은, 피크가 기존의 우세한 에코가 있었고 새롭고 일반적으로 우세한 에코가 존재하는 탭(즉, 계수)에서의 갱신 벡터내에 발생함에 따라, 비교적 높은 피크-기준선 크기 비율을 가질 것이다. 경험적인 연구에 따르면, l=1024 샘플의 갱신 블록 길이인 경우, 예시적인 피크-기준선 크기 비율이 수렴된 시스템인 경우보다 6 만큼 그리고 비수렴된 시스템인 경우보다 32 만큼 높을 수 있다. 따라서, 피크-기준선 비율은, 그 중에서도 시스템 수렴의 품질 표시기이다.
게다가, 피크-기준선 비율은 수렴 대 비수렴을 능가하여 전체 시스템 상태의 표시기로서 매우 유용하게 되는 양호한 특성을 나타낸다. 예를 들면, 이러한 연구는, 근단 노이즈가 피크-기준선을 적당히 감소시키고, 근단 스피치가 비율을 현저하게 감소시킨다는 것을 보여준다. 부수적으로, 최종 스피치내의 DTMF 톤, 또는 모음과 같은 주기적인 신호는 피크-기준선 비율을 크게 감소시킨다. 이하 설명될 바와 같이, 피크-기준선 비율의 이러한 특징들은 적응 필터에 대한 갱신 이득의 조정 및 잔여 억제기를 동적으로 제어하는 것에 대한 지적인 결정하도록 하는데 사용될 수 있다. 유효 피크-기준선 비율을 계산하는 예시적인 방법에 기초한 보다 정교한 상태 게이지 이외에도, 유효 피크-기준선 비율을 계산하는 예시적인 방법이 또한 이하 상세히 기술될 것이다.
본 발명의 예시적인 실시예의 중요한 부수적인 장점은 에코-소거 필터의 유효 계수가 갱신되는 방식에 관련이 있다. 도 3에 대하여 기술된 시스템은, 에코 추정치 계산시(이에 따라 역시 나머지 블록의 갱신 계수), 일반적인 계수(즉, 제1 필터(310)의 스태틱 계수) 이외에도, 진행중 갱신 벡터(즉, 제2 필터(320)의 갱신 계수)를 사용한다는 것을 알아야 한다. 이는, 예를 들면, 시스템이 수렴하는 비율을 최대화하기 위해 도 3의 시스템에서 실행된다.
그러나, 본 발명은, 필터 갱신 이득을 변화시키는데 있어서 피크-기준선을 전략적으로 이용하여, 갱신 계수가 모든 샘플이 아닌, 샘플의 블록의 일단에 인가되면 보다 고속의 적응 및 보다 강력한 에코 제거기가 구성될 수 있다는 것을 개시하고 있다. 이하 상세히 설명될 바와 같이, 본 발명의 개시에 따라 구성된 시스템이 갑작스럽게 수렴 상태에서 비수렴 상태로 변화하면, 블록의 일단에서 비교적 높은 갱신 이득으로 갱신 계수를 인가함으로써, 급속의 수렴이 실현될 수 있다. 부수적으로, 갱신 계수가 블록의 일단에서 인가되기 때문에, 일반적으로 보다 높은 갱신 이득이 시스템의 불안정성없이 사용될 수 있다. 즉, 블록상에서 원단 신호의 에너지가 블록의 일단에서 이미 공지되어 있기 때문에, 갱신 이득은, 원단 신호 레벨이 갑작스럽게 증가하고 (이전 보다 작은 원단 신호 레벨에 기초하여) 일반적인 갱신 이득이 너무 높게 설정되기 때문에 시스템을 불안정하게 하는 걱정없이 원단 신호 에너지를 이용하여 정규화될 수 있다.
따라서, 본 발명은 종래 기술의 시스템을 능가하는 적어도 두개의 중요한 개선사항을 개시한다. 먼저, 본 발명은 단지 수렴이 아닌, 잔여 에코 억제기를 제어하고 적응 필터 갱신 이득을 조정하는데 있어 퍼지-논리 결정을 행하는데 사용될 있는 개선된 시스템 상태의 게이지를 제공한다. 두번째로, 본 발명은, 샘플 단위보다는 블록 단위로 필터 계수를 갱신하는 것은 시스템 속도 및 안정성면에서 중요한 장점을 제공한다는 것을 개시하고 있다. 본 발명의 상기 내용과 그 외의 장점은 도 4 및 도 5의 실시예를 참조하여 이하 상세히 기술됨에 따라 명확해진다.
도 4는 본 발명의 기본적인 개시 중 일부를 도시하는 최신식의 예시적인 에코 소거 시스템(400)의 블록도이다. 도시된 바와 같이, 에코 소거 시스템(400)은 마이크로폰(110), 확성기(120), 및 에코 제거기(430)를 포함한다. 에코 제거기(430)는 제1 내지 제4 합산 장치(405, 475, 425, 435), 제1, 제2, 및 제3 다중화기(465, 415, 410), 필터 계수 레지스터(455), 스케일-오프셋-및-리미트 장치(440), 피크-기준선 장치(495), 및 피크 검파기(460)를 포함한다. 상기와 같이, 도 4의 실시예를 이해하는데 불필요한 구성요소들은 도시되어 있지 않고, 굵은 선은 병렬 접속을 가리키는데 사용된다.
도 4에서, 마이크로폰(110)의 출력 s(n)은 제1 합산 장치(405)의 부수적인입력에 결합된다. 제1 합산 장치(405)의 출력은 제1 다중화기(465)의 제1 입력에 결합되고 에코 제거기(430)에 대한 제1 출력 e(n)으로서 기능한다. 제1 다중화기(465)의 병렬 출력은 제2 합산 장치(475)의 제1 입력에 결합되고, 제2 합산 장치(475)의 출력은 갱신 계수 레지스터(450)에 입력된다.
갱신 계수 레지스터(450)의 병렬 출력은 제2 합산 장치(475)의 제2 입력, 피크-기준선 장치(495), 및 제3 다중화기(410)의 제1 입력에 결합된다. 피크-기준선 장치(495)의 출력 gRATIO는 스케일-오프셋-및-리미트 장치(440)의 입력에 결합되고, 스케일-오프셋-및-리미트 장치(440)의 출력 gSTATUS는 피크 검파기(460)의 입력 및 스케일링 장치(420)의 입력에 결합된다. 피크 검파기(460)의 출력은 에코 제거기(430)에 대한 제2 출력 c(n)으로서 기능하고, 스케일링 장치(420)의 출력 μVAR은 제3 다중화기(410)의 제2 입력에 결합된다.
제3 다중화기(410)의 병렬 출력은 제4 합산 장치(435)의 제1 입력에 결합되고, 제4 합산 장치(435)의 병렬 출력은 1차 계수 레지스터(455)에 결합된다. 1차 계수 레지스터(455)의 병렬 출력은 제4 합산 장치(435)의 제2 입력 및 제2 다중화기(415)의 제1 입력에 결합된다. 제2 다중화기(415)의 병렬 출력은 제3 합산 장치(425)의 입력에 결합되고, 제3 합산 장치(425)의 출력 은 제1 합산 장치(405)의 감산 입력에 결합된다. 원단 신호 x(n)은 확성기(120)의 입력 및 샘플 큐(445)의 직렬 입력에 결합된다.
동작시, 원단 신호 x(n)...x(n-m+1) 중 가장 최근의 m 샘플은 샘플 큐(445)내에 저장되고, 일반적인 LMS 필터 계수 h0(n)...hm-1(n) 세트는 계수 레지스터(455)내에 저장된다. 에러 신호 e(n)의 에코 성분 μ(n)의 추정치 은 샘플의 내용과 계수 레지스터(445, 455)의 콘볼루션으로서 계산된다. 즉,
이다.
LMS 필터 계수 h0(n)...hm-1(n)은 l 샘플의 각 블록상에 고정되어 있다. 그러나, 일단 각 블록의 일단에서, 갱신 레지스터(450)내에 저장되어 있는 갱신 계수 h0'(n)...hm-1'(n) 세트는 가변 갱신 이득 μVAR에 승산되고 계수 레지스터(455)의 내용에 가산된다. 갱신 계수 h0'(n)...hm-1'(n)은 각 블록의 일단에서 0으로 리셋되고, 에러 신호 e(n) 및 샘플 큐(220)의 내용을 이용하여 샘플 단위로 조정된다. 즉,
hi'(n+1)=hi'(n) + e(n) x (n-i), i=0...m-1
이다.
여기서 에러 신호 e(n)은 제1 합산 장치(405)를 이용하여 e(n)=s(n) - 으로서 계산된다. 따라서, LMS 필터 계수 h0'(n)...hm-1'(n)는, 가 개선되고 에러 신호 e(n)이 감소함에 따라 추정기 블록형 방식으로 실제 시스템 전달 함수 H(z)에 수렴한다. 계수 h0(n)...hm-1(n)가 수렴하는 속도는 가변 갱신 이득 μVAR의 크기에 일부 의존할 것이다.
가변 갱신 이득 μVAR 및 제어 신호 c(n)은 피크-기준선 장치(495), 스케일-오프셋-및-리미트 장치(440), 및 스케일링 장치(420)를 사용하여 갱신 레지스터의 내용에 기초하여 각 블록의 일단에서 조정된다. 일반적으로, 스케일-오프셋-및-리미트 장치(440)의 출력 gSTATUS는 상술된 정교한 버젼의 피크-기준선 크기 비율이므로, 그 중에서도 필터 수렴의 상대적인 레벨을 가리키고 가변 갱신 이득 μVAR 및 잔여 억제기 제어 신호 c(n)에 대해 현명한 결정이 행해지도록 하는 메카니즘을 제공하는 시스템 상태를 나타낸다. 피크-기준선 비율을 계산하는데 사용되는 피크-기준선 갱신값을 측정하는 예시적인 방법이 도 5를 참조하여 이하 상세히 설명될 것이다. 도 4의 실시예를 기술하기 위하여, 피크-기준선 장치(440)가 l 샘플의 각 블록의 일단에서 피크의 비율 gRATIO, 또는 최대 갱신 계수값을 기준선 갱신 계수값에 제공하는 것으로 충분하다. 그 다음, 스케일-오프셋-및-리미트 장치(495)는 피크-기준선 비율 gRATIO을 정제하여 정규화된 시스템 상태 이득 gSTATUS을 제공한다.
상세하게는, 스케일-오프셋-및-리미트 장치(495)는 0 내지 1의 범위내에서 상태 게이지 gSTATUS을 출력하는데, 여기서 1은 최종의 싱글 토크 기간 동안 비수렴된 시스템을 가리키고, 0은 필터가 크게 수렴되고 최종 사용자의 말이 없거나, 또는 비교적 고도의 근단 스피치 또는 노이즈가 있다는 것을 가리킨다. gSTATUS을 발생시키기 위하여, 스케일-오프셋-및-리미트 장치(495)는 피크-기준선값을 적절한 스케일 인자에 승산하고, 오프셋을 상기 결과로 나타나는 곱에 가산하여 최종 합산을 끌어내어, 피크-기준선 비율이 소정의 최소 임계치 미만일 때는 0 그리고 피크-기준선 비율이 소정의 최대 임계치를 초과할 때는 1인 출력을 생성한다.
최소 및 최대 임계치는 경험적으로 결정된다. 예를 들면, 상술된 바와 같이, 데이터는, l=1024의 블록 크기인 경우, 수렴된 시스템에 대한 피크-기준선 비율이 근단 노이즈 및 근단 보이스와는 무관하게 약 6을 초과하지 않는다는 것을 나타낸다. 부수적으로, 동일한 블록 크기인 경우, 데이터는, 크게 수렴된 시스템이 32 만큼의 피크-기준선 비율을 나타내고 비수렴된 시스템이 일반적으로 이론상 최대 피크-기준선갑의 절반 이상인 피크-기준선 비율을 생성한다는 것을 나타낸다. 이하 상세히 설명된 바와 같이, 이론상 최대 피크-기준선값은 블록 크기의 제곱근과 동일하다. 따라서, l=1024의 블록 크기인 경우, 최소 및 최대 피크-기준선 임계치는, 예를 들면, 각각 6 및 16으로 설정될 수 있다.
상태 게이지 gSTATUS가 일반적으로 낮은 근단 노이즈로 최종 싱글 토크의 기간 동안 시스템 수렴의 양호한 표시기이기 때문에, 이 기간 동안 가변 갱신 이득 μVAR을 직접 조정하고 잔여 에코 억제기에 대한 제어 신호 c(n)을 제공하는데 사용된다. 이러한 상태 게이지 gSTATUS의 사용데 대한 설명이 도 4의 실시예를 참조하여 이하 설명될 것이다. 그러나, 실제로는, 1은 낮은 근단 노이즈라고 가정할 수 없고, 1은, 근단 사용자의 말이 없다는 것으로 확실하게 가정할 수 없다. 따라서, 도 4의 실시예는 근단 스피치 및 노이즈의 실제 현실을 최적으로 설명하지 않는 다소 이상적인 구성이다. 그럼에도 불구하고, 본 발명의 몇몇 장점이 도 4의 실시예를 참조하여 적어도 도입부에 가장 잘 기술되어 있다. 다양한 레벨 및 근단 스피치, 최종 스피치 및 근단 노이즈의 조합을 보다 효과적으로 조작하도록 한 보다 상세한 실시예가 도 5를 참조하여 이하 설명된다. 일반적으로, 도 5의 실시예는 다른 시스템 파라미터 측정치와 관련하여 상태 게이지 gSTATUS를 사용하여 잔여 에코 억제기에 대한 개선된 가변 갱신 이득 μVAR 및 개선된 제어 신호 c(n)를 제공한다.
그러나, 도 4의 실시예에서, 스케일링 장치(420)는 상태 게이지 gSTATUS에만 기초하여 가변 갱신 이득 μVAR을 생성하는데 사용된다. 상세하게는, 상태 게이지 gSTATUS가 1일 때, 소정의 최대 갱신 이득이 사용되고, 상태 게이지 gSTATUS가 0일 때, 소정의 최소 갱신 이득이 사용된다. 소정의 최대 갱신 이득은, 시스템의 안정성을 유지하면서 경험적으로 보다 고속의 시스템 수렴을 제공하도록 설정된다. 소정의 최소 갱신 이득도 역시 경험적으로 근단 보이스 및 노이즈로 인한 필터 계수의 교란을 최소화시키도록 설정된다. 이러한 교란은 시스템에 의해 제공되는 효과적인 에코 억제를 감소시키려는 경향이 있고 근단 보이스 신호를 왜곡시킨다.
상태 게이지 gSTATUS가 0과 1 사이일 때, 스케일링 장치(420)는 소정의 최소 및 최대 갱신 이득 간에 대수적으로 가변 갱신 이득 μVAR을 조정한다. 최소 및 최대 이득이 2의 좌승에 관련되면, 대수적인 변화는 다수의 비트를 생성하기 위해 상태 게이지 gSTATUS를 스케일링하여 갱신 이득 μVAR의 이진 표기를 좌로 시프트시킴으로써 쉽게 구현될 수 있다. 대안적으로, 1 마이너스 상태 게이지 gSTATUS는 이진 표기를 우로 시프트시키기 위해 다수의 비트를 생성하도록 스케일될 수 있다.
상태 게이지 gSTATUS 및 갱신 이득 μVAR 이외에도 피크-기준선 비율 gRATIO는, 기준선 갱신 계수값(즉, 피크-기준선 비율 gRATIO을 계산하는데 사용된 값)이 계수 피크를 포함하지 않으면 수렴 대 비수렴에 더욱 민감할 수 있다. 즉, 기준선 계수값이 계산될 때 피크 계수값이 고려되지 않으면, 피크값(즉, 블록상의 시스템 적응의 레벨을 가리키는 값) 및 기준선값(즉, 적응과 무관하게 입력 신호의 에너지 레벨을 가리키는 값) 간의 실제 차이는 피크-기준선 비율에 더욱 정확하게 반영될 것이다.
음향-에코 제거기인 경우, 보다 긴 지연 탭 중 적어도 일부가 에코 신호와 비상관되도록 실제로 보장되는(따라서, 피크가 없도록 실제로 보장되는), 충분하게 큰 다수의 적응 필터 탭(즉, 계수 레지스터(455)내의 다수의 계수)을 포함함으로써 효과적으로 피크를 제거한다. 네크워크-에코 제거기인 경우, 갱신 벡터(즉, 갱신 계수 레지스터(450))를 서브-벡터로 파티셔닝(partitioning)한 다음, 서브-벡터 평균의 최소치를 사용하여 피크-기준선 값을 계산함으로써 피크를 제거한다. 에코 패스 피크가 두개의 서브-벡터에 중첩될 수 있기 때문에(즉, 몇몇 인접한 계수는 기준선 계수값에 크게 관련될 수 있음), 갱신 벡터는 적어도 3개의 서브-벡터로 파티셔닝되어 하나 이상의 서브-벡터가 피크를 갖지 않는다는 것을 보장한다. 보다 세밀한 파티셔닝은 기준선 계산으로부터 2차 에코-패스 피크를 제거함으로써 피크와 기준선 간의 차이를 더 증가시킨다. 그러나, 파티션(partitions)은 너무 세밀하게 만들지는 않는데, 그 이유는 샘플이 적어지면 계산된 기준선이 부정확해지기 때문이다. 또한, 2의 제곱과 동일하게 파티션 수를 설정함으로써, 이진수 시프트로서 곱셈 및 나눗셈을 수행하여 기준선 계산을 용이하게 한다. 이러한 절충에 의해, 갱신 벡터는 전형적으로 4개의 서브-벡터로 파티셔닝된다.
블록 크기 l의 선택이 또한 절충의 문제임을 알아야 한다. 상세하게는, 블록 크기의 특정 선택은 피크-기준선 비율의 정확성(및 갱신 계수 레졸루션) 및 시스템 반응 속도 간의 상충을 나타낸다. 이와 같이, 갱신 피크값은 블록 크기에 따라 비례해서 증가하고(즉, 계수값이 블록상에 축적되고), 갱신 기준선값은 블록 크기의 제곱근에 따라 증가한다(즉, 계수 제곱근이 이하 상술된 바와 같이 블록상에 축적된다). 따라서, 피크-기준선-크기 비율은 블록 크기의 증가에 따라 비수렴에 더욱 민감해진다. 한편, 블록 크기가 작을 수록, 시스템은 보다 고속으로 적응 필터를 갱신하고 시스템 에코 패스의 변화에 반응할 수 있다. 이 연구는 1024 차수의 블록 크기가 8000㎐ 시스템 샘플 비율에 안정하는 것을 밝혔다. 이러한 블록 크기는 블록 당 128㎳의 입도가 된다. 실제로는, 블록 크기는 가장 가까운 배수의 표준 기준 프레임으로 설정될 수 있다(예를 들면, 960의 블록 크기는 표준 TDMA 프레임 처리에 유용하다).
상술된 블록 갱신 스킴이, 필터 계수에 가산하기 위하여 스케일 축소하기 전에 샘플의 블록상에 갱신 계수를 적분하기 때문에, 필터 계수의 효과적인 레졸루션은 기존의 시스템에 비해 증가된다. 불충분한 계수 레졸루션과 연관된 문제들이, 예를 들면, 본 명세서에 포함된 1995년 12월 27일 출원된 표제 "부동점 디지털 필터의 레졸루션 증가"의 미국 특허 출원 제08/578,941호내에 상세히 개시되어 있다. 16비트 필터 계수가 전형적으로 에코 억제의 60㏈을 실현하는데 충분한 반면, 16 비트 이상은, 갱신 이득이 낮을 때 작지만 중요한 갱신을 축적하는데 필요하게 된다. 장점으로는, 상술된 시스템의 통합 계수의 레졸루션은 평이한 16비트 계수를 갖는 시스템에 대해 log2l 비트 만큼 증가된다. 예를 들면, l=1024의 블록 크기로 레졸루션은 10 비트 만큼 증가된다.
상술된 바와 같이, 도 4의 예시적인 실시예에서, 잔여-에코 억제기에 대한 제어 신호 c(n)은 상태 게이지 gSTATUS에만 기초하여 발생된다. 이 연구는, 상태 게이지 gSTATUS가 비수렴의 온셋의 정확한 표시기이면서, 상대적으로 높은 근단 노이즈가 존재할 때 시스템이 정확하게 수렴하는 것보다 빠르게 0으로 하락하는 경향이 있다는 것을 밝혀냈다. 따라서, 도 4의 실시예에서, 상태 게이지 gSTATUS는 피크 검파기(460)를 통해서 필터링된다. 피크 검파기(460)는 시스템의 에러 감소율을 대략적으로 추적하는 지수형 감소율을 제공하도록 설계된다. 따라서, 피크 검파기의 출력 c(n)은 정확하게 최종 싱글 토크 기간 동안 시스템 수렴(및 비수렴)을 가리킨다. 그 결과, 제어 신호 c(n)은 상술된 바와 같이, 최종 싱글 토크 동안 효과적으로 사용되어 잔여 에코 억제기의 클리핑 임계치를 제어한다.
요컨대, 도 4의 예시적인 실시예는 본 발명의 주요한 이점의 원리 중 일부를 나타낸다. 상세하게는, 상기는 적응 필터 갱신 이득을 변화시키고 잔여 에코 억제기를 제어하기 위해 피크-기준선 비율에 기초하여 시스템 상태 게이지를 사용하는 장점을 나타낸다. 또한, 상기는 효과적인 필터 계수의 블록 당 갱신이라는 장점을 나타낸다. 시스템 설계자가 이러한 주요한 원리들의 중요성을 인식하면, 이들을 다양한 방식으로 사용하여 강력하고 실제적인 에코 소거 시스템을 구성한다. 이러한 시스템의 예시적인 실시예는 도 5를 참조하여 상세히 기술된다. 그러나, 기술 분야의 당업자는, 본 발명의 가르침이 상술된 실시예에 단지 한정되지 않고 상술된 실시예의 다양한 특성의 실제 한정된 수의 조합이 가능하고 고려된다는 알 것이다.
도 5는 본 발명의 가르침에 따라 구성된 에코 소거 시스템(500)의 대안적인 예시적 실시예를 도시한다. 도시된 바와 같이, 에코 소거 시스템(500)은 마이크로폰(110), 확성기(120), 및 에코 제거기(530)를 포함한다. 에코 제거기(530)는 제1 내지 제4 합산 장치(515, 570, 520, 540), 제1 내지 제5 다중화기(585, 560, 525, 535, 565), 제1 내지 제5 제곱합 장치(505, 510, 595, 575, 580), 제1 및 제2 제곱근 장치(503, 508), 분할 장치(518), 비교기(590), 필터 계수 레지스터(555), 갱신 계수 레지스터(550), 샘플 큐(545), 최대-제곱 장치(598), 최소-최대 장치(513), 및 이득 제어 장치(523)를 포함한다. 도 5의 실시예를 이해하는데 불필요한 부수적인 구성요소들은 도시되어 있지 않다. 도면에서, 굵은 선은 편리하게 병렬 접속을 가리키는데 사용되고, 표준 블록은 샘플 당 한번 이라기 보다는 블록 당 한번 실행되는 동작을 가리키는데 사용된다.
도 5에서, 마이크로폰(110)의 출력 s(n)은 제1 합산 장치(515)의 부수적인 입력 및 제1 제곱합 장치(505)에 결합된다. 제1 합산 장치(515)의 출력은 제2 제곱합 장치(510)의 입력 및 제2 다중화기(560)의 제1 입력에 결합된다. 클리어-장치 입력은 제1 제곱합 장치(505)에 결합되므로, 기술 분야의 당업자는, 편의상 도시되어 있지는 않지만 유사한 입력이 제2 제곱합 장치(510)에 결합된다. 제1 합산 장치(515)의 출력은 또한 에코 제거기(530)의 제1 출력 e(n)으로서 기능한다. 제2 제곱합 장치(510)의 출력 gOUT는 제1 다중화기(585)의 제1 입력에 결합되고, 스칼라 상수 K는 제1 다중화기(585)의 제2 입력에 결합된다. 제1 제곱합 장치(505)의 출력 gIN은 비교기(590)의 제1 입력에 결합되고, 제1 다중화기(585)의 출력은 비교기(590)의 제2 입력에 결합된다. 비교기(590)의 출력 gCANCEL은 이득 제어 장치(523)의 제1 입력에 결합된다.
제2 다중화기(560)의 병렬 출력은 제2 합산 장치(570)의 제1 입력에 결합되고, 제2 합산 장치(570)의 병렬 출력은 갱신 계수 레지스터(550)에 입력된다. 갱신 계수 레지스터(550)의 병렬 출력은 제2 합산 장치(570)의 제2 입력, 제3 제곱합 장치(595), 최대-제곱 장치(598)의 입력, 및 제5 다중화기(565)의 제1 입력에 결합된다. 제3 제곱합 장치(595)의 출력은 제1 제곱근 장치(503)의 입력에 결합된다. 제1 제곱근 장치(503)의 출력 gBASE는 이득 제어 장치(523)의 제2 입력에 결합되고, 제2 제곱근 장치(508)의 출력 gPEAK는 이득 제어 장치(523)의 제3 입력 및 분할 장치(518)의 제1 입력에 결합된다. 분할 장치(518)의 출력 gSUPP는 이득 제어 장치(523)의 제5 입력에 결합되고, 이득 제어 장치(523)의 제2 출력은 에코 제거기(530)의 제2 출력 c(n)으로서 기능한다.
원단 신호 x(n)은 확성기(120)의 입력 및 샘플 큐(545)의 직렬 입력에 결합된다. 샘플 큐(545)의 병렬 출력은 제3 다중화기(525)의 제1 입력 및 제2 다중화기(560)의 제2 입력에 결합된다. 샘플 큐(545)의 병렬 출력의 제1 탭은 제4 제곱합 장치(575)의 입력에 결합되고, 샘플 큐(545)의 병렬 출력의 제2 탭은 제5 제곱합 장치(580)의 입력에 결합된다. 제4 및 제5 제곱합 장치(575, 580)의 출력 gREFi, gREFj는 각각 최소-최대 블록(513)의 제1 및 제2 입력에 결합된다. 클리어-장치 입력은 제5 제곱합 장치(580)에 접속되므로, 기술 분야의 당업자는, 유사한 입력이 편의상 명확히 도시되지 않았지만 제4 제곱합 장치(575) 및 제2 출력 gREFLO에 접속되어 있다는 것을 알 것이다. 최소-최대 블록(513)은 이득 제어 장치(523)의 제4 입력에 접속되고 제2 출력 gREFLO는 분할 장치(518)의 제2 입력에 결합된다.
이득 제어 장치(523)의 제1 출력 μVAR은 제4 다중화기(565)의 제2 입력에 결합되고, 제5 다중화기(565)의 병렬 출력은 제4 합산 장치(540)의 제1 입력에 결합된다. 제4 합산 장치(540)의 병렬 출력은 필터 계수 레지스터(555)에 입력되고, 필터 계수 레지스터(555)의 병렬 출력은 제4 합산 장치(540)의 제2 입력 및 제4 다중화기(535)의 제1 입력에 결합된다. 프로파일 벡터는 제4 다중화기(535)의 제2 입력에 결합되고, 제4 다중화기(535)의 병렬 출력은 제3 다중화기(525)의 제2 입력에 결합된다. 제3 다중화기(525)의 병렬 출력은 제3 합산 장치(520)의 입력에 결합된다. 제3 다중화기(525)의 병렬 출력은 제3 합산 장치(520)의 입력에 결합되고, 제3 합산 장치(520)의 출력 는 제1 합산 장치(515)의 감산 입력에 결합된다.
동작시, 도 5의 실시예의 중심 적응 필터링 특징은 도 4의 실시예의 것과 매우 유사하다. 간단히 말해서, 계수 레지스터(555)의 내용은 샘플 큐(545)의 내용과 콘볼루션하여 근단 신호 s(n)의 에코 성분의 추정치 를 생성한다. 계수 레지스터(555)는 갱신 레지스터(550)의 내용과 가변 갱신 이득 μVAR을 사용하여 블록형 단위로 갱신되고, 갱신 레지스터(550)는 에러 신호 e(n) 및 샘플 큐(545)의 내용을 사용하여 조정되어, 계수 레지스터(555)의 내용이 시스템 전달 함수 H(z)에 수렴한다. 도 5의 실시예에서, 필터 계수가 샘플 큐(545)의 내용과 콘볼루션되기 전에 제4 다중화기를 사용하여 프로파일 벡터에 의해 다중화된다.
따라서, 프로파일 벡터는 부수적이며, 계수당 갱신 이득 인자를 나타낸다. 프로파일 벡터는 전형적으로 시스템 동작 이전에 실제 시스템 전달 함수 H(z)의 계수의 예상 범위를 대략적으로 일치시키도록 설정된다(즉, 보다 짧은 지연 계수에서 보다 긴 지연 계수까지의 크기를 줄임). 보다 긴 지연 필터 탭(계수)에 대하여 보다 낮은 이득을 적용하는 것은 갱신으로부터의 노이즈를 감소시키고 보다 높은 갱신 이득이 시스템의 불안정성을 생성하지 않고 적용되도록 한다. 이론상으로는, 프로파일 벡터는 일반적으로 효과적인 필터 계수와 동적으로 동일하도록 설정될 수 있지만, 이런 것은 계산적으로 더 강력할 것이다. 이하 상세히 기술된 바와 같이, 본 발명은 전체 에코 제거기를 구현하는데 사용될 수 있는 디지털 신호 프로세서에서 간단한 명령들을 사용하여 프로파일 벡터를 고속으로 계산하기 위한 효율적인 기술을 개시하고 있다. 프로파일 벡터가 전형적으로 네트워크-에코 제거기에 적당하지 않다는 것을 알아야 한다. 이는, 1은 전형적으로 네트워크 에코 임펄스의 위치(즉, 적응 필터 계수내에)를 연역적으로 예측할 수 없다는 사실에 기인한다.
도 4 및 도 5의 실시예 간의 주요한 차이는 시스템 동작 동안에 감시되는 시스템 파라미터의 개수와 유형, 및 파라미터가 가변 갱신 이득 μVAR 및 잔여 억제기 제어 신호 c(n)을 조정하는데 사용되는 방식에 관한 것이다. 도 5에 도시된 바와 같이, 복수의 시스템 측정은 이득 제어 장치(523)에 의해 차례로 사용되어 가변 갱신 이득 μVAR 및 잔여 억제기 제어 신호 c(n)를 조정하는 5개의 이득 제어 신호 gCANCEL, gBASE, gPEAK, gREFHI, gSUPP를 생성하는데 사용된다. 5개의 이득 제어 신호 gCANCEL, gBASE, gPEAK, gREFHI, gSUPP 각각의 발생 및 사용이 이하 상세히 설명된다.
제1 이득 제어 신호 gCANCEL는 제1 및 제2 제곱합 장치(505, 510), 제1 다중화기(585), 및 비교기(590)를 사용하여 발생된다.
제1 제곱합 디바이스(505)는 블록시 근단 신호에서 에너지 레벨의 표시기 gIN을 생성하도록 블록 코스에서 근단 신호 s(n) 샘플을 제곱하여 축적한다. 유사한 방식으로, 제2 제곱합 디바이스(510)는 블록시 에러 신호에서 에너지 레벨의 표시기 gOUT을 생성하도록 블록 코스에서 에러 신호 e(n) 샘플을 제곱하여 축적한다. 다음, 제2 제곱합 디바이스(510)의 출력 gOUT을 상수 K 배하여, 이러한 결과 생성물을 비교기(59)를 사용하여 제1 제곱합 디바이스(505)의 출력 gIN과 비교한다. 따라서, 비교기의 2진 출력은 입력 에너지 gIN가 출력 에너지 gOUT보다 적어도 K배 큰지의 여부를 나타내어, 제1 이득 제어 신호 gCANCEL를 제공한다.
개념적으로, 제1 이득 제어 신호 gCANCEL는 시스템에 의해 얻어질 수 있는 에코 제거 레벨의 측정 뿐 아니라 근단 신호의 노이즈의 레벨의 지시를 제공한다. 즉, 출력 에너지보다 훨씬 큰 입력 에너지는 적응 필터가 근단 신호(즉, 에코)의 주요부를 제거하여, 근단 신호가 상태적으로 노이즈-프리(즉, 근단 신호에서의 노이즈가 입력과 출력 에너지 레벨에 동일하게 기여하여, 에코 억압에 따른 에너지 차를 전복시키는 경향이 있음)인 것을 나타낸다. 상수 배율기 K가 경험적으로 설정되어, 바람직한 상위점 레벨에 이르게 된다. 예를 들면, 배율기 K=16을 사용하는 것은 gCANCEL이 높은 에코 제거와 낮은 근단 노이즈를 나타내기 전에 입력 에너지가 출력 에너지보다 12db 이상 높아지는 것을 요구한다. 이하, 후술할 바와 같이, gCANCEL을 사용하여, 가변 갱신 이득 μVAR의 제어에 대하여 결정한다.
제2 이득 제어 신호 gBASE가 제3 제곱합 디바이스(595)와 제1 제곱근 디바이스(503)를 사용하여 계산되어, 샘플 블록의 기선 갱신 계수 크기 측정을 제공한다. 즉, 각 블록의 단부에서, 제3 제곱합 디바이스(595)는 갱신 계수를 제곱하여 누산함으로써 갱신 계수 에너지의 측정을 제공하고, 제1 제곱근 디바이스(503)는 계수 에너지의 제곱근을 계산하여 RMS 갱신 계수 기선을 제공한다. RMS 기선은 제2 이득 제어 신호 gBASE를 나타내고, 제3 이득 제어 신호 gPEAK와 결합하여 사용되어, 상술한 피크-베이스 라인 크기 비율을 계산한다.
제3 이득 제어 신호 gPEAK가 최대-제곱 디바이스(598)와 제2 제곱근 디바이스(508)를 사용하여 계산된다. 동작시, 최대-제곱 디바이스(598)는 각 샘플에서의 피크 갱신 계수값의 제곱을 계산하고, 각 블록의 단부에서 제2 제곱근 디바이스(508)는 최대-제곱 디바이스(598)의 출력의 제곱근을 계산하여, 블록 코스에서 피크 계수값의 표시기를 제공한다. 이러한 표시기는 제3 이득 제어 신호 gPEAK를 나타내고, 피크-기선 비율을 계산하고 임의의 잔여 에코 억제기에 적절한 제어 신호 c(n)를 제공하는데 사용된다.
이론적으로 gPEAK가 각 블록의 단부에서 갱신 계수의 절대값을 사용함으로써 똑바르게 계산될 수 있다는 것에 유의해야 한다. 즉, 각 샘플에서 피크 갱신 계수의 제곱을 계산하는 것 대신, 각 블록의 단부에서 피크(절대값) 갱신 계수를 직접 결정하기 위한 계산-최대 디바이스와 같이 최대-제곱 디바이스(598)가 구성될 수 있다. 이러한 경우, 제2 제곱근 디바이스(508)는 필요하지 않게 된다. 그러나, 최대-제곱 디바이스(598)에 의해 수행된 샘플당 계산은 클럭 플로우팅-포인트 연산을 목적으로 실제로 사용된다. 즉, 최대-제곱 디바이스(598)의 출력이 사용되어, 도 5의 실시예가 디지털 신호 프로세서에서 구현될 때 갱신 계수 레지스터(550)의 오버플로우를 방지한다. 또한, 많은 디지털 프로세서에서, 블록의 단부에서 제곱근 값을 계산하는 것이 필요하다는 것이 고려될 때에도 제곱된 값을 계산하는 것이 절대값을 계산하는 것 보다 더 효과적이다.
제4 및 제5 이득 제어 신호 gREFHI, gSUPP가 제4 및 제5 제곱합 디바이스(575, 580)와 최소-최대 디바이스(513)를 사용하여 계산된다. 특히, 제4 및 제5 제곱합 디바이스(575, 580)가 블록 코스에서 제곱되어 샘플 큐(545)의 첫 번째와 j번째 위치 각각의 용량을 누산한다. 따라서, 각 블록의 단부에서, 제4 및 제5 제곱합 디바이스(575, 580)는 블록 코스에서 샘플 큐(545)의 제1 및 j번째 위치에서 도시된 에너지 레벨의 gREFI, gREFJ 측정을 제공한다. 샘플 큐(545)의 제1 및 j번째 위치는 프로파일 벡터가 최대일 때의 프로파일 벡터 부분에 대응하는 샘플 큐(545) 부분의 단점을 나타낸다. 각 블록의 단부에서, 최소-최대 디바이스(513)는 제4 및 제5 제곱합 디바이스(575, 580)의 출력의 최소와 최대를 선택하여 제1 및 제2 출력 gREFLO, gREFHI 각각을 생성한다. 제2 출력 gREFHI가 제4 이득 제어 신호와 같이 직접 사용된다. 제1 출력 gREFLO이 분할 디바이스(518)에서 제3 이득 제어 신호 gPEAK로 분할되고, 분할 디바이스의 출력은 제5 이득 제어 신호 gSUPP로서 사용된다. 이하, 후술할 바와 같이, 제4 이득 제어 신호 gREFHI가 가변 갱신 이득 μVAR을 표준화하기 위한 기준으로서 사용되고, 제5 이득 제어 신호 gSUPP는 잔여 억제기 제어 신호 c(n)를 계산하는데 사용된다.
샘플 각 블록의 단부에서, 이득 제어 디바이스(523)는 5개의 이득 제어 신호 gCANCEL, gBASE, gPEAK, gREFHI, gSUPP를 사용하여 가변 갱신 이득 μVAR과 제어 신호 c(n)를 조절한다. 예를 들면, 이득 제어 디바이스는 제2 이득 제어 신호 gBASE에 의해 제3 이득 제어 신호 gPEAK를 분할하여, 상술한 바와 같이 도 4의 스케일-오프셋 제한 디바이스(440)에 대하여 0 내지 1의 범위 내에서 상태 게이지로 변환되는 피크-기선 비율을 생성한다. 이러한 연구 결과는, 변환 파라미터와 같은 도 5의 실시예에서 구현된 제공된 측정 기술이 다양한 조건에서 시스템의 상태를 나타내는데 효과적으로 사용될 수 있다는 것을 나타낸다. 예를 들면, 원단 단일-통화 상황에서, 수렴되지 않은 시스템은 하나의 상태 게이지를 생성하고, 많이 수렴된 시스템은 0 근처의 상태 게이지를 생성한다. 수렴되지 않은 상태에서 수렴 상태로의 변환시, 게이지가 1에서 0으로 작아져서, 근단 노이즈가 있을 때 더 빠르게 된다. 이중-통화 상황에서는, 상태 게이지가 전형적으로 0.2 이하이고, 근단 단일-통화 상황에서의 게이지는 0이다. 또한, 주기적 원단 신호(예를 들면, 원단 스피치에서의 DTMF 톤과 모음 소리)는 게이지가 0으로 떨어지게 한다. 따라서, 제2 및 제3 이득 제어 신호 gBASE, gPEAK로부터 유도된 상태 게이지가 제1 이득 제어 신호 gCANCEL와 결합하여 사용되어, 가변 갱신 이득 μVAR과 잔여 억제기 제어 c(n)에 대하여 명확하게 결정하도록 한다.
예를 들면, 상태 게이지가 0이상이고, 제1 이득 제어 신호 gCANCEL가 하나일 때(근단 단일-통화, 낮은 근단 노이즈, 및 적어도 적절하게 수렴되지 않은 에코 제거기를 나타냄), 가변 갱신 이득 μVAR은 구현된 NLMS 알고리즘에 따라 상대적으로 활동적으로 조절된다. 즉, 가변 갱신 이득 μVAR이 근단 신호에서 측정된 에너지 레벨의 배수 중 하나와 동일하게 설정된다. 상술한 바와 같이, 제4 이득 제어 신호 gREFHI는 근단 신호에서 에너지의 적절한 측정을 제공한다. 이론적으로, 각 필터 계수에 대한 갱신 이득은 샘플 큐(545)에서 대응 위치에서 기준 에너지를 사용하여 독립적으로 표준화될 수 있다. 그러나, 컴퓨터의 간략화를 위해, 기준 에너지는 상술한 바와 같이 샘플 큐(545)의 제1 및 j번째 위치에서 발생하는 최대 에너지에 기초하여 (보수적으로)계산된다.
상술된 테스트가 참이 아니고(즉, 상태 게이지가 0이상일 때와 동일한 시간에서 제1 이득 제어 신호 gCANCEL가 하나가 아닌 경우), 상태 게이지가 0.5 이상인 경우(초기 자음 음성, 알려지지 않은 양의 근단 노이즈, 및 필터 수렴의 알려지지 않은 레벨에 의해 만들어진 원단 단일-통화를 나타냄), 가변 갱신 이득 μVAR은 상태 게이지의 표준화된 버전을 사용하여 더 보수적으로 조절된다. 특히, 가변 갱신 이득μVAR이 원단 신호(gREFHI)에서 측정된 에너지 레벨의 배수에 의해 분할된 상태 게이지와 동일하게 설정된다. 상술한 바와 같이, 상태 게이지의 동작(예를 들면, 필터 수렴 및 근단 노이즈로 감소시킴)은 이러한 시간동안 가변 갱신 이득 μVAR에 대한 기초와 같이 사용하는데 적절하게 한다.
상술된 테스트 중 하나가 참일 때(제거기가 잘 수렴되었고, 명확한 원단 신호는 없으며, 근단 신호 근처에 명확한 주기적 성분이 있고, 명확한 근단 음성 및/또는 노이즈가 있다는 것을 나타냄), 가변 갱신 이득 μVAR이 블록 길이 l에 비례하는 상수에 의해 분할된 상태 게이지와 동일하게 설정된다. 또한, 상술한 바와 같이, 상태 게이지의 동작(예를 들면, 수렴, 근단 스피치와 노이즈, 주기적 원단 신호의 감소)은 이러한 시간동안 가변 갱신 이득 μVAR의 사용을 적절하게 한다. 따라서, 도 5의 실시예는 적절한 상황에서 다른 상황에서 불안정을 생성하지 않고 가능한 한 빠르게 수렴하는 강한 실시예를 제공한다.
도 5의 실시예에서, 제3 및 제5 이득 제어 신호 gPEAK, gSUPP가 임의의 잔여 에코 억제기를 제어하도록 사용된다. 예를 들면, 원단 단일-통화 상황에서(예를 들면 0.5 이상의 상태 게이지에 의해 표시됨), 억제기 제어 신호 c(n)가 에코 피크의 보급된 억압의 평가의 필터된 버젼과 동일하게 설정된다. 따라서, 잔여 억제기는 필요한 것 이상 제거함으로써 과도하게 왜곡을 증가시키지 않은 상태에서 잔여 에코를 제거할 수 있다. 다른 상황에서는, 제어 신호 c(n)는 적절한 최대값으로 작은 증분으로 증가한다. 이는 에코 억압이 측정될 수 없는 주기동안 에코 제거기에 의해 제공된 에코 억압에서의 포텐셜 감소를 설명한다. 따라서, 도 5의 실시예는 근단 신호 x(n)에 있을 수 있는 어떠한 근단 음성 또는 노이즈를 왜곡시키지 않은 상태에서 필요한 범위에서 잔여 에코 억제기가 사용될 수 있는 제어 신호 c(n)를 제공한다.
% MATLAB를 위한 AEC 및 NLP 시뮬레이션 스크립트
%
% AEC = 어쿠스틱-에코 제거기
% (예를 들어, 라우드스피커 에코 제거기)
% NLP = 비선형 처리
% (즉, 잔여 에코 및 잡음 억제기)
% (예를 들어, AC-센터 클리퍼)
% 변수 맵 (즉, 상기 상세한 설명과 아래의 MATLAB 코드에 사용되는
% 변수명들 간의 상관)
%
% MATLAB 변수 상세한 설명에 사용된 변수명
% --------------- ---------------------------------------------
% sample = n (현재의 샘플 수)
% BLOCK_SIZE = l (블럭 당 샘플 수)
% TAPS = m (필터 계수의 수)
% aecIn = s(n) (근단 입력)
% aecRefIn = x(n) (원단 입력)
% aecOut = e(n) (에러 신호/에코 제거기 출력)
% aecEchoEst = (s(n)의 에코의 추정)
% nlpGain = c(n) (잔여 억제기 제어)
% nlpOut = y(n) (에코 캔슬/잔여 억제)
% aecRef = x(n) ... x(n-m+1) (샘플 큐)
% aecCoef = h0(n) ... hm-1(n) (필터 계수)
% aecUpdate = h0'(n) ... hm-1'(n) (갱신 계수)
% aecGain = μVAR (블럭 당 계수 갱신 이득)
% profile = profile (전계수 이득 조정 백터)
% aecInEnergy = gIN (s(n)의 블럭 당 에너지)
% aecOutEnergy = gOUT (e(n)의 블럭 당 에너지)
% aecRefEnergy0 = gREF1 (제1 샘플 큐의 블럭 당 에너지)
% aecRefEnergyN = gREFJ (j번째 샘플 큐의 블럭 당 에너지)
% aecRefEnergyLow = gREFLO (블럭단에서의 작은 gREF1 및 gREFJ)
% aecRefEnergyHigh = gREFHI (블럭단에서의 큰 gREF1 및 gREFJ)
% aecUpdateNoise = gBASE (블럭 당 베이스라인 갱신 계수값)
% aecUpdatePeak = gPEAK (블럭 당 피크 갱신 계수값)
% aecPeakToNoise = gRATIO (블럭 당 갱신 피크-베이스라인 비율)
% aecUpdateGauge = gSTATUS (에코 제거기 상태 게이지)
% aecSuppHigh = gCANCEL (에코 캔슬의 플래그 표시 레벨)
% aecSupp = gSUPP (에코 억제의 전체 레벨 측정)
% 이 스크립트를 실행하기 전에, 다음의 변수들을 설정:
% inFile = 입력 파일명, 좌측 = 원단, 우측 = 근단,
% OutFile = 출력 파일명, 좌측 = nlp 출력, 우측 = aec 출력
% 모든 파일은 DAT 링크의 로우 포맷(raw format)을 사용
% 분수 표현에 대한 최대 포지티브 값
>
fidIn = fopen(inFile, 'r');
if fidIn == -1
error(['Error opening file ' inFile])
end
fidOut = fopen(outFile, 'w');
[LRmatrix, wordCount] = fread(fidIn, [2,inf], 'int16');
% -1 내지 1의 범위를 사용하는 크기
LRmatrix = LRmatrix / 32768;
fidIn = fopen(inFile, 'r');
if fidIn == -1
error(['Error opening file' inFile])
end
fidOut = fopen(outFile, 'w');
[LRmatrix, wordCount] = fread(fidIn, [2,inf], 'int16');
% -1 내지 1의 범위를 사용하는 크기 입력
LRmatrix = LRmatrix / 32768;
TAPS = 512; % FIR 필터의 탭 수와 갱신 백터의 길이
% FIR의 지연 라인은 적어도 잡음 억제기를 통한 지연의 길이만큼
% 될 필요가 있다. 이는 비선형 프로세서 (NLP)의 입력에 대한
% 원단 신호의 지연 매칭을 가능하게 한다.
% 탭의 마지막 25%는 주로 원단 신호와 상관되지 않고
% 단지 근단 에너지만을 갖는다.
BLOCK-SIZE = 960; % 갱신 통합 기간 내의 샘플 수
% 큰 블럭 크기는 더블 토크 & 근단 잡음에 우수한 강건성을 제공한다.
% 이는 이들이 0을 향해 수렴하는 경향이 있기 때문이다.
% 또한 상관된 갱신이 블걱 크기에 비례하기 때문에
% 보다 큰 값은 또한 수렴 검출 능력을 향상시키는데
% 이는 갱신이 블럭 크기에 비례하여 성장하기 때문이며
% 상관되지 않은 값은 블럭 크기의 제곱근으로 성장한다.
% 보다 작은 값은 반응 시간을 향상시켜
% 수렴을 변화 (에코 경로, 싱글 → 더블 토크)시키고 속도를 높인다
% 여기서 편리한 다중 표준 TDMA 프레임 크기로 설정한다.
BLOCK_BITS = ceil(log2(BLOCK_SIZE));
% 샘플의 블럭에 걸쳐 누적된 우측 시프트값으로 비트 수를 표시한다.
NBLOCKS = floor((wordCount/2) /BLOCK_SIZE); % 프로세스에 대한 블럭 수
NSAMPLES = NBLOCKS * BLOCK_SIZE; % 디버드를 위한 샘플 기반 백터의 길이
% 최대 갱신 이득을 결정하기 위한 갱신 백터 피크-잡음비로 임계치를 계산한다.
% [-1 1]의 범위 내에서 균일한 잡음에 대해, 예측되는 피크 갱신 크기는
% g*BLOCK_SIZE/3이 되며, 상관되지 않은 탭에 대한 갱신 백터의 예측 RMS는
% g*sqrt(BLOCK_SIZE)/3이고, 여기서 g는 에코 경로 이득이다.
% 그러므로, 최대 갱신 백터 피크-잡음비는 sqrt(BLOCK_SIZE)이다.
% 이 값의 약 절반의 임계치는 싱글 토크가 잠음이 존재하는 것을 결정하기 위해
% 가장 경험적으로 결정되었다.
MAX_GAIN_THRESH = sqrt(BLOCK_SIZE)/2;
% 잡음에 대한 피크-RMS는 블럭 크기에 독립적이다.
% 근단 잡음과 원단 주기 신호를 받아들이지 않기 위한 이 임계값은
% 경험적으로 유도되었다.
NOISE_THRESH = 5.5;
% 갱신 게이지를 위한 승산기로서 사용하는 전치 계산 상수
UPDATE_GAUGE_SCALER = floor(32768 / (MAX_GAIN_THRESH - NOISE_THRESH)) / 32768;
% FIR 계수에 대한 이득 프로파일을 생성. 이 프로파일은
% 자동차 내의 계수들의 예측 범위와 대략 일치한다. 주기 성분 (보웰)을
% 포함하는 갱신은 적절한 지수 함수적 지연 특성을 따르고 발산을 최소화하도록
% 한다. 지연 탭에 대한 낮은 이득은 또한 계수들에 대한 갱신 잡음 기여를
% 감소시킨다. 프로파일의 전체적인 효과는 불안정성없이 높은 갱신 이득을
% 가능하게 한다.
% 모든 계수들은 16비트의 동적 범위를 가지므로, 고 지연 탭은 또한
% 프로파일의 결과로서 우수한 양자화를 갖게 된다.
% 프로파일은 일정한 시간에서의 FIR 64 탭을 중간에서 우측 시프트로
% 계산함으로써 구현된다.
profile=ones(TAPS,1);
for k=2:(TAPS/64),
profile((k*64-63):(k*64))=ones(64,1)*2^(1-k);
end
% 실행 속도를 향상시키도록 디버그 백터를 할당
aecUpdateFactor = zeros(1,NBLOCKS);
aecSuppHistory = zeros(1,NBLOCKS);
nlpDeltaHistory = zeros(1, NSAMPLES);
nlpGainHistory = zeros(1,NBLOCKS);
% 제1 블럭의 실행 속도를 향상시키도록 블럭 크기 백터를 할당
aecOut = zeros(1,BLOCK_SIZE);
nlpOut = zeros(1,BLOCK_SIZE);
% 변수 초기화
sample=0;
aecRef = zeros(1,TAPS);
aecCoef = zeros(TAPS,1); % 마지막 것을 사용하여 이 라인을 설명
nlpRefEnvelope = 0;
nlpRefFloor = 0;
aecSupp = ONE;
aecSuppLast = ONE;
nlpGain = 2*ONE; % 마지막 것을 사용하여 이 라인을 설명
nlpOutLast = 0;
%disp(['aecCoef(1) = ' dec2hex(aecCoef(1)*32768+(aecCoef(1)<0)*65536)])
%disp(['aecCoef(2) = ' dec2hex(aecCoef(2)*32768+(aecCoef(2)<0)*65536)])
%disp(['aecSupp = ' dec2hex(aecSupp*32768)])
%disp(['nlpGain = ' dec2hex(nlpGain*16384)])
for block = 1;NBLOCKS,
block % 진행을 나타내는 블럭 수를 표시
% 블럭 누산기를 클리어
aecInEnergy = 0;
aecOutEnergy = 0;
aecRefEnergyO = 0;
aecRefEnergyN = 0;
aecUpdate = zeros(TAPS,1);
% 블럭 부동 소수점 변수
aecShiftPending = 0;
aecErrorShift = 0;
% 샘플 기반 처리
for k = 1;BLOCK_SIZE,
sample = sample + 1; % 전역 샘플 카운터
%
% AEC section
%
aecRefIn = LRmatrix(1,sample); % 입력 원단 (라우드스피커)
% 기준 지연 라인을 시프트 및 FIR 출력을 계산
% DSP에서, 2가지 연산이 하나의 명령 내에 있다.
aecRef = [aecRefIn aecRef(1;TAPS-1)];
% 테스트 코드 시작
% 다음의 코드는 신속하게 설명된 비트 레이트 코드에 근사한다.
aecEchoEst = aecRef * (aecCoef .* profile);
aecEchoEst = max(min(round(aecEchoEst * 32768)/32768,ONE),-1);
%TEST CODE END
% aecEchoEst = 0;
% for m=(TAPS/64):-1;2,
% aecEchoEst = aecEchoEst + aecRef(m*64-63:m*64) * aecCoef(m*64-
63:m*64);
% aecEchoEst = max(min(aecEchoEst,ONE),-1) / 2;
% % Quantize for S.31 format
% accEchoEst = floor(aecEchoEst * 2^31) / 2^31;
% end
% aecEchoEst = aecEchoEst + aecRef(1:64) * aecCoef(1:64);
% accEchoEst = max(min(aecEchoEst, ONE),-1);
% % Quantize for S.15 Format
% % Add 2^(-17) due to MATLAB quirk when fraction equals exactly 0.5.
% aecEchoEst = round(aecEchoEst * 32768 + 2^(-17))/32768;
% aecEchoEst = max(min(aecEchoEst,ONE),-1);
% AEC 출력을 계산
aecIn - LRmatrix(2,sample); % 근단 입력 (마이크로폰)
aecOut(k) = aecIn - accEchoEst;
aecOut(k) = max(min(aecOut(k), ONE),-1);
% Accumulate energy in AEC input, output, and
% reference at endpoints where profile-1
ENERGY_SCALE = 2^21; % Quantize for S10.21 format
aecInEnergy = aecInEnergy + aecIn^2;
aecInEnergy = floor(aecInEnergy * ENERGY_SCALE) / ENERGY_SCALE;
aecOutEnergy = aecOutEnergy + aecOut(k)^2;
aecOutEnergy = floor(aecOutEnergy * ENERGY_SCALE) / ENERGY_SCALE;
aecRefEnergy0 = aecRefEnergy0 * aecRef(1)^2;
aecRefEnergy0 = floor(aecRefEnergy0 * ENERGY_SCALE) / ENERGY_SCALE;
aecRefEnergyN = aecRefEnergyN * aecRef(64)^2;
aecRefEnergyN = floor(aecRefEnergyN * ENERGY_SCALE) / ENERGY_SCALE;
% 계수 갱신 누산 = 에러 (aecOut) 및 기준의 상관
% 블럭 부동 소수점 표현을 사용하는데, 여기서 aecErrorshift는
% 멱지수이며 aecUpdate()는 가수이다.
T = aecOut(k) * 2^aecErrorShift;
% Quantize for S.15 format
T = floor(T * 32768)/32768;
if aecShiftPending,
ASM = -1;
aecErrorShift = aecErrorShift - 1;
aecShiftPending = 0;
else
ASM = 0;
end
aecUpdate = aecUpdate + T * aecRef';
% S.15 포맷에 대한 양자화
% Add 2^(-17) due to MATLAB quirk when fraction equals exactly 0.5.
aecUpdate = round(aecUpdate * 32768 + 2^(-17))/32768;
aecUpdate = max(min(aecUpdate,ONE), -1);
aecUpdate = aecUpdata * 2^ASM;
% 가능한 우측 시프트 후에 S.15 포맷에 대한 양자화
aecUpdate = floor(aecUpdate * 32768)/32768;
% 갱신 백터의 피크 스퀘어를 탐색 (먼저 128 탭을 가정)
% 목적은 피크 절대값이지만, 피크 스퀘어는 블럭의 말단에서 sqrt를 사용해도
% DSP에서 보다 소수의 주기를 취한다.
aecUpdatePeak2 = max(aecUpdate(1:128).^2);
% 불리언은 갱신이 다음 루프에서 2로 나누어질 필요가 있는지를 나타낸다.
aecshiftPending = aecUpdatepeak2 > 0.25; % 0.25 = 0.5^2
%
% NLP section
%
nlpIn = aecout(k); % AEC 출력에 접속된 NLP 입력
% NLP 원단 기준 = AEC 기준 대신에 secEchoEst를 사용하는 것은
% 보다 나은 결과를 제공하지 않으며 잡음 억제기를 지연 정합시키기 위해
% 추가 메모리를 필요로 한다. AEC 기준은 nlpIn 내에 포함된 가장 빠른
% 에코에 선행하므로 동등하게 잘 작용한다. 피크 검출기 내의 장시간 상수는
% NLP에 대한 하나의 키이며, nlpEef의 지연 매칭을 불필요한 잔여 에코에
% 근사시킨다.
nlpRef = aecRef(1);
% 엔벨로프는 nlpRef 신호를 검출한다. (피크 검출)
% 255/256보다 큰 폴은 통과하는 에코를 발생시킨다.
% 255/256 보다 큰 폴은 근단에 과도한 왜곡을 발생시킨다.
nlpRefEnvelope = max(abs(nlpRef), 255/256 * nlpRefEnvelope);
% nlpRefEnvelope는 저장을 위한 32비트이다.
% 16비트로 라운딩된 nlpRefEnvelope는 512/2^15보다 낮아지지 않는다.
% 16비트로 끝수가 버려진 nlpRefEnvelope는 256/2^15 아래일 때 샘플 당
% 1 비트로 감소하며, 이는 너부 빠르다. (에코가 통과하도록 한다)
% S.31 포맷에 대한 양자화
nlpRefEnvelope = floor(nlpRefEnvelope*2^31)/2^31;
% nlpRef의 잡음의 측정으로서 nlpRefEnvelope의 하한을 트래킹
% 잡음 플로어 값을 1로 누설시켜서 증가하는 잡음을 트래킹
% 지수함수적으로 누설을 행하여 시간 상수가
% 크기에 독립적이도록 한다. (1+1/65536)의 승산기가 선택되어
% 2배의 잡음 플로어에 대해 약 65536 샘플, 또는 8초를 취한다.
% 또한 상수를 추가하여 nlpRefFloor이 2^(-15)보다 작을 때에는 여전히
% 누설이 발생한다. 2^(-24)인 상수가 선택되어 0으로부터 시작해서
% 2^(-8)에 도달하는 잡음 플로어에 대해 약 65536 샘플, 또는 8초를
% 취한다.
nlpRefFloor = 2^(-24) + nlpRefFloor + nlpRefFloor/65536;
% S.31 포맷에 대한 양자화
nlpRefFloor = floor(nlpRefFloor*2^31)/2^31;
nlpRefFloor = min(nlpRefFloor, nlpRefEnvelope);
% NLP의 델타값은 AEC에 의해 이득 제어되고 1로 제한된다.
% 엔벨로프로부터 잡음 플로어를 차감하여 근단 속도는
% 원단 신호가 단지 잡음일 때에만 왜곡되지 않는다.
% 이는 텔타값을 감소시키고 통과하는 에코를 잠재적으로 두는 효과를 가지며,
% 이는 대략 (1 + nlpRefFloor)만큼의 차이를 승산함으로써 대 신호에 대해
% 포상될 수 있다.
nlpDelta = min(ONE, nlpGain * ...
floor((nlpRefEnvelope-nlpRefFloor)*32768)/32768);
Quantize for S.15 format
nlpDelta = floor(nlpDelta*32768)/32768;
nlpDeltaHistory(sample) = nlpDelta; % 디버그를 위해 히스토리 저장
% NLP 출력 = 최종 출력으로부터의 +/- 델타 크기 윈도우
nlpOut(k) = min(max(nlpOutLast, nlpIn - nlpDelta), nlpIn + nlpDelta);
nlpOutLast = nlpOut(k); % 다음 시간 동안 값을 저장
end
% 정수 포맷으로 블럭을 통해 수집된 출력을 파일에 저장
% fwrite(fidOut, [floor(aecOut*32768); ...
% round(32768 * LRmatrix(2,sample-BLOCK_SIZE+1:sample))], 'int16');
fwrite(fidOut, [floor(nlpOut*32768); floor(aecOut*32768)], 'int16');
% 블럭 처리 수행
%
% AEC 부분
%
%disp(['aecInEnergy = ' decZhex(aecInEnergy * ENERGY_SCALE)])
%disp(['aecOutEnergy = ' decZhex(aecOutEnergy * ENERGY_SCALE)])
%disp(['aecRefEnergyO = ' decZhex(aecRefEnergyO * ENERGY-SCALE)])
%disp(['aecRefEnergyN = ' dec2hex(aecRefEnergyN * ENERGY_SCALE)])
%disp(['aecErrorShift = '
dec2hex(aecErrorShift+(aecErrorShift<0)*65536)])
%disp(['aecUpdatePeak2 = ' dec2hex(aecUpdatePeak2*2^31)])
%disp(['aecUpdate(1) = '
dec2hex(aecUpdate(1)*32768+(aecUpdate(1)<0)*65536)])
%disp(['aecUpdate(2) = '
dec2hex(aecUpdate(2)*32768+(aecUpdate(2)<0)*65536)])
% 실제 기준 에너지는 갱신 백터의 각각의 요소에 대해 다르다.
% aecUpdate(1)은 aecRef(1)로부터의 에너지를 사용,
% aecUpdate(2)는 aecRef(2)로부터의 에너지를 사용 등.
% 복잡성을 감소시키기 위해, 하나의 수를 사용하여 기준 에너지를 표현
% 기준 에너지가 갱신 (NLMS)을 정규화하는데 사용될 때,
% 너무 작은 값을 사용하는 것은 불안정성을 야기한다.
% 기준 에너지가 에코 억제를 측정하는데 사용될 때, 너무 큰 값은 NLP를
% 통과하게 한다. 여기서 구현된 절충적인 해결책은
% 각각의 목적에 대해 프로파일 = 1인 말단 지점의 최대 및 최소치를
% 사용하는 것이다.
aecRefEnergyHigh = max(aecRefEnergy0, aecRefEnergyN);
aecRefEnergyLow = min(aecRefEnergy0, aecRefEnergyN);
% S10.5 포맷에 대한 양자화
aecRefEnergyHigh = floor(aecRefEnergyHigh*32)/32;
aecRefEnergyLow = floor(aecRefEnergyLow*32)/32;
% 최종 25%의 소자의 RMS로부터 갱신 잡음을 측정
% 양자화 후에 aecUpdateNoise이 더 커지고 aecPeakToNoise가 더 작아지는 것을
% 보장하도록 1 LSB를 결과값에 가산한다.
% 이는 고 에코 보정의 악효과를 방지한다.
% 플로어 연산 후에 1 LSB를 가산하는 것은 모든 끝수가 버려진 비트들이 0일 때
% 희귀한 경우를 제외하고는 최대한의 동작과 동일한 결과를 나타낸다.
aecUpdateNoise = sum(aecUpdate((TAPS*.75+1) :TAPS).^2)*4/TAPS;
% S.31 포맷에 대한 제곱된 중간 결과를 양자화
aecUpdateNoise = floor(aecUpdateNoise*2^31)/2^31;
aecUpdateNoise = sqrt(aecUpdateNoise);
% S.15 포맷에 대한 양자화
aecUpdateNoise = floor(aecUpdateNoise*32768+1)/32768;
% 갱신 백터의 피크 크기 탐색
aecUpdatePeak = sqrt(aecUpdatePeak2);
% 갱신 피크-잡음비를 계산
aecPeakToNoise = aecUpdatePeak / aecUpdateNoise;
% Quantize for S11.4 format
aecPeakToNoise = floor(aecPeakToNoise*16)/16;
% 갱신 게이지 (범위=[0,1])를 피크-잡음비로부터 계산
% 다운 스트림 처리에 사용된 게이지는 피크-잡음비가 블럭크기로 변화하고
% 잡음 임계치가 변화한다해도 동일하게 유지된다.
% 근단 음성/잡음 또는 원단 주기 신호(보웰)에 대해, 게이지 = 0
% 더블 토크에 대해 게이지 < 0.2
% 원단 싱글 토크에 대해:
% 게이지 = 잡음에 관계없이 소거기가 일괄적으로 복구되지 않을 때 1`
% 만일 근단이 조용하다면, 게이지 = 완전한 수렴에 근접할 때까지 1
% 소거기 수렴에 따라, 게이지는 0으로 감소 -- 근단에 잡음이 있을 때
% 보다 빨라짐
aecUpdateGauge = (aecPeakToNoise - NOISE_THRESH) * UPDATE_GAUGE_SCALER;
aecUpdateGauge = max(min(aecUpdateGauge,ONE),0);
% Quantize for S.15 format
aecUpdateGauge = floor(aecUpdateGauge*32768)/32768
% 에코 제거기 억제가 "하이"인지 여부를 나타내는 플래그 설정
% "하이"에 대한 임계치는 입력과 출력간의 에너지 비가 16보다 클 때이다.
% 이는 12 dB보다 우수한 억제와 근단 잡음이 낮아지는 것을 수반한다.
aecSuppHigh = (aecOutEnergy *16) < aecInEnergy
% 조건에 따라 갱신 이득 판정
% 원단 싱글 토크, 저 근단 잡음, 및 적어도 적당하게 수렴되지 않은
% 소거기 테스트 게이지의 사용은 보웰을 포함하는 원단 주기 신호 동안에
% 발산을 방지한다. 예를 들어, 941 Hz 및 1209 Hz의 주파수를 사용하여
% DTMP 톤의 첫번째가 탐색되어
% aecPeakToNoise=3.5를 생성하고, 따라서, aecUpdateGauge=0).
if aecSuppHigh & (aecUpdateGauge > 0),
% NLMS 및 최대 갱신 이득을 사용
% 이득을 1로 제한하도록 최소의 공통 분모를 1/1로 설정
% 최대 함수를 사용하는 것은 그 결과 이득이 높기 때문에
% 1을 공통 분모에 추가하는 것보다 빠른 수렴을 가능하게 한다.
% 6개 미만의 승산기는 낮은 안정성을 야기하여, 적응에 있어서
% 오버슈트를 발생시키고 에코 제거기 출력을 손상시킨다.
% 6개 보다 많은 승산기는 섭동 후의 억제를 감소시킨다.
aecGain = 1/max(aecRefEnergyHigh*6, 1/ONE);
% 디버그 동안, 초ㅐ대 이득이 사용되는 것을 나타내는 2로 계수를 설정한다.
aecUpdateFactor(block) = 2;
% 알려지지 않은 량의 잡음과 알려지지 않은 소거기의 수렴을 갖는
% 원단 싱글 토크 (주로 일정한 사운드) 테스트
elseif (aecUpdateGauge > 0.5),
% NLMS와 약산 낮은 최대 이득을 사용하여 근단 신호와
% 원단 주기 성분으로 인한 불안정성을 방지
% aecUpdateGauge를 사용하여 갱신 이득을 제어하는데, 이는 에코 제거기가
% 수렴함에 따라 감소하고 근단 잡음의 증가와 함께 감소하기 때문이다.
aecGain = aecUpdateGauge / max(aecRefEnergyHigh*16, 1);
aecGain = min(aecGain, ONE);
% 디버그 동안, 고 이득을 사용되는 것을 나타내는 1로 계수를 설정
aecUpdateFactor(block) = aecUpdateGauge;
else
% 테스트가 실패했으므로, 에코 제거기는 잘 수렴되고,
% 상위 원단 신호가 존재하지 않으며, 원단 신호 내에 상위 주기 성분이
% 존재, 및/또는 상위 근단 음성 및/또는 잡음이 존재한다.
% 에코 제거기 수렴에 따라 감소하므로 aecUpdateGauge를 사용하여
% 갱신 이득을 제어하여, 근단 음성 (원단 음성이 존재하든 존재하지 않든)
% 동안에 낮아지고 원단 신호 내에 주기 성분이 존재하고,
% 근단 잡음을 증가함에 따라 감소한다.
% 1/BLOCK_SIZE의 계수는 aecUpdateGauge = 1일 때 안정성을 보장한다.
% 그리고 최장의 경우 원단 신호 조건: -1과 1 사이의 변화
% 이러한 경우에, aecRefEnergyHigh=BLOCK_SIZE)
aecGain = aecUpdateGauge * floor (32768/BLOCK_SIZE)/32768;
% 디버그를 위해, 게이지 값과 동일한 계수를 설정
aecUpdateFactor(block) = aecUpdateGauge;
end
% S.15 포맷에 대한 양자화
aecGain = floor(aecGain*32768)/32768;
% 적응 이득을 사용하여 갱신 백터를 계수 백터에 추가
% aecCoef는 FIR 계수로서 사용하기 전에 프로파일에 의해 승산된다.
aecCoef = aecCoef + (aecUpdate *2^(-aecErrorShift) * aecGain);
% S.15 포맷에 대한 양자화
% 분수는 정확히 0.5일 때 MATLAB quirk로 인해 2^(-17)을 추가한다.
aecCoef = round(aecCoef * 32768 + 2^(-17))/32768;
aecCoef = max(min(aecCoef,ONE),-1);
% NLP 부분
% aecRefEnergyLow를 테스트하여 aecSupp 계산 시에 0으로 제산되는 것을 방지
if (aecRefEnergyLow > 0),
% 라우드스피커로부터 마이크로폰으로의 에코 경로를 포함하는
% 전체 에코 제거기 억제를 측정한다. 이 측정은 원단 싱글 토크 동안에
% 유효하다. AEC 기준이 NLP에 공급되기 때문에 NLP 제어가 요구된다.
% 즉, aecln이 NLP 기준 입력으로 공급되면 대신에
% (aecUpdatepeak/aecInEnergy)는 단지 NLP의 이득을 제어하는데 적합하게
% 될 것이다. 이 측정은 aecUpdatePeak가 블럭에 걸쳐 있는 잡음을 합산
% 한다는 사실로 인해 근단 잡음의 존재시에도 정확하다.
% 측정의 정확도는 주기 성분에 의해 감소되지 않는다.
% in the far-end signal.
aecSupp = min(aecUpdatePeak*2^ (-aecErrorShift) /
aecRefEnergyLow,ONE);
% S.15 포맷에 대한 양자화
aecSupp = floor(aecSupp*32768)/32768
% aecSupp는 평균 억제를 측정한다. 피크의 억제를 측정하여,
% 라우드스피커 왜곡이 선형 크로스 보정에 의해 측정된 것보다 높은
% 에코 피크를 생성하는 것을 고려한다.
aecPeakSupp = min(2*ONE, 4.5 * aecSupp);
end
% NLP의 이득은 에코 억제 측정이 신뢰성이 있을 때에 갱신된다.
% 갱신 게이지 (aecUpdateGauge >= 0.5)에 의한 것과 같이,
% 최상의 조건은 원단 싱글 토크 동안에 있다. (aecUpdateGauge >= 0.5)
% 에코 억제의 측정은 갱신 백터의 피크를 사용하며, 이는 원단으로부터
% 유입되는 에너지가 충분하기만 하면 근단 음성 및 잡음의 영향을 받지
% 않는다. 원단으로부터 유입되는 에너지가 충분한지 여부를 말하는 방식은
% 에코 억제 측정이 최근의 이력보다 우수한지에 대한 것이다.
% (aecPeakSupp < nlpGain)
% 원단으로부터의 에너지가 거의 없을 시에,
% 기준 (원단) 에너지에 의해 제산되는 갱신 피크인 측정된 에코 억제는
% 다른 방식에 의해서는 매우 불충분하다.
% 그러나, secRefEnergyLow가 0이었다면
% 모든 NLP 이득 갱신을 생략한다.
if (aecRefEnergyLow > 0) & ...
((aecUpdateGauge >= 0.5) |(aecPeakSupp < nlpGain)),
% 디버그를 위해 aecSupp를 사용
aecSuppLast = aecSupp;
% NLP 이득을 에코 피크의 추정된 억제의 필터링된 버젼과 동일하게 설정
% 따라서, NLP는 AEC의 잔여 에코를 제거할 것이며,
% 필요한 것보다 많이 제거되지는 않는데, 여기서 왜곡이 증가할 것이다.
% nlpGain은 느린 상승 및 빠른 감소를 갖는다.
% 이는 계수 갱신 후에 향상된 에코 억제를 고려하지 않고 초기 상승이
% 너무 높아지게 되는 경향이 있기 때문이다.
% 이 필터는 근단 신호의 왜곡을 감소시킨다.
nlpGain = min(aecPeakSupp, 0.5 * nlpGain + 0.5 * aecPeakSupp);
else
% 이는 근단 싱글 토크가 아니므로, NLP 이득을 2로 누설시킨다.
% 이는 측정될 수 없는 시간 동안에 에코 억제가 나빠지게 되는
% 경우이다.
nlpGain = min(2*ONE, 511/512 * nlpGain + 2/512);
end
% Quantize for S1.14 format
nlpGain = floor(nlpGain*16384)/16384;
% Save aecSupp and nlpGain for debug
aecSuppHistory(block) = aecSuppLast;
nlpGainHistory(block) = nlpGain;
%disp(['aecRefEnergyHigh = ' dec2hex(aecRefEnergyHigh*32)])
%disp(['aecRefEnergyLow = ' dec2hex(aecRefEnergyLow*32)])
%disp(['aecUpdateNoise = ' dec2hex(aecUpdateNoise*32768)])
%disp(['aecUpdatePeak = ' dec2hex(aecUpdatePeak*32768)])
%disp(['aecPeakToNoise = ' dec2hex(aecPeakToNoise*16)])
%disp(['aecUpdateGauge = ' dec2hex(aecUpdateGauge*32768)])
%disp(['aecSuppHigh = ' dec2hex(aecSuppHigh)])
%disp(['aecGain = ' dec2hex(aecGain*32768)])
%disp(['aecCoef(1) = ' dec2hex(aecCoef(1)*32768+(aecCoef(1)<0)*65536)])
%disp(['aecCoef(2) = ' dec2hex(aecCoef(2)*32768+(aecCoef(2)<0)*65536)])
%disp(['aecSupp = ' dec2hex(aecSupp*32768)])
%disp(['nlpGain = ' dec2hex(nlpGain*16384)])
%pause
%plot(abs(aecUpdate)/aecUpdateNoise)
%axis([0 TAPS 0 aecPeakToNoise])
%xlabel('Coefficient number'),ylabel('Normailized update magnitude'),pause
%plote(20*log10(abs(aecCoef .* profile))),axis([0 TAPS -100 1]);
%xlabel('Coefficient number'),ylabel('Magnitude in dB'),pause
end
clear LRmatrix MAX_GAIN_THRESH NOISE_THRESH UPDATE_GAUGE_SCALER profile k
clear aecOut nlpOut sample aecRef nlpRefEnvelope nlpOutLast block m
clear aecRefEnergy0 aecRefEnergyN aecRefEnergyLow aecInEnergy aecOutEnergy
clear aecUpdate aecEchoEst aecIn nlpIn nlpRef NlpRefEnvelope nlpDelta
clear aecUpdateNoise aecUpdatePeak aecPeakToNoise aecUpdateGauge
aecSuppHigh
clear aecSupp aecGain aecRefIn aecUpdatePeak2 UPDATE_GAUGE_SCALER
clear aecShiftPending aecErrorShift ASM T BLOCK_BITS ONE ENERGY_SCALE
clear aecPeakSupp aecSuppLast nlpGain aecRefEnergyHigh
fclose(fidIn);
fclose(fidOut);
clear fidIn fidOut
추가적으로, (NLMS 갱신 이득 및 잔여 억제기 제어 신호를 각각 설정할 때 사용되는) 원단 신호 기준 에너지 δREFH1, δREFL0이 원단 샘플 대기 행렬 내의 특정 위치에서 측정되는 에너지에 기초하여 도 5의 실시예에서 계산되지만, 또한 제1 및 제2 값의 함수(예를 들어, 비율)로서 계산될 수도 있으며, 여기서 제1 값은 에코 평가시 측정되는 에너지에 비례하고 제2 값은 필터 계수의 크기에 비례한다. 바람직하게는, 이와 같은 함수가 원단 신호에서 에너지의 정확한 표시자를 제공한다.
또한, 도 4 및 5의 실시예에서, 각 블럭의 끝에서 가변성 갱신 이득이 조절되지만, 원한다면 가변성 갱신 이득이 거의 드물게 갱신될 수 있음을 기술 분야의 당업자라면 알 수 있다. 예를 들어, 갱신이 즉시 적용되어야 하거나 나중 시간까지 연기되어야하는 것에 대해 (예를 들어, 상태 게이지에 기초하여)각 블럭의 끝에서 판단이 행해질 수 있다.
또한, 도 4 및 5에 도시된 다양한 동작 블럭들은 사실상 개념적인 것임을 알아야 한다. 이와 같은 블럭 함수의 실제 구현은 다양한 기술을 이용하여 수행될 수 있다. 또한, 각 예시적인 시스템은 예를 들어 다중 표준 디지털 신호 처리 칩, 단일 주문형 집적 회로, 또는 적절하게 구성된 회로를 이용하여 구현될 수 있다. 그래서, 본 발명의 범위는 전술한 설명보다는 본 명세서에 첨부된 클레임에 의해 한정되고, 클레임의 의미와 부합하는 모든 균등물이 본 명세서에 포함되도록 의도된다.

Claims (43)

  1. 입력 신호의 에코 성분 - 상기 입력 신호의 에코 성분은 에코 유발 신호에 기인함 - 을 평가하고 상기 입력 신호로부터 최종 에코 성분 평가치를 감하여 에코 제거 출력 신호를 제공하기 위한 에코 소거 장치에 있어서,
    상기 에코 성분 평가치를 제공하기 위해 상기 에코-유발 신호를 필터링하기 위한 적응 필터 - 상기 적응 필터의 적응 필터 전달 함수는 상기 에코 유발 신호 및 에코 제거 출력 신호에 의존하여 적용됨 -;
    상기 적응 필터에 접속되어 상기 적응 필터 전달 함수에서의 변화에 대응하는 갱신을 기억하기 위한 기억 장치; 및
    상기 기억 장치에 접속되어 상태 표시자 - 상기 상태 표시자는 제1 값 및 제2 값의 함수로서 계산되고, 상기 제1 값은 상기 갱신의 제1 파티션의 함수이며, 상기 제2 값은 상기 갱신의 제2 파티션의 함수임 - 를 계산하기 위한 처리기
    를 포함하는 것을 특징으로 하는 에코 소거 장치.
  2. 제1항에 있어서,
    상기 적응 필터는 디지털 필터이며, 상기 적응 필터 전달 함수는 복수의 이산 시간 필터 계수를 포함하며, 상기 갱신은 대응하는 이산-시간 갱신 계수를 포함하는 것을 특징으로 하는 에코 소거 장치.
  3. 제1항에 있어서,
    상기 적응 필터는 아날로그 필터이며, 상기 적응 필터 전달 함수 및 상기 갱신 함수는 시간의 연속 함수인 것을 특징으로 하는 에코 소거 장치.
  4. 제1항에 있어서,
    상기 갱신은 상기 에코 유발 신호 및 상기 에코 소거 출력 신호에 따라 조절되고, 상기 적응 필터 전달 함수는 상기 갱신에 의존하여 주기적으로 조절되는 것을 특징으로 하는 에코 소거 장치.
  5. 제4항에 있어서,
    상기 적응 필터는 디지털 필터이며, 상기 입력 신호 샘플 블럭은 상기 적응 필터 전달 함수의 조절 이전에 상기 에코 소거 장치에 의해 처리되는 것을 특징으로 하는 에코 소거 장치.
  6. 제4항에 있어서,
    상기 적응 필터는 아날로그 필터이고, 상기 입력 신호의 고정-길이, 연속적 시간 간격이 상기 적응 필터 전달 함수의 조정 이전에 상기 에코 소거 장치에 의해 처리되는 것을 특징으로 하는 에코 소거 장치.
  7. 제1항에 있어서,
    상기 상태 표시자는 상기 갱신 형태의 측정을 제공하는 것을 특징으로 하는 에코 소거 장치.
  8. 제1항에 있어서,
    상기 상태 표시자를 계산하는데 사용되는 상기 제1 및 제2 값 중 적어도 하나는 상기 갱신의 피크 크기에 비례하는 것을 특징으로 하는 에코 소거 장치.
  9. 제1항에 있어서,
    상기 상태 표시자를 계산하는데 사용되는 상기 제1 및 제2 값 중 적어도 하나는 상기 갱신의 RMS 값에 비례하는 것을 특징으로 하는 에코 소거 장치.
  10. 제1항에 있어서,
    상기 상태 표시자를 계산하는데 사용되는 상기 제1 및 제2 값 중 적어도 하나는 상기 갱신의 표준치에 비례하는 것을 특징으로 하는 에코 소거 장치.
  11. 제1항에 있어서,
    상기 상태 표시자를 계산하는데 사용되는 상기 제1 및 제2 값 중 적어도 하나는 상기 갱신의 에너지 값에 비례하는 것을 특징으로 하는 에코 소거 장치.
  12. 제1항에 있어서,
    상기 상태 표시자를 계산하는데 사용되는 상기 제1 및 제2 값 중 적어도 하나는 상기 갱신의 절대값의 합에 비례하는 것을 특징으로 하는 에코 소거 장치.
  13. 제1항에 있어서,
    상기 상태 표시자를 계산하는데 사용되는 상기 제1 및 제2 값 중 적어도 하나는 상기 적응 필터 전달 함수에 대한 기여 정도의 순서로 상기 갱신의 파티션들을 분류함으로써 계산되는 것을 특징으로 하는 에코 소거 장치.
  14. 제1항에 있어서,
    상기 상태 표시자는 상기 갱신의 피크 값 및 상기 갱신의 기준 값의 비율로서 계산되는 것을 특징으로 하는 에코 소거 장치.
  15. 제1항에 있어서,
    상기 상태 표시자를 계산하는데 사용되는 상기 제1 및 제2 값 중 적어도 하나는 상기 갱신의 단-지연(short delay) 파티션에 기초하여 계산되는 것을 특징으로 하는 에코 소거 장치.
  16. 제1항에 있어서,
    상기 상태 표시자를 계산하는데 사용되는 상기 제1 및 제2 값 중 적어도 하나는 상기 갱신의 장-지연(long delay) 파티션에 기초하여 계산되는 것을 특징으로 하는 에코 소거 장치.
  17. 제1항에 있어서,
    상기 처리기는 상기 상태 표시자를 스케일화하고, 오프셋하며 제한하여 상태 게이지를 제공하는 것을 특징으로 하는 에코 소거 장치.
  18. 제1항에 있어서,
    상기 상태 표시자는 제한값을 상기 적응 필터 수렴값으로서 접근시키는 것을 특징으로 하는 에코 소거 장치.
  19. 제1항에 있어서,
    상기 상태 표시자는 제한 값을 입력 신호 증가의 잡음 성분으로서 접근시키는 것을 특징으로 하는 에코 소거 장치.
  20. 제1항에 있어서,
    상기 상태 표시자는 제한 값을 상기 입력 신호 증가의 음성 성분으로서 접근시키는 것을 특징으로 하는 에코 소거 장치.
  21. 제1항에 있어서,
    상기 상태 표시자는 제한 값을 상기 에코 유발 신호 증가의 주기 성분으로서 접근시키는 것을 특징으로 하는 에코 소거 장치.
  22. 제1항에 있어서,
    상기 처리기는 상기 상태 표시자에 따라 가변성 갱신 이득을 조절하고, 상기 가변성 갱신 이득은 상기 적응 필터가 갱신되는 비율을 정하는 것을 특징으로 하는 에코 소거 장치.
  23. 제22항에 있어서,
    상기 처리기는 상기 상태 표시자를 스케일화하고, 오프셋하며 제한하여 상태 게이지를 제공하며, 상기 상태 게이지는 상기 가변 갱신 이득을 연산하는 승산기로서 사용되는 것을 특징으로 하는 에코 소거 장치.
  24. 제23항에 있어서,
    상기 가변성 갱신 이득은 상기 에코 유발 신호에서의 에너지 레벨을 가리키는 값에 의해 표준화되는 것을 특징으로 하는 에코 소거 장치.
  25. 제23항에 있어서,
    상기 가변 갱신 이득은 상기 적응 필터 전달 함수의 크기를 가리키는 값으로 나눠진 상기 에코 성분 평가치에서의 에너지 레벨을 가리키는 값에 비례하는 것을 특징으로 하는 에코 소거 장치.
  26. 제22항에 있어서,
    상기 상태 표시자 및 에코 억제 값은 상기 가변성 갱신 이득을 설정하도록 조합하여 사용되며, 상기 에코 억제 값은 상기 입력 신호의 측정된 에너지 레벨 및 상기 에코 제거 출력 신호의 측정된 에너지 레벨의 함수로 계산되는 것을 특징으로 하는 에코 소거 장치.
  27. 입력 신호의 에코 성분 - 상기 입력 신호의 에코 성분은 에코 유발 신호에 기인함 - 을 제거하기 위한 방법에 있어서,
    상기 에코 성분 평가치를 제공하기 위해 적응 필터를 사용하여 상기 에코 유발 신호를 필터링하는 단계;
    에코 제거 출력 신호를 제공하기 위해 입력 신호에서 상기 에코 성분의 평가치를 감하는 단계;
    상기 에코 유발 신호 및 상기 에코 제거 출력 신호에 따라 상기 적응 필터의 적응 필터 전달 함수를 조절하는 단계;
    상기 적응 필터 전달 함수에서의 변화에 대응하는 갱신을 계산하는 단계; 및
    제1 및 제2 값 - 상기 제1 값은 상기 갱신의 제1 파티션의 함수이고 상기 제2 값은 상기 갱신의 제2 파티션의 함수임 - 의 함수로서 상태 표시자를 계산하는 단계
    를 포함하는 것을 특징으로 하는 에코 성분 제거 방법.
  28. 제27항에 있어서,
    상태 표시자를 계산하는 상기 단계는 상기 갱신의 파티션의 피크 값을 계산하는 단계를 포함하는 것을 특징으로 하는 에코 성분 제거 방법.
  29. 제27항에 있어서,
    상기 상태 표시자를 계산하는 상기 단계는 상기 갱신의 파티션의 RMS 값을 계산하는 단계를 포함하는 것을 특징으로 하는 에코 성분 제거 방법.
  30. 제27항에 있어서,
    상기 상태 표시자를 계산하는 상기 단계는 상기 갱신의 파티션의 표준치를 계산하는 단계를 포함하는 것을 특징으로 하는 에코 성분 제거 방법.
  31. 제27항에 있어서,
    상기 상태 표시자를 계산하는 상기 단계는 상기 갱신의 파티션의 에너지 값을 계산하는 단계를 포함하는 것을 특징으로 하는 에코 성분 제거 방법.
  32. 제27항에 있어서,
    상태 표시자를 계산하는 상기 단계는 갱신 절대 값의 합을 계산하는 단계를 포함하는 것을 특징으로 하는 에코 성분 제거 방법.
  33. 제27항에 있어서,
    상기 상태 표시자를 스케일링하고, 오프셋하며 제한하여 0 내지 1의 범위내의 값을 갖는 상태 게이지를 제공하는 단계를 더 포함하는 것을 특징으로 하는 에코 성분 제거 방법.
  34. 제27항에 있어서,
    상기 상태 표시자에 따라 가변성 갱신 이득을 조절하는 단계를 더 포함하는 것을 특징으로 하는 에코 성분 제거 방법.
  35. 입력 신호의 에코 성분 - 상기 입력 신호의 에코 성분은 에코 유발 신호에 기인함 - 을 평가하고 상기 입력 신호로부터 최종 에코 성분 평가치를 감하여 에코 제거 출력 신호를 제공하기 위한 에코 소거 장치에 있어서,
    상기 에코 유발 신호를 필터링하기 위한 적응 필터 전달 함수를 가지고, 상기 에코 성분 평가치를 제공하기 위한 적응 필터;
    상기 적응 필터에 접속되어 갱신을 기억하기 위한 기억 장치;
    상기 기억 장치에 접속되어 상태 표시자 - 상기 상태 표시자는 제1 값 및 제2 값의 함수로서 계산되고, 상기 제1 값은 상기 갱신의 제1 파티션의 함수이며, 상기 제2 값은 상기 갱신의 제2 파티션의 함수임 - 를 계산하기 위한 처리기;
    상기 에코 유발 신호 및 상기 에코 제거 출력 신호에 따라 상기 갱신을 조절하기 위한 수단; 및
    상기 갱신에 따라 상기 적응 필터의 상기 적응 필터 전달 함수를 주기적으로 갱신하기 위한 수단
    을 포함하는 것을 특징으로 하는 에코 소거 장치.
  36. 제35항에 있어서,
    상기 갱신을 리셋하기 위한 수단을 더 포함하는 것을 특징으로 하는 에코 소거 장치.
  37. 제35항에 있어서,
    상기 적응 필터는 디지털 필터이며, 입력 신호 샘플 블럭은 상기 적응 필터 전달 함수의 조정 이전에 상기 에코 소거 장치에 의해 처리되는 것을 특징으로 하는 에코 소거 장치.
  38. 제35항에 있어서,
    상기 적응 필터는 아날로그 필터이며, 입력 신호의 고정 길이, 연속 시간 간격은 상기 적응 필터 전달 함수의 조절 이전에 상기 에코 소거 장치에 의해 처리되는 것을 특징으로 하는 에코 소거 장치.
  39. 삭제
  40. 제35항에 있어서,
    상기 처리기는 상기 상태 표시자에 따라 가변성 갱신 이득을 조절하고, 상기 가변성 갱신 이득은 상기 적응 필터가 적응되는 비율을 정하는 것을 특징으로 하는 에코 소거 장치.
  41. 입력 신호의 에코 성분 - 상기 입력 신호의 에코 성분은 에코 유발 신호에 기인함 - 을 제거하기 위한 방법에 있어서,
    상기 에코 성분 평가치를 제공하기 위해 적응 필터를 사용하여 상기 에코 유발 신호를 필터링하는 단계;
    에코 제거 출력 신호를 제공하기 위해 입력 신호에서 상기 에코 성분의 평가치를 감하는 단계;
    상기 에코 유발 신호 및 상기 에코 제거 출력 신호에 따라 갱신을 조절하는 단계;
    제1 및 제2 값 - 상기 제1 값은 상기 갱신의 제1 파티션의 함수이고 상기 제2 값은 상기 갱신의 제2 파티션의 함수임 - 의 함수로서 상태 표시자를 계산하는 단계; 및
    상기 갱신에 따라 상기 적응 필터의 적응 필터 전달 함수를 주기적으로 갱신하는 단계
    를 포함하는 것을 특징으로 하는 에코 성분 제거 방법.
  42. 입력 신호의 에코 성분 - 상기 입력 신호의 에코 성분은 에코 유발 신호에 기인함 - 을 평가하고 상기 입력 신호로부터 최종 에코 성분 평가치를 감하여 에코 제거 출력 신호를 제공하기 위한 에코 소거 장치에 있어서,
    상기 에코 유발 신호를 필터링하여 상기 에코 성분 평가치를 제공하기 위한 디지털 필터;
    상기 디지털 필터에 접속되어 복수의 프로파일 계수 - 상기 프로파일 계수들 각각은 상기 디지털 필터의 필터 계수에 대응함 - 를 기억하기 위한 기억 장치;
    상기 프로파일 계수중 대응하는 계수에 의존하여 상기 디지털 필터의 각각의 필터 계수의 영향을 조절하기 위한 수단; 및
    상기 프로파일 계수를 초기화하기 위한 수단
    을 포함하며,
    제1 프로파일 계수는 제1 값으로 설정되고, 나머지 프로파일 계수는 상기 제1 값의 이진 표현을 시프팅함으로써 도출된 값으로 설정되는 것을 특징으로 하는 에코 소거 장치.
  43. 삭제
KR10-1999-7010301A 1997-05-07 1998-04-30 음향 에코 제거기 KR100524341B1 (ko)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US08/852,729 US6185300B1 (en) 1996-12-31 1997-05-07 Echo canceler for use in communications system
US08/852,729 1997-05-07
US8/852,729 1997-05-07
PCT/US1998/008583 WO1998051066A2 (en) 1997-05-07 1998-04-30 Acoustic echo canceler

Publications (2)

Publication Number Publication Date
KR20010012349A KR20010012349A (ko) 2001-02-15
KR100524341B1 true KR100524341B1 (ko) 2005-10-28

Family

ID=25314082

Family Applications (1)

Application Number Title Priority Date Filing Date
KR10-1999-7010301A KR100524341B1 (ko) 1997-05-07 1998-04-30 음향 에코 제거기

Country Status (14)

Country Link
US (1) US6185300B1 (ko)
EP (1) EP0988744B1 (ko)
JP (1) JP2001526009A (ko)
KR (1) KR100524341B1 (ko)
CN (1) CN1139241C (ko)
AU (1) AU749243B2 (ko)
BR (1) BR9809602A (ko)
DE (1) DE69840961D1 (ko)
EE (1) EE9900515A (ko)
HK (1) HK1029690A1 (ko)
IL (1) IL132743A (ko)
MY (1) MY120321A (ko)
PL (1) PL336791A1 (ko)
WO (1) WO1998051066A2 (ko)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9025763B2 (en) 2012-02-09 2015-05-05 Electronics And Telecommunications Research Institute Apparatus and method for cancelling wideband acoustic echo
US9042566B2 (en) 2011-12-20 2015-05-26 Electronics And Telecommunications Research Institute Wideband acoustic echo cancellation apparatus with adaptive tail length in embedded system, and wideband acoustic echo cancellation method

Families Citing this family (117)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6535846B1 (en) * 1997-03-19 2003-03-18 K.S. Waves Ltd. Dynamic range compressor-limiter and low-level expander with look-ahead for maximizing and stabilizing voice level in telecommunication applications
GB2330746B (en) * 1997-10-24 2002-07-17 Mitel Corp Double-talk insensitive NLMS algorithm
US6031908A (en) * 1997-11-14 2000-02-29 Tellabs Operations, Inc. Echo canceller employing dual-H architecture having variable adaptive gain settings
US6240180B1 (en) * 1997-11-14 2001-05-29 Tellabs Operations, Inc. Echo canceller employing dual-H architecture having split adaptive gain settings
US6028929A (en) * 1997-11-14 2000-02-22 Tellabs Operations, Inc. Echo canceller employing dual-H architecture having improved non-linear echo path detection
KR100240626B1 (ko) * 1997-11-25 2000-01-15 정선종 디지털 이동 통신 시스템에서의 반향 제거 방법 및 장치
DE19801389A1 (de) * 1998-01-16 1999-07-22 Cit Alcatel Verfahren zur Echounterdrückung mit adaptiven FIR-Filtern
DE19801390A1 (de) * 1998-01-16 1999-07-22 Cit Alcatel Einrichtung und Verfahren zur Echounterdrückung mit adaptiven FIR-Filtern
JP3241328B2 (ja) * 1998-09-30 2001-12-25 沖電気工業株式会社 エコーキャンセラ
JP3385221B2 (ja) * 1998-11-16 2003-03-10 沖電気工業株式会社 エコーキャンセラ
US7072465B1 (en) * 1999-01-06 2006-07-04 Agere Systems, Inc. Adaptive filter for network echo cancellation
US7423983B1 (en) * 1999-09-20 2008-09-09 Broadcom Corporation Voice and data exchange over a packet based network
US6678254B1 (en) * 1999-05-03 2004-01-13 Nortel Networks Limited Method and communication device for optimizing echo cancellation
DE19935808A1 (de) * 1999-07-29 2001-02-08 Ericsson Telefon Ab L M Echounterdrückungseinrichtung zum Unterdrücken von Echos in einer Sender/Empfänger-Einheit
US6570986B1 (en) * 1999-08-30 2003-05-27 Industrial Technology Research Institute Double-talk detector
JP3640576B2 (ja) * 1999-09-07 2005-04-20 沖電気工業株式会社 エコーキャンセラ、及びその動作方法
GB2354414B (en) * 1999-09-14 2004-12-22 Mitel Corp Locating network echos
US7164659B2 (en) * 1999-12-09 2007-01-16 Broadcom Corporation Adaptive gain control based on echo canceller performance information
US20010040875A1 (en) 2000-01-25 2001-11-15 Igor Tkachov System and method for the application of an LMS method to updating an echo canceller in an ADSL modem
US6760435B1 (en) * 2000-02-08 2004-07-06 Lucent Technologies Inc. Method and apparatus for network speech enhancement
US6507653B1 (en) * 2000-04-14 2003-01-14 Ericsson Inc. Desired voice detection in echo suppression
US7050575B1 (en) 2000-06-16 2006-05-23 Ericsson Inc. Echo canceler coefficient update apparatus and method
US7068780B1 (en) * 2000-08-30 2006-06-27 Conexant, Inc. Hybrid echo canceller
US6434375B1 (en) * 2000-09-13 2002-08-13 Neoreach, Inc. Smart antenna with no phase calibration for CDMA reverse link
US6799062B1 (en) * 2000-10-19 2004-09-28 Motorola Inc. Full-duplex hands-free transparency circuit and method therefor
US6687723B1 (en) * 2000-11-24 2004-02-03 Nortel Networks Limited Tri-mode adaptive filter and method
KR100377797B1 (ko) * 2000-12-30 2003-03-26 주식회사 하이닉스반도체 이동통신용 핸즈프리 단말기의 잔여 반향 제거장치
US6792107B2 (en) * 2001-01-26 2004-09-14 Lucent Technologies Inc. Double-talk detector suitable for a telephone-enabled PC
US6889066B2 (en) * 2001-03-27 2005-05-03 Qualcomm Incorporated Network echo suppression in mobile stations
US6944290B2 (en) * 2001-04-14 2005-09-13 Intel Coporation Echo cancellation through auxiliary-vector filtering
GB2375688B (en) * 2001-05-14 2004-09-29 Motorola Ltd Telephone apparatus and a communication method using such apparatus
US7031916B2 (en) 2001-06-01 2006-04-18 Texas Instruments Incorporated Method for converging a G.729 Annex B compliant voice activity detection circuit
US7353217B2 (en) * 2001-06-01 2008-04-01 Texas Instruments Incorporated Intelligent realtime management of processing resources
KR100392365B1 (ko) * 2001-08-08 2003-07-23 한국전자통신연구원 음향 반향 제거기를 위한 동시통화 검출기에서의 동시통화 구간의 끝점 검출 지연 제거 장치 및 그 방법
US7095720B1 (en) * 2001-10-17 2006-08-22 Sprint Communications Company L.P. Trunk level echo canceller test system
US7103177B2 (en) * 2001-11-13 2006-09-05 Oguz Tanrikulu Reduced complexity transform-domain adaptive filter using selective partial updates
US6836547B2 (en) * 2001-12-20 2004-12-28 Motorol, Inc. Protecting an echo canceller against random transitions in echo paths
US6961422B2 (en) * 2001-12-28 2005-11-01 Avaya Technology Corp. Gain control method for acoustic echo cancellation and suppression
DE10201902B4 (de) * 2002-01-19 2007-01-11 Continental Aktiengesellschaft Verfahren zur digitalen Filterung eines mit Rauschen behafteten Signals und Regelungssystem für ein Fahrzeug
US6961421B2 (en) 2002-06-17 2005-11-01 Texas Instruments Incorporated Echo analysis for identification of hybrid induced echo in a communication link
US20050175129A1 (en) * 2002-07-16 2005-08-11 Koninklijke Philips Electronics N.V. Echo canceller with model mismatch compensation
US7027591B2 (en) * 2002-10-16 2006-04-11 Ericsson Inc. Integrated noise cancellation and residual echo suppression
US7243065B2 (en) * 2003-04-08 2007-07-10 Freescale Semiconductor, Inc Low-complexity comfort noise generator
US8139585B1 (en) * 2003-07-10 2012-03-20 Sprint Spectrum L.P. Method and system for controlling sessions from a subscriber terminal
DE112004001455B4 (de) * 2003-08-07 2020-04-23 Intersil Americas LLC Verfahren und System zum Löschen von Übersprechen
US7680265B2 (en) * 2003-12-12 2010-03-16 Continental Automotive Systems, Inc. Echo canceler circuit and method
JP4386379B2 (ja) * 2004-03-05 2009-12-16 トムソン ライセンシング 会議または電話用の音響エコー・キャンセラのバックグラウンド訓練
JP3972921B2 (ja) * 2004-05-11 2007-09-05 ソニー株式会社 音声集音装置とエコーキャンセル処理方法
US7573839B2 (en) * 2004-07-07 2009-08-11 Broadcom Corporation Line driver for an adaptive hybrid circuit
US7395790B2 (en) * 2004-11-18 2008-07-08 S&S Cycle, Inc. Reed valve breather for evolution engine
US7647077B2 (en) * 2005-05-31 2010-01-12 Bitwave Pte Ltd Method for echo control of a wireless headset
GB2427332B (en) * 2005-06-16 2007-05-16 Trinity Convergence Inc Systems and methods for adaptive echo cancellation
JP4549243B2 (ja) * 2005-07-05 2010-09-22 アルパイン株式会社 車載オーディオ処理装置
US7555117B2 (en) * 2005-07-12 2009-06-30 Acoustic Technologies, Inc. Path change detector for echo cancellation
US20070033030A1 (en) * 2005-07-19 2007-02-08 Oded Gottesman Techniques for measurement, adaptation, and setup of an audio communication system
US8144644B1 (en) 2006-02-07 2012-03-27 Sprint Spectrum L.P. Network-side setup of a packet-data communication session on behalf of a mobile station, followed by transfer of the communication session to the mobile station
US7742790B2 (en) * 2006-05-23 2010-06-22 Alon Konchitsky Environmental noise reduction and cancellation for a communication device including for a wireless and cellular telephone
US7817797B2 (en) * 2006-06-07 2010-10-19 Mitel Networks Corporation Method and apparatus for detecting echo path changes in an acoustic echo canceller
US8077641B2 (en) * 2006-06-10 2011-12-13 Microsoft Corporation Echo cancellation for channels with unknown time-varying gain
EP1887708B1 (en) * 2006-08-07 2012-09-19 Mitel Networks Corporation Delayed adaptation structure for improved double-talk immunity in echo cancellation devices
JP4727542B2 (ja) * 2006-09-26 2011-07-20 富士通株式会社 電子機器、そのエコーキャンセル方法、そのエコーキャンセルプログラム、記録媒体及び回路基板
JP4569618B2 (ja) * 2006-11-10 2010-10-27 ソニー株式会社 エコーキャンセラ及び通話音声処理装置
US8014517B2 (en) * 2007-04-18 2011-09-06 Gas Technology Institute Method and apparatus for enhanced convergence of the normalized LMS algorithm
US7809129B2 (en) * 2007-08-31 2010-10-05 Motorola, Inc. Acoustic echo cancellation based on noise environment
GB0808646D0 (en) * 2008-05-13 2008-06-18 Queen Mary & Westfield College Anti-feedback device
US8208617B2 (en) * 2009-05-26 2012-06-26 Avaya Inc. Notifying a user of a telecommunications terminal of disrupted audio
CN101958984B (zh) * 2009-07-13 2013-08-14 联芯科技有限公司 一种上下行语音驱动处理方法、装置及系统
EP2284833A1 (en) * 2009-08-03 2011-02-16 Bernafon AG A method for monitoring the influence of ambient noise on an adaptive filter for acoustic feedback cancellation
US9324337B2 (en) * 2009-11-17 2016-04-26 Dolby Laboratories Licensing Corporation Method and system for dialog enhancement
US8693677B2 (en) * 2010-04-27 2014-04-08 Freescale Semiconductor, Inc. Techniques for updating filter coefficients of an adaptive filter
US9185233B2 (en) * 2010-05-25 2015-11-10 Intel Deutschland Gmbh Audio communication device and method using fixed echo cancellation filter coefficients
US8908877B2 (en) 2010-12-03 2014-12-09 Cirrus Logic, Inc. Ear-coupling detection and adjustment of adaptive response in noise-canceling in personal audio devices
US9142207B2 (en) 2010-12-03 2015-09-22 Cirrus Logic, Inc. Oversight control of an adaptive noise canceler in a personal audio device
US8958571B2 (en) 2011-06-03 2015-02-17 Cirrus Logic, Inc. MIC covering detection in personal audio devices
US9318094B2 (en) 2011-06-03 2016-04-19 Cirrus Logic, Inc. Adaptive noise canceling architecture for a personal audio device
US9824677B2 (en) 2011-06-03 2017-11-21 Cirrus Logic, Inc. Bandlimiting anti-noise in personal audio devices having adaptive noise cancellation (ANC)
US9473865B2 (en) * 2012-03-01 2016-10-18 Conexant Systems, Inc. Integrated motion detection using changes in acoustic echo path
US9123321B2 (en) 2012-05-10 2015-09-01 Cirrus Logic, Inc. Sequenced adaptation of anti-noise generator response and secondary path response in an adaptive noise canceling system
US9318090B2 (en) 2012-05-10 2016-04-19 Cirrus Logic, Inc. Downlink tone detection and adaptation of a secondary path response model in an adaptive noise canceling system
US9532139B1 (en) 2012-09-14 2016-12-27 Cirrus Logic, Inc. Dual-microphone frequency amplitude response self-calibration
CN103796135B (zh) * 2012-10-31 2018-06-19 马克西姆综合产品公司 具有回声消除的动态扬声器管理
JP5729771B2 (ja) * 2012-11-29 2015-06-03 Necプラットフォームズ株式会社 エコー発生防止装置、その装置を備える電話装置、エコー発生防止方法及びエコー発生防止プログラム
US9414150B2 (en) 2013-03-14 2016-08-09 Cirrus Logic, Inc. Low-latency multi-driver adaptive noise canceling (ANC) system for a personal audio device
US9502020B1 (en) * 2013-03-15 2016-11-22 Cirrus Logic, Inc. Robust adaptive noise canceling (ANC) in a personal audio device
US10206032B2 (en) 2013-04-10 2019-02-12 Cirrus Logic, Inc. Systems and methods for multi-mode adaptive noise cancellation for audio headsets
US9578432B1 (en) 2013-04-24 2017-02-21 Cirrus Logic, Inc. Metric and tool to evaluate secondary path design in adaptive noise cancellation systems
US20140363008A1 (en) * 2013-06-05 2014-12-11 DSP Group Use of vibration sensor in acoustic echo cancellation
US9666176B2 (en) 2013-09-13 2017-05-30 Cirrus Logic, Inc. Systems and methods for adaptive noise cancellation by adaptively shaping internal white noise to train a secondary path
US9620101B1 (en) 2013-10-08 2017-04-11 Cirrus Logic, Inc. Systems and methods for maintaining playback fidelity in an audio system with adaptive noise cancellation
US9392353B2 (en) * 2013-10-18 2016-07-12 Plantronics, Inc. Headset interview mode
US10219071B2 (en) 2013-12-10 2019-02-26 Cirrus Logic, Inc. Systems and methods for bandlimiting anti-noise in personal audio devices having adaptive noise cancellation
JP6420353B2 (ja) 2014-02-18 2018-11-07 ドルビー・インターナショナル・アーベー 周波数依存的減衰段をチューニングするための装置及び方法
US10181315B2 (en) 2014-06-13 2019-01-15 Cirrus Logic, Inc. Systems and methods for selectively enabling and disabling adaptation of an adaptive noise cancellation system
US9478212B1 (en) 2014-09-03 2016-10-25 Cirrus Logic, Inc. Systems and methods for use of adaptive secondary path estimate to control equalization in an audio device
CN105825862A (zh) * 2015-01-05 2016-08-03 沈阳新松机器人自动化股份有限公司 一种机器人人机对话回声消除系统
WO2016178648A1 (en) 2015-05-01 2016-11-10 Cummins Emission Solutions, Inc. Automatic performance tuning for diesel exhaust fluid dosing unit
US10026388B2 (en) 2015-08-20 2018-07-17 Cirrus Logic, Inc. Feedback adaptive noise cancellation (ANC) controller and method having a feedback response partially provided by a fixed-response filter
US9578415B1 (en) 2015-08-21 2017-02-21 Cirrus Logic, Inc. Hybrid adaptive noise cancellation system with filtered error microphone signal
US10123141B2 (en) 2015-11-13 2018-11-06 Bose Corporation Double-talk detection for acoustic echo cancellation
JP6279172B2 (ja) * 2015-11-16 2018-02-14 三菱電機株式会社 エコーキャンセラ装置及び通話装置
CN105516859B (zh) * 2015-11-27 2019-04-16 深圳Tcl数字技术有限公司 消除回声的方法和系统
US10087806B2 (en) * 2016-02-18 2018-10-02 Cummins Emission Solutions Inc. Self-tuning circuit for controlling input pressure values for an aftertreatment system
DK3288285T3 (da) * 2016-08-26 2019-11-18 Starkey Labs Inc Fremgangsmåde og anordning til robust akustisk feedback-undertrykkelse
KR102423744B1 (ko) * 2016-12-30 2022-07-21 하만 베커 오토모티브 시스템즈 게엠베하 음향 반향 제거
CN107277209B (zh) * 2017-07-27 2020-05-29 维沃移动通信有限公司 一种通话调整方法及移动终端
US10542153B2 (en) 2017-08-03 2020-01-21 Bose Corporation Multi-channel residual echo suppression
US10594869B2 (en) * 2017-08-03 2020-03-17 Bose Corporation Mitigating impact of double talk for residual echo suppressors
CN107483762B (zh) * 2017-08-29 2020-07-03 苏州裕太车通电子科技有限公司 一种基于有线通信的回声抵消方法
WO2019070722A1 (en) 2017-10-03 2019-04-11 Bose Corporation SPACE DIAGRAM DETECTOR
CN107945784A (zh) * 2017-12-14 2018-04-20 成都必盛科技有限公司 一种主动降噪音频设备的自动校准方法及装置
US10720173B2 (en) * 2018-02-21 2020-07-21 Bose Corporation Voice capture processing modified by back end audio processing state
CN108630219B (zh) * 2018-05-08 2021-05-11 北京小鱼在家科技有限公司 回声抑制音频信号特征跟踪的处理系统、方法及装置
CN108986836A (zh) * 2018-08-29 2018-12-11 质音通讯科技(深圳)有限公司 一种回声抑制器的控制方法、装置、设备和存储介质
JP6632043B1 (ja) * 2019-03-13 2020-01-15 Necプラットフォームズ株式会社 電話装置及び電話装置の制御方法
US10964305B2 (en) 2019-05-20 2021-03-30 Bose Corporation Mitigating impact of double talk for residual echo suppressors
CN114726386B (zh) * 2021-01-05 2023-05-05 瑞昱半导体股份有限公司 数据接收方法及数据接收器
CN116887160B (zh) * 2023-09-08 2024-01-12 玖益(深圳)医疗科技有限公司 基于神经网络的数字助听器啸叫抑制方法及系统

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4491701A (en) * 1981-03-05 1985-01-01 At&T Bell Laboratories Adaptive filter including a far end energy discriminator
US4644108A (en) * 1982-10-27 1987-02-17 International Business Machines Corporation Adaptive sub-band echo suppressor
US4707824A (en) * 1983-12-15 1987-11-17 Nec Corporation Method and apparatus for cancelling echo
GB8423017D0 (en) 1984-09-12 1984-10-17 Plessey Co Plc Echo canceller
DE3783605T2 (de) * 1987-04-22 1993-07-15 Ibm Echokompensationseinrichtung fuer datenuebertragung ueber eine zweidrahtleitung.
US4918727A (en) 1988-06-09 1990-04-17 Tellabs Incorporated Double talk detector for echo canceller and method
US5274705A (en) * 1991-09-24 1993-12-28 Tellabs Inc. Nonlinear processor for an echo canceller and method
JP2882170B2 (ja) * 1992-03-19 1999-04-12 日産自動車株式会社 能動型騒音制御装置
US5475731A (en) 1994-01-07 1995-12-12 Ericsson Inc. Echo-canceling system and method using echo estimate to modify error signal
JPH10501951A (ja) * 1995-04-03 1998-02-17 フィリップス エレクトロニクス ネムローゼ フェンノートシャップ 自動イコライザを有する信号増幅システム
US5777913A (en) * 1995-12-27 1998-07-07 Ericsson Inc. Resolution enhancement of fixed point digital filters
US5978473A (en) * 1995-12-27 1999-11-02 Ericsson Inc. Gauging convergence of adaptive filters
US5764694A (en) * 1996-01-25 1998-06-09 Rockwell International Corporation Self-testing and evaluation system

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9042566B2 (en) 2011-12-20 2015-05-26 Electronics And Telecommunications Research Institute Wideband acoustic echo cancellation apparatus with adaptive tail length in embedded system, and wideband acoustic echo cancellation method
US9025763B2 (en) 2012-02-09 2015-05-05 Electronics And Telecommunications Research Institute Apparatus and method for cancelling wideband acoustic echo

Also Published As

Publication number Publication date
WO1998051066A2 (en) 1998-11-12
KR20010012349A (ko) 2001-02-15
EE9900515A (et) 2000-06-15
US6185300B1 (en) 2001-02-06
DE69840961D1 (de) 2009-08-20
HK1029690A1 (en) 2001-04-06
CN1139241C (zh) 2004-02-18
MY120321A (en) 2005-10-31
AU749243B2 (en) 2002-06-20
PL336791A1 (en) 2000-07-17
JP2001526009A (ja) 2001-12-11
EP0988744B1 (en) 2009-07-08
AU7168998A (en) 1998-11-27
IL132743A (en) 2003-02-12
CN1262012A (zh) 2000-08-02
EP0988744A2 (en) 2000-03-29
BR9809602A (pt) 2000-07-04
IL132743A0 (en) 2001-03-19
WO1998051066A3 (en) 1999-04-22

Similar Documents

Publication Publication Date Title
KR100524341B1 (ko) 음향 에코 제거기
EP1446894B1 (en) Echo canceller ensuring further reduction in residual echo
EP0615674B1 (en) Network echo canceller
AU754246B2 (en) Methods and apparatus for improved echo suppression in communications systems
JP2538176B2 (ja) エコ―制御装置
US5631900A (en) Double-Talk detector for echo canceller
US5764753A (en) Half-duplex controller
WO2000016497A1 (en) Echo canceler adaptive filter optimization
WO1999035812A1 (en) Methods and apparatus for controlling echo suppression in communications systems
EP0870365B1 (en) Gauging convergence of adaptive filters
EP2101480B1 (en) Echo canceller and echo cancelling method
KR19980086461A (ko) 핸드 프리 전화기
CA2241180C (en) Gauging convergence of adaptive filters

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20121009

Year of fee payment: 8

FPAY Annual fee payment

Payment date: 20131008

Year of fee payment: 9

FPAY Annual fee payment

Payment date: 20141007

Year of fee payment: 10

FPAY Annual fee payment

Payment date: 20151007

Year of fee payment: 11

FPAY Annual fee payment

Payment date: 20161012

Year of fee payment: 12

FPAY Annual fee payment

Payment date: 20171013

Year of fee payment: 13

EXPY Expiration of term