Noise variance estimation
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
evar(yn)
%-- 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
evar(fn)
-----
Reference:
Garcia D. Robust smoothing of gridded data in one and higher dimensions with missing values.
Comput Statist Data Anal, 2010;54:1167-1178
http://www.biomecardio.com/publis/csda10.pdf
------
Several examples are also given in:
http://www.biomecardio.com/matlab/evar_doc.html
-----
Citation pour cette source
Damien Garcia (2024). Noise variance estimation (https://www.mathworks.com/matlabcentral/fileexchange/25645-noise-variance-estimation), MATLAB Central File Exchange. Extrait(e) le .
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.
Compatibilité avec les versions de MATLAB
Plateformes compatibles
Windows macOS LinuxCatégories
- Signal Processing > Signal Processing Toolbox > Signal Generation and Preprocessing > Smoothing and Denoising >
Tags
Remerciements
Inspiré par : Estimatenoise
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!Découvrir Live Editor
Créez des scripts avec du code, des résultats et du texte formaté dans un même document exécutable.
Version | Publié le | Notes de version | |
---|---|---|---|
1.6.1 | "narginchk" has been included |
||
1.6.0.0 | updated links + nested function DCTN |
||
1.5.0.0 | DCTN function is now included in EVAR |
||
1.4.0.0 | A minor improvement |
||
1.3.0.0 | The upper and lower bounds for FMINBND are calculated according to the tensor rank of the input array |
||
1.2.0.0 | optimset options have been modified |
||
1.1.0.0 | A better description |
||
1.0.0.0 |