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번째 관점에서 컨벌루션을 한다면, 신호 s[n]에 대한 시스템 응답 중 일부분에 대해서도 계산 할 수 있지만, 계산하는 수식에만 함몰되어서 컨벌루션을 왜하는지에 대해 보지 못하게 되는 것 같다.
그래서 컨벌루션을 바라볼 때, 1번째 관점에 대해 먼저 이해한 다음, 2번째 관점에서 바라보아야 하는 것 같다.
● 컨벌루션의 시뮬레이션 - 1번째 관점에 따라 컨벌루션 수식 구성
신호 s[n]이 [1,4,2,3] 이고 임펄스 응답 h[n]이 [5,2,4,1,0,0,0]인 경우
신호 s[n]에 대한 응답은 ?
신호 s[n]에 대한 응답은 신호 s[n]의 [1,4]에 대한 응답과 신호 s[n]의 [2,3]에 대한 응답을 합친 것으로 볼 수 있다.
'Gnuradio' 카테고리의 다른 글
FIR filter - Moving average filter (0) | 2023.04.09 |
---|---|
FIR filter - window 함수 그리고 실제로 구현가능한 Low pass filter (0) | 2023.04.09 |
gnuradio - time shift effect (0) | 2023.03.07 |
gnuradio - sampling and aliasing (0) | 2023.03.05 |
gnuradio 시뮬레이션 - fft example 4, fft 결과의 주파수 분해능은 얼마가 될까? (0) | 2023.03.01 |