How to change units in Bode Diagram?

213 views (last 30 days)
I want to change the units of frequency and magnitude in the Bode Diagram, How can I do this?

Accepted Answer

MathWorks Support Team
MathWorks Support Team on 4 Feb 2024
Edited: MathWorks Support Team on 4 Feb 2024
There are 3 ways to change the units of a Bode Plot.
A.
Using the Property Editor GUI 
1. In the opened Bode Diagram figure window, go to View -> Property Editor
2. Click on any of the Axes
3. In the 'Property Editor - bodeplot' section, select 'More Properties'. A new Property Editor window opens up.
4. In the 'Units' tab, you would be able to select the Units of Frequency, Magnitude and Phase
B. 
You may also use the 'setoptions' functions for 'bodeplot' objects. For example, to change the frequency to 'Hz', use the following command:
h = gcr
setoptions(h,'FreqUnits','Hz')
For more information about setoptions and how to change properties of a bode diagram from command line, please refer to the following documentation link,
C. 
Alternatively, you can programatically change the units by explicitly modifying the data in the plots. The following example shows how to change the units of Phase from degrees to radians using the graphics objects' properties.
% plot a bode diagram
H = tf([1 0.1 7.5],[1 0.12 9 0 0]);
Hd = c2d(H,0.5,'zoh');
bode(H,'r',Hd,'b--')
% Get the figure handle
h = gcf;
% Change the units of Phase from degrees to radians
u = h.Children(2).Children(2).Children.YData;
h.Children(2).Children(2).Children.YData = u*(pi/180);
% Change the units of Phase degrees to radians
t = h.Children(2).Children(1).Children.YData;
h.Children(2).Children(1).Children.YData = t*(pi/180);
% Set the Y axis limits in visible range
h.Children(2).YLim = [-5 0];
% Change the labels of Phase plot to reflect the change of units
h.Children(2).YLabel.String = 'Phase (rad)';

More Answers (0)

Products


Release

R2011b

Community Treasure Hunt

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

Start Hunting!