How can I find rise time from an array of values that starts and ends at its steady state?

27 views (last 30 days)
MATLAB says that if I use stepinfo for my code it will calculate rise time which is the "time it takes for the response to rise from 10% to 90% of the steady-state response" and specified in the picture below.
I have multiple waves that are made up of a matrix that is 5119x102 where the columns are the different waves and the rows are time. The matrix is called CHWaveForm_1 but the wave starts at zero and its steady state is also at zero. I have performed a for loop to get the stepinfo from my values but I know the rise time is not calculated correcly since my steady state is at zero. The code I am using as well as one of my waves can be seen below.
for i=1:size(CHWaveForm_1,2)
W(:,i)=[CHWaveForm_1(1200:end,i)];
S=stepinfo(W);
end

Accepted Answer

Star Strider
Star Strider on 3 Jun 2020
Edited: Star Strider on 3 Jun 2020
The stepinfo function will work if you have a Control System Toolbox or System Identification Toolbox ‘system’ object. It will not work on data.
To do that, you need to use Signal Processing Toolbox functions risetime, settlingtime, and perhaps others. However, you likely need to filter your signal first, likely using lowpass (or your own filter design, since those are straightforward in MATLAB) to eliminate as much of the noise as possible.
There are also other possibilities for filtering your signal, however lowpass is likely the easiest first option. It is straightforward to set the cutoff frequency if you first plot the one-sided fft of the signal so you can determine the signal and noise frequencies (since it appears in the time-domain plot to be band-limited noise).
  2 Comments
Kimberly Cardillo
Kimberly Cardillo on 3 Jun 2020
So if I do risetime(CHWaveform_1); it will give me that first rise-time as specified in the second picture I posted?
Star Strider
Star Strider on 3 Jun 2020
After you filter it, perhaps.
The ‘second picture’ apparently plots amplitude, not time. (Note the first pciture.) You have to process your signal to eliminate as much of the noise as possible, and then experiment with the relevant functions to get the result you want.

Sign in to comment.

More Answers (0)

Community Treasure Hunt

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

Start Hunting!