miller-book/node174.html

177 lines
5.6 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>Timbre stamping (classical vocoder)</TITLE>
<META NAME="description" CONTENT="Timbre stamping (classical vocoder)">
<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="node173.html">
<LINK REL="up" HREF="node172.html">
<LINK REL="next" HREF="node175.html">
</HEAD>
<BODY >
<!--Navigation Panel-->
<A ID="tex2html3172"
HREF="node175.html">
<IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next"
SRC="next.png"></A>
<A ID="tex2html3166"
HREF="node172.html">
<IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up"
SRC="up.png"></A>
<A ID="tex2html3162"
HREF="node173.html">
<IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous"
SRC="prev.png"></A>
<A ID="tex2html3168"
HREF="node4.html">
<IMG WIDTH="65" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="contents"
SRC="contents.png"></A>
<A ID="tex2html3170"
HREF="node201.html">
<IMG WIDTH="43" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="index"
SRC="index.png"></A>
<BR>
<B> Next:</B> <A ID="tex2html3173"
HREF="node175.html">Phase</A>
<B> Up:</B> <A ID="tex2html3167"
HREF="node172.html">Fourier analysis and reconstruction</A>
<B> Previous:</B> <A ID="tex2html3163"
HREF="node173.html">Narrow-band companding</A>
&nbsp; <B> <A ID="tex2html3169"
HREF="node4.html">Contents</A></B>
&nbsp; <B> <A ID="tex2html3171"
HREF="node201.html">Index</A></B>
<BR>
<BR>
<!--End of Navigation Panel-->
<H2><A ID="SECTION001342000000000000000">
Timbre stamping (classical vocoder)</A>
</H2>
<P>
<DIV ALIGN="CENTER"><A ID="fig09.09"></A><A ID="12598"></A>
<TABLE>
<CAPTION ALIGN="BOTTOM"><STRONG>Figure 9.9:</STRONG>
Block diagram for timbre stamping (AKA "vocoding'').</CAPTION>
<TR><TD><IMG
WIDTH="257" HEIGHT="420" BORDER="0"
SRC="img1172.png"
ALT="\begin{figure}\psfig{file=figs/fig09.09.ps}\end{figure}"></TD></TR>
</TABLE>
</DIV>
<P>
A second application of Fourier analysis and resynthesis is a time-varying
filter capable of making one sound take on the evolving spectral envelope of
another. This is
widely known in electronic music circles as
a
<A ID="12601"></A><I>vocoder</I>,
named, not quite accurately, after the original
Bell Laboratories vocal analysis/synthesis device. The
technique described here is more accurately called
<A ID="12603"></A><I>timbre stamping</I>.
Two input signals are used, one to be filtered, and the other to control the
filter via its time-varying spectral envelope. The windowed Fourier
transform is used both on the control signal input to estimate its spectral
envelope, and on the filter input in order to apply the filter.
<P>
A block diagram for timbre stamping is shown in Figure <A HREF="#fig09.09">9.9</A>.
As in the previous example, the timbre stamp acts by multiplying the
complex-valued windowed Fourier transform of the filter input by non-negative
real numbers, hence changing their magnitudes but leaving their phases intact.
Here the twist is that we want simply to replace the magnitudes of the
original, <IMG
WIDTH="61" HEIGHT="32" ALIGN="MIDDLE" BORDER="0"
SRC="img1173.png"
ALT="$\vert S[m, k]\vert$">, with magnitudes obtained from the control input (call
them <IMG
WIDTH="62" HEIGHT="32" ALIGN="MIDDLE" BORDER="0"
SRC="img1174.png"
ALT="$\vert T[m, k]\vert$">, say). The necessary gain would thus be,
<BR><P></P>
<DIV ALIGN="CENTER">
<!-- MATH
\begin{displaymath}
g[m, k] = {{|T[m, k]|}\over{|S[m, k]|}}
\end{displaymath}
-->
<IMG
WIDTH="129" HEIGHT="44" BORDER="0"
SRC="img1175.png"
ALT="\begin{displaymath}
g[m, k] = {{\vert T[m, k]\vert}\over{\vert S[m, k]\vert}}
\end{displaymath}">
</DIV>
<BR CLEAR="ALL">
<P></P>
In practice it is best to limit the gain to some maximum value (which might
depend on frequency) since otherwise channels containing nothing but noise,
sidelobes, or even truncation error might be raised to audibility. So a
suitable limiting function is applied to the gain before using it.
<P>
<HR>
<!--Navigation Panel-->
<A ID="tex2html3172"
HREF="node175.html">
<IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next"
SRC="next.png"></A>
<A ID="tex2html3166"
HREF="node172.html">
<IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up"
SRC="up.png"></A>
<A ID="tex2html3162"
HREF="node173.html">
<IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous"
SRC="prev.png"></A>
<A ID="tex2html3168"
HREF="node4.html">
<IMG WIDTH="65" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="contents"
SRC="contents.png"></A>
<A ID="tex2html3170"
HREF="node201.html">
<IMG WIDTH="43" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="index"
SRC="index.png"></A>
<BR>
<B> Next:</B> <A ID="tex2html3173"
HREF="node175.html">Phase</A>
<B> Up:</B> <A ID="tex2html3167"
HREF="node172.html">Fourier analysis and reconstruction</A>
<B> Previous:</B> <A ID="tex2html3163"
HREF="node173.html">Narrow-band companding</A>
&nbsp; <B> <A ID="tex2html3169"
HREF="node4.html">Contents</A></B>
&nbsp; <B> <A ID="tex2html3171"
HREF="node201.html">Index</A></B>
<!--End of Navigation Panel-->
<ADDRESS>
Miller Puckette
2006-12-30
</ADDRESS>
</BODY>
</HTML>