ELECTRONICS - FilterS - guide series

Introduction to Electronics - Filters: The four filters: low-pass, high-pass, band-pass, band-stop

Discover how low-pass, high-pass, band-pass, and band-stop filters control signal frequencies in electronic circuits. Learn how first- and second-order implementations affect performance, selectivity, and real-world applications.

In the study of electronic filters, four fundamental types of filters are commonly encountered. Each type plays a specific role in controlling how signals of different frequencies are treated by a circuit. Understanding these filters will give you the ability to design circuits that emphasise or suppress signals based on their frequency content.

In this guide, we will look closely at each of these four filter types, explain what they do, and discuss how they can be realised using first-order or second-order circuits.

Low-Pass Filters

A low-pass filter allows signals with frequencies below a certain cutoff frequency to pass through with little attenuation, while it attenuates signals with frequencies above the cutoff.

In other words, low-pass filters "pass the lows" and "block the highs."

Everyday Example:

In an audio system, a low-pass filter can be used to send only low-frequency signals to a subwoofer, removing unwanted higher-frequency sounds.

First-Order Implementation:

A first-order low-pass filter can be built using a resistor and a capacitor (RC circuit) or a resistor and an inductor (RL circuit). The roll-off beyond the cutoff frequency is gentle, at a rate of 20 dB per decade.

Second-Order Implementation:

A second-order low-pass filter uses two reactive components (e.g., two capacitors, or one capacitor and one inductor). The roll-off is steeper, at 40 dB per decade, providing better separation between passed and blocked frequencies.

High-Pass Filters

A high-pass filter does the opposite of a low-pass filter. It allows signals with frequencies above a certain cutoff frequency to pass through, while it attenuates signals with frequencies below the cutoff.

Everyday Example:

In audio systems, a high-pass filter can be used to remove deep, low-frequency rumble from a recording, preserving only the midrange and treble sounds.

First-Order Implementation:

A first-order high-pass filter can be constructed using a capacitor and a resistor (RC circuit) or an inductor and a resistor (RL circuit), but arranged differently from the low-pass configuration. The filter begins attenuating signals below the cutoff frequency at a rate of 20 dB per decade.

Second-Order Implementation:

A second-order high-pass filter uses two reactive components and achieves a steeper attenuation of 40 dB per decade.

Band-Pass Filters

A band-pass filter allows signals within a specific range of frequencies (a "band") to pass through while attenuating signals at frequencies lower or higher than this band. Band-pass filters are crucial when only a specific range of frequencies is needed.

Everyday Example:

In radio receivers, a band-pass filter selects the desired broadcast frequency while rejecting others.

First-Order Implementation:

A first-order band-pass filter can be made by cascading a first-order low-pass filter with a first-order high-pass filter. However, the frequency selection is not very sharp. The filter's bandwidth is relatively wide, and its ability to isolate a narrow frequency band is limited.

Second-Order Implementation:

A second-order band-pass filter offers much sharper selection, isolating a narrow band of frequencies with a steeper roll-off on both sides of the band. This is necessary when precise frequency targeting is required, such as in communication systems.

Band-Stop Filters

A band-stop filter (also called a notch filter) does the reverse of a band-pass filter. It attenuates signals within a certain range of frequencies while allowing signals outside this range to pass through.

Everyday Example:

In audio systems, a band-stop filter can be used to eliminate a specific unwanted frequency, such as the 50 Hz or 60 Hz hum from electrical mains interference.

First-Order Implementation:

A first-order band-stop filter can be made by combining a low-pass filter and a high-pass filter in parallel. Like the first-order band-pass filter, it offers only gentle attenuation and a wide transition band.

Second-Order Implementation:

A second-order band-stop filter provides a much sharper notch, attenuating a narrow range of frequencies much more effectively. This is ideal when targeting a specific, problematic frequency for removal.

Which filters can be first-order?

These plots depict the frequency response for the four types of filters:

And, this table summarises which of these filters can be implemented with a first or second order circuit:

  • Low-pass and high-pass filters are very effective even as first-order filters, especially when gentle filtering is acceptable or desired.
  • Band-pass and band-stop filters can be implemented using first-order techniques but perform much better when built as second-order circuits, especially when narrow frequency control is important.

Python script for the plots

If you’d like to experiment with the plots, feel free to play with this Python script:

import numpy as np
import matplotlib.pyplot as plt

def plot_filters():
# Frequency range (logarithmic)
freq = np.logspace(0, 5, 500) # 1 Hz to 100 kHz

# Define cutoff frequencies
f_low_cutoff = 1000 # 1 kHz
f_high_cutoff = 10000 # 10 kHz

# Angular frequencies
omega = 2 * np.pi * freq
omega_low = 2 * np.pi * f_low_cutoff
omega_high = 2 * np.pi * f_high_cutoff

# First-order transfer functions (magnitude)
low_pass = 1 / np.sqrt(1 + (freq / f_low_cutoff)**2)
high_pass = (freq / f_low_cutoff) / \\
np.sqrt(1 + (freq / f_low_cutoff)**2)

# Band-pass and Band-stop approximations
band_pass = (freq / f_low_cutoff) / \\
np.sqrt((1 + (freq / f_low_cutoff)**2) *
(1 + (freq / f_high_cutoff)**2))
band_stop = np.sqrt((1 + (freq / f_low_cutoff)**2) /
(1 + (freq / f_high_cutoff)**2))

# Create plots
fig, axs = plt.subplots(2, 2, figsize=(12, 10))

axs[0, 0].semilogx(freq, 20*np.log10(low_pass))
axs[0, 0].set_title('Low-Pass Filter')
axs[0, 0].set_xlabel('Frequency (Hz)')
axs[0, 0].set_ylabel('Magnitude (dB)')
axs[0, 0].grid(True, which='both', ls='--')

axs[0, 1].semilogx(freq, 20*np.log10(high_pass))
axs[0, 1].set_title('High-Pass Filter')
axs[0, 1].set_xlabel('Frequency (Hz)')
axs[0, 1].set_ylabel('Magnitude (dB)')
axs[0, 1].grid(True, which='both', ls='--')

axs[1, 0].semilogx(freq, 20*np.log10(band_pass))
axs[1, 0].set_title('Band-Pass Filter')
axs[1, 0].set_xlabel('Frequency (Hz)')
axs[1, 0].set_ylabel('Magnitude (dB)')
axs[1, 0].grid(True, which='both', ls='--')

axs[1, 1].semilogx(freq, 20*np.log10(band_stop))
axs[1, 1].set_title('Band-Stop Filter')
axs[1, 1].set_xlabel('Frequency (Hz)')
axs[1, 1].set_ylabel('Magnitude (dB)')
axs[1, 1].grid(True, which='both', ls='--')

plt.tight_layout()
plt.show()

if __name__ == "__main__":
plot_filters()

Ready for the next tutorial in this series? Here's the next one, or choose an alternative from the list of articles in the side bar. There's also lots of interesting article in our Blog. where you can read about off-grid communication technologies, electronics test equipment, course updates, and much more.

INTRODUCTION TO ELECTRONICS FILTERS

This course and eBook introduces the core concepts of RC and RL filters, helping you understand, design, and analyse these essential circuits. You will learn how low-pass and high-pass filters shape signals, calculate key parameters like cutoff frequency and phase shift, and explore practical applications such as audio tone control, noise filtering, sensor signal conditioning, and switch debouncing.

Last Updated 1 week ago.

We publish fresh content each week. Read how-to's on Arduino, ESP32, KiCad, Node-RED, drones and more. Listen to interviews. Learn about new tech with our comprehensive reviews. Get discount offers for our courses and books. Interact with our community. One email per week, no spam; unsubscribe at any time

{"email":"Email address invalid","url":"Website address invalid","required":"Required field missing"}