
[英]How does MATLAB scale coefficients to scalogram for the Continuous Wavelet Transform function?
[英]Strange values for approximating coefficients in wavelet decompsition in Matlab
我试图使用Haar小波来获得arcsin(x)的小波分解当同时使用Matlab的dwt
或wavedec
函数时,我得到了一些奇怪的值来近似系数。 由于应用低通Haar小波滤波器等于执行半和,并且arcsin的最大值为pi / 2,因此我假设近似系数不能超过pi / 2,但是此代码:
x = linspace(0,1,128);
y = asin(x);
[cA, cD] = dwt(y, 'haar'); %//cA for approximating coefficients
在cA
返回大于pi / 2的值。 这是为什么?
我相信让您感到困惑的是,在计算1级近似系数时,Haar滤波器仅对两个相邻的数字求平均。 由于缩放函数具有节能功能,每对数字除以sqrt(2)而不是2。实际上,您可以通过键入以下命令来查看特定小波滤波器的功能(对于Haar滤波器,这个案例):
[F1,F2] = wfilters('haar','d')
F1 =
0.7071 0.7071
F2 =
-0.7071 0.7071
然后,您可以通过构造一个简单的循环来检查上面所获得内容的有效性:
CA_compare = zeros(1,64);
for k = 1 : 64
CA_compare(k) = dot( y(2*k-1 : 2*k), F1 );
end
然后,您将看到“ CA_compare”包含与“ cA”完全相同的值。
希望这可以帮助。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.