Main Content

toeplitz

테플리츠 행렬

설명

예제

T = toeplitz(c,r)은 첫 번째 열이 c이고, 첫 번째 행이 r인 비대칭 테플리츠 행렬을 반환합니다. cr의 첫 번째 요소가 서로 다르면 toeplitz는 경고를 발생시키고 대각선에 열 요소를 사용합니다.

예제

T = toeplitz(r)은 대칭 테플리츠 행렬을 반환합니다. 여기서,

  • r이 실수형 벡터이면 r은 행렬의 첫 번째 행을 정의합니다.

  • r이 첫 번째 요소가 실수인 복소수 벡터이면 r은 첫 번째 행을, r'는 첫 번째 열을 정의합니다.

  • r의 첫 번째 요소가 복소수이면 테플리츠 행렬은 주대각선을 벗어난 에르미트입니다. 즉, ij인 경우에 Ti,j=conj(Tj,i)입니다. 주대각선의 요소는 r(1)로 설정됩니다.

예제

모두 축소

r = [1 2 3];
toeplitz(r)
ans = 3×3

     1     2     3
     2     1     2
     3     2     1

지정된 열 벡터와 행 벡터를 가진 비대칭 테플리츠 행렬을 만듭니다. 열 벡터와 행 벡터의 첫 번째 요소가 일치하지 않기 때문에 toeplitz는 경고를 발생시키고 대각선 요소에 열을 사용합니다.

c = [1  2  3 4];
r = [4 5 6];
toeplitz(c,r)
Warning: First element of input column does not match first element of input row. 
         Column wins diagonal conflict.
ans = 4×3

     1     5     6
     2     1     5
     3     2     1
     4     3     2

복소수 행 벡터와 열 벡터를 가진 테플리츠 행렬을 만듭니다.

c = [1+3i 2-5i -1+3i];
r = [1+3i 3-1i -1-2i];
T = toeplitz(c,r)
T = 3×3 complex

   1.0000 + 3.0000i   3.0000 - 1.0000i  -1.0000 - 2.0000i
   2.0000 - 5.0000i   1.0000 + 3.0000i   3.0000 - 1.0000i
  -1.0000 + 3.0000i   2.0000 - 5.0000i   1.0000 + 3.0000i

toeplitz를 사용하여 순환 행렬을 만들 수 있습니다. 순환 행렬은 원형 컨벌루션 같은 응용 분야에 사용됩니다.

toeplitz를 사용하여 벡터 v에서 순환 행렬을 만듭니다.

v = [9 1 3 2];
toeplitz([v(1) fliplr(v(2:end))], v)
ans = 4×4

     9     1     3     2
     2     9     1     3
     3     2     9     1
     1     3     2     9

toeplitz로 이산시간 원형 컨벌루션을 수행하여 컨벌루션에 대한 순환 행렬을 구성합니다.

주기적 입력값 x와 시스템 응답 h를 정의합니다.

x = [1 8 3 2 5];
h = [3 5 2 4 1];

열 벡터 c를 구성하여 length(c) = length(h)인 순환 행렬을 만듭니다.

c = [x(1) fliplr(x(end-length(h)+2:end))]
c = 1×5

     1     5     2     3     8

x에서 행 벡터 r을 구성합니다.

r = x;

toeplitz를 사용하여 컨벌루션 행렬 xConv를 구성합니다. h*xConv를 사용하여 컨벌루션을 구합니다.

xConv = toeplitz(c,r)
xConv = 5×5

     1     8     3     2     5
     5     1     8     3     2
     2     5     1     8     3
     3     2     5     1     8
     8     3     2     5     1

h*xConv
ans = 1×5

    52    50    73    46    64

Signal Processing Toolbox™가 있을 경우 cconv (Signal Processing Toolbox) 함수를 사용하여 원형 컨벌루션을 구할 수 있습니다.

toeplitz로 이산시간 컨벌루션을 수행하여 컨벌루션에 대한 배열을 구성합니다.

입력값 x와 시스템 응답 h를 정의합니다.

x = [1 8 3 2 5];
h = [3 5 2];

x를 0으로 채워 r을 구성합니다. r의 길이는 컨벌루션 길이 x + h - 1입니다.

r = [x zeros(1,length(h)-1)]
r = 1×7

     1     8     3     2     5     0     0

열 벡터 c를 구성합니다. 열에 따라 대각선이 결정되므로 첫 번째 요소를 x(1)로 설정합니다. 컨벌루션의 경우 length(c)length(h)와 같아야 하므로 c를 채웁니다.

c = [x(1) zeros(1,length(h)-1)]
c = 1×3

     1     0     0

toeplitz를 사용하여 컨벌루션 행렬 xConv를 구성합니다. 그런 다음, h*xConv를 사용하여 컨벌루션을 구합니다.

xConv = toeplitz(c,r)
xConv = 3×7

     1     8     3     2     5     0     0
     0     1     8     3     2     5     0
     0     0     1     8     3     2     5

h*xConv
ans = 1×7

     3    29    51    37    31    29    10

conv를 사용하여 결과가 정확한지 확인합니다.

conv(x,h)
ans = 1×7

     3    29    51    37    31    29    10

입력 인수

모두 축소

테플리츠 행렬의 열로, 스칼라 또는 벡터로 지정됩니다. cr의 첫 번째 요소가 서로 다르면 toeplitz는 대각선에 열 요소를 사용합니다.

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

테플리츠 행렬의 행으로, 스칼라 또는 벡터로 지정됩니다. cr의 첫 번째 요소가 서로 다르면 toeplitz는 대각선에 열 요소를 사용합니다.

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

세부 정보

모두 축소

테플리츠 행렬

테플리츠 행렬(Toeplitz matrix)은 대각 상수(diagonal-constant) 행렬로, 대각선상의 모든 요소가 동일한 값을 가집니다. 테플리츠 행렬 A의 경우, Ai,j = ai–j이며 결과적으로 다음과 같은 형식을 갖습니다.

A=[a0a1a2a1na1a0a1a2a1a0a2a0a1an1a2a1a0].

확장 기능

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

버전 내역

R2006a 이전에 개발됨

참고 항목

|