Best way to resample the output of a Simulink simulation with variable time step into a signal with a fixed sample time
조회 수: 19 (최근 30일)
이전 댓글 표시
I have a simulation model that runs with a variable timestep:
![](https://www.mathworks.com/matlabcentral/answers/uploaded_files/396438/image.png)
(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.
댓글 수: 0
채택된 답변
Ameer Hamza
2020년 10월 29일
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
추가 답변 (0개)
참고 항목
카테고리
Help Center 및 File Exchange에서 Multirate Signal Processing에 대해 자세히 알아보기
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!