li_1025tian 发表于 2008-11-12 15:47

小波阈值去噪

figure
plot(f)
wname='sym6';
lev=5;
=wavedec(f',lev,wname);
sigma=wnoisest(c,l,1)   %由第一层的高频系数估计噪声标准差
sigma=median(abs(sigma))/0.6745;%调整标准差
alpha=2;
thr=wbmpen(c,l,sigma,alpha);%采用调整参数选择全局阈值
keepapp=1;
xd=wdencmp('gbl',c,l,wname,lev,thr,'s',keepapp);   %使用软阈值和保存低频信号,进行信号消噪
figure
plot(xd)
但效果不是很好

li_1025tian 发表于 2008-11-12 15:50

截图00是f 信号. 我仔细看了,中间处的噪声是滤去一点.
有什么好方法,能把中间那噪声基本去除.
谢谢

yuanchili 发表于 2008-11-15 11:01

是不是把=wavedec(f',lev,wname);这一句的f 后的' 去掉呢?语法上没f'

我不知道你的f 是什么信号,请看看我调试的,如下:

load leleccum;
indx=1:1024;
x=leleccum(indx);
init=2055615866;
randn('seed',init);
f=x+18*randn(size(x));
wname='sym6';
lev=5;
=wavedec(f,lev,wname);
sigma=wnoisest(c,l,1)   
sigma=median(abs(sigma))/0.6745;
alpha=2;
thr=wbmpen(c,l,sigma,alpha);
keepapp=1;
xd=wdencmp('gbl',c,l,wname,lev,thr,'s',keepapp);
subplot(2,2,1);
plot(x);
title('yuanxinhao');
subplot(2,2,2);
plot(f);
title('hanzaoxinhao');
subplot(2,2,3);
plot(xd);
title('xiaozaohou');




我也刚学这个,多多指教!:@)

li_1025tian 发表于 2008-11-15 21:23

f'就是向量转置
怎么会有错啊.
我是说算法上的改进

zsqlp 发表于 2008-11-19 15:47

你在
thr=wbmpen(c,l,sigma,alpha);
之后加一句
thr=thr+0.04;
试一试

yuanchili 发表于 2008-11-19 22:48

本帖最后由 VibInfo 于 2016-10-20 16:34 编辑

原帖由 li_1025tian 于 2008-11-15 21:23 发表
f'就是向量转置
怎么会有错啊.
我是说算法上的改进


我的程序在f后面加了'后就出错了(如下)!!!能发你的f函数的M文件给我吗?讨论下,或者在wavemenu中慢慢调试.yuanchili@yahoo.com.cn



sigma =
   19.2505
??? Error using ==> unknown
Matrix dimensions must agree.
Error in ==> wbmpen at 57
= min(pen-rl2scr);
Error in ==> leleccum_denoise at 13
thr=wbmpen(c,l,sigma,alpha);

li_1025tian 发表于 2008-11-20 09:48

那应该是我们数据来源F本身不同而已.
就如我的F是1*100, 而你的F是100*1,当然你就不用F';而我的就必须要用

lincheng1984 发表于 2008-11-20 20:57

问下这个阈值确定的都是经验的?

makf04 发表于 2008-11-22 16:49

直接采用低通滤波器进行滤波处理即可!:handshake

mingmingtree 发表于 2012-4-6 20:09

学习中!

tamujin 发表于 2012-4-9 09:48

回复 9 # makf04 的帖子

请教一下低通滤波器进行滤波是怎么用的啊?
页: [1]
查看完整版本: 小波阈值去噪