索引

  • 前言
  • DCT公式初步推导
    • 一般形式
    • 标准形式
  • IDCT公式初步推导
    • 一般形式
    • 标准形式
  • 一点注意
  • 标准形式下的系数修正
  • 最终的标准形式DCT和IDCT公式

前言

  取一维离散Fourier变换与反变换的公式为
F(u)=c∑n=0N−1f(n)e−j2πunN,u=0,1,⋯,N−1f(n)=d∑u=0N−1F(u)ej2πunN,n=0,1,⋯,N−1cd=1N\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=0∑N−1​f(n)e−jN2πun​, u=0,1,⋯,N−1f(n)=du=0∑N−1​F(u)ejN2πun​, n=0,1,⋯,N−1cd=N1​​
相关文章可参考一维离散傅里叶变换(DFT)和逆变换(IDFT)公式的一种推导

DCT公式初步推导

  基于公式
F(u)=c∑n=0N−1f(n)e−j2πunN,u=0,1,⋯,N−1F\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-1F(u)=cn=0∑N−1​f(n)e−jN2πun​, u=0,1,⋯,N−1

一般形式

  令f(n)=g(n)e−jpπuqN,p,q≠0f\left( n \right)=g\left( n \right){{e}^{-j\frac{p\pi u}{qN}}},\text{ }p,q\ne 0f(n)=g(n)e−jqNpπu​, p,q​=0其中g(n)g\left( n \right)g(n)通过个数为tN(t∈Z≥1)tN\left( t\in {{\mathbb{Z}}_{\ge 1}} \right)tN(t∈Z≥1​)的一个空间域(时域)实数采样序列:
g(0),g(1),⋯,g(N−1),g(N),⋯,g(tN−1),∀n,g(n)∈Rg\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(N−1), g(N),⋯,g(tN−1), ∀n, g(n)∈R
且当t>1t>1t>1时,∀n∈{N,N+1,⋯,tN−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,⋯,tN−1}, g(n)=0,即在拥有前NNN个采样点的基础上新增(t−1)N\left( t-1 \right)N(t−1)N个零采样点(无效采样点),则有:
F(u)=c∑n=0tN−1[(g(n)e−jpπuqN)⋅e−j2πuntN]=c∑n=0tN−1[g(n)⋅(e−jpπuqN⋅e−j2πuntN)]=c∑n=0tN−1g(n)e−j(pt+2nq)uπqtN=c∑n=0tN−1g(n)(cos⁡(pt+2nq)uπqtN−isin⁡(pt+2nq)uπqtN)=c∑n=0N−1g(n)(cos⁡(pt+2nq)uπqtN−isin⁡(pt+2nq)uπqtN)\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=0∑tN−1​[(g(n)e−jqNpπu​)⋅e−jtN2πun​]=cn=0∑tN−1​[g(n)⋅(e−jqNpπu​⋅e−jtN2πun​)]=cn=0∑tN−1​g(n)e−jqtN(pt+2nq)uπ​=cn=0∑tN−1​g(n)(cosqtN(pt+2nq)uπ​−isinqtN(pt+2nq)uπ​)=cn=0∑N−1​g(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=0N−1g(n)cos⁡(pt+2nq)uπqtN,u=0,1,⋯,N−1C\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-1C(u)=Re(F(u))=cn=0∑N−1​g(n)cosqtN(pt+2nq)uπ​, u=0,1,⋯,N−1

标准形式

  在DCT公式一般形式中,令p=1,q=t=2p=1,\text{ }q=t=2p=1, q=t=2则有
C(u)=c∑n=0N−1g(n)cos⁡(2+2×n×2)uπ4N=c∑n=0N−1g(n)cos⁡(2n+1)uπ2N,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=0∑N−1​g(n)cos4N(2+2×n×2)uπ​=cn=0∑N−1​g(n)cos2N(2n+1)uπ​, u=0,1,⋯,N−1​

IDCT公式初步推导

  基于公式
f(n)=d∑u=0N−1F(u)ej2πnuN,n=0,1,⋯,N−1f\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-1f(n)=du=0∑N−1​F(u)ejN2πnu​, n=0,1,⋯,N−1

一般形式

  令
F(u)=C(u)ejpπuqNF\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)通过个数为tN(t∈Z≥1)tN\left( t\in {{\mathbb{Z}}_{\ge 1}} \right)tN(t∈Z≥1​)的一个频率域实数离散序列:
C(0),C(1),⋯,C(N−1),C(N),⋯,C(tN−1),∀u,C(u)∈RC\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(N−1),C(N),⋯,C(tN−1), ∀u, C(u)∈R
且当t>1t>1t>1时,∀u∈{N,N+1,⋯,tN−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, ⋯, tN−1},C(u)=0,相当于在拥有前NNN个离散点的基础上新增(t−1)N\left( t-1 \right)N(t−1)N个无效零函数点,则有:
f(n)=d∑u=0tN−1[(C(u)ejpπuqN)⋅ej2πnutN]=d∑u=0tN−1[C(u)⋅(ejpπuqN⋅ej2πnutN)]=d∑u=0tN−1C(u)ej(pt+2nq)uπqtN=d∑u=0tN−1C(u)(cos⁡(pt+2nq)uπqtN−isin⁡(pt+2nq)uπqtN)=d∑u=0N−1C(u)(cos⁡(pt+2nq)uπqtN−isin⁡(pt+2nq)uπqtN)\begin{aligned} & f\left( n \right)=d\sum\limits_{u=0}^{tN-1}{\left[ \left( C\left( u \right){{e}^{j\frac{p\pi u}{qN}}} \right)\centerdot {{e}^{j\frac{2\pi nu}{tN}}} \right]} \\ & =d\sum\limits_{u=0}^{tN-1}{\left[ C\left( u \right)\centerdot \left( {{e}^{j\frac{p\pi u}{qN}}}\centerdot {{e}^{j\frac{2\pi nu}{tN}}} \right) \right]} \\ & =d\sum\limits_{u=0}^{tN-1}{C\left( u \right){{e}^{j\frac{\left( pt+2nq \right)u\pi }{qtN}}}} \\ & =d\sum\limits_{u=0}^{tN-1}{C\left( u \right)\left( \cos \frac{\left( pt+2nq \right)u\pi }{qtN}-i\sin \frac{\left( pt+2nq \right)u\pi }{qtN} \right)} \\ & =d\sum\limits_{u=0}^{N-1}{C\left( u \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(n)=du=0∑tN−1​[(C(u)ejqNpπu​)⋅ejtN2πnu​]=du=0∑tN−1​[C(u)⋅(ejqNpπu​⋅ejtN2πnu​)]=du=0∑tN−1​C(u)ejqtN(pt+2nq)uπ​=du=0∑tN−1​C(u)(cosqtN(pt+2nq)uπ​−isinqtN(pt+2nq)uπ​)=du=0∑N−1​C(u)(cosqtN(pt+2nq)uπ​−isinqtN(pt+2nq)uπ​)​
对f(n)f\left( n \right)f(n)取实部,得到计算g(n)g\left( n \right)g(n)的IDCT公式
g(n)=Re⁡(f(n))=d∑u=0N−1C(u)cos⁡(pt+2nq)uπqtN,n=0,1,⋯,N−1g\left( n \right)=\operatorname{Re}\left( f\left( n \right) \right)=d\sum\limits_{u=0}^{N-1}{C\left( u \right)\cos \frac{\left( pt+2nq \right)u\pi }{qtN}},\text{ }n=0,1,\cdots ,N-1g(n)=Re(f(n))=du=0∑N−1​C(u)cosqtN(pt+2nq)uπ​, n=0,1,⋯,N−1

标准形式

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

一点注意

  上述推导得到的DCT公式和IDCT公式在严格逻辑上并没有显然成立互逆关系,这是因为

  1. DCT公式的推导来源于一维Fourier变换公式
  2. IDCT公式的推导来源于一维Fourier逆变换公式

  若要严格证明这两个公式是互逆的,那么其中一个公式需要在另一个公式的基础上进行推导。比如在 DCT公式 的基础上推导 IDCT公式,但事实上这种效果是实现不了的。
f(n)=g(n)e−jpπuqNf(n)=d∑u=0tN−1F(u)ej2πuntN}⇒g(n)e−jpπuqN=d∑u=0tN−1F(u)ej2πuntN\left. \begin{aligned} & f\left( n \right)=g\left( n \right){{e}^{-j\frac{p\pi u}{qN}}} \\ & f\left( n \right)=d\sum\limits_{u=0}^{tN-1}{F\left( u \right){{e}^{j\frac{2\pi un}{tN}}}} \\ \end{aligned} \right\}\text{ }\Rightarrow g\left( n \right){{e}^{-j\frac{p\pi u}{qN}}}=d\sum\limits_{u=0}^{tN-1}{F\left( u \right){{e}^{j\frac{2\pi un}{tN}}}}​f(n)=g(n)e−jqNpπu​f(n)=du=0∑tN−1​F(u)ejtN2πun​​⎭⎪⎪⎬⎪⎪⎫​ ⇒g(n)e−jqNpπu​=du=0∑tN−1​F(u)ejtN2πun​
因此有
g(n)=d⋅ejpπuqN⋅∑u=0tN−1F(u)ej2πuntNg\left( n \right)=d\centerdot {{e}^{j\frac{p\pi u}{qN}}}\centerdot \sum\limits_{u=0}^{tN-1}{F\left( u \right){{e}^{j\frac{2\pi un}{tN}}}}g(n)=d⋅ejqNpπu​⋅u=0∑tN−1​F(u)ejtN2πun​
上式左边不含参数uuu,右边含有参数uuu,因此等式本身就不成立。

标准形式下的系数修正

步骤一
  在标准形式下,为了得到互逆的DCT和IDCT公式,即为了实现对一个离散时域点列ggg
g(0),g(1),⋯,g(N−1)g\left( 0 \right),g\left( 1 \right),\cdots ,g\left( N-1 \right)g(0),g(1),⋯,g(N−1)
进行DCT得到离散频域点列CCC
C(0),C(1),⋯,C(N−1)C\left( 0 \right),C\left( 1 \right),\cdots ,C\left( N-1 \right)C(0),C(1),⋯,C(N−1)
再对点列CCC进行IDCT后得到完全相同的原点列ggg
g(0),g(1),⋯,g(N−1)g\left( 0 \right),g\left( 1 \right),\cdots ,g\left( N-1 \right)g(0),g(1),⋯,g(N−1)
考虑分别对点列中每个点的变换配上一个系数,即
g→C→gg(i)→ai∑n=0N−1g(n)cos⁡(2n+1)iπ2N=C(i)→bu∑u=0N−1C(u)cos⁡(2i+1)uπ2N=g(i)\begin{matrix} g & \to & C & \to & g \\ g\left( i \right) & \to & {{a}_{i}}\sum\limits_{n=0}^{N-1}{g\left( n \right)\cos \frac{\left( 2n+1 \right)i\pi }{2N}=C\left( i \right)} & \to & {{b}_{u}}\sum\limits_{u=0}^{N-1}{C\left( u \right)\cos \frac{\left( 2i+1 \right)u\pi }{2N}=g\left( i \right)} \\ \end{matrix}gg(i)​→→​Cai​n=0∑N−1​g(n)cos2N(2n+1)iπ​=C(i)​→→​gbu​u=0∑N−1​C(u)cos2N(2i+1)uπ​=g(i)​
其中∀i,∀u,ai,bu≠0\forall i, \forall u,\text{ }{{a}_{i}},\text{ }{{b}_{u}}\ne 0∀i,∀u, ai​, bu​​=0。

  记
g→=[g(0),g(1),⋯,g(N−1)]TC→=[C(0),C(1),⋯,C(N−1)]T\begin{aligned} & \overrightarrow{g}={{\left[ g\left( 0 \right),g\left( 1 \right),\cdots ,g\left( N-1 \right) \right]}^{T}} \\ & \overrightarrow{C}={{\left[ C\left( 0 \right),C\left( 1 \right),\cdots ,C\left( N-1 \right) \right]}^{T}} \\ \end{aligned}​g​=[g(0),g(1),⋯,g(N−1)]TC=[C(0),C(1),⋯,C(N−1)]T​
则有
C→=Ag→g→=BC→\begin{aligned} & \overrightarrow{C}=A\overrightarrow{g} \\ & \overrightarrow{g}=B\overrightarrow{C} \\ \end{aligned}​C=Ag​g​=BC​
其中
A=(a0cos⁡(2×0+1)×0×π2Na0cos⁡(2×1+1)×0×π2N⋯a0cos⁡(2×(N−1)+1)×0×π2Na1cos⁡(2×0+1)×1×π2Na1cos⁡(2×1+1)×1×π2N⋯a1cos⁡(2×(N−1)+1)×1×π2N⋮⋮⋱⋮aN−1cos⁡(2×0+1)×(N−1)×π2NaN−1cos⁡(2×1+1)×(N−1)×π2N⋯aN−1cos⁡(2×(N−1)+1)×(N−1)×π2N)B=(b0cos⁡(2×0+1)×0×π2Nb1cos⁡(2×0+1)×1×π2N⋯bN−1cos⁡(2×0+1)×(N−1)×π2Nb0cos⁡(2×1+1)×0×π2Nb1cos⁡(2×1+1)×1×π2N⋯bN−1cos⁡(2×1+1)×(N−1)×π2N⋮⋮⋱⋮b0cos⁡(2×(N−1)+1)×0×π2Nb1cos⁡(2×(N−1)+1)×1×π2N⋯bN−1cos⁡(2×(N−1)+1)×(N−1)×π2N)\begin{aligned} & A=\left( \begin{matrix} {{a}_{0}}\cos \frac{\left( 2\times 0+1 \right)\times 0\times \pi }{2N} & {{a}_{0}}\cos \frac{\left( 2\times 1+1 \right)\times 0\times \pi }{2N} & \cdots & {{a}_{0}}\cos \frac{\left( 2\times \left( N-1 \right)+1 \right)\times 0\times \pi }{2N} \\ {{a}_{1}}\cos \frac{\left( 2\times 0+1 \right)\times 1\times \pi }{2N} & {{a}_{1}}\cos \frac{\left( 2\times 1+1 \right)\times 1\times \pi }{2N} & \cdots & {{a}_{1}}\cos \frac{\left( 2\times \left( N-1 \right)+1 \right)\times 1\times \pi }{2N} \\ \vdots & \vdots & \ddots & \vdots \\ {{a}_{N-1}}\cos \frac{\left( 2\times 0+1 \right)\times \left( N-1 \right)\times \pi }{2N} & {{a}_{N-1}}\cos \frac{\left( 2\times 1+1 \right)\times \left( N-1 \right)\times \pi }{2N} & \cdots & {{a}_{N-1}}\cos \frac{\left( 2\times \left( N-1 \right)+1 \right)\times \left( N-1 \right)\times \pi }{2N} \\ \end{matrix} \right) \\ \\ & B=\left( \begin{matrix} {{b}_{0}}\cos \frac{\left( 2\times 0+1 \right)\times 0\times \pi }{2N} & {{b}_{1}}\cos \frac{\left( 2\times 0+1 \right)\times 1\times \pi }{2N} & \cdots & {{b}_{N-1}}\cos \frac{\left( 2\times 0+1 \right)\times \left( N-1 \right)\times \pi }{2N} \\ {{b}_{0}}\cos \frac{\left( 2\times 1+1 \right)\times 0\times \pi }{2N} & {{b}_{1}}\cos \frac{\left( 2\times 1+1 \right)\times 1\times \pi }{2N} & \cdots & {{b}_{N-1}}\cos \frac{\left( 2\times 1+1 \right)\times \left( N-1 \right)\times \pi }{2N} \\ \vdots & \vdots & \ddots & \vdots \\ {{b}_{0}}\cos \frac{\left( 2\times \left( N-1 \right)+1 \right)\times 0\times \pi }{2N} & {{b}_{1}}\cos \frac{\left( 2\times \left( N-1 \right)+1 \right)\times 1\times \pi }{2N} & \cdots & {{b}_{N-1}}\cos \frac{\left( 2\times \left( N-1 \right)+1 \right)\times \left( N-1 \right)\times \pi }{2N} \\ \end{matrix} \right) \\ \end{aligned}​A=⎝⎜⎜⎜⎜⎛​a0​cos2N(2×0+1)×0×π​a1​cos2N(2×0+1)×1×π​⋮aN−1​cos2N(2×0+1)×(N−1)×π​​a0​cos2N(2×1+1)×0×π​a1​cos2N(2×1+1)×1×π​⋮aN−1​cos2N(2×1+1)×(N−1)×π​​⋯⋯⋱⋯​a0​cos2N(2×(N−1)+1)×0×π​a1​cos2N(2×(N−1)+1)×1×π​⋮aN−1​cos2N(2×(N−1)+1)×(N−1)×π​​⎠⎟⎟⎟⎟⎞​B=⎝⎜⎜⎜⎜⎛​b0​cos2N(2×0+1)×0×π​b0​cos2N(2×1+1)×0×π​⋮b0​cos2N(2×(N−1)+1)×0×π​​b1​cos2N(2×0+1)×1×π​b1​cos2N(2×1+1)×1×π​⋮b1​cos2N(2×(N−1)+1)×1×π​​⋯⋯⋱⋯​bN−1​cos2N(2×0+1)×(N−1)×π​bN−1​cos2N(2×1+1)×(N−1)×π​⋮bN−1​cos2N(2×(N−1)+1)×(N−1)×π​​⎠⎟⎟⎟⎟⎞​​

C→=Ag→=A(BC→)=(AB)C→\overrightarrow{C}=A\overrightarrow{g}=A\left( B\overrightarrow{C} \right)=\left( AB \right)\overrightarrow{C}C=Ag​=A(BC)=(AB)C
于是自然地想要令
AB=BA=IN×NAB=BA={{I}_{N\times N}}AB=BA=IN×N​
可以列出一系列关于 a0,a1,⋯,aN−1;b0,b1,⋯,bN−1{{a}_{0}},{{a}_{1}},\cdots ,{{a}_{N-1}};{{b}_{0}},{{b}_{1}},\cdots ,{{b}_{N-1}}a0​,a1​,⋯,aN−1​;b0​,b1​,⋯,bN−1​的方程,解方程组得到的解可能有若干套或无穷套方案。在这里我们不去试图找出解的一般表达形式。而是从另一个视角先找出一组解,再代回去验证是否满足可逆性条件。

步骤二
  欧几里得空间内的正交变换保持内积不变,因此也保持向量的长度不变,向量的2范数大小不变。对应于DCT变换矩阵AAA和IDCT变换矩阵BBB,若A,BA,BA,B是正交矩阵,意味着正变换前后,逆变换前后的向量的总能量大小不变(即向量的2范数),这是一个很好的性质。

  针对DCT变换矩阵AAA,推导出使得AAA为正交阵的值a0,a1,⋯,aN−1{{a}_{0}},{{a}_{1}},\cdots ,{{a}_{N-1}}a0​,a1​,⋯,aN−1​。

  1. 单独考虑A(i+1,:)⋅A(:,i+1)=∑k=0N−1ai2cos⁡2(2k+1)iπ2N=1,i=0,1,...,N−1A\left( i+1\text{ },\text{ }: \right)\centerdot A\left( :\text{ },\text{ }i+1 \right)=\sum\limits_{k=0}^{N-1}{{{a}_{i}}^{2}{{\cos }^{2}}\frac{\left( 2k+1 \right)i\pi }{2N}}=1,\text{ }i=0,1,...,N-1A(i+1 , :)⋅A(: , i+1)=k=0∑N−1​ai​2cos22N(2k+1)iπ​=1, i=0,1,...,N−1

    1. 当i=0i=0i=0,有
      A(1,:)⋅A(:,1)=∑k=0N−1a02⋅12=Na02=1⇒a0=±1NA\left( 1,\text{ }: \right)\centerdot A\left( :\text{ },\text{ }1 \right)=\sum\limits_{k=0}^{N-1}{{{a}_{0}}^{2}\centerdot {{1}^{2}}}=N{{a}_{0}}^{2}=1\text{ }\Rightarrow \text{ }{{a}_{0}}=\pm \sqrt[{}]{\frac{1}{N}}A(1, :)⋅A(: , 1)=k=0∑N−1​a0​2⋅12=Na0​2=1 ⇒ a0​=±N1​​

    2. i∈{1,2,⋯,N−1}i\in \left\{ 1,2,\cdots ,N-1 \right\}i∈{1,2,⋯,N−1}时,
      A(i+1,:)⋅A(:,i+1)=∑k=0N−1ai2(ej(2k+1)iπ2N+e−j(2k+1)iπ2N2)2=ai24∑k=0N−1(ej(2k+1)iπN+2+e−j(2k+1)iπN)=ai24∑k=0N−12+ai24∑k=0N−1(ej(2k+1)iπN+e−j(2k+1)iπN)=ai24⋅2N+ai24(ejiπN(1−ej⋅2iπ)1−ej2iπN+e−jiπN(1−e−j⋅2iπ)1−e−j2iπN)=ai2N2+0=ai2N2=1⇒ai=±2N,i=1,2,⋯,N−1\begin{aligned} & A\left( i+1,\text{ }: \right)\centerdot A\left( :,\text{ }i+1 \right)=\sum\limits_{k=0}^{N-1}{{{a}_{i}}^{2}{{\left( \frac{{{e}^{j\frac{\left( 2k+1 \right)i\pi }{2N}}}+{{e}^{-j\frac{\left( 2k+1 \right)i\pi }{2N}}}}{2} \right)}^{2}}} \\ & =\frac{{{a}_{i}}^{2}}{4}\sum\limits_{k=0}^{N-1}{\left( {{e}^{j\frac{\left( 2k+1 \right)i\pi }{N}}}+2+{{e}^{-j\frac{\left( 2k+1 \right)i\pi }{N}}} \right)} \\ & =\frac{{{a}_{i}}^{2}}{4}\sum\limits_{k=0}^{N-1}{2}+\frac{{{a}_{i}}^{2}}{4}\sum\limits_{k=0}^{N-1}{\left( {{e}^{j\frac{\left( 2k+1 \right)i\pi }{N}}}+{{e}^{-j\frac{\left( 2k+1 \right)i\pi }{N}}} \right)} \\ & =\frac{{{a}_{i}}^{2}}{4}\centerdot 2N+\frac{{{a}_{i}}^{2}}{4}\left( \frac{{{e}^{j\frac{i\pi }{N}}}\left( 1-{{e}^{j\centerdot 2i\pi }} \right)}{1-{{e}^{j\frac{2i\pi }{N}}}}+\frac{{{e}^{-j\frac{i\pi }{N}}}\left( 1-{{e}^{-j\centerdot 2i\pi }} \right)}{1-{{e}^{-j\frac{2i\pi }{N}}}} \right) \\ & =\frac{{{a}_{i}}^{2}N}{2}+0 \\ & =\frac{{{a}_{i}}^{2}N}{2}=1 \\ & \Rightarrow {{a}_{i}}=\pm \sqrt[{}]{\frac{2}{N}},\text{ }i=1,2,\cdots ,N-1 \\ \end{aligned}​A(i+1, :)⋅A(:, i+1)=k=0∑N−1​ai​2(2ej2N(2k+1)iπ​+e−j2N(2k+1)iπ​​)2=4ai​2​k=0∑N−1​(ejN(2k+1)iπ​+2+e−jN(2k+1)iπ​)=4ai​2​k=0∑N−1​2+4ai​2​k=0∑N−1​(ejN(2k+1)iπ​+e−jN(2k+1)iπ​)=4ai​2​⋅2N+4ai​2​(1−ejN2iπ​ejNiπ​(1−ej⋅2iπ)​+1−e−jN2iπ​e−jNiπ​(1−e−j⋅2iπ)​)=2ai​2N​+0=2ai​2N​=1⇒ai​=±N2​​, i=1,2,⋯,N−1​

  2. 单独考虑∀p≠q,A(p+1,:)⋅A(:,q+1)=0\forall p\ne q,\text{ }A\left( p+1,\text{ }: \right)\centerdot A\left( :,\text{ }q+1 \right)=0∀p​=q, A(p+1, :)⋅A(:, q+1)=0,即有
    ∑k=0N−1[(apcos⁡(2k+1)pπ2N)(aqcos⁡(2k+1)qπ2N)]=apaq∑k=0N−1cos⁡(2k+1)pπ2Ncos⁡(2k+1)qπ2N=apaq∑k=0N−1(ej(2k+1)pπ2N+e−j(2k+1)pπ2N2⋅ej(2k+1)qπ2N+e−j(2k+1)qπ2N2)=apaq4[∑k=0N−1ej(2k+1)(p+q)π2N+∑k=0N−1e−j(2k+1)(p+q)π2N+∑k=0N−1ej(2k+1)(p−q)π2N+∑k=0N−1ej(2k+1)(q−p)π2N]=apaq4(0+0+0+0)=0\begin{aligned} & \sum\limits_{k=0}^{N-1}{\left[ \left( {{a}_{p}}\cos \frac{\left( 2k+1 \right)p\pi }{2N} \right)\left( {{a}_{q}}\cos \frac{\left( 2k+1 \right)q\pi }{2N} \right) \right]} \\ & ={{a}_{p}}{{a}_{q}}\sum\limits_{k=0}^{N-1}{\cos \frac{\left( 2k+1 \right)p\pi }{2N}\cos \frac{\left( 2k+1 \right)q\pi }{2N}} \\ & ={{a}_{p}}{{a}_{q}}\sum\limits_{k=0}^{N-1}{\left( \frac{{{e}^{j\frac{\left( 2k+1 \right)p\pi }{2N}}}+{{e}^{-j\frac{\left( 2k+1 \right)p\pi }{2N}}}}{2}\centerdot \frac{{{e}^{j\frac{\left( 2k+1 \right)q\pi }{2N}}}+{{e}^{-j\frac{\left( 2k+1 \right)q\pi }{2N}}}}{2} \right)} \\ & =\frac{{{a}_{p}}{{a}_{q}}}{4}\left[ \sum\limits_{k=0}^{N-1}{{{e}^{j\frac{\left( 2k+1 \right)\left( p+q \right)\pi }{2N}}}}+\sum\limits_{k=0}^{N-1}{{{e}^{-j\frac{\left( 2k+1 \right)\left( p+q \right)\pi }{2N}}}}+\sum\limits_{k=0}^{N-1}{{{e}^{j\frac{\left( 2k+1 \right)\left( p-q \right)\pi }{2N}}}}+\sum\limits_{k=0}^{N-1}{{{e}^{j\frac{\left( 2k+1 \right)\left( q-p \right)\pi }{2N}}}} \right] \\ & =\frac{{{a}_{p}}{{a}_{q}}}{4}\left( 0+0+0+0 \right) \\ & =0 \\ \end{aligned}​k=0∑N−1​[(ap​cos2N(2k+1)pπ​)(aq​cos2N(2k+1)qπ​)]=ap​aq​k=0∑N−1​cos2N(2k+1)pπ​cos2N(2k+1)qπ​=ap​aq​k=0∑N−1​(2ej2N(2k+1)pπ​+e−j2N(2k+1)pπ​​⋅2ej2N(2k+1)qπ​+e−j2N(2k+1)qπ​​)=4ap​aq​​[k=0∑N−1​ej2N(2k+1)(p+q)π​+k=0∑N−1​e−j2N(2k+1)(p+q)π​+k=0∑N−1​ej2N(2k+1)(p−q)π​+k=0∑N−1​ej2N(2k+1)(q−p)π​]=4ap​aq​​(0+0+0+0)=0​
    因此a0,a1,⋯,aN−1{{a}_{0}},{{a}_{1}},\cdots ,{{a}_{N-1}}a0​,a1​,⋯,aN−1​取值无限制。

  综上,取
a0=1Nai=2N,i=1,2,⋯,N−1\begin{aligned} & {{a}_{0}}=\sqrt[{}]{\frac{1}{N}} \\ & {{a}_{i}}=\sqrt[{}]{\frac{2}{N}},\text{ }i=1,2,\cdots ,N-1 \\ \end{aligned}​a0​=N1​​ai​=N2​​, i=1,2,⋯,N−1​
则有
AAT=IN×NA{{A}^{T}}={{I}_{N\times N}}AAT=IN×N​

步骤三
  针对IDCT变换矩阵BBB,推导出使得BBB为正交阵的值b0,b1,⋯,bN−1{{b}_{0}},{{b}_{1}},\cdots ,{{b}_{N-1}}b0​,b1​,⋯,bN−1​。注意到BT{{B}^{T}}BT的形式与AAA是一模一样的(这也是为什么要给逆变换IDCT的矩阵这样子配系数),仿步骤二,得到使得BT{{B}^{T}}BT为正交阵(等价于BBB是正交阵)的值
b0=1Nbu=2N,u=1,2,⋯,N−1\begin{aligned} & {{b}_{0}}=\sqrt[{}]{\frac{1}{N}} \\ & {{b}_{u}}=\sqrt[{}]{\frac{2}{N}},\text{ }u=1,2,\cdots ,N-1 \\ \end{aligned}​b0​=N1​​bu​=N2​​, u=1,2,⋯,N−1​
此时有
BT(BT)T=BTB=IN×N⇒BT=B−1⇒IN×N=BB−1=BBT{{B}^{T}}{{\left( {{B}^{T}} \right)}^{T}}={{B}^{T}}B={{I}_{N\times N}}\text{ }\Rightarrow \text{ }{{B}^{T}}={{B}^{-1}}\text{ }\Rightarrow \text{ }{{I}_{N\times N}}=B{{B}^{-1}}=B{{B}^{T}}BT(BT)T=BTB=IN×N​ ⇒ BT=B−1 ⇒ IN×N​=BB−1=BBT

步骤四
  最后验证当
{a0=b0=1Na1=a2=⋯=aN−1=2Nb1=b2=⋯=bN−1=2N\left\{ \begin{aligned} & {{a}_{0}}={{b}_{0}}=\sqrt[{}]{\frac{1}{N}} \\ & {{a}_{1}}={{a}_{2}}=\cdots ={{a}_{N-1}}=\sqrt[{}]{\frac{2}{N}} \\ & {{b}_{1}}={{b}_{2}}=\cdots ={{b}_{N-1}}=\sqrt[{}]{\frac{2}{N}} \\ \end{aligned} \right.⎩⎪⎪⎪⎪⎪⎪⎪⎨⎪⎪⎪⎪⎪⎪⎪⎧​​a0​=b0​=N1​​a1​=a2​=⋯=aN−1​=N2​​b1​=b2​=⋯=bN−1​=N2​​​
时有
AB=BA=IN×NAB=BA={{I}_{N\times N}}AB=BA=IN×N​
显然地,有
A是正交阵⇒AAT=IN×NBT=A⇒B=AT}⇒AB=IN×N\left. \begin{aligned} & A是正交阵\text{ }\Rightarrow \text{ }A{{A}^{T}}={{I}_{N\times N}} \\ & {{B}^{T}}=A\text{ }\Rightarrow \text{ }B={{A}^{T}} \\ \end{aligned} \right\}\text{ }\Rightarrow \text{ }AB={{I}_{N\times N}}​A是正交阵 ⇒ AAT=IN×N​BT=A ⇒ B=AT​} ⇒ AB=IN×N​
证毕。

最终的标准形式DCT和IDCT公式

DCT:C(u)=a(u)∑x=0N−1f(x)cos⁡(2x+1)uπ2N,u=0,1,⋯,N−1IDCT:f(x)=∑u=0N−1a(u)C(u)cos⁡(2x+1)uπ2N,x=0,1,⋯,N−1a(u)={1/N,u=02/N,u=1,2,⋯,N−1\begin{matrix} DCT:C\left( u \right)=a\left( u \right)\sum\limits_{x=0}^{N-1}{f\left( x \right)\cos \frac{\left( 2x+1 \right)u\pi }{2N}},\text{ }u=0,1,\cdots ,N-1 \\ IDCT:f\left( x \right)=\sum\limits_{u=0}^{N-1}{a\left( u \right)C\left( u \right)\cos \frac{\left( 2x+1 \right)u\pi }{2N}},\text{ }x=0,1,\cdots ,N-1 \\ a\left( u \right)=\left\{ \begin{aligned} & \sqrt[{}]{{}^{1}/{}_{N}},\text{ }u=0 \\ & \sqrt[{}]{{}^{2}/{}_{N}},\text{ }u=1,2,\cdots ,N-1 \\ \end{aligned} \right. \\ \end{matrix}DCT:C(u)=a(u)x=0∑N−1​f(x)cos2N(2x+1)uπ​, u=0,1,⋯,N−1IDCT:f(x)=u=0∑N−1​a(u)C(u)cos2N(2x+1)uπ​, x=0,1,⋯,N−1a(u)={​1/N​​, u=02/N​​, u=1,2,⋯,N−1​​

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

  1. 一维离散傅里叶变换(DFT)和逆变换(IDFT)公式的一种推导

    索引 单独视角:DFT公式的推导 单独视角:IDFT公式的推导 综合视角:DFT, IDFT公式组的系数修正 单独视角:DFT公式的推导   由博文一维连续傅里叶变换和逆变换公式的一种推导,设f(t) ...

  2. 压缩感知稀疏基之离散余弦变换(DCT)和离散正弦变换(DST)

    题目:压缩感知稀疏基之离散余弦变换(DCT)和离散正弦变换(DST) 在前面一篇<压缩感知的常见稀疏基名称及离散傅里叶变换基>中集结了九篇压缩感知文献中有关稀疏基名称,并且直白地告诉大家稀 ...

  3. 离散余弦变换(DCT)原理及应用

    1.预备知识 1.1可分离变换 二维傅立叶变换可用通用的关系式来表示: 式中:x, u=0, 1, 2,  -,  M-1:y,  v=0,  1,  2,  -,  N-1:g(x,y,u,v)和h ...

  4. 二维离散变换由c语言编写,离散余弦变换(DCT)的DSP程序设计与实现

    <离散余弦变换(DCT)的DSP程序设计与实现>由会员分享,可在线阅读,更多相关<离散余弦变换(DCT)的DSP程序设计与实现(15页珍藏版)>请在人人文库网上搜索. 1.DS ...

  5. 离散余弦变换(DCT)

    DCT变换.DCT反变换.分块DCT变换 一.引言 DCT变换的全称是离散余弦变换*(Discrete Cosine Transform)*,主要用于将数据或图像的压缩,能够将空域的信号转换到频域上, ...

  6. C语言实现离散余弦变换(DCT)并用MATLAB和Python验证

    概念 离散余弦变换(Discrete Cosine Transform,DCT)是可分离的变换,其变换核为余弦函数.是与傅里叶变换相关的一种变换,它相当于把离散傅里叶变换的虚数部分丢掉,只使用实数.D ...

  7. 离散余弦变换 DCT

    MPEG采用了Ahmed(一个巨牛的数学家) 等人于70年代提出的离散余弦变换(DCT-Discrete Cosine Transform)压缩算法,降低视频信号的空间冗余度. DCT将运动补偿误差或 ...

  8. jpg图片与jpeg图片格式的区别(没有区别,.jpg只是扩展名.jpeg的缩写)JPEG图像压缩(YUV4:2:0 缩减采样、缩减取样)(离散余弦变换 DCT算法)(量化)(熵编码)(霍夫曼哈夫曼)

    文章目录 20191026 20220414 更新,更系统去了解里面的编码压缩流程 科普:关于图像格式JPG和JPEG你知多少? 一.前言 二.JPEG和JPG的关系 三.色彩空间转换 缩减取样 离散 ...

  9. python离散余弦变换_在python3下使用OpenCV做离散余弦变换DCT及其反变换IDCT

    对图像处理经常用到DCT, Python下有很多带有DCT算法包, 这里使用OpenCV的DCT做变换, 并简单置0部分数据, 再查看反变换图像的效果. import numpy as np impo ...

  10. 运算放大器的应用之:T形电阻网络公式的三种推导方法

    上面公式怎么推导? 推导1:根据KCL/KVL定律 当Vi单独作用时: 当VREF单独作用时: 根据叠加定理得: 推导2:利用戴维宁定理推导 如下图所示,在A--B处把电路断开,然后,利用戴维宁定理, ...

最新文章

  1. 梳理消息队列 MQ/JMS/Kafka
  2. 怎么修改与服务器的操作系统,怎么修改与服务器的操作系统
  3. python实现双向最大匹配法
  4. CTFshow php特性 web132
  5. 【题解】p1064 金明的预算方案
  6. 在c#中用mutex类实现线程的互斥_面试官经常问的synchronized实现原理和锁升级过程,你真的了解吗...
  7. Jmeter - 服务器性能检测
  8. C#的GC机制(来自网摘复制,未整理)
  9. dts双轨制会员积分系统
  10. axure 2021.04.26
  11. 利用matlab将位图转为SVG矢量图
  12. 蓝领ERP:谁在坚守,谁在逃跑(转)
  13. 树莓派4B上安装OpenWrt/LEDE
  14. 微软应用商店打不开代码: 0x80131500
  15. jsp基于java廉价房屋租赁管理系统
  16. android概述和环境搭建
  17. 毕业设计部分作品展示
  18. niuke---勾股定理
  19. Mastering Microsoft Teams 免积分下载
  20. 动态调整打印机纸张大小

热门文章

  1. 中大计算机学院不及格,大学要求越来越严格 | 学渣可能无法从中大毕业了
  2. mysql 1052 ambiguous_mysql错误:Column ‘id’ in field list is ambiguous的解决方法
  3. Mongodb-WeAdmin基于SpringBoot实现的Mongodb管理工具
  4. SDS之BlockChain Storage系列:3、为什说区块链存储是下一个热点 (上)
  5. 对于LabVIEW操作者框架的理解
  6. DIN数据电缆行业现状调研及趋势分析报告
  7. 用 JAVA 开发游戏连连看
  8. 可能是全网唯一办法:解决粘滞键(shift)键一直按下,在配置中心无法关闭_v1.0.0
  9. matlab 复权数据,用Pandas计算前复权数据
  10. 复权不复权,天差与地别 | 量化投资中如何最准确的计算股票前后复权价(附代码)