主要内容

提升过滤器银行

这个例子展示了如何使用提升来逐步改变一个完美重构滤波器组的特性。下图显示了提升的三个规范步骤:分割、预测和更新。

提升的第一步是简单地将信号分解为偶数和奇数索引的样本。这些被称为多相分量,在提升过程中这个步骤通常被称为“懒惰”的提升步骤,因为你真的没有做那么多的工作。您可以在MATLAB™中通过使用创建一个“懒惰”提升方案来实现这一点升降机化学默认设置。

ls =升降机;

使用提升方案获得随机信号的1级小波分解。

1 x = randn(8日);[ALazy, DLazy] =轻型(x,'Liftingscheme',ls,“水平”1);

matlab指数从1开始ALazy包含x和的奇索引样本DLazy包含均匀索引样本。提升的大多数解释假设信号从样品0开始,所以ALazy是偶数索引的样本吗DLazy奇数索引样本。此示例遵循后一惯例。“懒惰”小波变换将信号的一半作为小波系数处理,DLazy,另一半作为缩放系数,ALazy.在提升的环境中,这是完全一致的,但简单的数据分割确实会稀疏或捕获任何相关的细节。

提升方案的下一步是基于偶数样本预测奇数样本。其理论基础是大多数自然信号和图像在相邻样本之间表现出相关性。因此,您可以使用偶索引样本“预测”奇索引样本。你的预测和实际值之间的差异是预测器错过的数据的“细节”。这个缺失的细节就是小波系数。

在等式形式中,您可以编写预测步骤 d j n d j - 1 n - P 一个 j - 1 在哪里 d j - 1 n 是更精细的小波系数和较好的尺度 一个 j - 1 是一些精细尺度的缩放系数。 P 是预测运算符。

添加一个简单(HAAR)预测步骤,其从奇数(细节)系数中减去偶数(近似)系数。在这种情况下,预测运算符只是简单 - 1 一个 j - 1 n .换句话说,它根据前面的偶样本预测奇样本。

elemliftstep =升降步骤('类型'“预测”“系数”,-1,'maxOrder',0);

上面的代码说“创建一个基本的预测提升步骤使用一个多项式 z 拥有最高权力 z 0 .系数是-1。更新懒人提升方案。

LSN = Addlift(LS,ElemliftStep);

对信号应用新的提升方案。

[a,d] = lwt(x,'Liftingscheme'LSN,“水平”1);

请注意,元素一个与那些相同ALazy.这是预期的,因为你没有修改近似系数。

[alazy]
ans =4×20.5377 0.5377 -2.2588 -2.2588 0.3188 0.3188 -0.4336 -0.4336

如果你看一下d {1},你可以看到它们等于DLazy {1} -ALazy

Dnew = DLazy {1} -ALazy;(Dnew D {1})
ans =4×21.2962 1.2962 3.1210 3.1210 -1.6265 -1.6265 0.7762 0.7762

比较DnewD.假设有这样一个例子,信号每两个采样都是分段常数。

V = [1 -1 1 -1 1 -1];u = repelem (v, 2)
你=1×12.1 1 1 -1 -1 1 1 -1 -1 1 1 1 -1 -1

将新的提升方案应用于u

(非盟,Du) =轻型(u,'Liftingscheme'LSN,“水平”1);du {1}
ans =6×10 0 0 0 0

你看到所有的为零。这个信号已经被压缩了,因为所有的信息现在包含在6个样本中,而不是12个样本中。你可以很容易地重建原始信号

urecon = ilwt (Au,杜'Liftingscheme', LSN);马克斯(abs (u (:) -urecon (:)))
ans = 0

在预测步骤中,您预测信号中的相邻奇数样本具有与紧接在先前样本相同的值相同的值。显然,这对于琐碎的信号来说是真的。小波系数捕获预测和实际值(在奇数样本)之间的差异。最后,使用更新步骤基于预测步骤中获得的差异来更新偶数样本。在这种情况下,使用以下更新 一个 j n 一个 j - 1 n + d j - 1 n / 2 .它用偶数和奇数系数的算术平均值替换每个偶数索引系数。

elsUpdate = liftingStep ('类型''更新'“系数”,1/2,'maxOrder',0);lsupdated = Addlift(LSN,Elsupdate);

用改进后的提升方案对信号进行小波变换。

[a,d] = lwt(x,'Liftingscheme'LSupdated,“水平”1);

如果你比较一个原始信号,x,您看到信号均值在近似系数中捕获。

[均值(a)均值(x)]
ans =1×2-0.0131 - -0.0131

事实上,元素一个很容易获得x由以下。

n = 1;2 = 1:2:元素个数(x) meanz (n) =意味着([x (ii) x (2 + 1)]);n = n + 1;结束

比较意思一个.与往常一样,您可以反转提升方案以获得数据的完美重构。

xrec = ilwt (A, D,'Liftingscheme', LSupdated);马克斯(abs (x-xrec))
ans = 2.2204 e-16

很常见在末端添加归一化步骤,以便信号中的能量( 2 标准)被保留为缩放和小波系数中的能量的总和。如果没有这种归一化步骤,则不能保留能量。

规范(x, 2) ^ 2
ans = 11.6150.
规范(2)^ 2 +规范(D {1}, 2) ^ 2
ans = 16.8091

添加必要的归一化步骤。

LSsteps = LSupdated.LiftingSteps;LSscaled = liftingScheme ('举起'LSsteps,“NormalizationFactors”,[sqrt(2)]);[a,d] = lwt(x,'Liftingscheme'LSscaled,“水平”1);规范(2)^ 2 +规范(D {1}, 2) ^ 2
ans = 11.6150.

现在, 2 信号的规范等于缩放和小波系数中的能量之和。您在此示例中开发的提升方案是Haar提升方案。

小波工具箱™通过支持许多常用的提升金宝app方案升降机化学具有预定义的预测和更新步骤和归一化因子。例如,您可以使用以下方式获取Haar提升方案。

lshaar = liftingScheme ('小波'“哈雾”);

要看到不是所有的提升方案都由单一的预测和更新提升步骤组成,检查对应的提升方案Bior3.1.小波。

lsbior3_1 =升降机('小波'“bior3.1”
lsbior3_1 =小波:'bior3.1' LiftingSteps: [3 × 1] liftingStep NormalizationFactors: [2.1213 0.4714] CustomLowpassFilter: [] Details of LiftingSteps: Type: 'update' Coefficients: -0.3333 MaxOrder: -1 Type: 'predict' Coefficients: [-0.3750 -1.1250] MaxOrder: 1 Type: 'update' Coefficients: 0.4444 MaxOrder: 0