Note: This page has been translated by MathWorks. Click here to see

To view all translated materials including this page, select Country from the country navigator on the bottom of this page.

To view all translated materials including this page, select Country from the country navigator on the bottom of this page.

Transform lowpass analog filters to bandpass

`[bt,at] = lp2bp(b,a,Wo,Bw)`

[At,Bt,Ct,Dt] = lp2bp(A,B,C,D,Wo,Bw)

`lp2bp`

transforms
analog lowpass filter prototypes with a cutoff angular frequency of
1 rad/s into bandpass filters with desired bandwidth
and center frequency. The transformation is one step in the digital
filter design process for the `butter`

, `cheby1`

, `cheby2`

,
and `ellip`

functions.

`lp2bp`

can perform the transformation on two different linear system representations:
transfer function form and state-space form. In both cases, the input
system must be an analog filter prototype.

`[bt,at] = lp2bp(b,a,Wo,Bw)`

transforms an analog
lowpass filter prototype given by polynomial coefficients into a bandpass
filter with center frequency `Wo`

and bandwidth `Bw`

.
Row vectors `b`

and `a`

specify
the coefficients of the numerator and denominator of the prototype
in descending powers of *s*.

$$\frac{B(s)}{A(s)}=\frac{b(1){s}^{n}+\cdots +b(n)s+b(n+1)}{a(1){s}^{m}+\cdots +a(m)s+a(m+1)}$$

Scalars `Wo`

and `Bw`

specify
the center frequency and bandwidth in units of rad/s. For a filter
with lower band edge `w1`

and upper band edge `w2`

,
use `Wo`

= `sqrt(w1*w2)`

and `Bw`

= `w2-w1`

.

`lp2bp`

returns the frequency transformed filter
in row vectors `bt`

and `at`

.

`[At,Bt,Ct,Dt] = lp2bp(A,B,C,D,Wo,Bw)`

converts the
continuous-time state-space lowpass filter prototype in matrices `A`

, `B`

, `C`

, `D`

shown
below

$$\begin{array}{l}\dot{x}=Ax+Bu\\ y=Cx+Du\end{array}$$

into a bandpass filter with center frequency `Wo`

and
bandwidth `Bw`

. For a filter with lower band edge `w1`

and
upper band edge `w2`

, use `Wo`

= `sqrt(w1*w2)`

and `Bw`

= `w2-w1`

.

The bandpass filter is returned in matrices `At`

, `Bt`

, `Ct`

, `Dt`

.

`lp2bp`

is a highly accurate state-space formulation
of the classic analog filter frequency transformation. Consider the
state-space system

$$\begin{array}{l}\dot{x}=Ax+Bu\\ y=Cx+Du\end{array}$$

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

$$sX(s)=AX(s)+BU(s)$$

Now if a bandpass filter is to have center frequency ω_{0} and
bandwidth *B*_{w}, the standard *s*-domain
transformation is

$$s=Q({p}^{2}+1)/p$$

where *Q* = ω_{0}/*B*_{w} 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

$$Q\ddot{x}+Qx=\dot{A}x+B\dot{u}$$

or

$$Q\ddot{x}-\dot{A}x-B\dot{u}=-Qx$$

Now define

$$Q\dot{\omega}=-Qx$$

which, when substituted, leads to

$$Q\dot{x}=Ax+Q\omega +Bu$$

The last two equations give equations of state. Write them in
standard form and multiply the differential equations by ω_{0} to
recover the time/frequency scaling represented by *p* and
find state matrices for the bandpass filter:

Q = Wo/Bw; [ma,m] = size(A); At = Wo*[A/Q eye(ma,m);-eye(ma,m) zeros(ma,m)]; Bt = Wo*[B/Q; zeros(ma,n)]; Ct = [C zeros(mc,ma)]; Dt = d;

If the input to `lp2bp`

is in transfer function
form, the function transforms it into state-space form before applying
this algorithm.

Was this topic helpful?