Test version

Committer:
a2824256
Date:
Tue Mar 20 02:09:21 2018 +0000
Revision:
0:4be500de690c
test

Who changed what in which revision?

UserRevisionLine numberNew contents of line
a2824256 0:4be500de690c 1 #ifndef ALGORITHM_H_
a2824256 0:4be500de690c 2 #define ALGORITHM_H_
a2824256 0:4be500de690c 3
a2824256 0:4be500de690c 4 #include "mbed.h"
a2824256 0:4be500de690c 5
a2824256 0:4be500de690c 6 #define true 1
a2824256 0:4be500de690c 7 #define false 0
a2824256 0:4be500de690c 8 #define FS 100
a2824256 0:4be500de690c 9 #define BUFFER_SIZE (FS* 5)
a2824256 0:4be500de690c 10 #define HR_FIFO_SIZE 7
a2824256 0:4be500de690c 11 #define MA4_SIZE 4 // DO NOT CHANGE
a2824256 0:4be500de690c 12 #define HAMMING_SIZE 5// DO NOT CHANGE
a2824256 0:4be500de690c 13 #define min(x,y) ((x) < (y) ? (x) : (y))
a2824256 0:4be500de690c 14
a2824256 0:4be500de690c 15 const uint16_t auw_hamm[31]={ 41, 276, 512, 276, 41 }; //Hamm= long16(512* hamming(5)');
a2824256 0:4be500de690c 16 //uch_spo2_table is computed as -45.060*ratioAverage* ratioAverage + 30.354 *ratioAverage + 94.845 ;
a2824256 0:4be500de690c 17 const uint8_t uch_spo2_table[184]={ 95, 95, 95, 96, 96, 96, 97, 97, 97, 97, 97, 98, 98, 98, 98, 98, 99, 99, 99, 99,
a2824256 0:4be500de690c 18 99, 99, 99, 99, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100,
a2824256 0:4be500de690c 19 100, 100, 100, 100, 99, 99, 99, 99, 99, 99, 99, 99, 98, 98, 98, 98, 98, 98, 97, 97,
a2824256 0:4be500de690c 20 97, 97, 96, 96, 96, 96, 95, 95, 95, 94, 94, 94, 93, 93, 93, 92, 92, 92, 91, 91,
a2824256 0:4be500de690c 21 90, 90, 89, 89, 89, 88, 88, 87, 87, 86, 86, 85, 85, 84, 84, 83, 82, 82, 81, 81,
a2824256 0:4be500de690c 22 80, 80, 79, 78, 78, 77, 76, 76, 75, 74, 74, 73, 72, 72, 71, 70, 69, 69, 68, 67,
a2824256 0:4be500de690c 23 66, 66, 65, 64, 63, 62, 62, 61, 60, 59, 58, 57, 56, 56, 55, 54, 53, 52, 51, 50,
a2824256 0:4be500de690c 24 49, 48, 47, 46, 45, 44, 43, 42, 41, 40, 39, 38, 37, 36, 35, 34, 33, 31, 30, 29,
a2824256 0:4be500de690c 25 28, 27, 26, 25, 23, 22, 21, 20, 19, 17, 16, 15, 14, 12, 11, 10, 9, 7, 6, 5,
a2824256 0:4be500de690c 26 3, 2, 1 } ;
a2824256 0:4be500de690c 27 static int32_t an_dx[ BUFFER_SIZE-MA4_SIZE]; // delta
a2824256 0:4be500de690c 28 static int32_t an_x[ BUFFER_SIZE]; //ir
a2824256 0:4be500de690c 29 static int32_t an_y[ BUFFER_SIZE]; //red
a2824256 0:4be500de690c 30
a2824256 0:4be500de690c 31
a2824256 0:4be500de690c 32 void maxim_heart_rate_and_oxygen_saturation(uint32_t *pun_ir_buffer , int32_t n_ir_buffer_length, uint32_t *pun_red_buffer , int32_t *pn_spo2, int8_t *pch_spo2_valid , int32_t *pn_heart_rate , int8_t *pch_hr_valid);
a2824256 0:4be500de690c 33 void maxim_find_peaks( int32_t *pn_locs, int32_t *pn_npks, int32_t *pn_x, int32_t n_size, int32_t n_min_height, int32_t n_min_distance, int32_t n_max_num );
a2824256 0:4be500de690c 34 void maxim_peaks_above_min_height( int32_t *pn_locs, int32_t *pn_npks, int32_t *pn_x, int32_t n_size, int32_t n_min_height );
a2824256 0:4be500de690c 35 void maxim_remove_close_peaks( int32_t *pn_locs, int32_t *pn_npks, int32_t *pn_x, int32_t n_min_distance );
a2824256 0:4be500de690c 36 void maxim_sort_ascend( int32_t *pn_x, int32_t n_size );
a2824256 0:4be500de690c 37 void maxim_sort_indices_descend( int32_t *pn_x, int32_t *pn_indx, int32_t n_size);
a2824256 0:4be500de690c 38
a2824256 0:4be500de690c 39 #endif