<<

Multirate Processing* Tutorial using MATLAB**

By, Deborah Goshorn [email protected]

I. 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 I. Signal processing background 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:

1 600

500 0.5 400 Peak signal 0

300 strength at 5 Hz SignalValue

-0.5 200 SignalStrength

100 -1 0 0.2 0.4 0.6 0.8 1 0 Time (sec) 0 BW 5 10 15 20 25 Frequency (Hz) time representation (sec) frequency representation (Hz) Add high frequency components 600 1 500

0.5 400

1. Original 300 0

5 Hz signal 200

SignalValue SignalStrength -0.5 100 BW = 5 Hz Adding high -1 0 0 5 10 15 20 25 0 0.2 0.4 0.6 0.8 1 Frequency (Hz) Time (sec) frequency

600 components

2 500 creates 2. Add a 1.5 400 jagged 10 Hz 1 300 edges in 0.5 component 200

0 SignalStrength the original SignalValue 100 BW = 10 Hz -0.5 5 Hz signal. 0 -1 0 5 10 15 20 25 Frequency (Hz) 0 0.2 0.4 0.6 0.8 1 Time (sec) 600 3

500 3. Then add 2 a 15 Hz 400 1 component! 300

SignalValue 0 200 SignalStrength

100 BW = 15 Hz -1 0 0 0.2 0.4 0.6 0.8 1 0 5 10 15 20 25 Time (sec) Frequency (Hz) Sampling the signal:

• 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. 600

500

400

300

SignalStrength 200 Signal Nyquist Rate NR bandwidth = 2 x 15Hz 100 BW = 15 Hz = 30 Hz

0 0 5 10 15 20 25 30 35 Frequency (Hz)

RULE: Sampling Rate SR ≥ Nyquist Rate NR Sampling the signal: Nyquist Rate

Since Bandwidth BW = 15 Hz,

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

RULE #1: Sampling Rate SR ≥ Nyquist Rate NR

200 3

2 150

1 100

Signal SignalValue 0

SignalStrength bandwidth 50 BW = 15 Hz Sample Rate SR = 40 Hz -1

0 0 0.2 0.4 0.6 0.8 1 0 5 10 15 20 25 30 35 40 Time (sec) Frequency (Hz) Let Sample Rate S = 40 Hz, R Nyquist Rate so sample signal every 0.025 sec (25 milliseconds). NR = 30 Hz Sampling the signal: Nyquist Freq

• The (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.

Rule #2: Nyquist Frequency NF ≥ Bandwidth BW

200

150

100

Nyquist Freq NF

SignalStrength Signal 50 = 40/2 bandwidth = 20 Hz BW = 15 Hz

Sample Rate 0 S 0 5 10 15 20 25 30 35 40 R = 40 Hz Frequency (Hz) II. Downsample Example Recall, our original signal at 5Hz…

600 1

500 1. Original 0.5 400

5 Hz signal 0 300

SignalValue 200

-0.5 SignalStrength

BW = 5 Hz 100 -1 0 0 0.2 0.4 0.6 0.8 1 0 5 10 15 20 25 Time (sec) Frequency (Hz)

3 2. We added 600 2 500

10 & 15 Hz 400 1 components! 300

SignalValue 0 200 BW = 15 Hz SignalStrength -1 100

0 0.2 0.4 0.6 0.8 1 0 Time (sec) 0 5 10 15 20 25 Frequency (Hz)

200 3 3. Then we 2 150 sampled at 1 100 SR1 = 40Hz SignalValue 0 SignalStrength 50 BW = 15 Hz -1 0 0 0.2 0.4 0.6 0.8 1 0 5 10 15 20 25 Time (sec) Frequency (Hz) Resample the sampled signal: downsampling

Downsample by 4 means to retain only every 4th sample

3 3

2 2

1 4 1 SignalValue SignalValue 0 0

-1 -1

0 0.2 0.4 0.6 0.8 1 0 0.2 0.4 0.6 0.8 1 Time (sec) Time (sec) Sample Rate 1 S = 40Hz R1 Sample Rate 2 SR2 = 10 Hz N = 20Hz > 15Hz = BW F1 NF2 = 5Hz < 15Hz = BW GOOD! BAD! Nyquist Freq < Bandwidth  Cannot recover original signal bandwidth, since new Nyquist Frequency (5Hz) is less than the desired signal bandwdidth BW (15Hz).

NF2 < BW means we cannot recover 15Hz BW signal

200

150

100

Signal Nyquist Freq 1 Nyquist Freq 2 SignalStrength 50 bandwidth NF1 = 40/2 NF2 = 10/2 = 5 Hz BW = 15 Hz = 20 Hz

0 0 5 10 15 20 25 30 35 40 Frequency (Hz)

Is the original 5Hz signal recoverable? It should be, since NF2 ≥ BW 5 Hz Why 5Hz signal not recoverable: High Frequency band causes when downsampled Will wrap down to 0Hz 200

150

100 Nyquist Freq 1 NF1 = 40/2 Signal Nyquist Freq 2 SignalStrength = 20 Hz 50 bandwidth NF2 = 10/2 = 5 Hz BW = 15 Hz

0 0 5 10 15 20 25 30 35 40 Frequency (Hz) High frequency band NF2 NF1

High frequency band will wrap down to 0Hz when downsampled Why 5Hz signal not recoverable: Aliasing Effects

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.

180 3 160

140 Recovered 5Hz 2 component 120

1 100

80

SignalValue 0 SignalStrength 60 Aliasing effects: high

-1 40 frequency components

20 wrapped around to 0Hz! 0 0.2 0.4 0.6 0.8 1 Time (sec) 0 0 5 10 15 20 25 30 35 40 Frequency (Hz) SR2 = 10 Hz

… unless we remove the high frequency components before downsampling. 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.

200 100

150 80

60 100 LPF 40

SignalStrength 50 SignalStrength 20

0 0 5 10 15 20 25 30 35 40 0 Frequency (Hz) 0 5 10 15 20 25 30 35 40 Frequency (Hz) It removes the jagged edges that were due to high frequencies.

3 1

2 0.5

1

LPF 0 SignalValue 0 SignalValue -0.5

-1 -1 0 0.2 0.4 0.6 0.8 1 4 4.2 4.4 4.6 4.8 5 Time (sec) Time (sec) Proof in the pudding: No more aliasing effects when using low pass filter!

200 5

150 4

3 100 LPF 4 2

SignalStrength 50 SignalStrength 1 0 0 5 10 15 20 25 30 35 40 Frequency (Hz) 0 0 5 10 15 20 25 30 35 40 Frequency (Hz) S = 40 Hz R1 SR2 = 10 Hz

The original 5Hz signal is successfully recovered! Proof in the pudding: LPF+downsampling <==> multirate polyphase filter resampling

Sample Rate 2 S = 10 Hz 5 R2

4

3 200 LPF 4 2

150 SignalStrength 1

100 0 0 5 10 15 20 25 30 35 40 Frequency (Hz) SignalStrength 50

0 Sample Rate 2 0 5 10 15 20 25 30 35 40 MATLAB’S* Frequency (Hz) SR2 = 10 Hz Polyphase-filter Implemented Sample Rate 1 Resample (by 1/4) SR1 = 40 Hz Function

* MATLAB is an industry standard software which performed all computations and corresponding figures in this presentation III. example Assume our original signal at 5Hz…

600 1

500 1. Original 0.5 5 Hz signal 400 0 300

SignalValue 200

-0.5 SignalStrength

BW = 5 Hz 100 -1 0 0 0.2 0.4 0.6 0.8 1 0 5 10 15 20 25 Time (sec) Frequency (Hz)

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

250 1 200 2. We sample 0.5 150

at S = 15Hz 0

R1 100

SignalStrength SignalValue -0.5 50 BW = 5Hz -1 0 0 5 10 15 20 25 0 0.2 0.4 0.6 0.8 1 Frequency (Hz) Time (sec) Resample the sampled signal: upsampling 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).

0.2 sec 0.2 sec 1 1

0.5 0.5

0 0 SignalValue 5 SignalValue -0.5 -0.5

-1 -1 0 0.2 0.4 0.6 0.8 1 0 0.05 0.1 0.15 0.2 Time (sec) Time (sec)

Sample Rate 1 Sample Rate 2 SR1 = 15 Hz SR2 = 75 Hz Upsampled signal in frequency representation 0.2 sec 1 1 0.2 sec

0.5 0.5

0 0

SignalValue SignalValue -0.5 -0.5

-1 -1 0 0.2 0.4 0.6 0.8 1 0 0.05 0.1 0.15 0.2 Time (sec) Time (sec) Sample Rate 1 Sample Rate 2 SR2 = 75 Hz SR1 = 15 Hz 5 120 Oops! 250 100

200 80

150 60

100 SignalStrength

40 SignalStrength

50 20

0 0 0 5 10 15 20 25 30 35 40 0 5 10 15 20 25 30 35 40 Frequency (Hz) Frequency (Hz) Upsampling causes aliasing in higher frequencies

Upsampling causes copies of the original 5Hz component at multiples of original sampling rate, 15Hz, plus/minus 5Hz Mirror Images at: 15 – 5 = 10 Hz

120 15 + 5 = 20 Hz 250 2*15 - 5 = 25 Hz 100 2*15 + 15 = 35 Hz 200 … 5 80 150 60

100 SignalStrength 40 Signal SignalStrength bandwidth 50 BW = 5 Hz 20

0 0 0 5 10 15 20 25 30 35 40 Signal 0 5 10 15 20 25 30 35 40 Frequency (Hz) Frequency (Hz) Sample Rate 1 bandwidth SR1 = 15 Hz BW = 5 Hz

How do we remove these extra high frequency components? How to remove the extra high frequency components caused by upsampling using a low-pass filter

120 8

100 6

80

60 4 LPF

SignalStrength 40 SignalStrength 2

20

0 0 0 5 10 15 20 25 30 35 40 0 5 10 15 20 25 30 35 40 Frequency (Hz) Frequency (Hz)

Low pass filter removes these extra high frequency components Proof in the pudding: No more aliasing effects when using low pass filter!

250 8

200 6

150 LPF 4

100 5 SignalStrength SignalStrength 2 50

0 0 0 5 10 15 20 25 30 35 40 0 5 10 15 20 25 30 35 40 Frequency (Hz) Frequency (Hz) S = 40 Hz R1 SR2 = 10 Hz

All high frequency copies of the 5Hz signal are removed! Proof in the pudding: upsampling and lowpass filter <==> multirate polyphase filter resampling 8 Sample Rate 2 SR2 = 75 Hz 6

4 250 5 LPF SignalStrength 2 200

150 0 0 5 10 15 20 25 30 35 40 Frequency (Hz)

100 500 SignalStrength 50 Sample Rate 2 400 S = 75 Hz MATLAB’S* R2 0 0 5 10 15 20 25 30 35 40 300 Frequency (Hz) Polyphase-filter

Implemented 200

Sample Rate 1 Resample (by 5) SignalStrength S = 15 Hz R1 Function 100

0 0 5 10 15 20 25 30 35 40 * MATLAB is an industry standard software which performed all Frequency (Hz) computations and corresponding figures in this presentation