0

那里。我试图使用pywt.swt来过滤EEG信号并且我成功地分解了信号。但是使用pywr.iswt()时我无法重建信号。我已经搜索了一段时间的相关信息,但没有得到任何有用的信息。有没有人可以提供一些建议?我会很感激。相关代码和错误如下:

raw = read_raw_edf("chb02_16.edf",preload=True)
raw.pick_channels(chs)
tmp = raw.to_data_frame()
tmp = tmp.values
t_idx = raw.time_as_index([168.,172.])
data,times = raw[chs1[5],t_idx[0]:t_idx[1]]
coeffs = pywt.swt(data,'haar',8,trim_approx=True)
data_rec = pywt.iswt(coeffs,wave_name)

----> 1 data_rec = pywt.iswt(coeffs,wave_name) 中的 ValueError Traceback(最近一次调用最后一次)

D:\Anaconda3\envs\tf\lib\site-packages\pywt_swt.py in iswt(coeffs, wavelet, norm) 246 # 对选定的索引执行逆 dwt, 247 # 确保使用周期性边界条件 --> 248 # 注意:使用 ints 数组进行索引会返回一个连续的 249 # 副本,这是 idwt_single 所要求的。250 x1 = idwt_single(输出[偶数索引],

pywt._extensions._dwt.idwt_single() 中的 pywt_extensions_dwt.pyx

pywt._extensions._dwt.idwt_single() 中的 pywt_extensions_dwt.pyx

ValueError:指定小波的系数数组长度无效。小波和模式必须与用于分解的相同。

4

0 回答 0