Transform lowpass analog filters to bandpass
Lowpass to Bandpass Transformation
Design a 14th-order lowpass Butterworth analog filter prototype.
n = 14; [z,p,k] = buttap(n);
Convert the prototype to transfer function form. Display its magnitude and frequency responses.
[b,a] = zp2tf(z,p,k); freqs(b,a)
Transform the prototype to a bandpass filter with a passband from 30 Hz to 100 Hz. Specify the center frequency and bandwidth in rad/s.
fl = 30; fh = 100; Wo = 2*pi*sqrt(fl*fh); % center frequency Bw = 2*pi*(fh-fl); % bandwidth [bt,at] = lp2bp(b,a,Wo,Bw);
Display the magnitude and frequency responses of the transformed filter.
a — Prototype numerator and denominator coefficients
Prototype numerator and denominator coefficients, specified as row
a specify the
coefficients of the numerator and denominator of the prototype in descending
powers of s:
D — Prototype state-space representation
Prototype state-space representation, specified as matrices. The state-space matrices relate the state vector x, the input u, and the output y through
Wo — Center frequency
Center frequency, specified as a scalar. For a filter with lower band edge
w1 and upper band edge
Wo in units of rad/s.
Bw — Bandwidth
Bandwidth, specified as a scalar. For a filter with lower band edge
w1 and upper band edge
Bw in units of rad/s.
at — Transformed numerator and denominator coefficients
Transformed numerator and denominator coefficients, returned as row vectors.
Dt — Transformed state-space representation
Transformed state-space representation, returned as matrices.
lp2bp transforms analog lowpass filter prototypes with a cutoff
angular frequency of 1 rad/s into bandpass filters with the desired bandwidth and center
frequency. The transformation is one step in the digital filter design process for the
lp2bp is a highly accurate state-space formulation of the classic
analog filter frequency transformation. Consider the state-space system
where u is the input, x is the state vector, and y is the output. The Laplace transform of the first equation (assuming zero initial conditions) is
Now if a bandpass filter has center frequency ω0 and bandwidth Bw, the standard s-domain transformation is
where Q = ω0/Bw and p = s/ω0. Substituting this for s in the Laplace transformed state-space equation and considering the operator p as d/dt results in
which, when substituted, leads to
The last two equations give equations of state. Write them in standard form and multiply the differential equations by ω0 to recover the time or frequency scaling represented by p and find state matrices for the bandpass filter:
lp2bp can perform the transformation on two different linear system
representations: transfer function form and state-space form. If the input to
lp2bp is in transfer function form, the function transforms it
into state-space form before applying this algorithm.
C/C++ Code Generation
Generate C and C++ code using MATLAB® Coder™.
Usage notes and limitations:
The input transfer function coefficients,
den, must be real.