Switch to side-by-side view

--- a
+++ b/OMNI_OpenBCI_Pi_Inference/utils.py
@@ -0,0 +1,43 @@
+import numpy as np
+import scipy.signal
+import scipy.io
+import pickle
+from glob import glob
+import os
+from tqdm import tqdm
+import pandas as pd
+from sklearn.preprocessing import StandardScaler
+
+import torch
+from torch.utils.data import TensorDataset,DataLoader
+from torch.autograd import Variable
+
+def custom_resample(ECG,fs):
+    modified_ECG = []
+    for i in range(int(len(ECG) * 500/fs)):
+        modified_ECG.append(ECG[int(fs/500*i)].astype(float))
+    return modified_ECG
+
+def peak_correction(peak_locs,ecg_records):
+    
+    mod_peak_locs = []
+    ecg_records = ecg_records.cpu().numpy()
+    for j in range(len(peak_locs)): 
+        mod_peak_locs.append(np.asarray([peak_locs[j][i] - 37 + np.argmax(ecg_records[j,0,peak_locs[j][i]-37:peak_locs[j][i]+37]) for i in range(len(peak_locs[j])) if(peak_locs[j][i]>37 and peak_locs[j][i]<5000-37)]))
+    return mod_peak_locs
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              
+def peak_finder(y_pred_array,x_test):
+   
+    fs_ = 500 
+    peak_locs = []
+    for i in range(y_pred_array.shape[0]):
+        peak_locs.append(scipy.signal.find_peaks(-y_pred_array[i,:],distance = 120,height = -0.4, prominence = 0.035)[0])
+        peak_locs[i] = peak_locs[i][(peak_locs[i] >= 0.5*fs_) & (peak_locs[i] <= 9.5*fs_)]
+    modified_peak_locs = peak_correction(peak_locs,x_test)
+    return modified_peak_locs
+
+def compute_heart_rate(r_peaks):
+    fs_ = 500
+    r_peaks = r_peaks[(r_peaks >= 0.5*fs_) & (r_peaks <= 9.5*fs_)]
+    return round( 60 * fs_ / np.mean(np.diff(r_peaks)))
+