0

我正在尝试使用 db4 小波和 5 级分解来分解给定的波。这是相同的代码:

coeffs = pywt.wavedec(yourResultA,'db4',level = 5)

但是编辑器给了我以下错误:

Level value of 5 is too high.  Maximum allowed is 0.

我不理解此错误的含义,因为级别 0 没有任何意义。我什至尝试使用以下代码找到 db4 小波的最大可能级别:

w = pywt.Wavelet('db4')
x = pywt.dwt_max_level(len(yourResultA), w)

这里 x 的值是 15 所以,我猜它可以计算 15 个级别。我的代码中到底发生了哪里的错误?

4

2 回答 2

0

如果您阅读文档,pywt.dwt_max_level()您可以看到最大级别取决于数据的长度。这可能是问题吗?

文档:https ://pywavelets.readthedocs.io/en/0.2.2/ref/dwt-discrete-wavelet-transform.html#maximum-decomposition-level-dwt-max-level

于 2018-02-05T22:25:08.507 回答
0

正在分解的波形文件是立体声格式,因此您可以转换为单声道格式或将轴设置为 0。

您可以使用:

rate, data = scipy.io.wavfile.read('wavfile.wav')
data = data[:, 0]

然后传递你的数据

coeffs = pywt.wavedec(yourResultA,'db4',level = 5)

或者:

将轴参数设置为0

coeffs = pywt.wavedec(yourResultA,'db4',level = 5, axis = 0)
于 2018-04-26T11:12:31.597 回答