Page Menu
Home
c4science
Search
Configure Global Search
Log In
Files
F104870633
4_oversampling.tex
No One
Temporary
Actions
Download File
Edit File
Delete File
View Transforms
Subscribe
Mute Notifications
Award Token
Subscribers
None
File Metadata
Details
File Info
Storage
Attached
Created
Thu, Mar 13, 00:49
Size
8 KB
Mime Type
text/x-tex
Expires
Sat, Mar 15, 00:49 (1 d, 23 h)
Engine
blob
Format
Raw Data
Handle
24869591
Attached To
R2653 epfl
4_oversampling.tex
View Options
\documentclass
[aspectratio=169]
{
beamer
}
\def\stylepath
{
../styles
}
\usepackage
{
\stylepath
/com303
}
\begin
{
document
}
\begin
{
frame
}
\frametitle
{
Oversampling
}
\begin
{
itemize
}
\item
oversampled D/A
\begin
{
itemize
}
\item
use cheaper hardware for interpolation
\end
{
itemize
}
\vspace
{
2em
}
\item
oversampled A/D
\begin
{
itemize
}
\item
reduce quantization error
\end
{
itemize
}
\end
{
itemize
}
\end
{
frame
}
\begin
{
frame
}
\frametitle
{
From Discrete to Continuous Time
}
\[
x
[
n
]
\longrightarrow
x
(
t
)
\]
\setbeamercovered
{
invisible
}
\begin
{
table
}
\centering
\begin
{
tabular
}{
>
{
\centering\arraybackslash
}
m
{
0.45
\paperwidth
}
m
{
0.001
\paperwidth
}
>
{
\centering\arraybackslash
}
m
{
0.5
\paperwidth
}}
{
\color
{
darkred
}
ideally
}
&
&
{
\color
{
darkred
}
in practice
}
\\
\\
{
$
\displaystyle
x_c
(
t
)
=
\sum
_{n
=
-
\infty
}^{
\infty
}x
[
n
]
\,\sinc\left
(
\frac
{t
-
nT_s}{T_s}
\right
)
$
}
&
&
{
$
\displaystyle
x_c
(
t
)
=
\sum
_{n
=
-
\infty
}^{
\infty
}x
[
n
]
\,
i
\left
(
\frac
{t
-
nT_s}{T_s}
\right
)
$
}
\\
\\
{
$
\displaystyle
X_c
(
f
)
=
\frac
{
1
}{F_s}X
(
e^{j
2
\pi
f
/
F_s}
)
\rect\left
(
\frac
{f}{F_s}
\right
)
$
}
&
&
{
$
\displaystyle
X_c
(
f
)
=
\frac
{
1
}{F_s}
\,
X
(
e^{j
2
\pi
f
/
F_s}
)
\,
I
\left
(
\frac
{f}{F_s}
\right
)
$
}
\end
{
tabular
}
\end
{
table
}
\end
{
frame
}
\begin
{
frame
}
\frametitle
{
Practical interpolation
}
\centering
The cheapest and most common interpolator is the zero-order hold:
\[
i_
0
(
t
)
=
\rect
(
t
)
\]
\[
I_
0
(
f
)
=
\sinc
(
f
)
\]
\vspace
{
2em
}
CT spectrum of interpolated signal:
\[
X
(
f
)
=
\frac
{
1
}{F_s}
\,
X
(
e^{j
2
\pi
f
/
F_s}
)
\,
\sinc\left
(
\frac
{f}{F_s}
\right
)
\]
\end
{
frame
}
\begin
{
frame
}
\frametitle
{
ZOH interpolation
}
\begin
{
center
}
\begin
{
figure
}
\only
<1-|handout:1->
{
\begin
{
dspPlot
}
[height=2.1cm,xtype=freq,yticks=1,ylabel=
{
$
X
(
e^{j
\omega
}
)
$
}
]
{
-1,1
}{
0,1.2
}
\moocStyle
\psset
{
linecolor=blue!80
}
\dspFunc
{
x
\dspPorkpie
{
0
}{
0.95
}}
\end
{
dspPlot
}}
\only
<2-|handout:2->
{
\begin
{
dspPlot
}
[height=2.1cm,xtype=freq,xticks=custom,yticks=1,]
{
-6,6
}{
0,1.2
}
\moocStyle
\dspCustomTicks
[axis=x]
{
0 0 1
$
F_s
/
2
$
2
$
F_s
$
4
$
2
F_s
$
6
$
3
F_s
$
}
\only
<2-3|handout:2-3>
{
\dspFunc
{
x
\dspPeriodize
\dspPorkpie
{
0
}{
0.95
}}
\dspText
(0,-.6)
{
$
X
(
e^{j
2
\pi
f
/
F_s}
)
$
}
}
\only
<3|handout:3>
{
\dspFunc
[linecolor=green!80,linestyle=dashed]
{
x
\dspSinc
{
0
}{
2
}
abs
}
}
\only
<4-|handout:4->
{
\dspFunc
{
x
\dspPeriodize
\dspPorkpie
{
0
}{
0.95
}
x
\dspSinc
{
0
}{
2
}
abs mul
}
\dspText
(0,-.6)
{
$
X
(
f
)
\neq
X_c
(
f
)
$
}
}
\end
{
dspPlot
}}
\end
{
figure
}
\end
{
center
}
\end
{
frame
}
\begin
{
frame
}
\frametitle
{
ZOH interpolation
}
\begin
{
itemize
}
\item
we need to remove the out-of-band leakage
\item
we need to undo the in-band distortion in the analog domain
\item
i.e. we need an analog filter with frequency response
$
H_c
(
f
)
=
\rect
(
f
/
F_s
)/
\sinc
(
f
/
F_s
)
$
\end
{
itemize
}
\centering
\vspace
{
1em
}
\begin
{
dspPlot
}
[height=2.1cm,xtype=freq,xticks=custom,yticks=1,]
{
-6,6
}{
0,1.2
}
\moocStyle
\dspCustomTicks
[axis=x]
{
0 0 1
$
F_s
/
2
$
2
$
F_s
$
4
$
2
F_s
$
6
$
3
F_s
$
}
\dspFunc
{
x
\dspPeriodize
\dspPorkpie
{
0
}{
0.95
}
x
\dspSinc
{
0
}{
2
}
abs mul
}
\dspFunc
[linecolor=orange!80,linestyle=dashed]
{
x abs 1 ge
{
0
}
{
1 x
\dspSinc
{
0
}{
2
}
abs div 0.7 mul
}
ifelse
}
\end
{
dspPlot
}
such an analog filter is exceedingly complicated and costly
\end
{
frame
}
\begin
{
frame
}
\frametitle
{
Oversampled D/A
}
\center
\begin
{
dspBlocks
}{
1.2
}{
0.3
}
$
x
[
n
]
$
~
&
\BDupsmp
{
$
N
$
}
&
\BDfilter
{
$
H
(
e^{j
\omega
}
)
$
}
&
\BDfilter
{
$
I_
0
(
f
)
$
}
&
$
x
(
t
)
$
\\
&
&
&
$
F_o
=
NF_s
$
\end
{
dspBlocks
}
\psset
{
linewidth=1pt
}
\ncline
{
-
}{
1,1
}{
1,2
}
\ncline
{
->
}{
1,2
}{
1,3
}
\ncline
{
->
}{
1,3
}{
1,4
}
\taput
{
$
x_o
[
n
]
$
}
\ncline
{
->
}{
1,4
}{
1,5
}
\ncline
{
->
}{
1,5
}{
1,6
}
\vspace
{
2em
}
\begin
{
itemize
}
\item
$
H
(
e^{j
\omega
}
)
=
\displaystyle
N
\,\frac
{
\rect\left
(
\frac
{
\omega
}{
2
\pi
/
N}
\right
)
}{
\sinc\left
(
\frac
{
\omega
}{
2
\pi
}
\right
)
}
$
\item
rect is the lowpass for the upsampler
\item
$
1
/
\sinc
$
pre-compensates for the ZOH's in-band distortion
\item
filter is discrete-time, so ``easy'' and cheap
\end
{
itemize
}
\end
{
frame
}
\begin
{
frame
}
\frametitle
{
Oversampled D/A (
$
N
=
2
$
)
}
\begin
{
center
}
\begin
{
figure
}
\only
<1-|handout:1->
{
\begin
{
dspPlot
}
[height=2.1cm,xtype=freq,yticks=1,ylabel=
%
\only
<1|handout:1>
{{
$
X
(
e^{j
\omega
}
)
$
}}
%
\only
<2-3|handout:2-3>
{{
$
X_{
2
U}
(
e^{j
\omega
}
)
$
}}
%
\only
<4|handout:4>
{{
$
X_o
(
e^{j
\omega
}
)
$
}}
%
]
{
-1,1
}{
0,1.2
}
\moocStyle
\psset
{
linecolor=blue!80
}
\only
<1|handout:1>
{
\dspFunc
{
x
\dspPorkpie
{
0
}{
0.95
}}}
\only
<2-3|handout:2-3>
{
\dspFunc
[linecolor=lightgray]
{
x 2 mul
\dspPeriodize
\dspPorkpie
{
0
}{
0.95
}}
\dspFunc
{
x 2 mul
\dspPorkpie
{
0
}{
0.95
}}}
\only
<3|handout:3>
{
\dspFunc
[linecolor=green!80,linestyle=dashed]
{
x abs 0.5 ge
{
0
}
{
1 x
\dspSinc
{
0
}{
1
}
abs div 0.7 mul
}
ifelse
}
}
\only
<4-|handout:4->
{
\dspFunc
{
x abs 0.5 ge
{
0
}
{
x 2 mul
\dspPorkpie
{
0
}{
0.95
}
x
\dspSinc
{
0
}{
1
}
abs div
}
ifelse
}
}
\end
{
dspPlot
}}
\end
{
figure
}
\end
{
center
}
\end
{
frame
}
\begin
{
frame
}
\frametitle
{
Oversampled D/A
}
interpolate
$
x_o
[
n
]
$
with
$
F_o
=
NF_s
$
:
\begin
{
align*
}
X
_
o(f)
&
=
\frac
{
1
}{
F
_
o
}
\,
X
_
o(e
^{
j2
\pi
f / F
_
o
}
)
\,
I
_
0
\left
(
\frac
{
f
}{
F
_
o
}
\right
)
\\
\pause
&
=
\frac
{
1
}{
F
_
o
}
\,
\left
[ X(e^{j\omega N})\, H(e^{j\omega}) \right]
_{
\omega
= 2
\pi
f/F
_
o
}
\,
\sinc\left
(
\frac
{
f
}{
F
_
o
}
\right
)
\\
\pause
&
=
\frac
{
N
}{
F
_
o
}
\,
\left
[ X(e^{j\omega N})\, \rect\left(\frac{\omega N}{2\pi}\right)/\sinc\left(\frac{\omega}{2\pi}\right) \right]
_{
\omega
= 2
\pi
f/F
_
o
}
\,
\sinc\left
(
\frac
{
f
}{
F
_
o
}
\right
)
\\
\pause
&
=
\frac
{
1
}{
F
_
s
}
\,
X(e
^{
j2
\pi
f/F
_
s
}
)
\,
\rect\left
(
\frac
{
f
}{
F
_
s
}
\right
) /
\sinc
(f/F
_
o)
\cdot
\sinc\left
(
\frac
{
f
}{
F
_
o
}
\right
)
\\
\pause
&
= X
_
c(f)
\quad
\mbox
{
for
$
|f| < F_s
/
2
$
}
\end
{
align*
}
\end
{
frame
}
\begin
{
frame
}
\frametitle
{
Oversampled D/A, using a ZOH (
$
N
=
2
$
)
}
\begin
{
center
}
\begin
{
figure
}
\only
<1->
{
\begin
{
dspPlot
}
[height=2.1cm,xtype=freq,yticks=1,ylabel=
%
\only
<1-2|handout:1-2>
{{
$
X_{
2
\uparrow
}
(
e^{j
\omega
}
)
$
}}
%
\only
<3-|handout:3->
{{
$
X_{o}
(
e^{j
\omega
}
)
$
}}
%
]
{
-1,1
}{
0,1.2
}
\smallStems
\psset
{
linecolor=blue
}
\only
<1-2|handout:1-2>
{
\dspFunc
[linecolor=lightgray]
{
x 2 mul
\dspPeriodize
\dspPorkpie
{
0
}{
0.95
}}
\dspFunc
{
x 2 mul
\dspPorkpie
{
0
}{
0.95
}}}
\only
<2|handout:2>
{
\dspFunc
[linecolor=darkgreen!60,linestyle=dashed]
{
x abs 0.5 ge
{
0
}
{
1 x
\dspSinc
{
0
}{
1
}
abs div 0.7 mul
}
ifelse
}
}
\only
<3-|handout:3->
{
\dspFunc
{
x abs 0.5 ge
{
0
}
{
x 2 mul
\dspPorkpie
{
0
}{
0.95
}
x
\dspSinc
{
0
}{
1
}
abs div
}
ifelse
}
}
\end
{
dspPlot
}}
\only
<4-|handout:4->
{
\begin
{
dspPlot
}
[height=2.1cm,xtype=freq,xticks=custom,yticks=1,ylabel=
{
$
X
\only
<
4
|handout
4
>{_o}
(
f
)
$
}
]
{
-6,6
}{
0,1.2
}
\smallStems
\moocStyle
\dspCustomTicks
[axis=x]
{
0 0 1
$
F_s
/
2
$
2
$
F_o
/
2
$
4
$
F_o
$
}
\only
<4|handout:4>
{
\dspFunc
{
x
\dspPeriod
{
2
}
\dspPorkpie
{
0
}{
0.95
}}
\dspFunc
[linecolor=green,linestyle=dashed]
{
x
\dspSinc
{
0
}{
4
}
abs
}
}
\only
<5-|handout:5->
{
\dspFunc
{
x
\dspPeriod
{
2
}
\dspPorkpie
{
0
}{
0.95
}
x
\dspSinc
{
0
}{
4
}
abs mul
}
}
\end
{
dspPlot
}}
\end
{
figure
}
\end
{
center
}
\end
{
frame
}
\begin
{
frame
}
\frametitle
{
ZOH interpolation
}
\centering
we still have some out-of-band leakage but, because of oversampling, they can be eliminated with a cheap analog lowpass with a wide transition band
\vspace
{
1em
}
\begin
{
dspPlot
}
[height=2.1cm,xtype=freq,xticks=custom,yticks=1,ylabel=
{
$
X
\only
<
3
|handout
3
>{_c}
(
f
)
$
}
]
{
-6,6
}{
0,1.2
}
\smallStems
\moocStyle
\dspCustomTicks
[axis=x]
{
0 0 1
$
F_s
/
2
$
2
$
F_o
/
2
$
4
$
F_o
$
}
\only
<1-2|handout:1-2>
{
\dspFunc
{
x
\dspPeriod
{
2
}
\dspPorkpie
{
0
}{
0.95
}
x
\dspSinc
{
0
}{
4
}
abs mul
}
}
\only
<2|handout:2>
{
\dspFunc
[linecolor=orange,linestyle=dashed]
{
x 0.8 mul 4 exp 1 add 1 exch div
}
}
\only
<3|handout:3>
{
\dspFunc
{
x
\dspPeriod
{
2
}
\dspPorkpie
{
0
}{
0.95
}
x
\dspSinc
{
0
}{
4
}
abs mul x 0.8 mul 4 exp 1 add 1 exch div mul
}
}
\end
{
dspPlot
}
\end
{
frame
}
\begin
{
frame
}
\frametitle
{
Oversampled D/A
}
\
key points:
\begin
{
itemize
}
\item
we can pre-compensate the in-band distortion in the digital domain
\item
we can interpolate with a cheap ZOH
\item
the higher the upsampling, the cheaper the analog lowpass needed to eliminate out-of-band distortion
\item
only price: higher D/A rate
\end
{
itemize
}
\end
{
frame
}
\end
{
document
}
Event Timeline
Log In to Comment