Sie sind auf Seite 1von 45

Digital Filtering Part 2:

Pulse Shaping
ELEC 433 - Spring 2013
Evan Everett and Michael Wu
[11] [01]
[10] [00]
Output of modulator
[11] [01]
[10] [00]
Output of modulator
1
0
Train of symbols
Output of modulator
1
0
Train of symbols
[11] [01]
[10] [00]
Time
A single symbol in the time domain
5 10 15 20 25 30 35 40 45 50
!0.2
0
0.2
0.4
0.6
0.8
1
1.2
1.4
1.6
1.8
Frequency
A single symbol in the frequency domain
1
0
1
2
3
10
2

A sinc in frequency ! innite bandwidth

FCC angry!

Band-limited RF/antennas
1
0
1
2
3
10
2
A single symbol in the frequency domain
What if we only keep a small piece?
X X
Frequency
5 10 15 20 25 30 35 40 45 50
!0.2
0
0.2
0.4
0.6
0.8
1
1.2
1.4
1.6
1.8
Time
What if we only keep a small piece?
5 10 15 20 25 30 35 40 45 50
!0.2
0
0.2
0.4
0.6
0.8
1
1.2
1.4
1.6
1.8
The downside: our signal is wider in time
A sequence of symbols
Symbol 1
5 10 15 20 25 30 35 40 45 50
!0.2
0
0.2
0.4
0.6
0.8
1
1.2
1.4
1.6
1.8
5 10 15 20 25 30 35 40 45 50
!0.2
0
0.2
0.4
0.6
0.8
1
1.2
1.4
1.6
1.8
Symbol 2
5 10 15 20 25 30 35 40 45 50
!0.2
0
0.2
0.4
0.6
0.8
1
1.2
1.4
1.6
1.8
Symbol 3
Time
A band-limited sequence of symbols
Symbol 1 Symbol 2 Symbol 3
Time
Band-limiting caused
Inter-Symbol Interference (ISI)
5 10 15 20 25 30 35 40 45 50
!0.2
0
0.2
0.4
0.6
0.8
1
1.2
1.4
1.6
1.8
5 10 15 20 25 30 35 40 45 50
!0.2
0
0.2
0.4
0.6
0.8
1
1.2
1.4
1.6
1.8
5 10 15 20 25 30 35 40 45 50
!0.2
0
0.2
0.4
0.6
0.8
1
1.2
1.4
1.6
1.8
Pulse Shaping Requirements

Frequency domain: low-pass response

H(")#1 in passband, H(")#0 in stopband

Time domain: zero ISI and nite extent

Impulse response needs periodic zeros

Zeros must occur at other data sample times

h[n$] = 0 where $ is data sample period


T 2T 3T -T -2T -3T
t
Zero-ISI Example
Raised Cosine Function
: Rolloff factor- determines passband (excess bandwidth)
: Sampling period- determines zero crossings of x(t)

Most common pulse shaping lter

Meets both key requirements

Easy to implement digitally

Impulse response:
x(t) =
sin

cos

2t

=
sinc

cos

2t

Impulse Response
-3 -2 -1 0 1 2 3
-0.2
0
0.2
0.4
0.6
0.8
=0
=.15
=.3
=.5
=1
Raised Cosine Function
Properties of the Impulse Response
x(0) = 1 for all %
-3 -2 -1 0 1 2 3
-0.2
0
0.2
0.4
0.6
0.8
=0
=.15
=.3
=.5
=1
Raised Cosine Function
Properties of the Impulse Response
-3 -2 -1 0 1 2 3
-0.2
0
0.2
0.4
0.6
0.8
=0
=.15
=.3
=.5
=1
Zeros do not depend on %
Raised Cosine Function
Properties of the Impulse Response
Size of ripples depend on %
-3 -2 -1 0 1 2 3
-0.2
0
0.2
0.4
0.6
0.8
=0
=.15
=.3
=.5
=1
Raised Cosine Function
Properties of the Impulse Response
-3 -2 -1 0 1 2 3
-0.2
0
0.2
0.4
0.6
0.8
=0
=.15
=.3
=.5
=1
%=0 gives sinc(x)
Raised Cosine Function
Raised Cosine Function
: Rolloff factor- determines passband (excess bandwidth)
: Sampling period- determines zero crossings of x(t)
!
!
X(!) =
", ! #
$ 1% & ( )
"
"
2
1% sin
"
2&
'
(
)
*
+
,
! %
$
"
'
(
)
*
+
,
'
(
)
*
+
,
-
.
/
0
1
2
,
$ 1% & ( )
"
< ! <
$ 1+ & ( )
"
0, ! 3
$ 1+ & ( )
"
4
5
6
6
6
7
6
6
6
Frequency Response:
Frequency Response
0 0.5 1 1.5 2
0
0.1
0.2
0.3
0.4
0.5
0.6
0.7
0.8
0.9
1
=0
=.15
=.3
=.5
=1
Raised Cosine Function
Properties of the Frequency Response
0 0.5 1 1.5 2
0
0.1
0.2
0.3
0.4
0.5
0.6
0.7
0.8
0.9
1
=0
=.15
=.3
=.5
=1
0 0.5 1 1.5 2
0
0.1
0.2
0.3
0.4
0.5
0.6
0.7
0.8
0.9
1
=0
=.15
=.3
=.5
=1
%=0 gives notch lter
Raised Cosine Function
(1- %)
(1+ %)
% sets the lters passband
Properties of the Frequency Response
0 0.5 1 1.5 2
0
0.1
0.2
0.3
0.4
0.5
0.6
0.7
0.8
0.9
1
=0
=.15
=.3
=.5
=1
0 0.5 1 1.5 2
0
0.1
0.2
0.3
0.4
0.5
0.6
0.7
0.8
0.9
1
=0
=.15
=.3
=.5
=1
Raised Cosine Function
Properties of the Frequency Response
0 0.5 1 1.5 2
0
0.1
0.2
0.3
0.4
0.5
0.6
0.7
0.8
0.9
1
=0
=.15
=.3
=.5
=1
0 0.5 1 1.5 2
0
0.1
0.2
0.3
0.4
0.5
0.6
0.7
0.8
0.9
1
=0
=.15
=.3
=.5
=1
X("<(1-%))=1
X(">(1+%))=0
Raised Cosine Function
(1- %)
(1+ %)
% sets the lters passband
Properties of the Frequency Response
0 0.5 1 1.5 2
0
0.1
0.2
0.3
0.4
0.5
0.6
0.7
0.8
0.9
1
=0
=.15
=.3
=.5
=1
0 0.5 1 1.5 2
0
0.1
0.2
0.3
0.4
0.5
0.6
0.7
0.8
0.9
1
=0
=.15
=.3
=.5
=1
X("<(1-%))=1
X(">(1+%))=0
%=0 gives notch lter
Raised Cosine Function
Square Root Raised Cosine
0 0.5 1 1.5 2
0
0.1
0.2
0.3
0.4
0.5
0.6
0.7
0.8
0.9
1
=0
=.15
=.3
=.5
=1
0 0.5 1 1.5 2
0
0.1
0.2
0.3
0.4
0.5
0.6
0.7
0.8
0.9
1
=0
=.15
=.3
=.5
=1
Why is this useful?
Split pulse shaping lter between Tx and Rx
Pulse shaping becomes matched ltering
H
RRC
() =

H
RC
()
H
RC
()
Matched Filtering with RRC
Data
Mod
Demod
Data

Prevent out-of-band
interference
Reject out-of-band
interference/noise
TX: RX:
H
RRC
()
Matched RRC Filters
Net response is
zero ISI, unity at
sample times!
H
RRC
()
H() = H
RRC
()H
RRC
()
=

H
RC
()

H
RC
()
= H
RC
() (1)
Raised Cosine Filtering
0 5 10 15 20 25 30
-1.5
-1
-0.5
0
0.5
1
1.5
Time
A
m
p
l
i
t
u
d
e
Start with a binary data stream
Adapted from MATLABs playshow rcosdemo
0 5 10 15 20 25 30
-1.5
-1
-0.5
0
0.5
1
1.5
Time
A
m
p
l
i
t
u
d
e
Apply the raised cosine lter to the data
Raised Cosine Filtering
Adapted from MATLABs playshow rcosdemo
Raised Cosine Filtering
Adapted from MATLABs playshow rcosdemo
0 5 10 15 20 25 30
-1.5
-1
-0.5
0
0.5
1
1.5
Time
A
m
p
l
i
t
u
d
e
Delay the data to see the preservation of the information
See the effect of changing %
0 5 10 15 20 25 30
-1.5
-1
-0.5
0
0.5
1
1.5
Time
A
m
p
l
i
t
u
d
e
%=0.2
%=0.5
Raised Cosine Filtering
Adapted from MATLABs playshow rcosdemo
Raised Cosine Filtering
Adapted from MATLABs playshow rcosdemo
0 5 10 15 20 25 30
-1.5
-1
-0.5
0
0.5
1
1.5
Time
A
m
p
l
i
t
u
d
e
Using a square root raised cosine lter instead
Raised Cosine Filtering
Adapted from MATLABs playshow rcosdemo
0 5 10 15 20 25 30
-1.5
-1
-0.5
0
0.5
1
1.5
Time
A
m
p
l
i
t
u
d
e
Data reconstructed using root-raised lter again
Digital Pulse-shaping: Tx
0 5 10 15 20 25 30
!1.5
!1
!0.5
0
0.5
1
1.5
Time
A
m
p
l
i
t
u
d
e
0 5 10 15 20 25 30
!1.5
!1
!0.5
0
0.5
1
1.5
Time
A
m
p
l
i
t
u
d
e
0 5 10 15 20 25 30
!1.5
!1
!0.5
0
0.5
1
1.5
Time
A
m
p
l
i
t
u
d
e
Data
Modulator Interpolating Filter

D/A Tx
0 5 10 15 20 25 30
!1.5
!1
!0.5
0
0.5
1
1.5
Time
A
m
p
l
i
t
u
d
e
0 5 10 15 20 25 30
!1.5
!1
!0.5
0
0.5
1
1.5
Time
A
m
p
l
i
t
u
d
e
0 5 10 15 20 25 30
!1.5
!1
!0.5
0
0.5
1
1.5
Time
A
m
p
l
i
t
u
d
e
Data
Decimating Filter

A/D
Demodulator
Rx
Digital Pulse-shaping: Rx

Commonly required in DSP/Comm

DSP: smoothing, softening pixelation

Comm: upsampling without aliasing, pulse shaping

Example:
Interpolating Filters
Original
Enlarged w/o
interpolation
Interpolated

Example: interpolate by a factor of M = 8

Low-pass lter of length N = 32

Suppose we upsample (zero pad) and then use a serial lter

How much faster does the internal rate have to be than input
rate?

M*N = 8*32 = 256x as fast

If the input rate is near the speed of our FPGA, this is hopeless
Implementing Multi-rate Filters
N-tap LPF
M
Interpolation

Basic multi-rate lters are very inefcient

Inputs are mostly zeros after upsampling

Outputs are mostly discarded after downsampling

Smarter design can save a lot of resources


N-tap LPF
M
Decimation
Mostly Zeros
Mostly Discarded
N-tap LPF
M
Interpolation
Implementing Multi-rate Filters
4x Interpolation Example
I
m
p
u
l
s
e

R
e
s
p
o
n
s
e
M=4
x
0
x
1
x
2

N-tap LPF
M
4x Interpolation Example
x
0
0

0

0

x
1
0

0

0

x
2
0

0

0

x
3
0

0

0
I
m
p
u
l
s
e

R
e
s
p
o
n
s
e
D
a
t
a
x
0
0

0

0

x
1
0

0

0

x
2
0

0

0

x
3
0

0

0
0

x
0
0

0

0

x
1
0

0

0

x
2
0

0

0

x
3
0

0
I
m
p
u
l
s
e

R
e
s
p
o
n
s
e
D
a
t
a
4x Interpolation Example
x
0
0

0

0

x
1
0

0

0

x
2
0

0

0

x
3
0

0

0
0

x
0
0

0

0

x
1
0

0

0

x
2
0

0

0

x
3
0

0
0

0

x
0
0

0

0

x
1
0

0

0

x
2
0

0

0

x
3
0
I
m
p
u
l
s
e

R
e
s
p
o
n
s
e
D
a
t
a
4x Interpolation Example
x
0
0

0

0

x
1
0

0

0

x
2
0

0

0

x
3
0

0

0
0

x
0
0

0

0

x
1
0

0

0

x
2
0

0

0

x
3
0

0
0

0

x
0
0

0

0

x
1
0

0

0

x
2
0

0

0

x
3
0
0

0

0

x
0
0

0

0

x
1
0

0

0

x
2
0

0

0

x
3
I
m
p
u
l
s
e

R
e
s
p
o
n
s
e
D
a
t
a
4x Interpolation Example

Break impulse response into M sub-lters

h[0...N-1] is broken down as:

h
0
=h[0,M,2M,3M,...]

h
1
=h[1,M+1,2M+1,3M+1,...]

h
2
=h[2,M+2,2M+2,3M+2,...]

... and so on
Polyphase Filters

Then cycle through sub-lter outputs at rate M

Output is the same as basic version

Only the multiplexer runs at rate M


Parallel Polyphase Filter
h
0
h
1
h
M-1
.
.
.
h
2

Replace sublters with clever ROM/RAM indexing

Most efcient implementation: no unused logic

Core runs at rate N*M/M (for original h[0...N-1])


Serial Polyphase Filters
Data
Branch Index
Coefcient
ROM
z
-1
X
+
Counter
+
Addressable
Shift Register
Serial Interpolating Polyphase Filter

Das könnte Ihnen auch gefallen