工程应用中经常需要对一些非平稳信号进行,小波分析和小波包分析适合对非平稳信号分析,相比较小波分析,利用小波包分析可以对信号分析更加精细,小波包分析可以将时频平面划分的更为细致,对信号的高频部分的分辨率要好于小波分析,可以根据信号的特征,自适应的选择最佳小波基函数,比便更好的对信号进行分析,所以小波包分析应用更加广泛。
小波变换只对信号的低频部分做进一步分解,而对高频部分也即信号的细节部分不再继续分解,所以小波变换能够很好地表征一大类以低频信息为主要成分的信号,不能很好地分解和表示包含大量细节信息(细小边缘或纹理)的信号,如非平稳机械振动信号、遥感图象、地震信号和生物医学信号等。
小波包变换既可以对低频部分信号进行分解,也可以对高频部分进行分解,而且这种分解既无冗余,也无疏漏,所以对包含大量中、高频信息的信号能够进行更好的时频局部化分析。
Haar小波基、db系列小波基、Biorthogonal(biorNr.Nd)小波系、Coiflet(coifN)小波系、SymletsA(symN)小波系、Molet(morl)小波、Mexican Hat (mexh)小波、Meyer小波
1.Haar小波:Haar函数的定义如下:Haar小波在时域上是不连续的,所以作为基本小波性能不是特别好。但它也有自己的优点:计算简单。不但与正交,而且与自己的整数位移正交
%% haar小波
[phi,g1,xval] = wavefun('haar',20);
subplot(2,1,1);
plot(xval,g1,'LineWidth',2);
xlabel('t');
title('haar 时域');
g2=fft(g1);
g3=abs(g2);
subplot(2,1,2);
plot(g3,'LineWidth',2);
xlabel('f');
title('haar 频域');
2.db系列小波Daubechies(db N):在时域是有限支撑的,即长度有限。在频域在处有N阶零点。和它的整数位移正交归一。Daubechies小波常用来分解和重构信号,作为滤波器使用
%% db系列小波
[phi,g1,xval] = wavefun('db4',20);
figure(2);
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 频域');
3.Biorthogonal(biorNr.Nd)
%% biorNr.Nd小波
[phi,g1,xval] = wavefun('bior2.4',20);
figure(3);
subplot(2,1,1);
plot(xval,g1,'LineWidth',2);
xlabel('t');
title('bior2.4 时域');
g2=fft(g1);
g3=abs(g2);
subplot(2,1,2);
plot(g3,'LineWidth',2);
xlabel('f');
title('bior2.4 频域');
4.Coiflets(coif N)小波
%% coif N小波
[phi,g1,xval] = wavefun('coif3',20);
figure(4);
subplot(2,1,1);
plot(xval,g1,'LineWidth',2);
xlabel('t');
title('coif3 时域');
g2=fft(g1);
g3=abs(g2);
subplot(2,1,2);
plot(g3,'LineWidth',2);
xlabel('f');
title('coif3 频域');
5.Symlets(Sym N)小波
%% sym N小波
[phi,g1,xval] = wavefun('sym2',20);
figure(5);
subplot(2,1,1);
plot(xval,g1,'LineWidth',2);
xlabel('t');
title('sym2 时域');
g2=fft(g1);
g3=abs(g2);
subplot(2,1,2);
plot(g3,'LineWidth',2);
xlabel('f');
title('sym2 频域');
6.Morlet(morl)小波:是高斯包络下的单频率副正弦函数。没有尺度函数,非正交分解。
%% molet小波
[g1,xval] = wavefun('morl',20);
figure(6);
subplot(2,1,1);
plot(xval,g1,'LineWidth',2);
xlabel('t');
title('morl 时域');
g2=fft(g1);
g3=abs(g2);
subplot(2,1,2);
plot(g3,'LineWidth',2);
xlabel('f');
title('morl 频域');
7.Mexican Hat小波:高斯函数的二阶导数,又称为墨西哥帽函数,在时间和频域都有很好的局部化,且满足(时域对称)
8.Meyer小波:正交小波,不是紧支撑的,但其收敛速度很快,且无限可微
%% Meyer小波
[phi,g1,xval] = wavefun('meyr',20);
figure(8);
subplot(2,1,1);
plot(xval,g1,'LineWidth',2);
xlabel('t');
title('meyr 时域');
g2=fft(g1);
g3=abs(g2);
subplot(2,1,2);
plot(g3,'LineWidth',2);
xlabel('f');
title('meyr 频域');
9.Gaus小波
%% Gaus小波
[g1,xval] = wavefun('gaus3',20);
figure(1);
subplot(2,1,1);
plot(xval,g1,'LineWidth',2);%绘制线条宽度为2
xlabel('t');
title('gaus3 时域');
g2=fft(g1);
g3=abs(g2);
subplot(2,1,2);
plot(g3,'LineWidth',2);
xlabel('f');
title('gaus 频域');
10. Dmeyer小波
%% Dmeyer小波
[g1,xval] = wavefun('dmey',20);
figure(2);
subplot(2,1,1);
plot(xval,g1,'LineWidth',2);%绘制线条宽度为2
xlabel('t');
title('dmey 时域');
g2=fft(g1);
g3=abs(g2);
subplot(2,1,2);
plot(g3,'LineWidth',2);
xlabel('f');
title('dmey 频域');
11.ReverseBior小波
%% ReverseBior小波
[g1,xval] = wavefun('rbio2.4',20);
figure(3);
subplot(2,1,1);
plot(xval,g1,'LineWidth',2);%绘制线条宽度为2
xlabel('t');
title('rbio2.4 时域');
g2=fft(g1);
g3=abs(g2);
subplot(2,1,2);
plot(g3,'LineWidth',2);
xlabel('f');
title('rbio2.4 频域');
12.Cgau小波
%% Cgau小波
[g1,xval] = wavefun('cgau3',20);
figure(4);
subplot(2,1,1);
plot(xval,g1,'LineWidth',2);%绘制线条宽度为2
xlabel('t');
title('cgau3 时域');
g2=fft(g1);
g3=abs(g2);
subplot(2,1,2);
plot(g3,'LineWidth',2);
xlabel('f');
title('cgau3 频域');
13.Cmor小波
%% Cmor小波
[g1,xval] = wavefun('cmor3-3',20);
figure(5);
subplot(2,1,1);
plot(xval,g1,'LineWidth',2);%绘制线条宽度为2
xlabel('t');
title('cmor 时域');
g2=fft(g1);
g3=abs(g2);
subplot(2,1,2);
plot(g3,'LineWidth',2);
xlabel('f');
title('cmor 频域');
14.Fbsp小波:当fbsp"M"-"Fb"-"Fc"(M=1时与shan小波等价)
%% Fbsp小波
[g1,xval] = wavefun('fbsp2-3-3',20);
figure(6);
subplot(2,1,1);
plot(xval,g1,'LineWidth',2);%绘制线条宽度为2
xlabel('t');
title('fbsp 时域');
g2=fft(g1);
g3=abs(g2);
subplot(2,1,2);
plot(g3,'LineWidth',2);
xlabel('f');
title('fbsp 频域');
15.shan小波
%% Shan小波
[g1,xval] = wavefun('shan3-3',20);
figure(7);
subplot(2,1,1);
plot(xval,g1,'LineWidth',2);%绘制线条宽度为2
xlabel('t');
title('shan 时域');
g2=fft(g1);
g3=abs(g2);
subplot(2,1,2);
plot(g3,'LineWidth',2);
xlabel('f');
title('shan 频域');
https://blog.csdn.net/jbb0523/article/details/42586749
https://blog.csdn.net/cqfdcw/article/details/84995904