In
digital signal processing
Digital signal processing (DSP) is the use of digital processing, such as by computers or more specialized digital signal processors, to perform a wide variety of signal processing operations. The digital signals processed in this manner are ...
, upsampling, expansion, and interpolation are terms associated with the process of
resampling in a
multi-rate digital signal processing
Sample-rate conversion, sampling-frequency conversion or resampling is the process of changing the sampling rate or sampling frequency of a discrete signal to obtain a new discrete representation of the underlying continuous signal. Application ar ...
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
Density (volumetric mass density or specific mass) is the substance's mass per unit of volume. The symbol most often used for density is ''ρ'' (the lower case Greek letter rho), although the Latin letter ''D'' can also be used. Mathematical ...
, as in the case of a photograph). For example, if compact disc
The compact disc (CD) is a Digital media, digital optical disc data storage format that was co-developed by Philips and Sony to store and play digital audio recordings. In August 1982, the first compact disc was manufactured. It was then rele ...
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
Rate increase by an integer factor ''L'' can be explained as a 2-step process, with an equivalent implementation that is more efficient:[
#Expansion: Create a sequence, comprising the original samples, separated by ''L'' − 1 zeros. A notation for this operation is:
#Interpolation: Smooth out the discontinuities with a ]lowpass filter
A low-pass filter is a filter that passes signals with a frequency lower than a selected cutoff frequency and attenuates signals with frequencies higher than the cutoff frequency. The exact frequency response of the filter depends on the 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
In mathematics, the dot product or scalar productThe term ''scalar product'' means literally "product with a scalar as a result". It is also used sometimes for other symmetric bilinear forms, for example in a pseudo-Euclidean space. is an algebra ...
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:
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 In digital signal processing, half-band filters are widely used for their efficiency in multi-rate applications. A half-band filter is a low-pass filter that reduces the maximum bandwidth of sampled data by a factor of 2 (one octave). When multipl ...
, 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