from global_var import global_var_init cycle, fs, record_name, data_path = global_var_init() 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 ecg_peaks_val import ecg_peaks_val (P_peaks, Q_peaks, R_peaks, S_peaks, T_peaks, P_onsets, P_offsets, T_onsets, T_offsets, P_peaks_values, Q_peaks_values, R_peaks_values, S_peaks_values, T_peaks_values, P_onsets_values, P_offsets_values, T_onsets_values, T_offsets_values, PQ_baseline) = ecg_peaks_val() def compute_interval(): # 创建一个字典来存储所有的特征点 features = { "P_onset": P_onsets, "P": P_peaks, "P_offset": P_offsets, "Q": Q_peaks, "R": R_peaks, "S": S_peaks, "T_onset": T_onsets, "T": T_peaks, "T_offset": T_offsets } # 遍历 features 字典并打印每个键对应的时间序列长度(用于测试) for label, times in features.items(): print(f"{label}: {len(times)}") intervals_ecg = {} for start_label, start_val in features.items(): for end_label, end_val in features.items(): if start_label != end_label: diffs = [abs(end_val - start_val) for start_val, end_val in zip(start_val, end_val)] intervals_ecg[f"{start_label}-{end_label}"] = diffs # 单独计算P_onset-P_offset/T_onset-T_offset ratio_pp_tt = [p / t for p, t in zip(intervals_ecg['P_onset-P_offset'], intervals_ecg['T_onset-T_offset'])] # 输出间隔时间 # for key, value in intervals_ecg.items(): # print(f"{key} 的间隔时间:", value) # print("P_onset-P_offset/T_onset-T_offset的间隔时间:", ratio_pp_tt) return intervals_ecg, ratio_pp_tt if __name__ == "__main__": compute_interval()