# lp2bs

Transform lowpass analog filters to bandstop

## Syntax

```[bt,at] = lp2bs(b,a,Wo,Bw) [At,Bt,Ct,Dt] = lp2bs(A,B,C,D,Wo,Bw) ```

## Description

`lp2bs` transforms analog lowpass filter prototypes with a cutoff angular frequency of 1 rad/s into bandstop 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.

`lp2bs` 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.

### Transfer Function Form (Polynomial)

`[bt,at] = lp2bs(b,a,Wo,Bw)` transforms an analog lowpass filter prototype given by polynomial coefficients into a bandstop 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\left(s\right)}{A\left(s\right)}=\frac{b\left(1\right){s}^{n}+\cdots +b\left(n\right)s+b\left(n+1\right)}{a\left(1\right){s}^{m}+\cdots +a\left(m\right)s+a\left(m+1\right)}$`

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

`lp2bs` returns the frequency transformed filter in row vectors `bt` and `at`.

### State-Space Form

`[At,Bt,Ct,Dt] = lp2bs(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}\stackrel{˙}{x}=Ax+Bu\\ y=Cx+Du\end{array}$`

into a bandstop 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 bandstop filter is returned in matrices `At`, `Bt`, `Ct`, `Dt`.

## Algorithms

`lp2bs` is a highly accurate state-space formulation of the classic analog filter frequency transformation. If a bandstop filter is to have center frequency ω0 and bandwidth Bw, the standard s-domain transformation is

`$s=\frac{p}{Q\left({p}^{2}+1\right)}$`

where Q = ω0/Bw and p = s0. The state-space version of this transformation is

```Q = Wo/Bw; At = [Wo/Q*inv(A) Wo*eye(ma);-Wo*eye(ma) zeros(ma)]; Bt = -[Wo/Q*(A\B); zeros(ma,n)]; Ct = [C/A zeros(mc,ma)]; Dt = D - C/A*B; ```

See `lp2bp` for a derivation of the bandpass version of this transformation.