extracting values from bode()
85 views (last 30 days)
Show older comments
Hi,
I know that you can do the following to get the magnitude phase and w from using the bode() call (which requires transfer function input.
[mag, phase, wout] = bode(sys)
The problem I am having with this call was that the vectors that are returned are of too small. I see in the doc that the size of the array depends on NY and NU input and outputs, but i'm not quite sure how to increase NY and NU so that I can extract more values from the bode plot.
This is particularly confusing because when you call bode(), you have many many points that go from small frequencies to very large, so I don't know why when you extract mag and phase, it limits it to a certain sized vector.
All suggestions are appreciated. Tia
0 Comments
Accepted Answer
Craig
on 8 May 2012
Hi,
The NY and NU sizes are based on the number IOs (inputs and outputs) your system has and would be fixed. You can compute the response at various frequencies with the resulting mag and phase being a NY-by-Nu-by-Nw vector where Nw is the number of frequency points. If you are trying to extract data at more frequencies or a specific set of frequencies you can specify the frequency vector explicitly
[mag,phase,wout] = bode(sys,win)
In this case win = wout. For example, evaluating 100 points equally logrithmic spaced points between 10^-1 and 10 would be done has follows
[mag,phase,wout] = bode(sys, logspace(-1,1,100))
0 Comments
More Answers (0)
See Also
Categories
Find more on Plot Customization in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!