如何求出小波能谱?
我想用db5小波对信号进行小波变换后,得到小波能谱,在matlab中该怎么得到呢?请大家帮帮忙 help dwt, wavedec[ 本帖最后由 ChaChing 于 2010-8-15 15:11 编辑 ] 谢谢,我知道这样可以对信号进行小波变换,可是我还想得到小波能谱,现在不知道该怎么办?请再帮帮忙 楼主要的是不是这个?
figure(1)
fs=2000; t=0:1/fs:1;
for i=1:length(t)
if t(i)<=0.2
x(i)=8*sin(60*pi*t(i)+pi/12)+6*sin(240*pi*t(i)+pi/2)+sin(300*pi*t(i)+pi/6);
else
x(i)=8*sin(60*pi*t(i)+pi/12)+6*sin(240*pi*t(i)+pi/2)+sin(300*pi*t(i)+pi/6)+20*sin(500*pi*t(i)+pi/3).*exp(-20*(t(i)-0.2));
end
end
plot(t,x); grid on
figure(2)
wpt=wpdec(x,4,'db3'); plot(wpt);
for i=0:15
figure(3); rfs=wprcoef(wpt,);
subplot(4,4,i+1);
plot(rfs); grid on; title(['']); axis();
end
for i=0:3
figure(4); rfs=wprcoef(wpt,);
subplot(4,1,i+1);
plot(rfs); grid on; title(['']); axis();
end
for i=1:4
wpt=wpdec(x,i,'db3'); e=wenergy(wpt); E=zeros(1,length(e));
for j=1:2^i
E(j)=sum(abs(wprcoef(wpt,)).^2);
end
figure(5)
subplot(4,1,i);
bar(e); axis(); title(['第 ',num2str(i), ' 层']);
for j=1:length(e)
text(j-0.2,e(j)+20,num2str(e(j),'%2.2f'));
end
end
[ 本帖最后由 ChaChing 于 2010-8-16 01:01 编辑 ] 谢谢happy,我说的就是这个意思。但是我有两个问题想请教:
1。你代码中的E与E(j)代表什么,已经有了wenergy求出e,为什么还要求E
2。在此基础上,我想知道能量随时间的变换,又该怎么办呢?
再次谢谢!
页:
[1]