Ejemplo n.º 1
0
            # filtered_eda = eda_features.filterEDA(eda)
            # filtered_ppg = ppg_features.filterPPG(ppg)
            #
            # eda_final = pd.DataFrame({"time": time, "eda": filtered_eda})
            # ppg_final = pd.DataFrame({"time": time, "ppg": filtered_ppg})
            #
            # eda_final.to_csv(subject + gsr_file +"filtered_eda.csv", index=False)
            # ppg_final.to_csv(subject + gsr_file +"filtered_ppg.csv", index=False)

            # filter ECG and Resp
            ecg_resp = pd.read_csv(glob.glob(subject + resp_file + "*.csv")[0],
                                   header=[0, 1])

            time = ecg_resp.iloc[:, 0].values
            ecg = ecg_resp.iloc[:, 8].values
            resp = ecg_resp.iloc[:, 9].values

            filtered_ecg_resp = ecg_features.waveDriftFilter(
                ecg_features.filterECG(ecg), n=9)
            filtered_resp = resp_features.filterResp(resp)

            ecg_final = pd.DataFrame({"time": time, "ecg": filtered_ecg_resp})
            resp_final = pd.DataFrame({"time": time, "resp": filtered_resp})

            ecg_final.to_csv(subject + resp_file + "filtered_ecg_resp.csv",
                             index=False)
            resp_final.to_csv(subject + resp_file + "filtered_resp.csv",
                              index=False)
        except:
            print("Error: " + subject)
Ejemplo n.º 2
0
time_start = np.min(ecg_road_data["timestamp"].values)
time_end = np.max(ecg_road_data["timestamp"].values)
tdelta = time_end - time_start

#features extractor
featuresExct = ECGFeatures(200)

#road test features
road_test_features = []
for j in np.arange(0, (tdelta // SPLIT_TIME), 0.2):
    end = time_end - ((j) * SPLIT_TIME)
    start = time_end - ((j + 1) * SPLIT_TIME) - EXTENTION_TIME

    ecg = ecg_road_data[(ecg_road_data["timestamp"].values >= start)
                        & (ecg_road_data["timestamp"].values <= end)]
    ecg_values = featuresExct.filterECG(ecg['ecg'].values)
    ecg_values = signal.resample(ecg_values,
                                 int((len(ecg_values) / FS_ECG) * 200))

    time_domain = featuresExct.extractTimeDomain(ecg_values)
    freq_domain = featuresExct.extractFrequencyDomain(ecg_values)
    nonlinear_domain = featuresExct.extractNonLinearDomain(ecg_values)
    if time_domain.shape[0] != 0 and freq_domain.shape[
            0] != 0 and nonlinear_domain.shape[0] != 0:
        concatenate_features = np.concatenate(
            [time_domain, freq_domain, nonlinear_domain])
        road_test_features.append(concatenate_features)

road_test_features = np.concatenate([road_test_features])

# concatenate features and normalize them