对于长度为 n 个时间戳的给定时间序列,我们可以采用离散小波变换(使用“Haar”小波),然后我们得到(例如,在 Python 中)-
>>> import pywt
>>> ts = [2, 56, 3, 22, 3, 4, 56, 7, 8, 9, 44, 23, 1, 4, 6, 2]
>>> (ca, cd) = pywt.dwt(ts,'haar')
>>> ca
array([ 41.01219331, 17.67766953, 4.94974747, 44.54772721,
12.02081528, 47.37615434, 3.53553391, 5.65685425])
>>> cd
array([-38.18376618, -13.43502884, -0.70710678, 34.64823228,
-0.70710678, 14.8492424 , -2.12132034, 2.82842712])
其中 ca 和 cd 是近似系数和详细系数。现在,如果我使用所有这些,我可以使用逆 DWT 构建我原来的时间序列。但相反,我想使用更少的系数(比如在傅里叶变换中,如果我们只使用前几个系数,我们可以近似地重建原始时间序列)。如果我只是使用ca
或只是使用cd
,我不会得到想要的结果。如果我只使用我们每个人的系数(比如前 4 个),我只能得到一半的时间序列。
我应该如何选择系数(从ca
和cd
),以便我可以从它们近似地创建原始信号(即它的大部分能量)?