top of page

Bode Plots Made Simple: Mastering the Basics of Frequency Response in a Fun and Easy Way

Updated: Jun 9, 2023

We're gonna unravel the mystery of Bode plots together – what they are, how to sketch them, and most importantly, how to crack their code. Think of yourselves as adventurers, exploring frequency responses, and unearthing the hidden information in these intriguing graphs. Ready to rock 'n roll? Buckle up, folks, it's time to dive in!

So, what's a Bode Plot?

Alright, let's kick things off by figuring out what a Bode plot is. To keep it simple, Bode plots are these cool diagrams that electrical engineers and control theory whizzes use to showcase the frequency response of a system. This handy method of representing system dynamics was introduced by none other than Hendrik Wade Bode (and yes, the plots are named after him!).

These plots help us visualize how the output of a system reacts to different frequencies of the input signal. A typical Bode plot has two graphs: one displays the magnitude (or gain) of the system response, and the other one shows its phase (or timing). Think of these as the 'volume' and 'timing' responses of our system to different 'musical notes' (which are the frequencies, in our case).

How do we sketch a Bode Plot?

Now it's time for the fun part – let's put on our adventure hats and start sketching our own Bode plot. No need to stress, it's easier than you might think.

There are two main parts of a Bode plot: a magnitude plot and a phase plot. Both these plots have the frequency of the input signal (in a logarithmic scale) on the x-axis. The y-axis, on the other hand, represents the magnitude (in dB) and phase (in degrees) respectively.

  1. Magnitude Plot: Start by converting the gain of the system to decibels, using the formula 20*log10 |G(jω)|. Next, plot this dB value against the frequency on a semi-log graph paper (that's the one where the x-axis is logarithmic, and the y-axis is linear).

  2. Phase Plot: Here, we're looking at the phase shift of the output signal compared to the input. The phase is calculated using arctan(Im(G(jω))/Re(G(jω))), where Im and Re are the imaginary and real parts of G(jω), respectively. Then, the phase shift is plotted versus frequency on the same type of semi-log graph paper.

Understanding Bode Plots – What are they telling us?

DJ Party

Picture yourself as a DJ at a wild party, and your sound system (think amplifier, speakers, etc.) is like the system we're analyzing. Your input is the music (with various frequencies), and the output is the sound that rocks the dance floor. Here's how it works:

Magnitude Plot: This tells you how your system amps up or tones down each 'musical note'. If the magnitude plot for a certain frequency is above 0 dB, your system is amplifying those notes. If it's below 0 dB, those notes are being toned down. Kinda like cranking up the bass or dialing down the treble on your sound system.

Phase Plot: This one's all about timing. If the phase plot for a particular frequency is positive, those 'musical notes' are coming out a bit late. If it's negative, those notes are being rushed. It's like adding a funky DJ effect that slightly delays the bassline or speeds up the high-hats.

By checking out the Bode plots, you can predict how your system will react to any given input – just like knowing how your sound system will rock the crowd at your gig!

Bode Plots in Action

Let's bring this to life with a real-world example. Let's stick with our sound system analogy. Ever noticed how when you tweak the bass and treble controls on your stereo, the sound changes? You're basically playing with the system's frequency response. If you were to draw a Bode plot for your stereo system, you could predict how each adjustment affects your sound output at every frequency.

Sound System

Let's say you decide to boost the bass on your system. On your magnitude plot, you'd see the line rising in the lower frequency range (that's where the bass lives). This tells you that your system is amplifying those low frequencies.

Now, what if you decided to turn down the treble a bit? On the plot, you'd see the line drop for higher frequencies. Your system is now damping down those high-frequency sounds, making the output sound less "sharp".

Have you ever noticed that when you boost the bass, it sometimes feels like the beat slows down a bit? That's our phase plot at work! If you were to check out the phase plot for your stereo when you boost the bass, you might see a positive shift in phase at lower frequencies. This means that your bass sounds are coming out slightly later compared to the rest of the music.

What's the Big Deal?

At first glance, Bode plots might look like a plate of spaghetti, but once you get the hang of it, they're actually super insightful and practical. They're like a roadmap of your system's behavior, giving you a predictable way to understand how your system will react to different frequencies.

In a nutshell, these plots are nifty tools that help us understand, predict, and even design system responses. So, whether you're an aspiring electrical engineer, a DJ, or just someone who's fascinated by how stuff works, having Bode plots in your arsenal can be super handy.

Here are a couple of examples of how you might use MATLAB to create Bode plots. But remember, these are just examples – the actual applications of Bode plots are as varied as your imagination!

Let's assume you have a simple second-order system defined by the transfer function H(s) = 1/(s^2 + s + 1). We'll generate the Bode plot for this system.

% Define the transfer function parameters
 numerator = [1]; 
 denominator = [1, 1, 1]; 
% Create the transfer function
 system = tf(numerator, denominator);
% Generate the Bode plot
% Add grid
 grid on

Bode Plot for a Simple Second Order System
Bode Plot for a Simple Second Order System

In this code, we first define the coefficients of the numerator and the denominator of our transfer function. We then use the tf() function to create the system as a transfer function. We use the bode() function to generate the Bode plot, and then add a grid to the plot for easier reading.

Now, let's assume you want to boost the low frequencies (increase the gain at low frequencies, mimicking a bass boost). For simplicity, let's create a first order high-pass filter (H(s) = s/(s+1)) and then multiply it with the previous system. Here's the code for this:

% Define the bass boost transfer function parameters
bass_boost_numerator = [1, 0]; 
 bass_boost_denominator = [1, 1]; 
% Create the bass boost transfer function
bass_boost = tf(bass_boost_numerator, bass_boost_denominator);
% Apply the bass boost to the original system
boosted_system = series(system, bass_boost);
% Generate the Bode plot for the original system and the boosted system
bode(system, boosted_system)

% Add grid
grid on
% Add legend
legend('Original System', 'Boosted System')

Bode Plot of Original System and When the Bass Boost is Applied
Bode Plot of Original System and When the Bass Boost is Applied

This will generate two overlaid Bode plots, one for the original system, and one for the system after the bass boost is applied. This allows you to compare visually how the frequency response has changed due to the bass boost. Let's move ahead with simulating a treble decrease effect.

Suppose you want to reduce high frequencies, which will act like reducing the treble. To accomplish this, we'll create a first-order low-pass filter with a transfer function H(s) = 1/(s+1), and then apply this filter to our bass-boosted system:

% Define the treble cut transfer function parameters
 treble_cut_numerator = [1]; 
 treble_cut_denominator = [1, 1]; 
% Create the treble cut transfer function
 treble_cut = tf(treble_cut_numerator, treble_cut_denominator);
% Apply the treble cut to the boosted system
 final_system = series(boosted_system, treble_cut);
% Generate the Bode plot for the original, boosted, and final system
 bode(system, boosted_system, final_system)
% Add grid
 grid on
% Add legend
legend('Original System', 'Bass Boosted System', 'Final System after Treble Cut')

Bode Plot Comparison After Applying Treble Cut
Bode Plot Comparison After Applying Treble Cut

This script will generate three overlaid Bode plots: one for the original system, one for the system after applying the bass boost, and one for the final system after also applying the treble cut. You can visually compare the Bode plots to see how the system's frequency response has changed due to the bass boost and the treble cut.


Let's dive into a simplified example of how Bode plots might come into play with spacecraft control systems. Consider a spacecraft that needs to orient itself towards a particular target (like a planet or a star). This might be controlled by a simple proportional-derivative (PD) controller, a common choice for control systems.

A PD controller calculates the "error" as the difference between the desired orientation and the current orientation and applies a control effort proportional to this error and its derivative. The transfer function of a PD controller can be represented as H(s) = Kp + Kd*s, where Kp is the proportional gain and Kd is the derivative gain.

Let's create a Bode plot of this controller in MATLAB to understand its frequency response. For simplicity, let's assume Kp=2 and Kd=3.

% Define the transfer function parameters for the PD controller
Kp = 2; % Proportional gain
 Kd = 3; % Derivative gain
numerator = [Kd, Kp]; 
 denominator = [1]; 
% Create the transfer function
controller = tf(numerator, denominator);
% Generate the Bode plot
% Add grid
grid on

Bode Plot of a PD Controller
Bode Plot of a PD Controller

The Bode plot will show you how the controller responds to errors at different frequencies. For instance, the PD controller's magnitude plot should show that at lower frequencies (slower changes in error), the controller's response is mainly determined by the Kp term. But as the frequency (rate of change of error) increases, the Kd*s term begins to dominate, and the controller responds more aggressively.

This gives spacecraft engineers a way to understand and tweak the controller's behavior. If the spacecraft overshoots its target or oscillates, the gains can be adjusted and the effect of these adjustments can be predicted using the Bode plot.

Cite this article as: Kumar, Yajur. “Bode Plots Made Simple: Mastering the Basics of Frequency Response in a Fun and Easy Way.” Space Navigators, 30 May 2023,


bottom of page