많은 학생들이 convolution의 의미를 모르고 그냥 배운대로 계산만 하는것 같다. 얼마전 아는 후배도 convolution의 의미에 대해 물어본적이 있는데 나도 학부시절 고민하던 것으로 혼자 골똘히 생각해 보다 이해하게 된 것인데 전자공학을 공부하는 학부생들의 이해를 돕고자 글을 올린다.

간단히 convolution의 의미에 대해 말하자면 시스템에 메모리가 있는 경우 한 시스템의 출력이 현재 입력에 의해서만 결정되는 것이 아닌 이전 입력(causal system 이라면)에 의해서도 영향을 받기 때문에 그에 대한 출력을 나타내기 위해 하는 연산이다.
예를 들어 종(鍾)을 LTI(Liner Time Invariant) 시스템이라고 가정한다면 종을 한번 치면 그 소리가 치는 순간만 나는게 아니라 치는 순간에 소리가 크게 났다가 점점 소리가 감쇠되며 작아진다.

이해를 돕고자 그림으로 나타내면 다음 그림의 첫번째 경우와 같다. 종을 한번 탕 치는 것을 impulse 입력이라 하고 한번 종을 쳤을 때 나는 소리를 삼각형으로 나타냇다.

그런데 종을 한번 치고 다시 치면 어떨까? 그림의 두번째 경우는 처음 종을 치고 잠시 후 이전보다 약하게 친 경우이다. 이 때는 종소리를 Linear system으로 가정했기 때문에 이전의 입력에 의해 나고 있는 소리에 현재 입력에 의해 나는 소리가 더해져 나타난다. 그리고 이것은 impulse 입력과 종소리의 convolution 과 같은 결과가 나올 것이다.

따라서 convolution은 한 LTI 시스템에 대해 현재와 이전의 입력에 대한 출력을 계산하기 위해 수행하는 것이다.


그림의 두번째 경우를 보면 왜 컨볼루션을 할 때 system이나 입력중 하나를 반전시켜야 하는지에 대해 알 수 있다.
한 시스템에 시간적으로 앞선 입력을 먼저 넣고 그 후에 시간적으로 나중에 발생한 입력을 넣어야 올바른 출력을 얻을 수 있기 때문에 시간적으로 앞선 입력을 먼저 넣기 위해 입력을 반전시키거나 시스템을 반전시키는 것이다.

입력을 반전시키지 않으면 처음에 종을 약하게 치고 그 후에 세게 친것과 같은 결과가 나오기 때문에 시간적으로 반대의 결과가 나온다.

'학부생활의 기록' 카테고리의 다른 글

크리스마스 트리  (7) 2010.12.21
Convolution의 의미  (10) 2010.12.05
10진수 <-> 2진수 변환 프로그램  (0) 2010.11.18
PID 제어 시뮬레이션  (0) 2010.11.18
처음으로 만들어본 로봇  (0) 2010.02.17
16-bit color TFT LCD를 이용해 만들었던 장난감  (3) 2010.02.10
Posted by 차가운엔지니어