61 lines
		
	
	
		
			2.3 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
			
		
		
	
	
			61 lines
		
	
	
		
			2.3 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
| 
 | ||
| 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() |