// COMPLETE THREAD

non-cypher related question on audio analysis

3 expanded posts ยท every known parent and child

NODE c7ef5961non-cypher related question on audio analysis
This is only the tiniest bit related to crypto, but that doesn't seem
to be much outside the criteria for submissions to this list.. :-)

Anyone got pointers to decoding audio tones?  An intro book, source
code, newsgroup, mailing list, somebody I can take to lunch?  I'd like
to sample audio with my SGI, and suck out various simple tones and
combinations of tones.  (DTMF, single pitch variant tones, etc.)

thx.

--
J. Eric Townsend jet@nas.nasa.gov 415.604.4311
NASA Ames Numerical Aerodynamic Simulation      |    play: jet@well.sf.ca.us
Parallel Systems Support, CM-5 POC              |      '92 R100R / DoD# 0378
PGP2.1 public key available upon request or finger jet@simeon.nas.nasa.gov
NODE 69400edfnon-cypher related question on audio analysis
>Anyone got pointers to decoding audio tones?  An intro book, source
>code, newsgroup, mailing list, somebody I can take to lunch?  I'd like
>to sample audio with my SGI, and suck out various simple tones and
>combinations of tones.  (DTMF, single pitch variant tones, etc.)

I've got a good book on DSP by Rabiner and Gold.

There are a few DSP newsgroups where the local experts hang out.  Also
the modem design groups.

After you know something, remember this: The FIR filter is the same
mathematically as a FFT, multiplication by a filter window function,
and an inverse FFT.  As I recall, you can process multiple FIR's in
parallel.

All the DSP manufacturers come with lots of example source code for
standard filters (FFT, FIR, IIR, etc.).

Eric
NODE bcc5dcf8Re: non-cypher related question on audio analysis
> 
> After you know something, remember this: The FIR filter is the same
> mathematically as a FFT, multiplication by a filter window function,
> and an inverse FFT.  As I recall, you can process multiple FIR's in
> parallel.

you can do two FFT's by using the fact that:

  FFT( x(t) + j y(t) ) =  Z(w)

then X(l) = 1/2 ( Z(l) + Z*(N-l))
and  Y(l) = 1/2j (Zl) - Z*(N-l)) 

Where x(t) <-> X(w)
      y(t) <-> Y(w)

N is the length of both arrays
j is sqrt(-1)
Z* is the conjugate of Z (a+jb <-> a-jb )