我是靠谱客的博主 落后小甜瓜,最近开发中收集的这篇文章主要介绍matlab中的小波变换,小波变换在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

原文:https://www.cnblogs.com/andrew-address/p/12638315.html

最后

以上就是落后小甜瓜为你收集整理的matlab中的小波变换,小波变换在matlab中的使用的全部内容,希望文章能够帮你解决matlab中的小波变换,小波变换在matlab中的使用所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(48)

评论列表共有 0 条评论

立即
投稿
返回
顶部