数字图像处理(4版)——第 7 章——小波及其它图像变换(上)(Rafael C.Gonzalez&Richard E. Woods)

【AI概念】迁移学习 vs. 域自适应 vs. 域泛化|定义、核心原理、数学表达、易混淆点与工程选择建议|实际案例、工程实现细节、未来研究趋势、实际应用场景 大家好,我是爱酱。本篇将会详细梳理迁移学习(Transfer Learning)、域自适应(Domain Adaptation)、域泛化(Domain Generalization)三大常被混淆的核心概念,结合数学公式、典型算法与实际应用场景,帮助你厘清它们的本质区别、联系与工程意义。 注:本文章含大量数学算式、详细例子说明及大量代码演示,大量干货,建议先收藏再慢慢观看理解。新频道发展不易,你们的每个赞、收藏跟转发都是我继续分享的动力! 阅读详情

第 7 章  小波及其它图像变换

(Wavelet and Other Image Transforms)

目录

导读(Preview)

7.1  预备知识(Preliminaries)

7.2  基于矩阵的变换(Matrix-based transforms)

7.2.1  矩形数组(Rectangular arrays)

7.2.2  复正交正规基向量(Complex orthonormal  basis vectors)

7.2.3  双正交正规基向量(Biorthonormal  basis vectors)

7.3  相关性(Correlation)

7.4  时频平面中的基函数(Basis functions in the time-frequency plane)

7.5  基图像(Basis images)

7.6  Fourier相关变换(Fourier-related transform)

7.6.1  离散Hartley变换(The discrete Hartley transform)

7.6.2  离散余弦变换(The discrete cosine transform)

7.6.3  离散正弦变换(The discrete sine transform)

7.7  Walsh-Hadamard变换(Walsh-Hadamard transforms)

7.8  斜变换(Slant-transform)

7.9  Haar变换(Haar transform)


导读(Preview)

第4章介绍的离散Fourier变换属于一类重要的线性变换,包括Hartley变换、正弦变换、余弦变换、Walsh-Hadamard变换、斜变换(Slant)、Haar变换和小波变换。这些变换是本章的主题,它们将函数分解为正交基或双正交基函数之加权和,并且可以使用线性代数和泛函分析的工具进行研究。从这个角度来看,图像是所有图像构成的向量空间中的向量。基函数决定了图像变换的性质和用途。变换是线性展开式的系数。对于给定的图像和变换(或一组基函数),基函数的正交性和所得变换的系数都可以使用内积来计算。所有图像变换在某种意义上都是等价的,因为它们包含相同的信息和总能量。它们是可逆的,区别仅在于信息和能量在变换系数中的分布方式不同。

7.1  预备知识(Preliminaries)

         在线性代数和泛函分析中,向量空间(或更正式地说是抽象向量空间)是一组数学对象或实体(称为向量)的集合,这些向量可以相加并与标量相乘。一个内积空间由定义在一个数场(field)上的一个抽象向量空间和一个内积函数构成,该内积函数将向量空间中的两个向量映射到数场中的一个标量,且它们之间满足关系

(a)          <u ,v> = <v,u>^{*}  ,

(b)  <u  + v , w> = <u  + w , v + w > ,

(c)  <αu  , v> =  α < u  , v> ,

(d)  当且仅当 v = 0 时,有 <v  , v> ≥ 0 和  <v  , v> = 0 ,

其中,u ,v 和 w 是向量,α 是一个标量,而 <…> 表示内积运算。向量空间的一个简单例子是二维空间中的有向线段集合,其中线段在数学上表示为 2 × 1 列向量,向量加法相当于将线段首尾相连。内积空间的一个例子是实数集合 R 与内积函数 < u ,v > = uv 结合形成的集合,其中“向量”是实数,内积函数是乘法,上述公理 (a) 到 (d) 分别对应于乘法的交换律、分配律、结合律和“偶次幂非负性(positivity of even powers)”性质。

    本章重点关注以下三个内积空间:

(1)  实数场 R 上具有如下形式的点积(或标量积)的 Euclid 空间  {\rm{R}}^{N}  :

(7-1)        \displaystyle <\mathbf{u} ,\mathbf{v}> = \mathbf{u}^{T} \mathbf{v} = u_{0} v_{0} + u_{1} v_{1} + ... + u_{N-1}v_{N-1} = \sum_{i=0}^{N-1}u_{i}v_{i}

其中,u  和 v  是  N × 1 列向量。

(2)  复数场C上具有如下形式的内积函数的玄正空间(unitary space) \mathbf{C}^{N} :

(7-2)         \displaystyle <\mathbf{u} ,\mathbf{v}> = {\mathbf{u}}^{*T}\mathbf{v} = \sum_{i=0}^{N-1}\mathbf{u}_{i}^{*} \mathbf{v}_{i} = <\mathbf{v} ,\mathbf{u}>^{*}

其中,* 表示复共轭运算,而 ,u  和 v  是复值  N × 1 列向量。

(3)  内积空间 C([a,b]),其中,向量是区间 a ≤ x ≤ b   上的连续函数,且内积函数是可积内积函数(integral inner function)

(7-3)        \displaystyle < f ( x ) , g ( x )> = \int_{a}^{b}f^{*} ( x )g( x )dx

在所有三个内积空间中,向量 z 的范数(norm)或长度(length)(表示为 {\Vert}z\Vert  是

(7-4)        {\Vert}z\Vert = \sqrt{(<z ,z>)}

且两个非零向量 z 和 w 之间的角度是

(7-5)          \displaystyle \theta = \cos^{-1}{\frac{<z,w>}{​{\Vert}z{\Vert}{\Vert}w{\Vert} }}

若 z 的范数是 1 ,则称 z 是正规的。在公式 (7-5) 中若 < z , w > = 0 ,则 θ = 90°并称 z 和 w 是正交的。 这些定义的一个自然的推论是:对于一个非零向量 w_{0} , w_{1} , w_{2} ,... ,  当仅仅当

(7-6)        < w_{k} , w_{l} > = 0 \hspace{0.2cm} ( k \ne l )

时,其是相互或逐对正交的。它们是称为张成(span)的内积空间的正交基。若基向量是正规的,则它们是正交基,且

(7-7)         < w_{k} , w_{l} > = {\delta}_{kl} = \left \{ \begin{array}{lr} 0\hspace{0.2cm}(k \ne l) \\ \\ 1\hspace{0.2cm}(k=1) \end{array} \right.

类似地,对于向量   w_{0} , w_{1} , w_{2} ,...  的一个集合及对偶向量(dual vectors) \tilde{w}_{0} , \tilde{w}_{1} , \tilde{w}_{2} ,...  之补集,若有

(7-8)        < \tilde{w}_{k},w_{l} > = 0 \hspace{0.2cm}(k \ne l )

则其分别称为它们所张成的向量空间双正交(biorthogonal)或双正交基(biorthogonal basis)。当且仅当

(7-9)        < \tilde{w}_{k} , w_{l} > = {\delta}_{kl} = \left \{ \begin{array}{lr} 0\hspace{0.2cm}(k \ne l) \\ \\ 1\hspace{0.2cm}(k=1) \end{array} \right.

时,它们是双标准正交基(biorthonormal basis)。

作为一种简洁描述无限向量集的机制,内积空间的基是线性代数中最有用的概念之一。以下推导过程依赖于基向量的正交性,是下一节基于矩阵变换的基础。令 W = \{ w_{0} , w_{1} , w_{2} ,... \}   为一个内积空间 V 的一个正交基,并令 z∈V  。则向量 z 可以表示为如下形式的列基向量的一个线性组合:

(7-10)        z = \alpha_{0} w_{0} + \alpha_{1} w_{1} + \alpha_{2} w_{2} +...

其与基向量的内积是

(7-11)         \begin{array}{rlc} < w_{i} , z >&\displaystyle=< w_{i} , \alpha_{0} w_{0} + \alpha_{1} w_{1} + {\alpha}_2 w_{2} + ... > \\ \\ &\displaystyle=\alpha_0< w_{i} , w_{0} > + \alpha_1< w_{i} , w_{1} > + \alpha_2< w_{i} , w_{2} > + ... \end{array}

由于  w_{i}  是相互正交的,公式 (7-11) 右侧的内积是0 (除非参与计算内积的向量之下标匹配(参见公式 (7-7)))。因此,唯一非零项是   \alpha_i< w_i , w_i >   。消除了零项并在公式两侧除以 < w_i , w_i >得到

(7-12)         \displaystyle \alpha_{i}=\frac{<w_{i},z>}{<w_{i},w_{i}>}

若基向量的范数是1,则其简化为

(7-13)        \alpha_{i} = < w_{i} , z >  

按类似的推导(留与读者练习),对于双正交基向量和双正规正交基向量,分别有

(7-14)         \displaystyle \alpha_{i}=\frac{<\tilde{w}_{i},z>}{<\tilde{w}_{i},w_{i}>}

和

(7-15)        \alpha_{i} = < \tilde{w}_{i} , z >

请注意,当基向量组及其对偶基向量组相同时,双正交性就简化为正交性。

例子 7.1:向量范数和角度。

    内积空间 C ([ 0 ,2π ]) 的向量 f (x) = \cos{x} 之范数是

\begin{array}{rlc} \displaystyle {\Vert}f(x){\Vert} = \sqrt{<f (x),f (x)>} = \left [\int_{0}^{2\pi}\cos^{2} xdx \right ]^{1/2} =\left [ \frac{1}{2}x+\frac{1}{4}\sin{2x}\bigg|_{0}^{2\pi} \right ]^{1/2} = \sqrt{\pi} \end{array}

Euclid  内积空间  \rm{R}^{2}   的向量  {\rm{z}} = \begin{bmatrix}1&1 \end{bmatrix}^{T }  和  {\rm{w}} = \begin{bmatrix}1&0 \end{bmatrix}^{T }  之间的角度是

\displaystyle \theta = \cos^{-1} \left [\frac{<\rm{z},\rm{w}>}{\Vert{\rm{z}}\Vert {\Vert}{\rm{w}}\Vert} \right ] = \cos^{-1} [\frac{1}{\sqrt{2}}] = 45^{\circ}

这些结果可根据公式 (7-1) ,(7-3) ,(7-4) ,和  (7-5) 。

7.2  基于矩阵的变换(Matrix-based transforms)

    第4章介绍的一维离散 Fourier 变换是一类可以根据下述关系描述的重要变换之一:

(7-16)         \displaystyle T(u) = \sum_{x=0}^{N-1}f(x)r(x,u)

其中,x 是空间变量,T(u) 是 f (x)  的变换,r (x , u) 是正向线性变换核(a forward transform kernel), 而整数 u 是一个其值位于范围 0 ,1 ,2 ,… ,N – 1 内的变换变量。类似地,T(u) 的逆Fourier 变换是

(7-17)        \displaystyle f (x) = \sum_{u=0}^{N-1}T(u)s(x,u)

其中,s(x , u) 是一个逆变换核,且 x  取得范围 0 ,1 ,2 ,… ,N – 1 中的值。公式(7-16) 中的变换核 r (x , u) 和公式 (7-17) 中的变换核 s(x , u) (其仅取决于索引x 和u,而非取决于 f (x) 和T(u)) 确定了它们定义的变换对的特征(nature)和用途(usefulness)。公式 (7-17) 如图 7.1 所示。注意,f (x) 是 N 个逆核函数(即 s (x , u), u = 0, 1, … , N - 1)之加权和,而 T(u)(其中 u = 0, 1, … , N – 1)是权重。所有 N 个 s(x , u) 都对 f (x) 在每一个 x 处的值有贡献。如果我们展开公式 (7-17) 的右侧,则可得到

(7-18)      f (x) = T(0)s(x , 0) + T(1)s(x , 1) + ... + T(N - 1)s(x , N - 1)

---------------------------图 7.1:公式 (7-18) 的图形化说明------------------

显然,图 7.1 所示的计算是类似于公式 (7-10) 的线性展开——公式 (7-18) 中的 s(x , u) 和 T(u) 分别取代了公式 (7-10) 中的 w_{i}  (即基向量)和 \alpha_{i}  。若我们假设公式 (7-18) 中的 s(x , u) 是一个内积空间的正交基向量,则根据公式 (7-13) ,我们有

(7-19)                T(u) = < s(x , u) , f (x) >

且变换 T(u) (其中 u = 0, 1, … , N – 1) 可通过内积进行计算。

    现在我们可以将公式 (7-16) 和 (7-17) 表示成矩阵形式。首先,我们将函数 f ( x ),T(u) 和 s(x , u) 分别定义为列向量

(7-20)                 \mathbf{f}=\begin{bmatrix} f(0)\\ f(1)\\ \vdots \\ f(N) \end{bmatrix}=\begin{bmatrix} f_{0}\\ f_{1}\\ \vdots \\ f_{N} \end{bmatrix}

(7-21)                \mathbf{t}=\begin{bmatrix} T(0)\\ T(1)\\ \vdots \\ T(N) \end{bmatrix}=\begin{bmatrix} T_{0}\\ T_{1}\\ \vdots \\ T_{N} \end{bmatrix}

和

(7-22)                \mathbf{s}_{u}=\begin{bmatrix} s(0,u)\\ s(1,u)\\ \vdots \\ s(N,u) \end{bmatrix}=\begin{bmatrix} s_{u,0}\\ s_{u,1}\\ \vdots \\ s_{u,N} \end{bmatrix}\hspace{0.2cm}( u = 0, 1, ... , N - 1 )

并利用这些列向量将公式 (7-19) 重写为

(7-23)                T(u) = < \mathbf{s}_{u} , f > \hspace{0.2cm}( u = 0, 1, ... , N - 1 )

将变换的 N 个基向量结合到一个 N × N 变换矩阵中,即

(7-24)               \mathbf{A}=\begin{bmatrix}s_{0}^{T}\\\\ s_{1}^{T}\\\\ \vdots \\\\s_{N-1}^{T} \end{bmatrix}=\begin{bmatrix} s_{0}& s_{1}&\hdots&s_{N-1} \end{bmatrix}^{T}

然后,我们可以将公式 (7-23) 代入公式 (7-21) ,并利用公式 (7-1) 以得到

(7-25)         \begin{array}{rlc}\mathbf{t}=\begin{bmatrix}<s_{0},\mathbf{f}>\\ <s_{1},\mathbf{f}>\\ \vdots \\<s_{N-1},\mathbf{f}> \end{bmatrix}=&\displaystyle\begin{bmatrix} s_{0,0}f_{0}+s_{1,0}f_{1}+...+ s_{N-1,0}f_{N-1} \\ s_{0,1}f_{0}+s_{1,1}f_{1}+...+ s_{N-1,1}f_{N-1} \\ \vdots \\ s_{0,N-1}f_{0}+s_{1,N-1}f_{1}+...+ s_{N-1,N-1}f_{N-1} \end{bmatrix}\\\\ =&\displaystyle \begin{bmatrix} s_{0,0}&s_{1,0}&\hdots& s_{N-1,0} \\ s_{0,1}&s_{1,1}&& \\ \vdots &&\ddots&s_{N-1,N-2} \\ s_{0,N-1}&&\hdots&s_{N-1,N-1} \end{bmatrix}\begin{bmatrix} f_{0}\\f_{1}\\ {\vdots} \\f_{N-1} \end{bmatrix} \end{array}

或

(7-26)        t = Af

这个公式的逆可从下列观察推导:

(7-27)

\begin{array}{rlc} \mathbf{AA}^{T}=&\displaystyle \begin{bmatrix}s_{0}^{T}\\\\ s_{1}^{T}\\\\ \vdots \\\\s_{N-1}^{T} \end{bmatrix}\begin{bmatrix} s_{0}& s_{1}&\hdots&s_{N-1} \end{bmatrix} \\ \\ =&\displaystyle \begin{bmatrix} s_{0}^{T}s_{0}&s_{0}^{T}s_{1}&\hdots&s_{0}^{T}s_{N-1} \\ s_{1}^{T}s_{0}&s_{1}^{T}s_{1}&&\vdots \\ \vdots&&\ddots&\\ s_{N-1}^{T}s_{0}&&\hdots&s_{N-1}^{T}s_{N-1} \\ \end{bmatrix} \\ \\ =&\displaystyle \begin{bmatrix} <s_{0},s_{0}>&<s_{0},s_{1}>&\hdots&<s_{0},s_{N-1}> \\ <s_{1},s_{0}>&<s_{1},s_{1}>&&\vdots \\ \vdots&&\ddots& \\ <s_{N-1},s_{0}>&&\hdots&<s_{N-1},s_{N-1}> \end{bmatrix}\\ \\ =&\displaystyle \begin{bmatrix} 1&0&\hdots&0\\ 0&1&& \\ \vdots&&\ddots&0\\ 0&&\hdots&1 \end{bmatrix}=I \end{array}

其中,最后两步分别是公式 (7-1) 和 (7-2) 的结果。由于 {\rm{AA}}^{T}=I  , 用 \rm{A}^{T}  左乘公式 (7-26)并化简得到 \mathbf{f}={\rm{A}}^{T}\mathbf{t}  。因此,公式 (7-16) 和公式  (7-17) 成了基于矩阵的变换对

(7-28)     \mathbf{t = Af}

和

(7-29)   \mathbf{f} = \mathbf{A}^{T}\mathbf{t}  

谨记这一点很重要,即在公式 (7-28) 和  (7-29) 的推导中,我们假设变换矩阵 A 的 N个变换基向量(即,\mathbf{s}_{u} ( u = 0, 1, … , N – 1 ) ) 是实数且正交的。根据 (7-7),有

(7-30)                 \displaystyle < \mathbf{s}_{k} , \mathbf{s}_{l} > \mathbf{s}_{k}^{T} \mathbf{s}_{l} = {\delta}_{kl} =\left \{ \begin{array}{lr} 0 \hspace{0.2cm} (k \ne l )\\ \\ 1 \hspace{0.2cm}(k = l) \end{array} \right .

假设的正交正规化允许无需显式引用正变换核即可计算正变换——即 t = Af  ,其中 A 仅是逆变换核 s(x ,u ) 的函数。对于实数正交基向量,有r ( x ,u ) = s ( x , u ) ,其证明过程留给读者作练习(参见习题 7.3)。

由于 A 的基向量是复数且正交的,则公式(7-28) 所定义的变换称为正交变换,其保留了内积,即  < \mathbf{f}_{1} ,\mathbf{f}_{2} > = < \mathbf{t}_{1} , \mathbf{t}_{2} > = < \mathbf{At}_{1} , \mathbf{At}_{2} >  ,  因此,变换前后向量之间的距离和角度保持不变。A的行向量和列向量均是正基,且  \mathbf{AA}^{T} = \mathbf{A}^{T}\mathbf{A} = I   ,  因此, \mathbf{A}^{-1} = \mathbf{A}^{T}  。 结论是公式 (7-28) 和 (7-29) 是一个互逆变换对。将公式 (7-29) 代入 (7-28) 得到  \mathbf{t} = \mathbf{Af }= \mathbf{AA}^{T}\mathbf{t} = \mathit{I}  , 而将 (7-28) 代入 (7-29) 得到 \mathbf{f} = \mathbf{A}^{T}\mathbf{t} = \mathbf{A}^{T}\mathbf{AF} = \mathbf{f}  。

对于二维方形数组或图像,公式 (7-16) 和 (7-17) 成为

(7-31)                \displaystyle T ( u, v ) = \sum_{x=0}^{N-1}\sum_{y=0}^{N-1}f(x,y)r(x,y,u,v)

和

(7-32)                 \displaystyle f ( x, y ) = \sum_{u=0}^{N-1}\sum_{v=0}^{N-1}T(u,v)s(x,y,u,v)

其中,r ( x ,y , u , v ) 和 s ( x ,y , u , v ) 分别是正向(forward) 和 逆向(inverse) 变换核。变换 T ( u, v ) 和逆变换核 s ( x ,y , u , v ) 同样可以分别视为加权系数和基向量,且公式 (7-32) 定义了 f ( x ,y  ) 的一个线性扩展。正如第 2 章中所指出的那样,若

(7-33)                r( x ,y , u , v ) = r_{1}( x , u )r_{2}( y , v ) 

则正向变换核 r ( x ,y , u , v ) 是可分离的,而若 r_{1}  在功能上等于 r_{2}    ,因此有

(7-34)                r( x ,y , u , v ) = r_{1}( x , u )r_{1}( y , v )

则正向变换核 r ( x ,y , u , v ) 是对称的。若变换核是实数且正交的,且 r 和 s 是可分离且对称的,则公式 (7-31) 和 (7-32) 的矩阵等价对象是

(7-35)                 \mathbf{T} = \mathbf{AFA}^{T}

和

(7-36)                \mathbf{F} = \mathbf{A}^{T}\mathbf{TA}

其中, F 是一个包含 f ( x ,y ) 之元素的矩阵,F 是其 N × N 变换矩阵,且 A 如前述公式 (7-24) 所定义。在公式 (7-35) 中用 A 左乘和用 \mathbf{A}^{T}  右乘F 分别计算出了 F 的列变换和行变换。实际上,这将这个二维变换分解成了两个一维变换, 该过程与第 4.11 节中描述的二维离散 Fourier变换过程类似。

例子 7.2: 一个简单的正交变换。

    考虑 2 元素基向量 

\displaystyle s_{0}=\frac{1}{\sqrt{2}}\begin{bmatrix} 1\\1\end{bmatrix}   和  \displaystyle s_{1}=\frac{1}{\sqrt{2}}\begin{bmatrix} 1\\-1\end{bmatrix}

并注意到,根据公式 (7-30),有

\displaystyle < \mathbf{s}_{0} , \mathbf{s}_{1} > = \mathbf{s}_{0}^{T} \mathbf{s}_{1} =\frac{1}{2}\begin{bmatrix}1&1 \end{bmatrix}\begin{bmatrix}1\\-1 \end{bmatrix}=\frac{1}{2}(1-1)=0

  \displaystyle < \mathbf{s}_{1} , \mathbf{s}_{0} > = \mathbf{s}_{1}^{T} \mathbf{s}_{0} =\frac{1}{2}\begin{bmatrix}1&-1 \end{bmatrix}\begin{bmatrix}1\\1 \end{bmatrix}=\frac{1}{2}(1-1)=0

\displaystyle < \mathbf{s}_{0} , \mathbf{s}_{0} > = \mathbf{s}_{0}^{T} \mathbf{s}_{0} =\frac{1}{2}\begin{bmatrix}1&1 \end{bmatrix}\begin{bmatrix}1\\1 \end{bmatrix}=\frac{1}{2}(1+1)=1

\displaystyle < \mathbf{s}_{1} , \mathbf{s}_{1} > = \mathbf{s}_{1}^{T} \mathbf{s}_{1} =\frac{1}{2}\begin{bmatrix}1&-1 \end{bmatrix}\begin{bmatrix}1\\-1 \end{bmatrix}=\frac{1}{2}(1+1)=1

将  \mathbf{s}_{0}  和  \mathbf{s}_{1}  代入公式 (7-24)( N = 2 ) 即得到变换矩阵

(7-37)                \displaystyle \mathbf{A}=\begin{bmatrix}\mathbf{s}_{0}&\mathbf{s}_{1} \end{bmatrix}^{T}=\frac{1}{\sqrt{2}} \begin{bmatrix} 1&1\\ 1&-1 \end{bmatrix}

并根据公式 (7-35) 求得 2 × 2 变换矩阵

\displaystyle \mathbf{F}=\begin{bmatrix}20&63\\21&128 \end{bmatrix}

求解过程为:

\begin{array}{rlc} \displaystyle \mathbf{T}=&\displaystyle\left (\frac{1}{\sqrt{2}} \right )^{2}\begin{bmatrix} 1&1\\1&-1\end{bmatrix}\begin{bmatrix} 20&63\\21&128\end{bmatrix}\begin{bmatrix} 1&1\\1&-1\end{bmatrix}^{T} \\\\=&\displaystyle \frac{1}{2}\begin{bmatrix} 41&191\\-1&-65\end{bmatrix}\begin{bmatrix} 1&1\\1&-1\end{bmatrix}=\displaystyle \frac{1}{2}\begin{bmatrix} 232&-150\\-66&64\end{bmatrix} \\ \\ =&\displaystyle \begin{bmatrix} 116&-75\\-33&32\end{bmatrix} \end{array}

根据公式 (7-36) ,变换矩阵 T 的逆矩阵是

\begin{array}{rlc} \displaystyle \mathbf{F}=&\displaystyle\left (\frac{1}{\sqrt{2}}\right )^{2}\begin{bmatrix} 1&1\\1&-1\end{bmatrix}^{T}\begin{bmatrix} 116&-75\\-33&32\end{bmatrix}\begin{bmatrix} 1&1\\1&-1\end{bmatrix} \\\\=&\displaystyle \frac{1}{2}\begin{bmatrix} 83&-43\\149&-107\end{bmatrix}\begin{bmatrix} 1&1\\1&-1\end{bmatrix}\\\\ =&\displaystyle \begin{bmatrix} 20&63\\21&128\end{bmatrix} \end{array}

最后,我们注意到 A 是一个正交变换矩阵,因为

\displaystyle \mathbf{A}\mathbf{A}^{T}=\frac{1}{\sqrt{2}}\begin{bmatrix} 1&1\\1&-1\end{bmatrix} \frac{1}{\sqrt{2}}\begin{bmatrix} 1&1\\1&-1\end{bmatrix}^{T}= \frac{1}{2}\begin{bmatrix} 2&0\\0&2\end{bmatrix}=\begin{bmatrix} 1&0\\0&1\end{bmatrix}=\mathbf{I}

且  \mathbf{A}^{-1} = \mathbf{A}^{T}  。值得注意的是,公式 (7-37) 是离散Fourier变换, Hartley变换、余弦变换,正弦变换 ,Walsh-Hadamard变换,斜变换(Slant)和Haar变换的变换矩阵,分别适用于大小为 2 × 1 和 2 × 2 的一维和二维输入。这些变换将在第 7.6 节至第 7.9 节中详细讨论。

尽管公式 (7-35) 和 (7-36) 是针对实数正交基和方阵推导的,但它们可以进行修改,以适应各种情况,包括矩形矩阵、复数值基向量和双正交基。

7.2.1  矩形数组(Rectangular arrays)

    当待变换的数组为矩形而非方形时,公式(7-35)和(7-36)变为

(7-38)                \mathbf{T} = \mathbf{A}_{M}\mathbf{F}\mathbf{A}_{N}^{T}

和

(7-39)                \mathbf{F} = \mathbf{A}_{N}^{T}\mathbf{T}\mathbf{A}_{M}

其中, \mathbf{F} , \mathbf{A}_{M}  ,和  \mathbf{A}_{N}    的大小分别为 M × N   ,M × M   ,N × N   。  \mathbf{A}_{M} 和 \mathbf{A}_{N}  均根据公式 (7-24) 而定义。

例子 7.3:  计算矩形数组的变换。

M 和 N 分别为 2 和 3 的一个简单的变换是

\begin{array}{rlc} \displaystyle \mathbf{A}=&\displaystyle \mathbf{A}_{2}\mathbf{F}\mathbf{A}_{3}^{T}=\frac{1}{\sqrt{2}}\begin{bmatrix} 1&1\\1&-1\end{bmatrix}\begin{bmatrix} 5&100&44 \\6&103&40\end{bmatrix}\frac{1}{\sqrt{3}}\begin{bmatrix} 1&1&1\\1&0.366&-1.366\\ 1&-1.366&0.366 \end{bmatrix}\\\\ =&\displaystyle \frac{1}{\sqrt{6}}\begin{bmatrix} 11&203&84\\-1&-3&4 \end{bmatrix}\begin{bmatrix} 1&1&1\\1&0.366&-1.366\\1&-1. 366&0.366\end{bmatrix}=\begin{bmatrix} 11&203&84\\-1&-3&4 \end{bmatrix} \end{array}

其中,矩阵 F , \mathbf{A}_{2}  和  \mathbf{A}_{3}    如计算的第一步中定义。可以预期,2 × 3 输出矩阵 T 之大小同 F 之大小。证明 \mathbf{A}_{3}  是正交变换矩阵,并且可以使用公式 (7-39) 进行逆变换,这留作读者的习题(参见习题 7.5)。  \mathbf{A}_{2}  的正交性已在例 7.2 中证明。

7.2.2  复正交正规基向量(Complex orthonormal  basis vectors)

    当且仅当  

(7-40)               \displaystyle < s_{k} , s_{l} > = < s_{l} ,s_{k} >^{*} = s_{k}^{*T} s_{l} = \delta_{kl} = \left \{ \begin{array}{l}0\hspace{0.2cm}(k \ne l)\\\\1 \hspace{0.2cm}(k=l)\end{array} \right.

(其中,* 表示复共轭运算) 时,复数值基向量是正交的。当基向量是复数时,与实数情况相反,公式 (7-35) 和 (7-36) 分别成了

(7-41)                \mathbf{T} = \mathbf{AFA}^{T}  

和

(7-42)                \mathbf{F} = \mathbf{A}^{*T}\mathbf{TA}^{*}

变换矩阵 A 则称为一个幺正矩阵(a unitary matrix),而公式 (7-41) 和 (7-42) 则称为一个幺正变换对。A的一个重要且实用的属性是,\mathbf{A^{*\mathit{T}}A = AA^{*\mathit{T}} = A^{*} A^{\mathit{T}} = A^{T} A^{*} = I }  ,因此  \mathbf{A}^{-1} = \mathbf{A}^{*T}   。公式 (7-41) 和 (7-42) 对应的一维情况是

(7-43)                 \mathbf{t = Af }

和

(7-44)                \mathbf{f = A^{*\mathit{T}}t }

例子 7.4:  具有复值基向量的一个变换。

    与正交变换矩阵不同,正交变换矩阵的逆矩阵等于其转置矩阵,而幺正变换矩阵的逆矩阵则是其共轭转置。令

(7-45)                \mathbf{A}=\begin{bmatrix} 1&1&1 \\ 1&-0.5-j0.866&-0.5+j0.866\\ 1&-0.5+j0.866&-0.5-j0.866 \end{bmatrix}

则

\begin{array}{rlc} \displaystyle \mathbf{A}^{*T}\mathbf{A}=&\displaystyle \frac{1}{\sqrt{3}}\begin{bmatrix} 1&1&1 \\ 1&-0.5-j0.866&-0.5+j0.866\\ 1&-0.5+j0.866&-0.5-j0.866 \end{bmatrix}^{*T}\frac{1}{\sqrt{3}}\begin{bmatrix} 1&1&1 \\ 1&-0.5-j0.866&-0.5+j0.866\\ 1&-0.5+j0.866&-0.5-j0.866\end{bmatrix}\\ \\ =&\displaystyle \frac{1}{3} \begin{bmatrix} 1&1&1 \\ 1&-0.5+j0.866&-0.5-j0.866\\ 1&-0.5-j0.866&-0.5+j0.866\end{bmatrix}\begin{bmatrix} 1&1&1 \\ 1&-0.5-j0.866&-0.5+j0.866\\ 1&-0.5+j0.866&-0.5-j0.866\end{bmatrix} \\ \\ =&\displaystyle \frac{1}{3} \begin{bmatrix} 3&0&0 \\0&3&0\\0&0&3\end{bmatrix}=\mathbf{I} \end{array}

其中 ,j=\sqrt{-1}  ,且矩阵 A 是一个幺正矩阵,可以用于从 (7-41) 到 (7-44) 的公式中。不难证明(见问题 7.4),当  \mathbf{A}^{*T}\mathbf{A} = \mathbf{I}  时 ,A中的基向量满足 (7-40),因此是正交的。

7.2.3  双正交正规基向量(Biorthonormal  basis vectors)

    对于公式(7-24)中的扩展函数   \mathbf{s}_{0} , \mathbf{s}_{1} ,...,\mathbf{s}_{N-1}  , 若存在一个对偶扩展函数(dual expansion functions)集  \tilde{\mathbf{s}}_{0} , \tilde{\mathbf{s}}_{1} ,...,\tilde{\mathbf{s}}_{N-1}   使得

(7-46)                \displaystyle < \tilde{\mathbf{s}}_{k} , \tilde{\mathbf{s}}_{l} > = {\delta}_{kl} = \left \{ \begin{array}{lc} 0\hspace{0.2cm}(k \ne l) \\ \\ 1\hspace{0.2cm}(k = l) \end{array} \right .

则此扩展函数是双正交正规化的。扩展函数及其对偶函数本身都不需要是正交正规化的。已知一个双正交正规扩展函数集,公式 (7-35) 和 (7-36) 成为

(7-47)                \mathbf{T} = \tilde{\mathbf{A}}\mathbf{F}\tilde{\mathbf{A}}^{T}

和

(7-48)                 \mathbf{F} = \mathbf{A}^{T}\mathbf{TA}

变换矩阵 A  仍如公式 (7-24) 所定义;对偶变换矩阵  \tilde{\mathbf{A}} =\begin{bmatrix} \tilde{\mathbf{s}}_{0}&\tilde{\mathbf{s}}_{1}&\hdots&\tilde{\mathbf{s}}_{N-1} \end{bmatrix}^{T}  是一个 N × N 矩阵,其行是转置对偶扩展函数。当扩展函数和其对偶函数相同时,即当  \tilde{\mathbf{s}}_{u} = \mathbf{s}_{u}  时,公式 (7-47) 和 (7-48) 分别简化为    (7-35) 和 (7-36)。公式 (7-47) 和 (7-48) 的一维形式:

(7-49)                \mathbf{t} = \tilde{\mathbf{A}}\mathbf{f}

和

(7-50)                \mathbf{f} = \mathbf{A}^{T}\mathbf{t}

例子 7.5:  一个双正交正规变换。

\displaystyle \mathbf{A}=\begin{bmatrix} 0.5&0.5&0.5&0.5 \\ -1&-1&1&1\\ -0.5303&0.5303&-0.1768&0.1768\\ -0.1768&0.1768&-0.5303&0.5303 \end{bmatrix}

和 

\displaystyle \widetilde{\mathbf{A}}=\begin{bmatrix} 0.5&0.5&0.5&0.5 \\ -0.25&-0.25&0.25&0.25\\ -1.0607&1.0607&0.3536&-0.3536\\ 0.3536&-0.3536&-1.0607&1.0607 \end{bmatrix}

证明 \mathbf{A} 和  \widetilde{\mathbf{A}}   是对正交正规矩阵的工作留给读作作为练习(见问题 7.16),一维列向量 \mathbf{f} = \begin{bmatrix}30&11&210&6\end{bmatrix}^{T }   的变换是

\begin{array}{rlc}\mathbf{t} = \widetilde{\mathbf{A}}\mathbf{f} =\begin{bmatrix} 0.5&0.5&0.5&0.5 \\ -0.25&-0.25&0.25&0.25\\ -1.0607&1.0607&0.3536&-0.3536\\ 0.3536&-0.3536&-1.0607&1.0607 \end{bmatrix}\begin{bmatrix}30\\11\\210\\6 \end{bmatrix}=\begin{bmatrix}128.5\\43.75\\51.9723\\-209.6572 \end{bmatrix} \end{array}

由于

< \mathbf{f} , \mathbf{f} > = \mathbf{f}^{T}\mathbf{f} = \begin{bmatrix}30&11&210&6 \end{bmatrix}\begin{bmatrix}30\\11\\210\\6 \end{bmatrix}=45,157

且    < \mathbf{t} , \mathbf{t} > = \mathbf{t}^{T}\mathbf{t} = 65,084  其不等于 < f , f  > ,因此,这个变换不保留内积。然后,它是可逆的:

\begin{array}{rlc} \mathbf{f} = \mathbf{A}^{T}\mathbf{t}=\displaystyle \begin{bmatrix} 0.5&0.5&0.5&0.5 \\ -1&-1&1&1\\ -0.5303&0.5303&-0.1768&0.1768\\ -0.1768&0.1768&-0.5303&0.5303 \end{bmatrix}\begin{bmatrix}128.5\\43.75\\51.9723\\-209.6572 \end{bmatrix}=\begin{bmatrix}30\\11\\210\\6 \end{bmatrix}\end{array}

在此,分别通过使用公式 (7-49) 和 公式 (7-50) 计算正向和逆向变换。

    最后,我们注意到,本节中提出的大部分概念都可以推广到以下形式的连续展开式:

(7-51)        \displaystyle f (x) = \sum_{u=-\infty}^{\infty}\alpha_{u}s_{u}(x)

其中, \alpha_{u}  和  s_{u}(x)  ( u = 0, {\pm}1, {\pm}2, ... )  分别表示内积空间 C([a,b]) 的扩展系数和基向量。对于一个已知的 f (x)  和基   s_{u}(x)( u = 0, {\pm}1, {\pm}2, ... )   ,可以根据C([a,b]) 空间中积分内积的定义(即公式 (7-10) 到 (7-15))和所有内积空间的一般属性(即公式(7-15)到公式(7-15))计算出相应的展开系数。因此(例如),若    s_{u}(x)( u = 0, {\pm}1, {\pm}2, ... )  是 C([a,b]) 正交正规基向量,则

(7-52)         \alpha_{u} = < s_{u}(x) , f (x) >  

在此,我们只是简单地将公式 (7-13) 中的 i , z , 和 w_{i}   替换为 u , f (x), 和 s_{u}(x)  。在下一个例子中,公式  (7-52)  将用于连续 Fourier 级数的推导。

例子 7.6:  Fourier 级数和离散 Fourier 变换。

    将一个周期为 T 的连续周期函数的表达式视为形如

(7-53)                \displaystyle s_{u}(x) = \frac{1}{\sqrt{T}} e^{j2{\pi}ux/T}\hspace{0.2cm} ( u = 0, {\pm}1, {\pm}2, ... )

的正交正规基向量的一个线性展开式。根据公式 (7-51) 和 (7-52) ,有

(7-54)                 \begin{array}{rlc}\displaystyle f(x) =&\displaystyle \sum_{u=-\infty}^{\infty}\alpha_{u}\left [ \frac{1}{\sqrt{T}} e^{j2{\pi}ux/T}\right ] \\\\ =&\displaystyle \frac{1}{\sqrt{T}}\sum_{u=-\infty}^{\infty}\alpha_{u}\left [ e^{j2{\pi}ux/T}\right ] \end{array}

和

(7-55)                \begin{array}{rlc}\displaystyle \alpha_{u} =&\displaystyle <s_{u}(x),f(x)>\\ \\ =&\displaystyle \int_{-T/2}^{T/2} \left [ \frac{1}{\sqrt{T}} e^{j2{\pi}ux/T}\right ]^{*}f(x)dx \\\\ =&\displaystyle \frac{1}{\sqrt{T}}\int_{-T/2}^{T/2}\left [ e^{j2{\pi}ux/T}\right ]^{*}f(x)dx \end{array}

除了变量名和正规化(即,上述两个公式中 \displaystyle \frac{1}{\sqrt{T}}  的使用,而不是在其中之一中仅使用 1/T ),公式 (7-54) 和 (7-55) 是第4章中我们熟悉的公式 (4-8) 和 (4-9) 的 Fourier 级数。按照几乎相同的推导(留作读者练习(见问题 7.22))可得出公式 (7-53) 到 (755)的离散形式:

(7-56)                \displaystyle s(x,u) = \frac{1}{\sqrt{N}}e^{j2{\pi}ux/N} \hspace{0.2cm}( u = 0, {\pm}1, {\pm}2, ... )  

(7-57)                \displaystyle f ( x ) = \frac{1}{\sqrt{N}}\sum_{u=0}^{N-1}T(u)e^{j2{\pi}ux/N}

和

(7-58)                \displaystyle T(u) = \frac{1}{\sqrt{N}}\sum_{x=0}^{N-1}f(x)e^{-j2{\pi}ux/N}

公式 (7-56) 的离散复基向量是内积空间  \mathbf{C}^{N}  的一个正交正规基。公式 (7-58) 和 (7-57) (除了变量名和正规化形式)是第 4 章中我们熟悉的公式 (4-44) 和 (4-45) 的离散 Fourier变换(和逆变换)。

    现在考虑使用公式 (7-55) 和 (7-58) 来计算周期 T = 1 的函数  f ( x ) = sin(2πx) 之离散级数和离散 Fourier 变换。根据公式 (7-55),有

\begin{array}{rlc} \displaystyle \alpha_{1}=&\displaystyle\int_{-\frac{1}{2}}^{\frac{1}{2}}\left [ \frac{1}{\sqrt{1}}e^{j2{\pi}(1)x/1}\right ]^{*}\sin(2{\pi}x)dx \\ \\ =&\displaystyle\int_{-\frac{1}{2}}^{\frac{1}{2}}e^{-j2{\pi}x}\sin(2{\pi}x)dx \\ \\ =&\displaystyle\int_{-\frac{1}{2}}^{\frac{1}{2}}\left [\cos(2{\pi}x)-j\sin{(2{\pi}x)} \right ]\sin{(2{\pi}x)}dx \\ \\ =&\displaystyle \frac{1}{4\pi}\sin^{2}(2{\pi}x)-j\left [\frac{x}{2}-\frac{1}{8\pi}\sin(4{\pi}x) \right ]\bigg \vert_{-\frac{1}{2}}^{\frac{1}{2}} \\ \\ =&\displaystyle -j0.5 \end{array}

按照同样的方式,有 \alpha_{-1} = j0.5  ,由于所有其它系数都是0 ,因此最终的 Fourier  级数是

(7-59)                \displaystyle f ( x ) = j0.5e^{-j2{\pi}x} - j0.5e^{j2{\pi}x}

在另一方面,根据公式 (7-58)( N = 8 ) 和  f ( x ) = \sin(2{\pi}x)\hspace{0.2cm}( x = 0 ,1 ,...,7 )  求得

(7-60)     \displaystyle T(u)=\left \{ \begin{array}{lc} -j1.414(u=1) \\ \\ +j1.414(u=7) \\ \\ 0(\rm{otherwise}) \end{array} \right .

图 7.2 将两种计算都描述为“矩阵乘法”,其中连续或离散的基向量(矩阵 A 的行)与连续或离散函数(列向量 f )相乘,然后进行积分或求和,从而得到一组离散的展式或变换系数(列向量 t )。对于Fourier级数,展开系数是 sin(2πx) 与一组可能无限的连续基向量之一的积分内积。对于离散Fourier变换 (DFT),每一个变换系数是 f 与八个离散基向量之一的离散内积,如公式 (7-2) 所示。请注意,由于 DFT 基于复数正交基向量,因此可以将其计算为矩阵乘法 [根据公式 (7-43)]。因此,生成变换向量 t 元素的内积都包含在矩阵乘法 Af 中。即,t 的每一个元素都是通过将 A 的一行(即一个离散展开函数)与 f 逐元素相乘,然后对所得乘积求和而形成的。

----------------------------------------图 7.2:将 f (x) = sin(2πx) 的连续Fourier级数和 8 点 DFT 表示为“矩阵乘法”。所有复数的实部和虚部分别用蓝色和黑色表示。连续函数和离散函数分别用直线和点表示。虚线用于表示 \mathbf{s}_{5} = \mathbf{s}_{3}^{*}  ,  \mathbf{s}_{6} = \mathbf{s}_{2}^*  ,且 \mathbf{s}_{7} = \mathbf{s}_{1}^{*}  ,这有效地将离散 Fourier 变换的最大频率减半。t 左侧的负索引仅用于Fourier级数计算。--------------------------------------

7.3  相关性(Correlation)

    例 7.6 阐明了内积在计算正交变换系数中的作用。在本节中,我们将重点探讨这些系数与相关性之间的关系。

    已知两个连续函数 f (x) 和 g (x) ,则 f 和 g 之间的相关性(用 f ☆ g(Δx) 表示)定义为

(7-61)                

f  ☆ g (Δx)  = \int_{-\infty}^{\infty}f^{*}(x)g(x+{\Delta}x)dx=< f (x) , g (x + {\Delta}x ) >

其中,最后一步可以根据公式 (7-3)(其中 a = -∞ 和 b = ∞  )推导出。有时候相关性又称为 f  和 g  的滑动内积(sliding inner product),相关性度量了 f (x) 和 g (x) 作为它们的相对位移 Δx 的一个函数的相似性。若 Δx = 0 ,则

(7-62)        f ☆ g (0) = < f (x) , g (x ) >

且公式 (7-52) (其定义了公式 (7-51) 中连续正交正规展示之系数)可以改写为

(7-63)        \alpha_{u} = < f , s_{u} >  = f  ☆  s_{u}(0)  

因此,当偏移量 Δx  是0 的时候,这个展式系数呈单点相关性(single-point correlations)。每一个  \alpha_{u}   都度量了 f (x) 与一个 s_{u}(x)  的相似性。

公式 (7-61) 到 (7-63) 的离散等价形式分别为

(7-64)                f ☆ g(m) =  \sum_{x=-\infty}^{\infty}f_{n}^{*} g_{n+m}

7-65)                 f ☆g(0) = < f  , g > 

和

(7-66)                T_{u} = < s_{u} , f > = s_{u}  ☆ f(0)

与关于公式 (7-63) 和连续级数展开式所做的评注类似,我们也可以对公式 (7-66) 和离散正交变换进行类似的评注。正交变换的每一个元素(即公式 (7-23) 中的变换系数 T (u))都是一个单点相关,用于衡量函数 f 和向量 s_{u} 之间的相似性。正交变换的这一强大特性是识别和消除第 2 章例 2.11 图 2.45(a) 和第 4 章例 4.25 图 4.65(a) 中正弦干扰的基础。

例子 7.7:  例 7.6中DFT中的相关性。

    再次考虑示例 7.6 中的 8 点 DFT,并注意,根据公式 (7-56),基向量是以下谐波相关角频率的复指数:0 , 2π, 4π, 6π, 8π, 6π, 4π 和 2π (由于混叠效应,最后三个频率分别由 10π , 12π , 和 14π 降至 6π ,4π 和 2π )。由于离散输入 f (x) = sin(2πx) 是角频率为 2π 的单频正弦波,因此 f 应该与基向量 \mathbf{s}_{1}  和  \mathbf{s}_{7}  高度相关。如图 7.2 所示,变换 t  确实在 u = 1 和 7 处达最大值;它仅在这两个频率处非零。

7.4  时频平面中的基函数(Basis functions in the time-frequency plane)

    由于(相关性)变换度量的是函数与一组选定的基向量的相似程度,因此我们现在将注意力转向基向量本身。在接下来的讨论中,基向量和基函数这两个术语是同义的。

    如图 7.3 所示,图中描绘了一些常用变换的基向量,大多数正交基都是由正弦波、方波、斜坡波以及其他称为小波的微小波形组成的数学上的相关集合。如果 h(t) 是一个基向量,g(t) 是待变换的函数,则变换系数 g☆h(0)(如前一节所述)是度量 g 和 h 相似性的指标。较大的 g☆h(0) 值表明 g 和 h 在时间和频率上具有重要的共同特征(例如,形状和带宽)。因此,如果 h 是图 7.3(d) 中 u = 1 处的斜坡形基函数,则变换系数 g☆ h(0) 可用于检测图像一行像素上的线性亮度梯度。在另一方面,若 h 是类似图 7.3(a) 中的那样的正弦基函数,则 g☆h(0) 可用于检测(spot)正弦干扰模式。类似图 7.3 所示的图以及像 g☆h(0) 这样的相似性度量可以揭示待变换函数的大量时间和频率特性。

------------------------------图 7.3:一些常用变换的基向量( N = 16 ):(a) Fourier基(实部和虚部),(b) 离散余弦基,(c) Walsh-Hadamard 基,(d) 斜基,(e) Haar 基,(f) Daubechies 基,(g) 双正交 B 样条基及其对偶基,以及 (h) 标准基,该基仅用于参考(即不作为任何变换的基)。-----------------------------------------

h的一个纯粹客观的描述符(因此就有当 g☆h(0) 取大值时g的纯粹客观描述符)是 h在图 7.4(a)的时频平面上的位置(location)。令 p_{h}(t) = |h(t)|^{2}/{\Vert}h(t){\Vert}^{2}  为一个概率密度函数,其均值为

(7-67)                \displaystyle \mu_{t}=\frac{1}{​{\Vert}h(t)\Vert^{2}}\int_{-\infty}^{\infty}t|h(t)|^{2}dt

而其方差(variance)是

(7-68)                \displaystyle \sigma_{t}^{2}=\frac{1}{​{\Vert}h(t)\Vert^{2}}\int_{-\infty}^{\infty}(t-\mu_{t})^{2}|h(t)|^{2}dt

并令         p_{H}( f ) = |H(f)|^{2}/||H(f)||^{2}  为另一个概率密度函数,其均值为

(7-69)         \displaystyle {\mu}_{f} = \frac{1}{||H(f)||^{2}}\int_{-\infty}^{\infty}f|H(f)|^{2}df

而其方差是

(7-70)        \displaystyle \sigma_{f}^{2} = \frac{1}{||H(f)||^{2}}\int_{-\infty}^{\infty}(f-\mu_f)^{2}|H(f)|^{2}df

其中,f  表示频率,而 H( f  ) 是 h(t) 的Fourier 变换。则基函数 h的能量(注:连续函数 h(t) 的能量是 \int_{-\infty}^{\infty}f|h(t)|^{2}dt  ( 如图7.4(a) )汇聚于时频平面上的   ( \mu_{t} , \mu_{f})  处。大部分能量集中在一个面积为  4\sigma_{t}\sigma_{f}  的矩形区域(称为 Heisenberg 箱(box)或单元(cell))内,且这个矩阵区域满足

(7-71)        \displaystyle \sigma_{t}\sigma_{f} \ge \frac{1}{16\pi^{2}}  

由于一个函数的支集可以定义为函数基其上非零的点集,根据 Heisenberg 不确性原理,一个函数不可能同时在时间和频率上具有有限支集。公式 (7-71)(称为 Heisenberg-Gabor  不等式) ,这为图 7.4(a) 中Heisenberg单元的面积设定了一个下限,这表明   \sigma_{t}  和  \sigma_{f}  不可能同时为任意小。因此,当图 7.4(b) 中的基函数  \delta(t-t_{0})  在时间上是完全局部化时[即  \delta_{t}=0  ,因为 \delta(t-t_{0})  的宽度是零],其谱在整个f 轴上是非零的。即由于  \frak{F}(\delta(t - t_{0})) = \exp( -j2{\pi}ft_{0} )  且  | \exp( -j2{\pi}ft_{0} )| = 1   ( 对于所有 f ) ,因此  \sigma_{f}=\infty  。结果是在时频平面上形成一个宽度极小、高度无限的Heisenberg单元。在另一方面,图 7.4(c) 的基函数  \exp( 2{\pi}f_{0}t )   在整个时间轴上是完全非零的,但是在频率上是完全局部化的。因为  \frak{F}(\exp( 2{\pi}f_{0}t )) = \delta( f - f_{0} )  ,谱  |\delta( f - f_{0} )|  在所有频率处都为零而非  f=f_{0}  。Heisenberg单元是无限宽的  (  \sigma_{t}=\infty  ) 而在高度上是无限无穷小的 ( \sigma_{f}=0  ) 。如图  7.4(b) 和 (c) 所示,时间上的完全局部化伴随着频率上局部化的损失,反之亦然。

----------------------------图 7.4:(a) 基函数在时频平面上的局部化表示。(b) 一个标准基函数、其频谱及其在时频平面上的位置。(c) 一个复正弦基函数(其实部和虚部分别用实线和虚线表示)、其频谱及其在时频平面上的位置。----------------------------

再次回到图 7.3 ,请注意,图 7.3(a) 中的离散Fourier变换 (DFT) 基和图 7.3(h) 中的其它标准基分别是图 7.4(c) 和 (b) 中脉冲函数和复指数函数的离散示例(N = 16)。图 7.3 上半部分中的每一个其它基都按基于索引 u 进行频率排序的,且宽度或支集(support)均为 16 。对于给定的 u ,它们在时频平面上的位置相似。当 u 为 8 时,这一点尤为明显,此时基函数完全相同,它们的 Heisenberg 单元也相同。对于所有其它的 u ,Heisenberg 单元参数 \mu_{t} ,\sigma_{t} ,\mu_{f}  ,和  \sigma_{f}  在值是上封闭的。这主要归因于余弦波、斜坡波和方波的不同的形状,它们存在一些细微的差别。类似地,图 7.3 下半部分的基函数(除了前面讨论过的标准基函数)对于给定的 u 也具有相似性。这些基函数是经过缩放和平移的微小波(small waves)(称为小波(wavelet)),其形式为

(7-72)                \displaystyle {\psi}_{s,\tau}(t)=2^{s/2}{\psi}(2^{s}t-\tau)

其中,s 和 τ 是整数,而母小波(mother wavelet) ψ(t ) 是实数,即为一个具有带通滤波器状频谱(bandpass-like spectrum)的平方可积函数。参数 τ    确定了  t  轴上  {\psi}_{s,\tau}(t)  的位置,s   确定了其宽度——即,其沿 t 轴的宽度或窄度, 2^{s/2}   控制其幅度。

结合适当设计的母小波,公式 (7-72) 生成了一个以图 7.5 右侧所示的Heisenberg单元为特征的基函数,令 Ψ( f ) 为 ψ(t) 的Fourier变换,时间尺度小波  \psi(2^{s} t)  的变换是

(7-73)                \displaystyle \frak{F}(\psi(2^{s} t)) = \frac{1}{|2^{s}|}\Psi\left (\frac{f}{|2^{s}|}\right )

且对于 s 的正值,这个谱是拉伸的——将每一个频率分量移动高过 2^{s}  的一个因子。正如例子 4.1 中的矩形脉冲所示,时间压缩会导致频谱展宽。图 7.5(b)–(d) 以图形方式展示了这一点。请注意,图 7.5(c) 中基函数的宽度是图 7.5(d) 中基函数宽度的一半,而其频谱的​​宽度却是图 7.5(d) 中频谱宽度的两倍。其频率向上偏移了两倍。与图 7.5(c) 相比,图 7.5(b) 中的基函数和频谱也具有相同的特性。这种时间支集范围减半和频率支集范围加倍的现象产生了宽度和高度不同但面积相等的 Heisenberg 单元。此外,图 7.5 右侧的每一行单元格都代表一个唯一的尺度 s 和频率范围。同一行中的单元在时间上互相平移。根据第4章公式 (4-71) 和表 4.4 ,若 ψ(t) 在时间上平移 τ ,则

(7-74)                 \frak{F}(\psi(t - \tau)) = e^{-j2{\psi}{\tau}f}\Psi(f)

因此,| 𝔉(ψ(t - τ))| = |Ψ( f  )| 且时间偏移后的子波的频谱是相同的。图 7.5(a) 和 (b) 中的基函数证明了这一点。请注意,它们的 Heisenberg 单元大小相同,只是位置不同。

------------图 7.5: 128点Daubechies基函数的时间和频率局部化特性。------------

上述论述的一个重要结论是,每一个小波基函数都具有唯一的谱和时间位置。因此,基于小波变换的变换系数(作为度量被变换函数与相应小波基函数相似度的内积)同时提供了频率和时间信息。它们为被变换函数提供了类似于乐谱的信息,不仅揭示了应该演奏哪些音符,还揭示了何时演奏这些音符。图 7.3 下半部分所示的所有小波基都具有这一特性。图中上半部分的基函数只能提供音符信息;时间信息在变换过程中丢失,或者很难从变换系数中提取出来(例如,从Fourier变换的相位分量中提取)。

7.5  基图像(Basis images)

    由于 7.2 节中公式 (7-32) 中的逆变换核仅取决于索引 x , y ,u ,v 而不取决于 f ( x ,y ) 或 T(u ,v ) 的值,公式 (7-32) 可以改写为矩阵和

(7-75)                \displaystyle F = \sum_{u=0}^{N-1}\sum_{v=0}^{N-1}T(u ,v )S_{(u,v)}

其中,F  是一个包含 f ( x ,y ) 之元素的 N × N 矩阵且对于 u ,v  = 0 ,1 ,…,N – 1 ,有

(7-76)                S_{u,v}= \begin{bmatrix} s(0,0,u,v)&s(0,1,u,v)&\hdots&s(0,N-1,u,v) \\ s(1,0,u,v)&\vdots&\hdots&\vdots \\ \vdots&\vdots&\hdots&\vdots \\ \vdots & & & \\ s(N-1,0,u,v)&&\hdots&s(N-1,N-1,u,v) \end{bmatrix}

F  则显式地定义为 N 个大小为 N × N 的矩阵的一个线性组合,即  S_{u,v}  ( 对于 u ,v  = 0 ,1 ,…,N – 1 )。若底层 s( x , y ,u ,v)是实数值、可分离且对称的,则

(7-77)                 \mathbf{S}_{u,v} = \mathbf{s}_{u} \mathbf{s}_{v}^{T}

其中, \mathbf{s}_{u}  和  \mathbf{s}_{v}  如前述公式 (7-22) 所定义。在数字图像处理的语境中,F是一幅二维图像,而 \mathbf{S}_{u,v}  称为基图像。它们可以排列成一个 N × N 的矩阵,如图 7.6(a) 所示,从而简洁而可视化地表示了它们所表示的二维基函数。

例子 7.8:标准基的基图像。

图 7.3(h) 中的基是标准基 \{ \mathbf{e}_{0} , \mathbf{e}_{1} , .., \mathbf{e}_{N-1} \}  的一个具体实例( N = 16 ) ,其中, \mathbf{e}_{n}  是一个 N × 1 列向量,其第 n 个元素是 1 而所有其它元素是 0 。因为其为实数且正交的,因此,相应的正交变换矩阵[见公式(7-24)]是 A = I ,而相应的二维变换[见公式(7-35)] 矩阵是  \rm T = AFA^{\mathit{T}} = IFI^{\mathit{T}} = F      。即,F相对于标准基的变换仍然是 F——这证实了这样一个事实:当离散函数以向量形式表示时,它实际上是隐式地相对于标准基进行表示的。

图 7.6(b) 显示了尺寸为 8 × 8 的二维标准基的基图像。与图 7.3(h) 中的一维基向量类似,这些基向量仅在一个时间点(或 x 值)处非零,图 7.6(b) 中的基图像也仅在 xy 平面上的一个点处非零。这可以从公式 (7-77) 推导得出。由于 \mathbf{S}_{u,v} = \mathbf{e}_{u}\mathbf{e}_{v}^{T} = \mathbf{E}_{u,v}  ,其中,\mathbf{E}_{u,v}  是一个第 u 行第 v 列元素为1 其它元素为0的 N × N 矩阵。按同样的方式,图 7.7 中的 DFT 基图像由公式 (7-77)、公式 (7-22) 和一维 DFT 展开函数的定义方程(即公式 (7-56))推导而来。请注意,最大频率的 DFT 基图像出现在 u 和 v 都等于 4 的情况下,正如图 7.2 中最大频率的一维 DFT 基函数出现在 u = 4 的位置一样。

-------------------------------图 7.6:(a) 基图像的组织方式;(b) 一个标准尺寸为 8 × 8 的基图像。为了清晰起见,每个基图像周围都添加了灰色边框。每个基图像的原点( 即 x = y = 0 )位于其左上角。--------------------------------------------

----------------------------图 7.7:(a) N = 8 时离散 Fourier 变换的变换矩阵 AF ,其中 \omega= e^{-j2{\pi}/8}  或 ( 1 - j )/\sqrt{2}  。(b) 和 (c) 为 8 × 8 大小的离散 Fourier 变换基图像的实部和虚部。为了清晰起见,每一个基图像周围都添加了黑色边框。对于一维变换,矩阵 AF 与公式 (7-43) 和 (7-44) 结合使用;对于二维变换,它与公式 (7-41) 和 (7-42) 结合使用。--------------------------------------------------

7.6  Fourier相关变换(Fourier-related transform)

    正如第4章所述,实函数的Fourier变换是复数值的。在本节中,我们将探讨三种与Fourier变换相关的变换,它们的值都是实数而非复数——离散Hartley变换、离散余弦变换和离散正弦变换。这三种变换都避免了复数运算的复杂性,并且可以通过类似快速Fourier变换(FFT)之类的算法来实现。

7.6.1  离散Hartley变换(The discrete Hartley transform)

    离散Hartley变换(DHT)的变换矩阵是通过将逆变换核

(7-78)                        \begin{array}{rlc}\displaystyle s(x ,u) =&\displaystyle \frac{1}{\sqrt{N}}\cos \left (\frac{2{\pi}ux}{N} \right ) \\ \\ =&\displaystyle \frac{1}{\sqrt{N}}\left [\cos \left (\frac{2{\pi}ux}{N} \right ) +\cos \left (\frac{2{\pi}ux}{N} \right ) \right ] \end{array}

代入(7-22)和(7-24)而求得的,其可分离的二维形式是

(7-79)                        \displaystyle s(x,y,u,v) =\frac{1}{\sqrt{N}}\left [\text{cas} \left (\frac{2{\pi}ux}{N} \right ) \right ] \frac{1}{\sqrt{N}}\left [\text{cas} \left (\frac{2{\pi}vy}{N} \right ) \right ]

由于最终的 DHT 变换矩阵(在图 7.8 中用  \mathbf{A_{HY}}  表示 ) 是实数、正交且对称的, \mathbf{A}_\mathbf{​{HY}} = \mathbf{A_{HY}}^{T} = \mathbf{A_{HY}}^{-1}   和   \mathbf{A_{HY}}  可以用于正变换和逆变换。对于一维变换, \mathbf{A_{HY}}  与第 7.2 节中的公式 (7-28) 和 (7-29) 结合使用;对于二维变换,其与公式 (7-35) 和 (7-36) 结合使用。由于  \mathbf{A_{HY}}   是对称的,且正逆变换相同。

请注意图 7.8(a) 中谐波相关的 DHT 基函数与图 7.2 中 DFT 基函数的实部之间的相似性。不难证明

(7-80)                \begin{array}{rlc} \mathbf{A_{HY}} = &\displaystyle \mathbf{Real}\{\mathbf{A_{F}}\}-\mathbf{Image}\{ \mathbf{A_{F}} \} \\ \\ =&\displaystyle \mathbf{Real}\{(1+j)\mathbf{A_{F}}\} \end{array}

其中,\mathbf{A_{F}}  表示 DFT 的幺正变换矩阵。此外,由于 DFT 的实部[见公式(7-56)]是

(7-81)                \displaystyle \mathbf{Re}\{\mathbf{s_{F}}(x,u)\} = \mathbf{Re} \left \{\frac{1}{\sqrt{N}} e^{j2{\pi}ux/N }\right \} = \frac{1}{\sqrt{N}}\cos \left (\frac{2{\pi}ux}{N} \right )

且三角恒等式 \cos(\theta)=\sqrt{2}\cos(\theta - {\pi}/4)    可用于将 Hartley 核(见公式 7-78)重写为 

(7-82)                \displaystyle \mathbf{s_{H}}( x,u ) = \sqrt{\frac{2}{N}}\cos(\frac{2{\pi}ux}{N} - \frac{\pi}{4})

离散 Fourier 变换和 Hartley 变换的基函数是相互缩放和平移的版本——即,按  \sqrt{2}  缩放再按  \pi/4  进行平移。当对比图 7.2 和图 7.8(a) 时,这个平移是显而易见的。对于一个已知的 N 值和一个采样间隔 ΔT ,Fourier 变换和Hartley变换具有相同的频率分辨率 Δu = 1/( NΔT ) ,即相同的频率范围 0.5R  = 0.5(1/( ΔT )) = 1/(2ΔT )  ,当  u > N/2  时, 它们均为欠采样的。当  u  = 5, 6 ,7 时,试对比图 7.2 和图 7.8(a)。最后,我们注意到这两种变换的 8×8 基图像也很相似。例如,如图 7.8(c) 和图 7.7(b) 所示,最高频率的基图像出现在 u 和 v 等于 N/2 或 4 的情况下。

------------------------------图 7.8:当N = 8 时离散 Hartley 变换的变换矩阵和基图像:(a) 正交变换矩阵  \mathbf{A_{HY}}  的图形表示,(b) \mathbf{A_{HY}}  四舍五入到两位小数,以及 (c) 二维基图像。对于一维变换,矩阵 \mathbf{A_{HY}}  与公式 (7-28) 和 (7-29) 结合使用;对于二维变换,则与公式 (7-35) 和 (7-36) 结合使用。---------------------------------------

例子 7.8  DHT 和DFT 重建。

考虑离散函数  \mathbf{f}=\begin{bmatrix} 1&1&0&0&0&0&0&0\end{bmatrix}^{T}  及其离散 Fourier 变换

\mathbf{t_{f}}=\begin{bmatrix} 0.71&0.6-j0.25&0.35-j0.35&0.1-j0.25&0&0.1+j0.25&0.35+j0.35&0.6+j0.25\end{bmatrix}^{T}

其中,\mathbf{t_F} = \mathbf{A_{F}f}   ,且  \mathbf{A_F} = \mathbf{A_{Fr}} + j\mathbf{A_{Fj}}   是一个 图 7.7(a) 的幺正变换矩阵。  \mathbf{t_F}  的实部和虚部 (用 \mathbf{A_{Fr}}  和  \mathbf{A_{Fj}}  表示)分别是

\mathbf{A_{Fr}}=\begin{bmatrix} 0.71&0.60&0.35&0.1&0&0.10&0.35&0.60\end{bmatrix}^{T}

和

\mathbf{A_{Fj}}=\begin{bmatrix} 0&-0.25&-0.35&-0.25&0&0.25&0.35&0.25\end{bmatrix}^{T}

而离散 Hartley 变换  \mathbf{t_{HY}} = \mathbf{A_{HY} f} = \mathbf{( A_{Fr} - A_{Fj}) f} = \mathbf{A_{Fr}f - A_{Fj}f = t_{Fr}f - t_{Fj}f}  是

\mathbf{t_{HY}}=\begin{bmatrix} 0.71&0.85&0.71&0.35&0&-0.15&0&0.35\end{bmatrix}^{T}

根据公式 (7-17), f  可以写成

\displaystyle f (x) = \sum_{u=0}^{7}T_{\mathbf{HY}}(u)s_{\mathbf{HY}}( x , u ) \hspace{0.2cm} ( x = 0,1,2,...,7)

其中,\mathbf{f}=\begin{bmatrix} f(0)&f(1)&\hdots&f(7) \end{bmatrix}^{T}   和   \mathbf{ t_{HY}} = \begin{bmatrix}\mathbf{T_{HY}}(0)&\mathbf{T_{HY}}(1)&...&\mathbf{T_{HY}} (7)\end{bmatrix}^{T}。因此,f  可以通过将计算出的变换系数与相应的基函数相乘求和从 \mathbf{ t_{HY}}  重构出来。在图 6.9(a) 中,这种重构是逐步进行的,从图中顶部的 f 的平均值或直流分量(u = 0)开始,最终收敛到图中底部的 f( u = 0 , 1, … , 7 ) 。随着更高频率的基函数被包含在求和中,重构函数对 f 的近似程度越来越好,当所有八个加权基函数相加时,即可实现完美重构,生成相当于离散Hartley逆变换的结果 f = \mathbf{A_{HY}^{T}}\mathbf{t_{HY}}  。图 7.9(b) 显示了类似的离散 Fourier 变换 (DFT) 的重构过程。

--------------------------图 7.9:通过添加频率逐渐升高的分量来重构离散函数:(a) 离散Hartley变换 (DHT) 和 (b) 离散Fourier变换 (DFT)。------------------------

7.6.2  离散余弦变换(The discrete cosine transform)

    最常见的离散余弦变换(DCT)形式的变换矩阵是通过将逆变换核

(7-83)                \displaystyle s( x, u ) = {\alpha}(u)\cos \left [\frac{(2x+1)u{\pi}}{2N}\right ]

代入公式 (7-22) 和 (7-24) 而得到的,其中,

(7-84)                 \displaystyle \alpha(u)=\left \{ \begin{array}{l}\displaystyle \sqrt{\frac{1}{N}}\hspace{0.2cm}(u=0) \\ \\ \displaystyle\sqrt{\frac{1}{2N}}\hspace{0.2cm}(u=1,2,\hdots,N-1) \end{array} \right.

最终得到的变换矩阵(在图 7.10 表示为 \mathbf{A_{C}}  ) 是实数且正交的,但不是对称的。底层基函数是频率从0 到 R = [(N - 1 )/N][1/( 2ΔT )] 的谐相关的余弦函数;邻接频率之间的跨度(spacing)(即频率分辨率)是 Δu = 1/(2NΔT ) 。比较图 7.10(a) 与图 7.8(a) 或图 7.2 可以发现,离散余弦变换的频谱范围与Fourier变换和 Hartley 变换的频谱范围大致相同,但频率分辨率是它们的两倍。例如,若 N = 4 且 ΔT = 1,则得到的 DCT 系数对应的频率为 { 0, 0.5, 1, 1.5  },而 DFT 频谱分量对应的频率为 { 0, 1, 2, 1 }。图 7.10(c) 和图 7.8(c) 进一步说明了这一点。值得注意的是,DCT 基图像的最大频率出现在 u 和 v 都等于 7 的情况下,而 DFT 的最大频率出现在 u 和 v 都等于 4 的情况下。由于二维 DCT 基于可分离的逆变换核

(7-85)                \displaystyle s( x, y, u ,v ) = \alpha(u)\alpha(v)\cos \left [\frac{(2x+1)u{\pi}}{2N}\right ] \cos \left [\frac{(2x+1)v{\pi}}{2N}\right ]

其中,α (u ) 和  α (v ) 根据公式 (7-84) 而定义,变换矩阵 \mathbf{A_{C}}  可以用于计算一维和二维变换(有关相应的变换公式,请参见图 7.10 的图注(caption))。

-------------------------图 7.10:当 N = 8时离散余弦变换的变换矩阵和基图像。(a) 正交变换矩阵 \mathbf{A_{C}}  的图形表示,(b)  \mathbf{A_{C}}  矩阵四舍五入到小数点后两位,以及(c) 基图像。对于一维变换,矩阵  \mathbf{A_{C}}  与公式(7-28)和(7-29)结合使用;对于二维变换,则与公式(7-35)和(7-36)结合使用。-----------------------------------------------------

虽然离散余弦变换与离散Fourier变换具有一些共同的特性,但它对被处理的函数施加了一组完全不同的假设。离散Fourier变换的基本假设是N点周期性,而离散余弦变换假设的是2N点周期性和偶对称性。如图7.11所示,N点周期性会导致边界不连续,从而在变换中引入“人为的”高频分量;而2N点周期性和偶对称性可以最大限度地减少不连续性以及伴随的高频伪影。正如第8章将要讨论的,这是离散余弦变换在图像压缩方面的一个重要优势。鉴于上述讨论,N点函数f (x) 的离散余弦变换可以从f (x) 的2N 点对称扩展版本的离散Fourier变换中获得,这一点也就不足为奇了:

I   按对称性扩展 N 点离散函数 f (x) 以获得

(7-86)                 \displaystyle g(x)=\left \{ \begin{array}{l} f(x) \hspace{0.2cm}(0 \le x < N) \\ \\ f(2N-x-1)\hspace{0.2cm}(N \le x < 2N) \end{array} \right .

其中,\mathbf{f}=\begin{bmatrix} f(0)&f(1)&\hdots&f(N-1) \end{bmatrix}^{T}  而  \mathbf{g}=\begin{bmatrix} g(0)&g(1)&\hdots&g(2N-1) \end{bmatrix}^{T} 。

II  计算 g 的 2N 点离散 Fourier 变换:

(7-87)                \mathbf{t_{F}} = \mathbf{A_{F}}\mathbf{g} = \begin{bmatrix} \mathbf{t_{1}} \\ \mathbf{t_{2}} \end{bmatrix}

其中,\mathbf{A_{F}}  是 DFT  的变换矩阵,而 2N 元素变换 \mathbf{t_{F}}  划分成两个等长 N 元素列向量  \mathbf{t_{1}}  和 \mathbf{t_{2}}   。

III 令 N 元素列向量为    \mathbf{h}=\begin{bmatrix} h(0)&h(1)&\hdots&h(N-1) \end{bmatrix}^{T}   ,  其中

(7-88)                 \displaystyle h(u) = e^{-j{\pi}u/(2N)} \hspace{0.2cm} ( u = 0 ,1 ,... , N - 1 )

并令   \mathbf{s}=\begin{bmatrix} 1/\sqrt{2}&1&1&\hdots&1 \end{bmatrix}^{T}    。

IV   则 f 的离散余弦变换为

(7-89)                \mathbf{t_{C}} = \mathbf{Re}\; \{\; \mathbf{s} \; {\circ}\; \mathbf{h}\; {\circ} \; \mathbf{t_{1}} \}

其中, ∘ 表示 Hadamard 积(product),这是一个矩阵乘法,由两个向量或矩阵的相应元素相乘而得,例如,\begin{bmatrix}3&-0.5 \end{bmatrix}{\circ}\begin{bmatrix}2&6 \end{bmatrix}=\begin{bmatrix}6&-3 \end{bmatrix}  。

例子 7.10  基于一个 8 点DFT 计算一个 4 点DCT 。

在这个例子中,我们使用从 (7-86) 到 (7-86) 的公式来计算一维函数 f (x) = x^{2}  ( x = 0 ,1, 2 , 3 ) 的离散余弦变换。

(1)  令 \mathbf{f} = \begin{bmatrix}0&1&4&9 \end{bmatrix}]^{T}   并利用公式 (7-86) 来创建一个 f 的具有偶对称性的 8 点扩展。扩展函数  \mathbf{g} = \begin{bmatrix}0&1&4&9&9&4&1&0 \end{bmatrix}^{T}   是一个类似于图 7.11(b)中的那样的偶对称函数的一个周期。

(2) 将来自图 7.7(a) 8 × 8 幺正变换矩阵代入公式 (7-87),则 g 的离散 Fourier 变换是

\mathbf{t}_\mathbf{F}=\mathbf{A_{f}g}=\begin{bmatrix} -9.9\\ -6.18-j2.56\\ 1.41+j1.41\\ -0.18-j0.44\\ 0\\ -0.18+j0.44\\ 1.41-j1.41\\ -6.18+j2.56 \end{bmatrix}

因此  , \mathbf{t}_\mathbf{1}=\begin{bmatrix} -9.9\\ -6.18-j2.56\\ 1.41+j1.41\\ -0.18-j0.44 \end{bmatrix}    ,  \mathbf{t}_\mathbf{2}=\begin{bmatrix} 0\\ -0.18+j0.44\\ 1.41-j1.41\\ -6.18+j2.56 \end{bmatrix}

(3)   根据公式 (7-88) ,有

\mathbf{h}=\begin{bmatrix} 1\\ e^{-j{\pi}/4}\\ e^{-j{\pi}/2}\\e^{-j3{\pi}/4} \end{bmatrix}=\begin{bmatrix} 1\\ 0.92-j0.38\\ 0.71-j0.71\\0.38-j0.92 \end{bmatrix}

和  \mathbf{s} = \begin{bmatrix}1/\sqrt{2}&1&1&1 \end{bmatrix}]^{T}= \begin{bmatrix}0.71&1&1&1 \end{bmatrix}]^{T}  。

(4)   则 f 的离散余弦变换是

\begin{array}{rc} \mathbf{t_{C} = Re \{ s \; {\circ}\; h\; {\circ}\; t_{1} }\} =\left \{ \begin{bmatrix} 0.71\\1\\1\\1 \end{bmatrix}{\circ}\begin{bmatrix} 1\\ 0.92-j0.38\\ 0.71-j0.71\\0.38-j0.92 \end{bmatrix}{\circ}\begin{bmatrix} -9.9\\ -6.18-j2.56\\ 1.41+j1.41\\ -0.18-j0.44 \end{bmatrix} \right \}=\begin{bmatrix} 7\\-6.69\\2\\-0.48 \end{bmatrix}\end{array}

为了验证这个结果,我们将公式 (7-83) 代入公式 (7-22) 和 (7-24)( N = 4) 并利用公式 (7-28) 中的 4×4 DCT 变换矩阵进行计算,即可得到

\mathbf{t_C} = \mathbf{A_C}\mathbf{f} =\begin{bmatrix} 0.5&0.5&0.5&0.5\\ 0.65&0.27&-0.27&-0.65\\ 0.5&-0.5&-0.5&0.5\\ 0.27&-0.65&0.65&-0.77 \end{bmatrix}\begin{bmatrix}0\\1\\4\\9\end{bmatrix}=\begin{bmatrix}7\\-6.69\\2\\-0.48\end{bmatrix}

图 7.12 展示了通过逆离散余弦变换对函数 f 的重构过程。与图 7.9 中的重构类似,图中顶部(即图 7.12(a))的直流分量是离散函数的平均值——在本例中为 (0 + 1 + 4 + 9) / 4 = 3.5。这是对 f 的初步但粗略的近似。随着图中 (b),(c) 和 (d) 部分依次添加三个频率递增的余弦分量,近似的精度逐渐提高,直到在 (d) 部分实现完美重构。请注意,x 轴已扩展,以表明所得的 DCT 展开式确实是周期为 2N(在本例中为 8)的周期函数,并且展现了所有离散余弦变换都必须具备的偶对称性。

-----------------------------图 7.11:一维 (a) 离散Fourier变换 (DFT) 和 (b) 离散余弦变换 (DCT) 中隐含的周期性。-------------------------------------------

---------------------------图 7.12:通过逐步添加更高频率分量来重建离散函数的离散余弦变换(DCT)。请注意,DCT 施加了 2N 点周期性和偶对称性。-----------------

7.6.3  离散正弦变换(The discrete sine transform)

    离散正弦变换(DST)的变换矩阵可通过将逆变换核

(7-90)                        \displaystyle s(x ,u) = \sqrt{\frac{2}{N+1}}\sin\left (\frac{(x+1)(u+1){\pi}}{N+1} \right )

代入公式 (7-22) 和 (7-44) 而求得的,其可分离的二维形式是

(7-91)                        \displaystyle s( x, y, u ,v ) = \frac{2}{N+1}\sin\left [\frac{(x+1)(u+1){\pi}}{N+1}\right ] \sin \left [\frac{(y+1)(v+1){\pi}}{N+1}\right ]

求得的变换矩阵(在图 7.13 中表示为 \mathbf{A_{s}}  ) 是实数的、正交的且对称的。如图 (a) 部分所示,底层基函数是频率从 1/[2(N + 2)ΔT ] 到 N/[2(N + 2)ΔT ] 的谐波相关的正弦函数;频率分辨率或相邻频率之间的间隔为 Δu = 1/[2(N + 2)ΔT ]。与离散余弦变换 ( DCT ) 类似,离散正弦变换(DST )的频率范围与离散Fourier变换 ( DFT ) 大致相同,但频率分辨率是其两倍。例如,若 N = 4 且 ΔT = 1,则得到的 DST 系数对应的频率为 { 0.4, 0.8, 1.2, 1.6 }。需要注意的是,与 DCT和 DFT 不同,DST 没有直流 ( u = 0 ) 分量。这是由于其底层假设被变换的函数是 2(N + 1) 点周期且奇对称的,因此其平均值为零。与假设函数为偶对称的 DCT不同,DST 所施加的奇对称性并不能减少边界不连续性。图 6.14 清晰地展示了这一点,该图显示了对 f ( x ) = x^{2}   ( x = 0 , 1 , 2 , 3 )进行正向和反向 DCT变换的结果。请注意,通过与生成图 6.12(d) 相同的过程获得的底层连续重构函数,也表现出上述周期性、奇对称性和边界不连续性。

-------------------------------图 6.13:当N = 8时离散正弦变换的变换矩阵和基图像。(a) 正交变换矩阵 \mathbf{A_{s}}  的图形表示,(b)  \mathbf{A_{s}}  四舍五入到两位小数,以及(c) 基图像。对于一维变换,矩阵  \mathbf{A_{s}} 与公式 (7-28) 和 (7-29) 结合使用;对于二维变换,则与公式(7-35)和(7-36)结合使用。-------------------------------------------------------

N点函数f (x) 的离散正弦变换可以通过对f (x) 的2(N + 1 )点对称扩展版本(具有奇对称性)进行离散Fourier变换来求得:

I    按对称性扩展 N点函数 f (x) 以求得

(7-92)                 \displaystyle g(x)=\left \{ \begin{array}{l} 0 \hspace{0.2cm}(x=0) \\ \\ f(x-1) \hspace{0.2cm}(1 \le x \le N) \\ \\ 0\hspace{0.2cm}(x=N+1) \\ \\ -f(2N-x+1)\hspace{0.2cm}(N+2 \le x \le 2N+2) \end{array} \right .

其中, \mathbf{f}=\begin{bmatrix}f(0)&f(1)&\hdots&f(N-1)\end{bmatrix}^{T}   而         \mathbf{g}=\begin{bmatrix}g(0)&g(1)&\hdots&g(2N-1)\end{bmatrix}^{T} 。II       计算 g 的 (2N + 1) 点离散 Fourier 变换:

(7-93)                \mathbf{t_F} = \mathbf{A_{F}g} = \begin{bmatrix} \mathbf{0} \\ \mathbf{t_{1}}\\ \mathbf{0} \\ \mathbf{t_{2}} \end{bmatrix}  

其中,\mathbf{A_F}  是 DFT  的变换矩阵,而  (2N + 1) 元素变换 \mathbf{t_F}  划分为单元素 0 向量 [0] 和两个 N 元素列向量 \mathbf{t_{1}}  和   \mathbf{t_{2}}   。

III        则 f 的离散正弦变换 ( 用 \mathbf{t_{s}} 表示)是

(7-94)                \mathbf{t_{s}} = -\mathbf{Imag}\{ \mathbf{t}_{1} \}

----------图 7.14:对示例 6.10 中定义的函数的离散正弦变换(DST)进行重建。----

例子 7.11:基于一个10点DFT 计算一个 4 点DST 。

在该例中,我们使用 (7-92) 到 (7-94) 的公式来求得来自例子 7.10中的 \mathbf{f}= \begin{bmatrix} 0&1&4&9\end{bmatrix}^{T}  的 DST 。

(1)  创建一个具有奇对称性的 2( N + 1 ) 点扩展版本的函数 f  。根据公式 (7-92),

\mathbf{g}= \begin{bmatrix} 0&0&1&4&9&0&-9&-4&0\end{bmatrix}^{T}  。

(2)  利用公式 (7-93) 计算 g 的离散 Fourier 变换。矩阵 \mathbf{A_{F}}  是一个 10 × 10 幺正 DFT 变换矩阵,而求得的变换是 

\mathbf{t_{F} = A_{F} g} = \begin{bmatrix}0&-j6.35&j6.35&-j3.56&j1.54&0&j6.35&-j6.53&j3.56&-j1.54\end{bmatrix}^{T}

注意,  \mathbf{t_{F}}   的实部是 0,块  \mathbf{t_{1}}  是  \begin{bmatrix} j6.35&-j6.53&j3.56&-j1.54 \end{bmatrix}^{T}  。

(3) 则根据公式 (7-94) ,f  的DST 是

\mathbf{t_s} = -\mathbf{Imag}\{ \mathbf{t_{1}} \} = \begin{bmatrix}6.35&-6.53&3.56&-1.54 \end{bmatrix}^{T}

此外,DST 也可以直接计算为

\mathbf{t_{s} = A_{s} f }= \begin{bmatrix} 0.37&0.60&0.60&0.37\\ 0.60&0.37&-0.37&-0.60\\ 0.60&-0.37&-0.37&0.60\\ 0.37&-0.60&0.60&-0.37 \end{bmatrix}\begin{bmatrix}0\\1\\4\\9 \end{bmatrix}= \begin{bmatrix}6.35\\-6.53\\3.56\\-1.54\end{bmatrix}

其中, \mathbf{A}_\mathbf{s}  可以通过将公式 (7-90) 代入公式 (7-22) 和 (7-24)而求得( N = 4 ) 。

例子 7.12:利用Fourier相关变换进行理想低通滤波。

    图 7.15 显示了将理想低通滤波器应用于示例 4.16 中使用的测试图像的结果,其中使用了本章介绍的所有Fourier变换相关方法。与第 4 章的示例一样,图 7.15(a) 所示的测试图像尺寸为 688 × 688,并在计算任何变换之前将其填充至 1376 × 1376。作为参考,测试图像的Fourier变换如图 7.15(b) 所示,其中叠加了蓝色覆盖层以显示低通滤波器函数。只有未被蓝色阴影覆盖的频率才能通过滤波器。由于我们再次使用半径为 60 的截止频率,因此图 7.15(c) 中的滤波结果与图 4.41(d) 类似,任何差异都是由于使用了零填充而不是镜像填充造成的。请再次注意示例 4.16 中讨论的模糊和振铃现象。

    图 7.15(d) 至 (i) 显示了使用本章介绍的三种Fourier相关变换得到的类似结果。与图 6.15(b) 中Fourier变换的处理方式类似,图 6.15 ( d ) 至 ( f ) 分别显示了对图 7.15(a) 中的测试图像进​​行零填充至 1376 × 1376 大小后,得到的离散 Hartley变换、余弦变换和正弦变换结果。尽管余弦变换和正弦变换的滤波器函数(图中再次以蓝色叠加显示)的半径似乎是用于 Fourier 变换和 Hartley 变换的滤波器半径的两倍,但所有滤波器都通过了相同的频率范围。尺寸的明显增大是由于正弦变换和余弦变换具有更高的频率分辨率,这一点已在前面讨论过。需要注意的是,这些变换的频谱无需像Fourier变换和哈特利变换的频谱那样进行中心化处理,即可方便地进行解释。最后,我们注意到,在所有实际应用中,图 7.15(g) 至 (i) 中的滤波图像与图 7.15(c) 中的Fourier滤波结果是等效的。

---------------------图 7.15:(a) 图 4.41(a) 所示的 688 × 688 测试图案的原始图像。(b) 对 (a) 中的测试图案进行零填充至 1376 × 1376 大小后,得到的离散傅里叶变换 ( DFT )。蓝色叠加层是一个半径为 60 的理想低通滤波器 ( ILPF )。(c) Fourier 滤波后的结果。( d )–( f ) 对 (a) 中的测试图案进行零填充后,得到的离散Hartley变换、离散余弦变换 ( DCT ) 和离散正弦变换 ( DST )。蓝色叠加层与 (b) 中的 ILPF 相同,但由于 DCT 和 DST 的频率分辨率更高,因此在 ( e ) 和 ( f ) 中看起来更大。( g )–( i ) 分别为Hartley变换、余弦变换和正弦变换的滤波结果。-----------------

最后,我们总结一下这个例子。虽然 Fourier变换及其相关变换可以使用类似快速Fourier变换(FFT)的算法实现,或者直接基于FFT计算,但我们使用了本节介绍的矩阵实现方法来计算正变换和逆变换。在MATLAB®、Windows® 10操作系统以及配备2.1 GHz Intel® i7-4600U处理器的笔记本电脑上,计算本例中Fourier变换及其相关变换所需的总时间比相应的FFT计算时间长2到5倍。不过,所有计算都耗时不到一秒。

7.7  Walsh-Hadamard变换(Walsh-Hadamard transforms)

    Walsh-Hadamard变换(WHT)是一种非正弦变换,它将函数分解为矩形基函数的线性组合。这些基函数称为Walsh函数,其取值为 +1 和 -1。Walsh-Hadamard变换矩阵中基函数的排列顺序决定了所计算的变换的具体形式。对于Hadamard排序(也称为自然排序),这个变换矩阵可通过将逆变换核

(7-95)                \displaystyle s(x ,u) = \frac{1}{\sqrt{N}}(-1)^{\displaystyle \sum_{i=0}^{n-1}b_{i}(x)b_{i}(u)}

代入公式 (7-22) 和 (7-24) 而求得,其中,公式 (7-95) 指数上的求和是按模 2 的算术进行计算, N=2^{n}  ,且 b_{k}(z)  是 z 的二进制表示中的第 k 位,例如,n = 3 和 z = 6 ( 二进制表示为 110 ),则 b_{0}(z) = 0  , b_{1}(z) = 1  , 和 b_{2}(z) = 1  。若 N = 2 ,则导致的 Hadamard 排序的变抽矩阵是

(7-96)                \displaystyle \mathbf{A_{w}} = \frac{1}{\sqrt{2}}\begin{bmatrix} 1&1\\1&-1\end{bmatrix}

其中,右边的矩阵(不考虑标量乘数)称为 2 阶 Hadamard 矩阵。令 \mathbf{H}_{N}  表示 N 阶Hadamard 矩阵,则生成 Hadamard 排序的变换矩阵的一个简单递归关系是

(7-97)                \mathbf{A_{w}} = \frac{1}{\sqrt{N}}\mathbf{H}{}_N

其中,

(7-98)                 \displaystyle \mathbf{H}_{2N} = \begin{bmatrix}\mathbf{H}_{N}&\mathbf{H}_{N}\\\mathbf{H}_{N}&-\mathbf{H}_{N}\end{bmatrix}

和

(7-99)                \displaystyle \mathbf{H}_{2} = \begin{bmatrix}1&1\\1&-1\end{bmatrix}  

因此,公式 (7-96) 可根据公式 (7-97) 和 (7-99) 推导出来。按同样的方式,有

(7-100)                \begin{array}{rlc}\displaystyle \mathbf{H}_{4} =&\displaystyle \begin{bmatrix}\mathbf{H}_{2}&\mathbf{H}_{2}\\\mathbf{H}_{2}&-\mathbf{H}_{2}\end{bmatrix} \end{array} = \begin{bmatrix} 1&1&1&1\\ 1&-1&1&-1\\ 1&1&-1&-1\\ 1&-1&-1&1\\ \end{bmatrix}

和

(7-101)                

\begin{array}{rlc}\displaystyle \mathbf{H}_{8} =&\displaystyle \begin{bmatrix}\mathbf{H}_{4}&\mathbf{H}_{4}\\\mathbf{H}_{4}&-\mathbf{H}_{4}\end{bmatrix} \end{array} = \begin{bmatrix} 1&1&1&1&1&1&1&1\\ 1&-1&1&-1&1&-1&1&-1\\ 1&1&-1&-1&1&1&-1&-1\\ 1&-1&-1&1&1&-1&-1&1\\ 1&1&1&1&-1&-1&-1&-1 \\ 1&-1&1&-1&-1&1&-1&1\\ 1&1&-1&-1&-1&-1&1&1\\ 1&-1&-1&1&-1&1&1&-1\\ \end{bmatrix}

相应的 Hadamard 变换矩阵可通过将 \mathbf{H}_{4}  和 \mathbf{H}_{8}  代入公式 (7-97) 而求得。

Hadamard矩阵一行中符号变化的次数(0交叉点的数量)称为该行的列率(sequency)。与频率类似,列率衡量函数的变换速率,并且与Fourier变换的正弦基函数一样,每个Walsh函数都具有唯一的列率。由于Hadamard矩阵的元素源自逆核值,因此序列率概念也适用于基函数 s(x ,u)( u = 0, 1, ..., N – 1 )。例如,式 (7-100) 中 \mathbf{H}_{4}  基向量的更率分别为 0, 3, 1, 2;公式 (7-101) 中  \mathbf{H}_{8}  基向量的列率分别为 0,7,3,4,1,6,2 和 5 。这种列率的排列方式是Hadamard排序 Walsh-Hadamard 变换的定义特征。

    在信号和图像处理应用中,将Hadamard矩阵的基向量进行排列,使其序列数随着u的增加而递增,这种做法既可取又常见。导致的列率排序 Walsh-Hadamard 变换的变换矩阵可通过将逆变换核

(7-102)                 \displaystyle s(x,u) = \frac{1}{\sqrt{N}} (-1)^{\displaystyle \sum_{i=0}^{n-1}b_{i}(x)p_{i}(u)}

代入公式 (7-22) 和 (7-24) 而求得,其中,

(7-103)                 p_{0}(u) = b_{n-1}(u)

                             p_{1}(u) = b_{n-1}(u) + b_{n-2}(u)

                             p_{2}(u) = b_{n-2}(u) + b_{n-3}(u)

                              ⋮

                             p_{n-1}(u) = b_{1}(u) + b_{0}(u)

如前,公式 (7-102) 和 (7-103) 中的求和是按照模 2 算术进行运算的。因此(例如),

(7-104)

\mathbf{H}_{8}^{'}=\begin{bmatrix} 1&1&1&1&1&1&1&1\\ 1&1&1&1&-1&-1&-1&-1\\ 1&1&-1&-1&-1&-1&1&1\\ 1&-1&-1&1&1&-1&-1&1\\ 1&-1&-1&1&-1&1&1&-1\\ 1&-1&1&-1&-1&1&-1&1\\ 1&-1&1&-1&-1&1&-1&1\\ 1&-1&1&1&1&-1&1&-1 \end{bmatrix}

其中,加入撇号( ’ ) 以表明相对于 Hadamard 排序的列率排序。注意,\mathbf{H}_{8}^{'}    的行的列率匹配它们的行数——即,0 ,1  , 2 ,  3  , 4  ,5   , 6  和 7 。另一种生成  \mathbf{H}_{8}^{'}  的方式是重排 Hadamard 排序    \mathbf{H}_{8}  的行,注意, \mathbf{H}_{8}^{'}  的行 s  对应于  \mathbf{H}_{8}  的行是s  的位反转gray码(bit-reversed gray code)(反射二进制编码),由于对应  (s_{n-2}...s_{2} s_{1} s_{0})_{2}  的 n 位 gray  码可以计算为

(7-105)                g_{i} = s_{i}{\oplus} s_{i+1}  (对于 0 ≤ i ≤ n - 2)

                             g_{n-1} = s_{n-1}  (对于 i = n  - 1 )  。

其中,⨁ 表示异或运算( exclusive OR ——只有当输入值不同时(一个为真,另一个为假)才为真), \mathbf{H}_{8}^{'}  的行s  与 \mathbf{H}_{8}  的行  (g_{0} g_{1} g_{2}...g_{n-1})_{2}   。例如, \mathbf{H}_{8}^{'}  的行 4 或 (100)_{2}  ,其 gray 码是  (110)_{2}  ,来自 \mathbf{H}_{8}   的行 (011)_{2}  或 3  。注意,公式 (7-104) 中 \mathbf{H}_{8}^{'}  的行 4 实际上等于公式 (7-101) 中   \mathbf{H}_{8}  的行 3 。

图 7.16(a) 和 (b) 以图形和数值方式描绘了 N = 8 时按列率排列的 WHT 变换矩阵。注意,图 7.16(a) 中离散基函数的列率随着 u 从 0 增加到 7 而增加,相应的底层方波函数的列率也随之增加。此外,注意图7.16(b) 中的变换矩阵是实对称的,且根据公式 (7-105) 和公式 (7-97) 推导为

(7-106)                 \displaystyle \mathbf{ A_{W^{'}} } = \frac{1}{\sqrt{N}}\mathbf{H_{8}^{'}}  

这个矩阵是正交的,且有 \mathbf{A_{W^{'}}} = \mathbf{A_{W^{'}}}^{T} = \mathbf{A_{W^{'}}}^{-1}   ,其证明过程留给读者作练习。最后,请注意图 7.16(c) 中按列率排列的基图像之间的相似性。其基于图 7.1(c) 中的二维 DCT 的基图像可分离2维逆变换核

(7-107)                \displaystyle s( x ,y ,u ,v ) = \frac{1}{\sqrt{N}}(-1)^{\displaystyle \sum_{i=0}^{n-1}\bigg [b_{i}(x)p_{i}(u)+b_{i}(y)p_{i}(v) \bigg] }

列率随着 u 和 v 的增加而增加,类似于离散余弦变换( DCT )基图像中的频率,但它没有像频率那样有用的物理意义。

------------------------------图 7.16:N = 8 的列率排序Walsh-Hadamard的变换变换矩阵和基图像。(a) 正交变换矩阵 \mathbf{A_{w}^{'}}  的图形表示 ,(b)  \mathbf{A_{w}^{'}}  四舍五入到小数点后两位,以及 (c) 基图像。对于一维变换,矩阵   \mathbf{A_{w}^{'}}   与公式 (7-28) 和 (7-29) 结合使用;对于 2 维变换,与公式 (7-35) 和 (7-36) 结合使用。------------------------

例子 7.13  一种简单的列率排序Walsh-Hadamard变换。

    为了计算一维函数 \mathbf{f}=\begin{bmatrix}2&3&4&5\end{bmatrix}^{T}  的列率排序 Walsh-Hadamard ,我们首先利用公式 (7-100) Hadamard 排序的 Hadamard 矩阵   \mathbf{H}_{4}  ,并利用所描述的与公式 (7-105) 关联的过程对基向量重新排序。   \mathbf{H}_{4}  的Hadamard 排序基向量到 \mathbf{H}_{4}^{'}  的频率排序基向量的映射计算如下:

因此,根据公式(7-106),4 × 4 的列率排序 Walsh-Hadamard 变换矩阵为

\displaystyle \mathbf{A_W^{'}} = \frac{1}{\sqrt{4}}\mathbf{H_{4}^{'}} = \frac{1}{2}\begin{bmatrix} 1&1&1&1\\1&1&-1&-1\\1&-1&-1&1\\1&-1&1&-1 \end{bmatrix}

而列率排序的变换是  \mathbf{t_(W^{'} ) } = \mathbf{A_(W^{' }) f} = \begin{bmatrix}7&-2&0&-1 \end{bmatrix}^{T} 。

7.8  斜变换(Slant-transform)

    许多单色图像包含大面积亮度均匀的区域以及亮度呈线性增加或减少的区域。除了离散正弦变换,我们迄今为止介绍的所有变换都包含一个基向量(频率或列率u = 0),用于有效地表示恒定灰度区域,但没有一个变换的基函数是专门用于表示线性增加或减少的亮度值的。本节讨论的变换称为斜变换,它包含这样一个基函数。 N {\times} N ( N = 2^{n} )   

可以使用公式

(7-108)           \displaystyle \mathbf{A_{Sl}} = \frac{1}{\sqrt{N}}S_{N}   

按递归求得,其中,斜矩阵(slant matrix)是

(7-109)

\mathbf{S}_{N}=\begin{bmatrix} 1&0&&1&0&\\ &&0&&&0\\ a_{N}&b_{N}&&-a_{N}&b_{N}&\\ &0&&(N/2)-2&0&(N/2)-2\\ -b_{N}&a_{N}&&b_{N}&a_{N}&\\ &0&\mathbf{I}_{(N/2)-2}&&0&-\mathbf{I}_{(N/2)-2} \end{bmatrix}\begin{bmatrix} \mathbf{s}_{N/2}&\mathbf{0}\\ \mathbf{0}&\mathbf{s}_{N/2} \end{bmatrix}

在这里, \mathbf{I}_{N}  是 N  × N 阶恒等矩阵(单位矩阵),

(7-110) ​​​​​​​                \mathbf{S}_{2} = \begin{bmatrix}1&1\\1&-1\end{bmatrix}  

而系数 a_{N}  和 b_{N}  (对于 N > 1 )分别是

(7-111)                 \displaystyle a_{N} = \left [\frac{3N^{2}}{4(N^{2}-1)}\right ]^{1/2}

和

(7-112)                 \displaystyle a_{N} = \left [\frac{N^{2}-4}{4(N^{2}-1)}\right ]^{1/2}

当 N ≥ 8 时,矩阵  \mathbf{S}_{N}  不是频率排序的,但可以使用例子 6.13 中展示的 WHT 的过程来使其成为频率排序的。使用公式 (7-108) 到 (7-112) 的例子是斜变换矩阵

(7-113)

\displaystyle \mathbf{A_{Sl}} = \frac{1}{\sqrt{4}}\mathbf{S}_{4} = \frac{1}{2}\begin{bmatrix} 1&1&1&1 \\\\ \frac{3}{\sqrt{5}}&\frac{1}{\sqrt{5}}&\frac{-1}{\sqrt{5}}&\frac{-3}{\sqrt{5}}\\\\1&-1&-1&1\\\\ \frac{1}{\sqrt{5}}&-\frac{3}{\sqrt{5}}&\frac{3}{\sqrt{5}}&-\frac{1}{\sqrt{5}} \end{bmatrix}

由于 N = 4 ,因此 \mathbf{A_{Sl}}   的基向量 ( 和 \mathbf{S}_{4}  的斜矩阵之行)是列率排序的。

例子 7.14  一个简单的一维斜变换。

    使用公式 (7-28) 和 (7-113) ,计算得到来自例子 7.13 的函数  f = \begin{bmatrix} 2&3&4&5 \end{bmatrix}^{T}  的斜变换是  \mathbf{t_{Sl}} = \mathbf{A_{Sl}}f = \begin{bmatrix}7&-2.24&0&0 \end{bmatrix}^{T}  。注意,该变换仅包含两个非零项,而前面示例中的Walsh-Hadamard变换包含三个非零项。斜变换能够更有效地表示函数 f ,因为 f 是一个线性递增函数——即,f 与列率为 1 的斜基向量高度相关。因此,使用斜基函数进行线性展开所需的项数比使用Walsh基函数所需的项数更少。

图 7.17(a) 和 (b) 以图形和数值方式描绘了 N = 8 时列率排序的斜变换矩阵。正如使用撇号(’) 来表示 Walsh-Hadamard 变换列序排序那样,我们分别使用  \mathbf{S}_{8}^{'}  和   \mathbf{A_{Sl^{'}}}  来表示公式 (7-108) 和 (7-109) 的列率排序版本。注意,图 7.16 (b) 中的斜变换矩阵是实数的,但不是对称的。因此,\mathbf{A_{Sl^{'}}^{-1}} = \mathbf{A_{Sl^{'}}^{\mathit{T}}}  但   \mathbf{A_{Sl^{'}}^{\mathit{T}}} \neq \mathbf{A_{Sl^{'}}}  。此外,矩阵  \mathbf{A_{Sl^{'}}}  是正交的,可以与公式  (7-35) 和 (7-36) 结合使用来实现二维可分离斜变换。图 6.17(c) 显示了尺寸为 8 × 8 的二维斜变换基图像。请注意,当 4 ≤ u ≤ 5 且 4 ≤ v ≤ 5 时,这些基图像与图 7.16(c) 中对应的 Walsh-Hadamard 变换基图像完全相同。在图 7.16(a) 和图 7.17(a) 中,当 4 ≤ u ≤ 5 时,这一点也显而易见。事实上,所有斜变换基向量都与 Walsh-Hadamard 变换的基向量非常相似。最后,我们注意到斜变换矩阵具有可以实现类似于快速 Fourier 变换 (FFT) 的快速斜变换算法的必要特征。

------------------------------图 7.17:N = 8 的斜变换排序的变换变换矩阵和基图像。(a) 正交变换矩阵 \mathbf{A_{Sl^{'}}}  的图像表示 ,(b) \mathbf{A_{Sl^{'}}}  四舍五入到小数点后两位,以及 (c) 基图像。对于一维变换 ,矩阵 \mathbf{A_{Sl^{'}}}  与公式 (7-28) 和 (7-29) 结合使用;对于 2 维变换,与公式 (7-35) 和 (7-36) 结合使用。--------------------------------------

7.9  Haar变换(Haar transform)

    Haar变换的基函数发现于1910( Haar[1910]),后来被认为是历史最悠久、最简单的正交小波。我们将在下一节中从小波的角度探讨Haar函数。在本节中,我们将把Haar变换视为另一种基于矩阵的变换,它使用一组矩形形状的基函数。

Haar变换基于定义于连续的半开区间 x∈[0,1) 上的 Haar 函数  h_{u}( x )   。变量 u > 0是一个整数,其可以唯一地分解为

(7-114)                 u = 2^{p} + q  

其中,p 是包含于 u 中的 2 的最大幂且 q 是余数——即,q = u - 2^{p}  。则 Haar 基函数是

(7-115)           

\displaystyle h_{u}( x ) = \left \{ \begin{array}{l} 0 \hspace{0.2cm}(u=0 \; {\rm{and}} \; 0 \le x < 1) \\ \\ 2^{p/2} \hspace{0.2cm}(u>0 \; {\rm{and}} \; q/2^{p} \le x < (q+0.5)/2^{p}) \\ \\ -2^{p/2}\hspace{0.2cm}(u>0 \; {\rm{and}} \; (q+0.5)/2^{p} \le x < (q+1)/2^{p}) \\ \\ 0\hspace{0.2cm}(\rm{otherwise}) \end{array} \right .

当 u = 0 时,对于所有 x 有  h_{0}( x ) = 1  ;因此,第一个 Haar 函数与连续变量 x 无关。对于 u 的所有其它值, h_{u}( x ) = 0   ,除非处于半开区间 [ q/2^{p} ,( q + 0.5 )/ 2^{p} )  和  [ ( q + 0.5 )/ 2^{p} ,( q + 1 )/ 2^{p} )  中,在两种区间中,其函数分别为大小(magnitude)为 2^{p/2}  和  -2^{p/2}  的矩形波。参数 p 决定了两个矩形波的幅度(amplitude)和宽度,而 q 决定了它们沿 x 轴的位置。随着 u 的增大,矩形波变得越来越窄,可以表示为 Haar 函数线性组合的函数数量也随之增加。图 7.18(a) 显示了前八个 Haar 函数(即图中蓝色的曲线)。

-----------------------------图 7.18:N = 8 时离散 Haar 变换的变换矩阵和基图像。(a) 正交变换矩阵 \mathbf{A_{H}}  的图形表示,(b)   \mathbf{A_{H}} 四舍五入到小数点后两位,以及 (c) 基图像。对于一维变换,矩阵   \mathbf{A_{H}}  与公式 (7-28) 和 (7-29) 结合使用;对于二维变换,它与公式 (7-35) 和 (7-36) 结合使用。----------------------------------------------------       

离散Haar 变换的变换矩阵可通过将逆变换核

(7-116)                 \displaystyle s( x ,u ) = \frac{1}{\sqrt{N}}h_{u}( x /N )

( 对于x = 0 ,1 ,… ,N – 1  ;u = 0 ,1 ,… ,N – 1)

代入公式 (7-22) 和 (7-24) 而求得,其中,N=2^{n}   。所得的变换矩阵(用  \mathbf{A_{H}}  表示)可以写成一个  N × N   Haar 矩阵

(7-117)                 \mathbf{H}_{N}= \begin{bmatrix} h_{0} (0/N)&h_{0} (1/N)&\hdots&h_{0} (N-1/N)\\\\ h_{1} (0/N)&h_{1} (1/N)&&\vdots\\\\ \vdots&&\ddots&\\\\ h_{N-1} (0/N)&\hdots&&h_{N-1} (N-1/N) \end{bmatrix}

的一个函数

(7-118)                 \displaystyle \mathbf{A_H} = \frac{1}{\sqrt{N}}\mathbf{H_N} 

例如,若 N = 2 ,

(7-119)                \displaystyle \mathbf{A_{H}} = \frac{1}{\sqrt{2}}\begin{bmatrix}h_{0} ( 0 )&h_{0} ( 1 /2 )\\h_{1}(0)&h_{1}(1/2)\end{bmatrix} = \frac{1}{\sqrt{2}}\begin{bmatrix} 1&1\\1&-1\end{bmatrix}

在  \mathbf{A_H}  的计算中,公式 (7-116) 的 x  和 u 是  0 和 1 。因此,公式 (7-114),(7-115)和 (7-116) 给出   s( 0 ,0 ) = {h}_{0}(0)/\sqrt{2} = 1/\sqrt{2}  , s( 1 ,0 ) = h_{0}(0.5)/\sqrt{2} = 1/\sqrt{2}   ,  s( 0 ,1 ) = h_{1}(0)/\sqrt{2} = 1/\sqrt{2}    , 和  s( 1 ,1 ) = h_{1}(0.5)/\sqrt{2} = -1/\sqrt{2}     。对于 N = 4 ,公式 (7-114) 中的 u , q  和 p  假设取值为

而大小为  4 × 4   的 Haar 变换矩阵则成为

(7-120)                 \displaystyle \mathbf{A_{H}}=\frac{1}{2} \begin{bmatrix} 1&1&1&1\\ 1&1&-1&-1\\ \sqrt{2}&-\sqrt{2}&0&0\\ 0&0&\sqrt{2}&-\sqrt{2} \end{bmatrix}

N = 8 时的变换矩阵如图 7.18(b) 所示。 \mathbf{A_H}  是实数、正交且按列率排列的。Haar变换矩阵的一个重要特性是它可以分解为比原矩阵非零元素更少的矩阵之积。我们迄今为止讨论的所有变换都具有此特性。它们可以使用复杂度为 O(N{\log}_{2}N)  的类似 FFT 的算法来实现。然而,Haar变换矩阵在分解过程开始之前就具有较少的非零元素,因此可以实现复杂度为 O(N) 的更简单的算法。如图 7.18(c) 所示, 8 × 8 大小的图像的可分离二维Haar变换的基图像也具有较少的非零元素。

华为面试手撕真题【最长不重复子串】 给定一个字符串s,请你找出其中不含有重复字符的最长子串的长度。 阅读详情

相关推荐

关于 Python PyQt5 界面运行时提示无法初始化Qt平台的解决方案

关于 Python PyQt5 界面运行时提示无法初始化Qt平台的解决方案

smart_num_1的博客 6883

数字图像处理(4版)——第 7 章——小波及其它图像变换(下)(Rafael C.Gonzalez&Richard E. Woods)

图像处理之小波变换

ComputerInBook的专栏 474

别再到处找模型了!手把手教你用Xinference+Docker部署本地私有大模型(Llama2/Qwen实战)

本文详细介绍了如何使用Xinference和Docker部署本地私有化大模型(如Llama2/Qwen),涵盖硬件配置、模型管理、Docker部署及性能优化等关键步骤。通过实战案例,帮助开发者快速构建企业级AI推理服务,确保数据安全与高效运行。

weixin_28683065的博客 232

数字图像处理(4版)——第1章——引言(Rafael C.Gonzalez&Richard E. Woods)

数字图像处理概观

ComputerInBook的专栏 470

python中frida的安装+frida-server(雷电模拟器)保姆级安装教程

frida的安装,安卓逆向,adb

2301_80224944的博客 4579

基于plc的工厂除尘控制系统设计(S7-200、仿真、调试、高质量)

工业作为我国第二支柱产业,在近十几年来发展非常迅速,虽然带了了可观的经济效益,但在工业生产中所产生的大量粉尘气体对大气的污染现象也不容忽视。为减少工业粉尘对环境的污染,世界各国制定了严格的环境保护要求。为了减少工业中粉尘的排放,除尘器的研发改良,以及燃煤的使用等等都在不断更改以符合粉尘排放标准。而目前最先进的除尘设备无机膜除尘器具备除尘效率高,稳定性好,结构紧凑易于维护等优点,且无机膜对于粉尘吸附效率高,抗腐蚀能力优秀,耐高温,因此能更有效应用于高温烟气的除尘。本文根据PLC技术在除尘方面的应用,来优化设计

老高的博客 1279

数字图像处理(4版)——第 8 章——图像压缩与水印(下)(Rafael C.Gonzalez&Richard E. Woods)

图像压缩与水印

ComputerInBook的专栏 503

Android AICore的核心组件工作原理解析

AICore通过LoRA实现个性化适配Gemini Nano提供多模态智能Safety Features保障可信运行,构建了端侧AI的完整生态。这种设计不仅让手机等移动设备能处理复杂AI任务(如实时多模态交互),还通过隐私保护机制打破了传统云端AI的数据依赖,为未来“设备即AI基础设施”的愿景奠定了基础。输入触发:用户输入“刚提交了代码,等审核”→ 进入TEE加密处理。Gemini Nano基础生成:通过原始权重W_q生成初始回复候选。LoRA个性化微调:通过A'和B'计算ΔW,更新W_q。

1553

【机器学习300问】139、Post-LN 和 Pre-LN 的区别?

Post-LN与Pre-LN的核心区别在于LayerNorm的位置:Post-LN在残差连接后,导致梯度需经LayerNorm变换,深层易出现梯度衰减或震荡;Pre-LN先做归一化,使输入稳定,残差路径梯度可无损回传,显著提升深层训练稳定性。尽管Pre-LN支持更深层次模型(如LLaMA、Qwen),但存在“深度诅咒”——深层贡献不足。相比之下,Post-LN浅层表现尚可,深层数易发散。因此,现代大模型普遍采用Pre-LN以保障训练可靠性。

qq_39780701的博客 394

AI Agent开发第85课-DeepSeek-OCR 安装全指南:从 Transformers 到 vLLM,手把手教你跑通企业级 OCR

本文系统讲解 DeepSeek-OCR 的两种部署方式——基于 Hugging Face Transformers 的标准推理与基于 vLLM 的高性能加速推理。详细说明 CUDA 与 PyTorch 版本匹配、环境验证、依赖安装等关键细节,并提供可直接运行的完整代码示例。无论你是单卡调试还是高并发服务部署,都能在这里找到清晰路径。

打造全国最全的AI Agent开发知识领域的博客 2542

仿真学习系列(四十七):Sigrity仿真之直流压降与电流密度

在现代电子设计中,电源网络的设计和分析对于保证电路的稳定性至关重要。直流压降(IR-Drop)和电流密度是评估电源网络性能的关键参数,尤其是在高频和高速电路中。它们直接影响到设备的工作稳定性与效率。通过Sigrity的仿真工具,可以深入分析和优化这些电源特性,从而确保系统的可靠性。 本节将介绍直流压降和电流密度的基本概念,以及如何在Sigrity中使用PowerDC模块进行相关仿真。

案例文章,高速信号 510

Hugging Face:成为机器学习界的“Github”

以下文章来源于OneFlow,作者OneFlow社区五年前,AI领域的知名研究者Andrej Karpathy发文称,传统人工编程属于“软件1.0”,“软件2

2601_96798011的博客 122

基于STM32、HAL库的WF282A气压传感器 驱动程序设计

测量范围:0-2.5MPa(可根据需求选择其他量程)输出方式:I2C或SPI数字接口。温度补偿范围:-20℃~85℃。低功耗设计,适合电池供电应用。工作电压:3.3V/5V。精度:±0.1%FS。

corlin6688的博客 394

机器学习基础|监督学习、标签、回归

网约车预估等待时长依赖监督学习中的回归任务。平台利用历史订单数据,以司机实际到达耗时为标签,通过上车点、时间、运力、路况等特征训练模型。模型不断优化预测值与真实耗时的误差,最终对新订单输出连续的预估等待时间,实现精准预测。

weixin_43971465的博客 234

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

为什么生成对抗网络训练常不稳定,模式崩溃与判别器过强之间是什么关系?

当支持集不重叠时(即 $D$ 能完美区分真假),JS 散度为常数 $\log 2$,其梯度为 0。这意味着一旦 $D$ 训练得稍好,$G$ 就失去了学习方向,导致训练停滞。生成对抗网络(GAN)的训练本质上是生成器($G$)与判别器($D$)之间的非合作零和博弈。以下代码展示了如何通过梯度惩罚(Gradient Penalty)来约束判别器,避免其过强导致生成器梯度失效。判别器过强是导致模式崩溃的直接诱因之一,二者之间存在明确的**“梯度误导”**因果关系。

2402_84593233的博客 204

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

AI 是怎样从数据中学习的?训练、验证、测试与推理

泛化能力(Generalization)指模型面对训练过程中没有见过的新数据时,仍然能够做出合理预测的能力。这是判断模型是否具有实际应用价值的重要标准。例如:一个用户流失预测模型,在历史数据上表现很好,但面对新上线的用户群体时,预测准确率明显下降。这可能说明模型学到的规律无法适应新的用户群体。泛化能力不仅取决于模型本身,也与训练数据是否具有代表性有关。训练数据只包含老用户,没有新用户。训练数据主要来自某个地区,实际业务却覆盖不同地区。过去的用户行为与当前用户行为已经发生变化。

dshizixu的博客 306

廖雪峰Python教程[完整版]

廖雪峰的python教程整理的,已经排好版了,而且还是完整的,适合小白

Spark06_MLlib机器学习

本文是《PySpark 从入门到实战》系列收官篇,带你用 Spark MLlib 走通机器学习全流程:从三要素与 7 步标准流程讲起,剖析 KNN、朴素贝叶斯、决策树三大算法原理,再以 KNN 手写、垃圾短信分类、决策树分类、逻辑回归鸢尾花(准确率 96.67%)、K-Means 聚类(轮廓系数 0.7345)五个案例落地,最后详解 TF-IDF 文本特征与余弦相似度。全文代码可直接运行,适合有 RDD 与 Spark SQL 基础的开发者快速上手。

2301_80420058的博客 444

机器学习教程,从入门到精通,高斯混合模型(GMM)——写给机器学习小白的保姆级教程(10)

高斯混合模型(Gaussian Mixture Model,简称 GMM):假设你手里的数据是由"好几堆正态分布的数据混在一起"形成的,GMM 的任务就是——把这几堆分开,并且描述清楚每一堆的样子。

qq_45746668的博客 117

【人工智能驱动的电催化研究-01】人工智能是什么?AI、机器学习、深度学习和神经网络之间有什么区别?

介绍人工智能、机器学习、神经网络和深度学习的基本概念及相互关系。围绕催化剂性能预测,解释样本、特征、标签、模型、参数、训练、预测与验证的含义。结合二硫化钼边缘位点与析氢活性的研究案例,说明科学问题如何指导特征选择。利用真实文献中的析氢数据,通过手算和Python实践,对比人工规则与均值模型,理解参数学习和误差评价。强调数据学习不保证预测更优,相关性不能直接证明反应机理,文献数据还须核查实验条件与适用范围,为后续编程、数学和电催化机器学习课程建立基础。

2402_84593233的博客 789

机器学习01,KNN使用与简单数学原理

个人笔记

qq_59247073的博客 259

AI小白入门|无监督学习到底是什么?

很多新手看完无监督学习的定义只会死记硬背。本文避开复杂公式,从真实业务场景切入,对比监督学习,讲清楚无监督学习的核心价值、适用场景、底层逻辑和容易踩坑的认知误区,帮你理解它在机器学习链路里的定位。

weixin_43971465的博客 177

机器学习01,了解与KNN

个人笔记

qq_59247073的博客 357

【slam公式】

F:状态转移矩阵H:观测矩阵R: 观测噪声协方差。

qq_44691564的博客 322

机器学习-支持向量机

本文通过多个案例深入解析SVM在二分类、多分类及高维文本数据中的应用。基于乳腺癌数据集,构建标准化+SVM的流水线,结合网格搜索优化C与gamma参数,实现98.02%的测试准确率。通过交叉验证评估模型稳定性,结果显示标准差仅0.0162,表明模型鲁棒性强。引入probability=True后,可输出预测概率,揭示模型不确定性(如样本4的52%良性概率),助力医疗决策。结果表明,特征维度提升需调小gamma、增大C以适应复杂数据,凸显参数与数据特性的交互关系。

buwangchuxinking的博客 342

基于有效Token规模化的大模型预训练数据配方与工程体系研究——基于唐杰《高级机器学习》课程演讲

在此背景下,本文系统梳理GLM系列模型数据迭代轨迹,纠正数据墙认知偏差,分析天然数据与合成数据的互补机制,并完整构建支撑高质量Token挖掘的全链路数据工程体系,为大模型数据规模化建设提供理论与工程参考。早期小模型训练场景下,数据总量远大于算力可消化量,核心策略为择优筛选少量高质量数据。基于唐杰公开演讲核心观点、GLM数据迭代、数据墙、合成数据、清洗解析工具链、分层架构图、自研工程壁垒),完整重构成一篇结构严谨、逻辑连贯、标准期刊论文风格全文,预留精准图片插入位置,可直接定稿、查重、发表、结课提交。

interpromotion的博客 258

茶叶病虫害目标检测数据集

目标检测 yolo 目标检测数据集 茶叶病虫害目标检测数据集

DL_data_set的博客 359
上一篇: 数字图像处理(4版)——第 6 章——彩色图像处理(Rafael C.Gonzalez&Richard E. Woods)
下一篇: 数字图像处理(4版)——第 7 章——小波及其它图像变换(下)(Rafael C.Gonzalez&Richard E. Woods)
ComputerInBook
博客等级 码龄19年 1168粉丝 464原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值