离散余弦变换
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
离散余弦变换
在数字信号处理领域中,除了应用前面介绍的DFT和DWT之外,还有很多种离散正交变换被广泛采用,其中离散余弦变换(DCT)日益受到重视,特别是在数字图像处理技术中,DCT显示许多优点。通常,以DCT[x(n)]表示对离散时间序列x(n)取一维离散余弦变换,为书写简短借助符号C(k)表示DCT[x(n)],它的定义如下:
C(0)=
N
x(n) N−1
n=0
C(k)=2
N
x(n)
N−1
n=0
cos[(2n+1)kn
2N
]
逆变换IDCT[C(k)]=x(n)定义如下:
x(n)=
N 0+2
N
cos[(2n+1)kn
2N
]
N−1
k=1
以上各式中序号
N=0,1,2,3,………N-1共N个;
K=0,1,2,3,……….N-1也为N个。
从定义表达式容易看出,DCT与DNT的计算有着密切联系,将余弦函数改写为负指数函数取实部的形式可导出如下关系:
C k=2
N
x n Re[e−j(2n+1)kπ] N−1
n=0
=2
Re[x n e−j(2n+1)kπ
2N
N−1
n=0
]
如果把x(n)做如下的时域延拓,以x e(n)表示
x e n=x n (n=1,2,3,………N−1) 0 (n=N,N+1,………2N−1)
则DCT定义表达式可改写为
C0=1
N
x e
2N−1
n=0
(n)
C k=2
x e
2N−1
n=0
(n)cos[
(2n+1)kπ
]
=2
N
Re[x e
2N−1
n=0
n e−j2n+1kπ]
=2
N
Re[e−j kπx e
2N−1
n=0
n e−j2knπ] =
2
N
Re[e−j kπX e(k)]
式中X e k为x e(n)的2N点DFT。可见为求得DCT正变换,可以先求序列x e(n)的2N点DFT(也即FFT),然后在求得C(k).
在做DCT变换时也可现在变换域把C(k)做如下延拓,
C e k=C k (k=1,2,3,………N−1)
0 (k=N,N+1,………2N−1)
可导出IDCT的里一种形式
x(n)=(-
N −2
N
)C e0+
2
Re[e j kπ2N C e(k)e j2knπ2N]
2N−1
k=0
这表明为求得IDCT,可先求[e−j kπ
C e k]的IDFT,然后在
计算x(n)
在数字图像信号处理的许多实际问题中经常用二维离散余弦变换,其表达式为
C(k1,k2)=2
N
x(n1,n2)cos[2n1+1k1π
2N
]
N−1
n2=0
N−1
n1=0
·cos[2n2+1k2π
2N
]
上式中的k1,k2都不等于零,若其中k1或k2等于零,则二维DCT 如下,
C(0,0)=1
N
x(n1,n2)
N−1
n2=0
N−1
n1=0
C(0,k2)=2
N
x(n1,n2)
N−1
n2=0
N−1
n1=0
cos[2n2+1k2π
2N
]
C(k1,0)=2
N
x(n1,n2)
N−1
n2=0
N−1
n1=0
cos[2n1+1k1π
2N
]
相应的IDCT为
x(n1,n2)=1
N C(0,0)+2
N
C(0,k2)
N−1
k2=0
cos[2n2+1k2π
2N
]+
2 N
C(k1,0)
N−1
k1=0
cos[2n1+1k1π
2N
]+
2
N
C(k1,k2)
N−1
n2=0
N−1
n1=0
cos[
2n1+1k1π
2N
]cos[
2n2+1k2π
2N
]