Académique Documents
Professionnel Documents
Culture Documents
• DFT Problems
• DCT +
• Basis Functions
• DCT of sine wave
• DCT Properties
• Energy Conservation
• Energy Compaction
• Frame-based coding
• Lapped Transform +
• MDCT (Modified DCT)
• MDCT Basis Elements
• Summary 3: Discrete Cosine Transform
• MATLAB routines
N=20
→
f=0.08
N=20
→
f=0.08
12
0 23
12 ÷2
0 23 −→
12 ÷2
0 23 −→
PN −1
Forward DCT: XC [k] = n=0 x[n] cos 2π(2n+1)k
4N for k = 0 : N − 1
12 ÷2
0 23 −→
PN −1 2π(2n+1)k
Forward DCT: XC [k] = n=0 x[n] cos 4N for k = 0 : N − 1
1 2
PN −1 2π(2n+1)k
Inverse DCT: x[n] = N X[0] + N k=1 X[k] cos 4N
P −1 2π(2n+1)k
1
DCT basis functions: x[n] = N X[0] + N2 N
k=1 X[k] cos 4N
P −1 2π(2n+1)k
1
DCT basis functions: x[n] = N X[0] + N2 N
k=1 X[k] cos 4N
P −1 2π(2n+1)k
1
DCT basis functions: x[n] = N X[0] + N2 N
k=1 X[k] cos 4N
P −1 2π(2n+1)k
1
DCT basis functions: x[n] = N X[0] + N2 N
k=1 X[k] cos 4N
P −1 2π(2n+1)k
1
DCT basis functions: x[n] = N X[0] + N2 N
k=1 X[k] cos 4N
P −1 2π(2n+1)k
1
DCT basis functions: x[n] = N X[0] + N2 N
k=1 X[k] cos 4N
P −1 2π(2n+1)k
1
DCT basis functions: x[n] = N X[0] + N2 N
k=1 X[k] cos 4N
PN −1
x[n] cos 2π(2n+1)k
3: Discrete Cosine Transform
• DFT Problems DCT: XC [k] = n=0 4N
• DCT +
• Basis Functions
• DCT of sine wave
• DCT Properties
• Energy Conservation
• Energy Compaction
• Frame-based coding
• Lapped Transform +
• MDCT (Modified DCT)
• MDCT Basis Elements
• Summary
• MATLAB routines
PN −1
x[n] cos 2π(2n+1)k
3: Discrete Cosine Transform
• DFT Problems DCT: XC [k] = n=0 4N
• DCT +
m
• Basis Functions
• DCT of sine wave
f= N
• DCT Properties
• Energy Conservation
• Energy Compaction
• Frame-based coding
• Lapped Transform +
x[n] N=20
f=0.10
• MDCT (Modified DCT)
• MDCT Basis Elements
• Summary
• MATLAB routines
PN −1
x[n] cos 2π(2n+1)k
3: Discrete Cosine Transform
• DFT Problems DCT: XC [k] = n=0 4N
• DCT +
m
• Basis Functions
• DCT of sine wave
f= N
• DCT Properties
• Energy Conservation
• Energy Compaction
• Frame-based coding
• Lapped Transform +
x[n] N=20
f=0.10
• MDCT (Modified DCT)
• MDCT Basis Elements
• Summary
• MATLAB routines
|XF [k]|
PN −1
x[n] cos 2π(2n+1)k
3: Discrete Cosine Transform
• DFT Problems DCT: XC [k] = n=0 4N
• DCT +
m m
• Basis Functions
• DCT of sine wave
f= N f 6= N
• DCT Properties
• Energy Conservation
• Energy Compaction x[n] N=20 N=20
• Frame-based coding
f=0.10 f=0.08
• Lapped Transform +
• MDCT (Modified DCT)
• MDCT Basis Elements
• Summary
• MATLAB routines |XF [k]|
PN −1
x[n] cos 2π(2n+1)k
3: Discrete Cosine Transform
• DFT Problems DCT: XC [k] = n=0 4N
• DCT +
m m
• Basis Functions
• DCT of sine wave
f= N f 6= N
• DCT Properties
• Energy Conservation
• Energy Compaction x[n] N=20 N=20
• Frame-based coding
f=0.10 f=0.08
• Lapped Transform +
• MDCT (Modified DCT)
• MDCT Basis Elements
• Summary
• MATLAB routines |XF [k]|
PN −1
x[n] cos 2π(2n+1)k
3: Discrete Cosine Transform
• DFT Problems DCT: XC [k] = n=0 4N
• DCT +
m m
• Basis Functions
• DCT of sine wave
f= N f 6= N
• DCT Properties
• Energy Conservation
• Energy Compaction x[n] N=20 N=20
• Frame-based coding
f=0.10 f=0.08
• Lapped Transform +
• MDCT (Modified DCT)
• MDCT Basis Elements
• Summary
• MATLAB routines |XF [k]|
PN −1
x[n] cos 2π(2n+1)k
3: Discrete Cosine Transform
• DFT Problems DCT: XC [k] = n=0 4N
• DCT +
m m
• Basis Functions
• DCT of sine wave
f= N f 6= N
• DCT Properties
• Energy Conservation
• Energy Compaction x[n] N=20 N=20
• Frame-based coding
f=0.10 f=0.08
• Lapped Transform +
• MDCT (Modified DCT)
• MDCT Basis Elements
• Summary
• MATLAB routines |XF [k]|
|XC [k]|
PN −1
x[n] cos 2π(2n+1)k
3: Discrete Cosine Transform
• DFT Problems DCT: XC [k] = n=0 4N
• DCT +
m m
• Basis Functions
• DCT of sine wave
f= N f 6= N
• DCT Properties
• Energy Conservation
• Energy Compaction x[n] N=20 N=20
• Frame-based coding
f=0.10 f=0.08
• Lapped Transform +
• MDCT (Modified DCT)
• MDCT Basis Elements
• Summary
• MATLAB routines |XF [k]|
|XC [k]|
PN −1
x[n] cos 2π(2n+1)k
3: Discrete Cosine Transform
• DFT Problems Definition: X[k] = n=0 4N
• DCT +
• Basis Functions
• DCT of sine wave
• DCT Properties
• Energy Conservation
• Energy Compaction
• Frame-based coding
• Lapped Transform +
• MDCT (Modified DCT)
• MDCT Basis Elements
• Summary
• MATLAB routines
PN −1
x[n] cos 2π(2n+1)k
3: Discrete Cosine Transform
• DFT Problems Definition: X[k] = n=0 4N
• DCT +
• Basis Functions
• DCT of sine wave
• Linear: αx[n] + βy[n] → αX[k] + βY [k]
• DCT Properties
• Energy Conservation
• Energy Compaction
• Frame-based coding
• Lapped Transform +
• MDCT (Modified DCT)
• MDCT Basis Elements
• Summary
• MATLAB routines
PN −1
x[n] cos 2π(2n+1)k
3: Discrete Cosine Transform
• DFT Problems Definition: X[k] = n=0 4N
• DCT +
• Basis Functions
• DCT of sine wave
• Linear: αx[n] + βy[n] → αX[k] + βY [k]
• DCT Properties
• Energy Conservation • “Convolution←→Multiplication” property of DFT does not hold /
• Energy Compaction
• Frame-based coding
• Lapped Transform +
• MDCT (Modified DCT)
• MDCT Basis Elements
• Summary
• MATLAB routines
PN −1
x[n] cos 2π(2n+1)k
3: Discrete Cosine Transform
• DFT Problems Definition: X[k] = n=0 4N
• DCT +
• Basis Functions
• DCT of sine wave
• Linear: αx[n] + βy[n] → αX[k] + βY [k]
• DCT Properties
• Energy Conservation • “Convolution←→Multiplication” property of DFT does not hold /
• Energy Compaction
• Frame-based coding • Symmetric: X[−k] = X[k] since cos −αk = cos +αk
• Lapped Transform +
• MDCT (Modified DCT)
• MDCT Basis Elements
• Summary
• MATLAB routines
PN −1
x[n] cos 2π(2n+1)k
3: Discrete Cosine Transform
• DFT Problems Definition: X[k] = n=0 4N
• DCT +
• Basis Functions
• DCT of sine wave
• Linear: αx[n] + βy[n] → αX[k] + βY [k]
• DCT Properties
• Energy Conservation • “Convolution←→Multiplication” property of DFT does not hold /
• Energy Compaction
• Frame-based coding • Symmetric: X[−k] = X[k] since cos −αk = cos +αk
• Lapped Transform +
• MDCT (Modified DCT)
• MDCT Basis Elements • Anti-periodic: X[k + 2N ] = −X[k]
• Summary
• MATLAB routines
PN −1
x[n] cos 2π(2n+1)k
3: Discrete Cosine Transform
• DFT Problems Definition: X[k] = n=0 4N
• DCT +
• Basis Functions
• DCT of sine wave
• Linear: αx[n] + βy[n] → αX[k] + βY [k]
• DCT Properties
• Energy Conservation • “Convolution←→Multiplication” property of DFT does not hold /
• Energy Compaction
• Frame-based coding • Symmetric: X[−k] = X[k] since cos −αk = cos +αk
• Lapped Transform +
• MDCT (Modified DCT)
• MDCT Basis Elements • Anti-periodic: X[k + 2N ] = −X[k] because:
• Summary
• MATLAB routines
◦ 2π(2n + 1)(k + 2N ) = 2π(2n + 1)k + 8πN n + 4N π
◦ cos (θ + π) = − cos θ
PN −1
x[n] cos 2π(2n+1)k
3: Discrete Cosine Transform
• DFT Problems Definition: X[k] = n=0 4N
• DCT +
• Basis Functions
• DCT of sine wave
• Linear: αx[n] + βy[n] → αX[k] + βY [k]
• DCT Properties
• Energy Conservation • “Convolution←→Multiplication” property of DFT does not hold /
• Energy Compaction
• Frame-based coding • Symmetric: X[−k] = X[k] since cos −αk = cos +αk
• Lapped Transform +
• MDCT (Modified DCT)
• MDCT Basis Elements • Anti-periodic: X[k + 2N ] = −X[k] because:
• Summary
• MATLAB routines
◦ 2π(2n + 1)(k + 2N ) = 2π(2n + 1)k + 8πN n + 4N π
◦ cos (θ + π) = − cos θ
⇒X[N ] = 0 since X[N ] = X[−N ] = −X[−N + 2N ]
PN −1
x[n] cos 2π(2n+1)k
3: Discrete Cosine Transform
• DFT Problems Definition: X[k] = n=0 4N
• DCT +
• Basis Functions
• DCT of sine wave
• Linear: αx[n] + βy[n] → αX[k] + βY [k]
• DCT Properties
• Energy Conservation • “Convolution←→Multiplication” property of DFT does not hold /
• Energy Compaction
• Frame-based coding • Symmetric: X[−k] = X[k] since cos −αk = cos +αk
• Lapped Transform +
• MDCT (Modified DCT)
• MDCT Basis Elements • Anti-periodic: X[k + 2N ] = −X[k] because:
• Summary
• MATLAB routines
◦ 2π(2n + 1)(k + 2N ) = 2π(2n + 1)k + 8πN n + 4N π
◦ cos (θ + π) = − cos θ
⇒X[N ] = 0 since X[N ] = X[−N ] = −X[−N + 2N ]
• Periodic: X[k + 4N ] = −X[k + 2N ] = X[k]
2
|X[n]|2 )
P P
Orthogonal DCT (preserves energy: |x[n]| =
2
|X[n]|2 )
P P
Orthogonal DCT (preserves energy: |x[n]| =
q P
1 N −1 x[n] k=0
N n=0
ODCT: X[k] = q
2 PN −1 x[n] cos 2π(2n+1)k k =
6 0
N n=0 4N
2
|X[n]|2 )
P P
Orthogonal DCT (preserves energy: |x[n]| =
q P
1 N −1 x[n] k=0
N n=0
ODCT: X[k] = q
2 PN −1 x[n] cos 2π(2n+1)k k = 6 0
N n=0 4N
q q P
1 2 N −1 2π(2n+1)k
IODCT: x[n] = N X[0] + N k=1 X[k] cos 4N
0 N 2N 3N 4N
0 N 2N 3N 4N
MDCT: 2N → N coefficients
0 N 2N 3N 4N
0 N 2N 3N 4N
IMDCT
• MATLAB routines
→ y1 [N : 3N − 1] y1[n]
0 N 2N 3N 4N
IMDCT
• MATLAB routines
→ y1 [N : 3N − 1] y1[n]
y2[n]
x[2N : 4N − 1]
MDCT
→ X2 [2N : 3N − 1]
0 N 2N 3N 4N
IMDCT
• MATLAB routines
→ y1 [N : 3N − 1] y1[n]
y2[n]
x[2N : 4N − 1]
MDCT
→ X2 [2N : 3N − 1]
IMDCT
→ y2 [2N : 4N − 1] 0 N 2N 3N 4N
IMDCT
• MATLAB routines
→ y1 [N : 3N − 1] y1[n]
y2[n]
x[2N : 4N − 1] y[n]
MDCT
→ X2 [2N : 3N − 1]
IMDCT
→ y2 [2N : 4N − 1] 0 N 2N 3N 4N
IMDCT
• MATLAB routines
→ y1 [N : 3N − 1] y1[n]
y2[n]
x[2N : 4N − 1] y[n]
MDCT
→ X2 [2N : 3N − 1] y[n]-x[n] = error
IMDCT
→ y2 [2N : 4N − 1] 0 N 2N 3N 4N
P2N −1
MDCT: X[k] = n=0 x[n] cos 2π(2n+1+N
8N
)(2k+1)
0≤k<N
P2N −1
MDCT: X[k] = n=0 x[n] cos 2π(2n+1+N
8N
)(2k+1)
0≤k<N
P2N −1
MDCT: X[k] = n=0 x[n] cos 2π(2n+1+N
8N
)(2k+1)
0≤k<N
PN −1
IMDCT: y[n] = 1
N k=0 X[k] cos 2π(2n+1+N
8N
)(2k+1)
0 ≤ n < 2N
If x and X are column vectors, then X = Mx
2π(2n+1+N )(2k+1)
where M is an N × 2N matrix with mk,n = cos 8N .
P2N −1
MDCT: X[k] = n=0 x[n] cos 2π(2n+1+N
8N
)(2k+1)
0≤k<N
PN −1
IMDCT: y[n] = 1
N k=0 X[k] cos 2π(2n+1+N
8N
)(2k+1)
0 ≤ n < 2N
1
If x, X and y are column vectors, then X = Mx and y = N MT X
2π(2n+1+N )(2k+1)
where M is an N × 2N matrix with mk,n = cos 8N .
P2N −1
MDCT: X[k] = n=0 x[n] cos 2π(2n+1+N
8N
)(2k+1)
0≤k<N
PN −1
IMDCT: y[n] = 1
N k=0 X[k] cos 2π(2n+1+N
8N
)(2k+1)
0 ≤ n < 2N
1
If x, X and y are column vectors, then X = Mx and y = N MT X = N1 MT Mx
2π(2n+1+N )(2k+1)
where M is an N × 2N matrix with mk,n = cos 8N .
P2N −1
MDCT: X[k] = n=0 x[n] cos 2π(2n+1+N
8N
)(2k+1)
0≤k<N
PN −1
IMDCT: y[n] = 1
N k=0 X[k] cos 2π(2n+1+N
8N
)(2k+1)
0 ≤ n < 2N
1
If x, X and y are column vectors, then X = Mx and y = N MT X = N1 MT Mx
2π(2n+1+N )(2k+1)
where M is an N × 2N matrix with mk,n = cos 8N .
1
Quasi-Orthogonality: The 2N × 2N matrix, N MT M, is almost the identity:
1 ··· 0 0 ··· 1
I−J 0 . . .. . ..
1 T
NM M = 1
with I = .. . . . .. , J = .
2 0 I+J . . .
0 ··· 1 1 ··· 0
P2N −1
MDCT: X[k] = n=0 x[n] cos 2π(2n+1+N
8N
)(2k+1)
0≤k<N
PN −1
IMDCT: y[n] = 1
N k=0 X[k] cos 2π(2n+1+N
8N
)(2k+1)
0 ≤ n < 2N
1
If x, X and y are column vectors, then X = Mx and y = N MT X = N1 MT Mx
2π(2n+1+N )(2k+1)
where M is an N × 2N matrix with mk,n = cos 8N .
1
Quasi-Orthogonality: The 2N × 2N matrix, N MT M, is almost the identity:
1 ··· 0 0 ··· 1
I−J 0 . . .. . ..
1 T
NM M = 1
with I = .. . . . .. , J = .
2 0 I+J . . .
0 ··· 1 1 ··· 0
When two consective y frames are overlapped by N samples, the second half of the
first frame has thus been multiplied by 21 (I + J) and the first half of the second frame
by 21 (I − J). When these y frames are added together, the corresponding x samples
have been multiplied by 12 (I + J) + 12 (I − J) = I giving perfect reconstruction.
P2N −1
MDCT: X[k] = n=0 x[n] cos 2π(2n+1+N
8N
)(2k+1)
0≤k<N
PN −1
IMDCT: y[n] = 1
N k=0 X[k] cos 2π(2n+1+N
8N
)(2k+1)
0 ≤ n < 2N
1
If x, X and y are column vectors, then X = Mx and y = N MT X = N1 MT Mx
2π(2n+1+N )(2k+1)
where M is an N × 2N matrix with mk,n = cos 8N .
1
Quasi-Orthogonality: The 2N × 2N matrix, N MT M, is almost the identity:
1 ··· 0 0 ··· 1
I−J 0 . . .. . ..
1 T
NM M = 1
with I = .. . . . .. , J = .
2 0 I+J . . .
0 ··· 1 1 ··· 0
When two consective y frames are overlapped by N samples, the second half of the
first frame has thus been multiplied by 21 (I + J) and the first half of the second frame
by 21 (I − J). When these y frames are added together, the corresponding x samples
have been multiplied by 12 (I + J) + 12 (I − J) = I giving perfect reconstruction.
Normally the 2N -long x and y frames are windowed before the MDCT and again after
the IMDCT to avoid any discontinuities; if the window is symmetric and satisfies
w2 [i] + w2 [i + N ] = 2 the perfect reconstruction property is still true.
DSP and Digital Filters (2017-10120) Transforms: 3 – 11 / 14
MDCT Basis Elements
P2N −1
x[n] cos 2π(2n+1+N )(2k+1)
3: Discrete Cosine Transform
• DFT Problems MDCT: X[k] = n=0 8N 0≤k<N
• DCT +
PN −1
1
X[k] cos 2π(2n+1+N )(2k+1)
• Basis Functions
• DCT of sine wave IMDCT: y[n] = N k=0 8N 0 ≤ n < 2N
• DCT Properties
• Energy Conservation
• Energy Compaction
• Frame-based coding
• Lapped Transform +
• MDCT (Modified DCT)
• MDCT Basis Elements
• Summary
• MATLAB routines
P2N −1
x[n] cos 2π(2n+1+N )(2k+1)
3: Discrete Cosine Transform
• DFT Problems MDCT: X[k] = n=0 8N 0≤k<N
• DCT +
PN −1
1
X[k] cos 2π(2n+1+N )(2k+1)
• Basis Functions
• DCT of sine wave IMDCT: y[n] = N k=0 8N 0 ≤ n < 2N
• DCT Properties
1
• Energy Conservation In vector notation: X = Mx and y = N MT X = N1 MT Mx
• Energy Compaction
• Frame-based coding
• Lapped Transform +
• MDCT (Modified DCT)
• MDCT Basis Elements
• Summary
• MATLAB routines
P2N −1
x[n] cos 2π(2n+1+N )(2k+1)
3: Discrete Cosine Transform
• DFT Problems MDCT: X[k] = n=0 8N 0≤k<N
• DCT +
PN −1
1
X[k] cos 2π(2n+1+N )(2k+1)
• Basis Functions
• DCT of sine wave IMDCT: y[n] = N k=0 8N 0 ≤ n < 2N
• DCT Properties
1
• Energy Conservation In vector notation: X = Mx and y = N MT X = N1 MT Mx
• Energy Compaction
• Frame-based coding
• Lapped Transform + The rows of M form the
• MDCT (Modified DCT)
• MDCT Basis Elements
MDCT basis elements.
• Summary
• MATLAB routines
P2N −1
x[n] cos 2π(2n+1+N )(2k+1)
3: Discrete Cosine Transform
• DFT Problems MDCT: X[k] = n=0 8N 0≤k<N
• DCT +
PN −1
1
X[k] cos 2π(2n+1+N )(2k+1)
• Basis Functions
• DCT of sine wave IMDCT: y[n] = N k=0 8N 0 ≤ n < 2N
• DCT Properties
1
• Energy Conservation In vector notation: X = Mx and y = N MT X = N1 MT Mx
• Energy Compaction
• Frame-based coding
• Lapped Transform + The rows of M form the
• MDCT (Modified DCT)
• MDCT Basis Elements
MDCT basis elements.
• Summary
• MATLAB routines
Example (N = 4):
M=
0.56 0.20 −0.20 −0.56 −0.83 −0.98 −0.98 −0.83
−0.98
−0.56 0.56 0.98 0.20 −0.83 −0.83 0.20
0.20 0.83 −0.83 −0.20 0.98 −0.56 −0.56 0.98
0.83 −0.98 0.98 −0.83 0.56 −0.20 −0.20 0.56
P2N −1
x[n] cos 2π(2n+1+N )(2k+1)
3: Discrete Cosine Transform
• DFT Problems MDCT: X[k] = n=0 8N 0≤k<N
• DCT +
PN −1
1
X[k] cos 2π(2n+1+N )(2k+1)
• Basis Functions
• DCT of sine wave IMDCT: y[n] = N k=0 8N 0 ≤ n < 2N
• DCT Properties
1
• Energy Conservation In vector notation: X = Mx and y = N MT X = N1 MT Mx
• Energy Compaction
• Frame-based coding
• Lapped Transform + The rows of M form the
• MDCT (Modified DCT)
• MDCT Basis Elements
MDCT basis elements.
• Summary
• MATLAB routines
Example (N = 4):
M=
0.56 0.20 −0.20 −0.56 −0.83 −0.98 −0.98 −0.83
−0.98
−0.56 0.56 0.98 0.20 −0.83 −0.83 0.20
0.20 0.83 −0.83 −0.20 0.98 −0.56 −0.56 0.98
0.83 −0.98 0.98 −0.83 0.56 −0.20 −0.20 0.56
P2N −1
x[n] cos 2π(2n+1+N )(2k+1)
3: Discrete Cosine Transform
• DFT Problems MDCT: X[k] = n=0 8N 0≤k<N
• DCT +
PN −1
1
X[k] cos 2π(2n+1+N )(2k+1)
• Basis Functions
• DCT of sine wave IMDCT: y[n] = N k=0 8N 0 ≤ n < 2N
• DCT Properties
1
• Energy Conservation In vector notation: X = Mx and y = N MT X = N1 MT Mx
• Energy Compaction
• Frame-based coding
• Lapped Transform + The rows of M form the
• MDCT (Modified DCT)
• MDCT Basis Elements
MDCT basis elements.
• Summary
• MATLAB routines
Example (N = 4):
M=
0.56 0.20 −0.20 −0.56 −0.83 −0.98 −0.98 −0.83
−0.98
−0.56 0.56 0.98 0.20 −0.83 −0.83 0.20
0.20 0.83 −0.83 −0.20 0.98 −0.56 −0.56 0.98
0.83 −0.98 0.98 −0.83 0.56 −0.20 −0.20 0.56
The basis frequencies are {0.5, 1.5, 2.5, 3.5} times the fundamental.