MATLAB Answers

How to change units in Bode Diagram?

585 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 22 Oct 2021
Edited: MathWorks Support Team on 26 Oct 2021
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)';
  2 Comments
Deepak Deepak
Deepak Deepak on 4 Nov 2021 at 11:37
Hello,
Is it also possible to change the format of the X and Y label when bode is plotted for MIMO system ? From 'Frequency (Hz)' to 'Frequency / Hz'
Thank you,
Deepak

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!