콘볼루션 (합성곱)이란?

메이커 2018-09-20 (목) 12:52 5년전 11434  

콘볼루션 (Convolution)이란

 

대학교 2학년 때, 공업수학에서 처음으로 Eigenvalue와 Eigenvector에 대해서 배웠던 것 같습니다.

{\displaystyle |A-\lambda I|=0}

 

 

 

 

 

와 같은 수식을 외우고, 열심히 연습문제와 과제를 풀고, A4 용지 가득 Eigenvector를 적어서 냈던 기억이 있습니다. 

그리고, 항상 궁금했던 것 같습니다. 

Eigenvalue는 뭐지? Eigenvector는 뭐지? 

 

참고: https://blog.naver.com/roboholic84/221361148877 

 

문제는 열심히 풀고, 학점은 잘 받았는데 이게 도대체 무엇을까. 

 

3학년이 되었습니다. 그리고, 신호와 시스템, 시스템해석, 그리고 자동제어라는 과목에서 콘볼루션(convolution)이라는 용어를 배우게 되었습니다. 합성곱이라고.

 

{\displaystyle {\begin{aligned}(f*g)(t)&\,{\stackrel {\mathrm {def} }{=}}\ \int _{-\infty }^{\infty }f(\tau )g(t-\tau )\,d\tau \\&=\int _{-\infty }^{\infty }f(t-\tau )g(\tau )\,d\tau .\end{aligned}}} 

 

 

 

하지만, 이것만으로는 배웠다는 느낌이 들지 못했습니다. 왜냐하면, 누군가에게 설명하기 힘들기 때문이었죠. 

 

콘볼루션을 초등학생에게 설명한다면, 곱하기를 포함하는 "슈퍼곱하기"라고 표현할 것 같습니다. 그 이유는 시간에 대해서 합성곱(콘볼루션)을 하게 되면 매 순간의 곱하기들의 연속값을 가져오기 때문이죠. 곱하기는 하나의 신호가 델타함수인 콘볼루션의 예입니다. 


조금 더 구체적으로 어떻게 이해할 수 있을까요? 위키피디아에는 f(t)와 g(t)라는 함수를 다음과 같이 정의하고 2개의 신호가 콘볼루션(합성곱)하는 프로세스를 보여줍니다.

f(t)를 스피커라고 하고, g(t)를 음악의 전기 신호라고 가정해보겠습니다 (일반적으로 콘볼루션은 신호와 시스템에서 배우기 때문에, 신호(g(t))와 시스템 (f(t))로 가정하면 좋을 것 같습니다)


1) 땅땅하고 소리를 내는데, 앞으로 2초 뒤에 소리 신호가 들어오고, 5초 뒤에 더 큰 소리 신호가 들어옵니다. 

f3ff013b20ca2750bcf675819f0ccad8_1537415

2) 두 개의 시스템을 합성곱하게 되었을 경우, 음악 신호를 반전시키지 않으면 올바른 출력이 나오지 않습니다.

f3ff013b20ca2750bcf675819f0ccad8_1537415

f3ff013b20ca2750bcf675819f0ccad8_1537415


3) 그리고 음악 신호가 흘러나온다면 스피커에서의 출력은 다음과 같이 됩니다. 

f3ff013b20ca2750bcf675819f0ccad8_1537415
f3ff013b20ca2750bcf675819f0ccad8_1537415



먼가 깔끔한 설명이 아닌 것 같네요. 궁금한 점은 댓글로 부탁드리겠습니다. 

 



 

 

 

  

메카리워즈 Image Map


모바일 버전으로 보기