Best way to resample the output of a Simulink simulation with variable time step into a signal with a fixed sample time

4 Ansichten (letzte 30 Tage)
I have a simulation model that runs with a variable timestep:
(I don't want to change this)
For the purpose of system identification it would be convenient to have the output signals sampled at a regular frequency.
This seems to work:
y_resampled = resample(simOut.POW,simOut.POW.Time)
According to the documentation, this resamples the values, simOut.POW, by linear interpolation onto a vector of uniformly spaced instants with the same endpoints and number of samples as simOut.POW.Time.
Not sure if it is the right way to do it or if there is a better function to use.

Akzeptierte Antwort

Ameer Hamza
Ameer Hamza am 29 Okt. 2020
No, resample() samples the signal at vector specified by simOut.POW.Time. So, in this case, it is not doing anything. I suggest using interp1()
t_equally_spaces = min(simOut.POW.Time):0.01:max(simOut.POW.Time);
y_resamples = interp1(simOut.POW.Time, simOut.POW.Data, t_equally_spaces)
  5 Kommentare

Melden Sie sich an, um zu kommentieren.

Weitere Antworten (0)

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by