Navigation Menu

Skip to content

Instantly share code, notes, and snippets.

@endolith
Last active December 31, 2015 19:19
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save endolith/8032624 to your computer and use it in GitHub Desktop.
Save endolith/8032624 to your computer and use it in GitHub Desktop.
Derivation of bandform transformations applied to poles and zeros

The transformations are described in https://en.wikipedia.org/wiki/Prototype_filter and in Proakis&Manolakis, Table 8.12, though with different variables:

Type Wikipedia Proakis
lp2lp (scaling) $$i ω \to \left( \frac{ω_c'}{ω_c}\right) i ω$$ $$s → {Ω_p \over Ω_p'} s$$
lp2hp $$ \frac{iω}{ω_c'} \to \frac {ω_c}{iω}$$ $$s→{Ω_p Ω_p' \over s}$$
lp2bp $$\frac{iω}{ω_c'} \to Q \left(\frac{iω}{ω_0}+\frac {ω_0}{iω} \right)$$ $$s→Ω_p {s^2 + Ω_l Ω_u \over s(Ω_u - Ω_l)}$$
lp2bs $$\frac{ω_c'}{iω} \to Q \left(\frac{iω}{ω_0}+\dfrac {ω_0}{iω} \right)$$ $$s→Ω_p {s(Ω_u - Ω_l) \over s^2 + Ω_u Ω_l}$$

Using these variable substitutions:

  • $iω → s$
  • $Q → ω_0 / \mathrm{BW}$
  • $ω_c' → 1$ (all our prototypes are 1 rad/s)
  • $ω_c → ω_0$ (new corner frequency)
  • $Ω_p → 1$ (all our prototypes are 1 rad/s)
  • $Ω_p' → ω_0$ (new corner frequency)
  • $Ω_u - Ω_l → \mathrm{BW}$ (standard definition of bandwidth)
  • $\sqrt{Ω_u ⋅ Ω_l} → ω_0$ (center frequency is geometric average of corner frequencies)
  • so $Ω_u ⋅ Ω_l → {ω_0}^2$

These transformations become:

Type Transformation
lp2lp $$s → {s \over ω_0}$$
lp2hp $$s → {ω_0 \over s}$$
lp2bp $$s → {ω_0 \over \mathrm{BW}} \left ({s \over ω_0} + {ω_0 \over s} \right ) = {s^2 + {ω_0}^2 \over s ⋅ \mathrm{BW}}$$
lp2bs $$s → {\mathrm{BW} \over ω_0} ⋅ {1 \over {s \over ω_0} + {ω_0 \over s}} = {s ⋅ \mathrm{BW} \over s^2 + {ω_0}^2}$$

Then you write out the transfer function in poles/zeros form:

$$ \mathrm{H}(s) = k \cdot { (s - z_0) (s - z_1) \cdots (s - z_m) \over (s - p_0) (s - p_1) \cdots (s - p_n)} $$

$$ \mathrm{H}(s) = k \frac {\displaystyle \prod_{i=0}^{m} s-z_i} {\displaystyle \prod_{i=0}^{n} s-p_i} $$

and then do each substitution:

lp2lp

$$s → {s \over ω_0}$$

$$ \mathrm{H}(s) = k \frac {\displaystyle \prod_{i=0}^{m} \frac{s}{ω_0}-{z}i} {\displaystyle \prod{i=0}^{n} \frac{s}{ω_0}-{p}_i} $$

and then multiply repeatedly by $ω_0 \over ω_0$ for each pole and zero in order to get everything back into the regular form:

$$ \mathrm{H}(s) = k, {ω_0}^{(n-m)} \frac {\displaystyle \prod_{i=0}^{m} s-ω_0,{z}i} {\displaystyle \prod{i=0}^{n} s-ω_0,{p}_i} $$

So the poles and zeros each get scaled by $ω_0$, and the gain gets scaled by ${ω_0}^{(n-m)}$.

  • $z_i → ω_0, z_i$
  • $p_i → ω_0, p_i$
  • $k → k ⋅ {ω_0}^{(n-m)}$

lp2hp

$$s → {ω_0 \over s}$$

$$ \mathrm{H}(s) = k \frac {\displaystyle \prod_{i=0}^{m} {ω_0 \over s}-z_i} {\displaystyle \prod_{i=0}^{n} {ω_0 \over s}-p_i} $$

$$ \mathrm{H}(s) = k \frac {\displaystyle \prod_{i=0}^{m} {ω_0 - s z_i \over s}} {\displaystyle \prod_{i=0}^{n} {ω_0 - s p_i \over s}} $$

multiply by $s \over s$ for each pole and zero

$$ \mathrm{H}(s) = k, s^{(n-m)} \frac {\displaystyle \prod_{i=0}^{m} {ω_0 - s z_i}} {\displaystyle \prod_{i=0}^{n} {ω_0 - s p_i}} $$

$$ \mathrm{H}(s) = k, s^{(n-m)} \frac {\displaystyle \prod_{i=0}^{m} {-z_i s + ω_0}} {\displaystyle \prod_{i=0}^{n} {-p_i s + ω_0}} $$

pull out the zs and ps $$ \mathrm{H}(s) = k, s^{(n-m)} \frac {\displaystyle \prod_{i=0}^{m} -z_i \left(s + {ω_0 \over -z_i} \right)} {\displaystyle \prod_{i=0}^{n} -p_i \left(s + {ω_0 \over -p_i} \right)} $$

$$ \mathrm{H}(s) = k \frac {\displaystyle \prod_{i=0}^{m} -z_i} {\displaystyle \prod_{i=0}^{n} -p_i} \cdot s^{(n-m)} \cdot \frac {\displaystyle \prod_{i=0}^{m} s - {ω_0 \over z_i}} {\displaystyle \prod_{i=0}^{n} s - {ω_0 \over p_i}} $$

So

  • $z_i → {ω_0 \over z_i}$
  • $p_i → {ω_0 \over p_i}$
  • $s^{(n-m)}$ means add $n-m$ zeros at the origin
    • (unless function is improper, in which case m > n and add $m-n$ poles at the origin?)
  • $k → k ⋅ \frac {\displaystyle \prod_{i=0}^{m} -z_i} {\displaystyle \prod_{i=0}^{n} -p_i}$

lp2bp

$$s → {s^2 + {ω_0}^2 \over s ⋅ \mathrm{BW}}$$

$$ \mathrm{H}(s) = k \frac {\displaystyle \prod_{i=0}^{m} {s^2 + {ω_0}^2 \over s ⋅ \mathrm{BW}} - z_i} {\displaystyle \prod_{i=0}^{n} {s^2 + {ω_0}^2 \over s ⋅ \mathrm{BW}} - p_i} $$

common denominator:

$$ \mathrm{H}(s) = k \frac {\displaystyle \prod_{i=0}^{m} {s^2 + {ω_0}^2 - s⋅\mathrm{BW} z_i\over s ⋅ \mathrm{BW}}} {\displaystyle \prod_{i=0}^{n} {s^2 + {ω_0}^2 - s⋅\mathrm{BW} p_i\over s ⋅ \mathrm{BW}}} $$

pull out the denominators:

$$ \mathrm{H}(s) = k ⋅ s^{(n-m)} ⋅ \mathrm{BW}^{(n-m)} \frac {\displaystyle \prod_{i=0}^{m} {s^2 - z_i \mathrm{BW} s + {ω_0}^2}} {\displaystyle \prod_{i=0}^{n} {s^2 - p_i \mathrm{BW} s + {ω_0}^2}} $$

quadratic factor: $$ a x^2+b x+c =a \left(x+{b \over 2a}+{\sqrt{\left(b \over 2a\right)^2-{c \over a}}}\right) \left(x+{b \over 2a}-{\sqrt{\left(b \over 2a\right)^2-{c \over a}}}\right) $$

so:

$$ \mathrm{H}(s) = k ⋅ s^{(n-m)} ⋅ \mathrm{BW}^{(n-m)} \frac {\displaystyle \prod_{i=0}^{m} {s-{z_i \mathrm{BW} \over 2} ± {\sqrt{\left(-z_i \mathrm{BW}\over 2\right)^2 - {ω_0}^2}}}} {\displaystyle \prod_{i=0}^{n} {s-{p_i \mathrm{BW} \over 2} ± {\sqrt{\left(-p_i \mathrm{BW}\over 2\right)^2 - {ω_0}^2}}}} $$

substitute $p_{\mathrm{LP}i} = p_i ⋅ \mathrm{BW}/2$ (lowpass filter scaled to the desired bandwidth):

$$ \mathrm{H}(s) = k ⋅ s^{(n-m)} ⋅ \mathrm{BW}^{(n-m)} \frac {\displaystyle \prod_{i=0}^{m} {s - z_{\mathrm{LP}i} ± {\sqrt{{z_{\mathrm{LP}i}}^2 - {ω_0}^2}}}} {\displaystyle \prod_{i=0}^{n} {s - p_{\mathrm{LP}i} ± {\sqrt{{p_{\mathrm{LP}i}}^2 - {ω_0}^2}}}} $$

So

  • $z_i → z_{\mathrm{LP}i} ± {\sqrt{{z_{\mathrm{LP}i}}^2 - {ω_0}^2}}$
  • $p_i → p_{\mathrm{LP}i} ± {\sqrt{{p_{\mathrm{LP}i}}^2 - {ω_0}^2}}$
  • $s^{(n-m)}$ means add $n-m$ zeros at the origin (leaving another $n-m$ at infinity for bandpass shape)
  • $k → k ⋅ \mathrm{BW}^{(n-m)}$

lp2bs

$$s → {s ⋅ \mathrm{BW} \over s^2 + {ω_0}^2}$$

$$ \mathrm{H}(s) = k \frac {\displaystyle \prod_{i=0}^{m} {s ⋅ \mathrm{BW} \over s^2 + {ω_0}^2} - z_i} {\displaystyle \prod_{i=0}^{n} {s ⋅ \mathrm{BW} \over s^2 + {ω_0}^2} - p_i} $$

$$ \mathrm{H}(s) = k \frac {\displaystyle \prod_{i=0}^{m} {s ⋅ \mathrm{BW} - z_i(s^2 + {ω_0}^2)\over s^2 + {ω_0}^2}} {\displaystyle \prod_{i=0}^{n} {s ⋅ \mathrm{BW} - p_i(s^2 + {ω_0}^2)\over s^2 + {ω_0}^2}} $$

$$ \mathrm{H}(s) = k \frac {\displaystyle \prod_{i=0}^{m} {-z_i s^2 + \mathrm{BW}⋅s - z_i {ω_0}^2 \over s^2 + {ω_0}^2}} {\displaystyle \prod_{i=0}^{n} {-p_i s^2 + \mathrm{BW}⋅s - p_i {ω_0}^2 \over s^2 + {ω_0}^2}} $$

$$ \mathrm{H}(s) = k (s^2 + {ω_0}^2)^{(n-m)} \frac {\displaystyle \prod_{i=0}^{m} {-z_i s^2 + \mathrm{BW}⋅s - z_i {ω_0}^2}} {\displaystyle \prod_{i=0}^{n} {-p_i s^2 + \mathrm{BW}⋅s - p_i {ω_0}^2}} $$

quadratic factor:

$$ a x^2+b x+c =a \left(x+{b \over 2a}+{\sqrt{\left(b \over 2a\right)^2-{c \over a}}}\right) \left(x+{b \over 2a}-{\sqrt{\left(b \over 2a\right)^2-{c \over a}}}\right) $$

so:

$$ \mathrm{H}(s) = k \left(s±{\sqrt{-4 {ω_0}^2}\over 2}\right)^{(n-m)} \frac {\displaystyle \prod_{i=0}^{m} -z_i \left({s-{\mathrm{BW}\over2 z_i}±\sqrt{\left({-\mathrm{BW}\over2 z_i}\right)^2 - {-z_i {ω_0}^2 \over -z_i}}}\right)} {\displaystyle \prod_{i=0}^{n} -p_i \left({s-{\mathrm{BW}\over2 p_i}±\sqrt{\left({-\mathrm{BW}\over2 p_i}\right)^2 - {-p_i {ω_0}^2 \over -p_i}}}\right)} $$

simplify left and replace $z_{\mathrm{HP}i} = {\mathrm{BW}\over2 z_i}$ (high pass filter scaled to desired bandwidth)

$$ \mathrm{H}(s) = k (s±j ω_0)^{(n-m)} \frac {\displaystyle \prod_{i=0}^{m} -z_i \left({s-{z_{\mathrm{HP}i}}±\sqrt{{z_{\mathrm{HP}i}}^2 - {ω_0}^2}}\right)} {\displaystyle \prod_{i=0}^{n} -p_i \left({s-{p_{\mathrm{HP}i}}±\sqrt{{p_{\mathrm{HP}i}}^2 - {ω_0}^2}}\right)} $$

$$ \mathrm{H}(s) = k \frac {\displaystyle \prod_{i=0}^{m} -z_i} {\displaystyle \prod_{i=0}^{n} -p_i} ⋅(s±j ω_0)^{(n-m)} \frac {\displaystyle \prod_{i=0}^{m} {s-{z_{\mathrm{HP}i}}±\sqrt{{z_{\mathrm{HP}i}}^2 - {ω_0}^2}}} {\displaystyle \prod_{i=0}^{n} {s-{p_{\mathrm{HP}i}}±\sqrt{{p_{\mathrm{HP}i}}^2 - {ω_0}^2}}} $$

So

  • $z_i → z_{\mathrm{HP}i} ± {\sqrt{{z_{\mathrm{HP}i}}^2 - {ω_0}^2}}$
  • $p_i → p_{\mathrm{HP}i} ± {\sqrt{{p_{\mathrm{HP}i}}^2 - {ω_0}^2}}$
  • add $n-m$ zeros at $+j ω_0$ and $n-m$ zeros at $-j ω_0$ (center of stopband)
  • $k → k ⋅ \frac {\displaystyle \prod_{i=0}^{m} -z_i} {\displaystyle \prod_{i=0}^{n} -p_i}$

bilinear

$$ s → \frac{2}{T} \frac{z - 1}{z + 1} $$

$$ \mathrm{H}(z) = k \frac {\displaystyle \prod_{i=0}^{m} \frac{2}{T} \frac{z - 1}{z + 1}-z_i} {\displaystyle \prod_{i=0}^{n} \frac{2}{T} \frac{z - 1}{z + 1}-p_i} $$

$$ \mathrm{H}(z) = k \frac {\displaystyle \prod_{i=0}^{m} \frac{\frac{2}{T}(z - 1)}{z + 1}-\frac{z_i(z + 1)}{z + 1}} {\displaystyle \prod_{i=0}^{n} \frac{\frac{2}{T}(z - 1)}{z + 1}-\frac{p_i(z + 1)}{z + 1}} $$

$$ \mathrm{H}(z) = k \frac {\displaystyle \prod_{i=0}^{m} \frac{\frac{2}{T}(z - 1) - z_i(z + 1)}{z + 1}} {\displaystyle \prod_{i=0}^{n} \frac{\frac{2}{T}(z - 1) - p_i(z + 1)}{z + 1}} $$

$$ \mathrm{H}(z) = k \frac {\displaystyle \prod_{i=0}^{m} \frac{\frac{2}{T}z - \frac{2}{T} - z_i z - z_i}{z + 1}} {\displaystyle \prod_{i=0}^{n} \frac{\frac{2}{T}z - \frac{2}{T} - p_i p - p_i}{z + 1}} $$

$$ \mathrm{H}(z) = k ⋅ (z + 1)^{(n-m)} \frac {\displaystyle \prod_{i=0}^{m} \frac{2}{T}z - z_i z - \frac{2}{T} - z_i} {\displaystyle \prod_{i=0}^{n} \frac{2}{T}z - p_i p - \frac{2}{T} - p_i} $$

$$ \mathrm{H}(z) = k ⋅ (z + 1)^{(n-m)} \frac {\displaystyle \prod_{i=0}^{m} \left(\frac{2}{T} - z_i\right) z - \left(\frac{2}{T} + z_i\right)} {\displaystyle \prod_{i=0}^{n} \left(\frac{2}{T} - p_i\right) p - \left(\frac{2}{T} + p_i\right)} $$

substitute $f_\mathrm{s} = {1 \over T}$

$$ \mathrm{H}(z) = k ⋅ (z + 1)^{(n-m)} \frac {\displaystyle \prod_{i=0}^{m} (2 f_\mathrm{s} - z_i) z - (2 f_\mathrm{s} + z_i)} {\displaystyle \prod_{i=0}^{n} (2 f_\mathrm{s} - p_i) p - (2 f_\mathrm{s} + p_i)} $$

$$ \mathrm{H}(z) = k ⋅ (z + 1)^{(n-m)} \frac {\displaystyle \prod_{i=0}^{m} (2 f_\mathrm{s} - z_i) \left(z - {2 f_\mathrm{s} + z_i \over 2 f_\mathrm{s} - z_i}\right)} {\displaystyle \prod_{i=0}^{n} (2 f_\mathrm{s} - p_i) \left(p - {2 f_\mathrm{s} + p_i \over 2 f_\mathrm{s} - p_i}\right)} $$

$$ \mathrm{H}(z) = k { \displaystyle \prod_{i=0}^{m} 2 f_\mathrm{s} - z_i \over \displaystyle \prod_{i=0}^{n} 2 f_\mathrm{s} - p_i} ⋅ ({z+1})^{(n-m)} ⋅ \frac {\displaystyle \prod_{i=0}^{m} z - {2 f_\mathrm{s} + z_i \over 2 f_\mathrm{s} - z_i}} {\displaystyle \prod_{i=0}^{n} z - {2 f_\mathrm{s} + p_i \over 2 f_\mathrm{s} - p_i}} $$

  • $\displaystyle z_i → \frac{2 f_\mathrm{s} + z_i}{2 f_\mathrm{s} - z_i}$
  • add $n-m$ zeros at $-1$
  • $\displaystyle p_i → \frac{2 f_\mathrm{s} + p_i}{2 f_\mathrm{s} - p_i}$
  • $k → k \frac {\displaystyle \prod_{i=0}^{m} 2 f_\mathrm{s} - z_i} {\displaystyle \prod_{i=0}^{n} 2 f_\mathrm{s} - p_i}$

Written with StackEdit.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment