0
0
RosConceptBeginner · 3 min read

What Is a Band Pass Filter: Definition and Examples

A band pass filter is a device or algorithm that allows signals within a certain frequency range to pass through while blocking frequencies outside that range. It works like a gate that only opens for sounds or signals between a low and a high cutoff frequency.
⚙️

How It Works

A band pass filter works by letting through only the signals that have frequencies within a specific range, called the passband. Imagine a water filter that only lets water of a certain temperature through; similarly, a band pass filter only lets signals of certain frequencies pass.

It blocks signals that are too low or too high in frequency, like a bouncer at a club who only lets people of a certain age in. This is done by combining two filters: a low pass filter that blocks high frequencies and a high pass filter that blocks low frequencies.

💻

Example

This example shows how to create a simple band pass filter using Python and the SciPy library to filter a noisy signal.

python
import numpy as np
import matplotlib.pyplot as plt
from scipy.signal import butter, filtfilt

# Create a sample signal with multiple frequencies
fs = 500  # Sampling frequency in Hz
T = 1.0   # Duration in seconds
t = np.linspace(0, T, int(fs*T), endpoint=False)
signal = (np.sin(2*np.pi*5*t) + np.sin(2*np.pi*50*t) + np.sin(2*np.pi*120*t))

# Add noise
noise = 0.5 * np.random.randn(len(t))
signal_noisy = signal + noise

# Define band pass filter
lowcut = 10.0
highcut = 100.0

# Butterworth bandpass filter design
order = 4
def butter_bandpass(lowcut, highcut, fs, order=4):
    nyq = 0.5 * fs
    low = lowcut / nyq
    high = highcut / nyq
    b, a = butter(order, [low, high], btype='band')
    return b, a

b, a = butter_bandpass(lowcut, highcut, fs, order)
filtered_signal = filtfilt(b, a, signal_noisy)

# Plot results
plt.figure(figsize=(10, 6))
plt.plot(t, signal_noisy, label='Noisy Signal')
plt.plot(t, filtered_signal, label='Filtered Signal', linewidth=2)
plt.xlabel('Time [seconds]')
plt.ylabel('Amplitude')
plt.title('Band Pass Filter Example')
plt.legend()
plt.show()
Output
A plot showing the noisy signal and the filtered signal where frequencies between 10 Hz and 100 Hz are preserved.
🎯

When to Use

Use a band pass filter when you want to isolate signals within a specific frequency range and remove unwanted noise or interference outside that range. For example, in audio processing, it can isolate a musical instrument's frequency range. In communications, it helps extract a signal from background noise. In medical devices like ECG machines, it filters out irrelevant frequencies to focus on heartbeats.

Key Points

  • A band pass filter passes frequencies within a set range and blocks others.
  • It combines low pass and high pass filters.
  • Commonly used in audio, communications, and medical signal processing.
  • Can be implemented in hardware or software.

Key Takeaways

A band pass filter allows signals only within a specific frequency range to pass through.
It blocks frequencies that are too low or too high by combining low and high pass filters.
Band pass filters are useful for isolating signals and removing noise in many fields.
They can be implemented using software libraries like SciPy or as physical devices.