声振论坛

 找回密码
 我要加入

QQ登录

只需一步,快速开始

查看: 1582|回复: 5

[小波] 小波分解与重构

[复制链接]
发表于 2008-12-31 14:58 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?我要加入

x
求救把信号进行5层分解与重构的命令怎么写啊?自己的重构命令不知道对不对?到最后一步S5运行不了是怎么回事呢?请高人指点!
%用db4小波进行5尺度分解
[c,l]=wavedec(s,5,'db4');
%[c,1]=wavedec(s(2,:),3,'db4');
%取第5层低频系数
ca5 = appcoef(c,l,'db4',5);
%取各层高频系数
cd5=detcoef(c,l,5);
cd4=detcoef(c,l,4);
cd3=detcoef(c,l,3);
cd2=detcoef(c,l,2);
cdl=detcoef(c,l,1);
%以极大值极小值原理选择信号消噪的阈值(软阈值),产生一个最小均方误差的极值
thr=thselect(s, 'minimaxi');
%对各高频系数进行消噪
cdlsoft=wthresh(cdl, 's',thr);
cd2soft=wthresh(cd2,'s',thr);
cd3soft=wthresh (cd3, 's',thr);
cd4soft=wthresh (cd4, 's',thr);
cd5soft=wthresh (cd5, 's',thr);
%由于原信号信噪比大,且高频成分较少thr=-2.409,而各高频系数实际值小于1,因此以上操作实际上是将高频成分置零
%对4层高频系数消噪后重构超声信号
cc=[ca5;cd5soft;cd4soft;cd3soft;cd2soft;cdlsoft];
s1= waverec(cc,l, 'db4');
% x~1,2,3层高频系数消噪后重构信号
cd=[ca5;cd5;cd5soft;cd4soft;cd3soft;cd2soft;cdlsoft];
s2= waverec(cd,l, 'db4');
ce=[ca5;cd4;cd4soft;cd3soft;cd2soft;cdlsoft];
s3=waverec(ce,l, 'db4');
cf=[ca5;cd3;cd3soft;cd2soft;cdlsoft];
s4=waverec(cf,l, 'db4');
cg=[ca5;cd2;cd2soft;cdlsoft];
s5=waverec(cg,l, 'db4');
回复
分享到:

使用道具 举报

发表于 2009-1-1 00:40 | 显示全部楼层
我也准备搞这个
发表于 2009-1-1 00:41 | 显示全部楼层
不过我的是用HHT做的
发表于 2009-1-4 17:56 | 显示全部楼层
个人认为程序有2个小问题:
1.cc=[ca5;cd5soft;cd4soft;cd3soft;cd2soft;cdlsoft];应改为
cc=[ca5 cd5soft cd4soft cd3soft cd2soft cdlsoft];
cd、ce等类似处理。
2.cd、ce、cf、cg的系数构成有点问题,高频系数要不是少了,就是多了;
多了程序自动取截断(如cd),少了程序就报错了,凑齐就好了
发表于 2009-1-5 10:30 | 显示全部楼层

回复 地板 zhchtju 的帖子

同意楼上:lol
发表于 2009-1-5 10:31 | 显示全部楼层
t=1:512;
t=t*1/2560;
z=1+0.2*sin(2*pi*7.5*t)
x=5*cos(2*pi*30*t)
y=sin(2*pi*120*t);
f1=x+y+z;
s=x+0.5*randn(1,512);% x信号+噪声
%用db4小波进行5尺度分解
[c,l]=wavedec(s,5,'db4');
%[c,1]=wavedec(s(2,:),3,'db4');
%取第5层低频系数
ca5 = appcoef(c,l,'db4',5);
%取各层高频系数
cd5=detcoef(c,l,5);
cd4=detcoef(c,l,4);
cd3=detcoef(c,l,3);
cd2=detcoef(c,l,2);
cdl=detcoef(c,l,1);
%以极大值极小值原理选择信号消噪的阈值(软阈值),产生一个最小均方误差的极值
thr=thselect(s, 'minimaxi');
%对各高频系数进行消噪
cdlsoft=wthresh(cdl, 's',thr);
cd2soft=wthresh(cd2,'s',thr);
cd3soft=wthresh (cd3, 's',thr);
cd4soft=wthresh (cd4, 's',thr);
cd5soft=wthresh (cd5, 's',thr);
%由于原信号信噪比大,且高频成分较少thr=-2.409,而各高频系数实际值小于1,因此以上操作实际上是将高频成分置零
%对4层高频系数消噪后重构超声信号
cc=[ca5 cd5soft cd4soft cd3soft cd2soft cdlsoft];
s1= waverec(cc,l, 'db4');
% x~1,2,3层高频系数消噪后重构信号
cd=[ca5 cd5 cd4 cd3 cd2 cdlsoft];
s2= waverec(cd,l, 'db4');
ce=[ca5 cd5 cd4 cd3 cd2soft cdlsoft];
s3=waverec(ce,l, 'db4');
cf=[ca5 cd5 cd4 cd3soft cd2soft cdlsoft];
s4=waverec(cf,l, 'db4');
cg=[ca5 cd5 cd4soft cd3soft cd2soft cdlsoft];
s5=waverec(cg,l, 'db4');
subplot(611)
plot(s);
subplot(612)
plot(s1);
subplot(613)
plot(s2);
subplot(614)
plot(s3);
subplot(615)
plot(s4);
subplot(616)
plot(s5);
回复 支持 1 反对 0

使用道具 举报

您需要登录后才可以回帖 登录 | 我要加入

本版积分规则

QQ|小黑屋|Archiver|手机版|联系我们|声振论坛

GMT+8, 2024-11-26 11:32 , Processed in 0.065415 second(s), 18 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表