主要内容

正交和双正交滤波器组

这个例子展示了用小波工具箱软件构造和使用正交和双正交滤波器组。典型的严格采样双通道滤波器组如下图所示。

$ \波浪号{G} $$ \波浪号{H} $表示低通和高通分析滤波器和$ g $H美元表示相应的低通和高通综合滤波器。双通道严格采样滤波器组使用低通和高通滤波器对输入信号进行滤波。滤波器的子带输出被下采样为2,以保持样本的总数。为了重建输入,上采样2,然后使用低通和高通合成滤波器插值结果。如果过滤器满足某些属性,就可以实现输入的完美重构。为了证明这一点,使用具有两个消失矩的Daubechies极值相位小波对心电信号进行滤波。在后面的章节中,该示例解释了消失时刻的概念。

负载wecg;情节(wecg);标题(心电信号的

获得低通(缩放)和高通(小波)分析和综合滤波器。

[gtilde, htilde, g h] = wfilters (“db2”);

对于本例,将DWT的填充模式设置为周期化。这并不能扩展信号。

origmodestatus = dwtmode (“状态”“nodisplay”);dwtmode (“每”“nodisplay”);

得到心电信号的一级离散小波变换(DWT)。这相当于图中双通道滤波器组的分析分支(带下采样)。

(低通、高通)= dwt (wecg、gtilde htilde);

用合成滤波器对低通(尺度系数)和高通(小波系数)子带进行上采样和插值,并显示出完美的重构。

xrec =得到(低通,高通,g, h);马克斯(abs (wecg-xrec))次要情节(2,1,1)情节(wecg);标题('原始ECG波形'次要情节(2,1,2)情节(xrec);标题(重建心电图波形的);
ans = 1.3658 e-12

“DB2”小波的分析和合成滤波器仅仅是彼此的时间逆转。您可以通过比较以下内容来查看此功能。

scalingFilters =[翻转(gtilde);g] waveletFilters = [flip(htilde);h]
小波滤波器= -0.1294 -0.2241 -0.1294

这是所有正交小波滤波器组的情况。小波工具箱支持的正交小波族是'dbN', 'fkN', 'sym金宝appN'和'coifN',其中N是一个有效的滤波器数。

而不是提供dwt使用前面示例中的过滤器,您可以使用字符串'db2'。使用小波族的短名称和滤波器数,您不必正确地指定分析和合成滤波器。

(低通、高通)= dwt (wecg,“db2”);xrec =得到(低通、高通滤波“db2”);

Daubechies的极值相位和最小不对称相位小波(‘db’和‘sym’)中的滤波数是指消失矩的数量。基本上,一个有N个消失矩的小波去掉了小波系数中N-1阶的多项式。为了说明这一点,构造一个含有加性噪声的线性趋势的信号。

n = (0:511) / 512;x = 2 * n + 0.2 * randn(大小(n));情节(n, x)

线性趋势是一次多项式。因此,一个具有两个消失矩的小波去掉了这个多项式。尺度系数保持了线性趋势,可以认为小波系数仅由噪声组成。用“db2”小波(两个消失的矩)获得信号的一级小波变换,并绘制系数。

[D] = dwt (x,“db2”);次要情节(2,1,1)图(一个);标题(的比例系数);次要情节(2,1,2)情节(D);标题(“小波系数”);

您可以使用dwt得到实现一个双通道正交滤波器组,但通常使用多级双通道滤波器组更方便wavedec.多级DWT对低通(缩放)滤波器的输出进行迭代。换句话说,第二级滤波器组的输入是第一级低通滤波器的输出。两级小波滤波器组如下图所示。

在每一个逐级,尺度系数和小波系数的数量被向下采样2,所以系数的总数被保留。使用'sym4'正交滤波器组获得心电信号的三级DWT。

[C、L] = wavedec (wecg 3“sym4”);

向量L中包含每层系数的个数。L的第一个元素等于256,表示第3层(最后一层)缩放系数的个数。L的第二个元素是第3级小波系数的个数。随后的元素给出了更高层次的小波系数数,直到到达L的最后一个元素。L的最后一个元素等于原始信号中的样本数。尺度和小波系数以相同的顺序存储在向量C中。要提取尺度系数或小波系数,使用appcoef或者detcoef.提取单元阵列中的所有小波系数和末级尺度系数。

wavcoefs = detcoef (C、L、“dcells”);a3 = appcoef (C、L、“sym4”);

你可以在小波和比例系数的近似位置绘制它们。

cfsmatrix = 0(元素个数(wecg), 4);cfsmatrix(1:2:最终,1)= wavcoefs {1};cfsmatrix(1:4:结束,2)= wavcoefs {2};cfsmatrix(1:8:最终,3)= wavcoefs {3};cfsmatrix(1:8:结束,4)= a3;次要情节(5、1、1)的阴谋(wecg);标题(原始信号的);轴Kk = 2:4 subplot(5,1, Kk) stem(cfsmatrix(:, Kk -1),)“标记”“没有”“ShowBaseLine”“关闭”);ylabel ([' D 'num2str (kk-1)]);轴结束次要情节(5、1、5);茎(cfsmatrix(:,结束),“标记”“没有”“ShowBaseLine”“关闭”);ylabel (“A3”);包含(“样本”);轴

因为严格采样小波滤波器在每一层对数据进行向下采样,当只剩下一个系数时,分析必须停止。对于带有2048个样本的心电信号,这必须发生在$ L = \ log_2 {2048} $

[C、L] = wavedec (wecg log2(元素个数(wecg)),“sym4”);流(最后一层的系数数是%d。\ n”L (1));
最后一层的系数数是1。

如果您希望实现一个正交小波滤波器组而不向下采样,您可以使用modwt

ecgmodwt = modwt (wecg,“sym4”3);ecgmra = modwtmra (ecgmodwt,“sym4”);次要情节(5、1、1);情节(wecg);标题(原始信号的);标题(“MODWT-Based多分辨率分析”);Kk = 2:4 subplot(5,1, Kk) plot(ecgmra(Kk -1,:));ylabel ([' D 'num2str (kk-1)]);结束次要情节(5、1、5);情节(ECGMRA(ECGMRA(END,:));ylabel (“A3”);包含(“样本”);

在双正交滤波器组中,综合滤波器不仅仅是分析滤波器的时间倒转版本。双正交样条小波滤波器族就是这种滤波器组的一个例子。

[LoD、藏、卤,HiR] = wfilters (“bior3.5”);

如果您检查分析过滤器(LoD,HiD)和合成过滤器(LoR,HiR),您会发现它们是非常不同的。这些滤波器组仍然提供完美的重构。

[D] = dwt (wecg、LoD、藏);xrec =得到(A, D,卤,HiR);马克斯(abs (wecg-xrec))
ans = 4.4409 e-16

当线相位是滤波器银行的要求时,双正交滤波器是有用的。正交滤波器不能具有线性阶段,但哈尔小波滤波器除外。如果您有信号处理工具箱™,可以查看正交和双正交对小波滤波器的相位响应。

[Lodb6, Hidb6] = wfilters (“db6”);[PHIdb6 W] = phasez (Hidb6, 1512);PHIbior35 = phasez(藏,1512);图;次要情节(2,1,1)情节(w /(2 *π)PHIdb6);标题(“db6小波的相位响应”);网格;包含('周期/样品');ylabel (“弧度”);次要情节(2,1,2)情节(w /(2 *π)PHIbior35);标题(“bior3.5小波的相位响应”);网格;包含('周期/样品');ylabel (“弧度”);

将dwtmode设置回原始设置。

dwtmode (origmodestatus“nodisplay”);