conv
컨벌루션(Convolution)과 다항식 곱셈(Polynomial Multiplication)
설명
예제
다항식 과 의 계수를 포함하는 벡터 u와 v를 만듭니다.
u = [1 0 1]; v = [2 7];
컨벌루션을 사용하여 다항식을 곱합니다.
w = conv(u,v)
w = 1×4
2 7 2 7
w에는 에 대한 다항식 계수가 포함됩니다.
두 개의 벡터를 만들고 이 벡터를 컨벌루션합니다.
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입니다.
두 개의 벡터를 만듭니다. u와 v의 컨벌루션에서 크기가 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입니다.
입력 인수
입력 벡터로, 행 벡터 또는 열 벡터로 지정됩니다. 벡터 u와 v는 길이나 데이터형이 다를 수 있습니다.
u나 v가 single형이면 출력값도 single형입니다. 그렇지 않으면, conv가 입력값을 double형으로 변환하고 double형 값을 반환합니다.
데이터형: double | single | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64 | logical
복소수 지원 여부: 예
컨벌루션의 하위 섹션으로, "full", "same", "valid" 중 하나로 지정됩니다.
"full" | 전체 컨벌루션입니다(디폴트 값). |
"same" | 크기가 |
"valid" | 모서리를 0으로 채우지 않고 계산한 컨벌루션의 부분입니다. 이 옵션을 사용하면 |
출력 인수
컨벌루션된 벡터로, 행 벡터 또는 열 벡터로 반환됩니다.
세부 정보
두 벡터 u와 v의 컨벌루션은 v가 u를 가로질러 이동할 때 각 지점 아래의 겹치는 영역을 나타냅니다. 대수적으로 컨벌루션은 계수가 u와 v의 요소인 다항식의 곱셈과 동일한 연산입니다.
m = length(u)이고 n = length(v)라고 가정하겠습니다. 그러면 w는 k번째 요소가
인 길이 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)
conv는 이 정의를 사용하여 FFT 기반 컨벌루션이 아닌 두 벡터의 직접 컨벌루션을 계산합니다.
확장 기능
conv 함수는 tall형 배열을 지원하지만 다음과 같은 사용법 관련 참고 및 제한 사항이 있습니다.
입력값
u와v는 열 벡터여야 합니다.shape가"full"(디폴트 값)이면u또는v중 하나만 tall형 배열이 될 수 있습니다.shape가"same"또는"valid"이면v는 tall형 배열일 수 없습니다.
자세한 내용은 tall형 배열 항목을 참조하십시오.
사용법 관련 참고 및 제한 사항:
shape인수가 사용될 경우, 이 인수는 코드 생성 시 상수여야 합니다.입력 인수
u와v에 대해 다음이 적용됩니다.코드 생성 시 입력 벡터를 고정 크기 벡터나 가변 길이 벡터로 지정해야 합니다. 벡터의 첫 번째 차원 또는 두 번째 차원은 가변 크기일 수 있습니다. 다른 모든 차원은 고정 크기 1을 가져야 합니다.
입력 벡터
u와v는 방향이 같아야 합니다.
C/C++ 코드 생성 섹션의 사용법 관련 참고 및 제한 사항을 참조하십시오. GPU 코드 생성에도 동일한 사용법 관련 참고 및 제한 사항이 적용됩니다.
conv 함수는 스레드 기반 환경을 완전히 지원합니다. 자세한 내용은 스레드 기반 환경에서 MATLAB 함수 실행하기 항목을 참조하십시오.
conv 함수는 GPU 배열을 완전히 지원합니다. GPU에서 이 함수를 실행하려면 입력 데이터를 gpuArray (Parallel Computing Toolbox)로 지정하십시오. 자세한 내용은 GPU에서 MATLAB 함수 실행하기 (Parallel Computing Toolbox) 항목을 참조하십시오.
conv 함수는 분산 배열을 완전히 지원합니다. 자세한 내용은 분산 배열을 사용하여 MATLAB 함수 실행 (Parallel Computing Toolbox) 항목을 참조하십시오.
버전 내역
R2006a 이전에 개발됨w = conv(u,v) 또는 w = conv(u,v,"full")을 사용하여 전체 컨벌루션을 계산할 경우, 두 입력 벡터 u와 v가 모두 열 벡터가 아니라면 출력값 w는 행 벡터입니다.
예를 들어, 행 벡터와 열 벡터를 컨벌루션하면 출력값은 행 벡터입니다.
u = [1 0 1]; v = [2; 7; 4]; w = conv(u,v)
w =
2 7 6 7 4u = [1; 0; 1]; v = [2; 7; 4]; w = conv(u,v)
w =
2
7
6
7
4비교하자면, 이전 릴리스에서는 전체 컨벌루션을 계산할 때 conv 함수가 u와 v의 방향과 길이에 따라 행 벡터 또는 열 벡터를 반환했습니다.
예를 들어, 이전 릴리스에서는 conv가 1×3 행 벡터와 3×1 열 벡터의 전체 컨벌루션을 5×1 열 벡터로 반환했습니다.
u = [1 0 1]; v = [2; 7; 4]; w = conv(u,v)
w =
2
7
6
7
4conv는 1×3 행 벡터와 2×1 열 벡터의 전체 컨벌루션을 1×4 행 벡터로 반환했습니다.u = [1 0 1]; v = [2; 7]; w = conv(u,v)
w =
2 7 2 7w = conv(u,v,"same") 또는 w = conv(u,v,"valid")의 출력값에는 변경 사항이 없으며, 여기서 출력값은 여전히 첫 번째 입력 벡터 u의 방향을 따릅니다.
MATLAB Command
You clicked a link that corresponds to this MATLAB command:
Run the command by entering it in the MATLAB Command Window. Web browsers do not support MATLAB commands.
웹사이트 선택
번역된 콘텐츠를 보고 지역별 이벤트와 혜택을 살펴보려면 웹사이트를 선택하십시오. 현재 계신 지역에 따라 다음 웹사이트를 권장합니다:
또한 다음 목록에서 웹사이트를 선택하실 수도 있습니다.
사이트 성능 최적화 방법
최고의 사이트 성능을 위해 중국 사이트(중국어 또는 영어)를 선택하십시오. 현재 계신 지역에서는 다른 국가의 MathWorks 사이트 방문이 최적화되지 않았습니다.
미주
- América Latina (Español)
- Canada (English)
- United States (English)
유럽
- Belgium (English)
- Denmark (English)
- Deutschland (Deutsch)
- España (Español)
- Finland (English)
- France (Français)
- Ireland (English)
- Italia (Italiano)
- Luxembourg (English)
- Netherlands (English)
- Norway (English)
- Österreich (Deutsch)
- Portugal (English)
- Sweden (English)
- Switzerland
- United Kingdom (English)