小波包分解

更新时间:2024-04-20 08:16:01 阅读量: 综合文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

一、

首先,小波包的一些基本的基本要弄懂,就是小波包是从原始信号,分级向下分解。如下图所示。

这就是小波包树,其中节点的命名规则是从 (1,0)开始,叫1号, (1,1)是2

号,,,,依此类推,(3,0)是7号,(3,7)是14号。 每个节点都有对应的小波包

系数,这个系数决定了频率的大小,也就是说频率信息已经有了,但是时域信息在哪里呢? 那就是 order。 这个order就是这些节点的顺序,也就是频率的顺序。

比如,节点的排序是 1,2,3,,,,14, 那么频率就按先1号的频率变化,后2号的,再3号的,,,然后14号的。

图1

来看一个实例:

采样频率为1024Hz,采样时间是1秒,有一个信号s是由频率100和200Hz的正弦波混合的,我们用小波包来分解。 clear all clc

fs=1024; %采样频率

f1=100; %信号的第一个频率 f2=300; %信号第二个频率

t=0:1/fs:1;

s=sin(2*pi*f1*t)+sin(2*pi*f2*t); %生成混合信号

[tt]=wpdec(s,3,'dmey'); %小波包分解,3代表分解3层,像图1那样,'dmey'使用meyr小波 plot(tt) %这个就是画出图1那个图,可以用鼠标在上面点 wpviewcf(tt,1); %画出时间频率图,如图2

图2

现在开始解释:x轴很简单,就是1024个点,对应1秒,每个点就代表1/1024秒,x轴诡异一下,最后一个数就是1. y轴上显示的数字对应于 图1 中的节点,从下面开始,顺序是 7号节点,8号,10号,9号,,,,11号节点,这个顺序是这么排列的,这是小波包自动排列的,不用管。只要知道怎么查看这个order就可以了。然后,y轴是频率啊,怎么不是 100Hz和300Hz呢? 原因就是MATLAB这里没有显示频率,显示的是order,频率我们要自己算,怎么算呢。我们的采样频率是1024Hz,根据采样定理,奈奎斯特采样频率是512Hz,我们分解了3层,最后一层就是 2^3=8个频率段,每个频率段的频率区间是

512/8=64Hz,对吧,那看图2,颜色重的地方一个是在8那里,一个在13那里,8是第二段,也就是 65-128Hz之间,13是第五段,也就是257-320Hz之间。这样就说通了,正好这个原始信号只有两个频率段,一个100一个300。如果我们不是分解了3层,而是更多层,那么每个频率段包含的频率也就越窄,图上有颜色的地方也会更细,也就是说更精细了,大家可以自己试试。将3改为6试试。由于原始信号的频率在整个1秒钟内都没有改变,所以有颜色的地方是一个横线。

再看一个实例:

有如下的一个信号,该信号的频率从25Hz左右增长到103Hz,信号长度是256,fs就定为256Hz,也是采样1秒。我们用上面的代码来分析这个信号,不过这次分解层数选为4层,也就是有2^4=16个频率段。每个频段是 128/16=8Hz. 这个时候就明白了前面讲到的order的重要性了吧。如果排序不是按照15 16 18 17 21,,23那个顺序拍的,就不可能出现这个随时间而频率增大的图了。从图上还可以看出,频率从第三个,也就是24Hz(3*8),一路走高到13个,也就是13*8=104Hz,正好和信号的图示一样,频率逐渐增大。

wpcoef是求解某个节点的小波包系数,数据长度是1/(2^n)(分解n层的话) wprcoef是把某个节点的小波包系数重构,得到的是和原信号一样长度的信号。

set函数 将当前图形(gca)的x轴坐标刻度(xtick)标志为: -2 -1 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20

本文来源:https://www.bwwdw.com/article/m7vp.html

Top