語音識別MFCC系列(三)——離散餘弦變換DCT

都說DCT和離散傅里葉變換DFT其實是一樣的,那咱們就從DFT推出DCT吧。

如果信號是實數,那麼DFT的係數有實部,有虛部,是複共軛的,也就是說正頻率的係數是負頻率係數的共軛,原理參考前兩篇博客:

連續信號的請看語音識別MFCC系列(一)——連續信號、傅里葉變換

離散信號的請看語音識別MFCC系列(二)——離散信號、離散傅里葉變換

 

那麼DCT最後求得的係數只有實部,沒有虛部。

有一段N點的信號\{ x [ 0 ] , \cdots , x [ N - 1 ] \},我們構建一個2N點的序列:

                                                      x ^ { \prime } [ m ] \triangleq \left\{ \begin{array} { l l } { x [ m ] } & { ( 0 \leq m \leq N - 1 ) } \\ { x [ - m - 1 ] } & { ( - N \leq m \leq - 1 ) } \end{array} \right.

這個2N點的序列x ^ { \prime } [ m ]2N爲週期,對m = - 1 / 2成軸對稱:

                                                        x ^ { \prime } [ m ] = x ^ { \prime } [ - m - 1 ] = x ^ { \prime } [ 2 N - m - 1 ]

我們把x ^ { \prime } [ m ]向右移1 / 2,設定m ^ { \prime } = m + 1 / 2,則x ^ { \prime } [ m ] = x ^ { \prime } \left[ m ^ { \prime } - 1 / 2 \right]m ^ { \prime } = 0成軸對稱,下面我們簡要將其表示爲x\left [ m \right ]

 最終形成的2N點的序列的DFT爲:

                 \begin{align*}X [ n ] &= \frac { 1 } { \sqrt { 2 N } } \sum _ { m ^ { \prime } = - N + 1 / 2 } ^ { N - 1 / 2 } x \left[ m ^ { \prime } - \frac { 1 } { 2 } \right] e ^ { - j 2 \pi m ^ { \prime } n / 2 N }\\ &= \frac { 1 } { \sqrt { 2 N } } \sum _ { m ^ { \prime } = - N + 1 / 2 } ^ { N - 1 / 2 } x \left[ m ^ { \prime } - \frac { 1 } { 2 } \right] \cos \left( \frac { 2 \pi m ^ { \prime } n } { 2 N } \right) - \frac { j } { \sqrt { 2 N } } \sum _ { m ^ { \prime } = - N + 1 / 2 } ^ { N - 1 / 2 } x \left[ m ^ { \prime } - \frac { 1 } { 2 } \right] \sin \left( \frac { 2 \pi m ^ { \prime } n } { 2 N } \right)\end{align*}

因爲x \left[ m ^ { \prime } - \frac{1}{2} \right]爲偶函數,\cos \left( 2 \pi m ^ { \prime } n / 2 N \right)是偶函數,\sin \left( 2 \pi m ^ { \prime } n / 2 N \right)爲奇函數,則:

                                  \begin{align*}X [ n ] &=\frac { 1 } { \sqrt { 2 N } } \sum _ { m ^ { \prime } = - N + 1 / 2 } ^ { N - 1 / 2 } x \left[ m ^ { \prime } - \frac { 1 } { 2 } \right] \cos \left( \frac { 2 \pi m ^ { \prime } n } { 2 N } \right)\\ &=\sqrt { \frac { 2 } { N } } \sum _ { m ^ { \prime } = 1 / 2 } ^ { N - 1 / 2 } x \left[ m ^ { \prime } - \frac { 1 } { 2 } \right] \cos \left( \frac { 2 \pi m ^ { \prime } n } { 2 N } \right)\\ &=\sqrt { \frac { 2 } { N } } \sum _ { m = 0 } ^ { N - 1 } x [ m ] \cos \left( \frac { ( 2 m + 1 ) n \pi } { 2 N } \right) \quad ( n = 0 , \cdots , 2 N - 1 ) \end{align*}

吶,最後一行就是DCT啦,其實DCT就是講原N點的信號對稱延拓爲2N點的序列再做個DFT啦,最後的係數沒有虛部,都是實數。

參考網址http://fourier.eng.hmc.edu/e161/lectures/dct/node1.html

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章