spikeRemoval

This function replace or delete unwanted spikes (outliers) exceeding the threshold value using histogram method.
653 Downloads
Updated 20 Mar 2019

View License

DESPIKING DISCRETE-TIME SIGNAL USING HISTOGRAM METHOD

Time series may contain undesired transients and spikes. This function replace spikes (outliers) exceeding the threshold value by interpolating among previous and subsequent data points or replacement them with NaN per user choice. The threshold is defined as mean +/- a number of standard deviations of windowed data centered at spike locations. This code uses the histogram method of Solomon et al. (2001) to detect spikes.

Examples are given in the comment section. The debug option when it is "True" compares results of this function with MatLAB's 1-D median filtering (medianfilt1) function.

For questions, comments and suggestions: kalkan76@gmail.com

Reference:

Solomon, O. M., D. R. Larson, and N. G. Paulter (2001). Comparison of some algorithms to estimate the low and high state level of pulses, IEEE Instrumentation and Measurement Technology Conference, Vol. 1, Budapest, Hungary, 21–23 May 2001, 96–101.

Cite As

Dr. Erol Kalkan, P.E. (2024). spikeRemoval (https://www.mathworks.com/matlabcentral/fileexchange/69614-spikeremoval), MATLAB Central File Exchange. Retrieved .

MATLAB Release Compatibility
Created with R2018b
Compatible with any release
Platform Compatibility
Windows macOS Linux
Categories
Find more on Histograms in Help Center and MATLAB Answers

Community Treasure Hunt

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

Start Hunting!
Version Published Release Notes
2.1.0

Updated references

2.0.9

Replaced diff with nth order central difference function.
Updated notes

2.0.8

Updated notes

2.0.7

Updated notes

2.0.6

Added return -1 if no spike found

2.0.5

Added output array for indices of spikes, their values and replacements (thanks to Dr. Ayal Anis)
Added "delete" option to "method" to replace spikes (outliers) with "NaN" (thanks to Dr. Ayal Anis)
Added nanmean and nanstd (thanks to Jan Glscher)

2.0.4

Comments are updated

2.0.3

Excluded spike in spike search window for mean and standard deviation computation; bug fix for spike search in the beginning and end regions of the input array.

2.0.2

Modified comments

2.0.1

Reference added, description updated

2.0.0

Code re-organized to eliminate the wrapper.
"varargin" was added to give flexibility.
All global variables were removed.

1.0.0