24
Multirate Signal Processing* Tutorial using MATLAB** I. Signal processing background II. Downsample Example III. Upsample Example * Multrate signal processing is used for the practical applications in signal processing to save costs, processing time, and many other practical reasons. ** MATLAB is an industry standard software which performed all computations and corresponding figures in this tutorial By, Deborah Goshorn [email protected]

Multirate Signal Processing* Tutorial using MATLAB**tinoosh/cmpe691/slides/multi...Multirate Signal Processing* Tutorial using MATLAB** I. Signal processing background II. Downsample

Embed Size (px)

Citation preview

Page 1: Multirate Signal Processing* Tutorial using MATLAB**tinoosh/cmpe691/slides/multi...Multirate Signal Processing* Tutorial using MATLAB** I. Signal processing background II. Downsample

Multirate Signal Processing* Tutorial using MATLAB**

I. Signal processing background

II. Downsample Example

III. Upsample Example

* Multrate signal processing is used for the practical applications in signal processing to save

costs, processing time, and many other practical reasons.

** MATLAB is an industry standard software which performed all computations and corresponding

figures in this tutorial

By, Deborah Goshorn

[email protected]

Page 2: Multirate Signal Processing* Tutorial using MATLAB**tinoosh/cmpe691/slides/multi...Multirate Signal Processing* Tutorial using MATLAB** I. Signal processing background II. Downsample

I. Signal processingbackground

Page 3: Multirate Signal Processing* Tutorial using MATLAB**tinoosh/cmpe691/slides/multi...Multirate Signal Processing* Tutorial using MATLAB** I. Signal processing background II. Downsample

0 5 10 15 20 250

100

200

300

400

500

600

Frequency (Hz)

Signa

l Str

eng

th

Receive an analog signal

• Receive an analog signal at 5 Hz (as pictured below left, there are 5 wave cycles in one second.)

• The highest frequency component (5 Hz) of the signal is called the signal’s bandwidth, BW, since in the examples in this presentation, the minimum frequency component

is 0Hz.

• This signal can be represented in two ways:

time representation (sec) frequency representation (Hz)

Peak signal strength at 5 Hz

0 0.2 0.4 0.6 0.8 1

-1

-0.5

0

0.5

1

Time (sec)

Signa

l Value

BW

Page 4: Multirate Signal Processing* Tutorial using MATLAB**tinoosh/cmpe691/slides/multi...Multirate Signal Processing* Tutorial using MATLAB** I. Signal processing background II. Downsample

Add high frequency components

0 0.2 0.4 0.6 0.8 1

-1

-0.5

0

0.5

1

1.5

2

Time (sec)

Signa

l Value

0 5 10 15 20 250

100

200

300

400

500

600

Frequency (Hz)Signa

l Str

eng

th

0 0.2 0.4 0.6 0.8 1

-1

0

1

2

3

Time (sec)

Signa

l Value

2. Add a 10 Hz component

3. Then add a 15 Hz component!

0 0.2 0.4 0.6 0.8 1

-1

-0.5

0

0.5

1

Time (sec)

Signa

l Value1. Original

5 Hz signal

0 5 10 15 20 250

100

200

300

400

500

600

Frequency (Hz)

Signa

l Str

eng

th

0 5 10 15 20 250

100

200

300

400

500

600

Frequency (Hz)

Signa

l Str

eng

th

Adding high frequency components creates jagged edges in the original 5 Hz signal.

BW = 5 Hz

BW = 10 Hz

BW = 15 Hz

Page 5: Multirate Signal Processing* Tutorial using MATLAB**tinoosh/cmpe691/slides/multi...Multirate Signal Processing* Tutorial using MATLAB** I. Signal processing background II. Downsample

0 5 10 15 20 25 30 350

100

200

300

400

500

600

Frequency (Hz)

Signa

l Str

eng

th

• In order to sample the signal without losing information, use a sampling rate (SR) of at least the Nyquist Rate (NR), which is 2 x BW of the received analog signal.

Signal bandwidthBW = 15 Hz

Nyquist Rate NR

= 2 x 15Hz = 30 Hz

RULE: Sampling Rate SR ≥ Nyquist Rate NR

Sampling the signal: Nyquist Rate

Page 6: Multirate Signal Processing* Tutorial using MATLAB**tinoosh/cmpe691/slides/multi...Multirate Signal Processing* Tutorial using MATLAB** I. Signal processing background II. Downsample

0 5 10 15 20 25 30 35 400

50

100

150

200

Frequency (Hz)

Signa

l Str

eng

th

Since Bandwidth BW = 15 Hz,

the Nyquist Rate NR = 2 x 15Hz = 30Hz.

RULE #1: Sampling Rate SR ≥ Nyquist Rate NR

Signal bandwidthBW = 15 Hz

Nyquist Rate NR = 30 Hz

Sample RateSR = 40 Hz

0 0.2 0.4 0.6 0.8 1

-1

0

1

2

3

Time (sec)

Signa

l Value

Let Sample Rate SR = 40 Hz,

so sample signal every 0.025 sec (25 milliseconds).

Sampling the signal: Nyquist Rate

Page 7: Multirate Signal Processing* Tutorial using MATLAB**tinoosh/cmpe691/slides/multi...Multirate Signal Processing* Tutorial using MATLAB** I. Signal processing background II. Downsample

0 5 10 15 20 25 30 35 400

50

100

150

200

Frequency (Hz)

Signa

l Str

eng

th

Sampling the signal: Nyquist Freq• The Nyquist Frequency (NF) is equal to half of the sampling rate

(SR). The NF must be equal to or greater than the bandwidth BW of the desired signal to reconstruct.

Signal bandwidthBW = 15 Hz

Nyquist Freq NF

= 40/2 = 20 Hz

Rule #2: Nyquist Frequency NF ≥ Bandwidth BW

Sample RateSR = 40 Hz

Page 8: Multirate Signal Processing* Tutorial using MATLAB**tinoosh/cmpe691/slides/multi...Multirate Signal Processing* Tutorial using MATLAB** I. Signal processing background II. Downsample

II. Downsample Example

Page 9: Multirate Signal Processing* Tutorial using MATLAB**tinoosh/cmpe691/slides/multi...Multirate Signal Processing* Tutorial using MATLAB** I. Signal processing background II. Downsample

Recall, our original signal at 5Hz…

0 0.2 0.4 0.6 0.8 1

-1

0

1

2

3

Time (sec)

Signa

l Value

2. We added 10 & 15 Hz components!

0 0.2 0.4 0.6 0.8 1

-1

-0.5

0

0.5

1

Time (sec)

Signa

l Value

1. Original 5 Hz signal

0 5 10 15 20 250

100

200

300

400

500

600

Frequency (Hz)

Signa

l Str

eng

th

0 5 10 15 20 250

100

200

300

400

500

600

Frequency (Hz)

Signa

l Str

eng

th

BW = 5 Hz

BW = 15 Hz

3. Then we sampled at SR1 = 40Hz

BW = 15 Hz0 0.2 0.4 0.6 0.8 1

-1

0

1

2

3

Time (sec)

Signa

l Value

0 5 10 15 20 250

50

100

150

200

Frequency (Hz)

Signa

l Str

eng

th

Page 10: Multirate Signal Processing* Tutorial using MATLAB**tinoosh/cmpe691/slides/multi...Multirate Signal Processing* Tutorial using MATLAB** I. Signal processing background II. Downsample

Resample the sampled signal: downsampling

4

Downsample by 4 means to retain only every 4th sample

Sample Rate 1 SR1 = 40Hz Sample Rate 2 SR2 = 10 Hz

NF1 = 20Hz > 15Hz = BW NF2 = 5Hz < 15Hz = BW

GOOD! BAD!

0 0.2 0.4 0.6 0.8 1

-1

0

1

2

3

Time (sec)

Signa

l Value

0 0.2 0.4 0.6 0.8 1

-1

0

1

2

3

Time (sec)

Signa

l Value

Page 11: Multirate Signal Processing* Tutorial using MATLAB**tinoosh/cmpe691/slides/multi...Multirate Signal Processing* Tutorial using MATLAB** I. Signal processing background II. Downsample

0 5 10 15 20 25 30 35 400

50

100

150

200

Frequency (Hz)

Signa

l Str

eng

th

Nyquist Freq < Bandwidth

Signal bandwidthBW = 15 Hz

Nyquist Freq 2 NF2 = 10/2 = 5 Hz

Cannot recover original signal bandwidth, since new Nyquist Frequency (5Hz) is less than the desired signal bandwdidth BW (15Hz).

Is the original 5Hz signal recoverable? It should be, since NF2 ≥ BW 5 Hz

Nyquist Freq 1 NF1 = 40/2 = 20 Hz

NF2 < BW means we cannot recover 15Hz BW signal

Page 12: Multirate Signal Processing* Tutorial using MATLAB**tinoosh/cmpe691/slides/multi...Multirate Signal Processing* Tutorial using MATLAB** I. Signal processing background II. Downsample

0 5 10 15 20 25 30 35 400

50

100

150

200

Frequency (Hz)

Signa

l Str

eng

th

Why 5Hz signal not recoverable: High Frequency band causes aliasing when

downsampled

Signal bandwidthBW = 15 Hz

Nyquist Freq 2 NF2 = 10/2 = 5 Hz

Nyquist Freq 1 NF1 = 40/2 = 20 Hz

NF2 NF1

High frequency band

Will wrap down to 0Hz

High frequency band will wrap down to 0Hz when downsampled

Page 13: Multirate Signal Processing* Tutorial using MATLAB**tinoosh/cmpe691/slides/multi...Multirate Signal Processing* Tutorial using MATLAB** I. Signal processing background II. Downsample

Why 5Hz signal not recoverable: Aliasing Effects

0 0.2 0.4 0.6 0.8 1

-1

0

1

2

3

Time (sec)

Signa

l Value

0 5 10 15 20 25 30 35 400

20

40

60

80

100

120

140

160

180

Frequency (Hz)

Signa

l Str

eng

thAliasing effects: high frequency components wrapped around to 0Hz!

Recovered 5Hz component

SR2 = 10 Hz

Due to the high frequency components at 10Hz and 15Hz that show up at 0Hz when the signal is downsampled, the 5Hz component is not recoverable.

… unless we remove the high frequency components before downsampling.

Page 14: Multirate Signal Processing* Tutorial using MATLAB**tinoosh/cmpe691/slides/multi...Multirate Signal Processing* Tutorial using MATLAB** I. Signal processing background II. Downsample

How to Remove the High Frequency components before downsampling using a

low-pass filter

• A low-pass filter (LPF) removes high frequency components by only letting low frequency components pass through.

0 5 10 15 20 25 30 35 400

50

100

150

200

Frequency (Hz)

Signa

l Str

eng

th

It removes the jagged edges that were due to high frequencies.

0 0.2 0.4 0.6 0.8 1

-1

0

1

2

3

Time (sec)

Signa

l Value

LPF

LPF

4 4.2 4.4 4.6 4.8 5

-1

-0.5

0

0.5

1

Time (sec)

Signa

l Value

0 5 10 15 20 25 30 35 400

20

40

60

80

100

Frequency (Hz)

Signa

l Str

eng

th

Page 15: Multirate Signal Processing* Tutorial using MATLAB**tinoosh/cmpe691/slides/multi...Multirate Signal Processing* Tutorial using MATLAB** I. Signal processing background II. Downsample

0 5 10 15 20 25 30 35 400

50

100

150

200

Frequency (Hz)

Signa

l Str

eng

th

Proof in the pudding: No more aliasing effects when using low pass filter!

0 5 10 15 20 25 30 35 400

1

2

3

4

5

Frequency (Hz)

Signa

l Str

eng

th

LPF 4

SR1 = 40 Hz SR2 = 10 Hz

The original 5Hz signal is successfully recovered!

Page 16: Multirate Signal Processing* Tutorial using MATLAB**tinoosh/cmpe691/slides/multi...Multirate Signal Processing* Tutorial using MATLAB** I. Signal processing background II. Downsample

Proof in the pudding: LPF+downsampling <==> multirate polyphase filter resampling

LPF 4

MATLAB’S*Polyphase-filter

Implemented Resample (by 1/4)

Function

Sample Rate 1SR1 = 40 Hz

Sample Rate 2SR2 = 10 Hz

Sample Rate 2SR2 = 10 Hz

* MATLAB is an industry standard software which performed all

computations and corresponding figures in this presentation

0 5 10 15 20 25 30 35 400

50

100

150

200

Frequency (Hz)

Signa

l Str

eng

th

0 5 10 15 20 25 30 35 400

1

2

3

4

5

Frequency (Hz)

Signa

l Str

eng

th

Page 17: Multirate Signal Processing* Tutorial using MATLAB**tinoosh/cmpe691/slides/multi...Multirate Signal Processing* Tutorial using MATLAB** I. Signal processing background II. Downsample

III. Upsampling example

Page 18: Multirate Signal Processing* Tutorial using MATLAB**tinoosh/cmpe691/slides/multi...Multirate Signal Processing* Tutorial using MATLAB** I. Signal processing background II. Downsample

Assume our original signal at 5Hz…

0 0.2 0.4 0.6 0.8 1

-1

-0.5

0

0.5

1

Time (sec)

Signa

l Value

1. Original 5 Hz signal

0 5 10 15 20 250

100

200

300

400

500

600

Frequency (Hz)

Signa

l Str

eng

th

BW = 5 Hz

2. We sample at SR1 = 15Hz

BW = 5Hz

Nyquist Rate NR = 2 x BW 5Hz = 10Hz, so sample at sampling rate SR = 15Hz

0 0.2 0.4 0.6 0.8 1

-1

-0.5

0

0.5

1

Time (sec)

Signa

l Value

0 5 10 15 20 250

50

100

150

200

250

Frequency (Hz)

Signa

l Str

eng

th

Page 19: Multirate Signal Processing* Tutorial using MATLAB**tinoosh/cmpe691/slides/multi...Multirate Signal Processing* Tutorial using MATLAB** I. Signal processing background II. Downsample

Resample the sampled signal: upsampling

0 0.2 0.4 0.6 0.8 1

-1

-0.5

0

0.5

1

Time (sec)

Signa

l Value

If you need to increase the number of samples in a given time by a factor of 5, you upsample by 5 (insert 5-1=4 zeros between each sample).

5

Sample Rate 1SR1 = 15 Hz

Sample Rate 2 SR2 = 75 Hz

0 0.05 0.1 0.15 0.2

-1

-0.5

0

0.5

1

Time (sec)Signa

l Value

0.2 sec 0.2 sec

Page 20: Multirate Signal Processing* Tutorial using MATLAB**tinoosh/cmpe691/slides/multi...Multirate Signal Processing* Tutorial using MATLAB** I. Signal processing background II. Downsample

Upsampled signal in frequency representation

0 0.2 0.4 0.6 0.8 1

-1

-0.5

0

0.5

1

Time (sec)

Signa

l Value

5Sample Rate 1SR1 = 15 Hz

Sample Rate 2 SR2 = 75 Hz

0 0.05 0.1 0.15 0.2

-1

-0.5

0

0.5

1

Time (sec)

Signa

l Value

0 5 10 15 20 25 30 35 400

20

40

60

80

100

120

Frequency (Hz)

Signa

l Str

eng

th

0.2 sec0.2 sec

0 5 10 15 20 25 30 35 400

50

100

150

200

250

Frequency (Hz)

Signa

l Str

eng

th

Oops!

Page 21: Multirate Signal Processing* Tutorial using MATLAB**tinoosh/cmpe691/slides/multi...Multirate Signal Processing* Tutorial using MATLAB** I. Signal processing background II. Downsample

0 5 10 15 20 25 30 35 400

50

100

150

200

250

Frequency (Hz)

Signa

l Str

eng

th

Upsampling causes aliasing in higher frequencies

5

0 5 10 15 20 25 30 35 400

20

40

60

80

100

120

Frequency (Hz)

Signa

l Str

eng

th

Signal bandwidthBW = 5 Hz

Signal bandwidthBW = 5 Hz

Mirror Images at:

15 – 5 = 10 Hz

15 + 5 = 20 Hz

2*15 - 5 = 25 Hz

2*15 + 15 = 35 Hz

Sample Rate 1SR1 = 15 Hz

Upsampling causes copies of the original 5Hz component at multiples of original sampling rate, 15Hz, plus/minus 5Hz

How do we remove these extra high frequency components?

Page 22: Multirate Signal Processing* Tutorial using MATLAB**tinoosh/cmpe691/slides/multi...Multirate Signal Processing* Tutorial using MATLAB** I. Signal processing background II. Downsample

How to remove the extra high frequency components caused by upsampling

using a low-pass filter

0 5 10 15 20 25 30 35 400

20

40

60

80

100

120

Frequency (Hz)

Signa

l Str

eng

th

LPF

0 5 10 15 20 25 30 35 400

2

4

6

8

Frequency (Hz)

Signa

l Str

eng

th

Low pass filter removes these extra high frequency components

Page 23: Multirate Signal Processing* Tutorial using MATLAB**tinoosh/cmpe691/slides/multi...Multirate Signal Processing* Tutorial using MATLAB** I. Signal processing background II. Downsample

0 5 10 15 20 25 30 35 400

50

100

150

200

250

Frequency (Hz)

Signa

l Str

eng

th

Proof in the pudding: No more aliasing effects when using low pass filter!

SR1 = 40 Hz SR2 = 10 Hz

All high frequency copies of the 5Hz signal are removed!

LPF5

0 5 10 15 20 25 30 35 400

2

4

6

8

Frequency (Hz)

Signa

l Str

eng

th

Page 24: Multirate Signal Processing* Tutorial using MATLAB**tinoosh/cmpe691/slides/multi...Multirate Signal Processing* Tutorial using MATLAB** I. Signal processing background II. Downsample

0 5 10 15 20 25 30 35 400

50

100

150

200

250

Frequency (Hz)

Signa

l Str

eng

th

0 5 10 15 20 25 30 35 400

2

4

6

8

Frequency (Hz)

Signa

l Str

eng

th

Proof in the pudding: upsampling and lowpass filter <==> multirate polyphase

filter resampling

LPF5

MATLAB’S*Polyphase-filter

Implemented Resample (by 5)

Function

0 5 10 15 20 25 30 35 400

100

200

300

400

500

Frequency (Hz)

Signa

l Str

eng

th

Sample Rate 1SR1 = 15 Hz

Sample Rate 2SR2 = 75 Hz

Sample Rate 2SR2 = 75 Hz

* MATLAB is an industry standard software which performed all

computations and corresponding figures in this presentation