对信号进行一层分解

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

小波变换在matlab中的使用的更多相关文章

  1. matlab中图像处理常见用法

    一. 读写图像文件 1. imread imread函数用于读入各种图像文件,如:a=imread('e:/w01.tif') 注:计算机E盘上要有w01相应的.tif文件. 2. imwrite i ...

  2. MATLAB中绘制质点轨迹动图并保存成GIF

    工作需要在MATLAB中绘制质点轨迹并保存成GIF以便展示. 绘制质点轨迹动图可用comet和comet3命令,使用例子如下: t = 0:.01:2*pi;x = cos(2*t).*(cos(t) ...

  3. matlab 中 eps 的分析

    eps(a)是|a|与大于|a|的最小的浮点数之间的距离,距离越小表示精度越高.默认a=1: 这里直接在matlab中输入:eps == eps(1)(true). 我们知道浮点数其实是离散的,有限的 ...

  4. matlab中patch函数的用法

    http://blog.sina.com.cn/s/blog_707b64550100z1nz.html matlab中patch函数的用法——emily (2011-11-18 17:20:33) ...

  5. paper 121 :matlab中imresize函数

    转自:http://www.cnblogs.com/rong86/p/3558344.html matlab中函数imresize简介: 函数功能:该函数用于对图像做缩放处理. 调用格式: B = i ...

  6. MATLAB中FFT的使用方法

    MATLAB中FFT的使用方法 说明:以下资源来源于<数字信号处理的MATLAB实现>万永革主编 一.调用方法X=FFT(x):X=FFT(x,N):x=IFFT(X);x=IFFT(X, ...

  7. MATLAB中fft函数的正确使用方法

    问题来源:在阅读莱昂斯的<数字信号处理>第三章离散傅里叶变换时,试图验证实数偶对称信号的傅里叶变换实部为偶对称的且虚部为零.验证失败.验证信号为矩形信号,结果显示虚部是不为零且最大幅值等于 ...

  8. Matlab中的一些小技巧

    (转于它处,仅供参考) 1.. Ctrl+C 中断正在执行的操作 如果程序不小心进入死循环,或者计算时间太长,可以在命令窗口中使用Ctrl+c来中断.MATLAB这时可能正疲于应付,响应会有些滞后. ...

  9. Matlab中给figure添加图例(legend),标题(title)和颜色(color)

    在Matlab绘图过程中,尤其是需要将多个图绘制在相同的坐标轴中时,通常需要将不同的曲线设置成为不同的颜色.此外,为了直观,还需要给这张图标增添标题和图例.这篇文章展示了在Matlab的绘图窗口(fi ...

随机推荐

  1. c# 对SOAP返回XML字符串的解析方法

    <SOAP:Envelope xmlns:SOAP="http://schemas.xmlsoap.org/soap/envelope/"> <SOAP:Head ...

  2. Mysql性能优化:为什么要用覆盖索引?

    导读 相信读者看过很多MYSQL索引优化的文章,其中有很多优化的方法,比如最佳左前缀,覆盖索引等方法,但是你真正理解为什么要使用最佳左前缀,为什么使用覆盖索引会提升查询的效率吗? 本篇文章将从MYSQ ...

  3. [bfs,深度记录] East Central North America Regional Contest 2016 (ECNA 2016) D Lost in Translation

    Problem D Lost in Translation The word is out that you’ve just finished writing a book entitled How ...

  4. Unity 随机房间地图生成

    无论是在迷宫还是类似于地牢的游戏地图中,利用程序来生成每次都不一样的地图是一件叫人兴奋不已的事. 这时我们需要解决两个非常重要的随机事件: 1.在一定范围内随机出各不相同但又不能互相重叠的房间 2.优 ...

  5. 使用sklearn做单机特征工程(Performing Feature Engineering Using sklearn)

    本文转载自使用sklearn做单机特征工程 目录 目录 特征工程是什么 数据预处理 1 无量纲化 11 标准化 12 区间缩放法 13 标准化与归一化的区别 2 对定量特征二值化 3 对定性特征哑编码 ...

  6. GBDT梯度提升树算法及官方案例

    梯度提升树是一种决策树的集成算法.它通过反复迭代训练决策树来最小化损失函数.决策树类似,梯度提升树具有可处理类别特征.易扩展到多分类问题.不需特征缩放等性质.Spark.ml通过使用现有decisio ...

  7. python3 open txt的UnicodeDecodeError: 'gbk' codec问题解决方案

    python3 open txt的UnicodeDecodeError: 'gbk' codec问题解决方案先直截了当给出解决方案,在程序开头加上:import _locale_locale._get ...

  8. [LeetCode] 935. Knight Dialer 骑士拨号器

    A chess knight can move as indicated in the chess diagram below:  .            This time, we place o ...

  9. TensorFlow 安装官方教程:Ubuntu 安装,Mac OS X 安装,Windows 安装

    从我的使用体验来看  Ubuntu 是最好的, Mac 没有显卡,后期跑大项目比较鸡肋,Windows 安装各种依赖各种坑.Ubuntu 安装 TensorFlow 方便,后面安装  TensorFl ...

  10. 数据分析_numpy_基础2

    数据分析_numpy_基础2 sqrt 开方 arr = np.arange(10) arr # array([0, 1, 2, 3, 4, 5, 6, 7, 8, 9]) np.sqrt(arr) ...