0

我正在尝试使用 Haar 小波对 arcsin(x) 进行小波分解。当同时使用 Matlabdwtwavedec函数时,我得到近似系数的奇怪值。由于应用低通Haar小波滤波器等于执行半和并且arcsin的最大值为pi / 2,我假设近似系数不能超过pi / 2,但这段代码:

x = linspace(0,1,128);
y = asin(x);
[cA, cD] = dwt(y, 'haar'); %//cA for approximating coefficients

返回大于 pi/2 in 的值cA。这是为什么?

4

1 回答 1

0

我相信在这里让你感到困惑的是认为 Haar 的滤波器在计算 1 级近似系数时只是平均两个相邻的数字。由于缩放函数的能量保存特性,每对数字都除以 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”完全相同的值。

希望这可以帮助。

于 2014-03-30T07:45:44.020 回答