Upload
jin11004
View
226
Download
0
Embed Size (px)
Citation preview
8/13/2019 00300 Transforms
1/97
8/13/2019 00300 Transforms
2/97
DFT Problems
3: Discrete Cosine Transform
• DFT Problems
• DCT
• DCT of sine wave
• DCT/DFT Equivalence
• DCT Properties
• IDCT
• Energy Conservation
• Energy Compaction
• Frame-based coding
• Lapped Transform
• MDCT
• Summary
• MATLAB routines
DSP and Digital Filters (2013-3622) Transforms: 3 – 2 / 14
For processing 1-D or 2-D signals (especially coding), a common method is
to divide the signal into “frames” and then apply an invertible transform to
each frame that compresses the information into few coefficients.
The DFT has some problems when used for this purpose:
8/13/2019 00300 Transforms
3/97
DFT Problems
3: Discrete Cosine Transform
• DFT Problems
• DCT
• DCT of sine wave
• DCT/DFT Equivalence
• DCT Properties
• IDCT
• Energy Conservation
• Energy Compaction
• Frame-based coding
• Lapped Transform
• MDCT
• Summary
• MATLAB routines
DSP and Digital Filters (2013-3622) Transforms: 3 – 2 / 14
For processing 1-D or 2-D signals (especially coding), a common method is
to divide the signal into “frames” and then apply an invertible transform to
each frame that compresses the information into few coefficients.
The DFT has some problems when used for this purpose:
• N real x[n] ↔ N complex X [k] : 2 real, N 2 − 1 conjugate pairs
→
8/13/2019 00300 Transforms
4/97
DFT Problems
3: Discrete Cosine Transform
• DFT Problems
• DCT
• DCT of sine wave
• DCT/DFT Equivalence
• DCT Properties
• IDCT
• Energy Conservation
• Energy Compaction
• Frame-based coding
• Lapped Transform
• MDCT
• Summary
• MATLAB routines
DSP and Digital Filters (2013-3622) Transforms: 3 – 2 / 14
For processing 1-D or 2-D signals (especially coding), a common method is
to divide the signal into “frames” and then apply an invertible transform to
each frame that compresses the information into few coefficients.
The DFT has some problems when used for this purpose:
• N real x[n] ↔ N complex X [k] : 2 real, N 2 − 1 conjugate pairs
→
• DFT ∝ the DTFT of a periodic signal formed by replicating x[n] .
8/13/2019 00300 Transforms
5/97
DFT Problems
3: Discrete Cosine Transform
• DFT Problems
• DCT
• DCT of sine wave
• DCT/DFT Equivalence
• DCT Properties
• IDCT
• Energy Conservation
• Energy Compaction
• Frame-based coding
• Lapped Transform
• MDCT
• Summary
• MATLAB routines
DSP and Digital Filters (2013-3622) Transforms: 3 – 2 / 14
For processing 1-D or 2-D signals (especially coding), a common method is
to divide the signal into “frames” and then apply an invertible transform to
each frame that compresses the information into few coefficients.
The DFT has some problems when used for this purpose:
• N real x[n] ↔ N complex X [k] : 2 real, N 2 − 1 conjugate pairs
→
• DFT ∝ the DTFT of a periodic signal formed by replicating x[n] .⇒ Spurious frequency components from boundary discontinuity.
N=20f=0.08
→
8/13/2019 00300 Transforms
6/97
DFT Problems
3: Discrete Cosine Transform
• DFT Problems
• DCT
• DCT of sine wave
• DCT/DFT Equivalence
• DCT Properties
• IDCT
• Energy Conservation
• Energy Compaction
• Frame-based coding
• Lapped Transform
• MDCT
• Summary
• MATLAB routines
DSP and Digital Filters (2013-3622) Transforms: 3 – 2 / 14
For processing 1-D or 2-D signals (especially coding), a common method is
to divide the signal into “frames” and then apply an invertible transform to
each frame that compresses the information into few coefficients.
The DFT has some problems when used for this purpose:
• N real x[n] ↔ N complex X [k] : 2 real, N 2 − 1 conjugate pairs
→
• DFT ∝ the DTFT of a periodic signal formed by replicating x[n] .⇒ Spurious frequency components from boundary discontinuity.
N=20f=0.08
→
The Discrete Cosine Transform (DCT) overcomes these problems.
8/13/2019 00300 Transforms
7/97
DCT
3: Discrete Cosine Transform
• DFT Problems
• DCT
• DCT of sine wave
• DCT/DFT Equivalence
• DCT Properties
• IDCT
• Energy Conservation
• Energy Compaction
• Frame-based coding
• Lapped Transform
• MDCT
• Summary
• MATLAB routines
DSP and Digital Filters (2013-3622) Transforms: 3 – 3 / 14
To form the Discrete Cosine Transform (DCT), replicate x[0 : N − 1] but inreverse order and insert a zero between each pair of samples:
→
0 12 23
y[r]
Take the DFT of length 4N real symmetric sequence
8/13/2019 00300 Transforms
8/97
DCT
3: Discrete Cosine Transform
• DFT Problems
• DCT
• DCT of sine wave
• DCT/DFT Equivalence
• DCT Properties
• IDCT
• Energy Conservation
• Energy Compaction
• Frame-based coding
• Lapped Transform
• MDCT
• Summary
• MATLAB routines
DSP and Digital Filters (2013-3622) Transforms: 3 – 3 / 14
To form the Discrete Cosine Transform (DCT), replicate x[0 : N − 1] but inreverse order and insert a zero between each pair of samples:
→
0 12 23
y[r]
Take the DFT of length 4N real symmetric sequenceResult is real, symmetric and anti-periodic:
012
23
Y[k]
8/13/2019 00300 Transforms
9/97
DCT
3: Discrete Cosine Transform
• DFT Problems
• DCT
• DCT of sine wave
• DCT/DFT Equivalence
• DCT Properties
• IDCT
• Energy Conservation
• Energy Compaction
• Frame-based coding
• Lapped Transform
• MDCT
• Summary
• MATLAB routines
DSP and Digital Filters (2013-3622) Transforms: 3 – 3 / 14
To form the Discrete Cosine Transform (DCT), replicate x[0 : N − 1] but inreverse order and insert a zero between each pair of samples:
→
0 12 23
y[r]
Take the DFT of length 4N real symmetric sequenceResult is real, symmetric and anti-periodic: only need first N values
012
23
Y[k]
→
8/13/2019 00300 Transforms
10/97
DCT
3: Discrete Cosine Transform
• DFT Problems
• DCT
• DCT of sine wave
• DCT/DFT Equivalence
• DCT Properties
• IDCT
• Energy Conservation
• Energy Compaction
• Frame-based coding
• Lapped Transform
• MDCT
• Summary
• MATLAB routines
DSP and Digital Filters (2013-3622) Transforms: 3 – 3 / 14
To form the Discrete Cosine Transform (DCT), replicate x[0 : N − 1] but inreverse order and insert a zero between each pair of samples:
→
0 12 23
y[r]
Take the DFT of length 4N real symmetric sequenceResult is real, symmetric and anti-periodic: only need first N values
012
23
Y[k]
→
Forward DCT: X C [k] =N −1
n=0 x[n]cos 2π(2n+1)k
4N for k = 0 : N − 1
8/13/2019 00300 Transforms
11/97
DCT
3: Discrete Cosine Transform
• DFT Problems
• DCT
• DCT of sine wave
• DCT/DFT Equivalence
• DCT Properties
• IDCT
• Energy Conservation
• Energy Compaction
• Frame-based coding
• Lapped Transform
• MDCT
• Summary
• MATLAB routines
DSP and Digital Filters (2013-3622) Transforms: 3 – 3 / 14
To form the Discrete Cosine Transform (DCT), replicate x[0 : N − 1] but inreverse order and insert a zero between each pair of samples:
→
0 12 23
y[r]
Take the DFT of length 4N real symmetric sequenceResult is real, symmetric and anti-periodic: only need first N values
012
23
Y[k]
→
Forward DCT: X C [k] =N −1
n=0 x[n]cos 2π(2n+1)k
4N for k = 0 : N − 1
Compare DFT: X F [k] =
N −1n=0 x[n]exp −j2π(4n+0)k4N
8/13/2019 00300 Transforms
12/97
DCT of sine wave
3: Discrete Cosine Transform
• DFT Problems
• DCT
• DCT of sine wave
• DCT/DFT Equivalence
• DCT Properties
• IDCT
• Energy Conservation
• Energy Compaction
• Frame-based coding
• Lapped Transform
• MDCT
• Summary
• MATLAB routines
DSP and Digital Filters (2013-3622) Transforms: 3 – 4 / 14
DCT: X C [k] =N −1
n=0 x[n]cos 2π(2n+1)k
4N
8/13/2019 00300 Transforms
13/97
DCT of sine wave
3: Discrete Cosine Transform
• DFT Problems
• DCT
• DCT of sine wave
• DCT/DFT Equivalence
• DCT Properties
• IDCT
• Energy Conservation
• Energy Compaction
• Frame-based coding
• Lapped Transform
• MDCT
• Summary
• MATLAB routines
DSP and Digital Filters (2013-3622) Transforms: 3 – 4 / 14
DCT: X C [k] =N −1
n=0 x[n]cos 2π(2n+1)k
4N
f = mN
x[n]N=20f=0.10
8/13/2019 00300 Transforms
14/97
DCT of sine wave
3: Discrete Cosine Transform
• DFT Problems
• DCT
• DCT of sine wave
• DCT/DFT Equivalence
• DCT Properties
• IDCT
• Energy Conservation
• Energy Compaction
• Frame-based coding
• Lapped Transform
• MDCT
• Summary
• MATLAB routines
DSP and Digital Filters (2013-3622) Transforms: 3 – 4 / 14
DCT: X C [k] =N −1
n=0 x[n]cos 2π(2n+1)k
4N
f = mN
x[n]N=20f=0.10
|X F [k]|
8/13/2019 00300 Transforms
15/97
DCT of sine wave
3: Discrete Cosine Transform
• DFT Problems
• DCT
• DCT of sine wave
• DCT/DFT Equivalence
• DCT Properties
• IDCT
• Energy Conservation
• Energy Compaction
• Frame-based coding
• Lapped Transform
• MDCT
• Summary
• MATLAB routines
DSP and Digital Filters (2013-3622) Transforms: 3 – 4 / 14
DCT: X C [k] =N −1
n=0 x[n]cos 2π(2n+1)k
4N
f = mN
f = mN
x[n] N=20f=0.10
N=20f=0.08
|X F [k]|
8/13/2019 00300 Transforms
16/97
DCT of sine wave
3: Discrete Cosine Transform
• DFT Problems
• DCT
• DCT of sine wave
• DCT/DFT Equivalence
• DCT Properties
• IDCT
• Energy Conservation
• Energy Compaction
• Frame-based coding
• Lapped Transform
• MDCT
• Summary
• MATLAB routines
DSP and Digital Filters (2013-3622) Transforms: 3 – 4 / 14
DCT: X C [k] =N −1
n=0 x[n]cos 2π(2n+1)k
4N
f = mN
f = mN
x[n] N=20f=0.10
N=20f=0.08
|X F [k]|
8/13/2019 00300 Transforms
17/97
DCT of sine wave
3: Discrete Cosine Transform
• DFT Problems
• DCT
• DCT of sine wave
• DCT/DFT Equivalence
• DCT Properties
• IDCT
• Energy Conservation
• Energy Compaction
• Frame-based coding
• Lapped Transform
• MDCT
• Summary
• MATLAB routines
DSP and Digital Filters (2013-3622) Transforms: 3 – 4 / 14
DCT: X C [k] =N −1
n=0 x[n]cos 2π(2n+1)k
4N
f = mN
f = mN
x[n] N=20f=0.10
N=20f=0.08
|X F [k]|
DFT: Real→Complex; Freq range [0, 1]; Poorly localized unlessf = m
N ; |X F [k]| ∝ k
−1 for Nf < k N 2
8/13/2019 00300 Transforms
18/97
DCT of sine wave
3: Discrete Cosine Transform
• DFT Problems
• DCT
• DCT of sine wave
• DCT/DFT Equivalence
• DCT Properties
• IDCT
• Energy Conservation
• Energy Compaction
• Frame-based coding
• Lapped Transform
• MDCT
• Summary
• MATLAB routines
DSP and Digital Filters (2013-3622) Transforms: 3 – 4 / 14
DCT: X C [k] =N −1
n=0 x[n]cos 2π(2n+1)k
4N
f = mN
f = mN
x[n] N=20f=0.10
N=20f=0.08
|X F [k]|
|X C [k]|
DFT: Real→Complex; Freq range [0, 1]; Poorly localized unlessf = m
N ; |X F [k]| ∝ k
−1 for Nf < k N 2
8/13/2019 00300 Transforms
19/97
DCT of sine wave
3: Discrete Cosine Transform
• DFT Problems
• DCT
• DCT of sine wave
• DCT/DFT Equivalence
• DCT Properties
• IDCT
• Energy Conservation
• Energy Compaction
• Frame-based coding
• Lapped Transform
• MDCT
• Summary
• MATLAB routines
DSP and Digital Filters (2013-3622) Transforms: 3 – 4 / 14
DCT: X C [k] =N −1
n=0 x[n]cos 2π(2n+1)k
4N
f = mN
f = mN
x[n] N=20f=0.10
N=20f=0.08
|X F [k]|
|X C [k]|
DFT: Real→Complex; Freq range [0, 1]; Poorly localized unlessf = m
N ; |X F [k]| ∝ k
−1 for Nf < k N 2DCT: Real→Real; Freq range [0, 0.5]; Well localized ∀f ;
|X C [k]| ∝ k−2 for 2Nf < k < N
8/13/2019 00300 Transforms
20/97
DCT/DFT Equivalence
3: Discrete Cosine Transform
• DFT Problems
• DCT
• DCT of sine wave
• DCT/DFT Equivalence
• DCT Properties
• IDCT
• Energy Conservation
• Energy Compaction
• Frame-based coding
• Lapped Transform
• MDCT
• Summary
• MATLAB routines
DSP and Digital Filters (2013-3622) Transforms: 3 – 5 / 14
X C [k] =N −1
n=0 x[n]cos 2π(2n+1)k
4N 0 12 23
y[r]
Define y[r] =
0 r even
xr−1
2
r = 1 : 2 : 2N − 1x4N −1−r
2
r = 2N + 1 : 2 : 4N − 1
8/13/2019 00300 Transforms
21/97
DCT/DFT Equivalence
3: Discrete Cosine Transform
• DFT Problems
• DCT
• DCT of sine wave
• DCT/DFT Equivalence
• DCT Properties
• IDCT
• Energy Conservation
• Energy Compaction
• Frame-based coding
• Lapped Transform
• MDCT
• Summary
• MATLAB routines
DSP and Digital Filters (2013-3622) Transforms: 3 – 5 / 14
X C [k] =N −1
n=0 x[n]cos 2π(2n+1)k
4N 0 12 23
y[r]
Define y[r] =
0 r even
xr−1
2
r = 1 : 2 : 2N − 1x4N −1−r
2
r = 2N + 1 : 2 : 4N − 1
Y F [k] =4N −1
r=0 y[r]W kr4N where W M = e
−j2πM
8/13/2019 00300 Transforms
22/97
DCT/DFT Equivalence
3: Discrete Cosine Transform
• DFT Problems
• DCT
• DCT of sine wave
• DCT/DFT Equivalence
• DCT Properties
• IDCT
• Energy Conservation
• Energy Compaction
• Frame-based coding
• Lapped Transform
• MDCT
• Summary
• MATLAB routines
DSP and Digital Filters (2013-3622) Transforms: 3 – 5 / 14
X C [k] =N −1
n=0 x[n]cos 2π(2n+1)k
4N 0 12 23
y[r]
Define y[r] =
0 r even
xr−1
2
r = 1 : 2 : 2N − 1x4N −1−r
2
r = 2N + 1 : 2 : 4N − 1
Y F [k] =4N −1
r=0 y[r]W kr4N where W M = e
−j2πM
(i)
=2N −1
n=0 y[2n + 1]W (2n+1)k
4N
(i) odd r only: r = 2n + 1
8/13/2019 00300 Transforms
23/97
DCT/DFT Equivalence
3: Discrete Cosine Transform
• DFT Problems
• DCT
• DCT of sine wave
• DCT/DFT Equivalence
• DCT Properties
• IDCT
• Energy Conservation
• Energy Compaction
• Frame-based coding
• Lapped Transform
• MDCT
• Summary
• MATLAB routines
DSP and Digital Filters (2013-3622) Transforms: 3 – 5 / 14
X C [k] =N −1
n=0 x[n]cos 2π(2n+1)k
4N 0 12 23
y[r]
Define y[r] =
0 r even
xr−1
2
r = 1 : 2 : 2N − 1x4N −1−r
2
r = 2N + 1 : 2 : 4N − 1
Y F [k] =4N −1
r=0 y[r]W kr4N where W M = e
−j2πM
(i)
=2N −1
n=0 y[2n + 1]W (2n+1)k
4N (ii)=N −1
n=0 y[2n + 1]W (2n+1)k4N
+N −1
m=0 y[4N − 2m − 1]W (4N −2m−1)k4N
(i) odd r only: r = 2n + 1(ii) reverse order for n ≥ N : m = 2N − 1 − n
8/13/2019 00300 Transforms
24/97
DCT/DFT Equivalence
3: Discrete Cosine Transform
• DFT Problems
• DCT
• DCT of sine wave
• DCT/DFT Equivalence
• DCT Properties
• IDCT
• Energy Conservation
• Energy Compaction
• Frame-based coding
• Lapped Transform
• MDCT
• Summary
• MATLAB routines
DSP and Digital Filters (2013-3622) Transforms: 3 – 5 / 14
X C [k] =N −1
n=0 x[n]cos 2π(2n+1)k
4N 0 12 23
y[r]
Define y[r] =
0 r even
xr−1
2
r = 1 : 2 : 2N − 1x4N −1−r
2
r = 2N + 1 : 2 : 4N − 1
Y F [k] =4N −1
r=0 y[r]W kr4N where W M = e
−j2πM
(i)
=2N −1
n=0 y[2n + 1]W (2n+1)k
4N (ii)=N −1
n=0 y[2n + 1]W (2n+1)k4N
+N −1
m=0 y[4N − 2m − 1]W (4N −2m−1)k4N
(iii)= x[n]W
(2n+1)k4N +
N −1m=0 x[m]W
−(2m+1)k4N
(i) odd r only: r = 2n + 1(ii) reverse order for n ≥ N : m = 2N − 1 − n(iii) substitute y definition
8/13/2019 00300 Transforms
25/97
DCT/DFT Equivalence
3: Discrete Cosine Transform
• DFT Problems
• DCT
• DCT of sine wave
• DCT/DFT Equivalence
• DCT Properties
• IDCT
• Energy Conservation
• Energy Compaction
• Frame-based coding
• Lapped Transform
• MDCT
• Summary
• MATLAB routines
DSP and Digital Filters (2013-3622) Transforms: 3 – 5 / 14
X C [k] =N −1
n=0 x[n]cos 2π(2n+1)k
4N 0 12 23
y[r]
Define y[r] =
0 r even
xr−1
2
r = 1 : 2 : 2N − 1x4N −1−r
2
r = 2N + 1 : 2 : 4N − 1
Y F [k] =4N −1
r=0 y[r]W kr4N where W M = e
−j2πM
(i)
=2N −1
n=0 y[2n + 1]W (2n+1)k
4N (ii)=N −1
n=0 y[2n + 1]W (2n+1)k4N
+N −1
m=0 y[4N − 2m − 1]W (4N −2m−1)k4N
(iii)= x[n]W
(2n+1)k4N +
N −1m=0 x[m]W
−(2m+1)k4N
= 2
N −1n=0 x[n]cos
2π(2n+1)k4N = 2X C [k]
(i) odd r only: r = 2n + 1(ii) reverse order for n ≥ N : m = 2N − 1 − n(iii) substitute y definition & W 4Nk
4N = e−j2π
4Nk4N ≡ 1
8/13/2019 00300 Transforms
26/97
DCT Properties
3: Discrete Cosine Transform
• DFT Problems
• DCT
• DCT of sine wave
• DCT/DFT Equivalence
• DCT Properties
• IDCT
• Energy Conservation
• Energy Compaction
• Frame-based coding
• Lapped Transform
• MDCT
• Summary
• MATLAB routines
DSP and Digital Filters (2013-3622) Transforms: 3 – 6 / 14
Definition: X [k] =N −1
n=0 x[n]cos 2π(2n+1)k
4N
8/13/2019 00300 Transforms
27/97
DCT Properties
3: Discrete Cosine Transform
• DFT Problems
• DCT
• DCT of sine wave
• DCT/DFT Equivalence
• DCT Properties
• IDCT
• Energy Conservation
• Energy Compaction
• Frame-based coding
• Lapped Transform
• MDCT
• Summary
• MATLAB routines
DSP and Digital Filters (2013-3622) Transforms: 3 – 6 / 14
Definition: X [k] =N −1
n=0 x[n]cos 2π(2n+1)k
4N • Linear: αx[n] + βy[n] → αX [k] + βY [k]
8/13/2019 00300 Transforms
28/97
DCT Properties
3: Discrete Cosine Transform
• DFT Problems
• DCT
• DCT of sine wave
• DCT/DFT Equivalence
• DCT Properties
• IDCT
• Energy Conservation
• Energy Compaction
• Frame-based coding
• Lapped Transform
• MDCT
• Summary
• MATLAB routines
DSP and Digital Filters (2013-3622) Transforms: 3 – 6 / 14
Definition: X [k] =N −1
n=0 x[n]cos 2π(2n+1)k
4N • Linear: αx[n] + βy[n] → αX [k] + βY [k]• DFT “Convolution←→Multiplication” property does not hold
8/13/2019 00300 Transforms
29/97
DCT Properties
3: Discrete Cosine Transform
• DFT Problems
• DCT
• DCT of sine wave
• DCT/DFT Equivalence
• DCT Properties
• IDCT
• Energy Conservation
• Energy Compaction
• Frame-based coding
• Lapped Transform
• MDCT
• Summary
• MATLAB routines
DSP and Digital Filters (2013-3622) Transforms: 3 – 6 / 14
Definition: X [k] =N −1
n=0 x[n]cos 2π(2n+1)k
4N • Linear: αx[n] + βy[n] → αX [k] + βY [k]• DFT “Convolution←→Multiplication” property does not hold• Symmetric: X [−k] = X [k] since cos−αk = cos +αk
8/13/2019 00300 Transforms
30/97
DCT Properties
3: Discrete Cosine Transform
• DFT Problems
• DCT
• DCT of sine wave
• DCT/DFT Equivalence
• DCT Properties
• IDCT
• Energy Conservation
• Energy Compaction
• Frame-based coding
• Lapped Transform
• MDCT
• Summary
• MATLAB routines
DSP and Digital Filters (2013-3622) Transforms: 3 – 6 / 14
Definition: X [k] =N −1
n=0 x[n]cos 2π(2n+1)k
4N • Linear: αx[n] + βy[n] → αX [k] + βY [k]• DFT “Convolution←→Multiplication” property does not hold• Symmetric: X [−k] = X [k] since cos−αk = cos +αk
• Anti-periodic: X [k + 2N ] = −X [k]
8/13/2019 00300 Transforms
31/97
DCT Properties
3: Discrete Cosine Transform
• DFT Problems
• DCT
• DCT of sine wave
• DCT/DFT Equivalence
• DCT Properties
• IDCT
• Energy Conservation
• Energy Compaction
• Frame-based coding
• Lapped Transform
• MDCT
• Summary
• MATLAB routines
DSP and Digital Filters (2013-3622) Transforms: 3 – 6 / 14
Definition: X [k] =N −1
n=0 x[n]cos 2π(2n+1)k
4N • Linear: αx[n] + βy[n] → αX [k] + βY [k]• DFT “Convolution←→Multiplication” property does not hold• Symmetric: X [−k] = X [k] since cos−αk = cos +αk
• Anti-periodic: X [k + 2N ] = −X [k] because:◦ cos(θ + π) = − cos θ◦ 2π(2n + 1)(k + 2N ) = 2π(2n + 1)k + 8πN n + 4N π
8/13/2019 00300 Transforms
32/97
DCT Properties
3: Discrete Cosine Transform
• DFT Problems
• DCT
• DCT of sine wave
• DCT/DFT Equivalence
• DCT Properties
• IDCT
• Energy Conservation
• Energy Compaction
• Frame-based coding
• Lapped Transform
• MDCT
• Summary
• MATLAB routines
DSP and Digital Filters (2013-3622) Transforms: 3 – 6 / 14
Definition: X [k] =N −1
n=0 x[n]cos 2π(2n+1)k
4N • Linear: αx[n] + βy[n] → αX [k] + βY [k]• DFT “Convolution←→Multiplication” property does not hold• Symmetric: X [−k] = X [k] since cos−αk = cos +αk
• Anti-periodic: X [k + 2N ] = −X [k] because:◦ cos(θ + π) = − cos θ◦ 2π(2n + 1)(k + 2N ) = 2π(2n + 1)k + 8πN n + 4N π⇒X [N ] = 0 since X [N ] = X [−N ] = −X [−N + 2N ]
8/13/2019 00300 Transforms
33/97
DCT Properties
3: Discrete Cosine Transform
• DFT Problems
• DCT
• DCT of sine wave
• DCT/DFT Equivalence
• DCT Properties
• IDCT
• Energy Conservation
• Energy Compaction
• Frame-based coding
• Lapped Transform
• MDCT
• Summary
• MATLAB routines
DSP and Digital Filters (2013-3622) Transforms: 3 – 6 / 14
Definition: X [k] =N −1
n=0 x[n]cos 2π(2n+1)k
4N • Linear: αx[n] + βy[n] → αX [k] + βY [k]• DFT “Convolution←→Multiplication” property does not hold• Symmetric: X [−k] = X [k] since cos−αk = cos +αk
• Anti-periodic: X [k + 2N ] = −X [k] because:◦ cos(θ + π) = − cos θ◦ 2π(2n + 1)(k + 2N ) = 2π(2n + 1)k + 8πN n + 4N π⇒X [N ] = 0 since X [N ] = X [−N ] = −X [−N + 2N ]
• Periodic: X [k + 4N ] = −X [k + 2N ] = X [k]
8/13/2019 00300 Transforms
34/97
DCT Properties
3: Discrete Cosine Transform
• DFT Problems
• DCT
• DCT of sine wave
• DCT/DFT Equivalence
• DCT Properties
• IDCT
• Energy Conservation
• Energy Compaction
• Frame-based coding
• Lapped Transform
• MDCT
• Summary
• MATLAB routines
DSP and Digital Filters (2013-3622) Transforms: 3 – 6 / 14
Definition: X [k] =
N −1n=0 x[n]cos
2π(2n+1)k4N
• Linear: αx[n] + βy[n] → αX [k] + βY [k]• DFT “Convolution←→Multiplication” property does not hold• Symmetric: X [−k] = X [k] since cos−αk = cos +αk
• Anti-periodic: X [k + 2N ] = −X [k] because:◦ cos(θ + π) = − cos θ◦ 2π(2n + 1)(k + 2N ) = 2π(2n + 1)k + 8πN n + 4N π⇒X [N ] = 0 since X [N ] = X [−N ] = −X [−N + 2N ]
• Periodic: X [k + 4N ] = −X [k + 2N ] = X [k]DCT basis functions:
0:
8/13/2019 00300 Transforms
35/97
DCT Properties
3: Discrete Cosine Transform
• DFT Problems
• DCT
• DCT of sine wave
• DCT/DFT Equivalence
• DCT Properties
• IDCT
• Energy Conservation
• Energy Compaction
• Frame-based coding
• Lapped Transform
• MDCT
• Summary
• MATLAB routines
DSP and Digital Filters (2013-3622) Transforms: 3 – 6 / 14
Definition: X [k] =
N −1n=0 x[n]cos
2π(2n+1)k4N
• Linear: αx[n] + βy[n] → αX [k] + βY [k]• DFT “Convolution←→Multiplication” property does not hold• Symmetric: X [−k] = X [k] since cos−αk = cos +αk
• Anti-periodic: X [k + 2N ] = −X [k] because:◦ cos(θ + π) = − cos θ◦ 2π(2n + 1)(k + 2N ) = 2π(2n + 1)k + 8πN n + 4N π⇒X [N ] = 0 since X [N ] = X [−N ] = −X [−N + 2N ]
• Periodic: X [k + 4N ] = −X [k + 2N ] = X [k]DCT basis functions:
0:
1:
8/13/2019 00300 Transforms
36/97
DCT Properties
3: Discrete Cosine Transform
• DFT Problems
• DCT
• DCT of sine wave
• DCT/DFT Equivalence
• DCT Properties
• IDCT
• Energy Conservation
• Energy Compaction
• Frame-based coding
• Lapped Transform
• MDCT
• Summary
• MATLAB routines
DSP and Digital Filters (2013-3622) Transforms: 3 – 6 / 14
Definition: X [k] =
N −1n=0 x[n]cos
2π(2n+1)k4N
• Linear: αx[n] + βy[n] → αX [k] + βY [k]• DFT “Convolution←→Multiplication” property does not hold• Symmetric: X [−k] = X [k] since cos−αk = cos +αk
• Anti-periodic: X [k + 2N ] = −X [k] because:◦ cos(θ + π) = − cos θ◦ 2π(2n + 1)(k + 2N ) = 2π(2n + 1)k + 8πN n + 4N π⇒X [N ] = 0 since X [N ] = X [−N ] = −X [−N + 2N ]
• Periodic: X [k + 4N ] = −X [k + 2N ] = X [k]DCT basis functions:
0:
1:
2:
8/13/2019 00300 Transforms
37/97
DCT Properties
3: Discrete Cosine Transform
• DFT Problems
• DCT
• DCT of sine wave
• DCT/DFT Equivalence
• DCT Properties
• IDCT
• Energy Conservation
• Energy Compaction
• Frame-based coding
• Lapped Transform
• MDCT
• Summary
• MATLAB routines
DSP and Digital Filters (2013-3622) Transforms: 3 – 6 / 14
Definition: X [k] =
N −1n=0 x[n]cos
2π(2n+1)k4N
• Linear: αx[n] + βy[n] → αX [k] + βY [k]• DFT “Convolution←→Multiplication” property does not hold• Symmetric: X [−k] = X [k] since cos−αk = cos +αk
• Anti-periodic: X [k + 2N ] = −X [k] because:◦ cos(θ + π) = − cos θ◦ 2π(2n + 1)(k + 2N ) = 2π(2n + 1)k + 8πN n + 4N π⇒X [N ] = 0 since X [N ] = X [−N ] = −X [−N + 2N ]
• Periodic: X [k + 4N ] = −X [k + 2N ] = X [k]DCT basis functions:
0:
3:
1:
2:
8/13/2019 00300 Transforms
38/97
DCT Properties
3: Discrete Cosine Transform
• DFT Problems
• DCT
• DCT of sine wave
• DCT/DFT Equivalence
• DCT Properties
• IDCT
• Energy Conservation
• Energy Compaction
• Frame-based coding
• Lapped Transform
• MDCT
• Summary
• MATLAB routines
DSP and Digital Filters (2013-3622) Transforms: 3 – 6 / 14
Definition: X [k] =
N −1n=0 x[n]cos
2π(2n+1)k4N
• Linear: αx[n] + βy[n] → αX [k] + βY [k]• DFT “Convolution←→Multiplication” property does not hold• Symmetric: X [−k] = X [k] since cos−αk = cos +αk
• Anti-periodic: X [k + 2N ] = −X [k] because:◦ cos(θ + π) = − cos θ◦ 2π(2n + 1)(k + 2N ) = 2π(2n + 1)k + 8πN n + 4N π⇒X [N ] = 0 since X [N ] = X [−N ] = −X [−N + 2N ]
• Periodic: X [k + 4N ] = −X [k + 2N ] = X [k]DCT basis functions:
0:
3:
1: 4:
2:
8/13/2019 00300 Transforms
39/97
DCT Properties
3: Discrete Cosine Transform
• DFT Problems
• DCT
• DCT of sine wave
• DCT/DFT Equivalence
• DCT Properties
• IDCT
• Energy Conservation
• Energy Compaction
• Frame-based coding
• Lapped Transform
• MDCT
• Summary
• MATLAB routines
DSP and Digital Filters (2013-3622) Transforms: 3 – 6 / 14
Definition: X [k] =
N −1n=0 x[n]cos
2π(2n+1)k4N
• Linear: αx[n] + βy[n] → αX [k] + βY [k]• DFT “Convolution←→Multiplication” property does not hold• Symmetric: X [−k] = X [k] since cos−αk = cos +αk
• Anti-periodic: X [k + 2N ] = −X [k] because:◦ cos(θ + π) = − cos θ◦ 2π(2n + 1)(k + 2N ) = 2π(2n + 1)k + 8πN n + 4N π⇒X [N ] = 0 since X [N ] = X [−N ] = −X [−N + 2N ]
• Periodic: X [k + 4N ] = −X [k + 2N ] = X [k]DCT basis functions:
0:
3:
1: 4:
2: 5:
8/13/2019 00300 Transforms
40/97
IDCT
3: Discrete Cosine Transform
• DFT Problems
• DCT
• DCT of sine wave
• DCT/DFT Equivalence
• DCT Properties
• IDCT
• Energy Conservation
• Energy Compaction
• Frame-based coding
• Lapped Transform
• MDCT
• Summary
• MATLAB routines
DSP and Digital Filters (2013-3622) Transforms: 3 – 7 / 14
y[r] = 14N
4N −1k=0 Y [k]W
−rk4N
0
12
23
Y[k]
W ba = e−j 2πb
a
8/13/2019 00300 Transforms
41/97
IDCT
3: Discrete Cosine Transform
• DFT Problems
• DCT
• DCT of sine wave
• DCT/DFT Equivalence
• DCT Properties
• IDCT
• Energy Conservation
• Energy Compaction
• Frame-based coding
• Lapped Transform
• MDCT
• Summary
• MATLAB routines
DSP and Digital Filters (2013-3622) Transforms: 3 – 7 / 14
y[r] = 14N
4N −1k=0 Y [k]W
−rk4N =
12N
4N −1k=0 X [k]W
−rk4N
[Y [k] = 2X [k]]
0
12
23
Y[k]
W ba = e−j 2πb
a
8/13/2019 00300 Transforms
42/97
IDCT
3: Discrete Cosine Transform
• DFT Problems
• DCT
• DCT of sine wave
• DCT/DFT Equivalence
• DCT Properties
• IDCT
• Energy Conservation• Energy Compaction
• Frame-based coding
• Lapped Transform
• MDCT
• Summary
• MATLAB routines
DSP and Digital Filters (2013-3622) Transforms: 3 – 7 / 14
y[r] = 14N
4N −1k=0 Y [k]W
−rk4N =
12N
4N −1k=0 X [k]W
−rk4N
x[n] = y[2n + 1] [Y [k] = 2X [k]]
0
12
23
Y[k]
W ba = e−j 2πb
a
8/13/2019 00300 Transforms
43/97
IDCT
3: Discrete Cosine Transform
• DFT Problems
• DCT
• DCT of sine wave
• DCT/DFT Equivalence
• DCT Properties
• IDCT
• Energy Conservation• Energy Compaction
• Frame-based coding
• Lapped Transform
• MDCT
• Summary
• MATLAB routines
DSP and Digital Filters (2013-3622) Transforms: 3 – 7 / 14
y[r] = 14N
4N −1k=0 Y [k]W
−rk4N =
12N
4N −1k=0 X [k]W
−rk4N
x[n] = y[2n + 1] = 12N 4N −1
k=0 X [k]W −(2n+1)k4N [Y [k] = 2X [k]]
0
12
23
Y[k]
W ba = e−j 2πb
a
8/13/2019 00300 Transforms
44/97
IDCT
3: Discrete Cosine Transform
• DFT Problems
• DCT
• DCT of sine wave
• DCT/DFT Equivalence
• DCT Properties
• IDCT
• Energy Conservation• Energy Compaction
• Frame-based coding
• Lapped Transform
• MDCT
• Summary
• MATLAB routines
DSP and Digital Filters (2013-3622) Transforms: 3 – 7 / 14
y[r] = 14N
4N −1k=0 Y [k]W
−rk4N =
12N
4N −1k=0 X [k]W
−rk4N
x[n] = y[2n + 1] = 12N 4N −1
k=0 X [k]W −(2n+1)k4N [Y [k] = 2X [k]]
(i)= 1
2N
2N −1k=0 X [k]W
−(2n+1)k4N
− 12N 2N −1
l=0 X [l]W −(2n+1)(l+2N )4N
0
12
23
Y[k]
W ba = e−j 2πb
a
(i) k = l + 2N for k ≥ 2N and X [k + 2N ] = −X [k]
8/13/2019 00300 Transforms
45/97
IDCT
3: Discrete Cosine Transform
• DFT Problems
• DCT
• DCT of sine wave
• DCT/DFT Equivalence
• DCT Properties
• IDCT
• Energy Conservation• Energy Compaction
• Frame-based coding
• Lapped Transform
• MDCT
• Summary
• MATLAB routines
DSP and Digital Filters (2013-3622) Transforms: 3 – 7 / 14
y[r] = 14N
4N −1k=0 Y [k]W
−rk4N =
12N
4N −1k=0 X [k]W
−rk4N
x[n] = y[2n + 1] = 12N 4N −1
k=0 X [k]W −(2n+1)k4N [Y [k] = 2X [k]]
(i)= 1
2N
2N −1k=0 X [k]W
−(2n+1)k4N
− 12N 2N −1
l=0 X [l]W −(2n+1)(l+2N )4N
0
12
23
Y[k]
(ii)= 1
N
2N −1k=0 X [k]W
−(2n+1)k4N W
ba = e
−j 2πba
(i) k = l + 2N for k ≥ 2N and X [k + 2N ] = −X [k]
(ii) (2n+1)(l+2N )
4N = (2n+1)l
4N + n + 12
8/13/2019 00300 Transforms
46/97
IDCT
3: Discrete Cosine Transform
• DFT Problems
• DCT
• DCT of sine wave
• DCT/DFT Equivalence
• DCT Properties
• IDCT
• Energy Conservation• Energy Compaction
• Frame-based coding
• Lapped Transform
• MDCT
• Summary
• MATLAB routines
DSP and Digital Filters (2013-3622) Transforms: 3 – 7 / 14
y[r] = 14N
4N −1k=0 Y [k]W
−rk4N =
12N
4N −1k=0 X [k]W
−rk4N
x[n] = y[2n + 1] = 12N 4N −1
k=0 X [k]W −(2n+1)k4N [Y [k] = 2X [k]]
(i)= 1
2N
2N −1k=0 X [k]W
−(2n+1)k4N
− 12N 2N −1
l=0 X [l]W −(2n+1)(l+2N )4N
0
12
23
Y[k]
(ii)= 1
N
2N −1k=0 X [k]W
−(2n+1)k4N W
ba = e
−j 2πba
(iii)
=
1
N X
[0] +
1
N N −1
k=1 X
[k
]W
−(2n+1)k
4N +
1
N X
[N
]W
−(2n+1)N
4N + 1N
N −1r=1 X [2N − r]W
−(2n+1)(2N −r)4N
(i) k = l + 2N for k ≥ 2N and X [k + 2N ] = −X [k]
(ii) (2n+1)(l+2N )
4N = (2n+1)l
4N + n + 12
(iii) k = 2N − r for k > N
8/13/2019 00300 Transforms
47/97
IDCT
3: Discrete Cosine Transform
• DFT Problems
• DCT
• DCT of sine wave
• DCT/DFT Equivalence
• DCT Properties
• IDCT
• Energy Conservation• Energy Compaction
• Frame-based coding
• Lapped Transform
• MDCT
• Summary
• MATLAB routines
DSP and Digital Filters (2013-3622) Transforms: 3 – 7 / 14
y[r] = 14N
4N −1k=0 Y [k]W
−rk4N =
12N
4N −1k=0 X [k]W
−rk4N
x[n] = y[2n + 1] = 12N 4N −1
k=0 X [k]W −(2n+1)k4N [Y [k] = 2X [k]]
(i)= 12N
2N −1k=0 X [k]W
−(2n+1)k4N
− 12N 2N −1
l=0 X [l]W −(2n+1)(l+2N )4N
0
12
23
Y[k]
(ii)= 1
N
2N −1k=0 X [k]W
−(2n+1)k4N W
ba = e
−j 2πba
(iii)= 1
N X [0] + 1
N N −1
k=1 X [k]W
−(2n+1)k
4N + 1
N X [N ]W
−(2n+1)N
4N + 1N
N −1r=1 X [2N − r]W
−(2n+1)(2N −r)4N
(iv)= 1
N X [0] + 1
N
N −1k=1 X [k]W
−(2n+1)k4N
+ 1N
N −1r=1 −X [r]W
(2n+1)r+2N 4N
(i) k = l + 2N for k ≥ 2N and X [k + 2N ] = −X [k]
(ii) (2n+1)(l+2N )
4N = (2n+1)l
4N + n + 12
(iii) k = 2N − r for k > N (iv) X [N ] = 0 and X [2N − r] = −X [r]
8/13/2019 00300 Transforms
48/97
IDCT
3: Discrete Cosine Transform
• DFT Problems
• DCT
• DCT of sine wave
• DCT/DFT Equivalence
• DCT Properties
• IDCT
• Energy Conservation• Energy Compaction
• Frame-based coding
• Lapped Transform
• MDCT
• Summary
• MATLAB routines
DSP and Digital Filters (2013-3622) Transforms: 3 – 7 / 14
y[r] = 14N
4N −1k=0 Y [k]W
−rk4N =
12N
4N −1k=0 X [k]W
−rk4N
x[n] = y[2n + 1] = 12N 4N −1
k=0 X [k]W −(2n+1)k4N [Y [k] = 2X [k]]
(i)= 12N
2N −1k=0 X [k]W
−(2n+1)k4N
− 12N 2N −1
l=0 X [l]W −(2n+1)(l+2N )4N
012
23
Y[k]
(ii)= 1
N
2N −1k=0 X [k]W
−(2n+1)k4N W
ba = e
−j 2πba
(iii)= 1
N X [0] + 1
N N −1
k=1 X [k]W
−(2n+1)k
4N + 1
N X [N ]W
−(2n+1)N
4N + 1N
N −1r=1 X [2N − r]W
−(2n+1)(2N −r)4N
(iv)= 1
N X [0] + 1
N
N −1k=1 X [k]W
−(2n+1)k4N
+ 1N
N −1r=1 −X [r]W
(2n+1)r+2N 4N
x[n] = 1N X [0] + 2N
N −1k=1 X [k]cos 2π(2n+1)k4N
(i) k = l + 2N for k ≥ 2N and X [k + 2N ] = −X [k]
(ii) (2n+1)(l+2N )
4N = (2n+1)l
4N + n + 12
(iii) k = 2N − r for k > N (iv) X [N ] = 0 and X [2N − r] = −X [r]
8/13/2019 00300 Transforms
49/97
IDCT
3: Discrete Cosine Transform
• DFT Problems
• DCT
• DCT of sine wave
• DCT/DFT Equivalence
• DCT Properties
• IDCT
• Energy Conservation• Energy Compaction
• Frame-based coding
• Lapped Transform
• MDCT
• Summary
• MATLAB routines
DSP and Digital Filters (2013-3622) Transforms: 3 – 7 / 14
y[r] = 14N
4N −1k=0 Y [k]W
−rk4N =
12N
4N −1k=0 X [k]W
−rk4N
x[n] = y[2n + 1] = 12N 4N −1
k=0 X [k]W −(2n+1)k4N [Y [k] = 2X [k]]
(i)= 12N
2N −1k=0 X [k]W
−(2n+1)k4N
− 12N 2N −1
l=0 X [l]W −(2n+1)(l+2N )4N
012
23
Y[k]
(ii)= 1
N
2N −1k=0 X [k]W
−(2n+1)k4N W
ba = e
−j 2πba
(iii)= 1
N X [0] + 1
N N −1
k=1 X [k]W
−(2n+1)k
4N + 1
N X [N ]W
−(2n+1)N
4N + 1N
N −1r=1 X [2N − r]W
−(2n+1)(2N −r)4N
(iv)= 1
N X [0] + 1
N
N −1k=1 X [k]W
−(2n+1)k4N
+ 1N
N −1r=1 −X [r]W
(2n+1)r+2N 4N
x[n] = 1N X [0] + 2N
N −1k=1 X [k]cos 2π(2n+1)k4N = Inverse DCT
(i) k = l + 2N for k ≥ 2N and X [k + 2N ] = −X [k]
(ii) (2n+1)(l+2N )
4N = (2n+1)l
4N + n + 12
(iii) k = 2N − r for k > N (iv) X [N ] = 0 and X [2N − r] = −X [r]
8/13/2019 00300 Transforms
50/97
8/13/2019 00300 Transforms
51/97
Energy Conservation
3: Discrete Cosine Transform
• DFT Problems
• DCT
• DCT of sine wave
• DCT/DFT Equivalence
• DCT Properties
• IDCT
• Energy Conservation• Energy Compaction
• Frame-based coding
• Lapped Transform
• MDCT
• Summary
• MATLAB routines
DSP and Digital Filters (2013-3622) Transforms: 3 – 8 / 14
DCT: X [k] =
N −1n=0 x[n]cos
2π(2n+1)k4N
IDCT: x[n] = 1N
X [0] + 2N
N −1k=1 X [k]cos
2π(2n+1)k4N
rep
→0 12 23
y[r]
DFT
→ 012
23
Y[k]
÷2
→
Energy: E =N −1
n=0 |x[n]|2
: E → 2E → 8N E →≈ 0.5N E
E = 1N |X |2
[0] + 2N N −1
n=1 |X |2
[n]
8/13/2019 00300 Transforms
52/97
Energy Conservation
3: Discrete Cosine Transform
• DFT Problems
• DCT
• DCT of sine wave
• DCT/DFT Equivalence
• DCT Properties
• IDCT
• Energy Conservation• Energy Compaction
• Frame-based coding
• Lapped Transform
• MDCT
• Summary
• MATLAB routines
DSP and Digital Filters (2013-3622) Transforms: 3 – 8 / 14
DCT: X [k] =
N −1n=0 x[n]cos
2π(2n+1)k4N
IDCT: x[n] = 1N
X [0] + 2N
N −1k=1 X [k]cos
2π(2n+1)k4N
rep
→0 12 23
y[r]
DFT
→ 012
23
Y[k]
÷2
→
Energy: E =N −1
n=0 |x[n]|2
: E → 2E → 8N E →≈ 0.5N E
E = 1N |X |2
[0] + 2N N −1
n=1 |X |2
[n]
Orthogonal DCT (preserves energy)
Define: c[k] =
2−δkN ⇒ c[0] =
1N
, c[k = 0] =
2N
8/13/2019 00300 Transforms
53/97
Energy Conservation
3: Discrete Cosine Transform
• DFT Problems
• DCT
• DCT of sine wave
• DCT/DFT Equivalence
• DCT Properties
• IDCT
• Energy Conservation• Energy Compaction
• Frame-based coding
• Lapped Transform
• MDCT
• Summary
• MATLAB routines
DSP and Digital Filters (2013-3622) Transforms: 3 – 8 / 14
DCT: X [k] =
N −1n=0 x[n]cos
2π(2n+1)k4N
IDCT: x[n] = 1N
X [0] + 2N
N −1k=1 X [k]cos
2π(2n+1)k4N
rep
→0 12 23
y[r]
DFT
→ 012
23
Y[k]
÷2
→
Energy: E =N −1
n=0 |x[n]|2
: E → 2E → 8N E →≈ 0.5N E
E = 1N |X |2
[0] + 2N N −1
n=1 |X |2
[n]
Orthogonal DCT (preserves energy)
Define: c[k] =
2−δkN ⇒ c[0] =
1N
, c[k = 0] =
2N
ODCT: X [k] = c[k]
N −1n=0 x[n]cos 2
π(2n+1)k4N
8/13/2019 00300 Transforms
54/97
Energy Conservation
3: Discrete Cosine Transform
• DFT Problems
• DCT
• DCT of sine wave
• DCT/DFT Equivalence
• DCT Properties
• IDCT
• Energy Conservation• Energy Compaction
• Frame-based coding
• Lapped Transform
• MDCT
• Summary
• MATLAB routines
DSP and Digital Filters (2013-3622) Transforms: 3 – 8 / 14
DCT: X [k] =
N −1n=0 x[n]cos
2π(2n+1)k4N
IDCT: x[n] = 1N
X [0] + 2N
N −1k=1 X [k]cos
2π(2n+1)k4N
rep
→0 12 23
y[r]
DFT
→ 012
23
Y[k]
÷2
→
Energy: E =N −1
n=0 |x[n]|2
: E → 2E → 8N E →≈ 0.5N E
E = 1N |X |2
[0] + 2N N −1
n=1 |X |2
[n]
Orthogonal DCT (preserves energy)
Define: c[k] =
2−δkN ⇒ c[0] =
1N
, c[k = 0] =
2N
ODCT: X [k] = c[k]
N −1n=0 x[n]cos 2
π(2n+1)k4N
IODCT: x[n] = N −1
k=0 c[k]X [k]cos 2π(2n+1)k
4N
8/13/2019 00300 Transforms
55/97
Energy Conservation
3: Discrete Cosine Transform• DFT Problems
• DCT
• DCT of sine wave
• DCT/DFT Equivalence
• DCT Properties
• IDCT
• Energy Conservation• Energy Compaction
• Frame-based coding
• Lapped Transform
• MDCT
• Summary
• MATLAB routines
DSP and Digital Filters (2013-3622) Transforms: 3 – 8 / 14
DCT: X [k] =
N −1n=0 x[n]cos
2π(2n+1)k4N
IDCT: x[n] = 1N
X [0] + 2N
N −1k=1 X [k]cos
2π(2n+1)k4N
rep
→0 12 23
y[r]
DFT
→ 012
23
Y[k]
÷2
→
Energy: E =N −1
n=0 |x[n]|2
: E → 2E → 8N E →≈ 0.5N E
E = 1N |X |2
[0] + 2N N −1
n=1 |X |2
[n]
Orthogonal DCT (preserves energy)
Define: c[k] =
2−δkN ⇒ c[0] =
1N
, c[k = 0] =
2N
ODCT: X [k] = c[k]
N −1n=0 x[n]cos 2π(2n+1)k4N
IODCT: x[n] = N −1
k=0 c[k]X [k]cos 2π(2n+1)k
4N
Note: MATLAB dct() calculates the ODCT
8/13/2019 00300 Transforms
56/97
Energy Compaction
3: Discrete Cosine Transform• DFT Problems
• DCT
• DCT of sine wave
• DCT/DFT Equivalence
• DCT Properties
• IDCT
•
Energy Conservation• Energy Compaction
• Frame-based coding
• Lapped Transform
• MDCT
• Summary
• MATLAB routines
DSP and Digital Filters (2013-3622) Transforms: 3 – 9 / 14
If consecutive x[n] are positively correlated, DCT concentrates energy in afew X [k] and decorrelates them.
8/13/2019 00300 Transforms
57/97
Energy Compaction
3: Discrete Cosine Transform• DFT Problems
• DCT
• DCT of sine wave
• DCT/DFT Equivalence
• DCT Properties
• IDCT
•
Energy Conservation• Energy Compaction
• Frame-based coding
• Lapped Transform
• MDCT
• Summary
• MATLAB routines
DSP and Digital Filters (2013-3622) Transforms: 3 – 9 / 14
If consecutive x[n] are positively correlated, DCT concentrates energy in afew X [k] and decorrelates them.
Example: Markov Process: x[n] = ρx[n − 1] +
1 − ρ2u[n]where u[n] is i.i.d. unit Gaussian.Then
x2[n]
= 1 and x[n]x[n − 1] = ρ.
Covariance of vector x is Si,j =
xxH i,j
= ρ|i−j|.
8/13/2019 00300 Transforms
58/97
Energy Compaction
3: Discrete Cosine Transform• DFT Problems
• DCT
• DCT of sine wave
• DCT/DFT Equivalence
• DCT Properties
• IDCT
•
Energy Conservation• Energy Compaction
• Frame-based coding
• Lapped Transform
• MDCT
• Summary
• MATLAB routines
DSP and Digital Filters (2013-3622) Transforms: 3 – 9 / 14
If consecutive x[n] are positively correlated, DCT concentrates energy in afew X [k] and decorrelates them.
Example: Markov Process: x[n] = ρx[n − 1] +
1 − ρ2u[n]where u[n] is i.i.d. unit Gaussian.Then
x2[n]
= 1 and x[n]x[n − 1] = ρ.
Covariance of vector x is Si,j =
xxH i,j
= ρ|i−j|.
Suppose ODCT of x is Cx and DFT is Fx.
Covariance of Cx is
CxxH
CH
= CSCH
(similarly FSFH
)Diagonal elements give mean coefficient energy.
8/13/2019 00300 Transforms
59/97
Energy Compaction
3: Discrete Cosine Transform• DFT Problems
• DCT
• DCT of sine wave
• DCT/DFT Equivalence
• DCT Properties
• IDCT
•
Energy Conservation• Energy Compaction
• Frame-based coding
• Lapped Transform
• MDCT
• Summary
• MATLAB routines
DSP and Digital Filters (2013-3622) Transforms: 3 – 9 / 14
If consecutive x[n] are positively correlated, DCT concentrates energy in afew X [k] and decorrelates them.
Example: Markov Process: x[n] = ρx[n − 1] +
1 − ρ2u[n]where u[n] is i.i.d. unit Gaussian.Then
x2[n]
= 1 and x[n]x[n − 1] = ρ.
Covariance of vector x is Si,j =
xxH i,j
= ρ|i−j|.
Suppose ODCT of x is Cx and DFT is Fx.
Covariance of Cx is
CxxH
CH
= CSCH
(similarly FSFH
)Diagonal elements give mean coefficient energy.
5 10 15 20 25 30
50
60
70
80
90
100
DCT
DFT
ρ =0.9N=32
No of coefficients
C u m u l a t i v e
e n e r g y ( % )
8/13/2019 00300 Transforms
60/97
Energy Compaction
3: Discrete Cosine Transform• DFT Problems
• DCT
• DCT of sine wave
• DCT/DFT Equivalence
• DCT Properties
• IDCT
•
Energy Conservation• Energy Compaction
• Frame-based coding
• Lapped Transform
• MDCT
• Summary
• MATLAB routines
DSP and Digital Filters (2013-3622) Transforms: 3 – 9 / 14
If consecutive x[n] are positively correlated, DCT concentrates energy in afew X [k] and decorrelates them.
Example: Markov Process: x[n] = ρx[n − 1] +
1 − ρ2u[n]where u[n] is i.i.d. unit Gaussian.Then
x2[n]
= 1 and x[n]x[n − 1] = ρ.
Covariance of vector x is Si,j =
xxH i,j
= ρ|i−j|.
Suppose ODCT of x is Cx and DFT is Fx.
Covariance of Cx is
CxxH
CH
= CSCH
(similarly FSFH
)Diagonal elements give mean coefficient energy.
5 10 15 20 25 30
50
60
70
80
90
100
DCT
DFT
ρ =0.9N=32
No of coefficients
C u m u l a t i v e e n e r g y ( % )
• Used in MPEG and JPEG (superseded byJPEG2000 using wavelets)
• Used in speech recognition to decorrelate:DCT of log spectrum
8/13/2019 00300 Transforms
61/97
Energy Compaction
3: Discrete Cosine Transform• DFT Problems
• DCT
• DCT of sine wave
• DCT/DFT Equivalence
• DCT Properties
• IDCT
•
Energy Conservation• Energy Compaction
• Frame-based coding
• Lapped Transform
• MDCT
• Summary
• MATLAB routines
DSP and Digital Filters (2013-3622) Transforms: 3 – 9 / 14
If consecutive x[n] are positively correlated, DCT concentrates energy in afew X [k] and decorrelates them.
Example: Markov Process: x[n] = ρx[n − 1] +
1 − ρ2u[n]where u[n] is i.i.d. unit Gaussian.Then
x2[n]
= 1 and x[n]x[n − 1] = ρ.
Covariance of vector x is Si,j =
xxH i,j
= ρ|i−j|.
Suppose ODCT of x is Cx and DFT is Fx.
Covariance of Cx is
CxxH
CH
= CSCH
(similarly FSFH
)Diagonal elements give mean coefficient energy.
5 10 15 20 25 30
50
60
70
80
90
100
DCT
DFT
ρ =0.9N=32
No of coefficients
C u m u l a t i v e e n e r g y ( % )
• Used in MPEG and JPEG (superseded byJPEG2000 using wavelets)
• Used in speech recognition to decorrelate:DCT of log spectrum
Energy compaction good for coding (low-valued coefficients can be set to 0)
Decorrelation good for coding and for probability modelling
8/13/2019 00300 Transforms
62/97
Frame-based coding
3: Discrete Cosine Transform• DFT Problems
• DCT
• DCT of sine wave
• DCT/DFT Equivalence
• DCT Properties
• IDCT
•
Energy Conservation• Energy Compaction
• Frame-based coding
• Lapped Transform
• MDCT
• Summary
• MATLAB routines
DSP and Digital Filters (2013-3622) Transforms: 3 – 10 / 14
• Divide continuous signalinto frames
x[n]
X[k] k=30/220
y[n]
y[n]-x[n]
F b d di
8/13/2019 00300 Transforms
63/97
Frame-based coding
3: Discrete Cosine Transform• DFT Problems
• DCT
• DCT of sine wave
• DCT/DFT Equivalence
• DCT Properties
• IDCT
•
Energy Conservation• Energy Compaction
• Frame-based coding
• Lapped Transform
• MDCT
• Summary
• MATLAB routines
DSP and Digital Filters (2013-3622) Transforms: 3 – 10 / 14
• Divide continuous signalinto frames
• Apply DCT to each frame
x[n]
X[k] k=30/220
y[n]
y[n]-x[n]
F b d di
8/13/2019 00300 Transforms
64/97
Frame-based coding
3: Discrete Cosine Transform• DFT Problems
• DCT
• DCT of sine wave
• DCT/DFT Equivalence
• DCT Properties
• IDCT
•
Energy Conservation• Energy Compaction
• Frame-based coding
• Lapped Transform
• MDCT
• Summary
• MATLAB routines
DSP and Digital Filters (2013-3622) Transforms: 3 – 10 / 14
• Divide continuous signalinto frames
• Apply DCT to each frame
• Encode DCT◦ e.g. keep only 30 X [k]
x[n]
X[k] k=30/220
y[n]
y[n]-x[n]
F b d di
8/13/2019 00300 Transforms
65/97
Frame-based coding
3: Discrete Cosine Transform• DFT Problems
• DCT
• DCT of sine wave
• DCT/DFT Equivalence
• DCT Properties
• IDCT
•
Energy Conservation• Energy Compaction
• Frame-based coding
• Lapped Transform
• MDCT
• Summary
• MATLAB routines
DSP and Digital Filters (2013-3622) Transforms: 3 – 10 / 14
• Divide continuous signalinto frames
• Apply DCT to each frame
• Encode DCT◦ e.g. keep only 30 X [k]
• Apply IDCT → y[n]
x[n]
X[k] k=30/220
y[n]
y[n]-x[n]
F b d di
8/13/2019 00300 Transforms
66/97
Frame-based coding
3: Discrete Cosine Transform• DFT Problems
• DCT
• DCT of sine wave
• DCT/DFT Equivalence
• DCT Properties
• IDCT
•
Energy Conservation• Energy Compaction
• Frame-based coding
• Lapped Transform
• MDCT
• Summary
• MATLAB routines
DSP and Digital Filters (2013-3622) Transforms: 3 – 10 / 14
• Divide continuous signalinto frames
• Apply DCT to each frame
• Encode DCT◦ e.g. keep only 30 X [k]
• Apply IDCT → y[n]
x[n]
X[k] k=30/220
y[n]
y[n]-x[n]
Problem: Coding may create discontinuities at frame boundaries
8/13/2019 00300 Transforms
67/97
Lapped Transform
8/13/2019 00300 Transforms
68/97
Lapped Transform
3: Discrete Cosine Transform• DFT Problems
• DCT
• DCT of sine wave
• DCT/DFT Equivalence
• DCT Properties
• IDCT
•
Energy Conservation• Energy Compaction
• Frame-based coding
• Lapped Transform
• MDCT
• Summary
• MATLAB routines
DSP and Digital Filters (2013-3622) Transforms: 3 – 11 / 14
Modified Discrete Cosine Transform (MDCT): overlapping frames 2N long
x[0 : 2N − 1]x[n]
X[k]
yA[n]
yB[n]
y[n]
y[n]-x[n]
0 N
N
2N
2N
3N
3N
4N
4N
Lapped Transform
8/13/2019 00300 Transforms
69/97
Lapped Transform
3: Discrete Cosine Transform• DFT Problems
• DCT
• DCT of sine wave
• DCT/DFT Equivalence
• DCT Properties
• IDCT
•
Energy Conservation• Energy Compaction
• Frame-based coding
• Lapped Transform
• MDCT
• Summary
• MATLAB routines
DSP and Digital Filters (2013-3622) Transforms: 3 – 11 / 14
Modified Discrete Cosine Transform (MDCT): overlapping frames 2N long
x[0 : 2N − 1]MDCT→ X [0 : N − 1] x[n]
X[k]
yA[n]
yB[n]
y[n]
y[n]-x[n]
0 N
N
2N
2N
3N
3N
4N
4N
MDCT: 2N → N coefficients
Lapped Transform
8/13/2019 00300 Transforms
70/97
Lapped Transform
3: Discrete Cosine Transform• DFT Problems
• DCT
• DCT of sine wave
• DCT/DFT Equivalence
• DCT Properties
• IDCT
•
Energy Conservation• Energy Compaction
• Frame-based coding
• Lapped Transform
• MDCT
• Summary
• MATLAB routines
DSP and Digital Filters (2013-3622) Transforms: 3 – 11 / 14
Modified Discrete Cosine Transform (MDCT): overlapping frames 2N long
x[0 : 2N − 1]MDCT→ X [0 : N − 1]
IMDCT
→ yA[0 : 2N − 1]
x[n]
X[k]
yA[n]
yB[n]
y[n]
y[n]-x[n]
0 N
N
2N
2N
3N
3N
4N
4N
MDCT: 2N → N coefficients, IMDCT: N → 2N samples
Lapped Transform
8/13/2019 00300 Transforms
71/97
Lapped Transform
3: Discrete Cosine Transform• DFT Problems
• DCT
• DCT of sine wave
• DCT/DFT Equivalence
• DCT Properties
• IDCT
• Energy Conservation
• Energy Compaction
• Frame-based coding
• Lapped Transform
• MDCT
• Summary
• MATLAB routines
DSP and Digital Filters (2013-3622) Transforms: 3 – 11 / 14
Modified Discrete Cosine Transform (MDCT): overlapping frames 2N long
x[0 : 2N − 1]MDCT→ X [0 : N − 1]
IMDCT
→ yA[0 : 2N − 1]x[N : 3N − 1]
MDCT→ X [N : 2N − 1]
x[n]
X[k]
yA[n]
yB[n]
y[n]
y[n]-x[n]
0 N
N
2N
2N
3N
3N
4N
4N
MDCT: 2N → N coefficients, IMDCT: N → 2N samples
Lapped Transform
8/13/2019 00300 Transforms
72/97
Lapped Transform
3: Discrete Cosine Transform• DFT Problems
• DCT
• DCT of sine wave
• DCT/DFT Equivalence
• DCT Properties
• IDCT
• Energy Conservation
• Energy Compaction
• Frame-based coding
• Lapped Transform
• MDCT
• Summary
• MATLAB routines
DSP and Digital Filters (2013-3622) Transforms: 3 – 11 / 14
Modified Discrete Cosine Transform (MDCT): overlapping frames 2N long
x[0 : 2N − 1]MDCT→ X [0 : N − 1]
IMDCT
→ yA[0 : 2N − 1]x[N : 3N − 1]
MDCT→ X [N : 2N − 1]
IMDCT→ yB [N : 3N − 1]
x[n]
X[k]
yA[n]
yB[n]
y[n]
y[n]-x[n]
0 N
N
2N
2N
3N
3N
4N
4N
MDCT: 2N → N coefficients, IMDCT: N → 2N samples
Lapped Transform
8/13/2019 00300 Transforms
73/97
Lapped Transform
3: Discrete Cosine Transform• DFT Problems
• DCT
• DCT of sine wave
• DCT/DFT Equivalence
• DCT Properties
• IDCT
• Energy Conservation
• Energy Compaction
• Frame-based coding
• Lapped Transform
• MDCT
• Summary
• MATLAB routines
DSP and Digital Filters (2013-3622) Transforms: 3 – 11 / 14
Modified Discrete Cosine Transform (MDCT): overlapping frames 2N long
x[0 : 2N − 1]MDCT→ X [0 : N − 1]
IMDCT
→ yA[0 : 2N − 1]x[N : 3N − 1]
MDCT→ X [N : 2N − 1]
IMDCT→ yB [N : 3N − 1]
x[2N : 4N − 1]MDCT→ X [2N : 3N − 1]
x[n]
X[k]
yA[n]
yB[n]
y[n]
y[n]-x[n]
0 N
N
2N
2N
3N
3N
4N
4N
MDCT: 2N → N coefficients, IMDCT: N → 2N samples
Lapped Transform
8/13/2019 00300 Transforms
74/97
Lapped Transform
3: Discrete Cosine Transform• DFT Problems
• DCT
• DCT of sine wave
• DCT/DFT Equivalence
• DCT Properties
• IDCT
• Energy Conservation
• Energy Compaction
• Frame-based coding
• Lapped Transform
• MDCT
• Summary
• MATLAB routines
DSP and Digital Filters (2013-3622) Transforms: 3 – 11 / 14
Modified Discrete Cosine Transform (MDCT): overlapping frames 2N long
x[0 : 2N − 1]MDCT→ X [0 : N − 1]
IMDCT
→ yA[0 : 2N − 1]x[N : 3N − 1]
MDCT→ X [N : 2N − 1]
IMDCT→ yB [N : 3N − 1]
x[2N : 4N − 1]MDCT→ X [2N : 3N − 1]
IMDCT→ yA[2N : 3N − 1]
x[n]
X[k]
yA[n]
yB[n]
y[n]
y[n]-x[n]
0 N
N
2N
2N
3N
3N
4N
4N
MDCT: 2N → N coefficients, IMDCT: N → 2N samples
Lapped Transform
8/13/2019 00300 Transforms
75/97
Lapped Transform
3: Discrete Cosine Transform• DFT Problems
• DCT
• DCT of sine wave
• DCT/DFT Equivalence
• DCT Properties
• IDCT
• Energy Conservation
• Energy Compaction
• Frame-based coding
• Lapped Transform
• MDCT
• Summary
• MATLAB routines
DSP and Digital Filters (2013-3622) Transforms: 3 – 11 / 14
Modified Discrete Cosine Transform (MDCT): overlapping frames 2N long
x[0 : 2N − 1]MDCT→ X [0 : N − 1]
IMDCT
→ yA[0 : 2N − 1]x[N : 3N − 1]
MDCT→ X [N : 2N − 1]
IMDCT→ yB [N : 3N − 1]
x[2N : 4N − 1]MDCT→ X [2N : 3N − 1]
IMDCT→ yA[2N : 3N − 1]
y[∗] = yA[∗] + yB [∗]
x[n]
X[k]
yA[n]
yB[n]
y[n]
y[n]-x[n]
0 N
N
2N
2N
3N
3N
4N
4N
MDCT: 2N → N coefficients, IMDCT: N → 2N samplesEven frames → yA, Odd frames → yB then y = yA + yB
Lapped Transform
8/13/2019 00300 Transforms
76/97
Lapped Transform
3: Discrete Cosine Transform• DFT Problems
• DCT
• DCT of sine wave
• DCT/DFT Equivalence
• DCT Properties
• IDCT
• Energy Conservation
• Energy Compaction
• Frame-based coding
• Lapped Transform
• MDCT
• Summary
• MATLAB routines
DSP and Digital Filters (2013-3622) Transforms: 3 – 11 / 14
Modified Discrete Cosine Transform (MDCT): overlapping frames 2N long
x[0 : 2N − 1]MDCT→ X [0 : N − 1]
IMDCT
→ yA[0 : 2N − 1]x[N : 3N − 1]
MDCT→ X [N : 2N − 1]
IMDCT→ yB [N : 3N − 1]
x[2N : 4N − 1]MDCT→ X [2N : 3N − 1]
IMDCT→ yA[2N : 3N − 1]
y[∗] = yA[∗] + yB [∗]
x[n]
X[k]
yA[n]
yB[n]
y[n]
y[n]-x[n]
0 N
N
2N
2N
3N
3N
4N
4N
MDCT: 2N → N coefficients, IMDCT: N → 2N samplesEven frames → yA, Odd frames → yB then y = yA + yBErrors cancel exactly: Time-domain alias cancellation (TDAC)
MDCT
8/13/2019 00300 Transforms
77/97
MDCT
3: Discrete Cosine Transform• DFT Problems
• DCT
• DCT of sine wave
• DCT/DFT Equivalence
• DCT Properties
• IDCT
• Energy Conservation
• Energy Compaction
• Frame-based coding
• Lapped Transform
• MDCT
• Summary
• MATLAB routines
DSP and Digital Filters (2013-3622) Transforms: 3 – 12 / 14
MDCT: X M [k] =
2N −1n=0 x[n]cos 2π(2n+1+N )(2k+1)8N
IMDCT: yA,B [n] = 1N
N −1k=0 X M [k]cos
2π(2n+1+N )(2k+1)8N
MDCT
8/13/2019 00300 Transforms
78/97
MDCT
3: Discrete Cosine Transform• DFT Problems
• DCT
• DCT of sine wave
• DCT/DFT Equivalence
• DCT Properties
• IDCT
• Energy Conservation
• Energy Compaction
• Frame-based coding
• Lapped Transform
• MDCT
• Summary
• MATLAB routines
DSP and Digital Filters (2013-3622) Transforms: 3 – 12 / 14
MDCT: X M [k] =
2N −1n=0 x[n]cos 2π(2n+1+N )(2k+1)8N
IMDCT: yA,B [n] = 1N
N −1k=0 X M [k]cos
2π(2n+1+N )(2k+1)8N
MDCT can be made from a DCT of length 2N
MDCT
8/13/2019 00300 Transforms
79/97
MDCT
3: Discrete Cosine Transform• DFT Problems
• DCT
• DCT of sine wave
• DCT/DFT Equivalence
• DCT Properties
• IDCT
• Energy Conservation
• Energy Compaction
• Frame-based coding
• Lapped Transform
• MDCT
• Summary
• MATLAB routines
DSP and Digital Filters (2013-3622) Transforms: 3 – 12 / 14
MDCT: X M [k] =
2N −1n=0 x[n]cos 2π(2n+1+N )(2k+1)8N
IMDCT: yA,B [n] = 1N
N −1k=0 X M [k]cos
2π(2n+1+N )(2k+1)8N
MDCT can be made from a DCT of length 2N
Split x[n] into four N
2 -vectors: x =
a b c d
MDCT
8/13/2019 00300 Transforms
80/97
MDCT
3: Discrete Cosine Transform• DFT Problems
• DCT
• DCT of sine wave
• DCT/DFT Equivalence
• DCT Properties
• IDCT
• Energy Conservation
• Energy Compaction
• Frame-based coding
• Lapped Transform
• MDCT
• Summary
• MATLAB routines
DSP and Digital Filters (2013-3622) Transforms: 3 – 12 / 14
MDCT: X M [k] =
2N −1n=0 x[n]cos 2π(2n+1+N )(2k+1)8N
IMDCT: yA,B [n] = 1N
N −1k=0 X M [k]cos
2π(2n+1+N )(2k+1)8N
MDCT can be made from a DCT of length 2N
Split x[n] into four N
2 -vectors: x =
a b c d
Now form the N -vector u = −d −←−c a −
←−b
where←−c is the vector c but in reverse order
MDCT
8/13/2019 00300 Transforms
81/97
MDCT
3: Discrete Cosine Transform• DFT Problems
• DCT
• DCT of sine wave
• DCT/DFT Equivalence
• DCT Properties
• IDCT
• Energy Conservation
• Energy Compaction
• Frame-based coding
• Lapped Transform
• MDCT
• Summary
• MATLAB routines
DSP and Digital Filters (2013-3622) Transforms: 3 – 12 / 14
MDCT: X M [k] =
2N −1n=0 x[n]cos 2π(2n+1+N )(2k+1)8N
IMDCT: yA,B [n] = 1N
N −1k=0 X M [k]cos
2π(2n+1+N )(2k+1)8N
MDCT can be made from a DCT of length 2N
Split x[n] into four N
2 -vectors: x =
a b c d
Now form the N -vector u = −d −←−c a −
←−b
where←−c is the vector c but in reverse order
Now form v =
u −←−u
and take 2N DCT
MDCT
8/13/2019 00300 Transforms
82/97
MDCT
3: Discrete Cosine Transform• DFT Problems
• DCT
• DCT of sine wave
• DCT/DFT Equivalence
• DCT Properties
• IDCT
• Energy Conservation
• Energy Compaction
• Frame-based coding
• Lapped Transform
• MDCT
• Summary
• MATLAB routines
DSP and Digital Filters (2013-3622) Transforms: 3 – 12 / 14
MDCT: X M [k] =
2N −1n=0 x[n]cos 2π(2n+1+N )(2k+1)8N
IMDCT: yA,B [n] = 1N
N −1k=0 X M [k]cos
2π(2n+1+N )(2k+1)8N
MDCT can be made from a DCT of length 2N
Split x[n] into four N
2 -vectors: x =
a b c d
Now form the N -vector u = −d −←−c a −
←−b
where←−c is the vector c but in reverse order
Now form v =
u −←−u
and take 2N DCT
V C [2k] = 0 because of symmetry, so set X M [k] = V C [2k + 1]
MDCT
8/13/2019 00300 Transforms
83/97
C
3: Discrete Cosine Transform• DFT Problems
• DCT
• DCT of sine wave
• DCT/DFT Equivalence
• DCT Properties
• IDCT
• Energy Conservation
• Energy Compaction
• Frame-based coding
• Lapped Transform
• MDCT
• Summary
• MATLAB routines
DSP and Digital Filters (2013-3622) Transforms: 3 – 12 / 14
MDCT: X M [k] =
2N −1n=0 x[n]cos 2π(2n+1+N )(2k+1)8N
IMDCT: yA,B [n] = 1N
N −1k=0 X M [k]cos
2π(2n+1+N )(2k+1)8N
MDCT can be made from a DCT of length 2N
Split x[n] into four N
2 -vectors: x =
a b c d
Now form the N -vector u = −d −←−c a −
←−b
where←−c is the vector c but in reverse order
Now form v =
u −←−u
and take 2N DCT
V C [2k] = 0 because of symmetry, so set X M [k] = V C [2k + 1]IMDCT
Undo above to get X M [k] → u = −d −←−c a −
←−b
MDCT
8/13/2019 00300 Transforms
84/97
3: Discrete Cosine Transform• DFT Problems
• DCT
• DCT of sine wave
• DCT/DFT Equivalence
• DCT Properties
• IDCT
• Energy Conservation
• Energy Compaction
• Frame-based coding
• Lapped Transform
• MDCT
• Summary
• MATLAB routines
DSP and Digital Filters (2013-3622) Transforms: 3 – 12 / 14
MDCT: X M [k] =
2N −1n=0 x[n]cos 2π(2n+1+N )(2k+1)8N
IMDCT: yA,B [n] = 1N
N −1k=0 X M [k]cos
2π(2n+1+N )(2k+1)8N
MDCT can be made from a DCT of length 2N
Split x[n] into four N
2 -vectors: x =
a b c d
Now form the N -vector u = −d −←−c a −
←−b
where←−c is the vector c but in reverse order
Now form v =
u −←−u
and take 2N DCT
V C [2k] = 0 because of symmetry, so set X M [k] = V C [2k + 1]IMDCT
Undo above to get X M [k] → u = −d −←−c a −
←−b
Create yA[n] =
a −
←−
b b −
←−a c +
←−
d d +
←−c
MDCT
8/13/2019 00300 Transforms
85/97
3: Discrete Cosine Transform
• DFT Problems
• DCT
• DCT of sine wave
• DCT/DFT Equivalence
• DCT Properties
• IDCT
• Energy Conservation
• Energy Compaction
• Frame-based coding
• Lapped Transform
• MDCT
• Summary
• MATLAB routines
DSP and Digital Filters (2013-3622) Transforms: 3 – 12 / 14
MDCT: X M [k] =
2N −1n=0 x[n]cos 2π(2n+1+N )(2k+1)8N
IMDCT: yA,B [n] = 1N
N −1k=0 X M [k]cos
2π(2n+1+N )(2k+1)8N
MDCT can be made from a DCT of length 2N
Split x[n] into four N
2 -vectors: x = a b c d
Now form the N -vector u = −d −←−c a −
←−b
where←−c is the vector c but in reverse order
Now form v =
u −←−u
and take 2N DCT
V C [2k] = 0 because of symmetry, so set X M [k] = V C [2k + 1]IMDCT
Undo above to get X M [k] → u = −d −←−c a −
←−b
CreateyA[n] =
a −
←−
b b −
←−a c +
←−
d d +
←−c
Next frame: yB[n] =
c −←−d d −←−c e +
←−f f + ←−e
MDCT
8/13/2019 00300 Transforms
86/97
3: Discrete Cosine Transform
• DFT Problems
• DCT
• DCT of sine wave
• DCT/DFT Equivalence
• DCT Properties
• IDCT
• Energy Conservation
• Energy Compaction
• Frame-based coding
• Lapped Transform
• MDCT
• Summary
• MATLAB routines
DSP and Digital Filters (2013-3622) Transforms: 3 – 12 / 14
MDCT: X M [k] =
2N −1n=0 x[n]cos 2π(2n+1+N )(2k+1)8N
IMDCT: yA,B [n] = 1N
N −1k=0 X M [k]cos
2π(2n+1+N )(2k+1)8N
MDCT can be made from a DCT of length 2N Split
x[n] into four N
2 -vectors:
x = a b c d
Now form the N -vector u = −d −←−c a −
←−b
where←−c is the vector c but in reverse order
Now form v =
u −←−u
and take 2N DCT
V C [2k] = 0 because of symmetry, so set X M [k] = V C [2k + 1]IMDCT
Undo above to get X M [k] → u = −d −←−c a −
←−b
Create yA[n] =
a −
←−
b b −
←−a c +
←−
d d +
←−c
Next frame: yB[n] =
c −←−d d −←−c e +
←−f f + ←−e
Adding together, the←−d and ←−c terms cancel but c and d add.
MDCT
8/13/2019 00300 Transforms
87/97
3: Discrete Cosine Transform
• DFT Problems
• DCT
• DCT of sine wave
• DCT/DFT Equivalence
• DCT Properties
• IDCT
• Energy Conservation
• Energy Compaction
• Frame-based coding
• Lapped Transform
• MDCT
• Summary
• MATLAB routines
DSP and Digital Filters (2013-3622) Transforms: 3 – 12 / 14
MDCT: X M [k] =
2N −1n=0 x[n]cos 2π(2n+1+N )(2k+1)8N
IMDCT: yA,B [n] = 1N
N −1k=0 X M [k]cos
2π(2n+1+N )(2k+1)8N
MDCT can be made from a DCT of length 2N Split
x[n] into four N
2 -vectors: x
= a b c d
Now form the N -vector u = −d −←−c a −
←−b
where←−c is the vector c but in reverse order
Now form v =
u −←−u
and take 2N DCT
V C [2k] = 0 because of symmetry, so set X M [k] = V C [2k + 1]IMDCT
Undo above to get X M [k] → u = −d −←−c a −
←−b
Create yA[n] =
a −
←−
b b −
←−
a c +
←−
d d +
←−
c
Next frame: yB[n] =
c −←−d d −←−c e +
←−f f + ←−e
Adding together, the←−d and ←−c terms cancel but c and d add.
Used in audio coding: MP3, WMA, AC-3, AAC, Vorbis, ATRAC
Summary
8/13/2019 00300 Transforms
88/97
y
3: Discrete Cosine Transform
• DFT Problems
• DCT
• DCT of sine wave
• DCT/DFT Equivalence
• DCT Properties
• IDCT
• Energy Conservation
• Energy Compaction
• Frame-based coding
• Lapped Transform
• MDCT
• Summary
• MATLAB routines
DSP and Digital Filters (2013-3622) Transforms: 3 – 13 / 14
DCT: Discrete Cosine Transform• Equivalent to a DFT of time-shifted double-length
x ←−x
Summary
8/13/2019 00300 Transforms
89/97
3: Discrete Cosine Transform
• DFT Problems
• DCT
• DCT of sine wave
• DCT/DFT Equivalence
• DCT Properties
• IDCT
• Energy Conservation
• Energy Compaction
• Frame-based coding
• Lapped Transform
• MDCT
• Summary
• MATLAB routines
DSP and Digital Filters (2013-3622) Transforms: 3 – 13 / 14
DCT: Discrete Cosine Transform• Equivalent to a DFT of time-shifted double-length
x ←−x
• Often scaled to make an orthogonal transform (ODCT)
Summary
8/13/2019 00300 Transforms
90/97
3: Discrete Cosine Transform
• DFT Problems
• DCT
• DCT of sine wave
• DCT/DFT Equivalence
• DCT Properties
• IDCT
• Energy Conservation
• Energy Compaction
• Frame-based coding
• Lapped Transform
• MDCT
• Summary
• MATLAB routines
DSP and Digital Filters (2013-3622) Transforms: 3 – 13 / 14
DCT: Discrete Cosine Transform• Equivalent to a DFT of time-shifted double-length
x ←−x
• Often scaled to make an orthogonal transform (ODCT)• Better than DFT for energy compaction and decorrelation
Summary
8/13/2019 00300 Transforms
91/97
3: Discrete Cosine Transform
• DFT Problems
• DCT
• DCT of sine wave
• DCT/DFT Equivalence
• DCT Properties
• IDCT
• Energy Conservation
• Energy Compaction
• Frame-based coding
• Lapped Transform
• MDCT
• Summary
• MATLAB routines
DSP and Digital Filters (2013-3622) Transforms: 3 – 13 / 14
DCT: Discrete Cosine Transform• Equivalent to a DFT of time-shifted double-length
x ←−x
• Often scaled to make an orthogonal transform (ODCT)• Better than DFT for energy compaction and decorrelation• Nice convolution property of DFT is lost
Summary
8/13/2019 00300 Transforms
92/97
3: Discrete Cosine Transform
• DFT Problems
• DCT
• DCT of sine wave
• DCT/DFT Equivalence
• DCT Properties
• IDCT
• Energy Conservation
• Energy Compaction
• Frame-based coding
• Lapped Transform
• MDCT
• Summary
• MATLAB routines
DSP and Digital Filters (2013-3622) Transforms: 3 – 13 / 14
DCT: Discrete Cosine Transform• Equivalent to a DFT of time-shifted double-length
x ←−x
• Often scaled to make an orthogonal transform (ODCT)• Better than DFT for energy compaction and decorrelation• Nice convolution property of DFT is lost
MDCT: Modified Discrete Cosine Transform
• Lapped transform: 2N → N → 2N
Summary
8/13/2019 00300 Transforms
93/97
3: Discrete Cosine Transform
• DFT Problems
• DCT
• DCT of sine wave
• DCT/DFT Equivalence
• DCT Properties
• IDCT
• Energy Conservation
• Energy Compaction
• Frame-based coding
• Lapped Transform
• MDCT
• Summary
• MATLAB routines
DSP and Digital Filters (2013-3622) Transforms: 3 – 13 / 14
DCT: Discrete Cosine Transform• Equivalent to a DFT of time-shifted double-length
x ←−x
• Often scaled to make an orthogonal transform (ODCT)• Better than DFT for energy compaction and decorrelation• Nice convolution property of DFT is lost
MDCT: Modified Discrete Cosine Transform
• Lapped transform: 2N → N → 2N • Aliasing errors cancel out when overlapping output frames are added
Summary
8/13/2019 00300 Transforms
94/97
3: Discrete Cosine Transform
• DFT Problems
• DCT
• DCT of sine wave
• DCT/DFT Equivalence
• DCT Properties
�