Main Content

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 이전에 개발됨

참고 항목

| |