당신이 올바른지. 많은 에코 제거 방법이 존재하지만 그중 어느 것도 정확히 사소한 것은 아닙니다. 가장 일반적이고 널리 사용되는 방법은 적응 형 필터를 통한 에코 제거입니다. 한 문장에서, 적응 필터의 역할은 입력에서 나오는 정보의 양을 최소화하여 재생중인 신호를 변경하는 것입니다.
적응 형 필터
적응 형 (디지털) 필터는 계수를 변경하고 결국 최적의 구성으로 수렴하는 필터입니다. 이 적응 메커니즘은 필터의 출력을 원하는 출력과 비교하여 작동합니다. 아래는 일반적인 적응 형 필터의 다이어그램입니다.
다이어그램에서 알 수 있듯이, 신호 은 출력 신호 을 생성하기 위해 으로 필터링됩니다 ( . 그런 다음 원하는 신호 에서 을 빼서 오류 신호 을 생성합니다 . 참고 계수의 벡터이고, 숫자가 아닌 (따라서 우리는 쓰지 않는다 ). 모든 반복 (모든 샘플)을 변경하기 때문에 이러한 계수의 현재 컬렉션을 첨자 화합니다 . 이 확보 되면 이를 사용하여 을 업데이트합니다.→ w N 개의 D [ N ] D [ N ] D [ N ] E [ N ] → w N w [ N ] N E [ N ] → w N → w N 개의 D [ N ]x[n]w⃗ nd^[n]d^[n]d[n]e[n]w⃗ nw[n]ne[n]w⃗ n선택한 업데이트 알고리즘으로 (나중에 자세히 설명). 입력과 출력이 시간이 지남에 따라 변하지 않고 잘 설계된 업데이트 알고리즘을 제공하는 선형 관계를 만족하는 경우 은 결국 최적 필터로 수렴하고 은 밀접하게 .w⃗ nd^[n]d[n]
에코 캔슬
반향 제거 문제는 입력-출력 관계를 만족시키는 최적의 필터를 찾아서 입력에 대해 알려진 이상적인 출력을 생성하려고하는 적응 형 필터 문제의 관점에서 제시 될 수 있습니다. 특히, 헤드셋을 잡고 "hello"라고 말하면 네트워크의 다른 쪽 끝에서 수신되며 방의 음향 응답에 의해 변경되고 (소리가 크게 재생되는 경우) 네트워크로 피드백되어 되돌아갑니다. 에코로 당신에게. 그러나 시스템은 초기 "hello"소리가 무엇인지 알고 이제 잔향되고 지연된 "hello"소리가 무엇인지 알고 있으므로 해당 룸 응답이 적응 형 필터를 사용하는 것을 시도하고 추측 할 수 있습니다. 그런 다음 그 추정치를 사용할 수 있습니다. 모든 수신 신호를 임펄스 응답으로 에코 (에코 신호의 추정치 제공)하고 전화 한 사람의 마이크에 들어가는 신호에서 빼십시오. 아래 다이어그램은 적응 형 에코 제거기를 보여줍니다.
이 다이어그램에서 "hello"신호는 입니다. 라우드 스피커에서 재생 된 후 벽에서 튀어 나와 장치의 마이크로폰에 의해 픽업되면 에코 신호 됩니다. 적응 필터 은 취하여 수렴 후 에코 신호 이상적으로 추적해야하는 출력 을 생성합니다 . 따라서 은 결국 회선의 다른 쪽 끝에서 아무도 이야기하지 않는다는 점을 감안할 때 결국 0이되어야합니다. 일반적으로 헤드셋을 들어서 말했을 때입니다. "여보세요". 이것이 항상 사실은 아니며, 비 사례 적 고려 사항은 나중에 논의 될 것이다.d [ n ] → w n x [ n ] y [ n ] d [ n ] e [ n ] = d [ n ] − y [ n ]x[n]d[n]w⃗ nx[n]y[n]d[n]e[n]=d[n]−y[n]
수학적으로 NLMS (normalized minimum mean square) 적응 필터는 다음과 같이 구현됩니다. 이전 단계의 오류 신호를 사용하여 모든 단계를 업데이트 합니다. 즉, 보자w⃗ n
x⃗ n=(x[n],x[n−1],…,x[n−N+1])T
여기서 은 의 탭 (샘플) 수입니다 . 샘플이 역순인지 확인하십시오. 그리고하자→ w n xNw⃗ nx
w⃗ n=(w[0],w[1],…,x[N−1])T
그런 다음 우리 는 및 의 내부 곱 (두 신호가 모두 실제 인 경우 내적)을 찾아 (볼록으로) 을 계산 합니다 .y[n]=x⃗ n=w⃗ n
y[n]=x⃗ Tnw⃗ n=x⃗ n⋅w⃗ n
이제 오류를 계산할 수 있으므로 정규화 그라디언트 디센트 방법 을 사용하여 오류 를 최소화하고 있습니다. 대한 다음 업데이트 규칙이 있습니다 .w⃗
w⃗ n+1=w⃗ n+μx⃗ ne[n]x⃗ Tnx⃗ n=w⃗ n+μx⃗ nx⃗ Tnw⃗ n−d[n]x⃗ Tnx⃗ n
여기서 는 와 같은 적응 단계 크기 입니다.μ0≤μ≤2
실제 응용 프로그램 및 과제
이 에코 제거 방법에는 여러 가지가 있습니다. 우선, 앞에서 언급 한 것처럼 상대방이 "안녕하세요"신호를받는 동안 조용히있는 것은 아닙니다. 입력 신호와 에코가 있기 때문에 라인의 다른 쪽 끝에 상당한 양의 입력이 존재하는 동안 임펄스 응답을 추정하는 것이 여전히 유용 할 수 있음을 알 수 있습니다 (그러나이 회신의 범위를 벗어남). 통계적으로 독립적 인 것으로 가정; 따라서 오류를 최소화하는 것은 여전히 유효한 절차입니다. 일반적으로 에코 추정을위한 적절한 시간 간격을 감지하려면보다 정교한 시스템이 필요합니다.
반면에, 수신 된 신호가 거의 무음 일 때 (실제로) 에코를 추정하려고 할 때 어떤 일이 발생하는지 생각해보십시오. 의미있는 입력 신호가 없으면 적응 형 알고리즘은 의미없는 결과를 만들어 내고 빠르게 시작하여 임의의 에코 패턴으로 끝납니다. 이것은 음성 탐지도 고려해야한다는 것을 의미합니다 . 현대 반향 제거기는 아래 그림과 비슷하지만 위의 설명은 그 핵심입니다.
적응 형 필터와 반향 제거 및 탭할 수있는 일부 오픈 소스 라이브러리에 대한 많은 문헌이 있습니다.