如何在R中绘制Daubechies psi和phi小波函数?

时间:2018-11-05 16:26:38

标签: r time-series wavelet

小波分析似乎是通过矩阵乘法的离散变换进行的。因此,我想不足为奇的是,例如在绘制D4时,R包wmtsa返回该图:

require(wmtsa)
filters <- wavDaubechies("d4")
plot(filters)

enter image description here

问题是如何从离散化图转到Wikipedia entry中的图:

enter image description here

请注意,我对使用wmtsa精确生成这些曲线不感兴趣。任何其他软件包都可以-我没有Matlab或Mathematica。但是我不知道该走的路是从将this paper中的Mathematica代码块转换为R,而不是使用内置函数开始:

Wave1etTransform.m
c[k-1 := c[k] = Daubechies[4][[k+l]];
phi[l] = (l+Sqrt[3])/2 // N;
phi[2] = (l-Sqrt[3])/2 // N;
phi[xJ; xc=0 II x>=3] : = 0
phi[x-?NumberQ] := phi[x] =
N[Sqrt[2]] Sum[c[k] phi[2x-k],{k,0,3}]; 

1 个答案:

答案 0 :(得分:0)

如果只想绘制图形,则可以使用“ wavethresh”包通过以下命令来绘制D4,例如:


draw.default(filter.number=4, family="DaubExPhase", enhance=FALSE, main="D4 Mother", scaling.function = F) # mother wavelet
draw.default(filter.number=4, family="DaubExPhase", enhance=FALSE, main="D4 Father", scaling.function = T) # father wavelet

请注意,将根据变量“ scaling.function”绘制母小波和父小波。如果为true,则绘制父小波(缩放),否则绘制母小波。