|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?我要加入
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 编辑 ] |
|