主要内容

wextend

扩展载体或矩阵

描述

例子

yext.= wextend (类型模式XLEN扩展实值输入向量或矩阵X的长度LEN,使用类型方法和模式扩展。的类型指定扩展的维度。的模式指定用于在扩展中填充值的规则。

yext.= wextend (___座垫还指定扩展的位置。

例子

全部折叠

扩展向量

使用许多不同的方法扩展向量。

创建一个向量并将扩展长度设置为2。

len = 2;X = [1 2 3]
x =1×31 2 3

执行零垫扩展。要验证是否有不同形式的输入参数,请执行此扩展两次。结果两次都是相同的。

xextzpd1 = wextend (' 1 '“zpd”, x, len)
xextzpd1 =1×70 0 1 2 3 0 0
xextzpd2 = wextend(“一维”“zpd”, x,兰,“b”
xextzpd2 =1×70 0 1 2 3 0 0

执行半点对称扩展。

xextsym = wextend (“一维”“符号”, x, len)
xextsym =1×72 1 1 2 3 3 2

执行周期性扩展。因为输入向量的长度是奇数,所以wextend在使用'ppd'模式扩展之前会在末尾添加一个额外的示例。这个样本等于右边的最后一个值。

xextper = wextend(“一维”“每”, x, len)
xextper =1×83 3 1 2 3 3 1 2

扩展矩阵

使用多种不同的方法扩展一个小矩阵。

创建一个矩阵并设置扩展长度为2。

len = 2;X = [1 2 3;4 5 6)
X =2×31 2 3 4 5 6

执行阵列的零焊盘扩展。

Xextzpd = wextend (2“zpd”, X, len)
xextzpd =6×70 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 2 3 0 0 0 0 4 5 6 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

执行数组的半点对称扩展。

Xextsym = wextend (“二维”“符号”, X, len)
Xextsym =6×75 4 4 5 6 6 5 2 11 1 2 3 3 2 2 11 11 2 3 3 2 5 4 4 5 6 6 5 5 4 4 5 6 6 5 2 11 1 2 3 3 2

观察对称的、反对称的和平滑的扩展对a的影响uint8当值处于或接近数据类型范围的限制时,向Vector类型。

对称扩展

最小的uint8整数为0,最大为255。创建一个向量uint8包含这些极限的整数。

DataVector = UINT8([0 1 2 253 254 255])
dataVector =1x6 uint8行向量0 1 2 253 254 255

获得矢量的全点和半点对称扩展。在向量的左右两侧分别扩展两个值。

wholepointsym = wextend(' 1 '“symw”dataVector, 2)
wholePointSym =1x10 uint8行矢量2 1 0 1 2 253 254 255 254 253
halfpointsym = wextend(' 1 '“symh”dataVector, 2)
halfpointsym =1x10 uint8行矢量1 0 0 1 2 253 254 255 255 254

对称地扩展永远不会导致超出的值uint8的范围内。

反对称的扩展

创建一个类型双倍的复制矢量,然后获得该复制的全点反对称扩展。扩展包括负值和大于255的值。

dataVectorDouble =双(dataVector);wholePointAsymDouble = wextend (' 1 '“asymw”dataVectorDouble, 2)
wholePointAsymDouble =1×10-2 -1 0 1 2 253 254 255 256 257

得到原矩阵的整点反对称扩展uint8向量。外的值uint8Range映射到最近的地方uint8整数,负值为0,大于255的值为255。

wholePointAsym = wextend (' 1 '“asymw”dataVector, 2)
轮内演示y =1x10 uint8行矢量0 0 0 1 2 253 254 255 255 255

现在得到半点反对称扩展双倍的副本和原件uint8向量。

halfPointAsymDouble = wextend (' 1 ''arymh'dataVectorDouble, 2)
halfPointAsymDouble =1×10-1 0 0 1 2 253 254 255 -255 -254
halfPointAsym = wextend (' 1 ''arymh'dataVector, 2)
halfPointAsym =1x10 uint8行矢量0 0 0 1 2 253 254 255 0 0

与整点反对称扩展一样,扩展中的负值uint8数据被映射为0。

平滑的延伸

的0阶平滑扩展双倍的副本和原件uint8向量。

smooth0Double = wextend (' 1 ''sp0'dataVectorDouble, 2)
smooth0Double =1×100 0 0 1 2 253 254 255 255 255
smooth0 = wextend (' 1 ''sp0'dataVector, 2)
smooth0 =1x10 uint8行矢量0 0 0 1 2 253 254 255 255 255

结果是相同的。接下来,得到每个向量的1阶平滑扩张。

smooth1Double = wextend (' 1 ''sp1'dataVectorDouble, 2)
smooth1Double =1×10-2 -1 0 1 2 253 254 255 256 257
smooth1 = wextend (' 1 ''sp1'dataVector, 2)
smooth1 =1x10 uint8行矢量0 0 0 1 2 253 254 255 255 255

的值双倍的结果是uint8Range映射到最近的地方uint8中的值uint8扩展。

观察对称,反对称和平滑扩展的影响int8当值处于或接近数据类型范围的限制时,则返回数据。

对称扩展

最小的int8整数是 - 128 ,最大的是127个。创建一个向量int8包含这些极限的整数。

dataVector = int8([-128 -127 -126 125 126 127])
dataVector =1x6 int8行向量-128 -127 -126 125 126 127

获取数据的全点和半点对称扩展。在向量的左右两侧分别扩展两个值。

wholepointsym = wextend(' 1 '“symw”dataVector, 2)
wholePointSym =1x10 int8行向量-126 -127 -128 -127 -126 125
halfpointsym = wextend(' 1 '“symh”dataVector, 2)
halfpointsym =1x10 int8行向量-127 -128 -128 -127 -126 126 127 127 126

对称地扩展永远不会导致超出的值int8的范围内。

反对称的扩展

创建一个类型双倍的复制矢量,然后获得该复制的全点反对称扩展。扩展包括小于的负值 - 128 和大于127的值。

dataVectorDouble =双(dataVector);wholepointsasymdouble = wextend(' 1 '“asymw”dataVectorDouble, 2)
wholePointsAsymDouble =1×10-130 -129 -128 -127 -126 125 125 127 128 129

得到原矩阵的整点反对称扩展int8向量。外的值int8Range映射到最近的地方int8整数, - 128 对于小于 - 128 大于127的值是127。

wholePointAsym = wextend (' 1 '“asymw”dataVector, 2)
轮内演示y =1x10 int8行向量-128 -128 -128 -127 -126 126 127 127 127 127

现在得到半点反对称扩展双倍的副本和原件int8向量。

halfPointAsymDouble = wextend (' 1 ''arymh'dataVectorDouble, 2)
halfPointAsymDouble =1×10127 127 -128 -127 -126 126 126 127 -127 -126
halfPointAsym = wextend (' 1 ''arymh'dataVector, 2)
halfPointAsym =1x10 int8行向量127 127 -128 -127 -126 126 127 127 -127 -126

双倍的结果时,第一个值是127,可以表示为anint8整数。第二个值是128,不能用int8整数。因此,在里面int8结果,它被映射到127.类型中的剩余值双倍的Result都可以表示为int8整数。

平滑的延伸

的0阶平滑扩展双倍的副本和原件int8向量。

smooth0Double = wextend (' 1 ''sp0'dataVectorDouble, 2)
smooth0Double =1×10-128 -128 -128 -127 -126 126 127 127 127 127
smooth0 = wextend (' 1 ''sp0'dataVector, 2)
smooth0 =1x10 int8行向量-128 -128 -128 -127 -126 126 127 127 127 127

结果是相同的。现在得到每个向量的1阶平滑扩张。

smooth1Double = wextend (' 1 ''sp1'dataVectorDouble, 2)
smooth1Double =1×10-130 -129 -128 -127 -126 125 125 127 128 129
smooth1 = wextend (' 1 ''sp1'dataVector, 2)
smooth1 =1x10 int8行向量-128 -128 -128 -127 -126 126 127 127 127 127

的值双倍的结果外int8Range映射到最近的地方int8中的值int8扩展。

输入参数

全部折叠

扩展方法,指定为此处列出的值之一。

类型 描述
1' 1 '“一维”,或“一维”

一维扩展

2' 2 '“二维”,或“二维”

2-D延期

基于“增大化现实”技术的“addrow”

添加行

“交流”“addcol”

添加列

数据类型:双倍的|char

用于扩展输入的特定扩展方法,指定为此处列出的值之一。有关更多信息,请参见dwtmode

模式

描述

“zpd”

零扩展

'sp0'

顺序延长订单0

“社会民主党”(或'sp1'

顺利延长订单1

“符号”“symh”

对称填充(半点):边界值对称复制

“symw”

对称填充(整点):边界值对称复制

“asym”'arymh'

反对称填充(半点):反对称复制的边界值

“asymw”

反对称填充(整点):反对称复制的边界值

“产后抑郁症”

周期化扩展(1)

“每”

延期延期(2)

如果信号长度是奇数,wextend属性在右边追加上一个值的副本,并使用“产后抑郁症”模式。否则,“每”减少到“产后抑郁症”.这个规则也适用于图像。

有关对称扩展模式的更多信息,请参见[1]

请注意

扩展模式'sp0'“社会民主党”(或'sp1')在执行扩展之前,在内部施放数据以进行双重精度。对于整数数据类型,wextend如果发生下列情况之一,则发出警告。

  • 转换为double会导致精度的损失。

  • 请求的扩展将导致超出双精度数可以精确表示连续整数范围的整数。

数据类型:char

输入数据,指定为实值向量或矩阵。

数据类型:|双倍的|int8|int16|INT32.|int64|uint8|uint16|uint32|uint64

扩展的长度,指定为非负整数或非负整数的二元向量。你可以通过表示来扩展矩阵LEN作为[lrow,lcol],在那里LROW要加和的行数是多少LCOL是要添加的列数。您可以通过指定LEN作为单个整数。

长度0的延伸相当于空扩展。

例子:wextend('2D','sym',[1 2 3 4;5 6 7 8],[2 0])只向上和向下延伸两行。

扩展的位置,指定为以下一个或一对:

  • 'L'——扩展左

  • “u”——扩展

  • “r”——扩展

  • ' d '——扩展

  • “b”- 两侧延伸

  • 'n'——零扩展

的有效和默认值座垫和行为LEN,取决于指定的类型

类型 座垫
1, ' 1 ', 1 d '“一维” 'L'“u”“r”' d '“b”,或'n'

例子:wextend(‘1 d’,‘zpd’,X, 3, ' r ')扩展输入向量X向右三个元素。

默认值:“b”

LEN是延伸的长度。
2、“2”、“二维”“二维” [Locrow,Loccol],在那里LOCROWLOCCOL是1-D扩展位置或'n'(没有)。

例子:wextend(“2 d’,‘zpd’,X, 3[2],乌兰巴托)扩展输入向量或矩阵X往上两行,两边三列。

默认值:“bb”

LEN,指定为[lrow,lcol],是要添加的行数和列数。
基于“增大化现实”技术的“addrow” 'L'“u”“r”' d '“b”,或'n'

例子:wextend(‘addrow’,‘zpd’,X, 4, ' d ')扩展输入向量或矩阵X四行。

默认值:“b”

LEN是要添加的行数。
“交流”“addcol” 'L'“u”“r”' d '“b”,或'n'

例子:wextend(‘addcol’,‘zpd’,X, 1, ' l ')扩展输入向量或矩阵X左边一列。

默认值:“b”

LEN是要加的列数。

提示

对于大多数小波应用,无论是周期扩展还是对称扩展都很好。

算法

当值超出输入数据类型的范围时,wextend将其映射到输入数据类型的最接近值。有关数据类型延长的数据示例,请参阅扩展超出范围限制的UINT8数据扩展int8数据超出范围限制

参考

[1] Strang, G.和T. Nguyen。小波和滤波器组.Wellesley,Ma:Wellesley-Cambridge Press,1996。

扩展功能

另请参阅

之前介绍过的R2006a