【问题标题】:Create NxN Haar Matrix创建 NxN Haar 矩阵
【发布时间】:2014-07-15 04:50:47
【问题描述】:

我找不到生成非标准化 NxN Haar 矩阵的定义。那么方程是什么?

见:http://en.wikipedia.org/wiki/Haar_wavelet

谢谢,克里斯

【问题讨论】:

  • 维基百科文章给出了定义。哪一部分给你带来了麻烦?

标签: math image-processing signal-processing haar-wavelet


【解决方案1】:

这取决于您想要达到的目标。 Haar 矩阵是 2x2 DCT 矩阵,因此反过来,您可以将 NxN DCT(II) 矩阵视为该块大小的 Haar 矩阵。

或者如果 N 是二元的,N=2^n,那么您可能会要求 Haar 变换的 n 个阶段的变换矩阵。由于每一步中的采样率抽取,这可能是一个问题。

【讨论】:

    【解决方案2】:

    谢谢。维基百科给出了“方程式”:

    我已经编写了一个递归解决方案,用于在八度音程中生成未归一化的 NxN Haar 矩阵。

    function [h] = haar(n)
    h = [1];
    if n > 2
        h = haar(n/2);
    endif
    % calculate upper haar part
    h_n = kron(h,[1,1]); 
    % calculate lower haar part 
    h_i = kron(eye(length(h)),[1,-1]);
    % combine parts
    h = [h_n; h_i];
    endfunction
    
    disp(haar(8));
    

    【讨论】:

      【解决方案3】:

      这是基于recursive formula for the Haar matrix 的标准化和非标准化Haar matrix 的算法:

      来自 W-H Steeb 等人的论文“离散小波和微扰理论”。这是Python中的实现

      def haarMatrix(n, normalized=False):
          # Allow only size n of power 2
          n = 2**np.ceil(np.log2(n))
          if n > 2:
              h = haarMatrix(n / 2)
          else:
              return np.array([[1, 1], [1, -1]])
      
          # calculate upper haar part
          h_n = np.kron(h, [1, 1])
          # calculate lower haar part 
          if normalized:
              h_i = np.sqrt(n/2)*np.kron(np.eye(len(h)), [1, -1])
          else:
              h_i = np.kron(np.eye(len(h)), [1, -1])
          # combine parts
          h = np.vstack((h_n, h_i))
          return h
      

      【讨论】:

        【解决方案4】:
        def HT(N):
            if N == 1: return np.array([[1]])
            return 1/np.sqrt(2)*np.concatenate(
                (
                    np.kron(HT(N//2),[1,1])
                ,
                    np.kron(np.identity(N//2),[1,-1])
                ),axis = 0
                )
        

        我使用 Wikipedia 中的公式添加了归一化因子 1/sqrt(2)。矩阵变为正交。有用吗?

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2022-12-12
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多