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
Echo는 상대방 핸드폰 스피커에서 들리는 내 목소리가 다시 상대방 마이크로 들어가서 내가 내 목소리를 듣게 되는 현상으로, 통화 품질을 떨어뜨립니다. 본 예제에서는 내 스피커에서 나오는 상대방의 목소리가 다시 내 기기의 마이크로 들어가 발생하는 echo를 제거하는 것이 목표입니다. 상대방의 목소리를 나타내는 $x(n)$이 통화 기기 내 시스템(스피커 특성, 공기를 통해 전파되는 echo 경로, 마이크 특성 포함) $h(n)$을 거쳐 echo 신호 $d(n)$으로 변환됩니다. 마이크에는 $d(n)$뿐만 아니라 내 목소리인 $s(n)$과 주변 배경 잡음 $b(n)$도 함께 들어가, 스피커로 나오는 출력 신호 $y(n)$이 생성됩니다. Echo를 제거하여 내 목소리만 남기기 위해서는, 스피커에서 나온 신호 성분을 필터링해 $d(n)$과 유사한 신호인 $\hat{d}(n)$을 만들어줘야 합니다. 출력 신호 $y(n)$에서 $\hat{d}(n)$을 빼서 얻은 error 신호 $e(n)$의 파워를 최소화하면, $d(n)$과 $\hat{d}(n)$이 자연스럽게 일치하게 됩니다. 이는 상대방의 목소리, 내 목소리, 그리고 주변 잡음이 서로 관련이 없기 때문에, 필터링을 아무리 잘하더라도 통계적으로 $s(n)$과 $b(n)$을 추정할 수 없기 때문입니다. 따라서 평균 제곱 오차(MSE)를 최소화하면 $h(n)$과 $\hat{h}(n)$ 시스템이 비슷해지고, 최적의 $\hat{d}(n)$을 얻을 수 있습니다. 그리고 이 값을 스피커 출력 $y(n)$에서 빼줌으로써 echo를 제거하고, 원하는 신호만 남길 수 있게 됩니다.
* 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 신종원 교수님 '적응신호처리' 수업 자료를 바탕으로 쓴 글입니다.
'연구 노트 > 적응신호처리' 카테고리의 다른 글
Steepest descent Method 총정리 (0) | 2024.10.22 |
---|---|
Linear Prediction 바로 알기 (0) | 2024.10.21 |
Wiener filter 총정리 (0) | 2024.10.19 |
NLMS filter의 Stability (0) | 2024.10.18 |
NLMS filter 수식 유도 (0) | 2024.10.17 |