前些日子,弄JPEG图片解压时,遇到一个叫DCT(离散余弦变换),原来没有听说过。有些奇怪,有些疑问,DCT和DFT(离散傅立叶变换)什么关系?DCT是否具有DFT的物理意义?有什么差别?DCT只有DFT一半的运算量,根据有得有失的平衡观点,那有什么不足?DCT变换的可逆性,即信号序列变换后能否通过反变换恢复原信号?为什么几乎没听说连续的余弦变换,只有离散的?
自己想了下,一些简单的观点。先看看DFT,DFT是为计算机的信号分析引入的,其思想是将原连续信号采样得到时域的有限信号序列,然后对其周期延拓,变成周期的离散信号,再对此延拓的周期信号进行傅立叶变换,得到一个在频域上周期的离散频谱信号,取此周期频谱的一个周期,即为原连续信号频谱的离散表示。傅立叶级数/变换常常用复指数函数变换,其实也可以用正弦余弦函数集,同样是完备的,而且物理意义明显,但数学上表达麻烦。 只是正弦函数和余弦函数一起才能构成完备的正交基,才能逼近原函数。但对于一些特殊的函数,有一些例外,比如如果信号是时域上的周期偶函数,那么其傅立叶级数只含有余弦项。那么就好办了,在DFT的信号周期延拓中,如果将序列进行偶延拓,那么信号就可以只用余弦项展开,就形成了DCT(运算量比DFT少一半)。但偶延拓实际上将周期加长变为2倍了 但如果延拓为偶谐函数,又可知各分量为2倍频(只有偶数频项),似乎周期又没加长,对于DCT的物理意义与DFT应该大致相当, DCT的高频分量也代表信号的高频分量,在信号压缩中,这样理解已经足够了,这些不敏感的分量量化时权重小些即除数大些,甚至直接舍去。
至于是否可恢复原信号的问题,可以这么考虑,将DCT写成矩阵形式,即为线性变换,由于变换矩阵的向量是线性无关的,维数为N,可逆,既然变换矩阵可逆,那就能Y=CX X=C'Y,所以DCT变换是可逆的,存在反变换IDCT。有时感觉线性代数真是强大,从线性代数观点看一些问题会简单些。
其实求傅立叶系数是信号与某一频率的余弦函数相乘积分即是卷积,求得一个系数,其实就是该信号在在单频点上的投影,或分量。是一种相关,其实也可以认为是(带宽极窄的)滤波。只要满足一定的采样率,用离散的点上求和代替连续的积分,得到一些离散的结果,再插值可恢复为连续。以前的频谱分析仪里面是很多的滤波器构成滤波器组,现在用DFT(FFT)也可以完成原来滤波器相似的工作,那么也可以认为,DFT其实也就是滤波器组。也就是卷积,相关,投影,插值,滤波有着某种意义的相同。
——回复可见内容——