Multirate Signal Processing* Tutorial using MATLAB**
By, Deborah Goshorn [email protected]
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 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: Nyquist Rate
• 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 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.
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 aliasing 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. Upsampling 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