繁体   English   中英

Matlab小波分解中近似系数的奇异值

[英]Strange values for approximating coefficients in wavelet decompsition in Matlab

我试图使用Haar小波来获得arcsin(x)的小波分解当同时使用Matlab的dwtwavedec函数时,我得到了一些奇怪的值来近似系数。 由于应用低通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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM