Skip to content
Snippets Groups Projects
Commit 01d376bb authored by Raymond Chia's avatar Raymond Chia
Browse files

bvp implementation

parent 91484012
No related merge requests found
3 deleted 100644 → 0
This diff is collapsed.
No preview for this file type
......@@ -2,7 +2,7 @@ DEBUG = False
BR_FS = 18
ACC_FS = 100
IMU_FS = 120
PPG_FS = 100
PPG_FS = 64
ACC_THOLD = 10
WIN_THOLD = 0.03
......
No preview for this file type
No preview for this file type
No preview for this file type
......@@ -17,7 +17,7 @@ from skimage.feature import corner_harris, corner_shi_tomasi, peak_local_max
from ssqueezepy import cwt as sqz_cwt
from config import WIN_THOLD, WINDOW_SIZE, WINDOW_SHIFT, MQA_THOLD, ACC_THOLD
from config import ACC_FS, IMU_FS, FS_RESAMPLE, BR_FS
from config import ACC_FS, IMU_FS, FS_RESAMPLE, BR_FS, PPG_FS
from config import MIN_RESP_RATE, MAX_RESP_RATE
def butter_lowpass(lowcut, fs, order=5):
......@@ -223,7 +223,7 @@ def acc_signal_processing(data, fs:int=100):
# ma = accel - movingaverage(accel, 3)
data_sd = td_scaler(accel, axis=0)
data_sd = std_scaler(accel, axis=0)
# data_sd = attenuate_edges(data_sd, 20)
# mask = np.abs(data_sd) > thold
......@@ -258,6 +258,14 @@ def imu_signal_processing(data, fs:int=IMU_FS):
ma = movingaverage(bp, 8, axis=0)
return ma
def bvp_signal_processing(data, fs:int=PPG_FS):
# TODO
bp = butter_bandpass_filter(data,
45/60,
150/60, fs=fs, order=2)
ma = movingaverage(bp, 4, axis=0)
return ma
def roddiger_sp(data=None, fs:int=IMU_FS):
''' Run data through the following steps:
* Second order taylor estimation
......
......@@ -146,7 +146,7 @@ def get_inter_feature_hist(df, lbl_str='br', ntop_features=5, nsbjs=30):
def model_training(mdl_str, x_train, y_train, marker,
validation_data=None, overwrite=False,
is_regression=False, project_directory=None,
window_size=50, extra_train=20):
window_size=50, extra_train=20, poly_deg=1):
directory = join(project_directory, '_'.join([mdl_str, marker]))
if validation_data is not None:
......@@ -258,11 +258,9 @@ def model_training(mdl_str, x_train, y_train, marker,
if validation_data is None:
tuner.search(x_train, y_train, validation_data,
validation_split=0.2,
batch_size=hypermodel.batch_size)
validation_split=0.2)
else:
tuner.search(x_train, y_train, validation_data,
batch_size=hypermodel.batch_size)
tuner.search(x_train, y_train, validation_data)
if overwrite or not exists(tuner.best_model_path+'.index'):
mdl = tuner.load_model(is_training=True)
......@@ -272,7 +270,6 @@ def model_training(mdl_str, x_train, y_train, marker,
history = hypermodel.fit(
None, mdl, x_train, y_train,
validation_data=validation_data, epochs=extra_train,
batch_size=hypermodel.batch_size,
callbacks=callbacks,
)
tuner.save_weights_to_path()
......@@ -296,7 +293,7 @@ def model_training(mdl_str, x_train, y_train, marker,
elif mdl_str == 'linreg':
print("---LinearRegression---")
# n to 2 if full set, 1 if M and R
poly = PolynomialFeatures(1)
poly = PolynomialFeatures(poly_deg)
x_train_poly = poly.fit_transform(x_train)
mdl_cls = LinearRegressionClass(marker=marker, directory=directory)
if overwrite:
......
This diff is collapsed.
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment