Main Content

convmtx2

2차원 컨벌루션 행렬

설명

예제

T = convmtx2(H,m,n)은 행렬 H에 대한 컨벌루션 행렬 T를 반환합니다. Xm×n 행렬인 경우 reshape(T*X(:),size(H)+[m n]-1)conv2(X,H)와 동일합니다.

T = convmtx2(H,[m n])은 컨벌루션 행렬을 반환합니다. 여기서 차원 mn은 요소를 2개 가진 벡터입니다.

예제

모두 축소

행렬 H에 대한 컨벌루션 행렬 T에서 Xm×n 행렬이면 reshape(T*X(:),size(H)+[m n]-1)conv2(X,H)와 동일함을 보여줍니다.

첫 번째 코드 블록에 대한 설명

H = ones(3,3)/9; % averaging filter 3-by-3
M = 5;
X = magic(M);
T = convmtx2(H,M,M);
Y1 = reshape(T*X(:), size(H)+[5 5]-1)
Y1 = 7×7

    1.8889    4.5556    4.6667    3.6667    2.6667    2.5556    1.6667
    4.4444    7.6667    8.5556    6.5556    6.7778    5.8889    3.4444
    4.8889    8.7778   11.1111   10.8889   12.8889   10.5556    5.8889
    4.1111    6.6667   11.0000   13.0000   15.0000   10.6667    4.5556
    2.7778    6.7778   13.1111   15.1111   14.8889    8.5556    3.7778
    2.3333    5.6667   10.5556   10.7778    8.7778    3.8889    1.3333
    1.2222    3.2222    6.0000    5.0000    4.0000    1.2222    1.0000

Y2 = conv2(X,H)
Y2 = 7×7

    1.8889    4.5556    4.6667    3.6667    2.6667    2.5556    1.6667
    4.4444    7.6667    8.5556    6.5556    6.7778    5.8889    3.4444
    4.8889    8.7778   11.1111   10.8889   12.8889   10.5556    5.8889
    4.1111    6.6667   11.0000   13.0000   15.0000   10.6667    4.5556
    2.7778    6.7778   13.1111   15.1111   14.8889    8.5556    3.7778
    2.3333    5.6667   10.5556   10.7778    8.7778    3.8889    1.3333
    1.2222    3.2222    6.0000    5.0000    4.0000    1.2222    1.0000

isequal(Y1,Y2) % They are the same.
ans = logical
   0

입력 인수

모두 축소

입력 행렬로, 숫자형 배열로 지정됩니다.

데이터형: double

컨벌루션 행렬의 행으로, 숫자형 스칼라로 지정됩니다.

데이터형: double

컨벌루션 행렬의 열로, 숫자형 스칼라로 지정됩니다.

데이터형: double

컨벌루션 행렬의 차원으로, [m n] 형식의 요소를 2개 가진 벡터로 지정됩니다. 여기서 m은 행 개수이고 n은 열 개수입니다.

데이터형: double

출력 인수

모두 축소

컨벌루션 행렬로, 숫자형 배열로 반환됩니다. 출력 행렬 Tsparse 클래스입니다. T에서 0이 아닌 요소의 개수는 prod(size(H))*m*n 이하입니다.

버전 내역

R2006a 이전에 개발됨

참고 항목

| (Signal Processing Toolbox)