Table of Contents
Easy guide on interpolation! Describes upsampling and how to build the appropriate low pass filter. A sine wave is used for clarity but this applies to all discrete-time signals.
More DSP blogs!
Interpolation in the process of increasing the number of samples between two known data points. Interpolation in DSP increases the number of samples between discrete-time samples through the process of upsampling and low pass filtering. Interpolation increases the sampling rate for a signal such that a signal will appear to be sampled at a higher frequency.
Figure 1 shows the same sine wave with two sampling rates. Interpolation by 5 increases the number of samples, from 15 samples in low sampling rate sine wave to 125 samples in the high sampling rate sine wave.
Interpolation is a two step process: upsampling followed by low pass filtering.
Upsampling is the process of zero-padding a time-series. Upsampling by M increases the number of samples by M through inserting M-1 zero samples after each input sample. Figure 2 shows the low sample rate sine wave being upsampled by 5. Each sample is followed by 4 zeros.
Increasing the number of output samples for every 1 input sample increases the sample rate. Increasing the number of samples by 5 equivalently increases the sampling rate by a factor of 5.
The zeros in Figure 2 need to be smoothed using a low pass filter.
Low Pass Filtering
Low pass filtering is needed to smooth the zero-padded signal to fill in the gaps between the non-zero samples. A low pass filter is designed with a cut-off frequency of
where is the sampling rate and M is the interpolation factor [oppenheim1999, p.173]. Figure 3 shows the result after low pass filtering with a Remez-designed filter from this blog post with a normalized cutoff frequency of where M=5.
Scipy’s remez() designs filters with 0 dB gain, or a linear gain of 1. The zero-padding due to the upsampling reduces the average signal level of the sinusoid, therefore a gain of M=5 is applied to the signal. The filter is also designed to have an odd-length to avoid a non-integer delay in the filter output.
Figure 5 shows how the samples of the complex sinusoid sampled at a higher rate overlaps with the samples of the interpolated complex sinusoid which started with a lower sampling rate.
Interpolation is a two step process: upsampling and low pass filtering. The LPF must have a cutoff frequency of and a gain of M when interpolating by a factor of M.
More DSP blogs!