98 lines
		
	
	
		
			4.1 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
			
		
		
	
	
			98 lines
		
	
	
		
			4.1 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
| import statistics
 | |
| 
 | |
| 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_clean_nan import ecg_clean_nan 
 | |
| (waves_dwt['ECG_P_Onsets'],waves_dwt['ECG_P_Offsets'],waves_dwt['ECG_T_Onsets'],
 | |
|  waves_dwt['ECG_T_Offsets'],waves_dwt['ECG_P_Peaks'] ,waves_dwt['ECG_Q_Peaks'],
 | |
|  rpeaks['ECG_R_Peaks'],waves_dwt['ECG_S_Peaks'],waves_dwt['ECG_T_Peaks']) = ecg_clean_nan()
 | |
| 
 | |
| 
 | |
| directory=f"D://python_study//big_boss//doc//points_coordinates_update//{record_name}//ECG//"
 | |
| data_ECG = {
 | |
|     'ECG_P_Onsets': waves_dwt['ECG_P_Onsets'],
 | |
|     'ECG_P_Offsets': waves_dwt['ECG_P_Offsets'],
 | |
|     'ECG_T_Onsets': waves_dwt['ECG_T_Onsets'],
 | |
|     'ECG_T_Offsets': waves_dwt['ECG_T_Offsets'],
 | |
|     'ECG_P_Peaks': waves_dwt['ECG_P_Peaks'],
 | |
|     'ECG_Q_Peaks': waves_dwt['ECG_Q_Peaks'],
 | |
|     'ECG_R_Peaks': rpeaks['ECG_R_Peaks'],
 | |
|     'ECG_S_Peaks': waves_dwt['ECG_S_Peaks'],
 | |
|     'ECG_T_Peaks': waves_dwt['ECG_T_Peaks']
 | |
|     
 | |
| }
 | |
| 
 | |
| from txt_update import update_dict_from_files
 | |
| data_update_ECG = update_dict_from_files(data_ECG, directory)
 | |
| 
 | |
| #--------------------------------------------------------------------------------------------------------
 | |
| #--------------------------------------------------------------------------------------------------------
 | |
| #--------------------------------------------------------------------------------------------------------
 | |
| #--------------------------------------------------------------------------------------------------------
 | |
| #------------------------              得到点的横纵坐标及基线          ------------------------------------
 | |
| #--------------------------------------------------------------------------------------------------------
 | |
| #--------------------------------------------------------------------------------------------------------
 | |
| #--------------------------------------------------------------------------------------------------------
 | |
| #--------------------------------------------------------------------------------------------------------
 | |
| def ecg_peaks_val():
 | |
| 
 | |
|     P_peaks = data_update_ECG['ECG_P_Peaks']
 | |
|     P_peaks_values = [ecg_signal[idx] for idx in P_peaks]
 | |
| 
 | |
|     Q_peaks = data_update_ECG['ECG_Q_Peaks']
 | |
|     Q_peaks_values = [ecg_signal[idx] for idx in Q_peaks]
 | |
| 
 | |
|     R_peaks = data_update_ECG['ECG_R_Peaks']
 | |
|     R_peaks_values = [ecg_signal[idx] for idx in R_peaks]
 | |
| 
 | |
|     S_peaks = data_update_ECG['ECG_S_Peaks']
 | |
|     S_peaks_values = [ecg_signal[idx] for idx in S_peaks]
 | |
| 
 | |
|     T_peaks = data_update_ECG['ECG_T_Peaks']
 | |
|     T_peaks_values = [ecg_signal[idx] for idx in T_peaks]
 | |
| 
 | |
|     P_onsets = data_update_ECG['ECG_P_Onsets']
 | |
|     P_onsets_values = [ecg_signal[idx] for idx in P_onsets]
 | |
| 
 | |
|     P_offsets = data_update_ECG['ECG_P_Offsets']
 | |
|     P_offsets_values = [ecg_signal[idx] for idx in P_offsets]
 | |
| 
 | |
|     T_onsets = data_update_ECG['ECG_T_Onsets']
 | |
|     T_onsets_values = [ecg_signal[idx] for idx in T_onsets]
 | |
| 
 | |
|     T_offsets = data_update_ECG['ECG_T_Offsets']
 | |
|     T_offsets_values = [ecg_signal[idx] for idx in T_offsets]
 | |
|     
 | |
|     # PQ基线
 | |
|     average_P = statistics.mean(P_peaks_values)
 | |
|     average_Q = statistics.mean(Q_peaks_values)
 | |
|     PQ_baseline = (average_P + average_Q) / 2  
 | |
| 
 | |
| 
 | |
|     return (#横坐标
 | |
|             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)
 | |
|     
 | |
| 
 | |
| if __name__ == "__main__":
 | |
|     
 | |
|     ecg_peaks_val()
 | |
|     
 | |
| 
 |