kevin8206 发表于 2006-6-15 22:51

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

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

load leleccum;
e=leleccum;
y = wgn(1,length(e),20);
e=e+y;
subplot(2,1,1);
plot(e);
T=thselect(e,'rigrsure');%阈值
=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(,l ,'db4');
subplot(2,1,2);
plot(es);
save es.mat es
对强噪声背景信号,上面的程序好像效果很差,而一句wden却能够取到很好的效果,
但是wden好像又不允许我去修改阈值,真是麻烦啊,而且我只用了一个阈值,怎么样针对每一层都有个阈值呢,大家能另外写一个比我这个要好的小波消噪程序吗?

[ 本帖最后由 eight 于 2007-6-20 18:40 编辑 ]

bluedecember 发表于 2007-6-20 18:02

你是想实现如下的滤波么

es=wden(e,'rigrsure','s','sln',3,'db4');

yf2002043227 发表于 2007-6-24 11:05

wden在数据处理上应该比你的精确吧,有函数为什么自己编,找麻烦?:lol

happy 发表于 2007-6-24 20:18

wden函数可比你写的程序复杂多了

edit wden自己看一下wden代码吧

如果不能满足要求,可以自己对wden做改进

han_xiao_1985 发表于 2009-7-31 10:45

es=wden(e,'rigrsure','s','mln',3,'db4');

qqchun 发表于 2009-8-2 09:49

比较一下自己代码与wden代码,这本就是学习过程。
页: [1]
查看完整版本: 我的小波消噪源代码?怎么比不上一句话wden啊