теплиц

Синтаксис

T = toeplitz(c,r)
T = toeplitz(r)

Описание

пример

T = toeplitz(c,r) возвращает несимметричную матрицу Теплица с c как его первый столбец и r как его первая строка. Если первые элементы c и r отличаются, toeplitz выдает предупреждение и использует элемент столбца для диагонали.

пример

T = toeplitz(r) возвращает симметричную матрицу Теплица где:

  • Если r является действительным вектором, то r задает первую строку матрицы.

  • Если r является комплексным вектором с действительным первым элементом, то r задает первую строку, и r' задает первый столбец.

  • Если первый элемент r является комплексным, матрица Теплица является Эрмитовой от основной диагонали, что означает Ti, j=conj (Tj, i) для i≠j. Элементы основной диагонали установлены в 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. Матрицы циркулянта используются в приложениях, таких как круговая свертка.

Создайте циркулянтную матрицу из векторного 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

Сформируйте вектор - строку r из x.

r = x;

Сформируйте матрицу свертки xConv с помощью toeplitz. Найдите свертку с помощью 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

Если у вас есть Обработка сигналов Toolbox™, можно использовать функцию cconv, чтобы найти круговую свертку.

Выполните дискретную свертку при помощи toeplitz, чтобы сформировать массивы для свертки.

Задайте входной параметр x и системный ответ h.

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

Сформируйте r путем дополнения x нулями. Длина r является длиной свертки x + h - 1.

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

     1     8     3     2     5     0     0

Сформируйте вектор - столбец c. Установите первый элемент на x(1), потому что столбец определяет диагональ. Заполните c, потому что length(c) должен равняться length(h) для свертки.

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

     1     0     0

Сформируйте матрицу свертки xConv с помощью toeplitz. Затем найдите свертку с помощью 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

Входные параметры

свернуть все

Столбец матрицы Теплица, заданной как скаляр или вектор. Если первые элементы c и r отличаются, toeplitz использует элемент столбца для диагонали.

Типы данных: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64
Поддержка комплексного числа: Да

Строка матрицы Теплица, заданной как скаляр или вектор. Если первые элементы c и r отличаются, то toeplitz использует элемент столбца для диагонали.

Типы данных: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64
Поддержка комплексного числа: Да

Больше о

свернуть все

Матрица Теплица

Матрица Теплица является диагонально-постоянной матрицей, что означает, что все элементы по диагонали имеют то же значение. Для матрицы А Теплица у нас есть Ай, j = ай-j, который приводит к форме

A = [a0a−1a−2  a1−na1a0a−1  a2a1a0  a−2  a0a−1an−1  a2a1a0].

Расширенные возможности

Генерация кода C/C++
Генерация кода C и C++ с помощью MATLAB® Coder™.

Смотрите также

|

Представлено до R2006a

Была ли эта тема полезной?