小波包分解与重构目录

  • 1 小波包分解、重构原理
    • 1.1 小波变换
    • 1.2 小波包变换
  • 2 小波包使用到的函数及示例代码
    • 2.1 小波包分解
      • 2.1.1 T = wpdec(X,N,'wname')
      • 2.1.2 X = wpcoef(T,N)
    • 2.2 小波包重构
      • 2.2.1 X = wprcoef(T,N)
      • 2.2.2 [T,X] = wpjoin(T,N)
      • 2.2.3 T = write(T,'cfs',NODE,COEFS)
      • 2.2.4 X = wprec(T)
      • 2.2.5 原始信号小波包分解后的重构方法
    • 2.3 小波包去噪
      • 2.3.1 [THR,SORH,KEEPAPP,CRIT] = ddencmp(IN1,IN2,X)
      • 2.3.2 [XC,CXC,LXC,PERF0,PERFL2] = wdencmp('gbl',X,'wname',N,THR,SORH,KEEPAPP)
  • 参考文献

1 小波包分解、重构原理

1.1 小波变换

小波变换只对信号的低频部分做进一步分解,而对高频部分也即信号的细节部分不再继续分解,所以小波变换能够很好地表征一大类以低频信息为主要成分的信号,不能很好地分解和表示包含大量细节信息(细小边缘或纹理)的信号,如非平稳机械振动信号、遥感图象、地震信号和生物医学信号等。

1.2 小波包变换

小波包变换既可以对低频部分信号进行分解,也可以对高频部分进行分解,而且这种分解既无冗余,也无疏漏,所以对包含大量中、高频信息的信号能够进行更好的时频局部化分析。

2 小波包使用到的函数及示例代码


以上即是小波包树,其中节点的命名规则是从(1,0)开始,叫1号, (1,1)是2号………依此类推,(3,0)是7号,(3,7)是14号。 每个节点都有对应的小波包系数,这个系数决定了频率的大小,也就是说频率信息已经有了,但是时域信息在哪里呢? 那就是 order。 这个order就是这些节点的顺序,也就是频率的顺序。

2.1 小波包分解

2.1.1 T = wpdec(X,N,‘wname’)

T = wpdec(X,N,‘wname’) 小波分解函数
T为小波包分解树,X为待分解信号,N分解层数,'wname’小波基选择

% Load signal. 载入原始信号
load noisdopp;
x = noisdopp;figure(1); subplot(211);
plot(x); title('Original signal');% Decompose x at depth 3 with db1 wavelet packets
% using Shannon entropy.
wpt = wpdec(x,3,'db1');
plot(wpt) % 打印小波包分解树


2.1.2 X = wpcoef(T,N)

X = wpcoef(T,N) 小波包分解系数函数
X为返回的小波包系数,T为小波包分解树,N为小波树节点

% Read packet (2,1) coefficients. 读取小波包(2,1)节点系数
cfs = wpcoef(wpt,[2 1]);figure(1); subplot(212);
plot(cfs); title('Packet (2,1) coefficients');


需要注意的是:小波包节点系数的长度等于250,为原始信号长度1000/N = 250。其中N为2^2,为第N层小波包树的节点个数

2.2 小波包重构

2.2.1 X = wprcoef(T,N)

X = wprcoef(T,N) 小波包重构系数函数
X为重构后的小波包节点系数,T为小波包分解树,N为小波分解节点数

% Reconstruct packet (2,1).  重构小波包节点系数(2,1)
rcfs = wprcoef(wpt,[2 1]);figure(1); subplot(212);
plot(rcfs); title('Reconstructed packet (2,1)');


需要注意的是:小波重构系数的信号长度与原始信号长度一致

2.2.2 [T,X] = wpjoin(T,N)

[T,X] = wpjoin(T,N) 用于合并小波包树的节点
返回T:为修改后的小波包树T
返回X:合并后的节点系数
T:输入的小波包数T
N:为合并的节点

% Recompose packet (1,1)  重写小波包节点(1,1)
wpt = wpjoin(wpt,[1 1]);% Plot wavelet packet tree wpt.
plot(wpt)

% 创建小波包树
load noisdopp; x = noisdopp;
t = wpdec(x,3,'db3');
t = wpjoin(t,[4;5]); % 合并第4、5个小波树节点
plot(t);

2.2.3 T = write(T,‘cfs’,NODE,COEFS)

T = write(T,‘cfs’,NODE,COEFS) 将
返回T:修改后的小波包树
T:输入的小波包树
NODE:小波包节点序号
COEFS:小波包系数

% 将值写入第4、5、6个小波包树节点中
sNod = read(t,'sizes',[4,5,7]);
cfs4 = zeros(sNod(1,:));
cfs5 = zeros(sNod(2,:));
cfs7 = zeros(sNod(3,:));
t = write(t,'cfs',4,cfs4,'cfs',5,cfs5,'cfs',7,cfs7);% Plot tree t and click the node (0,0) (see the plot function).
% 打印原始节点(0,0),即小波包重构信号的节点
plot(t)

2.2.4 X = wprec(T)

对于一位小波包分解重构
X = wprec(T) 重组小波包
X:为小波包分解树
T:重构后的信号

wpt = write(t,'cfs',4,cfs4,'cfs',5,cfs5,'cfs',7,cfs7);% 将值写入第4、5、6个小波包树节点中
xrec = wprec(wpt); % 重构后的信号

2.2.5 原始信号小波包分解后的重构方法

  1. 可由小波包分解后,利用wprcoef(T,N)函数,对最后一层的小波包进行系数重构,得到与原始数据长度一样的重构小波包系数,然后将小波包系数相加,可以得到原始信号
  2. 可以使用write(T,‘cfs’,NODE,COEFS)函数,将小波包系数加入小波包分解树,然后利用wprec(T) 函数进行原始信号重构,即可得到原始信号

2.3 小波包去噪

2.3.1 [THR,SORH,KEEPAPP,CRIT] = ddencmp(IN1,IN2,X)

[THR,SORH,KEEPAPP,CRIT] = ddencmp(IN1,IN2,X)
THR是阈值,SORH是阈值函数,KEEPAPP近似系数,CRIT熵的选择(仅用于小波包)
KEEPAPP:选择0或1可对近似系数进行阈值处理
IN1:‘den’ 表示去噪, ‘cmp’ 表示压缩.
IN2:'wv’用于小波,'wp’用于小波包
X:表示待去噪的信号

下面是小波去噪代码:

[thr,sorh,keepapp] = ddencmp('den','wv',x);
[A,D] = dwt(x,'db1');
noiselev = median(abs(D))/0.6745;
thresh = sqrt(2*log(length(x)))*noiselev;

2.3.2 [XC,CXC,LXC,PERF0,PERFL2] = wdencmp(‘gbl’,X,‘wname’,N,THR,SORH,KEEPAPP)

[XC,CXC,LXC,PERF0,PERFL2] = wdencmp(‘gbl’ or ‘lvd’,X,‘wname’,N,THR,SORH,KEEPAPP)
返回值XC:
返回值CXC:XC的小波包分解结构
返回值LXC:XC的小波包分解结构
返回值PERF0:恢复L^2的范数百分比, 是用百分制表明降噪所保留的能量成分
返回值PERFL2:压缩L^2的范数百分比, 是用百分制表明压缩所保留的能量成分
‘gbl’:表示每层都采用同一个阈值进行处理
‘lvd’:对每层采用不同的阈值进行处理
X:输入的信号
‘wname’:小波基
N:小波分解的层数
THR:阈值向量的长度
SORH:阈值函数,'s’软阈值,'h’硬阈值
KEEPAPP:0对低频近似系数不进行阈值量化处理;1对低频近似系数进行阈值量化处理

[thr,sorh,keepapp] = ddencmp('den','wv',x);
xd = wdencmp('gbl',x,'db3',2,thr,sorh,keepapp);
subplot(211)
plot(x); title('Original Signal');
subplot(212)
plot(xd); title('Denoised Signal');

参考文献

1.matlab自带的help
2. https://blog.csdn.net/cqfdcw/article/details/84995904.

小波包分解、重构、去噪与matlab函数使用相关推荐

  1. 小波包分解matlab程序

    小波包分解(Wavelet Packet Decomposition)是小波变换的一种变形方法,在信号处理和数据分析中被广泛应用.Matlab是常用的数学软件之一,也提供了方便的小波分析工具箱,可以帮 ...

  2. 图像3尺度全小波包分解matlab,小波分析理论与图像降噪处理

    摘  要: 简要介绍了小波分析基本理论中的小波变换和小波包变换,重点论述了小波分析在图像降噪处理中的应用及其算法流程.在此基础上,利用Matlab R2007进行了图像去噪仿真测试,并对仿真结果进行了 ...

  3. 小波包分解-MATLAB

    clc; clear; % 加载信号 load noisdopp; s = noisdopp; subplot(321);plot(s);title('原始信号'); %% [thr,sorh,dee ...

  4. 多阈值小波包去噪matlab,小波包多阈值去噪法及其在形变分析中的应用

    [1] HUANG Shengxiang, LIU Jingnan. A Novel Method for Reducing Noises in GPS Deformation Monitoring ...

  5. Matlab小波包分解后如何求各频带信号的能量值?

    clear; clc; n=3; wpname='db3'; % [b,a]=butter(8,[5/100 99/100]); % load a1_1-1; load k301_1-4; % Dat ...

  6. Matlab怎么计算信号的能量,Matlab小波包分解后如何求各频带信号的能量值? [转]...

    clear; clc; n=3; wpname='db3'; % [b,a]=butter(8,[5/100 99/100]); % load a1_1-1; load k301_1-4; % Dat ...

  7. matlab 小波包分解信号获取时频图

    1.内容简介 略 643-可以交流.咨询.答疑 2.内容说明 略 3.仿真分析 略 clc close all clear %% 小波包分解 load sep_wave1.mat; x2=sep_wa ...

  8. 小波包分解之梅尔倒谱系数(WPMFCC)

    提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 前言 一.需导入的库 二.代码主干 前言 本文记录将小波变换替换提取梅尔倒谱系数过程中的FFT部分,主要是代码展示. 一.需 ...

  9. 小波分解与小波包分解代码_分解的功能参数和代码可维护性

    小波分解与小波包分解代码 Code keeps changing, there's no doubt about that. We always do our best to set some roc ...

  10. python小波包分解_小波包获得某个节点信号的几个细节问题

    小波包分解主要用了这四个函数  wpdec,wprec,wprcoef,wpcoef.1)Wpcoef: 求解某个节点的小波包系数,数据长度是L/(2^n)(n表示分解的层数) 比如:原始信号长度为1 ...

最新文章

  1. easyexcel生成excel_阿里JAVA解析Excel工具easyexcel
  2. boost:验证Boost概念检查的class_requires 库应该在预期的时间内捕获错误
  3. 如何利用反射来绕过泛型
  4. node中的缓存机制
  5. 关于计算机展览的英语作文,2015考研英语作文范文精选:选什么东西参加展览?...
  6. mongodb or and 条件拼凑 Query.And Query.Or
  7. 【java基础知识】通过java实时查询数据库
  8. 计算机需要 更新 无法卸载,电脑更新变卡顿,只要卸载它就能解决?
  9. [项目回顾]基于Redis的在线用户列表解决方案
  10. Revit 2021 族样板下载
  11. 乔治城大学计算机科学硕士2019,[2019世界大学排名]2019乔治城大学排名
  12. 论文参考文献格式自动生成
  13. wifi-pumpkin/wifipumpkin3-2022-kali安装(源码编译)
  14. java synchronized_Java中synchronized关键字理解
  15. 网易云对象存储获取私有对象下载链接打不开的问题
  16. 企业微信聊天框中点击自建应用获取当前聊天外部联系人userid,wx.agentConfig调用
  17. TI公司TMS封装与引脚对应关系
  18. 核磁共振分析处理软件:Nucleomatica iNMR for Mac
  19. 生产者消费者模式详细解读
  20. Bluetooth技术学习笔记 ——HFP之Call

热门文章

  1. unity如何实现图片透视_unity 中是如何实现游戏人物换装的
  2. servlet与jsp面试题
  3. 十分钟掌握Nodejs下载和安装
  4. 线性代数基本公式结论简要总结(2)
  5. ESP32-CAM模块网络摄像头demo加装舵机控制教程
  6. 一种去水印的营业执照识别方法
  7. Scala下载安装和环境变量配置
  8. html svg 在线编辑器,用于矢量图形的SVG在线编辑器
  9. JavaWeb的框架介绍
  10. win7连接共享打印机时安装驱动程序出现0x00000bcb错误