File Exchange

image thumbnail

Noise variance estimation

version 1.6.1 (2.62 KB) by Damien Garcia
EVAR estimates the noise variance from 1-D to N-D data


Updated 20 Jun 2020

View Version History

View License

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 very well even with multiple discontinuities.

Note: EVAR only works with evenly-gridded data in one and higher dimensions.

Here are two examples:

%-- Let us estimate the noise variance from a corrupt signal --
% First create a time signal
t = linspace(0,100,1e6);
y = cos(t/10)+(t/50);
% Make this signal corrupted by a Gaussian noise of variance 0.02
var0 = 0.02; % noise variance
yn = y + sqrt(var0)*randn(size(y));
% Now estimate the variance with EVAR and compare with the "true" value

%-- Now, let us estimate 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.5
var0 = 0.5; % noise variance
fn = f + sqrt(var0)*randn(size(f));
% Estimate the variance with EVAR and compare with the "true" value

Garcia D. Robust smoothing of gridded data in one and higher dimensions with missing values.
Comput Statist Data Anal, 2010;54:1167-1178
Several examples are also given in:

Cite As

Damien Garcia (2021). Noise variance estimation (, MATLAB Central File Exchange. Retrieved .

Garcia, Damien. “Robust Smoothing of Gridded Data in One and Higher Dimensions with Missing Values.” Computational Statistics & Data Analysis, vol. 54, no. 4, Elsevier BV, Apr. 2010, pp. 1167–78, doi:10.1016/j.csda.2009.09.020.

View more styles

Comments and Ratings (4)

Yunwei Tao



I just downloaded the file and port it to work with Octave.
But noise variance is half the true variance.
Any idea about modifications (not multiply by 2 ;) ) to be closer the true noise variance ?


John D'Errico

MATLAB Release Compatibility
Created with R2010a
Compatible with any release
Platform Compatibility
Windows macOS Linux

Inspired by: Estimatenoise

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!