# Upsampling

Short description: Resampling method

In digital signal processing, upsampling, expansion, and interpolation are terms associated with the process of resampling in a multi-rate digital signal processing system. Upsampling can be synonymous with expansion, or it can describe an entire process of expansion and filtering (interpolation). When upsampling is performed on a sequence of samples of a signal or other continuous function, it produces an approximation of the sequence that would have been obtained by sampling the signal at a higher rate (or density, as in the case of a photograph). For example, if compact disc audio at 44,100 samples/second is upsampled by a factor of 5/4, the resulting sample-rate is 55,125.

## Upsampling by an integer factor Fig 1: Depiction of one dot product, resulting in one output sample (in green), for the case L=4, n=9, j=3. Three conceptual "inserted zeros" are depicted between each pair of input samples. Omitting them from the calculation is what distinguishes a multirate filter from a monorate filter.

Rate increase by an integer factor L can be explained as a 2-step process, with an equivalent implementation that is more efficient:

1. Expansion: Create a sequence, $\displaystyle{ x_L[n], }$, comprising the original samples, $\displaystyle{ x[n], }$ separated by L − 1 zeros.  A notation for this operation is:  $\displaystyle{ x_L[n] = x[n]_{\uparrow L}. }$
2. Interpolation: Smooth out the discontinuities with a lowpass filter, which replaces the zeros.

In this application, the filter is called an interpolation filter, and its design is discussed below. When the interpolation filter is an FIR type, its efficiency can be improved, because the zeros contribute nothing to its dot product calculations. It is an easy matter to omit them from both the data stream and the calculations. The calculation performed by a multirate interpolating FIR filter for each output sample is a dot product:[lower-alpha 1][upper-alpha 1]

$\displaystyle{ y[j+nL] = \sum_{k=0}^K x[n-k]\cdot h[j+kL],\ \ j = 0,1,\ldots,L-1, }$   and for any $\displaystyle{ n }$

(Eq.1)

where the h[•] sequence is the impulse response of the interpolation filter, and K is the largest value of k for which h[j + kL] is non-zero. In the case L = 2, h[•] can be designed as a half-band filter, where almost half of the coefficients are zero and need not be included in the dot products. Impulse response coefficients taken at intervals of L form a subsequence, and there are L such subsequences (called phases) multiplexed together. Each of L phases of the impulse response is filtering the same sequential values of the x[•] data stream and producing one of L sequential output values. In some multi-processor architectures, these dot products are performed simultaneously, in which case it is called a polyphase filter.

For completeness, we now mention that a possible, but unlikely, implementation of each phase is to replace the coefficients of the other phases with zeros in a copy of the h[•] array, and process the $\displaystyle{ x_L[n] }$  sequence at L times faster than the original input rate. Then L-1 of every L outputs are zero. The desired y[•] sequence is the sum of the phases, where L-1 terms of the each sum are identically zero.  Computing L-1 zeros between the useful outputs of a phase and adding them to a sum is effectively decimation. It's the same result as not computing them at all. That equivalence is known as the second Noble identity. It is sometimes used in derivations of the polyphase method.

## Interpolation filter design Fig 2: The first and third graphs depict the discrete-time Fourier transforms of a sampled function and the same function sampled 3 times faster. The second graph shows the transform of a sequence derived from the low-rate samples by inserting 2 zeros in-between each pair of real samples. It is identical to the first graph, except the numeral 3 is replaced by symbol L. A lowpass filter with bandwidth 0.5/T is also depicted. When applied to the zero-inserted sequence, its spectral output resembles the third graph, which is the desired result of interpolation. The maximum filter bandwidth is tabulated in the frequency units used by the common filter design applications.

Let X(f) be the Fourier transform of any function, x(t), whose samples at some interval, T, equal the x[n] sequence. Then the discrete-time Fourier transform (DTFT) of the x[n] sequence is the Fourier series representation of a periodic summation of X(f):[lower-alpha 2]

$\displaystyle{ \underbrace{ \sum_{n=-\infty}^\infty \overbrace{x(nT)}^{x[n]}\ e^{-i 2\pi f nT}}_{\text{DTFT}} = \frac{1}{T}\sum_{k=-\infty}^{\infty} X\Bigl(f - \frac{k}{T}\Bigr). }$

(Eq.2)

When T has units of seconds, $\displaystyle{ f }$ has units of hertz (Hz). Sampling L times faster (at interval T/L) increases the periodicity by a factor of L:[lower-alpha 3]

$\displaystyle{ \frac{L}{T}\sum_{k=-\infty}^\infty X\left(f-k\cdot \frac{L}{T}\right), }$

(Eq.3)

which is also the desired result of interpolation. An example of both these distributions is depicted in the first and third graphs of Fig.2.

When the additional samples are inserted zeros, they increase the data rate, but they have no effect on the frequency distribution until the zeros are replaced by the interpolation filter, depicted in the second graph. Its application makes the first two graphs resemble the third one. Its bandwidth is the Nyquist frequency of the original x[n] sequence.[upper-alpha 2]  In units of Hz that value is $\displaystyle{ \tfrac{0.5}{T}, }$  but filter design applications usually require normalized units. (see Fig 2, table)

## Upsampling by a fractional factor

Let L/M denote the upsampling factor, where L > M.

1. Upsample by a factor of L
2. Downsample by a factor of M

Upsampling requires a lowpass filter after increasing the data rate, and downsampling requires a lowpass filter before decimation. Therefore, both operations can be accomplished by a single filter with the lower of the two cutoff frequencies. For the L > M case, the interpolation filter cutoff,  $\displaystyle{ \tfrac{0.5}{L} }$ cycles per intermediate sample, is the lower frequency.