Page Menu
Home
c4science
Search
Configure Global Search
Log In
Files
F104925459
2_receiver.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, 10:12
Size
19 KB
Mime Type
text/x-tex
Expires
Sat, Mar 15, 10:12 (2 d)
Engine
blob
Format
Raw Data
Handle
24880738
Attached To
R2653 epfl
2_receiver.tex
View Options
\documentclass
[aspectratio=169]
{
beamer
}
\def\stylepath
{
../styles
}
\usepackage
{
\stylepath
/com303
}
\begin
{
document
}
\begin
{
frame
}
\frametitle
{
QAM transmitter, final design
}
\begin
{
figure
}
\psset
{
linearc=0.2
}
\begin
{
dspBlocks
}{
1.0
}{
0.8
}
\parbox
{
4ex
}{
\small
\tt
\bf
..01100
\\
01010...
}
\hspace
{
5ex
}
&
\BDfilter
{
Scrambler
}
&
\BDfilter
{
Mapper
}
&
[name=A,mnode=circle]
$
K
\uparrow
$
\\
&
&
\ncline
{
->
}{
1,1
}{
1,2
}
\ncline
{
->
}{
1,2
}{
1,3
}
\ncline
{
->
}{
1,3
}{
1,4
}^{
~~~~
$
a
[
n
]
$
}
\end
{
dspBlocks
}
\begin
{
dspBlocks
}{
1.2
}{
0.4
}
&
[name=B]
\BDlowpass
[0.5em]
&
\BDmul
&
\BDfilter
{
Re
}
&
\BDfilter
{
D/A
}
&
$
s
(
t
)
$
\\
&
&
$
e^{j
\omega
_c n}
$
\ncline
{
->
}{
1,2
}{
1,3
}^{
$
b
[
n
]
$
}
\ncline
{
->
}{
1,3
}{
1,4
}^{
$
c
[
n
]
$
}
\ncline
{
->
}{
1,4
}{
1,5
}^{
$
s
[
n
]
$
}
\ncline
{
->
}{
1,5
}{
1,6
}
\ncline
{
->
}{
1,6
}{
1,7
}
\ncline
{
->
}{
2,3
}{
1,3
}
\end
{
dspBlocks
}
\ncbarr
[angleA=0,arm=1cm,linewidth=1.2pt]
{
A
}{
B
}
\end
{
figure
}
\end
{
frame
}
\begin
{
frame
}
\frametitle
{
It's a dirty job...
}
but a receiver has to do it:
\begin
{
itemize
}
\item
<1-> propagation delay
\only
<5->
{
$
\rightarrow
$
{
\color
{
blue!70
}
handshake and delay estimation
}}
\item
<2-> channel effects
\only
<6->
{
$
\rightarrow
$
{
\color
{
blue!70
}
adaptive equalization
}}
\item
<3-> interference
\only
<7->
{
$
\rightarrow
$
{
\color
{
blue!70
}
line probing
}}
\item
<4-> clock drift
\only
<8->
{
$
\rightarrow
$
{
\color
{
blue!70
}
timing recovery
}}
%
\end
{
itemize
}
\end
{
frame
}
\begin
{
frame
}
\frametitle
{
A blast from the past
}
\intro
{
play audio from a V.32 handshake
}
\begin
{
center
}
\movie
[inlinesound]
{
\fbox
{
\small
{
Play
}}}{
14400.wav
}
\end
{
center
}
\vspace
{
1em
}
\only
<2->
{
\begin
{
itemize
}
\item
a sound familiar to anyone who's used a modem or a fax machine
\item
what's going on here?
\end
{
itemize
}}
\end
{
frame
}
\begin
{
frame
}
\frametitle
{
Remember the (simplified) receiver
}
\begin
{
figure
}
[tp]
\begin
{
dspBlocks
}{
0.8
}{
0
}
&
&
&
[name=A1]
\BDfilter
{
$
H
(
z
)
$
}
&
&
$
e^{
-
j
\omega
_c n}
$
\\
$
\hat
{s}
(
t
)
$
~~
&
\BDsampler
&
[name=A,mnode=dot,linewidth=2pt]
&
&
[name=B,mnode=circle] +
&
\BDmul
&
[name=C]
\\
\\
\\
\\
\\
%
\psset
{
arrows=->
}
\ncangle
[angleA=90,angleB=180,linewidth=\BDwidth]
{
A
}{
A1
}
\ncangle
[angleA=0,angleB=90,linewidth=\BDwidth]
{
A1
}{
B
}^{
~~~~
$
j
$
}
\ncbar
[angleA=-90,angleB=-90,linewidth=\BDwidth]
{
A
}{
B
}
%
\ncline
{
-
}{
2,1
}{
2,2
}
\ncline
{
-
}{
2,2
}{
2,3
}^{
~~~~~~
$
\hat
{s}
[
n
]
$
}
\ncline
{
2,5
}{
2,6
}^{
$
\hat
{c}
[
n
]
$
}
\ncline
{
-
}{
2,6
}{
2,7
}^{
~~~
$
\only
<
2
>{
\color
{red}}
\hat
{b}
[
n
]
$
}
\ncline
{
1,6
}{
2,6
}
\end
{
dspBlocks
}
\vspace
{
7ex
}
\begin
{
dspBlocks
}{
1.2
}{
0
}
[name=D,mnode=circle]
$
K
\downarrow
$
&
\BDfilter
{
Slicer
}
&
\BDfilter
{
Descrambler
}
&
\hspace
{
1ex
}
\parbox
{
4ex
}{
\small
\tt
\bf
..01100
\\
01010...
}
\psset
{
arrows=->
}
\ncline
{
1,1
}{
1,2
}^{
$
\hat
{a}
[
n
]
$
}
\ncline
{
1,2
}{
1,3
}
\ncline
{
1,3
}{
1,4
}
\end
{
dspBlocks
}
\ncbarr
[angleA=0,linewidth=1.2pt,linearc=0.2]
{
C
}{
D
}
\end
{
figure
}
\end
{
frame
}
\begin
{
frame
}
\frametitle
{
Pilot tones
}
\centering
if
$
\hat
{s}
[
n
]
=
\cos
((
\omega
_c
+
\omega
_
0
)
n
)
$
then
$
\hat
{b}
[
n
]
=
e^{j
\omega
_
0
n}
$
\end
{
frame
}
\begin
{
frame
}
\frametitle
{
Visually, in slow motion, plotting
$
b
[
n
]
$
}
\begin
{
center
}
\movie
[height=6.5cm,width=7.5cm,poster]
{}{
14400slowaudio.avi
}
\end
{
center
}
\end
{
frame
}
\begin
{
frame
}
\frametitle
{
The main problems
}
\begin
{
figure
}
\begin
{
dspBlocks
}{
1
}{
0.4
}
$
s
[
n
]
~
$
&
\BDfilter
{
D/A
}
&
\BDfilter
{
$
D
(
f
)
$
}
&
\BDadd
&
\BDfilter
{
A/D
}
&
$
~
\hat
{s}
[
n
]
$
\\
&
$
T_s
$
&
&
AWGN
&
$
T'_s
$
&
%
\psset
{
arrows=->
}
\ncline
{
1,1
}{
1,2
}
\ncline
{
1,2
}{
1,3
}^{
$
s
(
t
)
~~
$
}
\ncline
{
1,3
}{
1,4
}
\ncline
{
1,4
}{
1,5
}^{
$
\hat
{s}
(
t
)
$
~~~
}
\ncline
{
1,5
}{
1,6
}
\ncline
{
2,4
}{
1,4
}
\end
{
dspBlocks
}
\end
{
figure
}
\begin
{
itemize
}
\item
noise
\item
propagation delay
\item
channel distortion
$
D
(
f
)
$
\item
different clocks (
$
T'_s
\neq
T_s
$
)
\end
{
itemize
}
\end
{
frame
}
\begin
{
frame
}
\frametitle
{
Delay compensation
}
\intro
{
it's important to compensate for delay in communication systems since signal onsets are important for detection
}
\centering
Assume the channel is a simple delay:
$
\hat
{s}
(
t
)=
s
(
t
-
d
)
\Rightarrow
D
(
f
)
=
e^{
-
j
2
\pi
f d}
$
\vspace
{
1em
}
\begin
{
itemize
}
[<+->]
\item
channel introduces a delay of
$
d
$
seconds
\item
we can write
$
d
=
(
L
+
\tau
)
T_s
$
with
$
L
\in\mathbb
{N}
$
and
$
|
\tau
|<
1
/
2
$
\item
$
L
$
is called the
{
\em
bulk delay
}
\item
$
\tau
$
is the fractional delay
\end
{
itemize
}
\end
{
frame
}
\begin
{
frame
}
\frametitle
{
Estimating the bulk delay (
$
T_s
=
1
$
)
}
\begin
{
center
}
\begin
{
figure
}
\begin
{
dspPlot
}
[yticks=1,xticks=100,sidegap=0]
{
-4.5,7.5
}{
-0.8,1.2
}
\moocStyle
\SpecialCoor
\only
<1>
{
%
\dspSignal
{
x 0 eq
{
1
}
{
0
}
ifelse
}
\dspText
(1,1.4)
{
$
s
[
n
]
$
}}
\only
<2>
{
%
\dspSignal
[linecolor=lightgray]
{
x 0 eq
{
1
}
{
0
}
ifelse
}
\dspFunc
{
x
\dspSinc
{
0
}{
1
}}
\dspText
(1,1.4)
{
$
s
(
t
)
$
}}
\only
<3>
{
\dspSignal
[linecolor=lightgray]
{
x 0 eq
{
1
}
{
0
}
ifelse
}
\dspFunc
[linecolor=lightgray]
{
x
\dspSinc
{
0
}{
1
}}
\dspFunc
[linecolor=blue!60]
{
x
\dspSinc
{
2.3
}{
1
}}
\dspText
(1,1.4)
{
$
\hat
{s}
(
t
)
$
}}
\only
<4>
{
%
\dspSignal
[linecolor=lightgray]
{
x 0 eq
{
1
}
{
0
}
ifelse
}
\dspFunc
[linecolor=lightgray]
{
x
\dspSinc
{
0
}{
1
}}
\dspFunc
[linecolor=lightgray]
{
x
\dspSinc
{
2.3
}{
1
}}
\dspSignal
[linecolor=blue!60]
{
x
\dspSinc
{
2.3
}{
1
}}
\dspCustomTicks
[axis=x]
{
2.3
{
}
2
$
L
$
}
\dspText
(4,-.6)
{{
\pnode
{
A
}
$
L
+
\tau
$
}}
\pnode
(2.3,-.1)
{
B
}
\ncarc
[linewidth=0.1pt,angleA=180,angleB=-90]
{
->
}{
A
}{
B
}
\dspText
(1,1.4)
{
$
\hat
{s}
[
n
]
$
}}
\end
{
dspPlot
}
\end
{
figure
}
\end
{
center
}
\end
{
frame
}
\begin
{
frame
}
\frametitle
{
Estimating the fractional delay
}
\begin
{
itemize
}
[<+->]
\item
transmit
$
b
[
n
]
=
e^{j
\omega
_
0
n}
$
(i.e.
$
s
[
n
]
=
\cos
((
\omega
_c
+
\omega
_
0
)
n
)
$
)
\item
receive
$
\hat
{s}
[
n
]
=
\cos
((
\omega
_c
+
\omega
_
0
)(
n
-
L
-
\tau
))
$
\item
after demodulation and bulk delay offset:
\[
\hat
{b}
[
n
]
=
e^{j
\omega
_
0
(
n
-
\tau
)
}
\]
\item
multiply by known frequency
\[
\hat
{b}
[
n
]
\,
e^{
-
j
\omega
_
0
n}
=
e^{
-
j
\omega
_
0
\tau
}
\]
\end
{
itemize
}
\end
{
frame
}
\begin
{
frame
}
\frametitle
{
Compensating for the fractional delay
}
\begin
{
itemize
}
[<+->]
\item
$
\hat
{s}
[
n
]
=
s
((
n
-
\tau
)
T_s
)
$
(after offsetting bulk delay)
\item
we need to compute subsample values
\item
in theory, compensate with a sinc fractional delay
$
h
[
n
]
=
\sinc
(
n
+
\tau
)
$
\item
in practice, use local Lagrange approximation
\begin
{
align*
}
x
_
L(n; t)
&
=
\sum
_{
k=-N
}^{
N
}
x[n + k] L
_
k
^{
(N)
}
(t)
\\
L
^{
(N)
}_
k(t)
&
=
\mathop
{
\prod
_{
i = -N
}}_{
i
\neq
n
}^{
N
}
\frac
{
t - i
}{
k - i
}
\qquad\qquad
k = -N,
\ldots
, N
\end
{
align*
}
\end
{
itemize
}
\end
{
frame
}
%% finite-length signal, 3 taps
\def\ta
{
.5
}
\def\tb
{
2
}
\def\tc
{
-1
}
%% the tap plotting string
\def\taps
{
-1
\ta
0
\tb
1
\tc
}
\def\plotTaps
{
\dspTaps
[linecolor=blue!70]
{
\taps
}}
%% Lagrange polynomials
\def\lpa
{
%
dup -1 div exch
%
-1 add -2 div
%
mul
}
\def\lpb
{
%
dup 1 add -1 div exch
%
-1 add
%
mul
}
\def\lpc
{
%
dup exch
%
1 add 2 div
%
mul
}
\def\lagInterp
{
%
dup
\lpa
\ta
mul exch
%
dup
\lpb
\tb
mul exch
%
\lpc
\tc
mul
%
add add
}
\def\interpolant
#1#2#3#4
{
%
\FPupn\n
{
#1 1 + 0 trunc
}
%
\only
<#1>
{
%
\dspTaps
{
#3
\csname
t#4
\endcsname
}
%
\dspFunc
[linewidth=0.5pt]
{
x
\csname
lp#4
\endcsname
\csname
t#4
\endcsname
mul
}}
%
\only
<
\n
-#2>
{
\dspFunc
[linewidth=0.5pt,linecolor=blue!50]
{
x
\csname
lp#4
\endcsname
\csname
t#4
\endcsname
mul
}}}
%
\def\sample
#1#2#3
{
%
\psline
[linewidth=\dspStemWidth,#1]
(#2,0)(! #2 dup #3)
\psdot
[dotstyle=o,dotsize=\dspDotSize,#1]
(! #2 dup #3)
}
\def\LagPoly
#1#2#3#4
{
\only
<#1->
{
%
\dspFunc
[linecolor=#2]
{
x
\csname
lp#3
\endcsname
}
%
\dspText
(0,1.3)
{
\color
{
#2
}
$
L_{#
4
}^{
1
}
(
t
)
$
}}}
\begin
{
frame
}
\frametitle
{
Compensating for the fractional delay: Lagrange interpolation (
$
N
=
1
$
)
}
\begin
{
center
}
\begin
{
figure
}
\begin
{
dspPlot
}
[sidegap=0,xticks=custom]
{
-1.5,1.5
}{
-2,3
}
\moocStyle
%
\plotTaps
%
\only
<2-6>
{
\psdot
[dotstyle=x,linecolor=green!70]
(0.3,0)
}
%
\begin
{
dspClip
}
\interpolant
{
3
}{
6
}{
-1
}{
a
}
%
\interpolant
{
4
}{
6
}{
0
}{
b
}
%
\interpolant
{
5
}{
6
}{
1
}{
c
}
%
\only
<6->
{
\dspFunc
[linewidth=2pt,xmin=-2,xmax=2]
{
x
\lagInterp
}}
%
\only
<7->
{
\sample
{
linecolor=green!70
}{
0.3
}{
\lagInterp
}}
%
\end
{
dspClip
}
\dspCustomTicks
[axis=x]
{
-1
$
n
-
1
$
0
$
n
$
1
$
n
+
1
$
}
%
\only
<2->
{
\dspCustomTicks
[axis=x]
{
0.3
$
n
+
\tau
$
}}
\end
{
dspPlot
}
\end
{
figure
}
\end
{
center
}
\end
{
frame
}
\begin
{
frame
}
\frametitle
{
Lagrange interpolation as an FIR
}
\begin
{
itemize
}
[<+->]
\item
$
x
(
n
+
\tau
)
\approx
x_L
(
n;
\tau
)
$
\item
$
x_L
(
n;
\tau
)
=
\sum
_{k
=-
N}^{N} x
[
n
+
k
]
L_k^{
(
N
)
}
(
\tau
)
=
\sum
_{k
=-
N}^{N} x
[
n
-
k
]
L_{
-
k}^{
(
N
)
}
(
\tau
)
$
\item
define
$
d_{
\tau
}
[
k
]
=
L_{
-
k}^{
(
N
)
}
(
\tau
)
$
,
$
k
=
-
N,
\ldots
, N
$
\item
$
x_L
(
n;
\tau
)
=
\sum
_{k
=-
N}^{N} x
[
n
-
k
]
d_{
\tau
}
[
k
]
$
\item
$
x_L
(
n;
\tau
)
=
(
x
\ast
d_{
\tau
}
)[
n
]
$
\item
$
d_{
\tau
}
[
k
]
$
is a
$
(
2
N
+
1
)
$
-tap FIR (dependent on
$
\tau
$
)
\end
{
itemize
}
\end
{
frame
}
\begin
{
frame
}
\frametitle
{
Example (
$
N
=
1
$
, second order approximation)
}
\begin
{
align*
}
L
_{
-1
}^{
(1)
}
(t)
&
= t
\frac
{
t-1
}{
2
}
\\
L
_{
0
}^{
(1)
}
(t)
&
= (1-t)(1+t)
\\
L
_{
1
}^{
(1)
}
(t)
&
= t
\frac
{
t+1
}{
2
}
\\
\end
{
align*
}
\end
{
frame
}
\begin
{
frame
}
\frametitle
{
Example (
$
N
=
1
$
, second order approximation)
}
\[
d_{
0
.
2
}
[
n
]
=
\begin
{cases}
0
.
12
& n
=-
1
\\
0
.
96
& n
=
0
\\
-
0
.
08
& n
=
1
\\
0
&
\mbox
{otherwise}
\end
{cases}
\]
\end
{
frame
}
\begin
{
frame
}
\frametitle
{
Delay compensation algorithm
}
\begin
{
itemize
}
[<+->]
\item
estimate the delay
$
\tau
$
\item
compute the
$
2
N
+
1
$
Lagrangian coefficients
\item
filter with the resulting FIR
\end
{
itemize
}
\end
{
frame
}
\begin
{
frame
}
\frametitle
{
Compensating for the distortion
}
\begin
{
figure
}
\begin
{
dspBlocks
}{
1.5
}{
0.5
}
$
s
[
n
]
~
$
&
\BDfilter
{
D/A
}
&
\BDfilter
{
$
D
(
f
)
$
}
&
\BDfilter
{
A/D
}
&
$
~
\hat
{s}
[
n
]
$
\\
% & $T_s$ & & $T'_s$ &
%
\psset
{
arrows=->
}
\ncline
{
1,1
}{
1,2
}
\ncline
{
1,2
}{
1,3
}^{
$
s
(
t
)
~~
$
}
\ncline
{
1,3
}{
1,4
}^{
$
~
\hat
{s}
(
t
)
$
}
\ncline
{
1,4
}{
1,5
}
\end
{
dspBlocks
}
\end
{
figure
}
\end
{
frame
}
%\begin{frame}
% \frametitle{Adaptive signal processing}
% \begin{itemize}[<+->]
% \item processing {\em adapts}\/ to the characteristics of a signal
% \item define an error measure between desired and actual performance
% \item use the error to drive the adaptation
% \vspace{1em}
% \item how? This will be the topic of your next online course!
% \end{itemize}
%\end{frame}
\begin
{
frame
}
\frametitle
{
Compensating for the distortion
}
\begin
{
figure
}
\begin
{
dspBlocks
}{
1.5
}{
0.2
}
$
s
[
n
]
$
~~~
&
\BDfilter
{
$
D
(
z
)
$
}
&
~~~
$
\hat
{s}
[
n
]
$
\\
\ncline
{
->
}{
1,1
}{
1,2
}
\ncline
{
->
}{
1,2
}{
1,3
}
\end
{
dspBlocks
}
\end
{
figure
}
\end
{
frame
}
\begin
{
frame
}
\frametitle
{
Example: adaptive equalization
}
\begin
{
figure
}
\begin
{
dspBlocks
}{
1.5
}{
0.2
}
$
s
[
n
]
$
~~~
&
\BDfilter
{
$
D
(
z
)
$
}
&
\BDfilter
{
$
H
(
z
)
$
}
&
~~~
$
\hat
{s}_e
[
n
]
=
s
[
n
]
$
\\
\ncline
{
->
}{
1,1
}{
1,2
}
\ncline
{
->
}{
1,2
}{
1,3
}^{
$
\hat
{s}
[
n
]
$
}
\ncline
{
->
}{
1,3
}{
1,4
}
\end
{
dspBlocks
}
\end
{
figure
}
\end
{
frame
}
\begin
{
frame
}
\frametitle
{
Example: adaptive equalization
}
\intro
{
use of training sequences is typical case in which we can marry SP techniques to more general algorithmic techniques in ways that were not even thinkable in analog processing
}
\begin
{
itemize
}
[<+->]
\item
in theory,
$
H
(
z
)
=
1
/
D
(
z
)
$
\item
but we don't know
$
D
(
z
)
$
in advance
\item
$
D
(
z
)
$
may change over time
\end
{
itemize
}
\end
{
frame
}
\begin
{
frame
}
\frametitle
{
Adaptive equalization
}
\begin
{
figure
}
\begin
{
dspBlocks
}{
1
}{
1
}
$
\hat
{s}
[
n
]
~
$
&
\BDfilter
{
$
H
(
z
)
$
}
&
\BDsplit
&
&
&
&
\\
&
&
\BDsub
&
$
s
[
n
]
$
&
%
\psset
{
arrows=->
}
\ncline
{
1,1
}{
1,2
}
\ncline
{
1,2
}{
1,4
}
\naput
{
$
\hat
{s}_e
[
n
]
$
}
\ncline
{
1,3
}{
2,3
}
\ncline
{
2,4
}{
2,3
}
\ncangle
[angleA=180,angleB=-90,linewidth=\BDwidth]
{
2,3
}{
1,2
}
\naput
{
$
e
[
n
]
$
}
\end
{
dspBlocks
}
\end
{
figure
}
\end
{
frame
}
\begin
{
frame
}
\frametitle
{
Adaptive equalization: bootstrapping via a training sequence
}
\setbeamercovered
{
invisible
}
\begin
{
figure
}
\begin
{
dspBlocks
}{
1
}{
0.2
}
$
a_t
[
n
]
~
$
&
\BDfilter
{
TX
}
&
\ldots
&
\\
\\
\ncline
{
->
}{
1,1
}{
1,2
}
\ncline
{
->
}{
1,2
}{
1,3
}^{
~~
$
s
[
n
]
$
}
\end
{
dspBlocks
}
\pause
\begin
{
dspBlocks
}{
1
}{
1
}
$
\hat
{s}
[
n
]
~
$
&
\BDfilter
{
$
H
(
z
)
$
}
&
\BDsplit
&
\\
&
&
\BDsub
&
\BDfilter
{
Modulator
}
&
~
$
a_t
[
n
]
$
\psset
{
arrows=->
}
\ncline
{
1,1
}{
1,2
}
\ncline
{
1,2
}{
1,4
}
\naput
{
$
\hat
{s}_e
[
n
]
$
}
\ncline
{
1,3
}{
2,3
}
\ncline
{
2,5
}{
2,4
}
\ncline
{
2,4
}{
2,3
}
\nbput
{
$
s
[
n
]
$
}
\ncangle
[angleA=-90,angleB=0,linewidth=\BDwidth]
{
1,6
}{
2,4
}
\ncangle
[angleA=180,angleB=-90,linewidth=\BDwidth]
{
2,3
}{
1,2
}
\naput
{
$
e
[
n
]
$
}
\end
{
dspBlocks
}
\end
{
figure
}
\end
{
frame
}
\begin
{
frame
}
\frametitle
{
Adaptive equalization: online mode
}
\begin
{
figure
}
\begin
{
dspBlocks
}{
1
}{
1
}
$
\hat
{s}
[
n
]
~
$
&
\BDfilter
{
$
H
(
z
)
$
}
&
\BDsplit
&
\BDfilter
{
Demod
}
&
\BDfilter
{
Slicer
}
&
\BDsplit
&
\\
&
&
\BDsub
&
\BDfilter
{
Modulator
}
&
%
\psset
{
arrows=->
}
\ncline
{
1,1
}{
1,2
}
\ncline
{
1,2
}{
1,4
}
\naput
{
$
\hat
{s}_e
[
n
]
$
}
\ncline
{
1,4
}{
1,5
}
\ncline
{
-
}{
1,5
}{
1,6
}
\ncline
{
1,6
}{
1,7
}
\naput
{
$
\hat
{a}
[
n
]
$
}
\ncline
{
1,3
}{
2,3
}
\ncline
{
2,4
}{
2,3
}
\nbput
{
$
s'
[
n
]
$
}
\ncangle
[angleA=-90,angleB=0,linewidth=\BDwidth]
{
1,6
}{
2,4
}
\ncangle
[angleA=180,angleB=-90,linewidth=\BDwidth]
{
2,3
}{
1,2
}
\naput
{
$
e
[
n
]
$
}
\end
{
dspBlocks
}
\end
{
figure
}
\end
{
frame
}
\begin
{
frame
}
\frametitle
{
Adaptive equalization: the LMS algorithm
}
FIR equalization:
\begin
{
align*
}
\hat
{
s
}_
e[n]
&
=
\sum
_{
k = 0
}^{
N-1
}
h
_
n[k]
\hat
{
s
}
[n-k]
\\
e[n]
&
=
\hat
{
s
}_
e[n] - s[n]
\end
{
align*
}
\vspace
{
2em
}
adapting the coefficients:
\[
h_{n
+
1
}
[
k
]
=
h_n
[
k
]
+
\alpha
e
[
n
]
x
[
n
-
k
]
,
\qquad
k
=
0
,
1
,
\ldots
, N
-
1
\]
\end
{
frame
}
\begin
{
frame
}
\frametitle
{
So much more to do...
}
\begin
{
itemize
}
[<+->]
\item
how do we compensate for differences in clocks?
\item
how do we recover from interference?
\item
how do we improve resilience to noise?
\end
{
itemize
}
\pause
\centering
\vspace
{
2em
}
advanced topics in communication system design
\end
{
frame
}
\end
{
document
}
\begin
{
frame
}
\frametitle
{
Timing recovery
}
\begin
{
figure
}
\begin
{
dspBlocks
}{
1.5
}{
0.5
}
$
s
[
n
]
~
$
&
\BDfilter
{
D/A
}
&
\BDfilter
{
channel
}
&
\BDfilter
{
A/D
}
&
$
~
\hat
{s}
[
n
]
$
\\
&
$
T_s
$
&
&
$
T'_s
$
&
%
\psset
{
arrows=->
}
\ncline
{
1,1
}{
1,2
}
\ncline
{
1,2
}{
1,3
}^{
$
s
(
t
)
~~
$
}
\ncline
{
1,3
}{
1,4
}^{
$
~
\hat
{s}
(
t
-
\tau
)
$
}
\ncline
{
1,4
}{
1,5
}
\end
{
dspBlocks
}
\end
{
figure
}
\begin
{
itemize
}
\item
<2-> in theory
$
T'_s
=
T_s
$
\item
<3-> if not, we have a time drift
\item
<4-> need to estimate and compensate for
\end
{
itemize
}
\end
{
frame
}
\begin
{
frame
}
\frametitle
{
Back to timing recovery
}
\begin
{
figure
}
\begin
{
dspBlocks
}{
1.5
}{
0.5
}
$
s
[
n
]
~
$
&
\BDfilter
{
D/A
}
&
\BDfilter
{
A/D
}
&
$
\hat
{s}
[
n
]
$
\\
&
$
T_s
$
&
$
T'_s
$
&
%
\psset
{
arrows=->
}
\ncline
{
1,1
}{
1,2
}
\ncline
{
1,2
}{
1,3
}^{
$
s
(
t
)
$
}
\ncline
{
1,3
}{
1,4
}
\end
{
dspBlocks
}
\end
{
figure
}
\begin
{
itemize
}
\item
<2-> assume
$
T'_s
=
\beta
T_s
$
\item
<3-> each sample will have a delay multiple of
$
\tau
=
(
T'_s
-
T_s
)/
T'_s
=
(
1
-
\beta
)/
\beta
$
\item
<4-> compensation strategy only slightly more complex
\end
{
itemize
}
\end
{
frame
}
\def\polyFun
{
%
dup 2.315 mul exch
%
dup dup mul -3.74583333 mul exch
%
dup dup dup mul mul 2.05 mul exch
%
dup dup dup dup mul mul mul -0.45416667 mul exch
%
dup dup dup dup mul mul mul mul 0.035 mul
%
0.5 add add add add add
%
3 mul
}
\def\b
{
0.82
}
\begin
{
frame
}
\frametitle
{
Example: sampling too fast
}
\begin
{
figure
}
\begin
{
dspPlot
}
[sidegap=0.5,xlabel=
{
$
\beta
=
\b
$
}
]
{
0,5
}{
-1.3,3
}
\moocStyle
\FPupn\bb
{
\b
{}
1 / 3 trunc clip
}
\only
<2-3>
{
\multido
{
\n
=0+
\bb
}{
5
}{
\psdot
[dotstyle=x,linecolor=green!70]
(
\n
,0)
}}
\dspSignal
{
x
\polyFun
}
\only
<3->
{{
%
\psset
{
linecolor=red!50
}
\dspFunc
[linestyle=dashed,xmin=-.2,xmax=0]
{
x
\polyFun
}
\dspFunc
[linestyle=dashed,xmin=5,xmax=5.2]
{
x
\polyFun
}
\dspFunc
[xmin=0,xmax=5]
{
x
\polyFun
}}}
\only
<4->
{
\multido
{
\n
=
\bb
+
\bb
}{
4
}{
\sample
{
linecolor=green!70
}{
\n
}{
\polyFun
}}}
\end
{
dspPlot
}
\end
{
figure
}
\end
{
frame
}
\def\b
{
1.28
}
\begin
{
frame
}
\frametitle
{
Example: sampling too slow
}
\begin
{
figure
}
\begin
{
dspPlot
}
[sidegap=0.5,xlabel=
{
$
\beta
=
\b
$
}
]
{
0,5
}{
-1.3,3
}
\moocStyle
\FPupn\bb
{
\b
{}
1 / 3 trunc clip
}
\only
<2-3>
{
\multido
{
\n
=0+
\bb
}{
7
}{
\psdot
[dotstyle=x,linecolor=green!70]
(
\n
,0)
}}
\dspSignal
{
x
\polyFun
}
\only
<3->
{{
%
\psset
{
linecolor=red!50
}
\dspFunc
[linestyle=dashed,xmin=-.2,xmax=0]
{
x
\polyFun
}
\dspFunc
[linestyle=dashed,xmin=5,xmax=5.2]
{
x
\polyFun
}
\dspFunc
[xmin=0,xmax=5]
{
x
\polyFun
}}}
\only
<4->
{
\multido
{
\n
=
\bb
+
\bb
}{
6
}{
\sample
{
linecolor=green!70
}{
\n
}{
\polyFun
}}}
\end
{
dspPlot
}
\end
{
figure
}
\end
{
frame
}
\begin
{
frame
}
\frametitle
{
Estimate the time drift
}
\begin
{
itemize
}
[<+->]
\item
send a
{
\em
pilot
}
, i.e. a sinusoid of known frequency
$
s
[
n
]
=
\cos\omega
_
0
n
$
\item
look at the deviation from the expected value:
\begin
{
align*
}
s(t)
&
=
\cos
((
\omega
_
0/ T
_
s) t)
\\
\hat
{
s
}
[n]
&
=
\cos\left
(
\omega
_
0
\frac
{
T'
_
s
}{
T
_
s
}
n
\right
) =
\cos\left
(
\beta
\omega
_
0 n
\right
)
\end
{
align*
}
\end
{
itemize
}
\end
{
frame
}
%\end{document}
\end
{
document
}
\begin
{
frame
}
\frametitle
{
Example: slower sampling clock
}
\begin
{
figure
}
\begin
{
dspPlot
}
[sidegap=0.5,xlabel=
{
$
\beta
=
\b
$
}
]
{
0,5
}{
-1.3,3
}
\moocStyle
\only
<2->
{{
%
\psset
{
linecolor=red!50
}
\dspFunc
[linestyle=dashed,xmin=-.2,xmax=0]
{
x
\polyFun
}
\dspFunc
[linestyle=dashed,xmin=5,xmax=5.2]
{
x
\polyFun
}
\dspFunc
[xmin=0,xmax=5]
{
x
\polyFun
}}}
\dspSignal
{
x
\polyFun
}
\only
<3->
{{
%
\psset
{
linecolor=blue!50
}
\multido
{
\n
=0+
\b
}{
6
}{
\sample
{
\n
}}}}
% \multips(0.5,0)(1,0){5}{\psline[linewidth=0.5pt,linestyle=dashed,linecolor=lightgray](0,3)}
%
% \psdot[dotstyle=o,dotsize=6pt](! 0 dup \polyFun)
%
% \psline[linewidth=0.5pt](1.22,0)(! 1.22 dup \polyFun)
% \psdot[dotstyle=o,dotsize=6pt](! 1.22 dup \polyFun)
%
% \psline[linewidth=\psDSPlineWidth](2.44,0)(! 2.44 dup \polyFun)
% \psdot[dotstyle=o,dotsize=6pt](! 2.44 dup \polyFun)
%
% \psline[linewidth=\psDSPlineWidth](3.66,0)(! 3.66 dup \polyFun)
% \psdot[dotstyle=o,dotsize=6pt](! 3.66 dup \polyFun)
%
% \psline[linewidth=\psDSPlineWidth](4.88,0)(! 4.88 dup \polyFun)
% \psdot[dotstyle=o,dotsize=6pt](! 4.88 dup \polyFun)
%
% \psdot[dotstyle=+,dotangle=45,dotsize=16pt,linecolor=darkgray](! 3 dup \polyFun)
%
% \selectPlotFont
% \psbrace[rot=90,ref=tC,nodesepB=-5pt](0,-.3)(1.22,-.3){$T_s/\beta$}
% \psbrace[rot=90,ref=tC,nodesepB=-5pt](1.22,-.3)(2.44,-.3){$T_s/\beta$}
% \psbrace[rot=90,ref=tC,nodesepB=-5pt](2.44,-.3)(3.66,-.3){$T_s/\beta$}
% \psbrace[rot=90,ref=tC,nodesepB=-5pt](3.66,-.3)(4.88,-.3){$T_s/\beta$}
%
% \psline[arrows=->](1,.3)(1.22,.3) \rput[b](1.11,.35){$\tau$}
% \psline[arrows=->](2,.3)(2.44,.3) \rput[b](2.22,.35){$2\tau$}
% \psline[arrows=->,linecolor=lightgray](3,.3)(3.66,.3) \rput[b](3.33,.35){$3\tau$}
% \psline[arrows=<-](3.66,.3)(4,.3) \rput[b](3.83,.35){$\tau'$}
% %\endpsclip
\end
{
dspPlot
}
\end
{
figure
}
\end
{
frame
}
\end
{
document
}
Event Timeline
Log In to Comment