【问题标题】:Strange values for approximating coefficients in wavelet decompsition in MatlabMatlab中小波分解中近似系数的奇怪值
【发布时间】:2014-01-15 08:30:46
【问题描述】:

我正在尝试使用 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 的值。这是为什么呢?

【问题讨论】:

    标签: matlab signal-processing wavelet haar-wavelet


    【解决方案1】:

    我相信在这里让您感到困惑的是认为 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”完全相同的值。

    希望这会有所帮助。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-12-10
      • 2016-07-19
      • 2016-07-31
      • 1970-01-01
      相关资源
      最近更新 更多