'MSE'에 해당되는 글 1건

  1. 2012.06.09 Wiener Filter (3)

글이 많이 늦었습니다 ㅋㅋ 

근데 뭐 구독하시는 분이 있었을려나 ㅠㅠ ㅋㅋㅋ 여하튼 또 정말 잠시 짬이 나는관계로 키보드를 들었는데 ㅋㅋㅋ

이게 원체 내용이 만만치가 않고 분량도 많다보니 글을 쓰기 시작하는데 두려움이 앞서네요 ㅋㅋ

일단 천천히 써가 보고 ㅋㅋㅋ

혹시나 ADF 를 공부해 가시는 분들이 제 포스팅을 보고 저보다는 덜 삽질을 하면서 공부를 시작하시길 바랍니다 ㅋ

그리고 중요한 사실은 물론 저도 이것을 공부했지만 완벽하지 않다는 사실입니다. 제가 아는 한도 내에서, 제가 이해한 것들을 기술하는 것이니, 틀린부분이나 부족한부분은 가감없이 지적해 주시고, 혹 지나가시던 고수분들이시라면 저에게도 많은 지도 편달 부탁드리겠습니다.

그럼 한번 시작해 볼까요?


1. Wiener Filter 의 기본

Adaptive Filter 를 알려 달라니까 왜 자꾸 Random Process 이야기 하고, 통계적 신호처리 이야기하고, 이제는 Wiener Filter 를 이야기하느냐 라고 생각하시는 분들 있으실 것이라고 생각합니다.

이 글에서 그 궁금증을 해결해 드리도록 하겠습니다.

1900년대 초중반에 미국의 수학자 Norbert Wiener 에 의해서 창시된 이 filter 는 입력을 원하는 출력과 가능한 매우 유사하게 변환시켜주는 필터입니다. 처음 접하시는 분들이 여기서 헷갈리시는 것이, FIR, IIR 구조의 필터 외에 Wiener Filter 라는 구조가 또 있는가? 라는 식으로 생각하시어 접근하시는 경우가 있는데 이러면 문제가 어려워집니다 ㅋㅋ 차라리 버터워스, 체브쉐비 필터와 같은 개념이라고 생각하세요. 자세한것은 뒤에서 언급하겠습니다.

현재 우리가 다루는 시그널은 Random Process 입니다. 위에서 간단하게 말씀드렸듯이 이 필터는 내가 원하는 출력과 유사하게 변환을 시켜준다고 하였지요? 그래서 버터워스나 체브쉐비 필터와는 다르게 desired input : d(n) 이라는 라인이 하나 더 나와있게 됩니다. 일단 그림한장 보고 가시죠.


<그림 1> 기본적인 Wiener filter 의 구조


그림 1을 보시기 바랍니다. 여기서 주의하셔야 할것은, 위의 그림 전체가 Wiener filter 입니다. 간혹 가다가 가운데 네모박스 되어있는 Linear discrete-time filter 부분이 Wiener filter 라고 착각하시는 분들이 있는데 그렇게 접근하시면 이 내용을 끝까지 따라오기가 굉장히 어려워 지십니다.  

Linear discrete-time filter 에 대해서는 학부 2학년 선형 시스템 등에서 많이 배우셨을 것입니다. FIR 구조를 갖는 All-zero filter, IIR 구조를 갖는 pole-zero filter ㅋ 기억나시지요? 자세한것은 이미 아시리라 생각하고 넘어갑니다. 여하튼 이곳에는 이런 필터구조가 들어가요. 헌데, IIR 필터구조는 FIR 구조에 비해 같은 performance 를 내기위해서 더 적은 연산량을 요구한다는 장점을 갖는 반면에 필터 전달함수의 pole 이 z-domain 의 Unit Circle 안에 있지 않을 경우 시스템의 출력이 발산을 할수 있다는 무시무시한 단점을 가지고 있습니다. 그래서 대부분 FIR 구조의 필터를 이곳에 적용시키는것이 대부분 이랍니다. FIR 구조를 다른 말로 TDL 이라고도 불르죠. Tap-delayed line 의 약자입니다. 그러니 뭐 TDL 을 보셔도 쫄 필요 없어요 ㅋ 아, 필터구조를 FIR 로 짰구나 라고 생각하시고 쉽게 넘어가십시용 ㅋㅋ

자 그럼 여기에서 나오는 저 w 라는 것은 무엇일까요? ㅋㅋ 뭐 쉽죠 ? FIR 필터의 필터계수라고 생각하십시요. 사용하는 FIR 의 차수에 따라 w 의 갯수가 변화하겠죠?? ㅋㅋ Wiener Filter 는 저놈의 w 를 값을 정의해 주는 필터입니다. 어떻게??? Cost Function 의 결과가 최소가 되도록 ㅋㅋ 지금은 말이 어렵지요? Cost Function 이라는 것을 잘 모르니까요 ㅋ 그럼 밑에서 Cost Function 에 대해서 이야기 해보지요.


2. Cost Function

한국말로 "비용함수" ㅋㅋㅋ 아 없어보여 ㅋㅋㅋ

여하튼, 우리가 하고싶은 일은 Input 으로 아무 신호나 때려 집어 넣어두고 내가 원하는 출력 포멧이 나오도록 필터의 계수를 얻고싶은 것입니다. 내가 원하는 신호와 내가 정한 필터의 출력이 완벽하게 일치를 한다면???? 내가 원하는 신호에서 필터출력을 뺀 값이 0 이 되면 되겠지요?? 그 조건을 만족하는 필터의 필터계수 w 를 찾아내자는 것입니다. 이 개념을 복소 입력으로 까지 확장해서 우리가 0 으로 만들고싶은 것을 error 이 e(n) 이 아닌 error 의 제곱평균 좀 유식한 말로 error 의 Mean Squared Error (MSE) 로 설정을 하는 것이지요. 명심하세요. Wiener Filter 의 Cost Function 은 MSE 입니다. 수식으로 정의해 보자면 아래와 같겠죠??


<그림 2. Cost function : Mean square error>


3. Linear Optimum Filter

자 그럼 앞에서 뭘해야할지에 대해 언급했다면 지금부터는 어떻게 해야할지에 대해서 한번 말해보기로 하지요. 위의 블럭도에서 본 필터를 TDL 방식으로 풀어서 다시 써보도록 하죠. 그럼 MSE 가 어떻게 보이는지도 한눈에 들어올테고. 일단 그림부터 나갑니다.


<그림 3. TDL Filter 구조를 갖는 Wiener filter>

익숙한 구조이지요? ㅋ

이런 FIR 구조의 출력은 아래와 같이 쓸수있지용? 


이정도는 뭐 ㅋㅋㅋ 근데 이렇게 시그마 날라다니고 이래서야 어떻게 증명을 해나가겠습니까 ㅋㅋ 그래서 이식을 아래와 같이 벡터 형태로 표현하도록 하겠습니다 ㅋㅋ

뭐 쉽지요 ㅋㅋ 일단 이놈의 FIR 구조 필터출력은 입력 신호와 필터계수에 의해 나오게 되는것이니까요 ㅋ

 이렇게 필터의 출력까지 정의를 내렸으면 우리는 비로소 에러 시그널을 정의 내릴수 있습니다 ㅋ

아 이거 너무 자세히 할려다보니까 아주 끝이 없네 ㅋㅋㅋ


너무나도 명확한 사실이죠? ㅋ 내가 원하던 신호에서 현재 나왔던 출력을 빼준것이 에러다 라고 말하는거니까요 ㅋ

앞에서 말한 Cost function 을 생각해보세요 ㅋ

에러의 Mean Square Error (MSE) 를 가져다가 쓴다구 했지요?? 

그대로 구해보지요 ㅋ 에러 제곱의 평균 ! ㅋㅋ 근데 여기서 말하는 평균은 앙상블 평균 (Ensemble Average) 입니다 

원래 우리가 첨부터 이야기 해온게 통계적 신호처리였자나여 ㅋㅋ Randon process 의 평균은 앙상블 평균을 구해야하자나여? ㅋㅋ 이때 신호가 WSS 하고 Erogodic 하다면 앙상블 평균과 시간평균은 같다라고 볼수있구???

기억 나시죠? ㅋ 안나면 앞으로 되돌아가서 다시 공부 ㅋㅋㅋ



자 위에서 구한 에러의 MSE 의 최종 출력을 보시지요 ㅋㅋ

핕터계수 w 에 관한 2차 식으로 정리가 됨을 알 수 있으시지요? ㅋㅋ

그럼 이놈의 위너필터의 필터계수는 뭘 만족해야겠습니까? ㅋㅋ

그라죠이~~ 원래 우리가 하고자 했던게 Cost Function 을 최소한 으로 만들고 싶었던거죠?? 

그말인즉슨, error 의 MSE 가 최소가 되도록 하겠다 이거자나여 ~ ㅋㅋ

그럼 저위의 MSE 식이 최소가 되도록 해야겠군요 ㅋ 식으로 나타내 보지요~ 


딴지거실분??? 있으신가요?? 

당연히 있어야지 왜 없어요!!!!

이거는 말이 안되자나여 ㅋㅋ

2차식에서 미분한것이 0이 되는 지점이 변곡점은 맞지요 ~ 이 지점이 최소라고 할 수 있나요??

불연속적인 점을 제외한다고 해도 저 위의 식이 성립하려면 2차항의 계수가 양수일때만 가능한 이야기이지요??

중학교때 생각들해보셔요 ㅋㅋㅋ

네네~ ㅋㅋ 저위에서나온 cost function 은 Positive Definite 되어 있습니다. 그래서 위에서 말한 미분한게 0 이 되는 지점이 비용함수를 최저로 하는것이 맞아요 ㅋㅋ

왜그러냐구요???

증명해 드릴수 있는데요~ 그거는 궁금해하시는분들이 있으면 아래에 댓글로 알려드릴게요 ~ 아직도 해야할 일이 너무 많아요 ㅋㅋ 일단은 " 아 ~ 비용함수가 필터계수의 이차식으로 표시되는데 이 식의 최고차항 계수는 항상 양수구나" 이렇게 알아두시고 넘어가시기를 바랍니다~

다시한번 정리하면!!! Error 의 MSE 를 0 으로 만드는 Wiener filter 의 필터 계수 wk 를 찾는 것이 지금 우리가 하고 잇는 과정이랍니다~ 

ㅇㅇ 그럼 직접 미분해서 식을 정리해보도록 하지요~




아 이거 진짜 며칠에 걸쳐서 써야겠네 ㅋ 해도해도 끝이 안나네 정말로 ㅋㅋ 일단 여기까지 쓰고 담번에 이어서 마져 써드릴게요 ㅋㅋ

저작자 표시 비영리 동일 조건 변경 허락
신고
Posted by J.Bear