Pulse Shapping

Post on 01-Jan-2016

11 views 1 download

Tags:

description

It describe about pulse shapping

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�

�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