热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

小波包分解python代码(小波包分解算法)

本文目录一览:1、python如何实现类似matlab的小波滤波?

本文目录一览:


  • 1、python如何实现类似matlab的小波滤波?


  • 2、急求用matlab编小波包3级分解及输出其系数的程序,那位高手帮助我一下,将不胜感激,先谢谢啦!


  • 3、最佳小波包分解层数的获取


  • 4、怎么用matlab小波包分解


  • 5、小波包分解


  • 6、matlab中获得小波树的末层结点

python如何实现类似matlab的小波滤波?

T=wpdec(y,5,'db40');

%信号y进行波包解层数5T波树plot看

a10=wprcoef(T,[1,0]);

%a10节点[1,0]进行重构信号貌似没层重构说吧能某层某节点进行重构节点编号波树

%以下为滤波程序(主要调节参数c的大小)

c=10;

wn=0.1;

fs=50000; %采样频率;

b=fir1(c,wn/(fs/2),hamming(c+1));

y1=filtfilt(b,1,y);%对y滤波。

急求用matlab编小波包3级分解及输出其系数的程序,那位高手帮助我一下,将不胜感激,先谢谢啦!

load ir; %将信号装入MATLAB工作环境

s=X106_BA_time(1:1000); %取采样信号的前1~1000个采样点

is=length(s); %计算采样序列长度

subplot(321);plot(s);title('原始信号');%画出原始信号波形

xlabel('样本序列号');

ylabel('幅值A');

wpt=wpdec(s,3,'db1','shannon');% 用db1小波包对信号x3层分解,用shannon熵作为熵标准

plot(wpt);%绘制小波包树

N=allnodes(wpt);% 计算小波包分解树的结点

%提取各节点的小波包系数

for i=1:length(N)

X=wpcoef(wpt,i-1);

subplot(floor((length(N)+1)/2),2,i);plot(X);

title(['节点',num2str(i) '的小波包系数']);

end

figure;

%各节点小波包重构系数

for i=1:length(N)

rcfs=wprcoef(wpt,i-1);

subplot(floor((length(N)+1)/2),2,i);plot(rcfs);

title(['重构节点',num2str(i) '小波包系数']);

end

最佳小波包分解层数的获取

因为小波包分解高频系数的奇异值在每一分解层都不同,即分解层数的变化会引起奇异值的变化,因此,可以通过分析奇异值变化规律来确定分解层数。定义一个判定函数C(r,k),用其函数值的变化来表征小波包分解每层信息的变化,设C(r,k)函数为

高光谱遥感影像信息提取技术

式中:r为特征矩阵维数;k为正整数。

通过大量的实验分析,表明小波包的分解层数与各层数对应C(r,k)函数值的变化存在一定的内在联系。随着各层C(r,k)函数值的变化,有用信号和噪声的比值也发生着显著的变化。当在某分解层处C(r,k)的函数值到达某一程度时,这就使目标地物更好地分离出来,而使噪声减弱,这样就可以确定最佳分解层数。

在AVIRIS实验数据1~9层的小波包分解中,根据高频系数矩阵分别计算出各层处C(r,k)函数值。随着分解层数的增加,其C(r,k)函数值在不断减小,其变化率也发生着显著变化。图4.6显示了各分解层数下的C(r,k)函数值的实际变化趋势和这种趋势变化所反演的回归函数曲线,其回归曲线方程采用接近C(r,k)函数值变化趋势的最低次多项式函数来表示。从图4.6上可以看出,两条曲线非常接近地重合在一起,说明了回归函数曲线能很好地表征C(r,k)的变化特征。

根据各分解层下离散的C(r,k)函数值,找出最接近其变化趋势的最低次多项式回归函数方程y(x):

高光谱遥感影像信息提取技术

然后求解方程y(x)的二阶导数y″(x),即找出曲线拐点的位置,此点位置就代表着小波包分解的最佳分解层数。在表4.1中,可以看到在分解层数达到5层时,y″(x)的值开始从负值变为正值,说明y″(x)在第4层和第5层之间有拐点,从而确认第四层为最佳分解层数。

图4.6 基于影像AVIRIS的判定函数C(r,k)值变化曲线和回归函数曲线

表4.1 高光谱影像AVIRIS不同小波包分解层的SVD特征值分析

怎么用matlab小波包分解

小波图像去噪的方法大概分为3类

1:基于小波变换摸极大值原理

2:基于小波变换系数的相关性

3:基于小波阈值的去噪。

基于小波阈值的去噪方法3个步骤:

1:

计算含噪声图像的小波变换。选择合适的小波基和小波分解层数j,运用matlab

分解算法将含有噪声图像进行j层小波分解,得到相应的小波分解系数。

2:对分解后的高频系数进行阈值量化,对于从1

到j的每一层,选择一个适当的阈值和合适的阈值函数,将分解得到的高频系数进行阈值量化,得到估计小波系数。

3:进行小波逆变化,根据图像小波分解后的第j层,低频

系数(尺度系数)和经过阈值量化处理的各层高频系数(小波系数),运用matlab重构算法进行小波重构,得到去噪后的图像。

小波包分解

1.装载信号

在MATLAB命令行中输入

load noisbloc

s=noisbloc(1:1024);

ls=length(s);

plot(s);

2.完成信号的单尺度一维离散小波分解

采用db4基本小波分解信号

在命令窗口中输入

[cA1,cD1]=dwt(s,'db4');

这就产生了低频系数cA1和高频系数cD1。

可以通过whos命令查看cA1和cD1的长度:

whos

Name Size Bytes Class

cA1 1x515 4120 double array

cD1 1x515 4120 double array

ls 1x1 8 double array

noisbloc 1x1024 8192 double array

s 1x1024 8192 double array

Grand total is 3079 elements using 24632 bytes

3.从系数中重构低频部分和高频部分

从第二步产生的系数cA1和cD1构造第一层的低频和高频(A1和D1)系数;

A1=upcoef('a',cA1,'db4',1,ls);

D1=upcoef('a',cD1,'db4',1,ls);

或用下面两个函数:

A1=idwt(cA1,[],'db4',ls);

D1=idwt(cD1,[],'db4',ls);

4.显示高频和低频部分

为了显示第一层分解结果,输入

subplot(211); plot(A1); title('低频A1');

subplot(212); plot(D1); title('低频D1');

5.由小波逆变换恢复信号

使用idwt函数很容易实现,在命令窗口输入

subplot(211); plot(s); title('原始信号');

subplot(212); plot(A0); title('重构信号');

6.多层一维分解

为了完成一个5层的分解,输入:

[C,L]=wavedec(s,5,'db4');

7.提取系数的低频和高频部分

为了从上面的C中提取第3层的低频系数,输入:

cA3=appcoef(C,L,'db4',3);

8.重构第3层的低频系数

为了从上面的C中重构第3层的低频系数,输入:

A3=wrcoef('a',C,L,'db4',3);

9.重构第1、2、3、4、5层的高频信号

其方法是:

cA5=appcoef(C,L,'db4',5);

A5=wrcoef('a',C,L,'db4',5);

D1=wrcoef('d',C,L,'db4',1);

D2=wrcoef('d',C,L,'db4',2);

D3=wrcoef('d',C,L,'db4',3);

D4=wrcoef('d',C,L,'db4',4);

D5=wrcoef('d',C,L,'db4',5);

下面显示多尺度一维分解的结果:

subplot(322); plot(D1); title('低频D1');

subplot(323); plot(D2); title('低频D2');

subplot(323); plot(D3); title('低频D3');

subplot(325); plot(A5); title('低频D4');

subplot(326); plot(A5); title('低频D5');

10.重构原始信号并显示

A0=waverec(C,L,'db4');

subplot(311); plot(s); title('原始信号');

subplot(312); plot(A0); title('重构信号');

subplot(313); plot(s-A0); title('误差信号');

matlab中获得小波树的末层结点

第一行:将wave 用 meyr小波进行3层小波包分解,获得一个小波包树 t

第二行:将小波包树的第二行的四个节点收起来,也就是让第二行的节点变为树的最底层节点。因为第一行中小 波包树的节点个数是 第一层2个,第二层4个,第三层8个。现在将t2就是将第三层的节点再聚合回第二 层。

第三行:读取第二层四个节点系数的size

第四~七行:将所有四个节点的小波包系数变为0

第八行:将四个节点的系数重组到t3小波树中。

第九行:对t3小波树进行重构,获得信号wave2


推荐阅读
  • 导读上一篇讲了zsh的常用字符串操作,这篇开始讲更为琐碎的转义字符和格式化输出相关内容。包括转义字符、引号、print、printf的使用等等。其中很多内容没有必要记忆,作为手册参 ... [详细]
  • 深入理解JVM内存区域与配置优化
    本文详细介绍了Java虚拟机(JVM)内存区域的划分及其背后的原理,重点探讨了不同内存区域的功能及垃圾回收策略。文章还提供了如何通过JVM参数优化内存管理的实用建议。 ... [详细]
  • 本文深入探讨了OpenCV中的Canny边缘检测算法,并通过具体的Python代码实例展示了如何实现特定区域的轮廓线提取。适合初学者和专业人士参考。 ... [详细]
  • Python作为一种广泛使用的高级编程语言,以其简洁的语法、强大的功能和丰富的库支持著称。本文将详细介绍Python的主要特点及其在现代软件开发中的应用。 ... [详细]
  • Python图像处理库概览
    本文详细介绍了Python中常用的图像处理库,包括scikit-image、Numpy、Scipy、Pillow、OpenCV-Python、SimpleCV、Mahotas、SimpleITK、pgmagick和Pycairo,旨在帮助开发者和研究人员选择合适的工具进行图像处理任务。 ... [详细]
  • 图像中的边缘信息主要集中在高频部分,因此图像锐化或边缘检测实质上是进行高频滤波。微分运算能够增强信号的高频成分,从而在空间域中通过计算微分实现图像锐化。本文将详细介绍如何使用 Python 实现 Canny 边缘检测算法。 ... [详细]
  • 本文基于https://major.io/2014/05/13/coreos-vs-project-atomic-a-review/的内容,对CoreOS和Atomic两个操作系统进行了详细的对比,涵盖部署、管理和安全性等多个方面。 ... [详细]
  • 吴裕雄探讨混合神经网络模型在深度学习中的应用:结合RNN与CNN优化网络性能
    本文由吴裕雄撰写,深入探讨了如何利用Python、Keras及TensorFlow构建混合神经网络模型,特别是通过结合递归神经网络(RNN)和卷积神经网络(CNN),实现对网络运行效率的有效提升。 ... [详细]
  • CSV 文件的存取
    CSV文件介绍CSV(Comma-SeparatedValues),中文通常叫做逗号分割值。CSV文件由任意数目的记录(行& ... [详细]
  • KNN算法在海伦约会预测中的应用
    本文介绍如何使用KNN算法进行海伦约会的预测。我们将从数据导入、数据预处理、数据可视化到最终的模型训练和测试进行全面解析。 ... [详细]
  • 使用Python模拟登录教务系统抓取成绩并分析存储
    本文详细介绍如何使用Python编程语言模拟登录学校教务系统,抓取学生的成绩信息,并进行数据分析和可视化处理,最终将数据存储到MySQL数据库中。 ... [详细]
  • 本文探讨了SQLAlchemy ORM框架中如何利用外键和关系(relationship)来建立表间联系,简化复杂的查询操作。通过示例代码详细解释了relationship的定义、使用方法及其与外键的相互作用。 ... [详细]
  • 负载均衡基础概念与技术解析
    随着互联网应用的不断扩展,用户流量激增,业务复杂度显著提升,单一服务器已难以应对日益增长的负载需求。负载均衡技术应运而生,通过将请求合理分配到多个服务器,有效提高系统的可用性和响应速度。本文将深入探讨负载均衡的基本概念和技术原理,分析其在现代互联网架构中的重要性及应用场景。 ... [详细]
  • 在开发过程中,遇到了一个关于UILabel的显示问题:当根据文字长度动态调整UILabel的尺寸时,边框偶尔会出现不必要的黑线。本文详细分析了这一问题的原因,并提供了有效的解决方案。 ... [详细]
  • 本文探讨了在使用 ElementUI 的 el-select 组件时,@change 事件与 @keyup.enter.native 事件之间存在的冲突问题,并提供了相应的解决策略。 ... [详细]
author-avatar
Huibin_Yu_421
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有