我正在尝试运行以下PyWavelets示例: PyWavelets decomposition / reconstruction
我的一点点更复杂的Python 3.6代码是:
# Signal generation
N = 54 # IMPORTANT VALUE FOR THE REST OF MY STORY
np.random.seed(seed=17171) # To fix the data, but values do not matter
x = np.random.normal(0.,1.,N) # Random signal
# Wavelet decomposition
db = pywt.Wavelet('db4')
Wx = pywt.wavedec(x, db)
# Wavelet reconstruction
z = pywt.waverec(Wx, db)
运行这段代码时,一切正常。现在,如果我们通过使N大于54来增加信号的大小,例如N = 55,那么我们将收到以下警告消息:
pywt / _multilevel.py:148:FutureWarning:不建议使用非元组序列进行多维索引编制;使用
arr[tuple(seq)]
而不是arr[seq]
。将来,它将被解释为数组索引arr[np.array(seq)]
,它将导致错误或不同的结果。 a = a [[形状为s的切片]]
小波计算的结果是正确的,即完美的重构,但是当您要处理超过54个抽头的信号时,此消息确实令人不安。
您是否对使用PyWavelet时如何解决与数据大小相关的“怪异”行为有任何想法?
干杯, 巴吉安