The SPIKE FILTER uses a sample-comparison algorithm to attempt to find and remove 'spikes' as data are acquired. 'Spikes' are single-point (i.e., one sample) aberrant readings that may represent electrical noise or some other instrumentation fault instead of real data.
The spike filter compares the current data value for a given channel with the previous value for that channel. If the current value is sufficiently different from the previous value, it is resampled (resampled twice if you select the 'use double filtration' option), and the two 'new' samples are compared with the previous sample to determine which is aberrant. Obviously it can't function for the first few data points in a recording (since it doesn't have any previous values for comparison).|
The 'difference' between current and previous readings is computed as a ratio, or fold-difference factor (e.g., 2X larger or smaller than previous data). A ratio of 1.1 means that a reading 10% or more different from the mean of the two previous values is interpreted as a spike. You can set the fold-factor in the edit field; only positive values greater than 1.0 are acceptable. Larger fold-factors increase the factorial change between successive readings that will be accepted as valid data. After recording is stopped, a report of the number of spikes removed is shown via the 'OPTIONS' window.
The spike filter tests raw input values (voltage, resistance, etc.), not the final values after conversion factors have been applied.
Spike filtration is a compromise between sampling speed and spike discrimination ability. The 'use double filtration' option will improve the algorithm's ability to find and discard spikes, but can slow sampling when sample rates are high.
The fold-factor should be determined from the noise level in the system and the necessary accuracy and speed.
The spike filter is not perfect and may sometimes reject valid data, especially when input data approach zero. Therefore it should be used with care, and only for data containing considerable noise. Note that the spike filter does not function for data read as text from a serial-stream input.