from processing import processing (signal_dwt , waves_dwt , rpeaks , ecg_signal, signal, signal.v, signal.fs, rows_to_extract, t_ecg, t_ppg, on_column_list, on_column_list_toArea, on_values, on_values_toArea, sp_column_list, sp_values, dn_column_list, dn_values, dp_column_list, dp_values, u_column_list, u_column_list_toArea, u_values, u_values_toArea, v_column_list, v_values, w_column_list, w_values, a_column_list, a_column_list_toArea, a_values, a_values_toArea, b_column_list, b_values, c_column_list, c_values, e_column_list, e_values, f_column_list, f_values, signal.ppg, signal.vpg, signal.apg, signal.jpg) = processing() from ppg_peaks_val import ppg_peaks_val (on, on_toArea, sp, dn, dp, on_values, on_toArea_values, sp_values, dn_values, dp_values, u, u_toArea, v, w, u_values, u_toArea_values, v_values, w_values, a, a_toArea, b, c, e, f, a_values, a_toArea_values, b_values, c_values, e_values, f_values) = ppg_peaks_val() from ppg_time_interval import ppg_time_interval differences_ppg = ppg_time_interval() def ppg_ratio(): features_ppg_2 = { # 将纵坐标值放入字典中 "on": on_values, "sp": sp_values, "dn": dn_values, "dp": dp_values, "u": u_values, "v": v_values, "w": w_values, "a": a_values, "b": b_values, "c": c_values, "e": e_values, "f": f_values, } features_ppg_3 = { "on-sp": differences_ppg["on-sp"], "on-dn": differences_ppg["on-dn"], "on-dp": differences_ppg["on-dp"], "on-u": differences_ppg["on-u"], "on-v": differences_ppg["on-v"], "on-w": differences_ppg["on-w"], "on-a": differences_ppg["on-a"], "on-b": differences_ppg["on-b"], "on-c": differences_ppg["on-c"], "on-e": differences_ppg["on-e"], "on-f": differences_ppg["on-f"], "sp-dn": differences_ppg["sp-dn"], "sp-dp": differences_ppg["sp-dp"], "sp-u": differences_ppg["sp-u"], "sp-v": differences_ppg["sp-v"], "sp-w": differences_ppg["sp-w"], "sp-a": differences_ppg["sp-a"], "sp-b": differences_ppg["sp-b"], "sp-c": differences_ppg["sp-c"], "sp-e": differences_ppg["sp-e"], "sp-f": differences_ppg["sp-f"], "dn-dp": differences_ppg["dn-dp"], "dn-u": differences_ppg["dn-u"], "dn-v": differences_ppg["dn-v"], "dn-w": differences_ppg["dn-w"], "dn-a": differences_ppg["dn-a"], "dn-b": differences_ppg["dn-b"], "dn-c": differences_ppg["dn-c"], "dn-e": differences_ppg["dn-e"], "dn-f": differences_ppg["dn-f"], "dp-u": differences_ppg["dp-u"], "dp-v": differences_ppg["dp-v"], "dp-w": differences_ppg["dp-w"], "dp-a": differences_ppg["dp-a"], "dp-b": differences_ppg["dp-b"], "dp-c": differences_ppg["dp-c"], "dp-e": differences_ppg["dp-e"], "dp-f": differences_ppg["dp-f"], "u-v": differences_ppg["u-v"], "u-w": differences_ppg["u-w"], "u-a": differences_ppg["u-a"], "u-b": differences_ppg["u-b"], "u-c": differences_ppg["u-c"], "u-e": differences_ppg["u-e"], "u-f": differences_ppg["u-f"], "v-w": differences_ppg["v-w"], "v-a": differences_ppg["v-a"], "v-b": differences_ppg["v-b"], "v-c": differences_ppg["v-c"], "v-e": differences_ppg["v-e"], "v-f": differences_ppg["v-f"], "w-a": differences_ppg["w-a"], "w-b": differences_ppg["w-b"], "w-c": differences_ppg["w-c"], "w-e": differences_ppg["w-e"], "w-f": differences_ppg["w-f"], "a-b": differences_ppg["a-b"], "a-c": differences_ppg["a-c"], "a-e": differences_ppg["a-e"], "a-f": differences_ppg["a-f"], "b-c": differences_ppg["b-c"], "b-e": differences_ppg["b-e"], "b-f": differences_ppg["b-f"], "c-e": differences_ppg["c-e"], "c-f": differences_ppg["c-f"], "e-f": differences_ppg["e-f"], } ratios_ppg_2 = {} for start_label, start_values in features_ppg_2.items(): for end_label, end_values in features_ppg_2.items(): if start_label != end_label: ratio_label = f"{start_label}/{end_label}" # 计算对应位置的比值 ratios = [start_val / end_val for start_val, end_val in zip(start_values, end_values)] # ratios = [end_val / start_val if start_val != 0 else 0 # 或其他默认值 # for start_val, end_val in zip(start_values, end_values)] ratios_ppg_2[ratio_label] = ratios # # 输出间隔 # for key, value in ratios_ppg_2.items(): # print(f" {key}: {value}") ratios_ppg_3 = {} for start_label, start_values in features_ppg_3.items(): for end_label, end_values in features_ppg_3.items(): if start_label != end_label: ratio_label = f"{start_label}/{end_label}" # 计算对应位置的比值,分母为零时用上一个有效比值替代 ratios = [] last_valid_ratio = None # 用于存储上一个有效的比值 for start_val, end_val in zip(start_values, end_values): if end_val != 0: # 如果分母不为零,计算当前比值 current_ratio = start_val / end_val ratios.append(current_ratio) last_valid_ratio = current_ratio # 更新上一个有效比值 else: # 如果分母为零,使用上一个有效比值 if last_valid_ratio is not None: ratios.append(last_valid_ratio) ratios_ppg_3[ratio_label] = ratios # # 输出间隔 # for key, value in ratios_ppg_3.items(): # print(f" {key}: {value}") return ratios_ppg_2, ratios_ppg_3 if __name__ == "__main__": ppg_ratio()