声振论坛

 找回密码
 我要加入

QQ登录

只需一步,快速开始

查看: 2565|回复: 5

[综合讨论] 我的小波消噪源代码?怎么比不上一句话wden啊

[复制链接]
发表于 2006-6-15 22:51 | 显示全部楼层 |阅读模式

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

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

x
[讨论]我的小波消噪源代码?怎么比不上一句话wden啊

load leleccum;
e=leleccum;
y = wgn(1,length(e),20);
e=e+y;
subplot(2,1,1);
plot(e);
T=thselect(e,'rigrsure');%阈值
[c,l]=wavedec(e,3,'db4')
ca3=appcoef(c ,l ,'db4',3);
cd3=detcoef(c,l,3); %提取3级尺度下小波分解细节系数
for k=1:length(cd3)
if cd3(k)>T
cd3(k)=cd3(k)-T;
elseif cd3(k)<-T
cd3(k)=cd3(k)+-T;
else
cd3(k)=0;
end;
end;
cd2=detcoef(c,l,2); %提取2级尺度下小波分解细节系数
for k=1:length(cd2)
if cd2(k)>T
cd2(k)=cd2(k)-T;
elseif cd2(k)<-T
cd2(k)=cd2(k)+T;
else
cd2(k)=0;
end;
end;
cd1=detcoef(c,l,1); %提取1级尺度下小波分解细节系数
for k=1:length(cd1)
if cd1(k)>T
cd1(k)=cd1(k)-T;
elseif cd1(k)<-T
cd1(k)=cd1(k)+T;
else
cd1(k)=0;
end;
end;
es=waverec([ca3 cd3 cd2 cd1],l ,'db4');
subplot(2,1,2);
plot(es);
save es.mat es
对强噪声背景信号,上面的程序好像效果很差,而一句wden却能够取到很好的效果,
但是wden好像又不允许我去修改阈值,真是麻烦啊,而且我只用了一个阈值,怎么样针对每一层都有个阈值呢,大家能另外写一个比我这个要好的小波消噪程序吗?

[ 本帖最后由 eight 于 2007-6-20 18:40 编辑 ]
回复
分享到:

使用道具 举报

发表于 2007-6-20 18:02 | 显示全部楼层
你是想实现如下的滤波么

es=wden(e,'rigrsure','s','sln',3,'db4');
发表于 2007-6-24 11:05 | 显示全部楼层
wden在数据处理上应该比你的精确吧,有函数为什么自己编,找麻烦?:lol
发表于 2007-6-24 20:18 | 显示全部楼层
wden函数可比你写的程序复杂多了

edit wden自己看一下wden代码吧

如果不能满足要求,可以自己对wden做改进
发表于 2009-7-31 10:45 | 显示全部楼层
es=wden(e,'rigrsure','s','mln',3,'db4');
发表于 2009-8-2 09:49 | 显示全部楼层
比较一下自己代码与wden代码,这本就是学习过程。
您需要登录后才可以回帖 登录 | 我要加入

本版积分规则

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

GMT+8, 2024-5-24 06:50 , Processed in 0.108068 second(s), 18 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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