pulse shapping
DESCRIPTION
It describe about pulse shappingTRANSCRIPT
![Page 1: Pulse Shapping](https://reader031.vdocuments.net/reader031/viewer/2022032708/55cf9aa7550346d033a2c04f/html5/thumbnails/1.jpg)
Digital Filtering Part 2:Pulse Shaping
ELEC 433 - Spring 2013Evan Everett and Michael Wu
![Page 2: Pulse Shapping](https://reader031.vdocuments.net/reader031/viewer/2022032708/55cf9aa7550346d033a2c04f/html5/thumbnails/2.jpg)
[11][01]
[10][00]
Output of modulator
![Page 3: Pulse Shapping](https://reader031.vdocuments.net/reader031/viewer/2022032708/55cf9aa7550346d033a2c04f/html5/thumbnails/3.jpg)
[11][01]
[10][00]
Output of modulator
1 0
Train of symbols
![Page 4: Pulse Shapping](https://reader031.vdocuments.net/reader031/viewer/2022032708/55cf9aa7550346d033a2c04f/html5/thumbnails/4.jpg)
Output of modulator
1 0
Train of symbols
[11][01]
[10][00]
![Page 5: Pulse Shapping](https://reader031.vdocuments.net/reader031/viewer/2022032708/55cf9aa7550346d033a2c04f/html5/thumbnails/5.jpg)
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
![Page 6: Pulse Shapping](https://reader031.vdocuments.net/reader031/viewer/2022032708/55cf9aa7550346d033a2c04f/html5/thumbnails/6.jpg)
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
![Page 7: Pulse Shapping](https://reader031.vdocuments.net/reader031/viewer/2022032708/55cf9aa7550346d033a2c04f/html5/thumbnails/7.jpg)
−1
0
1
2
3
·10−2
A single symbol in the frequency domain
What if we only keep a small piece?
XXFrequency
![Page 8: Pulse Shapping](https://reader031.vdocuments.net/reader031/viewer/2022032708/55cf9aa7550346d033a2c04f/html5/thumbnails/8.jpg)
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
![Page 9: Pulse Shapping](https://reader031.vdocuments.net/reader031/viewer/2022032708/55cf9aa7550346d033a2c04f/html5/thumbnails/9.jpg)
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
![Page 10: Pulse Shapping](https://reader031.vdocuments.net/reader031/viewer/2022032708/55cf9aa7550346d033a2c04f/html5/thumbnails/10.jpg)
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
![Page 11: Pulse Shapping](https://reader031.vdocuments.net/reader031/viewer/2022032708/55cf9aa7550346d033a2c04f/html5/thumbnails/11.jpg)
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
![Page 12: Pulse Shapping](https://reader031.vdocuments.net/reader031/viewer/2022032708/55cf9aa7550346d033a2c04f/html5/thumbnails/12.jpg)
T 2T 3T-T-2T-3T
t
Zero-ISI Example
![Page 13: Pulse Shapping](https://reader031.vdocuments.net/reader031/viewer/2022032708/55cf9aa7550346d033a2c04f/html5/thumbnails/13.jpg)
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
τα
![Page 14: Pulse Shapping](https://reader031.vdocuments.net/reader031/viewer/2022032708/55cf9aa7550346d033a2c04f/html5/thumbnails/14.jpg)
Impulse ResponseRaised Cosine Function
![Page 15: Pulse Shapping](https://reader031.vdocuments.net/reader031/viewer/2022032708/55cf9aa7550346d033a2c04f/html5/thumbnails/15.jpg)
Properties of the Impulse Response
x(0) = 1 for all α
Raised Cosine Function
![Page 16: Pulse Shapping](https://reader031.vdocuments.net/reader031/viewer/2022032708/55cf9aa7550346d033a2c04f/html5/thumbnails/16.jpg)
Properties of the Impulse Response
Zeros do not depend on α
Raised Cosine Function
![Page 17: Pulse Shapping](https://reader031.vdocuments.net/reader031/viewer/2022032708/55cf9aa7550346d033a2c04f/html5/thumbnails/17.jpg)
Properties of the Impulse Response
Size of ripples depend on α
Raised Cosine Function
![Page 18: Pulse Shapping](https://reader031.vdocuments.net/reader031/viewer/2022032708/55cf9aa7550346d033a2c04f/html5/thumbnails/18.jpg)
Properties of the Impulse Response
α=0 gives sinc(x)
Raised Cosine Function
![Page 19: Pulse Shapping](https://reader031.vdocuments.net/reader031/viewer/2022032708/55cf9aa7550346d033a2c04f/html5/thumbnails/19.jpg)
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:
![Page 20: Pulse Shapping](https://reader031.vdocuments.net/reader031/viewer/2022032708/55cf9aa7550346d033a2c04f/html5/thumbnails/20.jpg)
Frequency ResponseRaised Cosine Function
![Page 21: Pulse Shapping](https://reader031.vdocuments.net/reader031/viewer/2022032708/55cf9aa7550346d033a2c04f/html5/thumbnails/21.jpg)
Properties of the Frequency Response
α=0 gives notch filter
Raised Cosine Function
![Page 22: Pulse Shapping](https://reader031.vdocuments.net/reader031/viewer/2022032708/55cf9aa7550346d033a2c04f/html5/thumbnails/22.jpg)
(1- α) (1+ α)
α sets the filter’s passband
Properties of the Frequency Response
Raised Cosine Function
![Page 23: Pulse Shapping](https://reader031.vdocuments.net/reader031/viewer/2022032708/55cf9aa7550346d033a2c04f/html5/thumbnails/23.jpg)
Properties of the Frequency Response
X(ω<(1-α))=1 X(ω>(1+α))=0
Raised Cosine Function
![Page 24: Pulse Shapping](https://reader031.vdocuments.net/reader031/viewer/2022032708/55cf9aa7550346d033a2c04f/html5/thumbnails/24.jpg)
(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
![Page 25: Pulse Shapping](https://reader031.vdocuments.net/reader031/viewer/2022032708/55cf9aa7550346d033a2c04f/html5/thumbnails/25.jpg)
Square Root Raised Cosine
Why is this useful?• Split pulse shaping filter between Tx and Rx• Pulse shaping becomes matched filtering
HRRC(ω) =�
HRC(ω)HRC(ω)
![Page 26: Pulse Shapping](https://reader031.vdocuments.net/reader031/viewer/2022032708/55cf9aa7550346d033a2c04f/html5/thumbnails/26.jpg)
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)
![Page 27: Pulse Shapping](https://reader031.vdocuments.net/reader031/viewer/2022032708/55cf9aa7550346d033a2c04f/html5/thumbnails/27.jpg)
Raised Cosine Filtering
Start with a binary data stream
Adapted from MATLAB’s ‘playshow rcosdemo’
![Page 28: Pulse Shapping](https://reader031.vdocuments.net/reader031/viewer/2022032708/55cf9aa7550346d033a2c04f/html5/thumbnails/28.jpg)
Apply the raised cosine filter to the data
Raised Cosine FilteringAdapted from MATLAB’s ‘playshow rcosdemo’
![Page 29: Pulse Shapping](https://reader031.vdocuments.net/reader031/viewer/2022032708/55cf9aa7550346d033a2c04f/html5/thumbnails/29.jpg)
Raised Cosine FilteringAdapted from MATLAB’s ‘playshow rcosdemo’
Delay the data to see the preservation of the information
![Page 30: Pulse Shapping](https://reader031.vdocuments.net/reader031/viewer/2022032708/55cf9aa7550346d033a2c04f/html5/thumbnails/30.jpg)
See the effect of changing α
α=0.2α=0.5
Raised Cosine FilteringAdapted from MATLAB’s ‘playshow rcosdemo’
![Page 31: Pulse Shapping](https://reader031.vdocuments.net/reader031/viewer/2022032708/55cf9aa7550346d033a2c04f/html5/thumbnails/31.jpg)
Raised Cosine FilteringAdapted from MATLAB’s ‘playshow rcosdemo’
Using a square root raised cosine filter instead
![Page 32: Pulse Shapping](https://reader031.vdocuments.net/reader031/viewer/2022032708/55cf9aa7550346d033a2c04f/html5/thumbnails/32.jpg)
Raised Cosine FilteringAdapted from MATLAB’s ‘playshow rcosdemo’
Data reconstructed using root-raised filter again
![Page 33: Pulse Shapping](https://reader031.vdocuments.net/reader031/viewer/2022032708/55cf9aa7550346d033a2c04f/html5/thumbnails/33.jpg)
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
![Page 34: Pulse Shapping](https://reader031.vdocuments.net/reader031/viewer/2022032708/55cf9aa7550346d033a2c04f/html5/thumbnails/34.jpg)
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
![Page 35: Pulse Shapping](https://reader031.vdocuments.net/reader031/viewer/2022032708/55cf9aa7550346d033a2c04f/html5/thumbnails/35.jpg)
• Commonly required in DSP/Comm
• DSP: smoothing, softening pixelation
• Comm: upsampling without aliasing, pulse shaping
• Example:
Interpolating Filters
Original
Enlarged w/o interpolation
Interpolated
![Page 36: Pulse Shapping](https://reader031.vdocuments.net/reader031/viewer/2022032708/55cf9aa7550346d033a2c04f/html5/thumbnails/36.jpg)
• 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
![Page 37: Pulse Shapping](https://reader031.vdocuments.net/reader031/viewer/2022032708/55cf9aa7550346d033a2c04f/html5/thumbnails/37.jpg)
• 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
![Page 38: Pulse Shapping](https://reader031.vdocuments.net/reader031/viewer/2022032708/55cf9aa7550346d033a2c04f/html5/thumbnails/38.jpg)
4x Interpolation ExampleIm
pulse
Res
pons
e
M=4
x0 x1 x2 … N-tap LPFM
![Page 39: Pulse Shapping](https://reader031.vdocuments.net/reader031/viewer/2022032708/55cf9aa7550346d033a2c04f/html5/thumbnails/39.jpg)
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
![Page 40: Pulse Shapping](https://reader031.vdocuments.net/reader031/viewer/2022032708/55cf9aa7550346d033a2c04f/html5/thumbnails/40.jpg)
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
![Page 41: Pulse Shapping](https://reader031.vdocuments.net/reader031/viewer/2022032708/55cf9aa7550346d033a2c04f/html5/thumbnails/41.jpg)
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
![Page 42: Pulse Shapping](https://reader031.vdocuments.net/reader031/viewer/2022032708/55cf9aa7550346d033a2c04f/html5/thumbnails/42.jpg)
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
![Page 43: Pulse Shapping](https://reader031.vdocuments.net/reader031/viewer/2022032708/55cf9aa7550346d033a2c04f/html5/thumbnails/43.jpg)
• 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
![Page 44: Pulse Shapping](https://reader031.vdocuments.net/reader031/viewer/2022032708/55cf9aa7550346d033a2c04f/html5/thumbnails/44.jpg)
• 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
![Page 45: Pulse Shapping](https://reader031.vdocuments.net/reader031/viewer/2022032708/55cf9aa7550346d033a2c04f/html5/thumbnails/45.jpg)
• 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