• 小波变换在matlab中的使用


     

    对信号进行一层分解

    clc;  
    clear;  
    % 获取噪声信号  
    load('matlab.mat');
    sig = M(1,1:1400);
    SignalLength = length(sig);
    %使用db1分解1层
     [cA1,cD1] = dwt(sig,'db1');
     %从系数 cA1 和 cD1 中构建一层近似A1 和细节 D1
     A1 = upcoef('a',cA1,'db1',1,SignalLength);
     D1 = upcoef('d',cD1,'db1',1,SignalLength);
       % %或
       % A1 = idwt(cA1,[],'db1',l_s);
       % D1 = idwt([],cD1,'db1',l_s);
     %显示近似和细节
     subplot(1,2,1); plot(A1); title('Approximation A1')
     subplot(1,2,2); plot(D1); title('Detail D1')
     %使用逆小波变换恢复信号
     A0 = idwt(cA1,cD1,'db1',SignalLength);
     err = max(abs(sig-A0))
    

      对信号进行三层分解

    [C,L] = wavedec(sig,3,'db1');%函数返回 3 层分解的各组分系数C(连接在一个向量里) ,向量 L 里返回的是各组分的长度。
     %抽取近似系数和细节系数
     %从 C 中抽取 3 层近似系数
     cA3 = appcoef(C,L,'db1',3);
     %从 C 中抽取 3、2、1 层细节系数 
     [cD1,cD2,cD3] = detcoef(C,L,[1,2,3]);
     %或者
      %cD3 = detcoef(C,L,3);
      %cD2 = detcoef(C,L,2);
      %cD1 = detcoef(C,L,1);
     %重建 3 层近似和 1、2、3 层细节
     %从 C 中重建 3 层近似
     A3 = wrcoef('a',C,L,'db1',3);
     %从 C 中重建 1、2、3 层细节
     D1 = wrcoef('d',C,L,'db1',1);
     D2 = wrcoef('d',C,L,'db1',2);
     D3 = wrcoef('d',C,L,'db1',3);
     %显示多层分解的结果
     %显示 3 层分解的结果
     figure(2)
     subplot(2,2,1); plot(A3);
     title('Approximation A3')
     subplot(2,2,2); plot(D1);
     title('Detail D1')
     subplot(2,2,3); plot(D2);
     title('Detail D2')
     subplot(2,2,4); plot(D3);
     title('Detail D3')
     %从 3 层分解中重建原始信号
     A0 = waverec(C,L,'db1');
     err = max(abs(sig-A0))
     %  我们注意到连续的近似随着越来越多的高频信息从信号中滤除,
     % 噪声变得越
     % 来越少。 3 层近似与原始信号对比会发现变得很干净。对比近似和原始信号,如下
     figure(3)
     subplot(2,1,1);plot(sig);title('Original'); axis off
     subplot(2,1,2);plot(A3);title('Level 3 Approximation');axis off
    

     这篇博客是参考百度文档上一位大佬写的,这是数据和文章的链接

    链接:https://pan.baidu.com/s/19_jazLnyBuperh7ME5NG8Q
    提取码:aonu

  • 相关阅读:
    css控制英文内容自动换行問題
    jquery添加select option两种代码思路比较
    C++实现单例模式
    C++实现单例模式
    windows下socket编程:区分shutdown()及closesocket()
    windows下socket编程:区分shutdown()及closesocket()
    socket关闭
    socket关闭
    C++模板的一些巧妙功能
    C++模板的一些巧妙功能
  • 原文地址:https://www.cnblogs.com/andrew-address/p/12638315.html
Copyright © 2020-2023  润新知