小波阈值去噪
figureplot(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)
但效果不是很好 截图00是f 信号. 我仔细看了,中间处的噪声是滤去一点.
有什么好方法,能把中间那噪声基本去除.
谢谢 是不是把=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');
我也刚学这个,多多指教!:@) f'就是向量转置
怎么会有错啊.
我是说算法上的改进 你在
thr=wbmpen(c,l,sigma,alpha);
之后加一句
thr=thr+0.04;
试一试 本帖最后由 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); 那应该是我们数据来源F本身不同而已.
就如我的F是1*100, 而你的F是100*1,当然你就不用F';而我的就必须要用 问下这个阈值确定的都是经验的? 直接采用低通滤波器进行滤波处理即可!:handshake 学习中! 回复 9 # makf04 的帖子
请教一下低通滤波器进行滤波是怎么用的啊?
页:
[1]