diff --git a/func/Module_approximately_align.py b/func/Module_approximately_align.py index 62e8d97..74069d5 100644 --- a/func/Module_approximately_align.py +++ b/func/Module_approximately_align.py @@ -958,7 +958,7 @@ class MainWindow_approximately_align(QMainWindow): # 绘制间期 ax4 = self.fig.add_subplot(322) ax4.plot(linspace(PSG_SP, PSG_EP, len(diff(tho_peaks).repeat(Config["ApplyFrequency"]))), - diff(tho_peaks).repeat(Config["ApplyFrequency"]), alpha=0.5, label="tho") + diff(tho_peaks).repeat(Config["ApplyFrequency"]), label="tho") ax4.plot(linspace(PSG_SP, PSG_EP, len(diff(orgBcg_peaks).repeat(Config["ApplyFrequency"]))), diff(orgBcg_peaks).repeat(Config["ApplyFrequency"]), label="resp") ax4.set_title("tho_interval") @@ -967,18 +967,20 @@ class MainWindow_approximately_align(QMainWindow): ax5 = self.fig.add_subplot(324) ax5.plot(linspace(orgBcg_SP, orgBcg_EP, len(diff(tho_peaks).repeat(Config["ApplyFrequency"]))), - diff(tho_peaks).repeat(Config["ApplyFrequency"])) + diff(tho_peaks).repeat(Config["ApplyFrequency"]), label="tho") ax5.plot(linspace(orgBcg_SP, orgBcg_EP, len(diff(orgBcg_peaks).repeat(Config["ApplyFrequency"]))), diff(orgBcg_peaks).repeat(Config["ApplyFrequency"]), label="resp") ax5.set_title("resp_interval") + ax5.legend() ax5.set_ylim((10, 50)) ax6 = self.fig.add_subplot(326) ax6.plot(linspace(PSG_SP, PSG_EP, len(diff(abd_peaks).repeat(Config["ApplyFrequency"]))), - diff(abd_peaks).repeat(Config["ApplyFrequency"])) + diff(abd_peaks).repeat(Config["ApplyFrequency"]), label="abd") ax6.plot(linspace(PSG_SP, PSG_EP, len(diff(orgBcg_peaks).repeat(Config["ApplyFrequency"]))), diff(orgBcg_peaks).repeat(Config["ApplyFrequency"]), label="resp") ax6.set_title("abd_interval") + ax6.legend() ax6.set_ylim((10, 50)) self.fig.canvas.draw() @@ -1114,6 +1116,9 @@ class Data: int(Config["orgBcg_seconds"] * Config["ApplyFrequency"])) self.processed_Tho = resample(self.raw_Tho, int(Config["PSG_seconds"] * Config["ApplyFrequency"])) self.processed_Abd = resample(self.raw_Abd, int(Config["PSG_seconds"] * Config["ApplyFrequency"])) + self.processed_downsample_orgBcg = self.processed_orgBcg.copy() + self.processed_downsample_Tho = self.processed_Tho.copy() + self.processed_downsample_Abd = self.processed_Abd.copy() except Exception as e: return Result().failure( info=Constants.APPROXIMATELY_ONLY_ALIGN_RESAMPLE_FAILURE + Constants.FAILURE_REASON[ @@ -1305,9 +1310,10 @@ class Data: def get_epoch(self): # 获取epoch try: - epoch_min = max(0, Config["pos"] // 30 // Config["ApplyFrequency"] + 1) - epoch_max = min(len(self.processed_downsample_Tho) // 30 // Config["ApplyFrequency"] - 1, - (len(self.processed_downsample_orgBcg) + Config["pos"]) // 30 // Config[ + epoch_second = Params.APPROXIMATELY_ALIGN_CONFIG_NEW_CONTENT["Second_PerEpoch"] + epoch_min = max(0, Config["pos"] // epoch_second // Config["ApplyFrequency"] + 1) + epoch_max = min(len(self.processed_downsample_Tho) // epoch_second // Config["ApplyFrequency"] - 1, + (len(self.processed_downsample_orgBcg) + Config["pos"]) // epoch_second // Config[ "ApplyFrequency"] - 1) result = {"epoch_min": epoch_min, "epoch_max": epoch_max} diff --git a/func/Module_cut_PSG.py b/func/Module_cut_PSG.py index b68ad38..65f51af 100644 --- a/func/Module_cut_PSG.py +++ b/func/Module_cut_PSG.py @@ -274,7 +274,7 @@ class Data: # 转换切割点 ECG_freq = Config["ECGFreq"] raw_freq = self.freq[key] - duration_second = ((self.alignInfo["cut_index"]["back_ECG"] - self.alignInfo["cut_index"]["front_ECG"]) // 1000) + 1 + duration_second = ((self.alignInfo["cut_index"]["back_ECG"] - self.alignInfo["cut_index"]["front_ECG"]) // ECG_freq) + 1 start_index_cut = floor(self.alignInfo["cut_index"]["front_ECG"] * (raw_freq / ECG_freq)) end_index_cut = start_index_cut + (duration_second * raw_freq)