Signal Processing Toolbox |
Interpolation -- increase sampling rate by integer factor
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 0alpha
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 |
© 1994-2005 The MathWorks, Inc.