1、 nnxkAkNn10 nkANnxkNk101(4.8-1)在一般有限长变换中,其正反变换式可写为 (4.8-2)kmkmnnNmkNn01110式中k(n)称基序列或变换核,它们相互正交,即4.8 离散余弦变换离散余弦变换(4.8-3)1110nnNmkNn序列。变换,使得x(n)是实序列时,其变换A(k)=X(k)也是实也是复序列。实际上有若干种实数基序列(变换核)的DFT就是这类变换之一。在DFT中,基序列是复周期序列WN。在这种变换中,即使x(n)是实序列,其变换X(k)是归一化正交变换如果缩方面特别有用十分重要。的特点,在数字信号处理的应用,尤其是语音、图像压DCT与DFT关系密切
2、。由于DCT具有能量集中(压缩)离散余弦变换(DCT)就是一种实序列的正交变换,且DCT的变换形式如(4.8-1)(4.8-2)式,其中变换核(基序4.8.1、离散余弦变换的定义、离散余弦变换的定义列)是余弦函数。性。由x(n)的展开不同,有数种DCT的定义。讨论 x(n)的展开。1/41/81/231210例 即与DFT隐含着周期性相似,DCT同时隐含周期对称中的x(n)在区间0 n N-1外的延伸也是周期对称的。x(n)n因为余弦函数既是周期的又是对称的,使(4.8-2)式11/21/41/40 1 2 3 4 5 6 7 81/41/81/211/2 nx1的周期为2N-2=6,对应DC
3、T-1 nx1n11/811/21/41/40 1 2 3 4 5 6 7 8 91/41/81/211/2 nx2的周期为2N=8,对应DCT-2 nx2n1/4-1/2-1-1/41/21/811/4-1/2-1/81-1/41/2-1/813 14 155 6 7 8 9 10 11 120 1 2 3 4 nx3的周期为4N=16,对应DCT-3 nx3n-1-1/81/4-1/2-1-1/41/21/811/4-1/2-1/81-1/41/2121314 155 6 7 8 9 10 110 1 2 3 nx41的周期为4N=16,对应DCT-4 nx4n对于给定的实序列x(n),0
4、 n N-1,DCT定义为 nxDCTkXkXc2 NknnxkcNNn212cos210 111021Nkkkc(4.8-5)(4.8-4)式中由x(n)的展开不同,有数种DCT的定义,只讨论最常用的一种,即DCT-2。10212cos2Ncknkc k XkNN(4.8-6)反变换系数是归一化正交变换所需要的0 n N-1x(n)=IDCTX(k)在本节中 Xc2(k)或X c(k)为简便记为X(k)。由DCT的定义计算 kXc 11010NxxxNXc NNNxNxNxNXc212cos123cos12cos021 NNNNxNNxNNxNNXc2121cos1213cos121cos0
5、21变换可以用矩阵表示为Xc=CNx其中 CN是NN的变换矩阵,例N=8710816105cos21635cos21621cos2167cos21615cos2165cos2163cos216cos2111181cccCkikicccckiNnki011,cNXCx1DCT的反变换的矩阵表示为所以CN是归一化的正交阵,DCT是正交变换。CN的行、列向量均有如下正交关系 (4.8-7)121210NnNnNxNnnxny例 4.8.2、用、用DFT处理处理DCT将N点x(n)实序列扩展为2N点的序列y(n)1/41/81/231210 x(n)n1/811/40 1 2 3 4 5 6 71/4
6、1/81/211/2 y nn由图可见y(n)对N-1/2偶对称。1/41/81/231210 x(n)n kNnkNNnknNNNnWWnxWnx 221012210 nkNNnWnykY2120 nkNNNnnkNNnWnNxWnx21221012nkNNNnWnNx21212对后一项nnN12令12:NNn10:Nn12nNny(n)的DFT为 2/222/22102/2kNnkNkNnkNNnkNWWWWnxWkY NknnxWNnkN212cos2102/2(4.8-8)NknCknN212cos122令 knNNnkNCnxWkY122102/22可写为k=0,1,2,2N-1与D
7、CT定义比较 112022/2NkkXWNkkXNkYkN(4.8-9)11210212/2NkkYWNkkYNkXkNc或(4.8-10)11Re2012102/210NkWnxWNknxNkXnkNNnkNNnc(4.8-11)(4.8-10)式不仅给除了DFT与DCT的关系,也给出了一种将其结果乘以2/2kNWDCT的算法:将x(n)扩展为2N点序列,并求2N的DFT,对IDCT也可以由Y(k)求 2N点的IDFT得到y(n),再由(4.8-7)式的y(n)中截取前N点得到x(n)。后取实部,再乘以适当常数因子。4.8.3、快速余弦变换FCT但它没有利用DCT实系数的优点。实际上DCT余
8、弦变换也有类似DFT的快速算法FCT。其思路、原理与FFT很相似。思路是将长点的DCT分解为短点的DCT,利用基序列余弦的递推关系,减少乘法次数,其流图结构与FFT也很相似。利用DFT求DCT的算法,可以通过FFT提高计算效率,由DCT与IDCT的定义,其基序列(变换核)相同,以IDCT为例,推导快速余弦变换的原理。NknkXkcNnxNk212cos210(4.8-6)knNNkCkXnx12210为推导方便将(4.8-6)式改写为(4.8-12)1、一个N点的IDCT分解为两个N/2点的IDCT 0 n N-1 knNNkCkXnx12210(4.8-12)kXkcNkX2式中(4.8-1
9、3)NknCknN212cos122(4.8-14)将(4.8-12)式中的 按 的奇、偶分为两部分 kXk knNNkCkXnx12210 knNNkCkXnx12210121221202122120122knNNkknNNkCkXCkX1212212012120122knNNkknNNkCkXCkX(4.8-15)knNNkCkXng121202式中=g(n)+h(n)是N/2点的IDCT 利用 NknCknN2212cos2122 1212212012knNNkCkXnh(4.8-17)积的公式作恒等变换knNCNkn1212cosh(n)还不是标准的N/2点的IDCT利用三角的和差与2
10、cos cos=cos(+)+cos(-)121222122121221222knNknNknNnNCCCC(4.8-18)nhCnhnN1222令(4.8-19)对(4.8-17)式两边乘以122nNC得 nhCnN1222(4.8-20)1212212021221201212knNNkknNNkCkXCkX 0212cos212cos1222/2122nNnNCnNNnC并且01120XkXk定义 knNNkknNNkCkXCkX2122120121221201212即(4.8-20)式的第二项可写为 1212212012knNNkCkX knNNkCkX212212012 knNNkCk
11、XkXnh21221201212 knNNkCkXkX121201212 (4.8-21)将(4.8-21)式代入(4.8-20)式(4.8-22)(4.8-23)nhCnhnN11222h(n)是N/2点的IDCT,与h(n)的关系为 nh nhngnx nhCngnN11222(4.8-24)现在g(n)与都可表示为N/2点的IDCT,由式(4.8-15)可得到前N/2点的x(n)0 n(N/2)-1121122120112120122knNNNkknNNNkCkXCkX1212212012120122knNNkknNNkCkXCkX而后N/2点的x(n),利用余弦的周期对称性:x(N-n
12、-1)=g(N-n-1)+h(N-n-1)nhCngnN11222(4.8-25)=g(n)-h(n)分解方法同上,由式(4.8-16)knNNkknNNkCkGCkXng12120121202(4.8-26)其中 kGkX2 kG中的 取奇、偶k2、一个、一个N/2点的点的IDCT分解为两个分解为两个N/4点的点的IDCT knNNkCkGng121201212140212140122knNNkknNNkCkGCkG ngng21(4.8-27)1212140212knNNkCkGng(4.8-29)knNNkknNNkCkGCkGng122/140212140122(4.8-28)1212
13、2121212122knNknNknNnNCCCC利用(4.8-30)ngCngnN21222 12121402121401212knNNkknNNkCkGCkG(4.8-31)121214012122knNNknNCkGC01120GkGk同上利用定义 knNNkknNNkCkGCkG21214012121401212(4.8-31)式的后一项(4.8-34)以及 NNnCNnN2/12cos4/212(4.8-33)0212cos122nCn(4.8-32)knNNkCkGkGng122/14021212这样,得到(4.8-35)(4.8-36)ngCngngnN211212(4.8-37
14、)ngCngnNgnN2112121由此,前N/4点的g(n)为后N/4点的g(n)为同理由(4.8-23)knNNkCkXkXnh121201212 knNNkCkH12120(4.8-38)其中 1212kXkXkH中的 取奇、偶 kHk(4.8-39)knNNkCkHnh121201212140212140122knNNkknNNkCkHCkH nhnh21 knNNkknNNkCkHCkHnh122/140212140122(4.8-40)1212140212knNNkCkHnh(4.8-41)12122121212122knNknNknNnNCCCC利用(4.8-31)式 12121
15、401221221222knNNknNnNCkHCnhCnh 12121402121401212knNNkknNNkCkHCkH(4.8-42)NNnCNnN2/12cos4/212(4.8-33)以及01120HkHk同上利用定义 knNNkknNNkCkHCkH21214012121401212(4.8-42)式的后一项(4.8-43)0212cos122nCn knNNkCkHkHnh122/14021212这样,得到(4.8-44)(4.8-45)nhCnhnhnN211212 nhCnhnNhnN2112121(4.8-46)由此,前N/4点的h(n)为后N/4点的h(n)为 nhC
16、ngnxnN11222 nhCngn112162 nhCngnxnN112227 nhCngn112162例、8点IFCT的流图一个8点的IDCT分解为两个4点的IDCT0 n 30 n 33、不断分解,直到两点IDCT17162C15162C11162C13162C-1-1-1-1 图4.8-1 8 8点的点的IDCTIDCT分解为两个分解为两个4 4点的点的IDCTIDCT 1g 3g 0g 2g 1h 3h 0h 2h一次分解后的流图如图4.8-2所示。X(0)X(7)X(6)X(5)X(4)X(3)X(2)X(1)x(0)x(7)x(6)x(5)x(4)x(3)x(2)x(1)N/2点
17、DFCN/2点DFC knkCkGng1241012 14041404140200CXCXCGCGg 14043404140201CXCXCGCGg二次分解将一个二次分解将一个4点的点的IDCT分解为两个分解为两个2点的点的IDCT knkCkGkGng1241021212 1404213110CGGCGGg 1404262CXXCX 1404131CGGCG 3404213111CGGCGGg 1404262CXXCX 3404131CGGCG1382C1182C-1-1g(n)流图为g(0)g(3)g(2)g(1)g1(0)g1(1)g2(0)g2(1)knNNkCkHnh122/1401
18、2 14041200CHCHh 34041201CHCHhknNNkCkXkX122/1401414 1404351CXXCX 1404351CXXCX knNkCkHkHnh122/1021212 140421311CHHCHh 1404135713CXXXXCXX 140421310CHHCHh 1404135713CXXXXCXX利用 1212kXkXkH-1-1 1h 3h 0h 2h1382C1182Ch1(0)h1(1)h2(0)h2(1)h(n)流图为1142C1142C1142C1142C 0H 1H 3H 2H15162C17162C11162C13162C 0g 1g 3g
19、 2g-1-1-1-1-1-1-1-1-1-1-1-1 图4.8-2 8 8点的点的IFCTIFCT流图流图 1h 3h 0h 2h1382C1182C1382C1182C 0G 1G 3G 2G 12g 01g 11g 02g 21h 10h 11h 20h 最后,N=8点的IFCT流图4.8-3如下所示X(0)X(7)X(6)X(5)X(4)X(2)X(1)X(3)x(0)x(7)x(6)x(5)x(4)x(3)x(2)x(1)因为FCT的算法是IFCT的逆过程,所以翻转IFCT的流图由图4.8-2可归纳FCT的一般运算规律(1)、乘法次数 ,若 是实序列,运算就是NN2log2/nx实数
20、运算。的方向就可得到FCT的运算流图。(2)输入是倒序位的。(3)输出序号的生成由一对二进制数(0,1)开始,在每个作业:作业:画出画出16点点IFCT流图流图110,100,101);。后取反,得到八个二进制数(000,001,011,010,111,依此方法再对四个二进制数(00,01,11,10)前加“0”制数(00,01)取反,得到四个二进制数(00,01,11,10)数前加一个“0”,得到一对二进制数(00,01);对这对二进当N=8时,就是x(0),x(1),x(3),x(2),x(7),x(6),x(4),x(5)。nhCnhnN11222 nhCngnN11222h(n)是N/2点的IDCT,与h(n)的关系为(4.8-23)现在g(n)与h(n)都可表示为N/2点的IDCT,由式(4.8-15)x(n)=g(n)+h(n)可得到前 N/2点的x(n):0 n(N/2)-1(4.8-24)121122120112120122knNNNkknNNNkCkXCkX 1212212012120122knNNkknNNkCkXCkX nhCngnN11222 而后N/2点的x(n),利用余弦的周期对称性:x(N-n-1)=g(N-n-1)+h(N-n-1)(4.8-25)=g(n)+h(n)