// raw value : RED(=y) and IR(=X) // we need to assess DC and AC value of ir and red PPG. for (k=0 ; k<n_ir_buffer_length ; k++ ) { an_x[k] = pun_ir_buffer[k] ; an_y[k] = pun_red_buffer[k] ; } // find precise min near an_ir_valley_locs n_exact_ir_valley_locs_count =0; for(k=0 ; k<n_npks ;k++){ un_only_once =1; m=an_ir_valley_locs[k]; n_c_min= 16777216;//2^24; if (m+5 < BUFFER_SIZE-HAMMING_SIZE && m-5 >0){ for(i= m-5;i<m+5; i++) if (an_x[i]<n_c_min){ if (un_only_once >0){ un_only_once =0; } n_c_min= an_x[i] ; an_exact_ir_valley_locs[k]=i; } if (un_only_once ==0) n_exact_ir_valley_locs_count ++ ; } } if (n_exact_ir_valley_locs_count <2 ){ *pn_spo2 = -999 ; // do not use SPO2 since signal ratio is out of range *pch_spo2_valid = 0; return; }
时间: 2024-02-14 09:32:10 浏览: 251
SQL:第三章与Oracle服务器交互.ppt
这段代码是用于评估红外(IR)和红色(RED)PPG信号的直流(DC)和交流(AC)值。首先,它将IR和RED PPG数据存储在对应的数组中(an_x和an_y)。然后,它在IR谷点附近寻找精确的最小值,并将其位置存储在an_exact_ir_valley_locs数组中。最后,它检查找到的IR谷点数量是否大于等于2个,如果小于2个,则不使用SPO2值,并将*pn_spo2设置为-999,*pch_spo2_valid设置为0,并返回。
阅读全文