提供sym8小波,四层全局软阈值滤波源代码,采用Matlab语言编写,可移植性强。
源代码
clear;clc;
load leleccum;
indx = 1:3450;
noisez = leleccum(indx);
wname = 'sym8';
lev = 4;
[c,l] = wavedec(noisez,lev,wname);
[Lo_D,Hi_D,Lo_R,Hi_R] = wfilters(wname);
% threshold value
sigma = wnoisest(c,l,1);%使用库函数wnoisest提取第一层的细节系数来估算噪声的标准偏差
N = numel(noisez);%整个信号的长度
thr = sigma*sqrt(2*log(N));%最终阈值
%全局阈值处理
keepapp = 1;%近似系数不作处理
denoisexs = wdencmp('gbl',c,l,wname,lev,thr,'s',keepapp);
denoisexh = wdencmp('gbl',c,l,wname,lev,thr,'h',keepapp);
sigOut1 = WDEN(noisez, N);