理解DCT与DST【一】:离散傅里叶变换

目前主流视频编解码算法都要使用到离散余弦变换(Discrete Cosine Transform)以及离散正弦变换(Discrete Sine Transform)对预测残差进行空域/频域的转换,通过牺牲部分高频的信息来达到压缩的目的。总的来说,DCT 和 DST 根据延拓的方式各自都有八种形式,网上主要的资料都是介绍 DCT-II,也就是第二类 DCT,其他 DCT 类型以及 DST 的资料则比较少,其原因我们可以在后面的内容中有所窥知,简单地说就是 DCT-II 的基图像相比于其他类型会更加符合数据的实际分布,因此通常来说能够对数据信息获得更好的压缩效果。过去,DCT-II 由于其自身确实具有的优越性,在早期的编解码算法如 H.264 中大量使用,但后来人们发现其他类似的 DCT 和 DST 在某些情况下表现或许更加出色,例如,最新的 H.266 标准也将 DCT-VIII 以及 DST-VII 加入到了候选变换类型中。因此,为了弄懂 H.266 为什么要使用这三种变换类型,我们有必要对 DCT 和 DST 的原理做更深入的理解。

实际上,DCT 和 DST 的推导完完全全来自于离散傅里叶变换(Discrete Fourier Transform),他们两者本质上是 DFT 的特殊形式,因此,如果弄懂了 DFT,DCT 和 DST 也就自然理解了。所以,文章开始着重分析了 DFT 的一些性质,实际上是为后面做必要的铺垫。不过,要弄懂 DFT,还要从傅里叶级数以及傅里叶变换说起,但由于篇幅限制,这里就不说了,大家可以找一些信号与系统的书籍资料复习一下。其实文章的大部分内容都可以从

《数字信号处理–基于计算机的方法(第四版)》Sanjit K. Mitra ,电子工业出版社。

这本教材推导过来,如果有学过数字信号处理的画应该会比较熟悉。后面篇幅比较长,但其实弄懂了前面的 DFT 后面的都只是一些重复性的工作而已。公式较多,内容较广,所以有些文字上的错误或者理解上的偏差在所难免,请谅解。

本文主要是将先前的博客 离散傅里叶变换DFT、离散余弦变换DCT、离散正弦变换DST,原理与公式推导 从图片修改为 Markdown 脚本,方便读者浏览,同时增加了部分内容。但由于文章字符过多,无法全部放在一篇博客上,所以将之前的文章拆分为三部分,可通过以下链接查看其它部分。

1 离散傅里叶变换(Discrete Fourier Transform, DFT)

x [ n ] x[n] x[n] 是长度为 M M M 的有限长序列,则定义 x [ n ] x[n] x[n] N N N 点离散傅里叶变换(Discrete Fourier Transform, DFT)及其逆变换(Inverse DFT, IDFT)如式(1-1)所示,称为离散傅里叶变换对,分别用 D F T [ x [ n ] ] N DFT{\left[ {x[n]} \right]_N} DFT[x[n]]N I D F T [ X [ k ] ] N IDFT{\left[ {X[k]} \right]_N} IDFT[X[k]]N 表示。其中 N N N 为 DFT 变换区间长度, N ≥ M N≥M NM,当 N > M N>M N>M 时自动在 x [ n ] x[n] x[n] 后面补零。

x [ n ] = 1 N ∑ k = 0 N − 1 X [ k ] e j 2 π k n N   ⇌ I D F T D F T   X [ k ] = ∑ n = 0 N − 1 x [ n ] e − j 2 π k n N ,   n , k = 0 , 1 , . . . , N − 1 (1-1) x[n] = \frac{1}{N}\sum\limits_{k = 0}^{N - 1} {X[k]{e^{j\frac{ {2\pi kn}}{N}}}{\text{ }}\mathop \rightleftharpoons \limits_{IDFT}^{DFT} } {\text{ }}X[k] = \sum\limits_{n = 0}^{N - 1} {x[n]{e^{ - j\frac{ {2\pi kn}}{N}}}} ,{\text{ }}n,k = 0,1,...,N - 1 \tag{1-1} x[n]=N1k=0N1X[k]ejN2πkn IDFTDFT X[k]=n=0N1x[n]ejN2πkn, n,k=0,1,...,N1(1-1)

为了对称性,有时将 IDFT 中的系数 1 / N 1/N 1/N 平均分配到 DFT 上,即如式(1-2)所示。

x [ n ] = 1 N ∑ k = 0 N − 1 X [ k ] e j 2 π k n N   ⇌ I D F T D F T   X [ k ] = 1 N ∑ n = 0 N − 1 x [ n ] e − j 2 π k n N (1-2) x[n] = \frac{1}{ {\sqrt N }}\sum\limits_{k = 0}^{N - 1} {X[k]{e^{j\frac{ {2\pi kn}}{N}}}{\text{ }}\mathop \rightleftharpoons \limits_{IDFT}^{DFT} {\text{ }}} X[k] = \frac{1}{ {\sqrt N }}\sum\limits_{n = 0}^{N - 1} {x[n]{e^{ - j\frac{ {2\pi kn}}{N}}}} \tag{1-2} x[n]=N 1k=0N1X[k]ejN2πkn IDFTDFT X[k]=N 1n=0N1x[n]ejN2πkn(1-2)

1.1离散傅里叶变换与离散时间傅里叶变换

对于非周期离散信号 x [ n ] x[n] x[n],当满足收敛性条件时,其离散时间傅里叶变换(Discrete Time Fourier Transform, DTFT)的定义如式(1-3)所示

X ( e j ω ) = D T F T [ x [ n ] ] = ∑ n = − ∞ + ∞ x [ n ] e − j ω n (1-3) X\left( { {e^{j\omega }}} \right) = DTFT\left[ {x[n]} \right] = \sum\limits_{n = - \infty }^{ + \infty } {x[n]{e^{ - j\omega n}}} \tag{1-3} X(e)=DTFT[x[n]]=n=+x[n]ejωn(1-3)

容易证明非周期离散信号的DTFT是以 2 π {2\pi } 2π 为周期的。又因为

X [ k ] = D F T [ x [ n ] ] N = X ( e j ω ) ∣ ω = 2 π k N ,   k = 0 , 1 , . . . , N − 1 (1-4) X[k] = DFT{\left[ {x[n]} \right]_N} = {\left. {X\left( { {e^{j\omega }}} \right)} \right|_{\omega = \frac{ {2\pi k}}{N}}},{\text{ }}k = 0,1,...,N - 1 \tag{1-4} X[k]=DFT[x[n]]N=X(e) ω=N2πk, k=0,1,...,N1(1-4)

可以看出,有限长离散序列 x [ n ] x[n] x[n] N N N 点 DFT 是其 DTFT 在 [ 0 ,  2 π ) [0,{\text{ 2}}\pi ) [0, 2π) 上的N点等间隔采样,所以对于不同的 DFT 长度,由于采样间隔的不同,其 DFT 是不一样的。

离散信号是通过连续时间信号的时域采样获得的,而时域的采样会导致其频谱以采样频率为周期进行延拓,即

g ( t ) = ∑ n = − ∞ + ∞ f ( n T ) δ ( t − n T ) . G ( j ω ) = ∫ − ∞ + ∞ g ( t ) e − j ω t d t = ∫ − ∞ + ∞ [ ∑ n = − ∞ + ∞ f ( n T ) δ ( t − n T ) ] e − j ω t d t = ∑ n = − ∞ + ∞ f ( n T ) ∫ − ∞ + ∞ δ ( t − n T ) e − j ω t d t = ∑ n = − ∞ + ∞ f ( n T ) e − j ω n T ∫ − ∞ + ∞ δ ( t − n T ) e − j ω ( t − n T ) d ( t − n T ) = ∑ n = − ∞ + ∞ f ( n T ) e − j ω n T = ∑ n = − ∞ + ∞ f ( 2 π n Ω ) e − j 2 π n Ω ( ω + k Ω ) . \begin{aligned} g(t) &= \sum\limits_{n = - \infty }^{ + \infty } {f(nT)\delta (t - nT)} .\\ G(j\omega ) &= \int\limits_{ - \infty }^{ + \infty } {g(t){e^{ - j\omega t}}dt} \\ &= \int\limits_{ - \infty }^{ + \infty } {\left[ {\sum\limits_{n = - \infty }^{ + \infty } {f(nT)\delta (t - nT)} } \right]{e^{ - j\omega t}}dt} \\ &= \sum\limits_{n = - \infty }^{ + \infty } {f(nT)\int\limits_{ - \infty }^{ + \infty } {\delta (t - nT){e^{ - j\omega t}}dt} } \\ &= \sum\limits_{n = - \infty }^{ + \infty } {f(nT){e^{ - j\omega nT}}\int\limits_{ - \infty }^{ + \infty } {\delta (t - nT){e^{ - j\omega (t - nT)}}d(t - nT)} } \\ &= \sum\limits_{n = - \infty }^{ + \infty } {f(nT){e^{ - j\omega nT}}} = \sum\limits_{n = - \infty }^{ + \infty } {f({\textstyle{ {2\pi n} \over \Omega }}){e^{ - j{\textstyle{ {2\pi n} \over \Omega }}(\omega + k\Omega )}}} . \end{aligned} g(t)G()=n=+f(nT)δ(tnT).=+g(t)etdt=+[n=+f(nT)δ(tnT)]etdt=n=+f(nT)+δ(tnT)etdt=n=+f(nT)ejωnT+δ(tnT)e(tnT)d(tnT)=n=+f(nT)ejωnT=n=+f(Ω2πn)ejΩ2πn(ω+kΩ).

将采样频率 Ω {\Omega} Ω 归一化到 2 π {2\pi} 2π,那么离散信号的频谱将以 2 π {2\pi} 2π 为周期,这就是式(1-3)周期性的意义。由于连续信号的频谱的 ω = 0 {\omega = 0} ω=0 处对应着信号的低频分量, ω = ± ∞ {\omega = \pm \infty} ω=± 处对应着信号的高频分量,因此可知 DTFT 的 ω = 2 π k {\omega = 2\pi k} ω=2πk 处对应着离散信号的低频分量,而 ω = π ( 2 k + 1 ) \omega = \pi \left( {2k + 1} \right) ω=π(2k+1) 处对应着离散信号的高频分量,同时频率高于采样频率一半的信号分量将会发生混叠,即无法从采样信号中无失真地恢复该信号分量。为了使感兴趣信号不至于发生失真,那么采样频率应该至少达到感兴趣信号最高频率的两倍,这就是奈奎斯特采样定理的物理意义。由于离散信号的离散傅里叶变换是其离散时间傅里叶变换在 [ 0 ,  2 π ) [0,{\text{ 2}}\pi ) [0, 2π) 上的 N N N 点等间隔采样,所以可以得知 X [ 0 ] X[0] X[0] 对应着信号的低频分量, X [ N / 2 ] X[N/2] X[N/2] 对应着信号的高频分量。另外要注意的是,时域与频域性质总是对称的,频域上的等间隔采样也会导致时域信号的周期性延拓,这也是为什么我们做 DFT 的时候需要保证变换长度不小于信号长度的原因。

1.2 DFT 的隐含周期性

尽管 DFT 和 IDFT 都定义在长度为 N N N 的区间上,但所得的 DFT 却是有周期性的,因为

e − j 2 π ( k + m N ) n N = e − j ( 2 π k n N + 2 π m n ) = e − j 2 π k n N X [ k + m N ] = ∑ n = 0 N − 1 x [ n ] e − j 2 π ( k + m N ) n N = ∑ n = 0 N − 1 x [ n ] e − j 2 π k n N = X [ k ] (1-5) \begin{gathered} {e^{ - j\frac{ {2\pi \left( {k + mN} \right)n}}{N}}} = {e^{ - j\left( {\frac{ {2\pi kn}}{N} + 2\pi mn} \right)}} = {e^{ - j\frac{ {2\pi kn}}{N}}} \\ X[k + mN] = \sum\limits_{n = 0}^{N - 1} {x[n]{e^{ - j\frac{ {2\pi \left( {k + mN} \right)n}}{N}}}} = \sum\limits_{n = 0}^{N - 1} {x[n]{e^{ - j\frac{ {2\pi kn}}{N}}}} = X[k] \\ \end{gathered} \tag{1-5} ejN2π(k+mN)n=ej(N2πkn+2πmn)=ejN2πknX[k+mN]=n=0N1x[n]ejN2π(k+mN)n=n=0N1x[n]ejN2πkn=X[k](1-5)

我们记 X [ k ] X[k] X[k] 的周期延拓序列为 X ~ [ k ] \tilde X[k] X~[k],其中 X [ k ] X[k] X[k] X ~ [ k ] \tilde X[k] X~[k] 的主值序列(即从 0 下标开始的第一个周期)。

同样,对 x [ n ] x[n] x[n] 进行周期为 N N N 的延拓,记为 x ~ [ n ] \tilde x[n] x~[n]。那么对 x ~ [ n ] \tilde x[n] x~[n] 上任意一个长度为 N N N 的区间,如

n = a + b N ,   a + b N + 1 ,   . . . ,   a + b N + N − 1 ,  0 ⩽ a ⩽ N − 1 (1-6) n = a + bN,{\text{ }}a + bN + 1,{\text{ }}...,{\text{ }}a + bN + N - 1,{\text{ 0}} \leqslant a \leqslant N - 1 \tag{1-6} n=a+bN, a+bN+1, ..., a+bN+N1, 0aN1(1-6)

则有

∑ n = a + b N a + b N + N − 1 x ~ [ n ] e − j 2 π k n N = ∑ n = a a + N − 1 x ~ [ n + b N ] e − j 2 π k ( n + b N ) N = ∑ n = a a + N − 1 x ~ [ n ] e − j 2 π k n N = ∑ n = a N − 1 x ~ [ n ] e − j 2 π k n N + ∑ n = 0 a − 1 x ~ [ n + N ] e − j 2 π k ( n + N ) N = ∑ n = 0 N − 1 x [ n ] e − j 2 π k n N = X ~ [ k ] (1-7) \begin{aligned} \sum\limits_{n = a + bN}^{a + bN + N - 1} {\tilde x[n]{e^{ - j\frac{ {2\pi kn}}{N}}}} &= \sum\limits_{n = a}^{a + N - 1} {\tilde x[n + bN]{e^{ - j\frac{ {2\pi k\left( {n + bN} \right)}}{N}}}} \\ &= \sum\limits_{n = a}^{a + N - 1} {\tilde x[n]{e^{ - j\frac{ {2\pi kn}}{N}}}} \\ &= \sum\limits_{n = a}^{N - 1} {\tilde x[n]{e^{ - j\frac{ {2\pi kn}}{N}}}} + \sum\limits_{n = 0}^{a - 1} {\tilde x[n + N]{e^{ - j\frac{ {2\pi k\left( {n + N} \right)}}{N}}}} \\ &= \sum\limits_{n = 0}^{N - 1} {x[n]{e^{ - j\frac{ {2\pi kn}}{N}}}} = \tilde X[k] \\ \end{aligned} \tag{1-7} n=a+bNa+bN+N1x~[n]ejN2πkn=n=aa+N1x~[n+bN]ejN2πk(n+bN)=n=aa+N1x~[n]ejN2πkn=n=aN1x~[n]ejN2πkn+n=0a1x~[n+N]ejN2πk(n+N)=n=0N1x[n]ejN2πkn=X~[k](1-7)

因此,在周期延拓序列上改变求和周期区间的位置,得到的序列与原始有限长序列 x [ n ] x[n] x[n] 的 DFT 序列是一致的,因此在计算 DFT 的时候并不一定要从 n = 0 n=0 n=0 位置开始。这对于 IDFT 也是成立的,这里不再赘述。实际上,式(1-7)对应着周期延拓序列 x ~ [ n ] \tilde x[n] x~[n] 的离散傅里叶级数(Discrete Fourier Series, DFS)系数的求解,而 DFS 的系数确定了该周期序列的频谱,因此有限长序列 x [ n ] x[n] x[n] 的 DFT 反映了其周期延拓序列 x ~ [ n ] \tilde x[n] x~[n] 的频谱特性。

1.3 线性性质

设有两个长度分别为 N 1 N_1 N1 N 2 N_2 N2 的有限长序列 x 1 [ n ] x_1[n] x1[n] x 2 [ n ] x_2[n] x2[n],且有

y [ n ] = a x 1 [ n ] + b x 2 [ n ] (1-8) y[n] = a{x_1}[n] + b{x_2}[n] \tag{1-8} y[n]=ax1[n]+bx2[n](1-8)

其中 a a a b b b 为常数,取 y [ n ] y[n] y[n] 的长度为 N = m a x [ N 1 , N 2 ] N=max[N_1, N_2] N=max[N1,N2],那么 y [ n ] y[n] y[n] N N N 点 DFT 为

Y [ k ] = D F T [ y [ n ] ] N = ∑ n = 0 N − 1 y [ n ] e − j 2 π k n N = ∑ n = 0 N − 1 ( a x 1 [ n ] + b x 2 [ n ] ) e − j 2 π k n N = a ∑ n = 0 N − 1 x 1 [ n ] e − j 2 π k n N + b ∑ n = 0 N − 1 x 2 [ n ] e − j 2 π k n N = a ⋅ D F T [ x 1 [ n ] ] N + b ⋅ D F T [ x 2 [ n ] ] N (1-9) \begin{aligned} Y[k] &= DFT{\left[ {y[n]} \right]_N} = \sum\limits_{n = 0}^{N - 1} {y[n]{e^{ - j\frac{ {2\pi kn}}{N}}}} \\ &= \sum\limits_{n = 0}^{N - 1} {\left( {a{x_1}[n] + b{x_2}[n]} \right){e^{ - j\frac{ {2\pi kn}}{N}}}} \\ &= a\sum\limits_{n = 0}^{N - 1} { {x_1}[n]{e^{ - j\frac{ {2\pi kn}}{N}}}} + b\sum\limits_{n = 0}^{N - 1} { {x_2}[n]{e^{ - j\frac{ {2\pi kn}}{N}}}} \\ &= a \cdot DFT{\left[ { {x_1}[n]} \right]_N} + b \cdot DFT{\left[ { {x_2}[n]} \right]_N} \\ \end{aligned} \tag{1-9} Y[k]=DFT[y[n]]N=n=0N1y[n]ejN2πkn=n=0N1(ax1[n]+bx2[n])ejN2πkn=an=0N1x1[n]ejN2πkn+bn=0N1x2[n]ejN2πkn=aDFT[x1[n]]N+bDFT[x2[n]]N(1-9)

1.4 循环移位性质

设有限长序列 x [ n ] x[n] x[n] 的周期为 N N N 的延拓序列为 x ~ [ n ] \tilde x[n] x~[n],那么其 m m m 点循环移位为

y [ n ] = x ~ [ n + m ] R N [ n ] ,   R N [ n ] = { 1 ,   0 ⩽ n ⩽ N − 1 0 ,   o t h e r s (1-10) y[n] = \tilde x[n + m]{R_N}[n],{\text{ }}{R_N}[n] = \left\{ {\begin{array}{l} {1,{\text{ }}0 \leqslant n \leqslant N - 1} \\ {0,{\text{ }}others} \end{array}} \right. \tag{1-10} y[n]=x~[n+m]RN[n], RN[n]={ 1, 0nN10, others(1-10)

因为 x ~ [ n ] \tilde x[n] x~[n] N N N 为周期,因此不妨令 0 ⩽ m ⩽ N − 1 0 \leqslant m \leqslant N - 1 0mN1。那么,

Y [ k ] = D F T [ y [ n ] ] N = ∑ n = 0 N − 1 y [ n ] e − j 2 π k n N = ∑ n = 0 N − 1 x ~ [ n + m ] e − j 2 π k n N = ∑ n = m m + N − 1 x ~ [ n ] e − j 2 π k ( n − m ) N = e j 2 π k m N ⋅ ∑ n = m m + N − 1 x ~ [ n ] e − j 2 π k n N = e j 2 π k m N X [ k ] (1-11) \begin{aligned} Y[k] &= DFT{\left[ {y[n]} \right]_N} = \sum\limits_{n = 0}^{N - 1} {y[n]{e^{ - j\frac{ {2\pi kn}}{N}}}} \\ &= \sum\limits_{n = 0}^{N - 1} {\tilde x[n + m]{e^{ - j\frac{ {2\pi kn}}{N}}}} = \sum\limits_{n = m}^{m + N - 1} {\tilde x[n]{e^{ - j\frac{ {2\pi k\left( {n - m} \right)}}{N}}}} \\ &= {e^{j\frac{ {2\pi km}}{N}}} \cdot \sum\limits_{n = m}^{m + N - 1} {\tilde x[n]{e^{ - j\frac{ {2\pi kn}}{N}}}} = {e^{j\frac{ {2\pi km}}{N}}}X[k] \\ \end{aligned} \tag{1-11} Y[k]=DFT[y[n]]N=n=0N1y[n]ejN2πkn=n=0N1x~[n+m]ejN2πkn=n=mm+N1x~[n]ejN2πk(nm)=ejN2πkmn=mm+N1x~[n]ejN2πkn=ejN2πkmX[k](1-11)

同样,对于 DFT 序列的 l l l 点循环移位,有

y [ n ] = I D F T [ Y [ k ] ] N = 1 N ∑ k = 0 N − 1 Y [ k ] e j 2 π k n N = 1 N ∑ k = 0 N − 1 X ~ [ k + l ] e j 2 π k n N = 1 N ∑ k = l l + N − 1 X ~ [ k ] e j 2 π ( k − l ) n N = e − j 2 π l n N ⋅ 1 N ∑ k = l l + N − 1 X ~ [ k ] e j 2 π k n N = e − j 2 π l n N x [ n ] (1-12) \begin{aligned} y[n] &= IDFT{\left[ {Y[k]} \right]_N} = \frac{1}{N}\sum\limits_{k = 0}^{N - 1} {Y[k]{e^{j\frac{ {2\pi kn}}{N}}}} \\ &= \frac{1}{N}\sum\limits_{k = 0}^{N - 1} {\tilde X[k + l]{e^{j\frac{ {2\pi kn}}{N}}}} = \frac{1}{N}\sum\limits_{k = l}^{l + N - 1} {\tilde X[k]{e^{j\frac{ {2\pi \left( {k - l} \right)n}}{N}}}} \\ &= {e^{ - j\frac{ {2\pi ln}}{N}}} \cdot \frac{1}{N}\sum\limits_{k = l}^{l + N - 1} {\tilde X[k]{e^{j\frac{ {2\pi kn}}{N}}}} = {e^{ - j\frac{ {2\pi ln}}{N}}}x[n] \\ \end{aligned} \tag{1-12} y[n]=IDFT[Y[k]]N=N1k=0N1Y[k]ejN2πkn=N1k=0N1X~[k+l]ejN2πkn=N1k=ll+N1X~[k]ejN2π(kl)n=ejN2πlnN1k=ll+N1X~[k]ejN2πkn=ejN2πlnx[n](1-12)

1.5复共轭性质

1.5.1 有限长共轭对称与共轭反对称序列

对于一个长度为 N N N 的有限长序列 x [ n ] x[n] x[n],我们称之为有限长共轭对称序列,并用 x e p [ n ] x_{ep}[n] xep[n] 来表示,如果满足

x e p [ n ] = x e p ∗ [ N − n ] ,   n = 0 , 1 , . . . , N − 1. (1-13) {x_{ep}}[n] = x_{ep}^ * [N - n],{\text{ }}n = 0,1,...,N - 1. \tag{1-13} xep[n]=xep[Nn], n=0,1,...,N1.(1-13)

对于一个长度为 N N N 的有限长序列 x [ n ] x[n] x[n],我们称之为有限长反共轭对称序列,并用 x o p [ n ] x_{op}[n] xop[n] 来表示,如果满足

x o p [ n ] = − x o p ∗ [ N − n ] ,   n = 0 , 1 , . . . , N − 1. (1-14) {x_{op}}[n] = - x_{op}^ * [N - n],{\text{ }}n = 0,1,...,N - 1. \tag{1-14} xop[n]=xop[Nn], n=0,1,...,N1.(1-14)

容易证明,任何有限长序列都可表示成其共轭对称分量和共轭反对称分量之和,即

x [ n ] = x e p [ n ] + x o p [ n ] ,   n = 0 , 1 , . . . , N − 1. (1-15) x[n] = {x_{ep}}[n] + {x_{op}}[n],{\text{ }}n = 0,1,...,N - 1. \tag{1-15} x[n]=xep[n]+xop[n], n=0,1,...,N1.(1-15)

其中

x e p [ n ] = 1 2 ( x [ n ] + x ∗ [ N − n ] ) x o p [ n ] = 1 2 ( x [ n ] − x ∗ [ N − n ] ) ,   n = 0 , 1 , . . . , N − 1. (1-16) \begin{array}{c} { {x_{ep}}[n] = \frac{1}{2}\left( {x[n] + {x^ * }[N - n]} \right)} \\ { {x_{op}}[n] = \frac{1}{2}\left( {x[n] - {x^ * }[N - n]} \right)} \end{array},{\text{ }}n = 0,1,...,N - 1. \tag{1-16} xep[n]=21(x[n]+x[Nn])xop[n]=21(x[n]x[Nn]), n=0,1,...,N1.(1-16)

1.5.2 DFT 的共轭对称性

记有限长序列 x [ n ] x[n] x[n] 的复共轭序列为 x ∗ [ n ] x^*[n] x[n],那么

X ∗ [ N − k ] = [ ∑ n = 0 N − 1 x [ n ] e − j 2 π ( N − k ) n N ] ∗ = ∑ n = 0 N − 1 x ∗ [ n ] e − j 2 π ( k − N ) n N = ∑ n = 0 N − 1 x ∗ [ n ] e − j 2 π k n N = D F T [ x ∗ [ n ] ] N (1-17) \begin{gathered} {X^ * }[N - k] = {\left[ {\sum\limits_{n = 0}^{N - 1} {x[n]{e^{ - j\frac{ {2\pi \left( {N - k} \right)n}}{N}}}} } \right]^ * } = \sum\limits_{n = 0}^{N - 1} { {x^ * }[n]{e^{ - j\frac{ {2\pi \left( {k - N} \right)n}}{N}}}} \\ = \sum\limits_{n = 0}^{N - 1} { {x^ * }[n]{e^{ - j\frac{ {2\pi kn}}{N}}}} = DFT{\left[ { {x^ * }[n]} \right]_N} \\ \end{gathered} \tag{1-17} X[Nk]=[n=0N1x[n]ejN2π(Nk)n]=n=0N1x[n]ejN2π(kN)n=n=0N1x[n]ejN2πkn=DFT[x[n]]N(1-17)

同样,

D F T [ x ∗ [ N − n ] ] N = ∑ n = 0 N − 1 x ∗ [ N − n ] e − j 2 π k n N = ∑ n = 0 N − 1 x ∗ [ n ] e − j 2 π k ( N − n ) N = ∑ n = 0 N − 1 x ∗ [ n ] e j 2 π k n N = ( ∑ n = 0 N − 1 x [ n ] e − j 2 π k n N ) ∗ = X ∗ [ k ] (1-18) \begin{aligned} DFT{\left[ { {x^ * }[N - n]} \right]_N} &= \sum\limits_{n = 0}^{N - 1} { {x^ * }[N - n]{e^{ - j\frac{ {2\pi kn}}{N}}}} \\ &= \sum\limits_{n = 0}^{N - 1} { {x^ * }[n]{e^{ - j\frac{ {2\pi k\left( {N - n} \right)}}{N}}}} = \sum\limits_{n = 0}^{N - 1} { {x^ * }[n]{e^{j\frac{ {2\pi kn}}{N}}}} \\ &= {\left( {\sum\limits_{n = 0}^{N - 1} {x[n]{e^{ - j\frac{ {2\pi kn}}{N}}}} } \right)^ * } = {X^ * }[k] \\ \end{aligned} \tag{1-18} DFT[x[Nn]]N=n=0N1x[Nn]ejN2πkn=n=0N1x[n]ejN2πk(Nn)=n=0N1x[n]ejN2πkn=(n=0N1x[n]ejN2πkn)=X[k](1-18)

这里用到了 x [ 0 ] = x [ N ] x[0] = x[N] x[0]=x[N] X [ 0 ] = X [ N ] X[0] = X[N] X[0]=X[N] 的周期性质。

1.5.3 纯实与纯虚序列的DFT

因为

x r [ n ] = Re ⁡ ( x [ n ] ) = 1 2 ( x [ n ] + x ∗ [ n ] ) j x i [ n ] = j Im ⁡ ( x [ n ] ) = 1 2 ( x [ n ] − x ∗ [ n ] ) (1-19) \begin{gathered} {x_r}[n] = \operatorname{Re} \left( {x[n]} \right) = \frac{1}{2}\left( {x[n] + {x^ * }[n]} \right) \\ j{x_i}[n] = j\operatorname{Im} \left( {x[n]} \right) = \frac{1}{2}\left( {x[n] - {x^ * }[n]} \right) \\ \end{gathered} \tag{1-19} xr[n]=Re(x[n])=21(x[n]+x[n])jxi[n]=jIm(x[n])=21(x[n]x[n])(1-19)

所以由式(1-16)和式(1-17)可得

D F T [ x r [ n ] ] N = 1 2 ( D F T [ x [ n ] ] N + D F T [ x ∗ [ n ] ] N ) = 1 2 ( X [ k ] + X ∗ [ N − k ] ) = X e p [ k ] D F T [ j x i [ n ] ] N = 1 2 ( D F T [ x [ n ] ] N − D F T [ x ∗ [ n ] ] N ) = 1 2 ( X [ k ] − X ∗ [ N − k ] ) = X o p [ k ] (1-20) \begin{aligned} DFT{\left[ { {x_r}[n]} \right]_N} &= \frac{1}{2}\left( {DFT{ {\left[ {x[n]} \right]}_N} + DFT{ {\left[ { {x^ * }[n]} \right]}_N}} \right) \\ &= \frac{1}{2}\left( {X[k] + {X^ * }[N - k]} \right) = {X_{ep}}[k] \\ DFT{\left[ {j{x_i}[n]} \right]_N} &= \frac{1}{2}\left( {DFT{ {\left[ {x[n]} \right]}_N} - DFT{ {\left[ { {x^ * }[n]} \right]}_N}} \right) \\ &= \frac{1}{2}\left( {X[k] - {X^ * }[N - k]} \right) = {X_{op}}[k] \\ \end{aligned} \tag{1-20} DFT[xr[n]]NDFT[jxi[n]]N=21(DFT[x[n]]N+DFT[x[n]]N)=21(X[k]+X[Nk])=Xep[k]=21(DFT[x[n]]NDFT[x[n]]N)=21(X[k]X[Nk])=Xop[k](1-20)

这也对应了式(1-15)的共轭对称分解,即

X [ k ] = D F T [ x [ n ] ] N = D F T [ x r [ n ] + j x i [ n ] ] N = X e p [ k ] + X o p [ k ] (1-21) \begin{aligned} X[k] &= DFT{\left[ {x[n]} \right]_N} = DFT{\left[ { {x_r}[n] + j{x_i}[n]} \right]_N} \\ &= {X_{ep}}[k] + {X_{op}}[k] \\ \end{aligned} \tag{1-21} X[k]=DFT[x[n]]N=DFT[xr[n]+jxi[n]]N=Xep[k]+Xop[k](1-21)

因此,对于纯实数序列,其 DFT 序列是共轭对称的;而对于纯虚数序列,其 DFT 序列是共轭反对称的。

1.5.4 有限长共轭对称与共轭反对称序列的 DFT

由式(1-16)和式(1-18)可得

D F T [ x e p [ n ] ] N = 1 2 ( D F T [ x [ n ] ] N + D F T [ x ∗ [ N − n ] ] N ) = 1 2 ( X [ k ] + X ∗ [ k ] ) = Re ⁡ ( X [ k ] ) D F T [ x o p [ n ] ] N = 1 2 ( D F T [ x [ n ] ] N − D F T [ x ∗ [ N − n ] ] N ) = 1 2 ( X [ k ] − X ∗ [ k ] ) = j Im ⁡ ( X [ k ] ) (1-22) \begin{aligned} DFT{\left[ { {x_{ep}}[n]} \right]_N} &= \frac{1}{2}\left( {DFT{ {\left[ {x[n]} \right]}_N} + DFT{ {\left[ { {x^ * }[N - n]} \right]}_N}} \right) \\ &= \frac{1}{2}\left( {X[k] + {X^ * }[k]} \right) = \operatorname{Re} \left( {X[k]} \right) \\ DFT{\left[ { {x_{op}}[n]} \right]_N} &= \frac{1}{2}\left( {DFT{ {\left[ {x[n]} \right]}_N} - DFT{ {\left[ { {x^ * }[N - n]} \right]}_N}} \right) \\ &= \frac{1}{2}\left( {X[k] - {X^ * }[k]} \right) = j\operatorname{Im} \left( {X[k]} \right) \\ \end{aligned} \tag{1-22} DFT[xep[n]]NDFT[xop[n]]N=21(DFT[x[n]]N+DFT[x[Nn]]N)=21(X[k]+X[k])=Re(X[k])=21(DFT[x[n]]NDFT[x[Nn]]N)=21(X[k]X[k])=jIm(X[k])(1-22)

这也同样对应了式(1-15)的共轭对称分解,即

X [ k ] = D F T [ x [ n ] ] N = D F T [ x e p [ n ] + x o p [ n ] ] N = X r [ k ] + j X i [ k ] (1-23) \begin{aligned} X[k] &= DFT{\left[ {x[n]} \right]_N} = DFT{\left[ { {x_{ep}}[n] + {x_{op}}[n]} \right]_N} \\ &= {X_r}[k] + j{X_i}[k] \\ \end{aligned} \tag{1-23} X[k]=DFT[x[n]]N=DFT[xep[n]+xop[n]]N=Xr[k]+jXi[k](1-23)

因此,对于有限长共轭对称序列,其 DFT 序列是纯实数序列;对于有限长共轭反对称序列,其 DFT 序列是纯虚数序列。

1.5.5 有限长对称与反对称实序列的 DFT

综合上面的推导可知,对于一个有限长对称实序列,即满足

x [ n ] = x [ N − n ] = Re ⁡ ( x [ n ] ) (1-24) x[n] = x[N - n] = \operatorname{Re} \left( {x[n]} \right) \tag{1-24} x[n]=x[Nn]=Re(x[n])(1-24)

其 DFT 序列同样是一个有限长对称实序列,即

X [ k ] = X [ N − k ] = Re ⁡ ( X [ k ] ) (1-25) X[k] = X[N - k] = \operatorname{Re} \left( {X[k]} \right) \tag{1-25} X[k]=X[Nk]=Re(X[k])(1-25)

更重要的是,有限长对称实序列的 DFT 的计算可以转化为仅包含余弦函数的实数运算,因为当 N N N 是偶数时

X [ k ] = D F T [ x [ n ] ] N = ∑ n = 0 N − 1 x [ n ] e − j 2 π k n N = x [ 0 ] + ∑ n = 1 N / 2 − 1 x ~ [ n ] e − j 2 π k n N + ∑ n = − N / 2 + 1 − 1 x ~ [ n ] e − j 2 π k n N + x [ N / 2 ] e − j π k = x [ 0 ] + ∑ n = 1 N / 2 − 1 x [ n ] ( e − j 2 π k n N + e j 2 π k n N ) + ( − 1 ) k x [ N / 2 ] = x [ 0 ] + 2 ∑ n = 1 N / 2 − 1 x [ n ] cos ⁡ ( 2 π k n N ) + ( − 1 ) k x [ N / 2 ] (1-26) \begin{aligned} X[k] &= DFT{\left[ {x[n]} \right]_N} = \sum\limits_{n = 0}^{N - 1} {x[n]{e^{ - j\frac{ {2\pi kn}}{N}}}} \\ &= x[0] + \sum\limits_{n = 1}^{N/2 - 1} {\tilde x[n]{e^{ - j\frac{ {2\pi kn}}{N}}}} + \sum\limits_{n = - N/2 + 1}^{ - 1} {\tilde x[n]{e^{ - j\frac{ {2\pi kn}}{N}}}} + x[N/2]{e^{ - j\pi k}} \\ &= x[0] + \sum\limits_{n = 1}^{N/2 - 1} {x[n]\left( { {e^{ - j\frac{ {2\pi kn}}{N}}} + {e^{j\frac{ {2\pi kn}}{N}}}} \right)} + {\left( { - 1} \right)^k}x[N/2] \\ &= x[0] + 2\sum\limits_{n = 1}^{N/2 - 1} {x[n]\cos \left( {\frac{ {2\pi kn}}{N}} \right)} + {\left( { - 1} \right)^k}x[N/2] \\ \end{aligned} \tag{1-26} X[k]=DFT[x[n]]N=n=0N1x[n]ejN2πkn=x[0]+n=1N/21x~[n]ejN2πkn+n=N/2+11x~[n]ejN2πkn+x[N/2]ejπk=x[0]+n=1N/21x[n](ejN2πkn+ejN2πkn)+(1)kx[N/2]=x[0]+2n=1N/21x[n]cos(N2πkn)+(1)kx[N/2](1-26)

N N N 是奇数时,

X [ k ] = D F T [ x [ n ] ] N = ∑ n = 0 N − 1 x [ n ] e − j 2 π k n N = x [ 0 ] + ∑ n = 1 ( N − 1 ) / 2 x ~ [ n ] e − j 2 π k n N + ∑ n = − ( N − 1 ) / 2 − 1 x ~ [ n ] e − j 2 π k n N = x [ 0 ] + ∑ n = 1 ( N − 1 ) / 2 x [ n ] ( e − j 2 π k n N + e j 2 π k n N ) = x [ 0 ] + 2 ∑ n = 1 ( N − 1 ) / 2 x [ n ] cos ⁡ ( 2 π k n N ) (1-27) \begin{aligned} X[k] &= DFT{\left[ {x[n]} \right]_N} = \sum\limits_{n = 0}^{N - 1} {x[n]{e^{ - j\frac{ {2\pi kn}}{N}}}} \\ &= x[0] + \sum\limits_{n = 1}^{ { {\left( {N - 1} \right)} / 2}} {\tilde x[n]{e^{ - j\frac{ {2\pi kn}}{N}}}} + \sum\limits_{n = - { {\left( {N - 1} \right)} / 2}}^{ - 1} {\tilde x[n]{e^{ - j\frac{ {2\pi kn}}{N}}}} \\ &= x[0] + \sum\limits_{n = 1}^{ { {\left( {N - 1} \right)} /2}} {x[n]\left( { {e^{ - j\frac{ {2\pi kn}}{N}}} + {e^{j\frac{ {2\pi kn}}{N}}}} \right)} \\ &= x[0] + 2\sum\limits_{n = 1}^{ { {\left( {N - 1} \right)} /2}} {x[n]\cos \left( {\frac{ {2\pi kn}}{N}} \right)} \\ \end{aligned} \tag{1-27} X[k]=DFT[x[n]]N=n=0N1x[n]ejN2πkn=x[0]+n=1(N1)/2x~[n]ejN2πkn+n=(N1)/21x~[n]ejN2πkn=x[0]+n=1(N1)/2x[n](ejN2πkn+ejN2πkn)=x[0]+2n=1(N1)/2x[n]cos(N2πkn)(1-27)

由式(1-26)和(1-27)可以看出,对于有限长对称实序列,其 DFT 不仅参与运算的序列长度减少了一半,而且省去了相对复杂的复数运算,只涉及余弦函数的实数运算,因此这时也称之为离散余弦变换。

而对于一个有限长反对称实序列,即满足

x [ n ] = − x [ N − n ] = Re ⁡ ( x [ n ] ) (1-28) x[n] = - x[N - n] = \operatorname{Re} \left( {x[n]} \right) \tag{1-28} x[n]=x[Nn]=Re(x[n])(1-28)

其 DFT 序列是一个有限长共轭对称纯虚序列,即

X [ k ] = X ∗ [ N − k ] = j Im ⁡ ( X [ k ] ) = − j Im ⁡ ( X [ N − k ] ) (1-29) X[k] = {X^ * }[N - k] = j\operatorname{Im} \left( {X[k]} \right) = - j\operatorname{Im} \left( {X[N - k]} \right) \tag{1-29} X[k]=X[Nk]=jIm(X[k])=jIm(X[Nk])(1-29)

那么 j X [ k ] jX[k] jX[k] 则是一个有限长反对称实序列,因为

j X [ k ] = j X ∗ [ N − k ] = − Im ⁡ ( X [ k ] ) = Im ⁡ ( X [ N − k ] ) (1-30) jX[k] = j{X^ * }[N - k] = - \operatorname{Im} \left( {X[k]} \right) = \operatorname{Im} \left( {X[N - k]} \right) \tag{1-30} jX[k]=jX[Nk]=Im(X[k])=Im(X[Nk])(1-30)

类似于有限长对称实序列,有限长反对称实序列的 DFT 的计算同样可以转化为仅包含正弦函数的实数运算。当 N N N 为偶数时,

j X [ k ] = j D F T [ x [ n ] ] N = j ∑ n = 0 N − 1 x [ n ] e − j 2 π k n N = j ( ∑ n = 1 N / 2 − 1 x ~ [ n ] e − j 2 π k n N + ∑ n = − N / 2 + 1 − 1 x ~ [ n ] e − j 2 π k n N ) = j ∑ n = 1 N / 2 − 1 x [ n ] ( e − j 2 π k n N − e j 2 π k n N ) = 2 ∑ n = 1 N / 2 − 1 x [ n ] sin ⁡ ( 2 π k n N ) (1-31) \begin{aligned} jX[k] &= jDFT{\left[ {x[n]} \right]_N} = j\sum\limits_{n = 0}^{N - 1} {x[n]{e^{ - j\frac{ {2\pi kn}}{N}}}} \\ &= j\left( {\sum\limits_{n = 1}^{N/2 - 1} {\tilde x[n]{e^{ - j\frac{ {2\pi kn}}{N}}}} + \sum\limits_{n = - N/2 + 1}^{ - 1} {\tilde x[n]{e^{ - j\frac{ {2\pi kn}}{N}}}} } \right) \\ &= j\sum\limits_{n = 1}^{N/2 - 1} {x[n]\left( { {e^{ - j\frac{ {2\pi kn}}{N}}} - {e^{j\frac{ {2\pi kn}}{N}}}} \right)} = 2\sum\limits_{n = 1}^{N/2 - 1} {x[n]\sin \left( {\frac{ {2\pi kn}}{N}} \right)} \\ \end{aligned} \tag{1-31} jX[k]=jDFT[x[n]]N=jn=0N1x[n]ejN2πkn=j n=1N/21x~[n]ejN2πkn+n=N/2+11x~[n]ejN2πkn =jn=1N/21x[n](ejN2πknejN2πkn)=2n=1N/21x[n]sin(N2πkn)(1-31)

N N N 为奇数时,

j X [ k ] = j D F T [ x [ n ] ] N = j ∑ n = 0 N − 1 x [ n ] e − j 2 π k n N = j ( ∑ n = 1 ( N − 1 ) / 2 x ~ [ n ] e − j 2 π k n N + ∑ n = − ( N − 1 ) / 2 − 1 x ~ [ n ] e − j 2 π k n N ) = j ∑ n = 1 ( N − 1 ) / 2 x [ n ] ( e − j 2 π k n N − e j 2 π k n N ) = 2 ∑ n = 1 ( N − 1 ) / 2 x [ n ] sin ⁡ ( 2 π k n N ) (1-32) \begin{aligned} jX[k] &= jDFT{\left[ {x[n]} \right]_N} = j\sum\limits_{n = 0}^{N - 1} {x[n]{e^{ - j\frac{ {2\pi kn}}{N}}}} \\ &= j\left( {\sum\limits_{n = 1}^{ { {\left( {N - 1} \right)} /2}} {\tilde x[n]{e^{ - j\frac{ {2\pi kn}}{N}}}} + \sum\limits_{n = - { {\left( {N - 1} \right)} /2}}^{ - 1} {\tilde x[n]{e^{ - j\frac{ {2\pi kn}}{N}}}} } \right) \\ &= j\sum\limits_{n = 1}^{ { {\left( {N - 1} \right)} /2}} {x[n]\left( { {e^{ - j\frac{ {2\pi kn}}{N}}} - {e^{j\frac{ {2\pi kn}}{N}}}} \right)} = 2\sum\limits_{n = 1}^{ { {\left( {N - 1} \right)} /2}} {x[n]\sin \left( {\frac{ {2\pi kn}}{N}} \right)} \\ \end{aligned}\tag{1-32} jX[k]=jDFT[x[n]]N=jn=0N1x[n]ejN2πkn=j n=1(N1)/2x~[n]ejN2πkn+n=(N1)/21x~[n]ejN2πkn =jn=1(N1)/2x[n](ejN2πknejN2πkn)=2n=1(N1)/2x[n]sin(N2πkn)(1-32)

由式(1-31)和(1-32)可以看出,对于有限长反对称实序列,其 DFT 不仅参与运算的序列长度减少了一半,而且省去了相对复杂的复数运算,只涉及正弦函数的实数运算(最后乘以虚数单位j),因此这时也称之为离散正弦变换。

1.5.6 有限长序列 DFT 的独立分量个数

这部分内容为个人理解,没有严格证明,只是为了方便后面 DCT 和 DST 的分析,不来自任何教材,仅供参考。如果我们将有限长序列及其 DFT 序列中每一个实数称为一个分量,其中复数的实部和虚部分别算作两个分量,那么对于可以任意取值的分量,我们称之为独立分量。当序列满足前面所述的如纯实数、纯虚数、复共轭对称、复共轭反对称等约束性条件时,部分分量的取值受到自身或者其他一些分量取值的限制,因此序列中的分量并不全是独立分量。值得注意的是,不同独立分量的取值可以是一样的,只是彼此之间不存在约束条件。注意,当变换长度大于序列长度而在末尾补零时,所补的零也应该算做独立分量,因为增加的采样点实际上是可以任意取值的,只是人为地将其视作为零。然而,当序列进行采样点之间的补零上采样时,所插值被约束为零,这时所补的零则不应该算做独立分量。

由前面的分析可知,有限长序列 DFT 中独立分量与原序列中的独立分量个数是一致的。对于长度为 N N N 的有限长复数序列,其独立分量个数为 2 N 2N 2N ,其 DFT 同样为有限长复数序列,因此 DFT 的独立分量个数为 2 N 2N 2N;对于长度为 N N N 的有限长纯实数(或纯虚数)序列,其独立分量个数为 N N N ,其 DFT 为有限长复共轭对称(或反对称)序列,因此 DFT 的独立分量个数为 N N N;对于长度为 N N N 的有限长复共轭对称(或反对称)序列,其独立分量个数为 N N N,其 DFT 为有限长纯实数(或纯虚数)序列,因此 DFT 的独立分量个数为 N N N;对于长度为 N N N 的有限长对称(或反对称)实序列,其独立分量个数为 N / 2 N/2 N/2(或 ( N + 1 ) / 2 (N+1)/2 (N+1)/2),其 DFT 为有限长对称实序列(或共轭对称纯虚序列),因此 DFT 的独立分量个数为 N / 2 N/2 N/2(或 ( N + 1 ) / 2 (N+1)/2 (N+1)/2)。

1.6 离散傅里叶变换的矩阵形式

由于离散傅里叶变换处理的是有限长序列,而且其变换形式为序列的加权求和,因此很容易表示为矩阵运算的形式,方便计算机处理。令

W N k n = e − j 2 π k n N ,   k , n = 0 , 1 , . . . , N − 1. (1-33) W_N^{kn} = {e^{ - j\frac{ {2\pi kn}}{N}}},{\text{ }}k,n = 0,1,...,N - 1. \tag{1-33} WNkn=ejN2πkn, k,n=0,1,...,N1.(1-33)

那么有限长序列 x [ n ] x[n] x[n] N N N 点离散傅里叶变换可表示为

X = 1 N [ W N 0 × 0 W N 0 × 1 ⋯ W N 0 × ( N − 1 ) W N 1 × 0 W N 1 × 1 ⋯ W N 1 × ( N − 1 ) ⋮ ⋮ ⋱ ⋮ W N ( N − 1 ) × 0 W N ( N − 1 ) × 1 ⋯ W N ( N − 1 ) × ( N − 1 ) ] [ x [ 0 ] x [ 1 ] ⋮ x [ N − 1 ] ] = W N x (1-34) {\mathbf{X}} = \frac{1}{ {\sqrt N }}\left[ {\begin{array}{c} {W_N^{0 \times 0}}&{W_N^{0 \times 1}}& \cdots &{W_N^{0 \times \left( {N - 1} \right)}} \\ {W_N^{1 \times 0}}&{W_N^{1 \times 1}}& \cdots &{W_N^{1 \times \left( {N - 1} \right)}} \\ \vdots & \vdots & \ddots & \vdots \\ {W_N^{\left( {N - 1} \right) \times 0}}&{W_N^{\left( {N - 1} \right) \times 1}}& \cdots &{W_N^{\left( {N - 1} \right) \times \left( {N - 1} \right)}} \end{array}} \right]\left[ {\begin{array}{c} {x[0]} \\ {x[1]} \\ \vdots \\ {x[N - 1]} \end{array}} \right] = { {\mathbf{W}}_N}{\mathbf{x}} \tag{1-34} X=N 1 WN0×0WN1×0WN(N1)×0WN0×1WN1×1WN(N1)×1WN0×(N1)WN1×(N1)WN(N1)×(N1) x[0]x[1]x[N1] =WNx(1-34)

同理,其逆变换可表示为

x = 1 N [ W N − 0 × 0 W N − 0 × 1 ⋯ W N − 0 × ( N − 1 ) W N − 1 × 0 W N − 1 × 1 ⋯ W N − 1 × ( N − 1 ) ⋮ ⋮ ⋱ ⋮ W N − ( N − 1 ) × 0 W N − ( N − 1 ) × 1 ⋯ W N − ( N − 1 ) × ( N − 1 ) ] [ X [ 0 ] X [ 1 ] ⋮ X [ N − 1 ] ] = W N − 1 X (1-35) {\mathbf{x}} = \frac{1}{ {\sqrt N }}\left[ {\begin{array}{c} {W_N^{ - 0 \times 0}}&{W_N^{ - 0 \times 1}}& \cdots &{W_N^{ - 0 \times \left( {N - 1} \right)}} \\ {W_N^{ - 1 \times 0}}&{W_N^{ - 1 \times 1}}& \cdots &{W_N^{ - 1 \times \left( {N - 1} \right)}} \\ \vdots & \vdots & \ddots & \vdots \\ {W_N^{ - \left( {N - 1} \right) \times 0}}&{W_N^{ - \left( {N - 1} \right) \times 1}}& \cdots &{W_N^{ - \left( {N - 1} \right) \times \left( {N - 1} \right)}} \end{array}} \right]\left[ {\begin{array}{c} {X[0]} \\ {X[1]} \\ \vdots \\ {X[N - 1]} \end{array}} \right] = {\mathbf{W}}_N^{ - 1}{\mathbf{X}} \tag{1-35} x=N 1 WN0×0WN1×0WN(N1)×0WN0×1WN1×1WN(N1)×1WN0×(N1)WN1×(N1)WN(N1)×(N1) X[0]X[1]X[N1] =WN1X(1-35)

其中为了保持公式的一致性,将逆变换中的 1 / N 1/N 1/N 平均分配到了正变换中,即如式(1-2)所示。这时可以看到 W − 1 = W ∗ T { {\mathbf{W}}^{ - 1}} = { {\mathbf{W}}^ * }^T W1=WT,所以 W \mathbf{W} W 是复数域中正交矩阵,称为酉矩阵,因此式(1-2)定义的离散傅里叶变换属于正交变换。

1.7 二维离散傅里叶变换

设有宽高为 M × N M \times N M×N 的二维有限长信号 f [ x , y ] f[x,y] f[x,y],其二维离散傅里叶变换及其逆变换的定义如下

F [ u , v ] = D F T [ f [ x , y ] ] M N = ∑ x = 0 M − 1 ∑ y = 0 N − 1 f [ x , y ] e − j 2 π ( u x M + v y N ) f [ x , y ] = I D F T [ F [ u , v ] ] M N = 1 M N ∑ u = 0 M − 1 ∑ v = 0 N − 1 F [ u , v ] e j 2 π ( u x M + v y N ) u ,   x = 0 , 1 , . . . , M − 1 ;   v ,   y = 0 , 1 , . . . , N − 1. (1-36) \begin{gathered} F\left[ {u,v} \right] = DFT{\left[ {f\left[ {x,y} \right]} \right]_{MN}} = \sum\limits_{x = 0}^{M - 1} {\sum\limits_{y = 0}^{N - 1} {f\left[ {x,y} \right]{e^{ - j2\pi \left( {\frac{ {ux}}{M} + \frac{ {vy}}{N}} \right)}}} } \\ f\left[ {x,y} \right] = IDFT{\left[ {F\left[ {u,v} \right]} \right]_{MN}} = \frac{1}{ {MN}}\sum\limits_{u = 0}^{M - 1} {\sum\limits_{v = 0}^{N - 1} {F\left[ {u,v} \right]{e^{j2\pi \left( {\frac{ {ux}}{M} + \frac{ {vy}}{N}} \right)}}} } \\ u,{\text{ }}x = 0,1,...,M - 1;{\text{ }}v,{\text{ }}y = 0,1,...,N - 1. \\ \end{gathered} \tag{1-36} F[u,v]=DFT[f[x,y]]MN=x=0M1y=0N1f[x,y]ej2π(Mux+Nvy)f[x,y]=IDFT[F[u,v]]MN=MN1u=0M1v=0N1F[u,v]ej2π(Mux+Nvy)u, x=0,1,...,M1; v, y=0,1,...,N1.(1-36)

容易证明,二维离散傅里叶变换及其逆变换可分离为两个一维离散傅里叶变换及其逆变换,例如先对矩阵的每一列进行一维 DFT(IDFT),再对得到的新矩阵的每一行进行一维 DFT(IDFT),即

F [ u , v ] = D F T [ f [ x , y ] ] M N = ∑ x = 0 M − 1 ∑ y = 0 N − 1 f [ x , y ] e − j 2 π ( u x M + v y N ) = ∑ x = 0 M − 1 ∑ y = 0 N − 1 f [ x , y ] e − j 2 π u x M e − j 2 π v y N = ∑ x = 0 M − 1 ( ∑ y = 0 N − 1 f [ x , y ] e − j 2 π v y N ) e − j 2 π u x M f [ x , y ] = I D F T [ F [ u , v ] ] M N = 1 M N ∑ u = 0 M − 1 ∑ v = 0 N − 1 F [ u , v ] e j 2 π ( u x M + v y N ) = 1 M N ∑ u = 0 M − 1 ∑ v = 0 N − 1 F [ u , v ] e j 2 π u x M e j 2 π v y N = 1 M ∑ u = 0 M − 1 ( 1 N ∑ v = 0 N − 1 F [ u , v ] e j 2 π v y N ) e j 2 π u x M u ,   x = 0 , 1 , . . . , M − 1 ;   v ,   y = 0 , 1 , . . . , N − 1. (1-37) \begin{gathered} \begin{aligned} F\left[ {u,v} \right] = DFT{\left[ {f\left[ {x,y} \right]} \right]_{MN}} &= \sum\limits_{x = 0}^{M - 1} {\sum\limits_{y = 0}^{N - 1} {f\left[ {x,y} \right]{e^{ - j2\pi \left( {\frac{ {ux}}{M} + \frac{ {vy}}{N}} \right)}}} } \\ &= \sum\limits_{x = 0}^{M - 1} {\sum\limits_{y = 0}^{N - 1} {f\left[ {x,y} \right]{e^{ - j\frac{ {2\pi ux}}{M}}}{e^{ - j\frac{ {2\pi vy}}{N}}}} } \\ &= \sum\limits_{x = 0}^{M - 1} {\left( {\sum\limits_{y = 0}^{N - 1} {f\left[ {x,y} \right]{e^{ - j\frac{ {2\pi vy}}{N}}}} } \right){e^{ - j\frac{ {2\pi ux}}{M}}}} \end{aligned}\\ \begin{aligned} f\left[ {x,y} \right] = IDFT{\left[ {F\left[ {u,v} \right]} \right]_{MN}} &= \frac{1}{ {MN}}\sum\limits_{u = 0}^{M - 1} {\sum\limits_{v = 0}^{N - 1} {F\left[ {u,v} \right]{e^{j2\pi \left( {\frac{ {ux}}{M} + \frac{ {vy}}{N}} \right)}}} } \\ &= \frac{1}{ {MN}}\sum\limits_{u = 0}^{M - 1} {\sum\limits_{v = 0}^{N - 1} {F\left[ {u,v} \right]{e^{j\frac{ {2\pi ux}}{M}}}{e^{j\frac{ {2\pi vy}}{N}}}} } \\ &= \frac{1}{M}\sum\limits_{u = 0}^{M - 1} {\left( {\frac{1}{N}\sum\limits_{v = 0}^{N - 1} {F\left[ {u,v} \right]{e^{j\frac{ {2\pi vy}}{N}}}} } \right){e^{j\frac{ {2\pi ux}}{M}}}} \end{aligned}\\ u,{\text{ }}x = 0,1,...,M - 1;{\text{ }}v,{\text{ }}y = 0,1,...,N - 1. \\ \end{gathered} \tag{1-37} F[u,v]=DFT[f[x,y]]MN=x=0M1y=0N1f[x,y]ej2π(Mux+Nvy)=x=0M1y=0N1f[x,y]ejM2πuxejN2πvy=x=0M1(y=0N1f[x,y]ejN2πvy)ejM2πuxf[x,y]=IDFT[F[u,v]]MN=MN1u=0M1v=0N1F[u,v]ej2π(Mux+Nvy)=MN1u=0M1v=0N1F[u,v]ejM2πuxejN2πvy=M1u=0M1(N1v=0N1F[u,v]ejN2πvy)ejM2πuxu, x=0,1,...,M1; v, y=0,1,...,N1.(1-37)

用矩阵形式可以表示为

F = ( W M ( W N f ) T ) T = W N f W M T f = ( W M − 1 ( W N − 1 F ) T ) T = W N − 1 F ( W M − 1 ) T = W N − 1 W N f ( W M − 1 W M ) T (1-38) \begin{gathered} {\mathbf{F}} = {\left( { { {\mathbf{W}}_M}{ {\left( { { {\mathbf{W}}_N}{\mathbf{f}}} \right)}^T}} \right)^T} = { {\mathbf{W}}_N}{\mathbf{fW}}_M^T \\ {\mathbf{f}} = {\left( { {\mathbf{W}}_M^{ - 1}{ {\left( { {\mathbf{W}}_N^{ - 1}{\mathbf{F}}} \right)}^T}} \right)^T} = {\mathbf{W}}_N^{ - 1}{\mathbf{F}}{\left( { {\mathbf{W}}_M^{ - 1}} \right)^T} = {\mathbf{W}}_N^{ - 1}{ {\mathbf{W}}_N}{\mathbf{f}}{\left( { {\mathbf{W}}_M^{ - 1}{ {\mathbf{W}}_M}} \right)^T} \\ \end{gathered} \tag{1-38} F=(WM(WNf)T)T=WNfWMTf=(WM1(WN1F)T)T=WN1F(WM1)T=WN1WNf(WM1WM)T(1-38)

当使用式(1-2)的定义时,有 W − 1 = W ∗ T { {\mathbf{W}}^{ - 1}} = { {\mathbf{W}}^ * }^T W1=WT,不再赘述。

猜你喜欢

转载自blog.csdn.net/qq_33552519/article/details/124917126