Convolution

컨볼루션의 개념


  • 누적된 반응을 계산하는것
  • 시간에 따라 신호간의 비슷한 정도를 나타내는것

Alt Text

image

이산 컨볼루션


image

  • 델타함수: 0에서는 1의 값을 출력하고 다른 모든곳에의 출력은 0이다. image
  • 임의의 시그널 x[n]을 단위 임펄스함수 델타[n]으로 분해하여 표현 할수 있다.
  • x[k]는 함수가 아닌 x시그널의 함수값이니 상수값으로 생각하여 상수가 곱해진 신호의 합으로도 볼수 있다.

  • (3)번의 식을 위와같이 쓸 수 있다.
  • h[n]은 델타함수의 선형변환이다->LTI 시스템->임펄스 응답이라고도 하며 컨볼루션 시스템에 입출력에 관계를 표현

  • x[n]을 LTI시스템에 넣은 출력값 y[n]

  • LTI시스템에 성질로인해 임펄수 함수들의 응답 h[n]의 컨볼루션으로 표현
  • 델타함수가 이동할때마다 LTI시스템의 특성때문에 h[n]도 이동 LTI시스템의 Time invariant
  • x[k] 가 곱해지는것이 LTI시스템의 scaling
  • 시그마로 더해지는것 LTI시스템의 additivity

예제


image

def conv(v, w):
    c = np.zeros(v.shape)
    for n in range(len(v)):
        c[n] = 0
        for m in range(len(v)):
            c[n] += v[m] * w[n - m]  
    return c

    N = 20
v = np.zeros(N)
v[8:12] = 1
w = np.zeros(N)
w[1:5] = 1
c = conv(v, w)

fig = plt.figure()
ax = fig.gca()
ax.plot(v, '.-')
ax.plot(w, '.-')
ax.plot(c, '.-')
ax.legend(['v', 'w', 'c'])
ax.grid(True)

Reference: https://tootouch.github.io/research/spectral_gcn/ https://ralasun.github.io/deep%20learning/2021/02/15/gcn/ https://ahjeong.tistory.com/15 https://harryjo97.github.io/page3/ https://process-mining.tistory.com/157




© 2021.11. by zziny

Powered by zziny