我目前正在使用Package' waveslim'来处理R中的小波变换。我正在使用离散小波包变换dwpt来重建时间序列的某个频率部分。应该选择适当的系数(通常是最低频率的前n个系数)。如果我选择前n个系数,重建信号会在每次运行后在相同的时间序列中自行改变,并且图表不具说服力 - 它似乎不是该信号的低频部分。这是我的代码片段:
WaveletFilter_Waveslim = function(timeSeries, level = 2){
WaveletDecompositionVector <- dwpt(timeSeries, "la8", level)
print(WaveletDecompositionVector)
timeSeries.basis <- basis(WaveletDecompositionVector, c("w2.2", "w2.3"))
for(i in 1:length(WaveletDecompositionVector))
WaveletDecompositionVector[[i]] <- timeSeries.basis[i] * WaveletDecompositionVector[[i]]
filtered <- idwpt(WaveletDecompositionVector, timeSeries.basis)
dev.new()
par(mfrow=c(2,1), mar=c(5-1,4,4-1,2))
plot.ts(x, xlab="", ylab="", main="Original Series")
plot.ts(filtered, xlab="", ylab="", main="Reconstructed Series")
}
&#13;
使用Mallat算法进行离散小波包变换。