Pulse Shapping
-
Upload
karthik-gowda -
Category
Documents
-
view
11 -
download
1
description
Transcript of Pulse Shapping
Digital Filtering Part 2:Pulse Shaping
ELEC 433 - Spring 2013Evan 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 → infinite 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?
XXFrequency
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 finite 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 filter
• Meets both key requirements
• Easy to implement digitally
• Impulse response:
x(t) =sin
�πtτ
�cos
�παtτ
�
πtτ
�1−
�2αtτ
�2� =
sinc�
tτ
�cos
�παtτ
�
1−�
2αtτ
�2
τα
Impulse ResponseRaised Cosine Function
Properties of the Impulse Response
x(0) = 1 for all α
Raised Cosine Function
Properties of the Impulse Response
Zeros do not depend on α
Raised Cosine Function
Properties of the Impulse Response
Size of ripples depend on α
Raised Cosine Function
Properties of the Impulse Response
α=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− α( )
τ
τ21− sin τ
2α⎛⎝⎜
⎞⎠⎟ω −
πτ
⎛⎝⎜
⎞⎠⎟
⎛⎝⎜
⎞⎠⎟
⎡
⎣⎢
⎤
⎦⎥,π 1− α( )
τ< ω <
π 1+ α( )τ
0, ω ≥π 1+ α( )
τ
⎧
⎨
⎪⎪⎪
⎩
⎪⎪⎪
Frequency Response:
Frequency ResponseRaised Cosine Function
Properties of the Frequency Response
α=0 gives notch filter
Raised Cosine Function
(1- α) (1+ α)
α sets the filter’s passband
Properties of the Frequency Response
Raised Cosine Function
Properties of the Frequency Response
X(ω<(1-α))=1 X(ω>(1+α))=0
Raised Cosine Function
(1- α) (1+ α)
α sets the filter’s passband
Properties of the Frequency Response
X(ω<(1-α))=1 X(ω>(1+α))=0
α=0 gives notch filter
Raised Cosine Function
Square Root Raised Cosine
Why is this useful?• Split pulse shaping filter between Tx and Rx• Pulse shaping becomes matched filtering
HRRC(ω) =�
HRC(ω)HRC(ω)
Matched Filtering with RRC
Data
Mod Demod
Data∼∼∼∼∼∼
Prevent out-of-band interference
Reject out-of-bandinterference/noise
TX: RX:
HRRC(ω)
Matched RRC Filters
Net response is zero ISI, unity at sample times!
HRRC(ω)
H(ω) = HRRC(ω)HRRC(ω)=
�HRC(ω)
�HRC(ω)
= HRC(ω) (1)
Raised Cosine Filtering
Start with a binary data stream
Adapted from MATLAB’s ‘playshow rcosdemo’
Apply the raised cosine filter to the data
Raised Cosine FilteringAdapted from MATLAB’s ‘playshow rcosdemo’
Raised Cosine FilteringAdapted from MATLAB’s ‘playshow rcosdemo’
Delay the data to see the preservation of the information
See the effect of changing α
α=0.2α=0.5
Raised Cosine FilteringAdapted from MATLAB’s ‘playshow rcosdemo’
Raised Cosine FilteringAdapted from MATLAB’s ‘playshow rcosdemo’
Using a square root raised cosine filter instead
Raised Cosine FilteringAdapted from MATLAB’s ‘playshow rcosdemo’
Data reconstructed using root-raised filter again
Digital Pulse-shaping: Tx
0 5 10 15 20 25 30
−1.5
−1
−0.5
0
0.5
1
1.5
Time
Amplitude
0 5 10 15 20 25 30
−1.5
−1
−0.5
0
0.5
1
1.5
Time
Amplitude
0 5 10 15 20 25 30
−1.5
−1
−0.5
0
0.5
1
1.5
Time
Amplitude
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
Amplitude
0 5 10 15 20 25 30
−1.5
−1
−0.5
0
0.5
1
1.5
Time
Amplitude
0 5 10 15 20 25 30
−1.5
−1
−0.5
0
0.5
1
1.5
TimeAm
plitude
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 filter of length N = 32
• Suppose we upsample (zero pad) and then use a serial filter
• 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 LPFM
Interpolation
• Basic multi-rate filters are very inefficient
• 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 LPFM
Interpolation
Implementing Multi-rate Filters
4x Interpolation ExampleIm
pulse
Res
pons
e
M=4
x0 x1 x2 … N-tap LPFM
4x Interpolation Example
x0 0 0 0 x1 0 0 0 x2 0 0 0 x3 0 0 0
Impu
lse R
espo
nse
Dat
a
x0 0 0 0 x1 0 0 0 x2 0 0 0 x3 0 0 00 x0 0 0 0 x1 0 0 0 x2 0 0 0 x3 0 0
Impu
lse R
espo
nse
Dat
a4x Interpolation Example
x0 0 0 0 x1 0 0 0 x2 0 0 0 x3 0 0 00 x0 0 0 0 x1 0 0 0 x2 0 0 0 x3 0 00 0 x0 0 0 0 x1 0 0 0 x2 0 0 0 x3 0
Impu
lse R
espo
nse
Dat
a4x Interpolation Example
x0 0 0 0 x1 0 0 0 x2 0 0 0 x3 0 0 00 x0 0 0 0 x1 0 0 0 x2 0 0 0 x3 0 00 0 x0 0 0 0 x1 0 0 0 x2 0 0 0 x3 00 0 0 x0 0 0 0 x1 0 0 0 x2 0 0 0 x3
Impu
lse R
espo
nse
Dat
a4x Interpolation Example
• Break impulse response into M sub-filters• h[0...N-1] is broken down as:
• h0=h[0,M,2M,3M,...]• h1=h[1,M+1,2M+1,3M+1,...]• h2=h[2,M+2,2M+2,3M+2,...]• ... and so on
Polyphase Filters
• Then cycle through sub-filter outputs at rate M
• Output is the same as basic version
• Only the multiplexer runs at rate M
Parallel Polyphase Filter
h0
h1
hM-1
...
h2
• Replace subfilters with clever ROM/RAM indexing
• Most efficient implementation: no unused logic
• Core runs at rate N*M/M (for original h[0...N-1])
Serial Polyphase Filters
Data
Branch Index
Coefficient
ROM z-1
X +
Counter
+
Addressable
Shift Register
Serial Interpolating Polyphase Filter