主要内容

一维平稳小波变换

本主题将带您了解使用小波工具箱™软件进行1-D离散平稳小波分析的特性。有关更多信息,请参阅非抽取离散平稳小波变换小波工具箱用户指南

工具箱为一维离散平稳小波分析提供了这些函数。有关函数的更多信息,请参阅参考页面。

Analysis-Decomposition功能

函数名

目的

swt

分解

Synthesis-Reconstruction功能

函数名

目的

iswt

重建

平稳小波分解结构比小波分解结构更易处理。因此,对于平稳小波变换(SWT),对于小波情况有用的实用程序是不必要的。

在本节中,您将学习

  • 加载信号

  • 对信号进行平稳小波分解

  • 根据系数构造近似和细节

  • 在第1级显示近似值和细节

  • 利用平稳逆小波变换重新生成信号

  • 对信号进行多级平稳小波分解

  • 重建三级近似

  • 重建级别1、2和3的细节

  • 重建1级和2级近似

  • 显示分解的结果

  • 从三级分解中重建原始信号

  • 从信号中去除噪声

一维分析

这个例子涉及到一个有噪声的多普勒测试信号。

  1. 加载一个信号。

    来自MATLAB®提示,输入

    负载noisdopp
  2. 设置变量。类型

    S =噪声dopp;

    对于SWT,如果在级别上进行分解k是必要的,2 ^ k必须把信号的长度均匀地分成。如果您的原始信号没有正确的长度,您可以使用wextend函数来扩展它。

  3. 执行单级平稳小波分解。

    方法执行信号的单级分解db1小波。类型

    [swa,swd] = swt(s,1,'db1');

    这将生成一级近似(swa)和细节(swd)的系数。两者与信号的长度相同。类型

    的名字 大小 字节
    noisdopp 1 * 8192 双数组
    年代 1 * 8192 双数组
    swa 1 * 8192 双数组
    社署 1 * 8192 双数组
  4. 显示近似系数和细节系数。

    要显示第1级的近似系数和细节系数,键入

    次要情节(1、2、1)、情节(swa);title('近似cfs') subplot(1,2,2), plot(swd);标题(“细节慢性疲劳综合症”)

  5. 用平稳逆小波变换对信号进行再生。

    要找到逆变换,输入

    A0 = iswt(swa,swd,'db1');

    要检查完美的重建,键入

    err = norm(s-A0) err = 2.1450e-14
  6. 构造并显示系数的近似值和细节。

    要构造一级近似和细节(A1而且D1)由系数swa而且社署、类型

    null cfs = 0(大小(swa));A1 = iswt(swa,nulcfs,'db1');D1 = iswt(nulcfs,swd,'db1');

    要显示第1级的近似值和细节,键入

    次要情节(1、2、1)、情节(A1);标题(“近似A1”);次要情节(1、2、2),图(D1);标题(“细节D1”);

  7. 执行多级平稳小波分解。

    要在信号的第3级执行分解(再次使用db1小波),类型

    [swa,swd] = swt(s,3,'db1');

    这将生成第1、2和3级的近似系数(swa)和各细节的系数(社署).观察这些行swa而且社署与信号长度相同。类型

    清空A0 A1 D1 err nulcfs whos
    的名字 大小 字节
    noisdopp 1 * 8192 双数组
    年代 1 * 8192 双数组
    swa 3 x1024 24576 双数组
    社署 3 x1024 24576 双数组
  8. 显示近似系数和细节系数。

    若要显示近似系数和细节系数,请键入

    KP = 0;对于I = 1:3 subplot(3,2,kp+1), plot(swa(I,:));标题([约。cfs水平”,num2str (i)])次要情节(3 2,kp + 2),图(社署(我,:));title(['Detail cfs level ',num2str(i)]) kp = kp + 2;结束

  9. 从系数中重建三级近似。

    要重建第3级的近似,键入

    m0 =零(大小(swd));A = m0;A(3,:) = iswt(swa, m0,'db1');
  10. 根据系数重构细节。

    要重建级别1、2和3的详细信息,请键入

    D = m0;对于I = 1:3 SWCFS = mzero;Swcfs (i,:) = swd(i,:);D(i,:) = iswt(m0,swcfs,'db1');结束
  11. 从第3级的近似值和第2级和第3级的详细信息重建和显示第1级和第2级的近似值。

    要重建第2级和第3级的近似,键入

    A(2,:) = A(3,:) + d (3,:);A(1,:) = A(2,:) + d (2,:);

    要显示级别1、2和3的近似值和详细信息,请键入

    KP = 0;for i = 1:3 subplot(3,2,kp+1), plot(A(i,:));标题([约。级别的,num2str (i)])次要情节(3 2,kp + 2),图(D(我,:));title(['Detail level ',num2str(i)]) kp = kp + 2;结束

  12. 通过阈值去除噪声。

    去噪信号,使用ddencmp命令计算一个默认的全局阈值。使用wthresh命令执行详细系数的实际阈值分割,然后使用iswt命令获取去噪信号。

    请注意

    在1-D离散小波变换情况下选择阈值的所有方法对1-D平稳小波变换也是有效的小波分析这对于二维变换也是成立的。

[thr,sorh] = ddencmp('den','wv',s);DSWD = wthresh(swd,sorh,thr);Clean = iswt(swa,dswd,'db1');

要显示原始信号和去噪信号,请键入

次要情节(2,1,1),图(s);标题('原始信号')subplot(2,1,2), plot(干净);标题(“去噪信号”)

得到的信号仍然有一点噪声。的分解可以改善结果年代在第5级,而不是第3级,重复步骤14和15。要改进先前的去噪,请键入

[swa,swd] = swt(s,5,'db1');[thr,sorh] = ddencmp('den','wv',s);DSWD = wthresh(swd,sorh,thr);Clean = iswt(swa,dswd,'db1');次要情节(2,1,1),图(s);标题('原始信号')subplot(2,1,2), plot(干净);标题(“去噪信号”)

的另一种语法可用于swt而且iswt函数,给出相同的结果:

Lev = 5;SWC = swt(s,lev,'db1');Swcden = swc;swcden (1: end-1,:) = wthresh (swcden (1: end-1,:), sorh,刺);Clean = iswt(swcden,'db1');

您可以使用与上面第16步相同的plot命令来获得相同的plot。