我试图通过使用db4小波和5级分解来分解给定的波。以下是相同的代码:
coeffs = pywt.wavedec(yourResultA,'db4',level = 5)
但是编辑器给了我以下错误:
Level value of 5 is too high. Maximum allowed is 0.
我不理解这个错误的含义,因为0级没有任何意义。 我甚至试图使用以下代码找到db4 wavelet的最大可能级别:
w = pywt.Wavelet('db4')
x = pywt.dwt_max_level(len(yourResultA), w)
这里x的值是15,所以我猜它可以计算15个级别。我的代码中究竟出现了错误吗?
答案 0 :(得分:0)
如果您阅读pywt.dwt_max_level()
上的文档,则可以看到最高级别取决于数据的长度。这可能是问题吗?
答案 1 :(得分:0)
正在分解的波形文件是立体声格式,因此您可以转换为单色格式或将轴设置为0.
您可以使用:
rate, data = scipy.io.wavfile.read('wavfile.wav')
data = data[:, 0]
然后传递您的数据
coeffs = pywt.wavedec(yourResultA,'db4',level = 5)
或:
将axis参数设置为0
coeffs = pywt.wavedec(yourResultA,'db4',level = 5, axis = 0)