SVD of Noisy Data: error analysis and noise filtering (svde)
The singular value decomposition (SVD) can be used to decompose a time series of data into spatiotemporal modes. For noisy data, however, the higher SVD modes are corrupted. This corruption both (1) motivates the need for "error bars" on the SVD modes; and (2) suggests the possibility for noise filtering by retaining only the lower modes.
The svde function performs the SVD (using Matlab's built-in function, svd) and then performs error analysis to determine:
-- the root mean square error level in the given data;
-- the "error bars" (95% confidence intervals) of each SVD mode (singular value and vectors); and
-- the overall root mean square error (rmse) of each SVD mode.
These results are also used to filter the noise from the given data and form a reconstructed estimate of the underlying "clean data". Since the lower SVD modes are relatively clean, this reconstructed data set is formed using only the modes that have low enough rmse. This method yields the most-accurate-possible SVD-based reconstruction of the clean data. For examples, see the References listed below.
Syntax:
d = svde(M,varargin)
Inputs:
M = noisy data matrix
vargin = optional list of flags
Output:
d = data structure containing svde outputs
For discrete data, the proper orthogonal decomposition (POD) yields identical results as the SVD, so this code also applies to the POD of noisy data.
Cite As
Brenden Epps (2024). SVD of Noisy Data: error analysis and noise filtering (svde) (https://www.mathworks.com/matlabcentral/fileexchange/75242-svd-of-noisy-data-error-analysis-and-noise-filtering-svde), MATLAB Central File Exchange. Retrieved .
Brenden Epps and Eric Krivitzky (2019a) "Singular value decomposition of noisy data: mode corruption", Experiments in Fluids 60:121, https://doi.org/10.1007/s00348-019-2761-y
Brenden Epps and Eric Krivitzky (2019b) "Singular value decomposition of noisy data: noise filtering", Experiments in Fluids 60:126, https://doi.org/10.1007/s00348-019-2768-4
MATLAB Release Compatibility
Platform Compatibility
Windows macOS LinuxCategories
Tags
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!Discover Live Editor
Create scripts with code, output, and formatted text in a single executable document.