How to create Bode plot from measured data
107 views (last 30 days)
Show older comments
Aloha, I have a *.csv file containing three columuns, time, input signal and output signal. The input signal is a sine wave with a continuously increasing frequency and the output signal is the open loop response for my system. I would like to create a bode plot of the data. How would I do this? I know that I need to fit the data somehow so that I can extract the magnitudes and phase, but i'm not sure where to start.
thanks, windell
2 Comments
Answers (1)
Star Strider
on 19 Apr 2016
If you already have a state-space or transfer function representation of your system, then just cut to the chase, use the transfer function representation (or the ss2tf function if necessary), and use the numerator and denominator polynomials with the bode, bodeplot, freqs or freqz functions to create the Bode plot.
----------------------
Otherwise, if your input is a sine of increasing frequency (and that frequency spans the frequency response of your system, essentially a ‘chirp’ signal), you have the magnitude response of your system, so the magnitude part of a Bode plot.
Getting the phase might be a bit more challenging. Taking a wild guess as to your data, I would use the invfreqz function to create a transfer function representation of your system, and then use the bode, bodeplot, or freqz functions to create the Bode plot.
0 Comments
See Also
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!