HRV -> Mood

Dependencies:   MAX30101 Hexi_KW40Z Hexi_OLED_SSD1351

Revision:
5:a6b6d0e5a69f
Parent:
4:94190624967a
Child:
6:ff1c3560db84
--- a/8cee5929f4d8/main.cpp	Sat Mar 16 03:37:33 2019 +0000
+++ b/8cee5929f4d8/main.cpp	Sat Mar 16 03:46:22 2019 +0000
@@ -260,6 +260,36 @@
     for(i = 0; i < num_samples; i++) {
         ppg[i] = ppg[i] - movave[i];
     }
+    
+    // smoothing curve
+    for(i = 1; i < num_samples; i++) {
+        ppg[i] = ppg[i] + ppg[i-1];
+    }
+    
+    // AMPD Algorithm
+    const int kcap = 25;
+    int m[kcap][num_samples];
+    for(int k = 0; k < kcap; k++) {
+        for(i = 1; i < num_samples; i++) {
+            if(i-1 < 0 || i-k-1 < 0 || i+k-1 >= num_samples)
+                m[k][i] = 0;
+            else if(ppg[i-1] > ppg[i-k-1] && ppg[i-1] > ppg[i+k-1])
+                m[k][i] = 1;
+            else
+                m[k][i] = 0;
+        }
+    }
+    int max_mult[num_samples];
+    for(i = 0; i < num_samples; i++) { // max_mult = m(1,:)';
+        max_mult[i] = m[0][i];
+    }
+    for(int k = 1; k < kcap; k++) {
+        for(i = 0; i < num_samples; i++) {
+            max_mult[i] = max_mult[i]*m[k][i];
+        }
+    }
+    
+    
 }
 
 // main() runs in its own thread in the OS