Gnuradio

Convolution 수식을 보는 2가지 관점

망고토마토 2023. 4. 3. 06:40
반응형

wirelesspi의 software defined radio 2강의 convolution 부분을 보던 중, 왜 convolution에 대한 이해가 쉽지 않을까에 대해 고민 하게 되었다. 그 이유는 컨벌루션을 바라보는 관점이 뒤섞여 있기 때문이라 생각하였다.  

 

 

컨벌루션을 공부하다보면 다음과 같은 수식을 본다. 

신호 s[n]을 크기가 다른 임펄스 신호들이 모인 것으로 표현할 수 있다. 

 

신호 s[n]이 A라는 시스템을 통과하였다면 응답B를 어떻게 될까?

임펄스 응답 h[n]과 컨벌루션을 이용하여 응답B를 구할 수 있다. 

 

임펄스 응답 h[n] = 임펄스 신호에 대한 A 시스템의 응답

 

신호 s[n]과 임펄스 응답 h[n]을 컨벌루션하면 응답 B를 구할 수 있다. 

 

컨벌루션은 신호와 시스템에서 자주 언급되지만 그 수식에 대한 의미가 잘 와닿지를 않는다. 

그 이유가 컨벌루션을 바라보는 관점이 섞여서 어렴풋이 알게 되지 않았나 싶다.

 

컨벌루션을 바라보는 관점은 2가지가 있다고 본다. 

1번째 관점 : 신호s[n]을 구성하는 임펄스들의 응답이 모인 것

2번째 관점 : 수식적(?) 관점, 시스템 응답 중 일부만 구하고 싶은 경우, 임펄스 응답h[n]을 folding하고 shiting한 것과 신호 s[n]의 합,곱

 

다음과 같이 신호 s[n]과 시스템 A의 임펄스 응답h[n]이 있다면

s[n]에 대한 시스템 A의 응답은 어떻게 표현될 것인가 ? . 

컨벌루션을 이해하는 관점이 2가지가 있다고 본다.

 

● 1번째 관점

 

신호 s[n]에 대한 시스템 A의 응답을 다음과 같은 관점에서 볼 수 있다. 

 

입력 신호 s[n]을 크기와 지연시간이 다른 임펄스들이 구성되어 있다고 본다. 

그리고 

다음과 같이 임펄스 신호 각각에 대한 응답을  각각 구한다. 

신호 s[0]에 대한 임펄스 응답 s[0]h[n]     - 1

신호 s[1]에 대한 임펄스 응답 s[1]h[n-1]  - 2

신호 s[2]에 대한 임펄스 응답 s[2]h[n-2]  - 3

 

1,2,3을 다 합친 것을 신호 s[n]에 대한 시스템 A의 응답으로 본다. 

 

 

1번째 관점은 컨벌루션을 왜 하는지에 대한 이해를 하기에 좋은 관점이라고 생각한다. 

 

 2번째 관점

 

신호 s[n]에 대한 시스템 응답을 구할 때 시스템 응답 전체를 알고 싶은 것이 아니라 시스템 응답 중 일부분만 보고 싶은 경우도 있다. 1번째 관점에서 컨벌루션을 한다면, 신호 s[n]에 대한 시스템 응답 중 일부분만 알고 싶더라도 시스템 응답을 전체 다 구해야한다. 하지만 2번째 관점에서는 그렇지 않아도 된다. 

 

그래서 컨벌루션에 대해 설명할 때 다음과 같이 설명하는 자료도 있다. 

신호 s[n]에 대한 시스템 A의 응답을 임펄스 응답h[n]을 folding하고 shift한 것과 신호 s[n]의 합,곱으로 표현한다. 

 

 

2번째 관점에서 바라본 컨벌루션 (이산신호의 경우)
2번째 관점에서 바라본 컨벌루션 (연속신호의 경우)

2번째 관점에서 컨벌루션을 한다면, 신호 s[n]에 대한 시스템 응답 중 일부분에 대해서도 계산 할 수 있지만, 계산하는 수식에만 함몰되어서 컨벌루션을 왜하는지에 대해 보지 못하게 되는 것 같다.

 

그래서 컨벌루션을 바라볼 때, 1번째 관점에 대해 먼저 이해한 다음, 2번째 관점에서 바라보아야 하는 것 같다. 

 

  컨벌루션의 시뮬레이션 - 1번째 관점에 따라 컨벌루션 수식 구성

 

신호 s[n]이 [1,4,2,3] 이고 임펄스 응답 h[n]이 [5,2,4,1,0,0,0]인 경우

신호 s[n]에 대한 응답은 ?

 

신호 s[n]의 [1,4]에 대한 응답

 

신호 s[n]의 [2,3]에 대한 응답

신호 s[n]에 대한 응답은 신호 s[n]의 [1,4]에 대한 응답과 신호 s[n]의 [2,3]에 대한 응답을 합친 것으로 볼 수 있다. 

신호 s[n]에 대한 응답

반응형