From: HARNDEN@AUVM.BITNET (ronin)
Subject: vocoder tutorial
Date: 18 Oct 91 12:47:21 GMT

someone has asked about vocoders here, and there have been various levels
of reply, some of which were aimed at providing manufacturer info,
and a couple of which gave a little bit of operational info. i thought
i'd expand on the operational side, for those who might be confused,
or just ignorant, about a vocoder's workings. if you already know, ignore
this and go read the rest of your mail.

a vocoder's main equipment consists of two sets of bandpass filters.
these are filters that pass only a selected range of frequencies, the
center of that range known as the center frequency, and the breadth of that
range known as the bandwidth. a single set of these filters constitutes a
filter bank whose center frequencies and bandwidths are designed to provide
coverage for pretty much the whole range of hearing. one possible configuration
for example would use octave bandwidth filters, with their center frequencies
set an octave apart. one octave bandwidth filter might have its center
frequency set to 1000Hz, for instance. it's nearest upper neighbor would be
centered at 2000Hz, and its nearest lower neighbor would be centered at
500Hz. the frequency response curves (the map of their pass-bands) would
overlap each other at the points a half-octave between each pair, providing
filter coverage for the entire range from about 250Hz to 3000Hz. of course,
the narrower the filter bandwidth (and therefore the more plentiful the
filters in the bank), the more precision the bank has, since each filter will
differentiate a smaller range of frequencies.
now... a signal, say from a synthesizer (let's call it the source), is passed
into one of these banks. the signal is applied in parallel to all of them at
the same time, and the output of each passed through a gain control element
(a VCA) before the signal is recombined. so far, not unlike a graphic EQ,
except that the VCAs don't actually boost the signal from a filter, just
provide controllable attenuation. the VCAs are normally off. the application
of a control to any one of the VCAs will cause a certain amount of the
frequency selected for by the bandpass filter feeding it to be passed to the
output:

source---->filter 1---->vca 1-----|
        |->filter 2---->vca 2-----|---mix---->out (whatever portion of
        |->filter 3---->vca 3-----|                the signal is passed
                         |                         by filter 3)
control------------------|
(applied to vca 3 only for this example)

got it? good. now, we've got another signal, say from a microphone (let's call
it the control), that is passed through another filter bank that is matched
to the first one... its filter parameters are exactly the same as those of
the first bank (the one through which the source is passed). the output of
these filters, though, rather than being passed through VCAs which control
their final gain, is measured to determine their gain. in an analog vocoder,
this is simply done by rectifying the output from each filter. what you get
is a DC voltage whose amplitude is proprtional to the amount of control
signal that got through that filter, which is of course proportional to the
amount that that frequency range was present in the spectrum of the control.
the DC control voltage associated with ecah control filter is applied to the
VCA of each matching source filter, so that the amount of energy present in
the control signal spectrum that makes it through any given filter in the
control filter bank determines the amount of energy from the source signal
that passes through the matching filter in the source filter bank that is
is allowed through to the output. in other words, the two signals' spectra
are separated to some degree, and the reconstruction of the source spectrum
is made contingent upon the relative weighting of the assiociated portions
of the control spectrum. put yet another way, the formant envelope
characteristic of the control is imposed on the spectrum of the source.
here's the final diagram, for one matched filter pair:



synth---->filter------------------------------------------>vca---->out
                                                           /|\
                                                            |
                                                            |
mic---->filter---->amplitude to control level conversion----|


any questions?

-------------< Extremism in the Pursuit of Good Noise is no Vice >-------
Eric Harnden (Ronin)
<HARNDEN@AUVM.BITNET> or <HARNDEN@AUVM.AMERICAN.EDU>
The American University Physics Dept.
Washington, D.C
