主要内容

检测不连续性和击穿点

具有非常快速演化的信号,如动态系统中的瞬态信号,可能会发生突变,如跳跃,或一阶导数或二阶导数的急剧变化。傅里叶分析通常不能检测到这些事件。这个例子的目的是展示小波分析如何检测信号变化的确切时刻,以及变化的类型(信号的破裂,或一阶导数或二阶导数的突变)和幅度。在图像处理中,一个主要的应用是边缘检测,它也涉及到检测突变。

频率崩溃

在检测信号破裂时,短小波通常比长小波更有效。因此,为了识别信号的不连续,我们将使用Haar小波。不连续信号由一个缓慢的正弦波突然跟随一个中等的正弦波组成。

负载freqbrkX = freqbrk;

计算1级的多层一维小波分解。

Level = 1;[c,l] = wavedec(x,level,“哈雾”);

从小波分解中提取1级的细节系数,并将结果可视化。插值细节系数,使他们和信号有相同的长度。

D1 = detcoef(c,l,level);Subplot (2,1,1) plot(x) Subplot (2,1,2) plot(interpft(d1,2*length(d1))) ylabel(“d1”

第一级详细信息(d1)的间断最为明显,因为破裂中包含了高频部分。不连续在time = 500附近被精确定位。

噪声的存在使不连续性的识别更加复杂。如果分解的较细级别可以用来消除大部分噪声,那么在分解的较粗级别有时可以看到破裂。

二次推导分解

这个例子的目的是展示小波分析如何检测信号的一个导数的不连续。信号,虽然表面上是一条平滑的曲线,但实际上是由两个独立的指数组成的。

负载scddvbrk;X = scddvbrk;Level = 2;[c,l] = wavedec(x,level,“db4”);[d1,d2] = detcoef(c,l,1:level);D1up = dyadup(d1,0);D2up = dyadup(dyadup(d2,0),0);Subplot (3,1,1) plot(x) xlim([400 600]) Subplot (3,1,2) plot(d1up) ylabel(“d1”) xlim([400 600]) subplot(3,1,3) plot(d2up) ylabel(“d2”xlim([400 600])

我们放大了信号的中间部分,以更清楚地显示time = 500左右发生的情况。细节只有在信号的中间部分是高的,其他地方可以忽略不计。这表明高频信息的存在——突然的变化或不连续——在时间= 500左右。

请注意,要检测奇点,所选小波必须足够正则,这意味着滤波器脉冲响应更长。正则性是选择小波的重要依据。我们选择了使用db4,这对于本分析来说是足够正则的。如果我们选择Haar小波,不连续就不会被检测到。如果您尝试在第二级使用Haar小波重复此分析,您将注意到在time = 500时细节等于零。

边缘检测

对于图像,二维离散小波变换导致在水平上的近似系数分解j分为四个部分:水平上的近似j+1,以及三个方向(水平、垂直和对角线)的细节。

负载格子呢;Level = 1;[c,s] = wavedec2(X,level,“coif2”);[chd1, cd1,cdd1] = detcoef2(“所有”、c、s、水平);
subplot(1,2,1) image(X) colormap(map) title(原始图像的) subplot(1,2,2) image(chd1) colormap(map) title(“水平边缘”

Subplot (1,2,1) image(cvd1) colormap(map) title(“垂直边缘”) subplot(1,2,2) image(cdd1) colormap(map) title(“对角线边缘”

另请参阅

|

Baidu
map