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

时间:2013-12-27 18:33:28

标签: matlab signal-processing wavelet haar-wavelet

我正试图使用​​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 个答案:

答案 0 :(得分:0)

我相信让你感到困惑的是,在计算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"完全相同的值确实

希望这有帮助。