小波变换在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
小波变换在matlab中的使用的更多相关文章
- matlab中图像处理常见用法
一. 读写图像文件 1. imread imread函数用于读入各种图像文件,如:a=imread('e:/w01.tif') 注:计算机E盘上要有w01相应的.tif文件. 2. imwrite i ...
- MATLAB中绘制质点轨迹动图并保存成GIF
工作需要在MATLAB中绘制质点轨迹并保存成GIF以便展示. 绘制质点轨迹动图可用comet和comet3命令,使用例子如下: t = 0:.01:2*pi;x = cos(2*t).*(cos(t) ...
- matlab 中 eps 的分析
eps(a)是|a|与大于|a|的最小的浮点数之间的距离,距离越小表示精度越高.默认a=1: 这里直接在matlab中输入:eps == eps(1)(true). 我们知道浮点数其实是离散的,有限的 ...
- matlab中patch函数的用法
http://blog.sina.com.cn/s/blog_707b64550100z1nz.html matlab中patch函数的用法——emily (2011-11-18 17:20:33) ...
- paper 121 :matlab中imresize函数
转自:http://www.cnblogs.com/rong86/p/3558344.html matlab中函数imresize简介: 函数功能:该函数用于对图像做缩放处理. 调用格式: B = i ...
- MATLAB中FFT的使用方法
MATLAB中FFT的使用方法 说明:以下资源来源于<数字信号处理的MATLAB实现>万永革主编 一.调用方法X=FFT(x):X=FFT(x,N):x=IFFT(X);x=IFFT(X, ...
- MATLAB中fft函数的正确使用方法
问题来源:在阅读莱昂斯的<数字信号处理>第三章离散傅里叶变换时,试图验证实数偶对称信号的傅里叶变换实部为偶对称的且虚部为零.验证失败.验证信号为矩形信号,结果显示虚部是不为零且最大幅值等于 ...
- Matlab中的一些小技巧
(转于它处,仅供参考) 1.. Ctrl+C 中断正在执行的操作 如果程序不小心进入死循环,或者计算时间太长,可以在命令窗口中使用Ctrl+c来中断.MATLAB这时可能正疲于应付,响应会有些滞后. ...
- Matlab中给figure添加图例(legend),标题(title)和颜色(color)
在Matlab绘图过程中,尤其是需要将多个图绘制在相同的坐标轴中时,通常需要将不同的曲线设置成为不同的颜色.此外,为了直观,还需要给这张图标增添标题和图例.这篇文章展示了在Matlab的绘图窗口(fi ...
随机推荐
- Django实现简单的用户添加、删除、修改等功能
一. Django必要的知识点补充 1. templates和static文件夹及其配置 1.1 templates文件夹 所有的HTML文件默认都放在templates文件夹下. 1.2 stati ...
- [转载]float 和 double 的一二三点事
文章转载于博客园作者jillzhang,原文链接http://jillzhang.cnblogs.com/ .文章为jillzhang原创,转载条件请看原文链接. 关于浮点数精度和范围,请看末尾. C ...
- HDU 1754 I hate it 树状数组维护区间最大值
Problem Description 很多学校流行一种比较的习惯.老师们很喜欢询问,从某某到某某当中,分数最高的是多少.这让很多学生很反感. 不管你喜不喜欢,现在需要你做的是,就是按照老师的要求,写 ...
- UVA - 548 根据中序遍历和后序遍历建二叉树(关于三种遍历二叉树)
题意: 同时给两个序列,分别是二叉树的中序遍历和后序遍历,求出根节点到叶子结点路径上的权值最小和 的那个 叶子节点的值,若有多个最小权值,则输出最小叶子结点的和. 想法: 一开始想着建树,但是没有这样 ...
- Inception系列理解
博客:博客园 | CSDN | blog 写在前面 Inception 家族成员:Inception-V1(GoogLeNet).BN-Inception.Inception-V2.Inception ...
- coding++:Semaphore—RateLimiter-漏桶算法-令牌桶算法
java中对于生产者消费者模型,或者小米手机营销 1分钟卖多少台手机等都存在限流的思想在里面. 关于限流 目前存在两大类,从线程个数(jdk1.5 Semaphore)和RateLimiter速率(g ...
- dyld
一.介绍 在 MacOS 和 iOS 上,可执行程序的启动依赖于 xnu 内核进程运作和动态链接加载器 dyld. dyld 全称 the dynamic link editor,即动态链接器,其本质 ...
- LLVM 编码规范 - 中文翻译
LLVM 编码规范 导论 语言.库和标准 C++ 标准版本 C++ 标准库 Go 代码准则 机械的代码问题 代码格式化 注释 头文件 类概述 method information 注释格式化 使用Do ...
- Python学习笔记:函数详解(下)
本文介绍:高阶函数,嵌套函数,以及由前面两个组成的装饰器 一.高阶函数:以下两种情况都是高阶函数 1.将函数名当成参数传递给另外一个函数(作用:不修改被传递函数源代码就可以添加新功能): impo ...
- 让你第一次认识到Java的内存管理
发现之前写的可读性不好,这次准备试试换风格,去掉长篇大论,觉得这个风格好的,麻烦点个赞啦 清理.JVM的妙处 大家以后都是程序员,假设你很不幸,需要自己交钱租房子. 你作为一个小穷人,租的房子到期了( ...