热门标签 | 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


推荐阅读
  • https:www.bilibili.comvideoav43996494?p61补充说明(修正前面代码存在问题):#先验框筛选defchoose_anchor_boxes(sel ... [详细]
  • 超级简单加解密工具的方案和功能
    本文介绍了一个超级简单的加解密工具的方案和功能。该工具可以读取文件头,并根据特定长度进行加密,加密后将加密部分写入源文件。同时,该工具也支持解密操作。加密和解密过程是可逆的。本文还提到了一些相关的功能和使用方法,并给出了Python代码示例。 ... [详细]
  • 学习SLAM的女生,很酷
    本文介绍了学习SLAM的女生的故事,她们选择SLAM作为研究方向,面临各种学习挑战,但坚持不懈,最终获得成功。文章鼓励未来想走科研道路的女生勇敢追求自己的梦想,同时提到了一位正在英国攻读硕士学位的女生与SLAM结缘的经历。 ... [详细]
  • 开发笔记:加密&json&StringIO模块&BytesIO模块
    篇首语:本文由编程笔记#小编为大家整理,主要介绍了加密&json&StringIO模块&BytesIO模块相关的知识,希望对你有一定的参考价值。一、加密加密 ... [详细]
  • 本文介绍了C#中生成随机数的三种方法,并分析了其中存在的问题。首先介绍了使用Random类生成随机数的默认方法,但在高并发情况下可能会出现重复的情况。接着通过循环生成了一系列随机数,进一步突显了这个问题。文章指出,随机数生成在任何编程语言中都是必备的功能,但Random类生成的随机数并不可靠。最后,提出了需要寻找其他可靠的随机数生成方法的建议。 ... [详细]
  • 无损压缩算法专题——LZSS算法实现
    本文介绍了基于无损压缩算法专题的LZSS算法实现。通过Python和C两种语言的代码实现了对任意文件的压缩和解压功能。详细介绍了LZSS算法的原理和实现过程,以及代码中的注释。 ... [详细]
  • 计算机存储系统的层次结构及其优势
    本文介绍了计算机存储系统的层次结构,包括高速缓存、主存储器和辅助存储器三个层次。通过分层存储数据可以提高程序的执行效率。计算机存储系统的层次结构将各种不同存储容量、存取速度和价格的存储器有机组合成整体,形成可寻址存储空间比主存储器空间大得多的存储整体。由于辅助存储器容量大、价格低,使得整体存储系统的平均价格降低。同时,高速缓存的存取速度可以和CPU的工作速度相匹配,进一步提高程序执行效率。 ... [详细]
  • 解决python matplotlib画水平直线的问题
    本文介绍了在使用python的matplotlib库画水平直线时可能遇到的问题,并提供了解决方法。通过导入numpy和matplotlib.pyplot模块,设置绘图对象的宽度和高度,以及使用plot函数绘制水平直线,可以解决该问题。 ... [详细]
  • WebSocket与Socket.io的理解
    WebSocketprotocol是HTML5一种新的协议。它的最大特点就是,服务器可以主动向客户端推送信息,客户端也可以主动向服务器发送信息,是真正的双向平等对话,属于服务器推送 ... [详细]
  • web.py开发web 第八章 Formalchemy 服务端验证方法
    本文介绍了在web.py开发中使用Formalchemy进行服务端表单数据验证的方法。以User表单为例,详细说明了对各字段的验证要求,包括必填、长度限制、唯一性等。同时介绍了如何自定义验证方法来实现验证唯一性和两个密码是否相等的功能。该文提供了相关代码示例。 ... [详细]
  • 本文介绍了Swing组件的用法,重点讲解了图标接口的定义和创建方法。图标接口用来将图标与各种组件相关联,可以是简单的绘画或使用磁盘上的GIF格式图像。文章详细介绍了图标接口的属性和绘制方法,并给出了一个菱形图标的实现示例。该示例可以配置图标的尺寸、颜色和填充状态。 ... [详细]
  • 文章目录前言pandas主要分为如下几个阶段:表格数据操作:增删改查实现多个表格的处理数据清洗操作:缺失值、重复值、异常值、数据标准化、数 ... [详细]
  • 2022.4.2学习成果
    Flink中的编程模型4.1编程模型在Flink,编程模型的抽象层级主要分为以下4种,越往下抽象度越低,编程越复杂,灵活度越高。这里先不一一介绍,后续会做详细说明。这4层中,一般用 ... [详细]
  • 【图解HTTP】第一章 了解web及网络基础
    [图解HTTP]了解Web及网络基础Web页面是如何呈现的?根据Web浏览器地址栏中指定的URL,Web浏览器从Web服务器端获取文件资源(resour ... [详细]
  • webrtc学习笔记三:webrtc架构
    文章目录 ... [详细]
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社区 版权所有