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]`

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

lp2bp(b,a,Wo,Bw)`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]`

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

lp2bp(A,B,C,D,Wo,Bw)`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`

.

Was this topic helpful?