一维离散余弦变换(DCT)及其反变换(IDCT)公式的一种推导

前言

  取一维离散Fourier变换与反变换的公式为
F ( u ) = c ∑ n = 0 N − 1 f ( n ) e − j 2 π u n N ,   u = 0 , 1 , ⋯   , N − 1 f ( n ) = d ∑ u = 0 N − 1 F ( u ) e j 2 π u n N ,   n = 0 , 1 , ⋯   , N − 1 c d = 1 N \begin{matrix} F\left( u \right)=c\sum\limits_{n=0}^{N-1}{f\left( n \right){ {e}^{-j\frac{2\pi un}{N}}}},\text{ }u=0,1,\cdots ,N-1 \\ f\left( n \right)=d\sum\limits_{u=0}^{N-1}{F\left( u \right){ {e}^{j\frac{2\pi un}{N}}}},\text{ }n=0,1,\cdots ,N-1 \\ cd=\frac{1}{N} \\ \end{matrix} F(u)=cn=0N1f(n)ejN2πun, u=0,1,,N1f(n)=du=0N1F(u)ejN2πun, n=0,1,,N1cd=N1
相关文章可参考一维离散傅里叶变换(DFT)和逆变换(IDFT)公式的一种推导

DCT公式初步推导

  基于公式
F ( u ) = c ∑ n = 0 N − 1 f ( n ) e − j 2 π u n N ,   u = 0 , 1 , ⋯   , N − 1 F\left( u \right)=c\sum\limits_{n=0}^{N-1}{f\left( n \right){ {e}^{-j\frac{2\pi un}{N}}}},\text{ }u=0,1,\cdots ,N-1 F(u)=cn=0N1f(n)ejN2πun, u=0,1,,N1

一般形式

  令 f ( n ) = g ( n ) e − j p π u q N ,   p , q ≠ 0 f\left( n \right)=g\left( n \right){ {e}^{-j\frac{p\pi u}{qN}}},\text{ }p,q\ne 0 f(n)=g(n)ejqNpπu, p,q=0其中 g ( n ) g\left( n \right) g(n)通过个数为 t N ( t ∈ Z ≥ 1 ) tN\left( t\in { {\mathbb{Z}}_{\ge 1}} \right) tN(tZ1)的一个空间域(时域)实数采样序列:
g ( 0 ) , g ( 1 ) , ⋯   , g ( N − 1 ) ,   g ( N ) , ⋯   , g ( t N − 1 ) ,   ∀ n ,   g ( n ) ∈ R g\left( 0 \right),g\left( 1 \right),\cdots ,g\left( N-1 \right),\text{ }g\left( N \right),\cdots ,g\left( tN-1 \right),\text{ }\forall n,\text{ }g\left( n \right)\in \mathbb{R} g(0),g(1),,g(N1), g(N),,g(tN1), n, g(n)R
且当 t > 1 t>1 t>1时, ∀ n ∈ { N , N + 1 , ⋯   , t N − 1 } ,   g ( n ) = 0 \forall n\in \left\{ N,N+1,\cdots ,tN-1 \right\},\text{ }g\left( n \right)=0 n{ N,N+1,,tN1}, g(n)=0,即在拥有前 N N N个采样点的基础上新增 ( t − 1 ) N \left( t-1 \right)N (t1)N个零采样点(无效采样点),则有:
F ( u ) = c ∑ n = 0 t N − 1 [ ( g ( n ) e − j p π u q N ) ⋅ e − j 2 π u n t N ] = c ∑ n = 0 t N − 1 [ g ( n ) ⋅ ( e − j p π u q N ⋅ e − j 2 π u n t N ) ] = c ∑ n = 0 t N − 1 g ( n ) e − j ( p t + 2 n q ) u π q t N = c ∑ n = 0 t N − 1 g ( n ) ( cos ⁡ ( p t + 2 n q ) u π q t N − i sin ⁡ ( p t + 2 n q ) u π q t N ) = c ∑ n = 0 N − 1 g ( n ) ( cos ⁡ ( p t + 2 n q ) u π q t N − i sin ⁡ ( p t + 2 n q ) u π q t N ) \begin{aligned} & F\left( u \right)=c\sum\limits_{n=0}^{tN-1}{\left[ \left( g\left( n \right){ {e}^{-j\frac{p\pi u}{qN}}} \right)\centerdot { {e}^{-j\frac{2\pi un}{tN}}} \right]} \\ & =c\sum\limits_{n=0}^{tN-1}{\left[ g\left( n \right)\centerdot \left( { {e}^{-j\frac{p\pi u}{qN}}}\centerdot { {e}^{-j\frac{2\pi un}{tN}}} \right) \right]} \\ & =c\sum\limits_{n=0}^{tN-1}{g\left( n \right){ {e}^{-j\frac{\left( pt+2nq \right)u\pi }{qtN}}}} \\ & =c\sum\limits_{n=0}^{tN-1}{g\left( n \right)\left( \cos \frac{\left( pt+2nq \right)u\pi }{qtN}-i\sin \frac{\left( pt+2nq \right)u\pi }{qtN} \right)} \\ & =c\sum\limits_{n=0}^{N-1}{g\left( n \right)\left( \cos \frac{\left( pt+2nq \right)u\pi }{qtN}-i\sin \frac{\left( pt+2nq \right)u\pi }{qtN} \right)} \\ \end{aligned} F(u)=cn=0tN1[(g(n)ejqNpπu)ejtN2πun]=cn=0tN1[g(n)(ejqNpπuejtN2πun)]=cn=0tN1g(n)ejqtN(pt+2nq)uπ=cn=0tN1g(n)(cosqtN(pt+2nq)uπisinqtN(pt+2nq)uπ)=cn=0N1g(n)(cosqtN(pt+2nq)uπisinqtN(pt+2nq)uπ)
  对 F ( u ) F\left( u \right) F(u)取实部,得到计算 C ( u ) C\left( u \right) C(u)的DCT公式
C ( u ) = Re ⁡ ( F ( u ) ) = c ∑ n = 0 N − 1 g ( n ) cos ⁡ ( p t + 2 n q ) u π q t N ,   u = 0 , 1 , ⋯   , N − 1 C\left( u \right)=\operatorname{Re}\left( F\left( u \right) \right)=c\sum\limits_{n=0}^{N-1}{g\left( n \right)\cos \frac{\left( pt+2nq \right)u\pi }{qtN}},\text{ }u=0,1,\cdots ,N-1 C(u)=Re(F(u))=cn=0N1g(n)cosqtN(pt+2nq)uπ, u=0,1,,N1

标准形式

  在DCT公式一般形式中,令 p = 1 ,   q = t = 2 p=1,\text{ }q=t=2 p=1, q=t=2则有
C ( u ) = c ∑ n = 0 N − 1 g ( n ) cos ⁡ ( 2 + 2 × n × 2 ) u π 4 N = c ∑ n = 0 N − 1 g ( n ) cos ⁡ ( 2 n + 1 ) u π 2 N ,   u = 0 , 1 , ⋯   , N − 1 \begin{aligned} & C\left( u \right)=c\sum\limits_{n=0}^{N-1}{g\left( n \right)\cos \frac{\left( 2+2\times n\times 2 \right)u\pi }{4N}} \\ & =c\sum\limits_{n=0}^{N-1}{g\left( n \right)\cos \frac{\left( 2n+1 \right)u\pi }{2N}},\text{ }u=0,1,\cdots ,N-1 \\ \end{aligned} C(u)=cn=0N1g(n)cos4N(2+2×n×2)uπ=cn=0N1g(n)cos2N(2n+1)uπ, u=0,1,,N1

IDCT公式初步推导

  基于公式
f ( n ) = d ∑ u = 0 N − 1 F ( u ) e j 2 π n u N ,   n = 0 , 1 , ⋯   , N − 1 f\left( n \right)=d\sum\limits_{u=0}^{N-1}{F\left( u \right){ {e}^{j\frac{2\pi nu}{N}}}},\text{ }n=0,1,\cdots ,N-1 f(n)=du=0N1F(u)ejN2πnu, n=0,1,,N1

一般形式

  令
F ( u ) = C ( u ) e j p π u q N F\left( u \right)=C\left( u \right){ {e}^{j\frac{p\pi u}{qN}}} F(u)=C(u)ejqNpπu
其中 C ( u ) C\left( u \right) C(u)通过个数为 t N ( t ∈ Z ≥ 1 ) tN\left( t\in { {\mathbb{Z}}_{\ge 1}} \right) tN(tZ1)的一个频率域实数离散序列:
C ( 0 ) , C ( 1 ) , ⋯   , C ( N − 1 ) , C ( N ) , ⋯   , C ( t N − 1 ) ,   ∀ u ,   C ( u ) ∈ R C\left( 0 \right),C\left( 1 \right),\cdots ,C\left( N-1 \right),C\left( N \right),\cdots ,C\left( tN-1 \right),\text{ }\forall u,\text{ }C\left( u \right)\in \mathbb{R} C(0),C(1),,C(N1),C(N),,C(tN1), u, C(u)R
且当 t > 1 t>1 t>1时, ∀ u ∈ { N , N + 1 ,   ⋯   ,   t N − 1 } , C ( u ) = 0 \forall u\in \left\{ N,N+1,\text{ }\cdots ,\text{ }tN-1 \right\},C\left( u \right)=0 u{ N,N+1, , tN1},C(u)=0,相当于在拥有前 N N N个离散点的基础上新增 ( t − 1 ) N \left( t-1 \right)N (t

  • 9
    点赞
  • 43
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

此账号已停更

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值