| Signal Processing Toolbox | ![]() |
Increase sampling rate by an integer factor (interpolation)
Syntax
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.
y increases the sampling rate of = interp(x,r)
x by a factor of r. The interpolated vector y is r times longer than the original input x.
y specifies = interp(x,r,l,alpha)
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] returns vector = interp(x,r,l,alpha)
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]:
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:
See Also
decimate, downsample, interp1, resample, spline, upfirdn, upsample
References
[1] Programs for Digital Signal Processing, IEEE Press, New York, 1979, Algorithm 8.1.
| impz | intfilt | ![]() |