Issues and pull requests on this repository may not be acted on in a timely manner, or at all. You are of course welcome to use it anyway. You are even more welcome to fork it and maintain the results.
This module implements 1D noise reduction filters. There are currently two available:
-
median filter
-
rolling average with threshold
median(data, windowSize)
-
data
: An array of numbers. -
windowSize
: The size of the window over which the median is applied. Should be an odd number greater than one, defaults to3
.
var median = require('filters').median;
var raw = [ 2, 3, 4, 9, 6, 2 ];
console.log(median(raw));
// => [ 2, 3, 4, 6, 6, 2 ]
average(data, windowSize, threshold)
-
data
: An array of numbers. -
windowSize
: The size of the rolling average window. Should be two or greater, defaults to3
. -
threshold
: Maximum difference between two numbers for the average still to be applied. Use this to smooth out small variations but large varitions through immediately. The difference between /a/ and /b/ is calculated as /(max(a, b) - min(a, b)) / max(a, b)/. No default. -
skipNulls
: Whether to include null values in avergae calculations. Defaults to false.
var median = require('filters').average;
var raw = [ 2, 3, 4, 9, 6, 2 ];
console.log(average(raw, 3, 0.5));
// => [ 2, 2.5, 3, 9, 7.5, 2 ]
MIT