代码:小波包分解与重构、小波包能量特征提取

代码:小波包分解与重构、小波包能量特征提取1 小波变换的理解傅里叶变换 短时傅里叶变换 小波变换 参考文献 以下两篇参考资料讲述得十分清楚 有助于理解小波变换 但具体的数学角度阐述 请参考其他资料 1 知乎专栏 形象易懂讲解算法 I 小波变换 https zhuanlan zhihu com p 2 知乎专栏 傅里叶分析之掐死教程 https zhuanlan zhihu co

1、小波变换的理解

傅里叶变换——短时傅里叶变换——小波变换。

参考文献:以下两篇参考资料讲述得十分清楚,有助于理解小波变换。

但具体的数学角度阐述,请参考其他资料。

(1)知乎专栏:形象易懂讲解算法I——小波变换

https://zhuanlan.zhihu.com/p/

(2)知乎专栏:傅里叶分析之掐死教程。

https://zhuanlan.zhihu.com/p/

2、小波包分解

小波包是为了克服小波分解在高频段的频率分辨率较差,而在低频段的时间分辨率较差的问题的基础上而提出的。

下面是两者的对比图:

代码:小波包分解与重构、小波包能量特征提取

3、能量谱

      基于小波包分解提取多尺度空间能量特征的原理是把不同分解尺度上的信号能量求解出来,将这些能量值按尺度顺序排列成特征向量供识别使用。

补充更新:具体计算公式如下所示,本文中未使用重构后的系数进行能量值计算,直接使用小波包分解后的系数,参考文献《基于小波包能量特征的滚动轴承故障监测方法 》。

代码:小波包分解与重构、小波包能量特征提取

4、Matlab代码

给出两部分代码,写成两个函数。一个是小波包分解与重构,另一个是能量谱函数。

下载地址:https://download.csdn.net/download/ckzhb/

代码名称:wavelet_packetdecomposition_reconstruct

function wpt= wavelet_packetdecomposition_reconstruct( x,n,wpname ) %% 对信号进行小波包分解,得到节点的小波包系数。然后对每个节点系数进行重构。 % Decompose x at depth n with wpname wavelet packets.using Shannon entropy. % % x-input signal,列向量。 % n-the number of decomposition layers % wpname-a particular wavelet.type:string. % %Author hubery_zhang %Date  %% wpt=wpdec(x,n,wpname); % Plot wavelet packet tree (binary tree) plot(wpt) %% wavelet packet coefficients.default:use the front 4. cfs0=wpcoef(wpt,[n 0]); cfs1=wpcoef(wpt,[n 1]); cfs2=wpcoef(wpt,[n 2]); cfs3=wpcoef(wpt,[n 3]); figure; subplot(5,1,1); plot(x); title('原始信号'); subplot(5,1,2); plot(cfs0); title(['结点 ',num2str(n) ' 1',' 系数']) subplot(5,1,3); plot(cfs1); title(['结点 ',num2str(n) ' 2',' 系数']) subplot(5,1,4); plot(cfs2); title(['结点 ',num2str(n) ' 3',' 系数']) subplot(5,1,5); plot(cfs3); title(['结点 ',num2str(n) ' 4',' 系数']) %% reconstruct wavelet packet coefficients. rex0=wprcoef(wpt,[n 0]); rex1=wprcoef(wpt,[n 1]); rex2=wprcoef(wpt,[n 2]); rex3=wprcoef(wpt,[n 3]); figure; subplot(5,1,1); plot(x); title('原始信号'); subplot(5,1,2); plot(rex0); title(['重构结点 ',num2str(n) ' 1',' 系数']) subplot(5,1,3); plot(rex1); title(['重构结点 ',num2str(n) ' 2',' 系数']) subplot(5,1,4); plot(rex2); title(['重构结点 ',num2str(n) ' 3',' 系数']) subplot(5,1,5); plot(rex3); title(['重构结点 ',num2str(n) ' 4',' 系数']) end 

代码名称:wavelet_energy_spectrum

function E = wavelet_energy_spectrum( wpt,n ) %% 计算每一层每一个节点的能量 % wpt-wavelet packet tree % n-第n层能量 % % Author hubery_zhang % Date  %% % 求第n层第i个节点的系数 E(1:2^n )=0; for i=1:2^n E(i) = norm(wpcoef(wpt,[n,i-1]),2)^2; %更新 原代码:E(i) = norm(wpcoef(wpt,[n,i-1]),2) end %求每个节点的概率 E_total=sum(E); for i=1:2^n p_node(i)= 100*E(i)/E_total; end % E = wenergy(wpt); only get the last layer figure; x=1:2^n; bar(x,p_node); title(['第',num2str(n),'层']); axis([0 2^n 0 100]); xlabel('结点'); ylabel('能量百分比/%'); for j=1:2^n text(x(j),p_node(i),num2str(p_node(j),'%0.2f'),... 'HorizontalAlignment','center',... 'VerticalAlignment','bottom') end end






版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/202306.html原文链接:https://javaforall.net

(0)
上一篇 2026年3月20日 上午7:26
下一篇 2026年3月20日 上午7:26


相关推荐

  • JetBrains WebStorm 安装教程

    JetBrains WebStorm 安装教程首先声明,此方法仅用来参考学习,不得用于商业用途,请支持正版,学生可以免费申请到正版软件。网上有很多激活成功教程方法,可能不同的版本不一样,这篇文章就只针对JetBrainsWebStorm2018.1.5×64版本的软件。因为本人用的就是这个版本,亲测有效。——————2019年10月首先需要下载一个jar包:JetbrainsIde…

    2022年6月16日
    47
  • 动手实操丨RC522射频卡模块与IC卡完成充值消费查询的技术实现思路

    动手实操丨RC522射频卡模块与IC卡完成充值消费查询的技术实现思路一文手把手教你利用RC522射频卡模块与IC卡完成充值消费查询的技术实现思路。

    2022年7月26日
    8
  • 防火墙OPNsense安装「建议收藏」

    防火墙OPNsense安装0.前言下载链接:https://opnsense.org/download/下载镜像,安装到虚拟机里。1.安装配置要求,需要两个网络适配器,一个外网,一个内网(也就是一个局域网,一个广域网)启动后,让页面自启,等到有倒计时的页面时,有5秒的倒计时自动检测,这里不要自动检测,直接回车对广域网wan和局域网lan进行命名wan:le0lan:le1OPNsense进入了LiveDemo模式,这时如果你用root登陆,所有的功能都支持,但所有的存储

    2022年4月5日
    66
  • mybatis一级缓存和二级缓存工作方式_redis二级缓存

    mybatis一级缓存和二级缓存工作方式_redis二级缓存系列文章目录提示:这里可以添加系列文章的所有文章的目录,目录需要自己手动添加例如:第一章Python机器学习入门之pandas的使用提示:写完文章后,目录可以自动生成,如何生成可参考右边的帮助文档文章目录系列文章目录前言二、mybatis二级缓存:出现的原因:二级缓存介绍:二级缓存清除策略:事务管理策略:二、使用步骤1.引入库2.读入数据总结前言提示:这里可以添加本文要记录的大概内容:例如:随着人工智能的不断发展,机器学习这门技术也越来越重要,很多人都开启了学习机器学习,本文就介绍了

    2026年1月30日
    6
  • 思科静态路由配置_思科交换机trunk配置命令

    思科静态路由配置_思科交换机trunk配置命令1.配置静态路由路由器可以将不同网段之间的网络连接到一起,当路由器接收到数据包后要查看数据包中的目标IP,再检查自己的路由表,如果路由表中有和目标IP相匹配的路由条目,路由器才能将数据包按照该路由条目所指定的端口转发出去,实现不同网络之间的通信,那么路由器中的路由表是如何实现的呢?配置了路由器接口IP并为UP状态路由表中自动生成直连路由,对于非直连的路由,需通过静态路由管理员手工添加或通过配置动…

    2026年3月7日
    3
  • 土地利用分类详细教程——以高分一号影像为例(上)

    土地利用分类详细教程——以高分一号影像为例(上)1 前言相信跟我一样刚刚接触遥感的计算机人士来讲 突然转行开始弄遥感 刚开始肯定会一头雾水 更别说什么土地利用分类的制作了 在这里 我将会用最为直接的图形流程操作来给像我一样初识遥感的童鞋们讲解一下制作土地利用的整个过程 首先 我先用一幅流程图来概括一下制作土地利用的整个过程 如下图 1 所示 图 1 土地利用分类流程图这个流程操作适用于一般影像制作土地利用过程 然

    2026年3月16日
    3

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号