Files
Feature-Extraction/ecg_time_interval.py
2025-10-20 22:01:18 +08:00

61 lines
2.3 KiB
Python
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

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()