Sign in

username:

password:



Not a member?

Search Online Books



Search tips

Free Online Books



Chapters

See Also

Embedded SystemsFPGAElectronics
Chapter Contents:

Search Spectral Audio Signal Processing

  

Book Index | Global Index


Would you like to be notified by email when Julius Orion Smith III publishes a new entry into his blog?

  

Computing Vocoder Parameters

To compute the amplitude $ a_k(t)$ at the output of the $ k$th subband, we can apply an envelope follower. Classically, such as in the original vocoder, this can be done by full-wave rectification and subsequent low pass filtering, as shown in Fig.H.13. This produces an approximation of the average power in each subband.


\begin{psfrags}
% latex2html id marker 41940\psfrag{x} []{ \LARGE$ x_k(t)$\ }
...
...ope
extraction in continuous-time analog circuits.}
\end{figure}
\end{psfrags}

In digital signal processing, we can do better than the classical amplitude-envelope follower: We can measure instead the instantaneous amplitude of the (assumed quasi sinusoidal) signal in each filter band using so-called analytic signal processing. For this, we generalize Eq.$ \,$(H.1) to the real-part of the corresponding analytic signal:

$\displaystyle x_k(t)\eqsp a_k(t)\cos[ \omega_kt + \phi_k(t) ] \eqsp$   $\displaystyle \mbox{re\ensuremath{\left\{a_k(t)e^{j\phi_k(t)} e^{j\omega_k t}\right\}}}$$\displaystyle \isdefs$   $\displaystyle \mbox{re\ensuremath{\left\{x^a_k(t)\right\}}}$$\displaystyle \protect$ (H.2)

In general, when both amplitude and phase are needed, we must compute two real signals for each vocoder channel:
$\displaystyle a_k(t)$ $\displaystyle =$ $\displaystyle \vert x_k^a(t) \vert \eqsp$   instantaneous amplitude  
$\displaystyle \phi_k(t)$ $\displaystyle =$ $\displaystyle \angle x_k^a(t) - \omega_kt \eqsp$   instantaneous phase  
  $\displaystyle =$ $\displaystyle \tan^{-1} \left[ \frac{\mbox{im\ensuremath{\left\{x_k^a(t)\right\}}}}
{\mbox{re\ensuremath{\left\{x_k^a(t)\right\}}}} \right] - \omega_kt
\protect$ (H.3)

We call $ a_k(t)$ the instantaneous amplitude of both $ x_k(t)$ and $ x_k^a(t)$, and similarly for $ \phi_k(t)$. We also call $ a_k(t)$ the amplitude envelope of the $ k$th channel output.

In order to determine these signals, we need to compute the analytic signal $ x_k^a(t)$ from its real part $ x_k(t)$. Ideally, the imaginary part of the analytic signal is obtained from its real part using the Hilbert transformE.5), as shown in Fig.H.14.


\begin{psfrags}
% latex2html id marker 41971\psfrag{x} []{ \LARGE$ x_k(t)$\ }
...
...nal
from its real part using the Hilbert transform.}
\end{figure}
\end{psfrags}

Practical Hilbert transformers are covered in §E.5.

Using the Hilbert-transform filter, we obtain the analytic signal in rectangular (Cartesian) form:

$\displaystyle x_k^a(t) =$   $\displaystyle \mbox{re\ensuremath{\left\{x_k^a(t)\right\}}}$$\displaystyle + j\,$$\displaystyle \mbox{im\ensuremath{\left\{x_k^a(t)\right\}}}$

To obtain the instantaneous amplitude and phase, we simply convert each complex value of $ x_k^a(t)$ to polar form

$\displaystyle x_k^a(t) = a_k(t)e^{j[ \omega_kt +\phi_k(t)] }
$

as given by (H.3).



Subsections
Previous: Phase Vocoder Sinusoidal Modeling
Next: Frequency Envelopes

Order a Hardcopy of Spectral Audio Signal Processing


About the Author: Julius Orion Smith III
Julius Smith's background is in electrical engineering (BS Rice 1975, PhD Stanford 1983). He is presently Professor of Music and Associate Professor (by courtesy) of Electrical Engineering at Stanford's Center for Computer Research in Music and Acoustics (CCRMA), teaching courses and pursuing research related to signal processing applied to music and audio systems. See http://ccrma.stanford.edu/~jos/ for details.


Comments


No comments yet for this page


Add a Comment
You need to login before you can post a comment (best way to prevent spam). ( Not a member? )