五种常见小波基函数及其matlab实现.docx
《五种常见小波基函数及其matlab实现.docx》由会员分享,可在线阅读,更多相关《五种常见小波基函数及其matlab实现.docx(9页珍藏版)》请在冰豆网上搜索。
![五种常见小波基函数及其matlab实现.docx](https://file1.bdocx.com/fileroot1/2023-1/23/0d9a8923-5175-4946-b168-590138271808/0d9a8923-5175-4946-b168-5901382718081.gif)
五种常见小波基函数及其matlab实现
五种常见小波基函数及其matlab实现
●Daubechies(dbN)小波
Daubechies小波是世界著名的小波分析学者Inrid·Daubechies构造的小波函数,简写为dbN,N是小波的阶数。
小波
和尺度函数
中的支撑区为
,
的消失矩为
。
除
(Harr小波)外,dbN不具有对称性(即非线性相位)。
除
(Harr小波)外,dbN没有明确的表达式,但转换函数h的平方模是明确的:
令
,其中
为二项式的系数,则有
其中:
Daubechies小波具有以下特点:
1.在时域是有限支撑的,即
长度有限。
2.在频域
在
处有N阶零点。
3.
和它的整数位移正交归一,即
。
4.小波函数
可以由所谓“尺度函数”
求出来。
尺度函数
为低通函数,长度有限,支撑域在
的范围内。
db4的时域和频域波形:
[phi,g1,xval]=wavefun('db4',10);
subplot(2,1,1);
plot(xval,g1,'LineWidth',2);
xlabel('t')
title('db4时域');
g2=fft(g1);
g3=abs(g2);
subplot(2,1,2);
plot(g3,'LineWidth',2);
xlabel('f')
title('db4频域')
Daubechies小波常用来分解和重构信号,作为滤波器使用:
[Lo_D,Hi_D,Lo_R,Hi_R]=wfilters('db4');%计算该小波的4个滤波器
subplot(2,2,1);stem(Lo_D,'LineWidth',2);
title('分解低通滤波器');
subplot(2,2,2);stem(Hi_D,'LineWidth',2);
title('分解高通滤波器');
subplot(2,2,3);stem(Lo_R,'LineWidth',2);
title('重构低通滤波器');
subplot(2,2,4);stem(Hi_R,'LineWidth',2);
title('重构高通滤波器');
●MexicanHat(mexh)小波
MexicanHat函数为Gauss函数的二阶导数:
因为它的形状像墨西哥帽的截面,所以也称为墨西哥帽函数。
Mexihat小波的时域和频域波形:
d=-6;h=6;n=100;
[g1,x]=mexihat(d,h,n);
subplot(2,1,1);
plot(x,g1,'LineWidth',2);
xlabel('t');
title('Mexihat时域');
g2=fft(g1);
g3=(abs(g2));
subplot(2,1,2);
plot(g3,'LineWidth',2);
xlabel('f');
title('mexihat频域');
Mexihat小波的特点:
1.在时间域与频率域都有很好的局部化,并且满足
。
2.不存在尺度函数,所以Mexihat小波函数不具有正交性。
●Morlet小波
它是高斯包络下的单频率副正弦函数:
其中C是重构时的归一化常数。
Morlet小波没有尺度函数,而且是非正交分解。
Morlet小波的时域和频域波形图:
d=-6;h=6;n=100;
[g1,x]=morlet(d,h,n);
subplot(2,1,1);
plot(x,g1,'LineWidth',2);
xlabel('t');
title('morlet时域');
g2=fft(g1);
g3=(abs(g2));
subplot(2,1,2);
plot(g3,'LineWidth',2);
xlabel('f');
title('morlet频域');
●Meyer小波
1.Meyer小波不是紧支撑的,但它收敛的速度很快
2.
无限可微
Meyer小波的时域和频域波形图:
d=-6;h=6;n=128;
[psi,x]=meyer(d,h,n,'psi');
subplot(2,1,1);
plot(x,psi,'LineWidth',2);
xlabel('t');
title('meyer时域');
g2=fft(psi);
g3=(abs(g2));
subplot(2,1,2);
plot(g3,'LineWidth',2);
xlabel('f');
title('meyer频域');