Note: This page has been translated by MathWorks. Please click here

To view all translated materals including this page, select Japan from the country navigator on the bottom of this page.

To view all translated materals including this page, select Japan from the country navigator on the bottom of this page.

*Resampling* data signals in the System
Identification Toolbox™ product
applies an antialiasing (lowpass) FIR filter to the data and changes
the sampling rate of the signal by decimation or interpolation.

If your data is sampled faster than needed during the experiment, you can decimate it without information loss. If your data is sampled more slowly than needed, there is a possibility that you miss important information about the dynamics at higher frequencies. Although you can resample the data at a higher rate, the resampled values occurring between measured samples do not represent new measured information about your system. Instead of resampling, repeat the experiment using a higher sampling rate.

You should decimate your data when it contains high-frequency noise outside the frequency range of the system dynamics.

Resampling takes into account how the data behaves between samples, which you specify when you import the data into the System Identification app (zero-order or first-order hold). For more information about the data properties you specify before importing the data, see Represent Data.

You can resample data using the System Identification app or
the `resample`

command. You can
only resample time-domain data at uniform time intervals.

For a detailed discussion about handling disturbances, see the
chapter on preprocessing data in *System Identification:
Theory for the User*, Second Edition, by Lennart Ljung,
Prentice Hall PTR, 1999.

Typically, you decimate a signal to remove the high-frequency contributions that result from noise from the total energy. Ideally, you want to remove the energy contribution due to noise and preserve the energy density of the signal.

The command `resample`

performs the decimation
without aliasing effects. This command includes a factor of *T* to
normalize the spectrum and preserve the energy density after decimation.
For more information about spectrum normalization, see Spectrum Normalization.

If you use manual decimation instead of `resample`

—by
picking every fourth sample from the signal, for example—the
energy contributions from higher frequencies are folded back into
the lower frequencies("aliasing"). Because the total signal energy
is preserved by this operation and this energy must now be squeezed
into a smaller frequency range, the amplitude of the spectrum at each
frequency increases. Thus, the energy density of the decimated signal
is not constant.

This example shows how `resample`

avoids folding effects.

Construct a fourth-order moving-average process.

m0 = idpoly(1,[ ],[1 1 1 1]);

m0 is a time-series model with no inputs.

Generate error signal.

`e = idinput(2000,'rgs');`

Simulate the output using the error signal.

sim_opt = simOptions('AddNoise',true,'NoiseData',e); y = sim(m0,zeros(2000,0),sim_opt); y = iddata(y,[],1);

Estimate the signal spectrum.

g1 = spa(y);

Estimate the spectrum of the modified signal including every fourth sample of the original signal. This command automatically sets Ts to 4.

g2 = spa(y(1:4:2000));

Plot the frequency response to view folding effects.

h = spectrumplot(g1,g2,g1.Frequency); opt = getoptions(h); opt.FreqScale = 'linear'; opt.FreqUnits = 'Hz'; setoptions(h,opt);

Estimate the spectrum after prefiltering that does not introduce folding effects.

g3 = spa(resample(y,1,4)); figure spectrumplot(g1,g3,g1.Frequency,opt)

Use `resample`

to decimate the signal before estimating the spectrum and plot the frequency response.

g3 = spa(resample(y,1,4)); figure spectrumplot(g1,g3,g1.Frequency,opt)

The plot shows that the estimated spectrum of the resampled signal has the same amplitude as the original spectrum. Thus, there is no indication of folding effects when you use `resample`

to eliminate aliasing.

Was this topic helpful?