Low-Pass Filter Approximation Methods

Filters are essential in signal processing and analog circuit design to enable a desired frequency component to be let through while rejecting others. A low-pass filter specifically allows frequencies below some cutoff frequency and rejects higher frequencies. They have wide applications in audio processing, communication networks, and control systems.

However, in practical-circuit design, it is impossible to realize an ideal low-pass filter with an absolutely steep passband to stopband transition and infinite attenuation above the cutoff. This is due to physical-component constraints and mathematical requirements of realizable systems. Therefore, approximation methods are used in order to design filters to meet as closely as possible the specified requirements within practical limitations.

These methods operate to improve several performance specifications such as:

  • Passband flatness (how level the gain is before cutoff)
  • Transition sharpness (how quickly the filter rolls off frequencies above the cutoff)
  • Stopband attenuation (how much the unwanted frequencies are attenuated)
  • Phase response (how the phase of different frequencies is warped)
  • Circuit complexity (number of elements or order of the filter)

Since no approximation method satisfies all needs with ideal accuracy, some compromise must be achieved. Choice between the approximation methods depends on needs of the application—how most important is fast roll-off, minimal ripple, or constant group delay.

Common Low-Pass Filter Approximation Methods

1.Butterworth Approximation

  • Maximally flat passband magnitude response
  • Roll-off with gradual transition, but with more gradual roll-off
  • Utilized frequently where flat passband is crucial and moderate attenuation is acceptable

2.Chebyshev Type I Approximation

  • Allows ripple in the passband to be steeper in roll-off
  • Smoothes transition compared to Butterworth but with a quicker transition

3.Inverse Chebyshev (Type II) Approximation

  • Ripple is in the stopband and not the passband
  • Flat passband with improved stopband attenuation

4.Elliptic (Cauer) Approximation

  • Ripple in both stopband and passband
  • Sharpest transition of them all, but phase response is highly non-linear

5.Bessel-Thompson Approximation

  • Optimized to preserve linear phase (constant group delay)
  • Most suited to time-domain applications (e.g., audio, data transmission)
  • Has the slowest roll-off of all categories

Low-Pass Filter Approximation Methods

fig: LPF Approximation Comparision

CODE for Approximation

MATLAB 
n = 5; f = 2e9;
%Butterworth Low Pass Filter
[zb,pb,kb] = butter(n,2*pi*f,'s');
[bb,ab] = zp2tf(zb,pb,kb);
[hb,wb] = freqs(bb,ab,4096);
%Chebyshev Low Pass Filter
[z1,p1,k1] = cheby1(n,3,2*pi*f,'s');
[b1,a1] = zp2tf(z1,p1,k1);
[h1,w1] = freqs(b1,a1,4096);
%Inverse Chebyshev Low Pass Filter
[z2,p2,k2] = cheby2(n,30,2*pi*f,'s');
[b2,a2] = zp2tf(z2,p2,k2);
[h2,w2] = freqs(b2,a2,4096);
%Cauer Low Pass Filter
[ze,pe,ke] = ellip(n,3,30,2*pi*f,'s');
[be,ae] = zp2tf(ze,pe,ke);
[he,we] = freqs(be,ae,4096);
plot(wb/(2e9*pi),mag2db(abs(hb)))
hold on
plot(w1/(2e9*pi),mag2db(abs(h1)))
plot(w2/(2e9*pi),mag2db(abs(h2)))
plot(we/(2e9*pi),mag2db(abs(he)))
axis([0 4 -40 5])
grid
xlabel('Frequency (GHz)')
ylabel('Attenuation (dB)')
legend('butter','cheby1','cheby2','ellip')

OCTAVE

disp("Responses");

n = 5;
f = 2e9;
w = logspace(6, 11, 4096);  % Frequencies from 1 MHz to 100 GHz

% Butterworth
[zb, pb, kb] = butter(n, 2*pi*f, 's');
[bb, ab] = zp2tf(zb, pb, kb);
hb = freqs(bb, ab, 2*pi*w);

% Chebyshev Type I
[z1, p1, k1] = cheby1(n, 3, 2*pi*f, 's');
[b1, a1] = zp2tf(z1, p1, k1);
h1 = freqs(b1, a1, 2*pi*w);

% Chebyshev Type II
[z2, p2, k2] = cheby2(n, 30, 2*pi*f, 's');
[b2, a2] = zp2tf(z2, p2, k2);
h2 = freqs(b2, a2, 2*pi*w);

% Elliptic
[ze, pe, ke] = ellip(n, 3, 30, 2*pi*f, 's');
[be, ae] = zp2tf(ze, pe, ke);
he = freqs(be, ae, 2*pi*w);

% Convert magnitude to dB
mag2db = @(x) 20*log10(abs(x));

% Plot
semilogx(w/1e9, mag2db(hb), 'LineWidth', 1.5);
hold on;
semilogx(w/1e9, mag2db(h1), 'LineWidth', 1.5);
semilogx(w/1e9, mag2db(h2), 'LineWidth', 1.5);
semilogx(w/1e9, mag2db(he), 'LineWidth', 1.5);
grid on;
axis([0.1 10 -60 5])
xlabel('Frequency (GHz)');
ylabel('Attenuation (dB)');
legend('Butterworth', 'Chebyshev I', 'Chebyshev II', 'Elliptic');
title('Analog Low Pass Filter Comparison');

Share: Facebook LinkedIn X

More Study Materials

Useful Resources