interp - Interpolation — increase sampling rate by integer factor

Syntax

y = interp(x,r)
y = interp(x,r,l,alpha)
[y,b] = interp(x,r,l,alpha)

Description

Interpolation increases the original sampling rate for a sequence to a higher rate. interp performs lowpass interpolation by inserting zeros into the original sequence and then applying a special lowpass filter. The filter returned by intfilt is identical to the filter used by interp.

y = interp(x,r) increases the sampling rate of x by a factor of r. The interpolated vector y is r times longer than the original input x.

y = interp(x,r,l,alpha) specifies l (filter length) and alpha (cut-off frequency). The default value for l is 4 and the default value for alpha is 0.5.

[y,b] = interp(x,r,l,alpha) returns vector b containing the filter coefficients used for the interpolation.

Examples

Interpolate a signal by a factor of four:

t = 0:0.001:1;     % Time vector
x = sin(2*pi*30*t) + sin(2*pi*60*t);
y = interp(x,4);
stem(x(1:30)); 
title('Original Signal');
figure
stem(y(1:120)); 
title('Interpolated Signal');

Algorithm

interp uses the lowpass interpolation Algorithm 8.1 described in [1]:

  1. It expands the input vector to the correct length by inserting zeros between the original data values.

  2. It designs a special symmetric FIR filter that allows the original data to pass through unchanged and interpolates between so that the mean-square errors between the interpolated points and their ideal values are minimized.

  3. It applies the filter to the input vector to produce the interpolated output vector.

The length of the FIR lowpass interpolating filter is 2*l*r+1. The number of original sample values used for interpolation is 2*l. Ordinarily, l should be less than or equal to 10. The original signal is assumed to be band limited with normalized cutoff frequency 0≤alpha≤1, where 1 is half the original sampling frequency (the Nyquist frequency). The default value for l is 4 and the default value for alpha is 0.5.

Diagnostics

If r is not an integer, interp gives the following error message:

Resampling rate R must be an integer.

References

[1] Programs for Digital Signal Processing, IEEE Press, New York, 1979, Algorithm 8.1.

See Also

decimate, downsample, interp1, intfiltresample, spline, upfirdn, upsample

  


 © 1984-2008- The MathWorks, Inc.    -   Site Help   -   Patents   -   Trademarks   -   Privacy Policy   -   Preventing Piracy   -   RSS