主要内容

检测不连续性和故障点

具有快速演变的信号,如动态系统中的瞬态信号,可能会发生突变,如跳跃,或一阶或二阶导数的急剧变化。傅里叶分析通常无法检测到这些事件。本示例的目的是展示小波分析如何检测信号变化的确切瞬间在图像处理中,主要应用之一是边缘检测,它还涉及到检测突变。

频率崩溃

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

负载freqbrkx=freqbrk;

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

水平= 1;[c、l] = wavedec (x,水平,“哈雾”);

从小波分解中提取第1级的细节系数,并将结果可视化。对细节系数进行插值,使其与信号具有相同的长度。

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

第一级细节(d1)最清楚地显示出间断,因为断裂包含了高频部分。不连续点非常精确地定位在时间= 500附近。

噪声的存在使不连续的识别变得更加复杂。如果分解的精细层次可以用来消除大部分噪音,那么在分解的粗层次上,破裂有时是可见的。

其次推导崩溃

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

负载scddvbrk;x = scddvbrk;水平= 2;[c、l] = wavedec (x,水平,“db4”);(d1, d2) = detcoef (c、l、1:水平);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])

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

注意,要检测奇异性,所选小波必须足够规则,这意味着更长的滤波器脉冲响应。正则性是选择小波的一个重要标准。我们选择使用db4,这对于本文的分析来说是足够常规的。如果我们选择了哈尔小波,就不会检测到不连续性。如果你尝试在2级使用哈尔小波重复这个分析,你会注意到细节在时间= 500时等于零。

边缘检测

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

负载格子呢;水平= 1;[c, s] = wavedec2 (X,水平,“coif2”);[chd1, cvd1 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(“垂直边缘”)子地块(1,2,2)图像(cdd1)彩色地图(地图)标题(“对角线边缘”

另请参阅

|