小波分析似乎是通过矩阵乘法的离散变换进行的。因此,我想不足为奇的是,例如在绘制D4时,R包wmtsa
返回该图:
require(wmtsa)
filters <- wavDaubechies("d4")
plot(filters)
问题是如何从离散化图转到Wikipedia entry中的图:
请注意,我对使用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}];
答案 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,则绘制父小波(缩放),否则绘制母小波。