MCP로 연결 →

계산 입력

공식

광고

결과

합성곱 결과:

4, 13, 28, 27, 18

첫 번째 수열 1,2,3
두 번째 수열 4,5,6

컨볼루션 계산기로 할 수 있는 일

이 컨볼루션 계산기는 유한한 두 수열의 이산 합성곱(discrete convolution)을 계산합니다. 합성곱은 신호 처리, 이미지 필터링, 확률, 다항식 곱셈 등에서 핵심이 되는 연산입니다. 복잡한 합을 손으로 일일이 계산할 필요 없이, 두 수열만 입력하면 결과로 합쳐진 출력 수열을 곧바로 확인할 수 있습니다.

사용 방법

입력란은 단 두 개뿐입니다.

  • 첫 번째 수열 — 입력 신호 또는 첫 번째 숫자 묶음으로, 쉼표로 구분해 입력합니다(예: 1, 2, 3).
  • 두 번째 수열 — 두 번째 신호, 커널, 또는 필터로, 마찬가지로 쉼표로 구분해 입력합니다(예: 0, 1, 0.5).

소수와 음수도 입력할 수 있습니다. 계산기는 입력값을 쉼표 기준으로 나누고, 앞뒤 공백을 제거한 뒤 각 항목을 숫자로 변환하여 결과를 계산합니다.

공식 살펴보기

이산 합성곱은 다음과 같이 정의됩니다.

$$(\text{Seq}_1 * \text{Seq}_2)[i] = \sum_{j=\max(0,\,i-m+1)}^{\min(i,\,n-1)} \text{Seq}_1[j]\cdot \text{Seq}_2[i-j]$$

길이가 각각 \(n\), \(m\)인 두 유한 수열을 합성곱하면 결과는 정확히 \(n + m - 1\)개의 값을 가집니다. 각 출력값 \(y[i]\)는 두 수열의 인덱스 범위 안에 들어가는 모든 곱 \(x[j] \cdot h[i - j]\)의 합입니다. 쉽게 말해, 한 수열을 다른 수열 위로 한 칸씩 미끄러뜨리면서 겹치는 항끼리 곱하고, 매 이동 위치마다 그 값들을 모두 더하는 방식입니다.

광고
두 수열을 뒤집고 미끄러뜨려 겹치며 출력 수열을 만드는 이산 합성곱 다이어그램
합성곱은 한 수열을 뒤집어 다른 수열 위로 미끄러뜨리며, 각 이동마다 겹치는 곱을 더합니다.

예제로 이해하기

첫 번째 수열을 1, 2, 3, 두 번째 수열을 0, 1, 0.5라고 해봅시다. 여기서 \(n = 3\), \(m = 3\)이므로 결과는 \(3 + 3 - 1 = 5\)개의 값을 가집니다.

  • \(y[0] = 1\cdot 0 = 0\)
  • \(y[1] = 1\cdot 1 + 2\cdot 0 = 1\)
  • \(y[2] = 1\cdot 0.5 + 2\cdot 1 + 3\cdot 0 = 2.5\)
  • \(y[3] = 2\cdot 0.5 + 3\cdot 1 = 4\)
  • \(y[4] = 3\cdot 0.5 = 1.5\)

따라서 출력 결과는 0, 1, 2.5, 4, 1.5가 됩니다.

입력 수열, 두 번째 수열, 그리고 더 긴 합성곱 출력을 보여주는 세 개의 스템 플롯
출력은 두 입력보다 길며, 길이는 \(n + m - 1\)입니다.

자주 묻는 질문

출력 수열의 길이는 얼마인가요? 항상 첫 번째 수열의 길이와 두 번째 수열의 길이를 더한 뒤 1을 뺀 값(\(n + m - 1\))입니다.

두 수열의 순서가 결과에 영향을 주나요? 아닙니다. 합성곱은 교환법칙이 성립하므로, 두 입력을 서로 바꿔 넣어도 같은 결과 수열이 나옵니다.

다항식 곱셈에도 사용할 수 있나요? 네. 각 수열을 다항식의 계수로 본다면, 합성곱 결과는 두 다항식을 곱한 결과의 계수가 됩니다. 신호 처리뿐 아니라 대수 계산에서도 유용한 지름길이죠.

최종 업데이트: