위키득계정 ↗
과학

순환 합성곱

순환 합성곱과학
영문명
Circular convolution
다른 명칭
원형 합성곱
기준
순환 길이
관련 연산
DFT의 곱과 역변환
순환 합성곱은 정해진 길이의 경계를 넘는 인덱스를 처음으로 되돌려 계산하는 합성곱이다. 원형 합성곱이라고도 부른다. 같은 길이의 DFT들을 위치별로 곱한 뒤 역변환하면 순환 합성곱이 되므로 FFT를 이용한 필터 계산에서 경계 조건을 확인해야 한다.

끝이 처음으로 이어진다

길이 K를 정하고 인덱스를 K로 나눈 나머지로 되돌린다. 구간 끝을 벗어난 기여가 사라지는 것이 아니라 처음 쪽에 더해진다. 따라서 입력 수열들이 같아도 정한 순환 길이에 따라 선형 합성곱과 다른 결과가 나올 수 있다.

길이 2의 계산

가상의 수열 [2, 3]과 [1, 4]를 길이 2로 순환 합성곱하면 첫 값은 2×1 + 3×4인 14다. 다음 값은 2×4 + 3×1인 11이다. 전체 선형 합성곱 [2, 11, 12]와 비교하면 끝의 12가 처음의 2에 더해진 것으로 볼 수 있다.

선형 결과를 얻는 조건

유한 수열의 길이가 각각 M과 N이면 전체 선형 합성곱 길이는 M+N-1이다. 두 수열을 적어도 이 길이까지 0으로 채운 뒤 같은 길이의 DFT 곱을 역변환하면 필요한 선형 결과를 얻을 수 있다. 앞의 두 수열은 길이 3으로 채우면 [2, 11, 12]를 얻는다.

분석 길이를 명시한다

단순히 FFT를 곱했다는 설명만으로 선형 필터 결과가 보장되는 것은 아니다. 변환 길이, 0을 덧붙인 방식과 출력에서 취한 범위를 확인한다. 긴 신호를 여러 블록으로 처리할 때도 경계에서 겹치는 기여를 어떻게 결합하는지 별도로 정해야 한다.

관련 문서

합성곱 / 이산 푸리에 변환 / 고속 푸리에 변환 / FIR 필터 / 임펄스 응답 / 창 함수