我正在尝试在这个网站上实现代码[ http://ataspinar.com/2018/12/21/a-guide-for-using-the-wavelet-transform-in-machine-learning/ ],它研究如何将低通滤波器应用于信号,然而,我不能理解他是如何获得阈值和小波族的。你能解释一下他是怎么想出值和小波名称的吗?
对于代码:
def lowpassfilter(signal, thresh = 0.63, wavelet="db4"):
thresh = thresh*np.nanmax(signal)
coeff = pywt.wavedec(signal, wavelet, mode="per" )
coeff[1:] = (pywt.threshold(i, value=thresh, mode="soft" ) for i in coeff[1:])
reconstructed_signal = pywt.waverec(coeff, wavelet, mode="per" )
return reconstructed_signal亲切的问候
发布于 2020-01-24 05:44:59
在这种情况下,阈值0.63意味着他只希望保持信号中较低频率的63%。由于更高的频率通常对信号的总能量并不重要,因此您可以为了压缩而将其删除。根据信号的不同,你可以去除高达99%的信号,但仍然可以得到完美的逆变换。
至于他选择了Daubechie 4小波,除了它是一个非常常见的小波之外,我不知道还能说什么。它可以很好地估计3次多项式,这对于大多数应用来说是足够好的。
https://stackoverflow.com/questions/59886413
复制相似问题