主要内容

小波包:细节分解

这个例子展示了小波包与离散小波变换(DWT)的不同之处。这个例子展示了小波包变换如何导致信号的等宽子带滤波,而不是在DWT中发现的更粗的倍频带滤波。

这使得小波包在许多应用中成为DWT的一个有吸引力的替代品。这里给出的两个例子是时频分析和信号分类。您必须有统计和机器学习工具箱™和信号处理工具箱™来执行分类。

如果使用带有小波包变换的正交小波,最后还会在等宽子带中划分信号能量。

这个例子主要集中在1-D的情况下,但是许多概念直接扩展到图像的小波包变换。

离散小波和离散小波包变换

下图显示了一维输入信号的DWT树。

图1:DWT树向下到3级为1-D输入信号。

G f 缩放(低通)分析是过滤器和 H f 表示小波(高通)分析滤波器。底部的标签显示频率轴[0,1/2]划分为子带。

图中显示,DWT的后续级别仅作用于低通(缩放)滤波器的输出。在每个级别上,DWT将信号划分为八度波段。在临界采样DWT中,带通滤波器的输出在每一电平下采样两个。在未细化离散小波变换中,输出不进行下采样。

将小波t树与全小波包树进行比较。

图2:全小波包树下到第3级。

在小波包变换中,滤波操作也应用于小波系数或细节系数。结果是,小波包提供了一种子带滤波,将输入信号逐步细化为等宽间隔。在每个层面上, j 时,频率轴[0,1/2]分为 2 j 部分波段。以赫兹为单位的子带 j

n F 年代 2 j + 1 n + 1 F 年代 2 j + 1 n 0 1 ... 2 j - 1 在哪里 Fs 为采样频率。

这个带通近似有多好取决于滤波器的频域化程度。对于Fejér-Korovkin过滤器“fk18”(18个系数),近似很好。对于像Haar (“哈雾”),则近似值并不准确。

在临界采样小波包变换中,带通滤波器的输出被下采样两个。在未细化的小波包变换中,输出不进行下采样。

小波包时频分析

由于小波包将频率轴划分为比DWT更细的区间,因此小波包在时频分析方面具有优势。例如,考虑两个频率为150和200 Hz的间歇正弦波在附加噪声中。数据以1千赫采样。为了防止临界采样小波包变换固有的时间分辨率的损失,可以使用未消元变换。

Dt = 0.001;T = 0:dt:1-dt;x =...因为(2 *π* 150 * t) * (t > = 0.2 & t < 0.4) +罪(2 *π* 200 * t) * 0.6 (t > & t < 0.9);Y = x+0.05*randn(size(t));[wpt,~,F] = modwpt(x,“TimeAlign”,真正的);轮廓(t、f * (1 / dt), abs (wpt)。^ 2)网格包含(的时间(秒)) ylabel (“赫兹”)标题(《时频分析——非拟小波包变换》

图中包含一个轴对象。标题为“时频分析—未标定小波包变换”的轴对象包含一个类型轮廓对象。

注意,小波包变换能够分离150和200 Hz的分量。这对于DWT是不正确的,因为150和200赫兹落在同一个八度波段。四级DWT的倍频波段为(以赫兹为单位)

  • [0, 31.25)

  • [31.25, 62.5)

  • [62.5,125)

  • (125250)

  • (250500)

证明这两个分量是由DWT时间局部化的,但在频率上没有分离。

Mra = modwtmra(modwt(y,“fk18”4),“fk18”);J = 5:-1:1;频率= 1/2*(1000./2.^J);轮廓(t,频率,flipud (abs (mra)。^ 2))网格Ylim ([0 500]) xlabel(的时间(秒)) ylabel (“赫兹”)标题(《时频分析——非拟小波变换》

图中包含一个轴对象。标题为“时频分析—未标注小波变换”的轴对象包含一个类型为轮廓的对象。

当然,连续小波变换(CWT)比小波包变换提供了更高分辨率的时频分析,但是小波包有一个额外的好处,就是它是一个正交变换(当使用正交小波时)。正交变换意味着信号中的能量被保留并在系数之间进行划分,如下一节所示。

小波包变换中的能量保存

小波包变换除了在每一级将信号滤波成等宽的子带外,还将信号的能量在子带中进行了划分。这对于抽取小波包变换和非抽取小波包变换都是正确的。要演示这一点,请加载包含地震记录的数据集。该数据类似于下面信号分类示例中使用的时间序列。

负载科比情节(科比)网格包含(“秒”)标题(“神户地震资料”)轴

图中包含一个轴对象。标题为Kobe Earthquake Data的axes对象包含一个类型为line的对象。

得到数据的抽取小波包变换和未抽取小波包变换直到3级。为了保证抽取小波包变换结果的一致性,将边界扩展模式设置为“周期”

wptreeDecimated = dwpt(科比,“水平”3,“边界”“周期”);wptUndecimated = modwpt(kobe,3);

计算抽取小波包三级系数和未抽取小波包三级系数的总能量,并与原始信号中的能量进行比较。

decimatedEnergy = sum(cell2mat(cellfun(@(x) sum(abs(x).^2),wptreeDecimated,“UniformOutput”假)))
decimatedEnergy = 2.0189e+11
unimatedenergy = sum(sum(abs(wptUndecimated).^2,2))
unimatedenergy = 2.0189e+11
signalEnergy = norm(kobe,2)^2
signalEnergy = 2.0189e+11

小波变换与小波包变换具有同样重要的性质。

Wt = modwt(神户,“fk18”3);unimatedwtenergy = sum(sum(abs(wt).^2,2))
未imatedwtenergy = 2.0189e+11

由于每一级的小波包变换将频率轴划分为等宽的区间,并在这些区间中划分信号能量,因此通常只需保留每个小波包中的相对能量,就可以构造有用的特征向量用于分类。下一个例子说明了这一点。

小波包分类——地震还是爆炸?

地震记录从许多来源捕捉到活动。重要的是能够根据其起源对该活动进行分类。例如,地震和爆炸可能呈现相似的时域特征,但区分这两个事件是非常重要的。数据集EarthQuakeExplosionData包含16个录音和2048个样本。前8个记录(列)为地震记录,后8个记录(列)为爆炸记录。加载数据并绘制地震和爆炸记录以进行比较。数据是从R包astsa Stoffer中获取的[4]这是对Shumway和Stoffer的补充[3].作者好心地允许在本例中使用它。

绘制出各组的时间序列进行比较。

负载EarthQuakeExplosionDatasubplot(2,1,1) plot(地震爆炸数据(:,3))xlabel(“时间”)标题(“地震记录”网格)subplot(2,1,2) plot(地震爆炸数据(:,9))xlabel(“时间”)标题(“爆炸记录”网格)

图中包含2个轴对象。标题为“地震记录”的Axes对象1包含一个类型为line的对象。标题为Explosion Recording的Axes对象2包含一个类型为line的对象。

通过将每个时间序列分解到三级,形成一个小波包特征向量“fk6”用一个非拟小波包变换的小波。结果得到8个子带,宽度约为1/16个周期/样本。使用每个子带中的相对能量来创建一个特征向量。以第一次地震记录为例,得到一个小波包相对能量特征向量。

[wpt,~,F,E,RE] = modwpt(seisakeexplosiondata (:,1),3,“fk6”);

再保险包含8个子带中每个子带的相对能量。如果你把所有元素加起来再保险,它等于1。请注意,这是数据的显著减少。将长度为2048的时间序列简化为8个元素的向量,每个元素代表第3级小波包节点中的相对能量。辅助函数helperEarthQuakeExplosionClassifier方法获取第3级16个记录中每个记录的相对能量“fk6”小波。这将导致一个16 × 8的矩阵,并使用这些特征向量作为kmeans分类器的输入。分类器使用Gap统计准则来确定1到6之间的特征向量的最佳聚类数量,并对每个向量进行分类。此外,分类器对未修饰的小波变换系数在3级上执行完全相同的分类“fk6”每个时间序列的小波和功率谱。未修饰小波变换的结果是一个16 × 4矩阵(3个小波子带和1个缩放子带)。功率谱的结果是一个16 × 1025的矩阵。的源代码helperEarthQuakeExplosionClassifier在附录中列出。您必须有统计和机器学习工具箱™和信号处理工具箱™才能运行分类器。

Level = 3;[WavPacketCluster, WtCluster PspecCluster] =...helperEarthQuakeExplosionClassifier (EarthQuakeExplosionData级别)
WavPacketCluster = GapEvaluation with properties: NumObservations: 16 InspectedK: [1 2 3 4 5 6] CriterionValues: [-0.0039 0.0779 0.1314 0.0862 0.0296 -0.0096] OptimalK: 2
WtCluster = GapEvaluation with properties: NumObservations: 16 InspectedK: [1 2 34 5 6] CriterionValues: [-0.0095 0.0474 0.0706 0.0260 -0.0280 -0.0346] OptimalK: 2
PspecCluster = GapEvaluation with properties: NumObservations: 16 InspectedK: [1 2 34 56] CriterionValues: [0.3804 0.3574 0.3466 0.2879 0.3256 0.3326] OptimalK: 1

WavPacketCluster为未修饰小波包特征向量的聚类输出。WtCluster是使用未修饰DWT特征向量的聚类输出,和PspecCluster是基于功率谱进行聚类的输出。小波包分类识别了两个簇(OptimalK: 2)为最佳数目。检验小波包聚类的结果。

res = [WavPacketCluster.OptimalY(1:8)';WavPacketCluster.OptimalY(9:结束)')
res =2×81 2 2 2 2 2 2 2 1 1 1 1 1 1 1 2 2

你看,只犯了两个错误。在8次地震记录中,有7次被归在一起(第2组),1次被错误地归在第1组。8份爆炸录音也是如此——7份是一起分类的,1份是错误分类的。基于三级未细化DWT和功率谱的分类返回一个簇作为最优解。

如果在级别为4的情况下重复上述步骤,则未修饰小波变换和小波包变换的效果是相同的。两者都将两个簇确定为最优,并且都将第一个和最后一个时间序列错误地归类为属于另一个组。

结论

在本例中,您了解了小波包变换与离散小波变换的不同之处。具体来说,小波包树还过滤小波(细节)系数,而小波变换只迭代缩放(近似)系数。

您了解到,小波包变换具有DWT的重要能量保存特性,同时提供优越的频率分辨率。在某些应用中,这种优越的频率分辨率使得小波包变换成为DWT的一个有吸引力的替代品。

附录

helperEarthQuakeExplosionClassifier

函数[WavPacketCluster,WtCluster,PspecCluster] = helperseisakeexplosionclassifier (Data,Level)此函数仅用于支持特定示例金宝app% waveletpacketsdemo.mlx。此函数可能在未来的版本中被更改或删除。% Data -以单个时间序列为列向量的数据矩阵。%级别-小波包和小波变换的级别NP = 2^Level;NW = Level+1;WpMatrix = 0 (16,NP);WtMatrix = 0 (16,NW);jj = 1:8 [~,~,~,~,RE] = modwpt(Data(:,jj),Level,“fk6”);wt = modwt(数据(:,jj),级别,“fk6”);WtMatrix (jj:) =总和(abs (wt)。^ 2,2)。/规范(数据(:,jj), 2) ^ 2;WpMatrix(jj,:) = RE;结束kk = 9:16 [~,~,~,~,RE] = modwpt(Data(:,kk),Level,“fk6”);wt = modwt(数据(:,kk),级别,“fk6”);WtMatrix (kk:) =总和(abs (wt)。^ 2,2)。/规范(数据(:,kk), 2) ^ 2;WpMatrix(kk,:) = RE;结束%用于重复性rng (“默认”);WavPacketCluster = evalclusters(WpMatrix,“kmeans”“差距”“中”1:6,...“距离”“cityblock”);WtCluster = evalclusters(WtMatrix,“kmeans”“差距”“中”1:6,...“距离”“cityblock”);Pxx = periodogram(Data,hamming(number (Data(:,1))),[],1,“权力”);PspecCluster = evalclusters(Pxx',“kmeans”“差距”“中”1:6,...“距离”“cityblock”);结束

参考文献

[1] Wickerhauser, Mladen Victor。小波分析从理论应用到软件.马萨诸塞州韦尔斯利:A.K.彼得斯,1994年。

[2]珀西瓦尔,唐纳德·B和安德鲁·t·沃顿。时间序列分析的小波方法.剑桥统计与概率数学系列。剑桥 ;纽约:剑桥大学出版社,2000年。

[3]沙姆韦,罗伯特·H.,大卫·s·斯托弗。时间序列分析及其应用——附R个例子.第三版。施普林格统计学文本。纽约:施普林格,2011。

[4]斯托弗,D. H.;应用统计时间序列分析。R包1.3版本。https://CRAN.R-project.org/package=astsa, 2014.

另请参阅

|||