此示例显示了离散小波变换之间的差异(DWT.)和连续小波变换(CWT.)。
要回答这个问题,请考虑相关的问题:您是否需要知道连续分解的所有值来精确地重建信号?你能执行非冗余分析吗?当信号的能量是有限的,并不是所有的分解值都需要精确地重建原始信号,如果你使用的小波满足某些容许条件。通常的小波满足这个条件。在这种情况下,连续时间信号的特征是离散变换的知识。在这种情况下,离散分析是充分的,连续分析是多余的。
持续分析通常更容易解释,因为它的冗余倾向于加强特征,并使所有信息更加明显。非常细微的信息尤其如此。因此,分析在“可读性”中提升,并易于解释它在节省空间方面失去的内容。
显示使用小波的分析如何在信号变化时检测精确的即时。使用不连续的信号,该信号由慢速正弦波突然组成,然后是媒体正弦波。
加载Freqbrk.;signal = freqbrk;
使用HAAR小波在5级执行离散小波变换(DWT)。
Lev = 5;wname =“db1”;nbcol = 64;[c,l] = wavedec(信号,lev,wname);
展开绘图的离散小波系数。
len =长度(信号);CFD =零(LEV,LEN);为了K = 1:LEV D = DETCOEF(C,L,K);d = d(:)';d = d(1,2 ^ k),:);CFD(k,:) = WHEAK(D(:)',LEN);结尾cfd = cfd (:);我找= (abs (cfd) < sqrt (eps));cfd (I) = 0(大小(I));cfd =重塑(cfd,列弗,len);cfd = wcodemat (cfd nbcol,'排');H211 =子图(2,1,1);h211.xtick = [];绘图(信号,'r');标题(分析了信号。);斧头= GCA;ax.xlim = [1长度(信号)];子图(2,1,2);Colormap(Cool(128));图像(CFD);TICS = 1:LEV;Labs = Int2str(TICS');斧头= GCA;ax.yticklabelmode ='手动的';ax.ydir ='普通的';AX.BOX =.'在';ax.ytick = TICS;ax.yticklabel =实验室;标题('离散变换,绝对系数。);ylabel('等级');
执行连续小波变换(CWT)和可视化结果
数字;[CFS,F] = CWT(信号,1,'小波帕纳姆',[3 3.1]);HP = PColor(1:长度(信号),F,ABS(CFS));hp.edgecolor ='没有任何';集(gca),'yscale'那'日志');Xlabel('样本');ylabel('log10(f)');
如果您只需查看最精细的CWT系数,可以精确地本地化频率变化。
绘图(ABS(CFS(1,:)));网格在;
该示例显示了傅里叶上的小波分析的重要优势。如果通过傅里叶变换分析相同的信号,则在信号的频率变化时,我们将无法检测到瞬态,而这里可以清楚地观察到。