spacial median filter rejecting abnormal signals.

Dependents:   medianFilterTest WIPV

Committer:
adam_z
Date:
Fri Apr 22 13:40:21 2016 +0000
Revision:
0:4487376ead1c
Child:
1:a46f56a22432
moving median filter specified with window size.

Who changed what in which revision?

UserRevisionLine numberNew contents of line
adam_z 0:4487376ead1c 1 #include "mbed.h"
adam_z 0:4487376ead1c 2 #include <algorithm>
adam_z 0:4487376ead1c 3 #include "MEDIAN_FILTER.h"
adam_z 0:4487376ead1c 4
adam_z 0:4487376ead1c 5
adam_z 0:4487376ead1c 6 medianFilter::medianFilter(int windowSize):windowSize_(windowSize)
adam_z 0:4487376ead1c 7 {
adam_z 0:4487376ead1c 8
adam_z 0:4487376ead1c 9 }
adam_z 0:4487376ead1c 10 float medianFilter::medianValue(float data)
adam_z 0:4487376ead1c 11 {
adam_z 0:4487376ead1c 12 int i;
adam_z 0:4487376ead1c 13 for(i=0; i<windowSize_-1; i++) {
adam_z 0:4487376ead1c 14 array[i] = array[i+1];
adam_z 0:4487376ead1c 15 }
adam_z 0:4487376ead1c 16 array[windowSize_-1] = data;
adam_z 0:4487376ead1c 17
adam_z 0:4487376ead1c 18 int j=0;
adam_z 0:4487376ead1c 19 float x[windowSize_];
adam_z 0:4487376ead1c 20 for(j=0;j<windowSize_;j++) x[j] = array[j];
adam_z 0:4487376ead1c 21 sort(x, x + windowSize_ - 1);
adam_z 0:4487376ead1c 22
adam_z 0:4487376ead1c 23 return(x[windowSize_/2]); // return median value
adam_z 0:4487376ead1c 24
adam_z 0:4487376ead1c 25 }