www.gusucode.com > 给出小波去噪的理论,在MATLAB中实现阈值估算和消噪的函数,并给出例子说明 > code8/signal_denoising2.m
load leleccum; indx = 1:1024; x = leleccum(indx); % 产生含噪信号 init=2055615866; randn('seed',init); nx = x + 18*randn(size(x)); %用小波函数 'db6'对信号进行3层分解 [c,l] = wavedec(nx,3, 'db6'); %估计尺度1的噪声标准偏差 sigma = wnoisest(c,l,1); alpha = 2; %获取消噪过程中的阀值 thr = wbmpen(c,l,sigma,alpha) ; keepapp = 1; %对信号进行消噪 xd = wdencmp('gbl',c,l,'db6',3,thr,'s',keepapp); subplot(2,2,1); plot(x); title('原始信号'); subplot(2,2,2); plot(nx); title('含噪信号'); subplot(2,2,3) plot(xd); title('消噪后的信号');