Main Content

이 번역 페이지는 최신 내용을 담고 있지 않습니다. 최신 내용을 영문으로 보려면 여기를 클릭하십시오.

conv

컨벌루션(Convolution)과 다항식 곱셈(Polynomial Multiplication)

설명

예제

w = conv(u,v)는 벡터 uv컨벌루션을 반환합니다. uv가 다항식 계수의 벡터인 경우 컨벌루션은 두 다항식의 곱셈과 같습니다.

예제

w = conv(u,v,shape)는 컨벌루션에서 shape로 지정되는 하위 섹션을 반환합니다. 예를 들어, conv(u,v,'same')은 크기가 u와 동일한, 컨벌루션의 중앙부만 반환하고, conv(u,v,'valid')는 모서리를 0으로 채우지 않고 계산한 컨벌루션의 부분만 반환합니다.

예제

모두 축소

다항식 x2+12x+7의 계수를 포함하는 벡터 uv를 만듭니다.

u = [1 0 1];
v = [2 7];

컨벌루션을 사용하여 다항식을 곱합니다.

w = conv(u,v)
w = 1×4

     2     7     2     7

w에는 2x3+7x2+2x+7에 대한 다항식 계수가 포함됩니다.

두 개의 벡터를 만들고 이 벡터를 컨벌루션합니다.

u = [1 1 1];
v = [1 1 0 0 0 1 1];
w = conv(u,v)
w = 1×9

     1     2     2     1     0     1     2     2     1

w의 길이는 length(u)+length(v)-1이며, 이 예제에서는 9입니다.

두 개의 벡터를 만듭니다. uv의 컨벌루션에서 크기가 u와 같은 중앙부를 구합니다.

u = [-1 2 3 -2 0 1 2];
v = [2 4 -1 1];
w = conv(u,v,'same')
w = 1×7

    15     5    -9     7     6     7    -1

w의 길이는 7입니다. 전체 컨벌루션(Full Convolution)의 길이는 length(u)+length(v)-1이며, 이 예제에서는 10입니다.

입력 인수

모두 축소

입력 벡터로, 행 벡터 또는 열 벡터로 지정됩니다. 벡터 uv는 길이나 데이터형이 다를 수 있습니다.

uvsingle형이면 출력값도 single형입니다. 그렇지 않으면, conv가 입력값을 double형으로 변환하고 double형 값을 반환합니다.

데이터형: double | single | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64 | logical
복소수 지원 여부:

컨벌루션의 하위 섹션으로, 'full', 'same', 'valid' 중 하나로 지정됩니다.

'full'

전체 컨벌루션입니다(디폴트 값).

'same'

크기가 u와 동일한, 컨벌루션의 중앙부입니다.

'valid'

모서리를 0으로 채우지 않고 계산한 컨벌루션의 부분입니다. 이 옵션을 사용하면 length(v)가 0일 때를 제외하고 length(w)max(length(u)-length(v)+1,0)입니다. length(v) = 0이면 length(w) = length(u)입니다.

세부 정보

모두 축소

컨벌루션

두 벡터 uv의 컨벌루션은 vu를 가로질러 이동할 때 각 지점 아래의 겹치는 영역을 나타냅니다. 대수적으로 컨벌루션은 계수가 uv의 요소인 다항식의 곱셈과 동일한 연산입니다.

m = length(u)이고 n = length(v)라고 합시다. 그러면 wk번째 요소가

w(k)=ju(j)v(kj+1).

인 길이 m+n-1의 벡터입니다.

합계는 u(j)v(k-j+1)에 유효한 첨자가 되는 j의 모든 값에 대해 계산됩니다. 구체적으로, j = max(1,k+1-n):1:min(k,m)입니다. m = n인 경우에는 다음과 같습니다.

w(1) = u(1)*v(1)
w(2) = u(1)*v(2)+u(2)*v(1)
w(3) = u(1)*v(3)+u(2)*v(2)+u(3)*v(1)
...
w(n) = u(1)*v(n)+u(2)*v(n-1)+ ... +u(n)*v(1)
...
w(2*n-1) = u(n)*v(n)

확장 기능

GPU 코드 생성
GPU Coder™를 사용하여 NVIDIA® GPU용 CUDA® 코드를 생성할 수 있습니다.

버전 내역

R2006a 이전에 개발됨

참고 항목

| | | | (Signal Processing Toolbox) |