Home  |  About Us  |  Link To Us  |  FAQ  |  Contact

# Noise variance estimation 1.0

Date Added: September 03, 2013  |  Visits: 201

Suppose that you have a signal Y (Y can be a time series, a parametric surface or a volumetric data series) corrupted by a Gaussian noise with unknown variance. It is often of interest to know more about this variance. EVAR(Y) thus returns an estimated variance of the additive noise.EVAR provides better results if the original function (i.e. the function without noise) is relatively smooth i.e. has continuous derivatives up to some order. Several tests, however, showed that EVAR works well even with multiple discontinuities.Note: EVAR only works with evenly-gridded data in one and higher dimensions. See also ESTIMATENOISE (file #16683)Here are two examples:%-- Let us estimate the noise variance from a corrupt signal --% First create a time signalt = linspace(0,100,1e6);y = cos(t/10)+(t/50);% Make this signal corrupted by a Gaussian noise of variance 0.02var0 = 0.02; % noise varianceyn = y + sqrt(var0)*randn(size(y));% Now estimate the variance with EVAR and compare with the "true" valueevar(yn)%-- Let us estimate now the noise variance from volumetric data --% Create a volume array[x,y,z] = meshgrid(-2:.2:2,-2:.2:2,-2:.2:2);f = x.*exp(-x.^2-y.^2-z.^2);% Make these data corrupted by a Gaussian noise of variance 0.5var0 = 0.5; % noise variancefn = f + sqrt(var0)*randn(size(f));% Estimate the variance with EVAR and compare with the "true" valueevar(fn)------Several tests are also given in:http://www.biomecardio.com/matlab/evar.html-----

 Requirements: No special requirements Platforms: Matlab Keyword: Corrupt,  Create,  Estimate,  Estimatenoise,  Examples,  Linspace,  Multiple,  Works Users rating: 0/10