Adaptive filter 정의, 사용 이유, 활용 예시
본문 바로가기
연구 노트/적응신호처리

Adaptive filter 정의, 사용 이유, 활용 예시

by NEWSUN* 2024. 9. 3.

Adaptive filter란 무엇인가?

adaptive하다는 건 시간에 따라 변화하는 데이터나 환경에 대응하여 적응할 수 있는 성질을 가지고 있다는 걸 의미합니다. adaptive filter는 입력 신호의 특성에 따라 filter coefficient 또는 tap weight가 특정 criterion에 의해 시간에 따라 변화하는 필터를 말합니다. 고정된 coefficient를 가지는 일반적인 필터와는 달리, adaptive filter는 환경 변화에 맞춰 값을 조정하여  성능을 최적화할 수 있습니다.

 

언제 Adaptive filter를 사용할까?

  • signal 특성을 미리 알 수 없거나 signal이 time variant할 때 사용합니다.
    • Ex) speech signal, video signal, nonstationary noise
  • system 특성을 미리 알 수 없거나 system이 time variant할 때 사용합니다.
    • Ex) echo path, channel, ...
  • 특히 closed form solution이 존재하지 않을 때 사용합니다.
    • criterion은 가지고 있으나 풀 수 없는 상황일 때, 수렴 알고리즘을 이용해 최적화된 근사 해를 구함

 

Adaptive filter 활용 예시

* Acoustic Echo Cancellation

unknown system $h(n)$을 모사하도록 $\hat{h}(n)$을 설계함

 

echo는 상대방 핸드폰 스피커에서 들리는 내 목소리가 다시 상대방 마이크로 들어가서 내가 내 목소리를 듣게 되는 현상으로, 통화 품질을 떨어뜨립니다. 일반적인 통화 상황을 가정했을 때, 마이크 신호에서 스피커로 내보내는 건 $x(n)$, 즉 상대방의 목소리입니다. echo cancellation은 마이크 신호에서 스피커로 나가는 성분과 관련있는 걸 제거함으로써 이뤄집니다. 다시 말해, 내가 말하는 것 $s(n)$, 주변 잡음 $b(n)$과 마이크 echo $d(n)$을 포함한 시스템 출력 $y(n)$에 근사하도록 차이 $e(n)$을 최소화하는 최적의 $\hat{d}(n)$을 구해 빼줌으로써 에코를 제거할 수 있습니다.

 

 

* System identification 

 

어떤 시스템인지 모르거나 non linear하고 복잡한 시스템을 간단한 선형시스템으로 모사하고 싶을 때 System identification을 수행합니다. 입력과 출력을 알고 있다고 가정하기 때문에, 입력을 잘 필터링해서 원하는 신호인 $d(n)$에 근사하도록 동작합니다.

 

 

* Noise cancellation

 

Primary signal은 원하는 신호 $s(n)$과 잡음 $n_2(n)$을 포함하고 있고 reference signal은 잡음 $n_1(n)$만 가지고 있다고 가정해봅시다. 각 잡음들은 다르지만 같은 소스에서 나온 것이기 때문에 correlation이 있습니다. 따라서 reference mic signal을 이용해 primary mic signal의 잡음을 제거할 수 있습니다. 구체적으로 얘기하자면, $n_1(n)$에 adaptive filter를 돌리고 얻은 $y(n)$을 $d(n)$과 최대한 비슷하게 만들어 제곱 평균값의 차이 $e(n)$를 최소화하도록 설계합니다. 이때, $s(n)$을 $n_1(n)$으로 추정할 수 없으므로 알아서 $n_2(n)$이 $n_1(n)$ 필터링 된걸로 나오기 때문에 원하는 소스 $s(n)$을 추출할 수 있습니다.

 

실제 상황에서는 Reference Signal도 원하는 신호를 포함할 수 있고, 소스의 위치도 불확실하기 때문에, 현실 문제에 적용할 땐 최소 두 개의 Adaptive Filter가 필요하다는 등 문제가 복잡해질 수 있습니다.

 

 

* Hearing aid

 

보청기는 바깥쪽 마이크에서 소리를 받아 음량을 키워서 착용한 사람에게 틀어주는 방식으로 작동합니다. 하지만, 음량이 커지게 되면 스피커에서 틀어준 소리 일부가 마이크로 들어가 음량이 계속해서 커지는 howling 문제가 발생할 수 있습니다. 이를 해결하기 위해, echo cancellation에서 했었던 것처럼, 스피커에서 나온 소리 (알고 있다고 가정)를 필터링하여 마이크 신호에서 빼주면 이론적으로 원하는 소리를 얻을 수 있게 됩니다. 

 

 

* Adaptive line enhancer

 

powerline noise는 전력선에서 발생하는 특정 주파수 (60hz)의 잡음으로, 오디오 신호의 품질을 저하시킬 수 있습니다. adaptive line enhancer는 이런 powerline noise와 같은 주파수 잡음을 제거하기 위해 설계된 시스템입니다. 단순한 sinusoidal 잡음이 끼어있을 경우, 입력 신호를 delay한 후에 마이크 신호에서 예측가능한 periodic 성분 $\hat{s}(n)$을 제거함으로써 미래의 $\nu (n)$을 추정할 수 있습니다. 



GIST 신종원 교수님 '적응신호처리' 수업 자료를 바탕으로 쓴 글입니다.