Wavelet Toolbox  wnoisest

Estimate noise of 1-D wavelet coefficients

Syntax

• STDC = wnoisest(C,L,S)

Description

STDC = wnoisest(C,L,S) returns estimates of the detail coefficients' standard deviation for levels contained in the input vector S. [C,L] is the input wavelet decomposition structure (see wavedec for more information).

If C is a one dimensional cell array, STDC = wnoisest(C) returns a vector such that STDC(k) is an estimate of the standard deviation of C{k}.

If C is a numeric array, STDC = wnoisest(C) returns a vector such that STDC(k) is an estimate of the standard deviation of C(k,:).

The estimator used is Median Absolute Deviation / 0.6745, well suited for zero mean Gaussian white noise in the de-noising one-dimensional model (see thselect for more information).

Examples

• % The current extension mode is zero-padding (see dwtmode).

% Generate Gaussian white noise.
init = 2055415866; randn('seed',init);
x = randn(1,1000);

% Decompose x at level 2 using db3 wavelet.
[c,l] = wavedec(x,2,'db3');

% Estimate standard deviation of coefficients
% at each level 1 and 2.
% Since x is a Gaussian white noise with unit
% variance, estimates must be close to 1.
wnoisest(c,l,1:2)

ans =
1.0111 1.0763

% Now suppose that x contains 10 outliers.
ind = 50:50:500;
x(ind) = 100 * ones(size(ind));

% Decompose x at level 1 using db3 wavelet.
[ca,cd] = dwt(x,'db3');

% Ordinary estimate of cd standard deviation
% overestimates noise level.
std(cd)

ans =
8.0206

% Robust estimate of cd standard deviation
% remains close to 1 the noise level.
median(abs(cd))/0.6745

ans =
1.0540

Limitations

This procedure is well suited for Gaussian white noise. wnoise wp2wtree 