375 lines
11 KiB
HTML
375 lines
11 KiB
HTML
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">
|
|
|
|
<!--Converted with LaTeX2HTML 2002-2-1 (1.71)
|
|
original version by: Nikos Drakos, CBLU, University of Leeds
|
|
* revised and updated by: Marcus Hennecke, Ross Moore, Herb Swan
|
|
* with significant contributions from:
|
|
Jens Lippmann, Marek Rouchal, Martin Wilck and others -->
|
|
<HTML>
|
|
<HEAD>
|
|
<TITLE>Butterworth filters</TITLE>
|
|
<META NAME="description" CONTENT="Butterworth filters">
|
|
<META NAME="keywords" CONTENT="book">
|
|
<META NAME="resource-type" CONTENT="document">
|
|
<META NAME="distribution" CONTENT="global">
|
|
|
|
<META NAME="Generator" CONTENT="LaTeX2HTML v2002-2-1">
|
|
<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
|
|
|
|
<LINK REL="STYLESHEET" HREF="book.css">
|
|
|
|
<LINK REL="next" HREF="node146.html">
|
|
<LINK REL="previous" HREF="node144.html">
|
|
<LINK REL="up" HREF="node139.html">
|
|
<LINK REL="next" HREF="node146.html">
|
|
</HEAD>
|
|
|
|
<BODY >
|
|
<!--Navigation Panel-->
|
|
<A NAME="tex2html2744"
|
|
HREF="node146.html">
|
|
<IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next"
|
|
SRC="file:/usr/local/share/lib/latex2html/icons/next.png"></A>
|
|
<A NAME="tex2html2738"
|
|
HREF="node139.html">
|
|
<IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up"
|
|
SRC="file:/usr/local/share/lib/latex2html/icons/up.png"></A>
|
|
<A NAME="tex2html2732"
|
|
HREF="node144.html">
|
|
<IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous"
|
|
SRC="file:/usr/local/share/lib/latex2html/icons/prev.png"></A>
|
|
<A NAME="tex2html2740"
|
|
HREF="node4.html">
|
|
<IMG WIDTH="65" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="contents"
|
|
SRC="file:/usr/local/share/lib/latex2html/icons/contents.png"></A>
|
|
<A NAME="tex2html2742"
|
|
HREF="node201.html">
|
|
<IMG WIDTH="43" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="index"
|
|
SRC="file:/usr/local/share/lib/latex2html/icons/index.png"></A>
|
|
<BR>
|
|
<B> Next:</B> <A NAME="tex2html2745"
|
|
HREF="node146.html">Stretching the unit circle</A>
|
|
<B> Up:</B> <A NAME="tex2html2739"
|
|
HREF="node139.html">Designing filters</A>
|
|
<B> Previous:</B> <A NAME="tex2html2733"
|
|
HREF="node144.html">Peaking and stop-band filter</A>
|
|
<B> <A NAME="tex2html2741"
|
|
HREF="node4.html">Contents</A></B>
|
|
<B> <A NAME="tex2html2743"
|
|
HREF="node201.html">Index</A></B>
|
|
<BR>
|
|
<BR>
|
|
<!--End of Navigation Panel-->
|
|
|
|
<H2><A NAME="SECTION001236000000000000000">
|
|
Butterworth filters</A>
|
|
</H2>
|
|
|
|
<P>
|
|
A filter with one real pole and one real zero can be configured as a shelving
|
|
filter, as a high-pass filter (putting the zero at the point <IMG
|
|
WIDTH="11" HEIGHT="13" ALIGN="BOTTOM" BORDER="0"
|
|
SRC="img262.png"
|
|
ALT="$1$">) or as a
|
|
low-pass filter (putting the zero at <IMG
|
|
WIDTH="23" HEIGHT="29" ALIGN="MIDDLE" BORDER="0"
|
|
SRC="img401.png"
|
|
ALT="$-1$">). The frequency responses of these
|
|
filters are quite blunt; in other words, the transition regions are wide. It
|
|
is often desirable to get a sharper filter, either shelving, low- or high-pass,
|
|
whose two bands are flatter and separated by a narrower transition region.
|
|
|
|
<P>
|
|
A procedure borrowed from the analog filtering world transforms real,
|
|
one-pole, one-zero filters to corresponding
|
|
<A NAME="10375"></A>
|
|
<I>Butterworth filters</I>,
|
|
which have narrower transition regions. This procedure is described clearly
|
|
and elegantly in the last chapter of [<A
|
|
HREF="node202.html#r-steiglitz96">Ste96</A>]. The derivation
|
|
uses more mathematics background than we have developed here, and we will simply
|
|
present the result without deriving it.
|
|
|
|
<P>
|
|
To make a Butterworth filter out of a high-pass, low-pass, or shelving
|
|
filter, suppose that either the pole or the
|
|
zero is given by the expression
|
|
<BR><P></P>
|
|
<DIV ALIGN="CENTER">
|
|
<!-- MATH
|
|
\begin{displaymath}
|
|
{{1 - {r^2}} \over {{(1 + r)}^2}}
|
|
\end{displaymath}
|
|
-->
|
|
|
|
<IMG
|
|
WIDTH="55" HEIGHT="48" BORDER="0"
|
|
SRC="img928.png"
|
|
ALT="\begin{displaymath}
|
|
{{1 - {r^2}} \over {{(1 + r)}^2}}
|
|
\end{displaymath}">
|
|
</DIV>
|
|
<BR CLEAR="ALL">
|
|
<P></P>
|
|
where <IMG
|
|
WIDTH="11" HEIGHT="13" ALIGN="BOTTOM" BORDER="0"
|
|
SRC="img467.png"
|
|
ALT="$r$"> is a parameter ranging from 1 to <IMG
|
|
WIDTH="19" HEIGHT="13" ALIGN="BOTTOM" BORDER="0"
|
|
SRC="img305.png"
|
|
ALT="$\infty$">. If <IMG
|
|
WIDTH="40" HEIGHT="13" ALIGN="BOTTOM" BORDER="0"
|
|
SRC="img929.png"
|
|
ALT="$r=0$"> this is the point
|
|
<IMG
|
|
WIDTH="11" HEIGHT="13" ALIGN="BOTTOM" BORDER="0"
|
|
SRC="img262.png"
|
|
ALT="$1$">, and if <IMG
|
|
WIDTH="48" HEIGHT="13" ALIGN="BOTTOM" BORDER="0"
|
|
SRC="img930.png"
|
|
ALT="$r=\infty$"> it's <IMG
|
|
WIDTH="23" HEIGHT="29" ALIGN="MIDDLE" BORDER="0"
|
|
SRC="img401.png"
|
|
ALT="$-1$">.
|
|
|
|
<P>
|
|
Then, for reasons which will remain mysterious, we replace the point (whether
|
|
pole or zero) by <IMG
|
|
WIDTH="13" HEIGHT="13" ALIGN="BOTTOM" BORDER="0"
|
|
SRC="img75.png"
|
|
ALT="$n$"> points given by:
|
|
<BR><P></P>
|
|
<DIV ALIGN="CENTER">
|
|
<!-- MATH
|
|
\begin{displaymath}
|
|
{ (1 - {r^2}) - (2 r \sin(\alpha)) i }
|
|
\over
|
|
{ 1 + {r^2} + 2 r \cos(\alpha))}
|
|
\end{displaymath}
|
|
-->
|
|
|
|
<IMG
|
|
WIDTH="152" HEIGHT="45" BORDER="0"
|
|
SRC="img931.png"
|
|
ALT="\begin{displaymath}
|
|
{ (1 - {r^2}) - (2 r \sin(\alpha)) i }
|
|
\over
|
|
{ 1 + {r^2} + 2 r \cos(\alpha))}
|
|
\end{displaymath}">
|
|
</DIV>
|
|
<BR CLEAR="ALL">
|
|
<P></P>
|
|
where <IMG
|
|
WIDTH="13" HEIGHT="13" ALIGN="BOTTOM" BORDER="0"
|
|
SRC="img7.png"
|
|
ALT="$\alpha $"> ranges over the values:
|
|
<BR><P></P>
|
|
<DIV ALIGN="CENTER">
|
|
<!-- MATH
|
|
\begin{displaymath}
|
|
{\pi \over 2} ({1 \over n} - 1) , \;
|
|
{\pi \over 2} ({3 \over n} - 1) , \; \ldots , \;
|
|
{\pi \over 2} ({{2n-1} \over n} - 1)
|
|
\end{displaymath}
|
|
-->
|
|
|
|
<IMG
|
|
WIDTH="288" HEIGHT="38" BORDER="0"
|
|
SRC="img932.png"
|
|
ALT="\begin{displaymath}
|
|
{\pi \over 2} ({1 \over n} - 1) , \;
|
|
{\pi \over 2} ({3 \ov...
|
|
...} - 1) , \; \ldots , \;
|
|
{\pi \over 2} ({{2n-1} \over n} - 1)
|
|
\end{displaymath}">
|
|
</DIV>
|
|
<BR CLEAR="ALL">
|
|
<P></P>
|
|
In other words, <IMG
|
|
WIDTH="13" HEIGHT="13" ALIGN="BOTTOM" BORDER="0"
|
|
SRC="img7.png"
|
|
ALT="$\alpha $"> takes on <IMG
|
|
WIDTH="13" HEIGHT="13" ALIGN="BOTTOM" BORDER="0"
|
|
SRC="img75.png"
|
|
ALT="$n$"> equally spaced angles between
|
|
<IMG
|
|
WIDTH="41" HEIGHT="32" ALIGN="MIDDLE" BORDER="0"
|
|
SRC="img283.png"
|
|
ALT="$-\pi/2$"> and <IMG
|
|
WIDTH="29" HEIGHT="32" ALIGN="MIDDLE" BORDER="0"
|
|
SRC="img5.png"
|
|
ALT="$\pi /2$">. The points are arranged in the complex plane as shown in
|
|
Figure <A HREF="#fig08.17">8.17</A>. They lie on a circle through the original real-valued
|
|
point, which cuts the unit circle at right angles.
|
|
|
|
<P>
|
|
A good estimate for the cutoff or transition frequency defined by
|
|
these circular collections of poles or zeros is simply the spot where the
|
|
circle intersects the unit circle, corresponding to <!-- MATH
|
|
$\alpha = \pi/2$
|
|
-->
|
|
<IMG
|
|
WIDTH="60" HEIGHT="32" ALIGN="MIDDLE" BORDER="0"
|
|
SRC="img933.png"
|
|
ALT="$\alpha = \pi/2$">. This gives
|
|
the point
|
|
<BR><P></P>
|
|
<DIV ALIGN="CENTER">
|
|
<!-- MATH
|
|
\begin{displaymath}
|
|
{ (1 - {r^2}) - 2 r i }
|
|
\over
|
|
{ 1 + {r^2} }
|
|
\end{displaymath}
|
|
-->
|
|
|
|
<IMG
|
|
WIDTH="95" HEIGHT="42" BORDER="0"
|
|
SRC="img934.png"
|
|
ALT="\begin{displaymath}
|
|
{ (1 - {r^2}) - 2 r i }
|
|
\over
|
|
{ 1 + {r^2} }
|
|
\end{displaymath}">
|
|
</DIV>
|
|
<BR CLEAR="ALL">
|
|
<P></P>
|
|
which, after some algebra, gives an angular frequency equal to
|
|
<BR><P></P>
|
|
<DIV ALIGN="CENTER">
|
|
<!-- MATH
|
|
\begin{displaymath}
|
|
\beta = 2 \arctan (r)
|
|
\end{displaymath}
|
|
-->
|
|
|
|
<IMG
|
|
WIDTH="105" HEIGHT="28" BORDER="0"
|
|
SRC="img935.png"
|
|
ALT="\begin{displaymath}
|
|
\beta = 2 \arctan (r)
|
|
\end{displaymath}">
|
|
</DIV>
|
|
<BR CLEAR="ALL">
|
|
<P></P>
|
|
|
|
<P>
|
|
|
|
<DIV ALIGN="CENTER"><A NAME="fig08.17"></A><A NAME="10393"></A>
|
|
<TABLE>
|
|
<CAPTION ALIGN="BOTTOM"><STRONG>Figure 8.17:</STRONG>
|
|
Replacing a real-valued pole or zero (shown as a solid dot) with an
|
|
array of four
|
|
of them (circles) as for
|
|
a Butterworth filter. In this example we get four new poles or zeros as
|
|
shown, lying along the circle where <IMG
|
|
WIDTH="52" HEIGHT="13" ALIGN="BOTTOM" BORDER="0"
|
|
SRC="img45.png"
|
|
ALT="$r=0.5$">.</CAPTION>
|
|
<TR><TD><IMG
|
|
WIDTH="406" HEIGHT="291" BORDER="0"
|
|
SRC="img936.png"
|
|
ALT="\begin{figure}\psfig{file=figs/fig08.17.ps}\end{figure}"></TD></TR>
|
|
</TABLE>
|
|
</DIV>
|
|
|
|
<P>
|
|
Figure <A HREF="#fig08.18">8.18</A> (part a) shows a pole-zero diagram and frequency
|
|
response for a Butterworth low-pass filter with three poles and three zeros.
|
|
Part (b) shows the frequency response of the low-pass filter and three other
|
|
filters obtained by choosing different values of <IMG
|
|
WIDTH="13" HEIGHT="30" ALIGN="MIDDLE" BORDER="0"
|
|
SRC="img8.png"
|
|
ALT="$\beta $"> (and hence <IMG
|
|
WIDTH="11" HEIGHT="13" ALIGN="BOTTOM" BORDER="0"
|
|
SRC="img467.png"
|
|
ALT="$r$">) for
|
|
the zeros, while leaving the poles stationary. As the zeros progress from
|
|
<IMG
|
|
WIDTH="44" HEIGHT="30" ALIGN="MIDDLE" BORDER="0"
|
|
SRC="img47.png"
|
|
ALT="$\beta =\pi $"> to <IMG
|
|
WIDTH="42" HEIGHT="30" ALIGN="MIDDLE" BORDER="0"
|
|
SRC="img50.png"
|
|
ALT="$\beta =0$">, the filter, which starts as a low-pass filter,
|
|
becomes a shelving filter and then a high-pass one.
|
|
|
|
<P>
|
|
|
|
<DIV ALIGN="CENTER"><A NAME="fig08.18"></A><A NAME="10399"></A>
|
|
<TABLE>
|
|
<CAPTION ALIGN="BOTTOM"><STRONG>Figure 8.18:</STRONG>
|
|
Butterworth low-pass filter with three poles
|
|
and three zeros: (a) pole-zero plot. The poles are chosen for a cutoff frequency
|
|
<IMG
|
|
WIDTH="60" HEIGHT="32" ALIGN="MIDDLE" BORDER="0"
|
|
SRC="img46.png"
|
|
ALT="$\beta = \pi /4$">;
|
|
(b) frequency responses for four filters with the same
|
|
pole configuration, with different placements of zeros (but leaving the poles
|
|
fixed). The low-pass filter
|
|
results from setting <IMG
|
|
WIDTH="44" HEIGHT="30" ALIGN="MIDDLE" BORDER="0"
|
|
SRC="img47.png"
|
|
ALT="$\beta =\pi $"> for the zeros; the two shelving filters
|
|
correspond to <IMG
|
|
WIDTH="76" HEIGHT="32" ALIGN="MIDDLE" BORDER="0"
|
|
SRC="img48.png"
|
|
ALT="$\beta =3\pi /10$"> and <IMG
|
|
WIDTH="76" HEIGHT="32" ALIGN="MIDDLE" BORDER="0"
|
|
SRC="img49.png"
|
|
ALT="$\beta =2\pi /10$">, and finally the high-pass
|
|
filter is obtained setting <IMG
|
|
WIDTH="42" HEIGHT="30" ALIGN="MIDDLE" BORDER="0"
|
|
SRC="img50.png"
|
|
ALT="$\beta =0$">. The high-pass filter is normalized for
|
|
unit gain at the Nyquist frequency, and the others for unit gain at DC. </CAPTION>
|
|
<TR><TD><IMG
|
|
WIDTH="588" HEIGHT="252" BORDER="0"
|
|
SRC="img937.png"
|
|
ALT="\begin{figure}\psfig{file=figs/fig08.18.ps}\end{figure}"></TD></TR>
|
|
</TABLE>
|
|
</DIV>
|
|
|
|
<P>
|
|
<HR>
|
|
<!--Navigation Panel-->
|
|
<A NAME="tex2html2744"
|
|
HREF="node146.html">
|
|
<IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next"
|
|
SRC="file:/usr/local/share/lib/latex2html/icons/next.png"></A>
|
|
<A NAME="tex2html2738"
|
|
HREF="node139.html">
|
|
<IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up"
|
|
SRC="file:/usr/local/share/lib/latex2html/icons/up.png"></A>
|
|
<A NAME="tex2html2732"
|
|
HREF="node144.html">
|
|
<IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous"
|
|
SRC="file:/usr/local/share/lib/latex2html/icons/prev.png"></A>
|
|
<A NAME="tex2html2740"
|
|
HREF="node4.html">
|
|
<IMG WIDTH="65" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="contents"
|
|
SRC="file:/usr/local/share/lib/latex2html/icons/contents.png"></A>
|
|
<A NAME="tex2html2742"
|
|
HREF="node201.html">
|
|
<IMG WIDTH="43" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="index"
|
|
SRC="file:/usr/local/share/lib/latex2html/icons/index.png"></A>
|
|
<BR>
|
|
<B> Next:</B> <A NAME="tex2html2745"
|
|
HREF="node146.html">Stretching the unit circle</A>
|
|
<B> Up:</B> <A NAME="tex2html2739"
|
|
HREF="node139.html">Designing filters</A>
|
|
<B> Previous:</B> <A NAME="tex2html2733"
|
|
HREF="node144.html">Peaking and stop-band filter</A>
|
|
<B> <A NAME="tex2html2741"
|
|
HREF="node4.html">Contents</A></B>
|
|
<B> <A NAME="tex2html2743"
|
|
HREF="node201.html">Index</A></B>
|
|
<!--End of Navigation Panel-->
|
|
<ADDRESS>
|
|
Miller Puckette
|
|
2006-12-30
|
|
</ADDRESS>
|
|
</BODY>
|
|
</HTML>
|