fulty 发表于 2009-5-12 23:55

小波包分解各个频段的能量求法?我的一些想法

做课题需要用到小波的东西,基础理论的东西看了些,坦白说没怎么弄懂多少。因为只需要小波包分解后各个频段的能量所以直接看了些小波包的东西然后来做。求信号分解后各个频段的能量是基础所以想问下各位高手给指点下看我的方法对不对。废话多了谢谢。

一。刚开始是用wpcoef提取各个节点的小波包系数然后认为能量是各个小波包系数的平方和。用wenergy函数验证过,所计算的各个频段的能量百分比和wenwrgy的一样。但是心里没底,因为自己没什么理论依据。请明白的指点。

二。现在初步想用wprcoef重构每个频段的节点小波包系数,重构的信号和原信号长度一样,然后计算每个采样点的幅值平房和作为能量。这种物理意义明白,但是主要的问题是看了很多书还有matlab的help对wprcoef的说明,对这个函数是不是重构小波包的每个频段的信息还有点疑问。


拿一些信号做过试验发现这两种结果是一样的,而且用plot画出两种方法得到的数据图图形的形状是一样的,当然用wpcoef得到的数据长度是1/2^j.

我现在所想的是,这两种方法可能都对了。或者这两种方法都错了。

我的疑问是,wprcoef重构每个节点的小波包系数得到的是不是原信号属于该频段的信号成分,对于这个疑问我拿noisdopp信号做过试验,小波包分解3层后,对每个节点进行重构,然后把这些信号相加,得到的就是noisdopp信号。但是这样的话我的第二个疑问就来了,那wcoef得到的节点小波包系数是什么含义呢?为什么图像的形状和用cprcoef重构的信号一样呢?

希望有高手能出来指教,期盼高手谢谢

zhchtju 发表于 2009-5-19 23:03

不太懂,随便说说,讨论讨论,学习学习。

个人认为wprcoef是节点小波包系数重构出来的信号;wcoef应该是节点小波包系数。

炎海飞雪 发表于 2009-5-20 09:50

个人认为从小波包分解过程看,除最后的直流分量代表最低频外,其他系数不一定有明确的物理意义

zhchtju 发表于 2009-5-21 10:58

回复 板凳 炎海飞雪 的帖子

不是太明白,能否具体解释一下。我想小波包分解后,频域被细分了,相应的小波包系数应该能大致表征各频带内信号成分的大小吧。

qzb000728 发表于 2009-5-21 15:17

回复 楼主 fulty 的帖子

能把程序分享一下吗,你的意思我明白,但具体求能量,不知如何做。

zhlong 发表于 2009-5-22 14:08

直接用分解系数(wpcoef)算能量 和 重构每个子带信号(wprcoef)后算能量是一样的,理论依据帕塞瓦尔(Parseval)定理。

fulty 发表于 2009-5-25 15:59

回复 沙发 zhchtju 的帖子

嗯,你说的很对,谢谢

fulty 发表于 2009-5-25 16:02

非常感谢,我去看看这个定理,对于信号这一块只是外行,以后有问题还请多指教。

我想问一下的是小波包系数有没有什么具体的物理意义呢?

fulty 发表于 2009-5-25 16:04

回复 6楼 zhlong 的帖子

非常感谢,我去看看这个定理,对于信号这一块只是外行,以后有问题还请多指教。

我想问一下的是小波包系数有没有什么具体的物理意义呢?

fulty 发表于 2009-5-25 16:06

回复 板凳 炎海飞雪 的帖子

但是某个频段的小波包系数和重构这个频段的小波包系数的话图形形状基本是一样的,不知道有什么联系没有?

fulty 发表于 2009-5-25 16:21

回复 5楼 qzb000728 的帖子

用相关的函数进行分解后直接平方求和就好了啊,而且一般是向量的话直接可以求内积就是了。找本MATLAB 的书就会有啊。

load noisdopp;
x=noisdopp;
%利用shannon小波对每一个传感器获得的信号进行3层小波包分解,得到2的3次方个不同频带的信号
wpt=wpdec(x,3,'db1','shannon');

%重构每个频带的信号(每一列为每个频段重构后的信号)
for i=7:14
    signal(i,:)=wprcoef(wpt,i);
end


%计算能量(energy)7-14列为有效数据。

for i=7:14
    energy(i)=signal(i,:)*signal(i,:)';
end

zhchtju 发表于 2009-6-8 23:27

回复 10楼 fulty 的帖子

“某个频段的小波包系数和重构这个频段的小波包系数的图形形状基本是一样的”,这个不太容易实现吧。
小波包系数和相应重构信号的物理意义差别很大,不太会一样吧?(虽然能量上可能存在对应的关系)

yjcrystal 发表于 2012-6-19 20:25

回复 1 # fulty 的帖子

楼主,我现在也是需要用小波包分析求信号各个频段能量比,采样率1M,对信号进行5层小波包分解,用wenergy()算的能量比,可是我得出的能量比与信号的频谱高频部分有些对不上,比如信号频谱在150kHz附近有较宽尖峰,可是得出的能量比在150k附近的频率段反而很小,到200k多才很大。很迷惑。。。想请楼主帮帮忙

nishoulong 发表于 2012-9-30 11:13

跟上楼的同志问题一样

青霜 发表于 2012-10-17 13:08

楼主,我用db20对正弦信号分解,原信号L=1024个采样点,5层小波包分解,用wpcoef得到的第5层结点的小波系数个数应该为L/(2^N)=32个,可是Matlab仿真出来的结果是69个,下面的是我的代码,请教下是什么问题clear;
clc;
fs = 6400;
ts = 0.16;
N = fs*ts;
Layer = 5;
t = (0:N-1)/fs;
x = sin(2*pi*50*t);
plot(t,x);
T = wpdec(x,5,'db20');
cfs = wpcoef(T,);
figure;
plot(cfs);
页: [1] 2
查看完整版本: 小波包分解各个频段的能量求法?我的一些想法