🧮
🧮 수학·통계

합성곱 계산기 (두 수열의 이산 합성곱)

입력하면 바로 계산됩니다.

입력값

합성곱 계산기 쉽게 이해하기 — 개념과 원리

이 계산기는 신호와 필터 커널처럼 길이가 유한한 두 수열의 이산 합성곱을 구합니다. 출력 수열 전체, 그 길이, 가장 큰 값과 위치, 처음 몇 항의 계산 과정을 보여 줍니다. 신호 처리 숙제, 자료 평활화, 계수를 이용한 다항식 곱셈에 쓸 수 있습니다.

이산 합성곱밀고, 곱하고, 더하기1234x0.510.5h 뒤집기0.5y[0]2y[1]4y[2]6y[3]5.5y[4]2y[5]y[2]: 1·0.5 + 2·1 + 3·0.5 = 4합 20 = 10 × 2 · 최대 6은 y[3]
출력마다 x와 뒤집어 민 h의 겹친 곱의 합이며, 출력은 4 + 3 − 1 = 6개입니다.

계산 방법

y[n] = Σₖ x[k] · h[n − k], 두 항이 모두 존재하는 모든 k에 대해 더함

출력 길이 = N + M − 1, n = 0 … N + M − 2

원리

h를 어떤 시스템에 크기 1인 펄스 하나를 넣었을 때의 응답이라고 생각해 봅시다. 신호는 크기를 바꾸고 위치를 옮긴 펄스들의 합이며, 선형이고 시간에 따라 변하지 않는 시스템이라면 출력은 같은 방식으로 크기와 위치를 바꾼 응답들의 합입니다. 이 합을 적으면 합성곱 공식이 됩니다. 실제로는 커널을 뒤집어 신호 위로 밀면서, 위치마다 겹치는 값끼리 곱해 더합니다. 다항식 곱셈도 같은 계산입니다. (1 + 2t + 3t² + 4t³)(0.5 + t + 0.5t²)의 계수가 바로 이 합성곱입니다.

예제 풀이

기본값: x = 1, 2, 3, 4, h = 0.5, 1, 0.5.

  1. 길이는 4, 3이므로 출력은 4 + 3 − 1 = 6개입니다.
  2. y[0] = 1·0.5 = 0.5, y[1] = 1·1 + 2·0.5 = 2, y[2] = 1·0.5 + 2·1 + 3·0.5 = 4입니다.
  3. y[3] = 2·0.5 + 3·1 + 4·0.5 = 6, y[4] = 3·0.5 + 4·1 = 5.5, y[5] = 4·0.5 = 2입니다.
  4. 결과는 y = 0.5, 2, 4, 6, 5.5, 2, 가장 큰 값은 3번 위치의 6입니다.
  5. 검산: sum(y) = 20, sum(x) × sum(h) = 10 × 2 = 20입니다.

결과 해석

0.5, 1, 0.5 같은 커널은 각 값을 이웃과 섞는 평활화 필터입니다. 가중치의 합이 2라서 전체 크기도 두 배가 되는데, 커널을 그 합으로 나누면 크기가 유지됩니다. 앞뒤에 덧붙은 값들은 커널이 신호와 일부만 겹치는 구간이며, 필터에서는 흔히 이 가장자리를 잘라 내거나 채워 넣어 처리합니다.

흔한 실수

주의: 아주 긴 수열은 고속 푸리에 변환 방법으로 합성곱하는 편이 낫습니다. 직접 더하는 방법은 정확하지만 입력이 길면 느립니다.

자주 묻는 질문

이산 합성곱이란?

뒤집은 커널을 신호 위로 밀며 곱해 더하는 y[n] = Σ x[k] h[n − k]입니다.

합성곱 결과의 길이는?

길이가 N과 M인 수열이면 N + M − 1개입니다.

다항식 곱셈과 어떤 관계인가요?

두 다항식을 곱한 결과의 계수가 각 계수 목록의 합성곱입니다.

출처: S. W. Smith, The Scientist and Engineer's Guide to Digital Signal Processing, Ch. 6 "Convolution"

2026년 11월 8일 확인. Smith, S. W., The Scientist and Engineer’s Guide to Digital Signal Processing, Ch. 6 “Convolution”, The Output Side Algorithm, Eq. 6-1 (y[i] = Σⱼ h[j]·x[i − j]; N개 점의 신호와 M개 점의 임펄스 응답을 합성곱하면 N + M − 1개 점).

🧮 수학·통계 계산기 전체 →🏠 홍라이프 계산기 홈 →