主要内容

托普利兹

托普利兹矩阵

描述

例子

T =托普利兹(c,r)返回一个非对称托普利兹矩阵c第一列和r作为其第一行。如果第一个元素cr不同,托普利兹发出一个警告,并使用斜列的元素。

例子

T =托普利兹(r)返回对称托普利兹矩阵:

  • 如果r是一个真正的向量,然后呢r定义了矩阵的第一行。

  • 如果r是一个复杂的向量和一个真正的第一个元素,然后呢r第一行定义了r '定义第一列。

  • 的第一个元素r是复杂的,托普利兹矩阵主对角线是埃尔米特,这意味着 T , j = 连词 (T j , ) j 。主对角线的元素集r (1)

例子

全部折叠

r = (1 2 3);托普利兹(右)
ans =3×31 2 3 2 1 2 3 2 1

创建一个非对称托普利兹矩阵与一个指定的列和行向量。因为第一列和行向量的元素不匹配,托普利兹问题一个警告和使用对角元素的列。

c = (1 2 3 4);r = (4 5 6);托普利兹(c, r)
警告:第一个元素的输入列不匹配第一个元素的输入行。列赢得对角冲突。
ans =4×31 5 6 2 5 4 3 2 1 3 2

创建一个托普利兹矩阵与复杂的行和列向量。

c =(1 + 3我2-5i 1 + 3];r = (1 + 3 i 3-1i 1-2i);T =托普利兹(c, r)
T =3×3复杂1.0000 + 3.0000我3.0000 - 1.0000 -1.0000 - 2.0000 2.0000 - 5.0000我1.0000 + 3.0000 3.0000 - 1.0000 -1.0000 2.0000 - 5.0000 + 3.0000我1.0000 + 3.0000

您可以创建使用循环矩阵托普利兹。循环矩阵是循环卷积等应用程序中使用。

创建一个循环矩阵的向量v使用托普利兹。

v = [9 1 3 2];托普利兹([v (1) fliplr (v(2:结束))),v)
ans =4×49 1 3 2 2 9 1 3 3 2 9 1 1 3 2 9

执行离散时间循环卷积用托普利兹形成了循环卷积矩阵。

定义周期性输入x和系统响应h

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

列向量形式c创建一个循环矩阵长度(c) = (h)

c = [x (1) fliplr (x (end-length (h) + 2:结束)))
c =1×51 2 3 5 8

形式的行向量rx

r = x;

卷积矩阵形式xConv使用托普利兹。找到卷积使用h * xConv

xConv =托普利兹(c, r)
xConv =5×51 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×552 50 73 46 64

如果你有信号处理工具箱™,你可以使用cconv(信号处理工具箱)发现循环卷积函数。

执行离散卷积用托普利兹形成了卷积的数组。

定义输入x和系统响应h

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

形式r通过填充x0。的长度r卷积长度x + h - 1

r = [x 0(1,长度(h) 1)]
r =1×71 8 3 2 5 0 0

列向量形式c。设置第一个元素x (1)因为列决定了对角线。垫c因为长度(c)必须等于长度(h)卷积。

c = [x(1) 0(1,长度(h) 1)]
c =1×31 0 0

卷积矩阵形式xConv使用托普利兹。然后,找到使用卷积h * xConv

xConv =托普利兹(c, r)
xConv =3×71 8 3 2 5 0 0 0 1 8 3 2 5 0 0 0 1 8 3 2 5
h * xConv
ans =1×73 29 51 37 31 29日10

检查结果是正确的conv

conv (x, h)
ans =1×73 29 51 37 31 29日10

输入参数

全部折叠

托普利兹矩阵的列,指定为一个标量或矢量。如果第一个元素cr不同,托普利兹使用列元素的对角线。

数据类型:||int8|int16|int32|int64|uint8|uint16|uint32|uint64
复数的支持:金宝app是的

托普利兹矩阵的行、指定为一个标量或矢量。如果第一个元素cr不同,那么托普利兹使用列元素的对角线。

数据类型:||int8|int16|int32|int64|uint8|uint16|uint32|uint64
复数的支持:金宝app是的

更多关于

全部折叠

托普利兹矩阵

托普利兹矩阵是一个diagonal-constant矩阵,这意味着所有元素沿对角线有相同的价值。为托普利兹矩阵一个,我们有一个我,我=一个i j结果形式

一个 = ( 一个 0 一个 1 一个 2 一个 1 n 一个 1 一个 0 一个 1 一个 2 一个 1 一个 0 一个 2 一个 0 一个 1 一个 n 1 一个 2 一个 1 一个 0 ]

扩展功能

C / c++代码生成
生成C和c++代码使用MATLAB®编码器™。

版本历史

之前介绍过的R2006a

另请参阅

|