多信号一维小波分析
一维多信号是一组相同长度的一维信号,存储为按行(或按列)组织的矩阵。
本例的目的是展示如何分析、去噪或压缩多信号,然后聚类组成多信号的不同表示或简化版本的信号。
在本例中,首先对信号进行分析,然后产生不同的表示形式或简化版本:
在给定水平上的重建近似,
去噪的版本,
压缩版本。
去噪和压缩是小波的两个主要应用,通常用作聚类前的预处理步骤。
本例的最后一步执行几种集群策略并对它们进行比较。它允许使用稀疏小波表示来总结大量的信号。
加载和绘制一个多信号
为了说明这些功能,让我们考虑一个真实的多信号,表示35天的电力负载消耗,集中和标准化。
负载elec35_nor;加载规范化的原始数据。X =信号;[nbSIG,nbVAL] = size(X);情节(X ',“r”)轴紧标题(“原始数据:35天的用电量”);包含(“从1点到14点40分”);
我们可以看到信号在局部是不规则的和有噪声的,但仍然可以区分出三种不同的一般形状。
数据的表面表示
为了突出多信号的周期性,现在让我们使用3d表示来检查数据。
冲浪(X)阴影插值函数轴紧标题(“原始数据:35天的用电量”)包含(“从1点到14点40分”,“旋转”4) ylabel (“从1日至35日”,“旋转”,-60) ax = gca;斧子。View = [-13.5 48];
现在可以更清楚地看到所代表的五个星期。
多信号行分解
在第7级执行小波分解。sym4的小波。
dirDec =“r”;%分解方向Level = 7;分解程度wname =“sym4”;%近对称小波decROW = mdwtdec(dirDec,X,level,wname);
生成的分解结构如下:
decROW
decROW = struct with fields: dirDec: 'r' level: 7 wname: 'sym4' dwtFilters: [1x1 struct] dwtEXTM: 'sym' dwtShift: 0 dataSize: [35 1440] ca: [35x18 double] cd: {1x7 cell}
7级信号和近似
让我们为每个行信号重建第7级的近似值。然后,为了将近似值与原始信号进行比较,让我们显示两个图(见下图)。第一个显示了所有原始信号,第二个显示了所有对应的7级近似。
A7_ROW = mdwtrec(decROW,“一个”7);次要情节(2,1,1)情节(X (:,)“r”)标题(“原始数据”)轴紧次要情节(2,1,2)情节(A7_ROW(:,:)”,“b”)轴紧标题(“相应的7级近似”)
可以看到,在第7级的近似值捕获了总体形状,但丢失了一些有趣的特征。例如,信号开头和结尾的凸起消失了。
叠加信号与近似
为了更紧密地比较原始信号及其在7级对应的近似值,让我们显示两个图(见下图)。第一个是前四个信号,第二个是最后五个信号。这些图中的每一个都表示原始信号与它们在7级的相应近似的叠加。
subplot(2,1,1) idxDays = 1:4;情节(X (idxDays:) ',“r”)举行在情节(A7_ROW (idxDays:) ',“b”)轴紧标题([“天”int2str (idxDays),信号和逼近达到7级) subplot(2,1,2) idxDays = 31:35;情节(X (idxDays:) ',“r”)举行在情节(A7_ROW (idxDays:) ',“b”)轴紧标题([“天”int2str (idxDays),信号和逼近达到7级])
可以看出,原始信号的近似在一般形状方面是视觉上准确的。
Multisignal去噪
为了对多信号进行更微妙的简化,保留这些明显归因于电信号的凸起,让我们对多信号进行去噪。
去噪过程使用三个步骤执行:
1)分解:选择一个小波和一个N级分解,然后计算信号在N级的小波分解。
2)阈值:对于从1到N的每个级别和每个信号,选择一个阈值,并对细节系数应用阈值。
3)重建:利用原N级近似系数和修改后的1 - N级细节系数计算小波重构。
现在让我们选择分解级别N = 5,而不是之前使用的N = 7。
dirDec =“r”;%分解方向Level = 5;分解程度wname =“sym4”;%近对称小波decROW = mdwtdec(dirDec,X,level,wname);[XD,decDEN] = mswden(“窝”decROW,“sqtwolog”,“mln”);残差= X-XD;次要情节(1,1)情节(X ',“r”)轴紧标题(“原始数据:35天的用电量”) subplot(3,1,2) plot(XD',“b”)轴紧标题(“去噪数据:35天的电力消耗”) subplot(3,1,3) plot(Residuals',“k”)轴紧标题(“残差”)包含(“从1点到14点40分”)
结果的质量很好。在信号的开始和结束的凸起被很好地恢复,相反,残差看起来像一个噪声,除了一些剩余的凸起由于信号。此外,这些剩余的凸起的大小是一个小的顺序。
多信号压缩行信号
像去噪一样,压缩过程使用三个步骤执行(见上文)。
与去噪过程的差异可以在步骤2中找到。有两种可用的压缩方法:
第一种方法是对信号进行小波展开,保持绝对值系数最大。在这种情况下,可以设置全局阈值、压缩性能或相对平方范数恢复性能。因此,只需要选择一个与信号相关的参数。
第二种方法包括应用视觉确定的与级别相关的阈值。
为了简化数据表示并使压缩更有效,让我们回到第7级的分解,通过应用全局阈值来压缩多信号的每一行,从而恢复99%的能量。
dirDec =“r”;%分解方向Level = 7;分解程度wname =“sym4”;%近对称小波decROW = mdwtdec(dirDec,X,level,wname);[XC,decCMP,THRESH] = mswcmp(cmp的decROW,“L2_perf”, 99);次要情节(1,1)情节(X ',“r”)轴紧标题(“原始数据:35天的用电量”) subplot(3,1,2) plot(XC',“b”)轴紧标题(“压缩数据:35天的电力消耗”) subplot(3,1,3) plot((X-XC)',“k”)轴紧标题(“残差”)包含(“从1点到14点40分”)
可以看出,总体形状被保留,局部不规则被忽略。由于残差的尺度很小,所以除含有噪声外,残差中也含有其他成分。
压缩性能
现在让我们计算非零元素的相应密度。
cfs = cat(2,[decCMP.cd{:},decCMP.ca]);CFS =稀疏(CFS);(1,nbSIG);为k = 1:nbSIG perf(k) = 100*nnz(cfs(k,:))/nbVAL;结束图绘制(穿孔,的r - *)标题(“35天内非零系数的百分比”)包含(“信号指标”) ylabel (非零系数百分比)
对于每个信号,恢复99%能量所需系数的百分比在1.25%到1.75%之间。这说明了小波集中信号能量在几个系数的能力。
聚类行信号
聚类提供了一个使用稀疏小波表示来总结大量信号的方便过程。您可以使用mdwtcluster
.您必须有统计和机器学习工具箱™才能使用mdwtcluster
.
比较35天数据的三种不同聚类。第一个是基于原始的多信号,第二个是基于7级的近似系数,最后一个是基于去噪的多信号。
设置集群个数为3个。计算结构P1和P2,它们分别包含前两个分区和第三个分区。
P1 = mdwtcluster(decROW,“lst2clu”, {“年代”,“ca7”},“maxclust”3);P2 = mdwtcluster(decDEN,“lst2clu”, {“年代”},“maxclust”3);集群= [P1.]IdxCLU P2.IdxCLU];
现在我们可以测试这三个分区是否相等。
EqualPART = isequal(max(diff(Clusters,[],2)),[0 0]))
EqualPART = logical 1
所以这三个分区是一样的。现在让我们绘制并检查这些集群。
图阻止(集群,“填充”,”乙:“)标题(“最初35天的三个星团”)包含(“信号指标”) ylabel (“聚类索引”) ax = gca;Xlim ([1 35]) ylim([0.5 3.1]) ax。YTick = 1:3;
第一个聚类(标记为3)包含25个周中日,另外两个聚类(标记为2和1)分别包含5个星期六和5个星期日。这再次说明了底层时间序列的周期性,以及在本例开头显示的前两个图中看到的三种不同的一般形状。
现在让我们显示原始信号和用于获得三个分区中的两个的相应近似系数。
CA7 = mdwtrec(decROW,“ca”);IdxInCluster = cell(1,3);为IdxInCluster{k} = find(P2.IdxCLU==k);结束图(“单位”,“归一化”,“位置”,[0.2 0.2 0.6 0.6])为k = 1:3 idxK = IdxInCluster{k};次要情节(2 3 k)情节(X (idxK:) ',“r”)轴紧Ax = gca;斧子。XTick = [200 800 1400];如果k = = 2标题(原始信号的)结束包含([的集群:int2str (k)“(”int2str(长度(idxK))“)”]) subplot(2,3,k+3) plot(CA7(idxK,:)',“b”)轴紧如果k = = 2标题(7级的近似系数)结束包含([的集群:int2str (k)“(”int2str(长度(idxK))“)”])结束
从原始信号(每个信号1440个样本)和从7级的近似系数(每个信号18个样本)中获得相同的分区。这表明,使用不到2%的系数就足以获得35天内相同的聚类分区。
总结
使用小波去噪、压缩和聚类是非常有效的工具。小波表示将信号能量集中在几个系数内的能力是效率的关键。此外,聚类提供了一个方便的过程来总结大量的信号使用稀疏小波表示。