Pulse Shapping

45
Digital Filtering Part 2: Pulse Shaping ELEC 433 - Spring 2013 Evan Everett and Michael Wu

description

It describe about pulse shapping

Transcript of Pulse Shapping

Page 1: Pulse Shapping

Digital Filtering Part 2:Pulse Shaping

ELEC 433 - Spring 2013Evan Everett and Michael Wu

Page 2: Pulse Shapping

[11][01]

[10][00]

Output of modulator

Page 3: Pulse Shapping

[11][01]

[10][00]

Output of modulator

1 0

Train of symbols

Page 4: Pulse Shapping

Output of modulator

1 0

Train of symbols

[11][01]

[10][00]

Page 5: Pulse Shapping

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

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

−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

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

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

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

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

T 2T 3T-T-2T-3T

t

Zero-ISI Example

Page 13: Pulse Shapping

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�

�cos

�παtτ

1−�

2αtτ

�2

τα

Page 14: Pulse Shapping

Impulse ResponseRaised Cosine Function

Page 15: Pulse Shapping

Properties of the Impulse Response

x(0) = 1 for all α

Raised Cosine Function

Page 16: Pulse Shapping

Properties of the Impulse Response

Zeros do not depend on α

Raised Cosine Function

Page 17: Pulse Shapping

Properties of the Impulse Response

Size of ripples depend on α

Raised Cosine Function

Page 18: Pulse Shapping

Properties of the Impulse Response

α=0 gives sinc(x)

Raised Cosine Function

Page 19: Pulse Shapping

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

Frequency ResponseRaised Cosine Function

Page 21: Pulse Shapping

Properties of the Frequency Response

α=0 gives notch filter

Raised Cosine Function

Page 22: Pulse Shapping

(1- α) (1+ α)

α sets the filter’s passband

Properties of the Frequency Response

Raised Cosine Function

Page 23: Pulse Shapping

Properties of the Frequency Response

X(ω<(1-α))=1 X(ω>(1+α))=0

Raised Cosine Function

Page 24: Pulse Shapping

(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

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

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

Raised Cosine Filtering

Start with a binary data stream

Adapted from MATLAB’s ‘playshow rcosdemo’

Page 28: Pulse Shapping

Apply the raised cosine filter to the data

Raised Cosine FilteringAdapted from MATLAB’s ‘playshow rcosdemo’

Page 29: Pulse Shapping

Raised Cosine FilteringAdapted from MATLAB’s ‘playshow rcosdemo’

Delay the data to see the preservation of the information

Page 30: Pulse Shapping

See the effect of changing α

α=0.2α=0.5

Raised Cosine FilteringAdapted from MATLAB’s ‘playshow rcosdemo’

Page 31: Pulse Shapping

Raised Cosine FilteringAdapted from MATLAB’s ‘playshow rcosdemo’

Using a square root raised cosine filter instead

Page 32: Pulse Shapping

Raised Cosine FilteringAdapted from MATLAB’s ‘playshow rcosdemo’

Data reconstructed using root-raised filter again

Page 33: Pulse Shapping

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

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

• 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

• 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

• 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

4x Interpolation ExampleIm

pulse

Res

pons

e

M=4

x0 x1 x2 … N-tap LPFM

Page 39: Pulse Shapping

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

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

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

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

• 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

• 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

• 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