Butterworth vs Chebyshev vs Elliptic Filters: Key Differences & Uses
Butterworth filters have a smooth frequency response with no ripple, Chebyshev filters allow ripple in the passband or stopband for a steeper roll-off, and Elliptic filters have ripple in both bands but provide the sharpest transition. Each filter balances trade-offs between flatness, sharpness, and complexity.Quick Comparison
Here is a quick table comparing the main features of Butterworth, Chebyshev, and Elliptic filters.
| Feature | Butterworth | Chebyshev | Elliptic |
|---|---|---|---|
| Frequency Response | Maximally flat (no ripple) | Ripple in passband (Type I) or stopband (Type II) | Ripple in both passband and stopband |
| Roll-off Steepness | Moderate | Steeper than Butterworth | Steepest |
| Complexity | Lowest | Moderate | Highest |
| Phase Response | Smoothest | Less smooth | Least smooth |
| Use Case | When smooth response is needed | When sharper cutoff is needed with some ripple | When sharpest cutoff is critical |
| Design Parameters | Cutoff frequency only | Cutoff frequency + ripple | Cutoff frequency + ripple in both bands |
Key Differences
Butterworth filters are designed to have a flat frequency response in the passband, meaning no ripples. This makes them ideal when you want a smooth and natural signal without distortion in the passband. However, their transition from passband to stopband is gradual, so they have a moderate roll-off.
Chebyshev filters allow ripple either in the passband (Type I) or stopband (Type II). This ripple lets the filter achieve a steeper roll-off than Butterworth filters, meaning it can better separate frequencies near the cutoff. The trade-off is some variation in signal amplitude within the ripple region and a less smooth phase response.
Elliptic filters, also called Cauer filters, have ripple in both the passband and stopband. This design achieves the steepest roll-off for a given filter order, making them very efficient at separating frequencies. The downside is the most complex design and the least smooth phase response, which can cause signal distortion in some applications.
Code Comparison
Here is how to design a Butterworth lowpass filter using Python's SciPy library.
from scipy.signal import butter, freqz import matplotlib.pyplot as plt # Butterworth filter design order = 4 cutoff = 0.3 # normalized frequency (0 to 1) b, a = butter(order, cutoff, btype='low', analog=False) # Frequency response w, h = freqz(b, a) plt.plot(w / 3.14159, abs(h)) plt.title('Butterworth Filter Frequency Response') plt.xlabel('Normalized Frequency') plt.ylabel('Gain') plt.grid(True) plt.show()
Chebyshev Equivalent
Here is how to design a Chebyshev Type I lowpass filter with 1 dB ripple in the passband using Python's SciPy.
from scipy.signal import cheby1, freqz import matplotlib.pyplot as plt # Chebyshev Type I filter design order = 4 ripple = 1 # dB ripple in passband cutoff = 0.3 b, a = cheby1(order, ripple, cutoff, btype='low', analog=False) # Frequency response w, h = freqz(b, a) plt.plot(w / 3.14159, abs(h)) plt.title('Chebyshev Type I Filter Frequency Response') plt.xlabel('Normalized Frequency') plt.ylabel('Gain') plt.grid(True) plt.show()
When to Use Which
Choose Butterworth when you need a smooth, ripple-free passband and can accept a slower transition from passband to stopband. It is best for audio and applications where signal distortion must be minimal.
Choose Chebyshev when you want a sharper cutoff than Butterworth and can tolerate some ripple in either the passband or stopband. It suits applications where sharper frequency separation is needed but some ripple is acceptable.
Choose Elliptic when the sharpest cutoff is critical and ripple in both bands is acceptable. It is ideal for systems with strict frequency separation requirements and where filter order (complexity) must be minimized.