Matlab小波变换对于奇异点的检测
1.信号的突变性
突变信号又称奇异信号,突变信号的突变点经常携带比较重要的信息,是信号的重要特征之一。在数字信号处理和数字图像处理中具有非常重要的作用和地位,信号的突变性检测是先对原信号在不同尺度上进行“磨光”,再对磨光后信号的一阶或二阶倒数检测其极值点或过零点。对信号进行磨光处理,主要是为了消除噪声而不是边缘。传统的信号突变检测方法是基于傅立叶变换的,由某一函数的傅立叶变换趋近于零的快慢来推断该函数是否具有突变性,但它只能反映信号的整体突变性,而对信号的局部突变则无法描述。这样我们就引入小波变换算法。
2.信号的突变点的检测原理
设h(t)是函数f(t)和g(t)的卷积,即:
h(t)?f(t)?g(t)
则根据傅立叶变换的性质有:
F[h'(t)]?j?F[f(t)?g(t)]?j?f(?)g(?)
=[j?f(?)]g(?)=f(?)[j?g(?)] =F[f'(t)]?F[g(t)]?F[f(t)]?F[g'(t)]
所以得到:h'(t)?f'(t)?g(t)?f(t)?g'(t)
若将函数f(t)看作是信号,g(t)看作是滤波器,那么信号的导数与滤波器的卷积结果可以看作是滤波器的导数与信号的卷积。例如,如果选g(t)为高斯函数,则利用其导数可以构造Morlet小波和Maar小波,因此,小波变换的突变点和极值点与信号f(t)的突变点和极值点具有对应关系,利用小波可以检测突变信号。具体过程如下:
设?(t)是一个起平滑作用的低通平稳函数,且满足条件
???????????(t)dt?1,
?(t)?1lim?(t)?0
t??通常取?(t)为高斯函数,即
2?e?t2/2
假设?(t)是二次可导的,并且定义
?(1)(t)?2d?(t)1??te?t/2 dt2??(2)d2?(t)(t)??dt2(1)12?(1?t2)e?t2/2
则函数?(t)、?(2)(t)满足小波的容许条件:
?(2)??(t)dt?0,??(t)dt?0
?(1)????因此可用做小波母函数。
t?,则?(t)表示?(t)在尺度因子s下的伸缩。由于小波变换就是将原信若记?s?1??s??s?s?号f(t)同伸缩小波卷积得到的,为此以?为:
(1)(t),?(2)(t)为小波函数定义的卷积型小波变换
d?d??ws(1)f(t)?f*?s(1)(t)?f*?ss?(t)?s(f*?s)(t)
dt?dt?wf(t)?f*?由此可见,小波变化ws(1)(2)s(2)s2?2d2?s?2d(t)?f*??sdt2??(t)?sdt2(f*?s)(t) ??f(t),ws(2)f(t)分别是函数f(t)在尺度s下由?(t)平滑后再
取一阶、二阶导数。当s较小时,用?s(t)对f(t)平滑的结果对f(t)的突变位置影响不大;
当s较大时,则此平滑过程会将f(t)的一些细小的突变削去,而只剩下大尺寸的突变。由此我们可知,当小波函数可看作某一平滑函数的一阶导数时,信号小波变换模的局部极值点对应信号的突变点(或边缘)。当小波函数可看作某一平滑函数的二阶导数时,信号小波变换模的过零点,也对应信号的突变点(或边缘)。
这就是采用检测小波变换系数模的过零点和局部极值点可检测信号突变点(或边缘)的原理。
Matlab小波变换检测奇异点
原始信号是含有奇异点的信号,为确定该奇异点的时间,采用haar小波进行连续小波变换后,在对系数进行分析处理。 仿真程序如下:
figure(1) plot(cuspamax)
xlabel('时间');ylabel('幅值'); title('频率突变信号'); figure(2)
[c,l]=wavedec(cuspamax,5,'db6'); cfd=zeros(5,1024); for k=1:5
d=detcoef(c,l,k); d=d(ones(1,2^k),:); cfd(k,:)=wkeep(d(:)',1024) end
cfd=cfd(:);
I=find(abs(cfd) img=image(flipud(wcodemat(cfd,64,'row'))); set(get(img,'parent'),'YtickLabel',[]); title('离散小波变换后系数的绝对值') ylabel('层数'); figure(3) ccfs=cwt(cuspamax,1:32,'haar','plot'); title('连续小波变换系数的绝对值') colormap(pink(64)); ylabel('尺度') xlabel('时间(或者空间)') 程序的运行结果如下图所示: 图1 原始信号的示意图 图2 db6连续小波变换后系数 图3 haar连续小波变换后系数 命令行输出结果如下: Name Size Bytes Class caption 1x71 142 char cuspamax 1x1024 8192 double arraay 结论 原始信号载入后有矩阵表示,其中矩阵大小为1*1024,矩阵名为cuspamax。矩阵是以双精度表示相应的图像显示如图1所示。 对原始先信号使用db6小波在尺度1~32上进行连续小波变换。相应系绝对值的图像如图2所示。 从图3的原始信号连续小波变换系数的示意图可以清楚的看出,