Research Article
Development and Validation of a Spike Detection and Classification Algorithm Aimed at Implementation on Hardware Devices
Algorithm 1
Pseudocode for AdaBandFlt and Limada.
| AdaBandFlt | | number_of_samples=0; | | number_of_windows=0; | | F; // definition of sample frequency // | | while number_of_windows 100 do O( ) | | while number_of_samples F*0.01 // define a 10 ms window // O(F* ) | | take a sample | | number_of_samples ← number_of_samples 1; | | end | | compute the RMS and put it in a vector named “error” O( ) | | number_of_windows ← number_of_windows 1; | | end | | BubbleSort(error) // sort the vector of 100 RMS // O( 2) | | define the threshold initial value (25th percentile) O( ) | | | | Limada | | number_of_samples=0; | | number_of_windows=0; | | threshold_init=0; | | F; // definition of sample frequency // | | ok=false; | | while ok == false do //ok is false until 100 clean windows are collected // O( ) | | while number_of_samples F*0.01 // define a 10 ms window // O(F* ) | | take a sample | | number_of_samples ← number_of_samples 1; | | end | | BubbleSort(samples) //sort the voltage values of a window // O( 2) | | compute the 2nd (V .02) and the 30th (V .30) percentiles O( ) | | if number_of_windows 100 O( ) | | test= V .02/V .30; O( ) | | if test 5 & is significantly non zero O( ) | | threshold_init ← 0.99* threshold_init 0.01* | | number_of_windows ← number_of_windows 1; | | end | | else ok==true; // 100 clean windows are collected // | | end | | end |
|