How to change the default x-axis unit in a Bode diagram to Hertz?

396 views (last 30 days)
Rad/s is nice for mechanical people, but I'm an EE, and I much prefer Hertz. It should be something simple, but I can't find it in the help.
  1 Comment
dpb
dpb on 22 Sep 2018
Don't believe there is a way in the base routine; it's built entirely around rad/timeunits per the system object.
You could write a wrapper routine to convert frequency units and update the plot labels.

Sign in to comment.

Accepted Answer

Star Strider
Star Strider on 22 Sep 2018
Use bodeplot (link) instead of bode.
It gives you that option, and the documentation specifically mentions that.
  4 Comments
Star Strider
Star Strider on 22 Sep 2018
Edited: Star Strider on 22 Sep 2018
That is what I would do.
I defer to bodeplot because it allows some customization. I use and plot the bode outputs only if I want other options.
EDIT
I add that this was my original recommendation!

Sign in to comment.

More Answers (1)

Dimitris Kalogiros
Dimitris Kalogiros on 22 Sep 2018
clc;close all; clc
% test system
s=tf('s');
H=(s-1)/((s-3)*(s-2))
% bode
[mag,phase,wout] = bode(H);
%plot results, with frequency expressed at Hz
figure;
subplot(2,1,1);
semilogx(wout(:,1)/(2*pi), 20*log10(squeeze(mag)), '-b'); zoom on; grid on;
title('magnitude'); xlabel('Frequency (Hz)'); ylabel('Magnitude (dB)');
subplot(2,1,2);
semilogx(wout(:,1)/(2*pi), squeeze(phase), '-r'); zoom on; grid on;
title('Phase'); xlabel('Frequecy (Hz)'); ylabel('Phase (deg)');

Products


Release

R2018a

Community Treasure Hunt

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

Start Hunting!