175 lines
		
	
	
		
			6.0 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
			
		
		
	
	
			175 lines
		
	
	
		
			6.0 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
| 
 | |
| 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()
 | |
| 
 |