我尝试使用短时傅里叶变换处理ecg心电信号,但是生成的图像是双层图像。感觉很奇怪。按照我的理解应该只有一层特征才对,不知道为啥。数据只是一列数据的txt而已
这个是1s的生成图像
用的
win_sz = 72
overlap = 36
outer_win_sz = 180
outer_overlap = 90
f,t,zxx = signal.stft(s[start : end]-zero,fs, window=outer_win, nperseg=outer_win_sz, noverlap=outer_overlap, nfft=outer_win_sz, return_onesided=True, boundary='zeros', padded=True, axis=- 1)
感觉我参数选的也不是很好
【以下回答由 GPT 生成】
首先,我注意到你使用了两个傅里叶变换的窗口,一个用于外部窗口(outer window),另一个用于内部窗口(window)。在这种情况下,内部窗口是你用于计算当前时刻频谱的窗口,而外部窗口是你用于滑动和覆盖整个信号的窗口。
但是,根据你提供的代码段,我无法确定你是如何使用win_sz
和overlap
这两个变量的。由于你只展示了短时傅里叶变换(STFT)的计算步骤,我无法确定你在后续步骤中如何使用STFT结果来生成图像。
另外,你还提到图像具有双层特征,但你的描述并没有提供足够的信息来了解这个问题的具体表现和预期结果。
在回答你的问题之前,我需要进一步的信息,特别是:
请提供更多的细节和代码,以便我能够更好地帮助你解决问题。