DFT - 离散余弦变换

创建于 2024-12-02 / 31
字体: [默认] [大] [更大]

离散余弦变换(DCT for Discrete Cosine Transform)是与傅里叶变换相关的一种变换,它类似于离散傅里叶变换(DFT for Discrete Fourier Transform),但是只使用实数。离散余弦变换相当于一个长度大概是它两倍的离散傅里叶变换,这个离散傅里叶变换是对一个实偶函数进行的(因为一个实偶函数的傅里叶变换仍然是一个实偶函数),在有些变形里面需要将输入或者输出的位置移动半个单位(DCT有8种标准类型,其中4种是常见的)。

DCT(离散余弦变换)是 N 输入序列 x(n) ,0≤n≤N-1 ,作为线性变换或复指数的组合。因此,即使 x(n) 是实数,DFT 系数通常也是复数。

假设,我们试图找出一个具有 N×N 结构的正交变换,将实数序列 x(n) 表示为余弦序列的线性组合。我们已经知道 −

$X(K) = displaystylesumlimits_{n = 0}^{N-1}x(n)cosffrac{2Pi kn}{N}0leq k leq N-1$

并且 $x(n) = ffrac{1}{N}sum_{k = 0}^{N-1}x(k)cosffrac{2Pi kn}{N}0leq k leq N-1$

如果 N 点序列 x(n) 是实数且偶数,则这是可能的。因此,$x(n) = x(N-n),0leq n leq (N-1)$。得到的 DFT 本身是实数且偶数。这些事情清楚地表明,我们可以通过对序列的"偶数扩展"取 2N 点 DFT,为任何 N 点实数序列设计离散余弦变换。

DCT 主要用于图像和语音处理。它还用于图像和语音信号的压缩。

$DFT[s(n)] = S(k) = sum_{n = 0}^{2N-1}s(n)W_{2N}^{nk},quad wherequad 0leq k leq 2N-1$

$S(k) = displaystylesumlimits_{n = 0}^{N-1}x(n)W_{2N}^{nk}+displaystylesumlimits_{n = N}^{2N-1}x(2N-n-1)W_{2N}^{nk};quad wherequad 0leq kleq 2N-1$

$Rightarrow S(k) = W_{2N}^{-k/2}+sum_{n = 0}^{N-1}x(n) [W_{2N}^{nk}W_{2N}^{k/2}+W_{2N}^{-nk}W_{2N}^{-k/2}];quad wherequad 0leq kleq 2N-1$

$Rightarrow S(k) = W_{2N}^{ffrac{k}{2}}sum_{n = 0}^{N-1}x(n)cos [ffrac{pi}{N}(n+ffrac{1}{2})k];quad wherequad 0leq kleq 2N-1$

DCT 定义为,

$V(k) = 2sum_{n = 0}^{N-1}x(n)cos [ffrac{pi}{2}(n+ffrac{1}{2})k]quad 其中quad 0leq kleq N-1$

$Rightarrow V(k) = W_{2N}^{ffrac{k}{2}}S(k)quad 或quad S(k) = W_{2N}^{ffrac{k}{2}}V(k),quad 其中quad 0leq kleq N-1$

$Rightarrow V(k) = 2R[W_{2N}^{ffrac{k}{2}}sum_{n = 0}^{N-1}x(n)W_{2N}^{nk}],quad 其中quad 0leq kleq N-1$



0 人点赞过