Question
I would like to have the BODE command in the Control System Toolbox plot output in Hertz (Hz) rather than rad/sec.
Related Questions
Expert Answer
John Michell
PhD Expert
Answered Aug 17, 2026
The documentation has been updated for Release 2008b (R2008b). For previous product releases, read below:
There is no built in way to create bode plots with the frequency in Hz.
To work around this limitation you can use the BODE command to return the magnitude phase and frequency response of the system which can be converted to Hz and then plotted. For example you can use the following code:
% Create and LTI system g = tf([1 0.1 7.5],[1 0.12 9 0 0]); % Call the BODE function with output arguments [MAG,PHASE,W] = bode(g); % Convert the frequency from rad/s to Hz F = W/(2*pi); % Convert the magnitude from degrees to decibels DMAG = 20 * log10(MAG); % Create a figure with two plots, the magnitude and phase as a function of % frequency subplot(2,1,1); semilogx(F,reshape(DMAG,size(DMAG,3),1)); subplot(2,1,2); semilogx(F,reshape(PHASE,size(PHASE,3),1));
Note that you must use the reshape command because the magnitude and the phase for the bode plot are being returned as a 3-D matrix of values which corresponds to Ny-by-Nu-by-length(W) arrays.
See the documentation on the BODE function for more information.
You can use the LTI viewer that ships with Control System Toolbox to set your default axis settings. This is done in the LTI Viewer using the command
ltiview
and then selecting "Toolbox Preferences" from the File pulldown menu. There you can change the default axis settings from Hz to rad/sec and vice versa.
Have a different question? Ask here