Main Content

Resampling Data at the Command Line

Use resample to decimate and interpolate time-domain iddata objects. You can specify the order of the antialiasing filter as an argument.

Note

resample uses the Signal Processing Toolbox™ command, when this toolbox is installed on your computer. If this toolbox is not installed, use idresamp instead. idresamp only lets you specify the filter order, whereas resample also lets you specify filter coefficients and the design parameters of the Kaiser window.

To create a new iddata object datar by resampling data, use the following syntax:

datar = resample(data,P,Q,filter_order)

In this case, P and Q are integers that specify the new sample time: the new sample time is Q/P times the original one. You can also specify the order of the resampling filter as a fourth argument filter_order, which is an integer (default is 10). For detailed information about resample, see the corresponding reference page.

For example, resample(data,1,Q) results in decimation with the sample time modified by a factor Q.

The next example shows how you can increase the sampling rate by a factor of 1.5 and compare the signals:

plot(u)
ur = resample(u,3,2);
plot(u,ur)

When the Signal Processing Toolbox product is not installed, using resample calls idresamp instead.

idresamp uses the following syntax:

datar = idresamp(data,R,filter_order)

In this case, R=Q/P, which means that data is interpolated by a factor P and then decimated by a factor Q. To learn more about idresamp, type help idresamp.

The data.InterSample property of the iddata object is taken into account during resampling (for example, first-order hold or zero-order hold). For more information, see iddata Properties.

Related Examples

More About