MATLAB Bode Diagram

This tutorial will discuss how to plot the bode plot of the frequency response of a system using the bode() function in MATLAB.

Plot the Bode Plot of the Frequency Response of a System Using the bode() Function in MATLAB

If you want to plot the frequency response or magnitude and phase data of a system model, you can use the bode() function, which will plot both the magnitude and phase of the frequency response of a given system. For example, let’s create a bode plot of a dynamic system by giving its transfer function to the bode() function. See the code below.

clc
t_fun = tf([1 2 0.5],[9 1 0]);
bode(t_fun)

Output:

Bode Plot Using the bode() function in matlab

In the above code, we use the transfer function coefficients and the tf() function to define the dynamic function. The first argument of the tf() function is the vector containing the coefficients of the numerator, and the second argument is the vector containing the coefficients of the denominator, and the sequence is from higher to lower power. If power is missing, then 0 will be used as its coefficient.

As you can see in the output, the bod() function automatically gives the plot title and labels. If you want to change these settings, you have to save the magnitude and phase in a separate variable and then plot it using the plot() function and after that, you can give your desired title and labels to the plot. For example, let’s create the above bode plot using the subplot() and plot() functions and change its title using the title() function. See the code below.

clc
t_fun = tf([1 2 0.5],[9 1 0]);
[magn,phas,w] = bode(t_fun);

figure
subplot(1,2,1)
plot(w,20*log10(magn(:)))
set(gca, 'XScale', 'log')
title('Magnitude')
subplot(1,2,2)
plot(w,phas(:))
set(gca, 'XScale', 'log')
title('Phase')

Output:

Change title of bode plot in matlab

As you can see in the output, the plots are the same but with a different title. You can also change other properties like the labels, line styles, plot color using the Color property, etc. Check this link for more details about the bode() function.

Contribute
DelftStack is a collective effort contributed by software geeks like you. If you like the article and would like to contribute to DelftStack by writing paid articles, you can check the write for us page.

Related Article - MATLAB Plot

  • MATLAB Custom Legend
  • MATLAB Animated Plot