2022-04-12 22:02:59 -03:00
|
|
|
<!DOCTYPE html>
|
2022-04-12 21:54:18 -03:00
|
|
|
|
|
|
|
<!--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>
|
2022-04-12 22:02:59 -03:00
|
|
|
|
|
|
|
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
|
|
|
|
|
|
|
|
2022-04-12 21:54:18 -03:00
|
|
|
<TITLE>Two recirculating filters for the price of one</TITLE>
|
|
|
|
<META NAME="description" CONTENT="Two recirculating filters for the price of one">
|
|
|
|
<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="previous" HREF="node137.html">
|
|
|
|
<LINK REL="up" HREF="node132.html">
|
|
|
|
<LINK REL="next" HREF="node139.html">
|
|
|
|
</HEAD>
|
|
|
|
|
|
|
|
<BODY >
|
|
|
|
<!--Navigation Panel-->
|
|
|
|
<A NAME="tex2html2635"
|
|
|
|
HREF="node139.html">
|
|
|
|
<IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next"
|
2022-04-12 22:02:59 -03:00
|
|
|
SRC="next.png"></A>
|
2022-04-12 21:54:18 -03:00
|
|
|
<A NAME="tex2html2629"
|
|
|
|
HREF="node132.html">
|
|
|
|
<IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up"
|
2022-04-12 22:02:59 -03:00
|
|
|
SRC="up.png"></A>
|
2022-04-12 21:54:18 -03:00
|
|
|
<A NAME="tex2html2625"
|
|
|
|
HREF="node137.html">
|
|
|
|
<IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous"
|
2022-04-12 22:02:59 -03:00
|
|
|
SRC="prev.png"></A>
|
2022-04-12 21:54:18 -03:00
|
|
|
<A NAME="tex2html2631"
|
|
|
|
HREF="node4.html">
|
|
|
|
<IMG WIDTH="65" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="contents"
|
2022-04-12 22:02:59 -03:00
|
|
|
SRC="contents.png"></A>
|
2022-04-12 21:54:18 -03:00
|
|
|
<A NAME="tex2html2633"
|
|
|
|
HREF="node201.html">
|
|
|
|
<IMG WIDTH="43" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="index"
|
2022-04-12 22:02:59 -03:00
|
|
|
SRC="index.png"></A>
|
2022-04-12 21:54:18 -03:00
|
|
|
<BR>
|
|
|
|
<B> Next:</B> <A NAME="tex2html2636"
|
|
|
|
HREF="node139.html">Designing filters</A>
|
|
|
|
<B> Up:</B> <A NAME="tex2html2630"
|
|
|
|
HREF="node132.html">Elementary filters</A>
|
|
|
|
<B> Previous:</B> <A NAME="tex2html2626"
|
|
|
|
HREF="node137.html">Real outputs from complex</A>
|
|
|
|
<B> <A NAME="tex2html2632"
|
|
|
|
HREF="node4.html">Contents</A></B>
|
|
|
|
<B> <A NAME="tex2html2634"
|
|
|
|
HREF="node201.html">Index</A></B>
|
|
|
|
<BR>
|
|
|
|
<BR>
|
|
|
|
<!--End of Navigation Panel-->
|
|
|
|
|
|
|
|
<H2><A NAME="SECTION001226000000000000000">
|
|
|
|
Two recirculating filters for the price of one</A>
|
|
|
|
</H2>
|
|
|
|
|
|
|
|
<P>
|
|
|
|
When pairing recirculating elementary filters, it is possible to avoid
|
|
|
|
computing one of each pair, as long as the input is real-valued (and so,
|
|
|
|
the output is as well.) Supposing the input is a real sinusoid of the form:
|
|
|
|
<BR><P></P>
|
|
|
|
<DIV ALIGN="CENTER">
|
|
|
|
<!-- MATH
|
|
|
|
\begin{displaymath}
|
|
|
|
A{Z^n} + \overline{A}{Z^{-n}}
|
|
|
|
\end{displaymath}
|
|
|
|
-->
|
|
|
|
|
|
|
|
<IMG
|
|
|
|
WIDTH="93" HEIGHT="25" BORDER="0"
|
|
|
|
SRC="img900.png"
|
|
|
|
ALT="\begin{displaymath}
|
|
|
|
A{Z^n} + \overline{A}{Z^{-n}}
|
|
|
|
\end{displaymath}">
|
|
|
|
</DIV>
|
|
|
|
<BR CLEAR="ALL">
|
|
|
|
<P></P>
|
|
|
|
and we apply a single recirculating filter with coefficient <IMG
|
|
|
|
WIDTH="15" HEIGHT="14" ALIGN="BOTTOM" BORDER="0"
|
|
|
|
SRC="img880.png"
|
|
|
|
ALT="$P$">. Letting <IMG
|
|
|
|
WIDTH="30" HEIGHT="32" ALIGN="MIDDLE" BORDER="0"
|
|
|
|
SRC="img503.png"
|
|
|
|
ALT="$a[n]$">
|
|
|
|
denote the real part of the output, we have:
|
|
|
|
<BR><P></P>
|
|
|
|
<DIV ALIGN="CENTER">
|
|
|
|
<!-- MATH
|
|
|
|
\begin{displaymath}
|
|
|
|
a[n] =
|
|
|
|
\mathrm{re} \left[ {
|
|
|
|
{1 \over {1 - {P}{Z^{-1}}}} {A{Z^n} +
|
|
|
|
{1 \over {1 - {P}{Z}}} \overline{A}{Z^{-n}}}
|
|
|
|
} \right ]
|
|
|
|
\end{displaymath}
|
|
|
|
-->
|
|
|
|
|
|
|
|
<IMG
|
|
|
|
WIDTH="298" HEIGHT="45" BORDER="0"
|
|
|
|
SRC="img901.png"
|
|
|
|
ALT="\begin{displaymath}
|
|
|
|
a[n] =
|
|
|
|
\mathrm{re} \left[ {
|
|
|
|
{1 \over {1 - {P}{Z^{-1}}}} {...
|
|
|
|
...n} +
|
|
|
|
{1 \over {1 - {P}{Z}}} \overline{A}{Z^{-n}}}
|
|
|
|
} \right ]
|
|
|
|
\end{displaymath}">
|
|
|
|
</DIV>
|
|
|
|
<BR CLEAR="ALL">
|
|
|
|
<P></P>
|
|
|
|
<BR><P></P>
|
|
|
|
<DIV ALIGN="CENTER">
|
|
|
|
<!-- MATH
|
|
|
|
\begin{displaymath}
|
|
|
|
=
|
|
|
|
\mathrm{re} \left[ {
|
|
|
|
{1 \over {1 - {P}{Z^{-1}}}} {A{Z^n}} +
|
|
|
|
{1 \over {1 - \overline{P}{Z^{-1}}}} {A{Z^n}}
|
|
|
|
} \right ]
|
|
|
|
\end{displaymath}
|
|
|
|
-->
|
|
|
|
|
|
|
|
<IMG
|
|
|
|
WIDTH="274" HEIGHT="45" BORDER="0"
|
|
|
|
SRC="img902.png"
|
|
|
|
ALT="\begin{displaymath}
|
|
|
|
=
|
|
|
|
\mathrm{re} \left[ {
|
|
|
|
{1 \over {1 - {P}{Z^{-1}}}} {A{Z^n}} +
|
|
|
|
{1 \over {1 - \overline{P}{Z^{-1}}}} {A{Z^n}}
|
|
|
|
} \right ]
|
|
|
|
\end{displaymath}">
|
|
|
|
</DIV>
|
|
|
|
<BR CLEAR="ALL">
|
|
|
|
<P></P>
|
|
|
|
<BR><P></P>
|
|
|
|
<DIV ALIGN="CENTER">
|
|
|
|
<!-- MATH
|
|
|
|
\begin{displaymath}
|
|
|
|
=
|
|
|
|
\mathrm{re} \left[ {
|
|
|
|
{{
|
|
|
|
2 - 2 \, \mathrm{re} (P) {Z^{-1}}
|
|
|
|
} \over {
|
|
|
|
(1 - {P}{Z^{-1}}) (1 - {\overline{P}}{Z^{-1}})
|
|
|
|
}}
|
|
|
|
{A{Z^n}}
|
|
|
|
} \right ]
|
|
|
|
\end{displaymath}
|
|
|
|
-->
|
|
|
|
|
|
|
|
<IMG
|
|
|
|
WIDTH="243" HEIGHT="46" BORDER="0"
|
|
|
|
SRC="img903.png"
|
|
|
|
ALT="\begin{displaymath}
|
|
|
|
=
|
|
|
|
\mathrm{re} \left[ {
|
|
|
|
{{
|
|
|
|
2 - 2 \, \mathrm{re} (P) {Z^{-...
|
|
|
|
...^{-1}}) (1 - {\overline{P}}{Z^{-1}})
|
|
|
|
}}
|
|
|
|
{A{Z^n}}
|
|
|
|
} \right ]
|
|
|
|
\end{displaymath}">
|
|
|
|
</DIV>
|
|
|
|
<BR CLEAR="ALL">
|
|
|
|
<P></P>
|
|
|
|
<BR><P></P>
|
|
|
|
<DIV ALIGN="CENTER">
|
|
|
|
<!-- MATH
|
|
|
|
\begin{displaymath}
|
|
|
|
=
|
|
|
|
\mathrm{re} \left[ {
|
|
|
|
{{
|
|
|
|
1 - \mathrm{re} (P) {Z^{-1}}
|
|
|
|
} \over {
|
|
|
|
(1 - {P}{Z^{-1}}) (1 - {\overline{P}}{Z^{-1}})
|
|
|
|
}}
|
|
|
|
{A{Z^n}}
|
|
|
|
+
|
|
|
|
{{
|
|
|
|
1 - \mathrm{re} (P) {{\overline{Z}}^{-1}}
|
|
|
|
} \over {
|
|
|
|
(1 - {\overline{P}}{{\overline{Z}}^{-1}}) (1 - {P}{{\overline{Z}}^{-1}})
|
|
|
|
}}
|
|
|
|
{\overline{A}{{\overline{Z}}^{-n}}}
|
|
|
|
} \right ]
|
|
|
|
\end{displaymath}
|
|
|
|
-->
|
|
|
|
|
|
|
|
<IMG
|
|
|
|
WIDTH="474" HEIGHT="54" BORDER="0"
|
|
|
|
SRC="img904.png"
|
|
|
|
ALT="\begin{displaymath}
|
|
|
|
=
|
|
|
|
\mathrm{re} \left[ {
|
|
|
|
{{
|
|
|
|
1 - \mathrm{re} (P) {Z^{-1}}
|
|
|
|
...
|
|
|
|
...}}^{-1}})
|
|
|
|
}}
|
|
|
|
{\overline{A}{{\overline{Z}}^{-n}}}
|
|
|
|
} \right ]
|
|
|
|
\end{displaymath}">
|
|
|
|
</DIV>
|
|
|
|
<BR CLEAR="ALL">
|
|
|
|
<P></P>
|
|
|
|
(In the second step we used the fact that you can conjugate all or part of an
|
|
|
|
expression, without changing the result, if you're just going to take the real
|
|
|
|
part anyway. The fourth step did the same thing backward.) Comparing the input
|
|
|
|
to the output, we see that the effect of passing a real signal through a complex
|
|
|
|
one-pole filter, then taking the real part, is equivalent to passing the signal
|
|
|
|
through a two-pole, one-zero filter with transfer function equal to:
|
|
|
|
<BR><P></P>
|
|
|
|
<DIV ALIGN="CENTER">
|
|
|
|
<!-- MATH
|
|
|
|
\begin{displaymath}
|
|
|
|
{H_{\mathrm{re}}}(Z) = {{
|
|
|
|
1 - \mathrm{re} (P) {Z^{-1}}
|
|
|
|
} \over {
|
|
|
|
(1 - {P}{Z^{-1}}) (1 - {\overline{P}}{Z^{-1}})
|
|
|
|
}}
|
|
|
|
\end{displaymath}
|
|
|
|
-->
|
|
|
|
|
|
|
|
<IMG
|
|
|
|
WIDTH="235" HEIGHT="46" BORDER="0"
|
|
|
|
SRC="img905.png"
|
|
|
|
ALT="\begin{displaymath}
|
|
|
|
{H_{\mathrm{re}}}(Z) = {{
|
|
|
|
1 - \mathrm{re} (P) {Z^{-1}}
|
|
|
|
} \over {
|
|
|
|
(1 - {P}{Z^{-1}}) (1 - {\overline{P}}{Z^{-1}})
|
|
|
|
}}
|
|
|
|
\end{displaymath}">
|
|
|
|
</DIV>
|
|
|
|
<BR CLEAR="ALL">
|
|
|
|
<P></P>
|
|
|
|
A similar calculation shows that taking the imaginary part (considered as a real
|
|
|
|
signal) is equivalent to filtering the input with the transfer function:
|
|
|
|
<BR><P></P>
|
|
|
|
<DIV ALIGN="CENTER">
|
|
|
|
<!-- MATH
|
|
|
|
\begin{displaymath}
|
|
|
|
{H_{\mathrm{im}}}(Z) = {{
|
|
|
|
\mathrm{im} (P) {Z^{-1}}
|
|
|
|
} \over {
|
|
|
|
(1 - {P}{Z^{-1}}) (1 - {\overline{P}}{Z^{-1}})
|
|
|
|
}}
|
|
|
|
\end{displaymath}
|
|
|
|
-->
|
|
|
|
|
|
|
|
<IMG
|
|
|
|
WIDTH="238" HEIGHT="46" BORDER="0"
|
|
|
|
SRC="img906.png"
|
|
|
|
ALT="\begin{displaymath}
|
|
|
|
{H_{\mathrm{im}}}(Z) = {{
|
|
|
|
\mathrm{im} (P) {Z^{-1}}
|
|
|
|
} \over {
|
|
|
|
(1 - {P}{Z^{-1}}) (1 - {\overline{P}}{Z^{-1}})
|
|
|
|
}}
|
|
|
|
\end{displaymath}">
|
|
|
|
</DIV>
|
|
|
|
<BR CLEAR="ALL">
|
|
|
|
<P></P>
|
|
|
|
So taking either the real or imaginary part of a one-pole filter output gives
|
|
|
|
filters with two conjugate poles. The two parts can be combined
|
|
|
|
to synthesize filters with other possible numerators; in other words, with
|
|
|
|
one complex recirculating filter we can synthesize a filter that acts on
|
|
|
|
real signals with two (complex conjugate) poles and one (real) zero.
|
|
|
|
|
|
|
|
<P>
|
|
|
|
This technique, known as
|
|
|
|
<I>partial fractions</I>, may be repeated for
|
|
|
|
any number of stages in series as long as we compute the appropriate
|
|
|
|
combination of real and imaginary parts of the output of each stage to
|
|
|
|
form the (real) input of the next stage.
|
|
|
|
No similar shortcut seems to exist for non-recirculating filters; for them
|
|
|
|
it is necessary to compute each member of each complex-conjugate pair
|
|
|
|
explicitly.
|
|
|
|
|
|
|
|
<P>
|
|
|
|
<HR>
|
|
|
|
<!--Navigation Panel-->
|
|
|
|
<A NAME="tex2html2635"
|
|
|
|
HREF="node139.html">
|
|
|
|
<IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next"
|
2022-04-12 22:02:59 -03:00
|
|
|
SRC="next.png"></A>
|
2022-04-12 21:54:18 -03:00
|
|
|
<A NAME="tex2html2629"
|
|
|
|
HREF="node132.html">
|
|
|
|
<IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up"
|
2022-04-12 22:02:59 -03:00
|
|
|
SRC="up.png"></A>
|
2022-04-12 21:54:18 -03:00
|
|
|
<A NAME="tex2html2625"
|
|
|
|
HREF="node137.html">
|
|
|
|
<IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous"
|
2022-04-12 22:02:59 -03:00
|
|
|
SRC="prev.png"></A>
|
2022-04-12 21:54:18 -03:00
|
|
|
<A NAME="tex2html2631"
|
|
|
|
HREF="node4.html">
|
|
|
|
<IMG WIDTH="65" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="contents"
|
2022-04-12 22:02:59 -03:00
|
|
|
SRC="contents.png"></A>
|
2022-04-12 21:54:18 -03:00
|
|
|
<A NAME="tex2html2633"
|
|
|
|
HREF="node201.html">
|
|
|
|
<IMG WIDTH="43" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="index"
|
2022-04-12 22:02:59 -03:00
|
|
|
SRC="index.png"></A>
|
2022-04-12 21:54:18 -03:00
|
|
|
<BR>
|
|
|
|
<B> Next:</B> <A NAME="tex2html2636"
|
|
|
|
HREF="node139.html">Designing filters</A>
|
|
|
|
<B> Up:</B> <A NAME="tex2html2630"
|
|
|
|
HREF="node132.html">Elementary filters</A>
|
|
|
|
<B> Previous:</B> <A NAME="tex2html2626"
|
|
|
|
HREF="node137.html">Real outputs from complex</A>
|
|
|
|
<B> <A NAME="tex2html2632"
|
|
|
|
HREF="node4.html">Contents</A></B>
|
|
|
|
<B> <A NAME="tex2html2634"
|
|
|
|
HREF="node201.html">Index</A></B>
|
|
|
|
<!--End of Navigation Panel-->
|
|
|
|
<ADDRESS>
|
|
|
|
Miller Puckette
|
|
|
|
2006-12-30
|
|
|
|
</ADDRESS>
|
|
|
|
</BODY>
|
|
|
|
</HTML>
|