This page uses content from Wikipedia and is licensed under CC BY-SA.

# 离散余弦变换

2d DCT（type II） 與离散傅里叶变换的比較.

## 形式化定义

### DCT-I

${\displaystyle f_{m}={\frac {1}{2}}(x_{0}+(-1)^{m}x_{n-1})+\sum _{k=1}^{n-2}x_{k}\cos \left[{\frac {\pi }{n-1}}mk\right]}$

### DCT-II

${\displaystyle f_{m}=\sum _{k=0}^{n-1}x_{k}\cos \left[{\frac {\pi }{n}}m\left(k+{\frac {1}{2}}\right)\right]}$

DCT-II大概是最常用的一种形式，通常直接被称为DCT。

### DCT-III

${\displaystyle f_{m}={\frac {1}{2}}x_{0}+\sum _{k=1}^{n-1}x_{k}\cos \left[{\frac {\pi }{n}}\left(m+{\frac {1}{2}}\right)k\right]}$

### DCT-IV

${\displaystyle f_{m}=\sum _{k=0}^{n-1}x_{k}\cos \left[{\frac {\pi }{n}}\left(m+{\frac {1}{2}}\right)\left(k+{\frac {1}{2}}\right)\right]}$

DCT-IV对应的矩阵是正交矩阵（再乘一个系数的话）。

DCT-IV暗示的边界条件是：${\displaystyle x_{k}}$相对于${\displaystyle k=-{\frac {1}{2}}}$点偶对称，并且相对于${\displaystyle k=n-{\frac {1}{2}}}$点奇对称；对${\displaystyle f_{m}}$类似。

## 反变换

DCT-I的反变换是把DCT-I乘以系数${\displaystyle {\frac {2}{n-1}}}$。 DCT-IV的反变换是把DCT-IV乘以系数${\displaystyle {\frac {2}{n}}}$。 DCT-II的反变换是把DCT-III乘以系数${\displaystyle {\frac {2}{n}}}$，反之亦然。

## 参考

• K. R. Rao and P. Yip, 离散余弦变换：算法、优点和应用Discrete Cosine Transform: Algorithms, Advantages, Applications） (Academic Press, Boston, 1990).
• A. V. Oppenheim, R. W. Schafer, and J. R. Buck, 时间离散信号处理 (Discrete-Time Signal Processing), second edition (Prentice-Hall, New Jersey, 1999).
• S. A. Martucci, 对称卷积和离散正弦余弦变换 (Symmetric convolution and the discrete sine and cosine transforms), IEEE Trans. Sig. Processing SP-42, 1038-1051 (1994).
• Matteo Frigo and Steven G. Johnson: FFTW, [www.fftw.org]. 一个免费的C语言GPL，可以计算DCT-I~IV的1维到多维的任意大小的变换
• M. Frigo and S. G. Johnson, "FFTW3的设计和实现," Proceedings of the IEEE 93 (2), 216–231 (2005).