주요 콘텐츠

filter2

2차원 디지털 필터

설명

Y = filter2(H,X)는 행렬 H의 계수에 따라 데이터 행렬 X에 유한 임펄스 응답 필터를 적용합니다.

예제

Y = filter2(H,X,shape)shape에 따라 필터링된 데이터의 하위 섹션을 반환합니다. 예를 들어, Y = filter2(H,X,'valid')는 모서리를 0으로 채우지 않고 계산한 필터링된 데이터만 반환합니다.

예제

예제

모두 축소

conv2 함수와 밀접한 관련이 있는 filter2 함수를 사용하여 이미지와 2차원 데이터를 디지털 방식으로 필터링할 수 있습니다.

안쪽 높이가 1인 2차원 받침대를 만들고 플로팅합니다.

A = zeros(10);
A(3:7,3:7) = ones(5);
mesh(A)

Figure contains an axes object. The axes object contains an object of type surface.

필터 계수 행렬 H에 따라 A의 데이터를 필터링하고 필터링된 데이터의 비희소 행렬을 반환합니다.

H = [1 2 1; 0 0 0; -1 -2 -1];
Y = filter2(H,A,'full');
mesh(Y)

Figure contains an axes object. The axes object contains an object of type surface.

H를 180도 회전시키고 그 결과를 A와 컨벌루션합니다. 출력값은 A의 데이터를 H의 계수로 필터링하는 것과 동일합니다.

C = conv2(A,rot90(H,2));
mesh(C)

Figure contains an axes object. The axes object contains an object of type surface.

입력 인수

모두 축소

유리 전달 함수의 계수로, 행렬로 지정됩니다.

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

입력 데이터로, 행렬로 지정됩니다. XH 중 적어도 하나가 single형이면 출력값도 single형입니다. 그렇지 않으면 filter2double형을 반환합니다.

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

필터링된 데이터의 하위 섹션으로, 다음 값 중 하나로 지정됩니다.

  • 'same' — 크기가 X와 동일한, 필터링된 데이터의 중앙부를 반환합니다.

  • 'full' — 필터링된 2차원 데이터 전체를 반환합니다.

  • 'valid' — 필터링된 데이터에서 모서리를 0으로 채우지 않고 계산한 부분만 반환합니다.

알고리즘

filter2 함수는 입력값 X와 180도 회전된 계수 행렬 H의 2차원 컨벌루션을 취해 데이터를 필터링합니다. 즉, filter2(H,X,shape)conv2(X,rot90(H,2),shape)와 동일합니다.

확장 기능

모두 확장

C/C++ 코드 생성
MATLAB® Coder™를 사용하여 C 코드나 C++ 코드를 생성할 수 있습니다.

버전 내역

R2006a 이전에 개발됨

참고 항목

| |