miller-book/node187.html

408 lines
12 KiB
HTML

<!DOCTYPE html>
<!--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>
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<TITLE>Dissecting classical waveforms</TITLE>
<META NAME="description" CONTENT="Dissecting classical waveforms">
<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="node188.html">
<LINK REL="previous" HREF="node185.html">
<LINK REL="up" HREF="node184.html">
<LINK REL="next" HREF="node188.html">
</HEAD>
<BODY >
<!--Navigation Panel-->
<A NAME="tex2html3368"
HREF="node188.html">
<IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next"
SRC="next.png"></A>
<A NAME="tex2html3362"
HREF="node184.html">
<IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up"
SRC="up.png"></A>
<A NAME="tex2html3356"
HREF="node186.html">
<IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous"
SRC="prev.png"></A>
<A NAME="tex2html3364"
HREF="node4.html">
<IMG WIDTH="65" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="contents"
SRC="contents.png"></A>
<A NAME="tex2html3366"
HREF="node201.html">
<IMG WIDTH="43" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="index"
SRC="index.png"></A>
<BR>
<B> Next:</B> <A NAME="tex2html3369"
HREF="node188.html">Fourier series of the</A>
<B> Up:</B> <A NAME="tex2html3363"
HREF="node184.html">Classical waveforms</A>
<B> Previous:</B> <A NAME="tex2html3357"
HREF="node186.html">Sawtooth waves and symmetry</A>
&nbsp; <B> <A NAME="tex2html3365"
HREF="node4.html">Contents</A></B>
&nbsp; <B> <A NAME="tex2html3367"
HREF="node201.html">Index</A></B>
<BR>
<BR>
<!--End of Navigation Panel-->
<H1><A NAME="SECTION001420000000000000000">
Dissecting classical waveforms</A>
</H1>
<P>
Among the several conclusions we can draw from the even/odd harmonic
decomposition of the sawtooth wave (Figure <A HREF="node186.html#fig10.02">10.2</A>), one is that a
square wave can be decomposed into a linear combination of two sawtooth
waves. We can carry this idea further, and show how to compose any classical
waveform having only jumps (discontinuities in value) but no corners
(discontinuities in slope) as a sum of sawtooth waves of various phases and
amplitudes. We then develop the idea further, showing how to generate waveforms
with corners (either in addition to, or instead of, jumps) using
another elementary waveform we'll call the
<A NAME="14273"></A><I>parabolic wave</I>.
<P>
Suppose first that a waveform of period <IMG
WIDTH="18" HEIGHT="14" ALIGN="BOTTOM" BORDER="0"
SRC="img3.png"
ALT="$N$"> has discontinuities at <IMG
WIDTH="10" HEIGHT="29" ALIGN="MIDDLE" BORDER="0"
SRC="img769.png"
ALT="$j$">
different points, <!-- MATH
${L_1}, \ldots, {L_j}$
-->
<IMG
WIDTH="74" HEIGHT="30" ALIGN="MIDDLE" BORDER="0"
SRC="img1278.png"
ALT="${L_1}, \ldots, {L_j}$">, all lying on the cycle between 0 and
<IMG
WIDTH="18" HEIGHT="14" ALIGN="BOTTOM" BORDER="0"
SRC="img3.png"
ALT="$N$">, at which the waveform jumps by values <!-- MATH
${d_1}, \ldots, {d_j}$
-->
<IMG
WIDTH="69" HEIGHT="30" ALIGN="MIDDLE" BORDER="0"
SRC="img1279.png"
ALT="${d_1}, \ldots, {d_j}$">. A negative
value of <IMG
WIDTH="18" HEIGHT="30" ALIGN="MIDDLE" BORDER="0"
SRC="img1280.png"
ALT="$d_1$">, for instance, would mean that the waveform jumps from a higher
to a lower value at the point <IMG
WIDTH="21" HEIGHT="30" ALIGN="MIDDLE" BORDER="0"
SRC="img1281.png"
ALT="${L_1}$">, and a positive value of <IMG
WIDTH="18" HEIGHT="30" ALIGN="MIDDLE" BORDER="0"
SRC="img1280.png"
ALT="$d_1$"> would mean
a jump from a lower to a higher value.
<P>
<DIV ALIGN="CENTER"><A NAME="fig10.03"></A><A NAME="14282"></A>
<TABLE>
<CAPTION ALIGN="BOTTOM"><STRONG>Figure 10.3:</STRONG>
Dissecting a waveform: (a) the original waveform with two
discontinuities; (b and c) the two component sawtooth waves.</CAPTION>
<TR><TD><IMG
WIDTH="479" HEIGHT="293" BORDER="0"
SRC="img1282.png"
ALT="\begin{figure}\psfig{file=figs/fig10.03.ps}\end{figure}"></TD></TR>
</TABLE>
</DIV>
<P>
For instance, Figure <A HREF="#fig10.03">10.3</A> (part a) shows a classical waveform with
two jumps: <!-- MATH
$({L_1}, {d_1}) = (0.3N, -0.3)$
-->
<IMG
WIDTH="163" HEIGHT="32" ALIGN="MIDDLE" BORDER="0"
SRC="img1283.png"
ALT="$({L_1}, {d_1}) = (0.3N, -0.3)$"> and <!-- MATH
$({L_2}, {d_2}) = (0.6N, 1.3)$
-->
<IMG
WIDTH="151" HEIGHT="32" ALIGN="MIDDLE" BORDER="0"
SRC="img1284.png"
ALT="$({L_2}, {d_2}) = (0.6N, 1.3)$">.
Parts (b) and (c) show sawtooth waves, each with one of the two jumps. The
sum of the two sawtooth waves reconstructs the waveform of part (a), except for
a possible constant (DC) offset.
<P>
The sawtooth wave with a jump of one unit at the point zero is given by
<BR><P></P>
<DIV ALIGN="CENTER">
<!-- MATH
\begin{displaymath}
s[n] = n/N - 1/2
\end{displaymath}
-->
<IMG
WIDTH="121" HEIGHT="28" BORDER="0"
SRC="img1285.png"
ALT="\begin{displaymath}
s[n] = n/N - 1/2
\end{displaymath}">
</DIV>
<BR CLEAR="ALL">
<P></P>
over the period <!-- MATH
$0 \le n \le N-1$
-->
<IMG
WIDTH="105" HEIGHT="30" ALIGN="MIDDLE" BORDER="0"
SRC="img1286.png"
ALT="$0 \le n \le N-1$">, and repeats for other values of
<IMG
WIDTH="13" HEIGHT="13" ALIGN="BOTTOM" BORDER="0"
SRC="img75.png"
ALT="$n$">. A sawtooth wave with a jump <IMG
WIDTH="42" HEIGHT="32" ALIGN="MIDDLE" BORDER="0"
SRC="img1287.png"
ALT="$(L, d)$"> is given by <!-- MATH
$s'[n] = d s[n-L]$
-->
<IMG
WIDTH="119" HEIGHT="32" ALIGN="MIDDLE" BORDER="0"
SRC="img1288.png"
ALT="$s'[n] = d s[n-L]$">.
The sum of all the component sawtooth waves is:
<BR><P></P>
<DIV ALIGN="CENTER">
<!-- MATH
\begin{displaymath}
x[n] = {d_1} s[n - {L_1}] + \cdots + {d_j} s[n - {L_j}]
\end{displaymath}
-->
<IMG
WIDTH="260" HEIGHT="29" BORDER="0"
SRC="img1289.png"
ALT="\begin{displaymath}
x[n] = {d_1} s[n - {L_1}] + \cdots + {d_j} s[n - {L_j}]
\end{displaymath}">
</DIV>
<BR CLEAR="ALL">
<P></P>
<P>
The slopes of the segments of the waveform of part (a) of the figure are all
the same, equal to the sum of the slopes of the component sawtooth waves:
<BR><P></P>
<DIV ALIGN="CENTER">
<!-- MATH
\begin{displaymath}
-{{{d_1} + \cdots + {d_j}} \over {N}}
\end{displaymath}
-->
<IMG
WIDTH="101" HEIGHT="39" BORDER="0"
SRC="img1290.png"
ALT="\begin{displaymath}
-{{{d_1} + \cdots + {d_j}} \over {N}}
\end{displaymath}">
</DIV>
<BR CLEAR="ALL">
<P></P>
Square and rectangle waves have horizontal line segments (slope zero); for
this to happen in general the jumps must add to zero:
<!-- MATH
${d_1} + \cdots + {d_j} = 0$
-->
<IMG
WIDTH="120" HEIGHT="30" ALIGN="MIDDLE" BORDER="0"
SRC="img1291.png"
ALT="${d_1} + \cdots + {d_j} = 0$">.
<P>
<DIV ALIGN="CENTER"><A NAME="fig10.04"></A><A NAME="14301"></A>
<TABLE>
<CAPTION ALIGN="BOTTOM"><STRONG>Figure 10.4:</STRONG>
The parabolic wave.</CAPTION>
<TR><TD><IMG
WIDTH="480" HEIGHT="109" BORDER="0"
SRC="img1292.png"
ALT="\begin{figure}\psfig{file=figs/fig10.04.ps}\end{figure}"></TD></TR>
</TABLE>
</DIV>
<P>
To decompose classical waveforms with corners we use the parabolic wave, which,
over a single period from 0 to <IMG
WIDTH="18" HEIGHT="14" ALIGN="BOTTOM" BORDER="0"
SRC="img3.png"
ALT="$N$">, is equal to
<BR><P></P>
<DIV ALIGN="CENTER">
<!-- MATH
\begin{displaymath}
p[n] = {1 \over 2} {{({n\over N} - {1\over 2})}^2} - {1 \over {24}}
\end{displaymath}
-->
<IMG
WIDTH="167" HEIGHT="42" BORDER="0"
SRC="img1293.png"
ALT="\begin{displaymath}
p[n] = {1 \over 2} {{({n\over N} - {1\over 2})}^2} - {1 \over {24}}
\end{displaymath}">
</DIV>
<BR CLEAR="ALL">
<P></P>
as shown in Figure <A HREF="#fig10.04">10.4</A>. It is a second-degree (quadratic) polynomial
in the variable <IMG
WIDTH="13" HEIGHT="13" ALIGN="BOTTOM" BORDER="0"
SRC="img75.png"
ALT="$n$">, arranged so that it reaches a maximum halfway through the
cycle at <IMG
WIDTH="63" HEIGHT="32" ALIGN="MIDDLE" BORDER="0"
SRC="img1246.png"
ALT="$n=N/2$">, the DC component is zero (or in other words, the average
value over one cycle of the waveform is zero), and so that the slope changes
discontinuously by <IMG
WIDTH="45" HEIGHT="32" ALIGN="MIDDLE" BORDER="0"
SRC="img1294.png"
ALT="$-1/N$"> at the beginning of the cycle.
<P>
To construct a waveform with any desired number of corners (suppose they are
at the points <!-- MATH
${M_i}, \ldots, {M_l}$
-->
<IMG
WIDTH="79" HEIGHT="30" ALIGN="MIDDLE" BORDER="0"
SRC="img1295.png"
ALT="${M_i}, \ldots, {M_l}$">, with slope changes equal to
<!-- MATH
${c_1}, \ldots, {c_l}$
-->
<IMG
WIDTH="64" HEIGHT="29" ALIGN="MIDDLE" BORDER="0"
SRC="img1296.png"
ALT="${c_1}, \ldots, {c_l}$">), we sum up the necessary parabolic waves:
<BR><P></P>
<DIV ALIGN="CENTER">
<!-- MATH
\begin{displaymath}
x[n] = {-N c_1} p[n - {M_1}] - \cdots - {N c_l} p[n - {M_l}]
\end{displaymath}
-->
<IMG
WIDTH="305" HEIGHT="28" BORDER="0"
SRC="img1297.png"
ALT="\begin{displaymath}
x[n] = {-N c_1} p[n - {M_1}] - \cdots - {N c_l} p[n - {M_l}]
\end{displaymath}">
</DIV>
<BR CLEAR="ALL">
<P></P>
An example is shown graphically in Figure <A HREF="#fig10.05">10.5</A>.
<P>
<DIV ALIGN="CENTER"><A NAME="fig10.05"></A><A NAME="14320"></A>
<TABLE>
<CAPTION ALIGN="BOTTOM"><STRONG>Figure 10.5:</STRONG>
Decomposing a triangle wave (part a) into two parabolic waves
(b and c).</CAPTION>
<TR><TD><IMG
WIDTH="479" HEIGHT="271" BORDER="0"
SRC="img1298.png"
ALT="\begin{figure}\psfig{file=figs/fig10.05.ps}\end{figure}"></TD></TR>
</TABLE>
</DIV>
<P>
If the sum <IMG
WIDTH="31" HEIGHT="32" ALIGN="MIDDLE" BORDER="0"
SRC="img80.png"
ALT="$x[n]$"> is to contain line segments (not segments of curves), the
<IMG
WIDTH="20" HEIGHT="16" ALIGN="BOTTOM" BORDER="0"
SRC="img1299.png"
ALT="$n^2$"> terms in the sum must sum to zero. From the expansion of <IMG
WIDTH="31" HEIGHT="32" ALIGN="MIDDLE" BORDER="0"
SRC="img80.png"
ALT="$x[n]$"> above,
this implies that <!-- MATH
${c_1} + \cdots + {c_l} = 0$
-->
<IMG
WIDTH="115" HEIGHT="29" ALIGN="MIDDLE" BORDER="0"
SRC="img1300.png"
ALT="${c_1} + \cdots + {c_l} = 0$">. Sums obtained from
existing classical
waveforms (as in the figure) will always satisfy this condition because the
changes in slope, over a cycle, must all add to zero for the waveform to
connect with itself.
<P>
<HR>
<!--Navigation Panel-->
<A NAME="tex2html3368"
HREF="node188.html">
<IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next"
SRC="next.png"></A>
<A NAME="tex2html3362"
HREF="node184.html">
<IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up"
SRC="up.png"></A>
<A NAME="tex2html3356"
HREF="node186.html">
<IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous"
SRC="prev.png"></A>
<A NAME="tex2html3364"
HREF="node4.html">
<IMG WIDTH="65" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="contents"
SRC="contents.png"></A>
<A NAME="tex2html3366"
HREF="node201.html">
<IMG WIDTH="43" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="index"
SRC="index.png"></A>
<BR>
<B> Next:</B> <A NAME="tex2html3369"
HREF="node188.html">Fourier series of the</A>
<B> Up:</B> <A NAME="tex2html3363"
HREF="node184.html">Classical waveforms</A>
<B> Previous:</B> <A NAME="tex2html3357"
HREF="node186.html">Sawtooth waves and symmetry</A>
&nbsp; <B> <A NAME="tex2html3365"
HREF="node4.html">Contents</A></B>
&nbsp; <B> <A NAME="tex2html3367"
HREF="node201.html">Index</A></B>
<!--End of Navigation Panel-->
<ADDRESS>
Miller Puckette
2006-12-30
</ADDRESS>
</BODY>
</HTML>