From: hards4@ee.adfa.oz.au (Bradley Hards)
Subject: comp.dsp FAQ [1 of 2]
Followup-To: poster
Summary: This is a periodic posting to comp.dsp that gives information
	on frequently asked questions asked in this newsgroup.
Organization: ADFA Vortex.
X-Version: comp.dsp-faq version0.2
Date: Wed, 26 Aug 1992 14:26:17 GMT
Expires: Wed, 23 Sep 1992 14:26:12 GMT

Archive-name: dsp-faq/part1
Last-modified: Thu Aug 27 1992
Version: 0.2


Here is the third  release of the comp.dsp  FAQ. Rather obviously it  has a
long way to  go. I am eagerly seeking  out  information on all topics, from
the best layout (e.g. should chips and prototype boards be another FAQ?) to
a  good annotated list  of DSP  articles and reference books.  Please email
your suggestions to hards4@ee.adfa.oz.au. My meta-comments are all in curly
braces {like this}

You can ftp the very latest  version of this  FAQ from: evans.ee.adfa.oz.au
(131.236.30.24) in pub/dsp/dsp-faq.help

I am most grateful to the following contributors who added material to this
version of the FAQ:-
John Lazzaro      lazzaro@boom.CS.Berkeley.EDU 
Malachy Devlin    madmal@spd.eee.strathclyde.ac.uk
Paul Russell      paulr@syma.sussex.ac.uk
Pete Janzow       pjanzow@prenhall.com
Greg Koker        greg.koker@analog.com
Greg Smart        rcogs@citri.edu.au

Get your name here - contribute something!
===========================================================================
Questions answered in this FAQ:
0.  What is comp.dsp?
1.  Summary of DSP books and significant research articles.
2.  Where can I get some free/cheap software for dsp?
3.  Where can I get the Motorola DSP C compilers source?
4.  Where can I get a free compiler for the C30/C40 ?
5.  OK then, where can I pay money for a C30/C40 compiler ?
6.  Where can I get some algorithms?
7.  Yeah, but thats all in fortran and I only wanted some simple stuff for 
    my 56000... (Or where to ftp stuff from Motorola's BBS - Dr BuB)
8.  Where can I get the source for CELP ?
9.  How does pitch perception work, and how do I implement it on my DSP chip?
10. What are the available DSP chips and chip architectures?
11. What are the available DSP prototyping boards and manufacturers?
===========================================================================
0. What is comp.dsp?

Comp.dsp is a worldwide UseNet news group that is used to discuss various
aspects of digital signal processing. It is unmoderated, though we try to
keep the signal to noise ratio up :-). If you need to ask a question that
isn't in the FAQ, and can't figure out how to post, consult
news.newusers.questions.  Other relevant news groups are comp.compression,
sci.image.processing.

=========================================================================
1. Summary of DSP books and significant research articles.

(1) Bibles of DSP 
A.V. Oppenheim and R.W. Schafer, "Digital Signal Processing",
Prentice-Hall, Inc., Englewood Cliffs, N.J., 1975.

A.V. Oppenheim and R.W. Schafer, "Discrete-Time Signal Processing"
Prentice Hall, Englewood Cliffs, New Jersey 07632, 1989. ISBN 0-13-216292-X
This is an updated version of the original, with some old material deleted
and lots of new material added.

L.R. Rabiner & R.W. Schafer, "Digital Processing of Speech Signals"
Prentice Hall 1978 ISBN 0-13-213603-1

R. E. Crochiere & L. R. Rabiner, "Multirate Digital Signal Processing"
Prentice-Hall 1983. ISBN  0136051626
This book is the only real reference for filter banks and Multirate
systems, as opposed to being a tutorial




(2) Array signal processing
J.E. Hudson, "Adaptive Array Principles", IEE London and New York,
Peter Peregrinus Ltd. Stevenage, U.K., and New York, 1981.

R.A. Monzingo and T.W. Miller, "Introduction to Adaptive Arrays"
John Wiley and Sons, New York, 1980.

S. Haykin, J.H. Justice, N.L. Owsley, J.L. Yen, and A.C. Kak
"Array Signal Processing", Prentice-Hall, Inc., Englewood Cliffs, N.J., 1985.

B. Widrow and S.D. Stearns, "Adaptive Signal Processing", 
Prentice-Hall, Inc., Englewood Cliffs, N.J., 1985.

(3) Windowing articles.
>From: evans@eedsp.gatech.edu (Brian Evans)
  Perhaps the classic overview paper for discrete-time windows is
  "On the Use of Windows for Harmonic Analysis with the DFT, F. J. Harris, 
  IEEE Proceedings,  Jan 1978, pp 51--83 "
  It discusses some 15 different classes of windows including their
  spectral responses and the reasons for their development.

>From: bobb@vice.ICO.TEK.COM (Bob Beauchaine)
  "Some Novel Windows and a Concise Tutorial Comparison of Window
  Families", Nezih C. Geckinli & Davras Yavuz, IEEE Transactions on
  Acoustics, Speech, and Signal Processing, Vol. ASSP-26, No. 6,
  December 1978.
=======================================================================
2. Where can I get some free/cheap software for dsp?
>From: jbuck@galileo.berkeley.edu  (Joe Buck)
Gabriel is a hierarchical block diagram programming system for prototyping
signal processing systems on single or multiple processors.  It has an
optional graphical interface. Contact: Alan Kamas, aok@ohm.berkeley.edu
How to get it:
Anonymous ftp to copernicus.berkeley.edu, and retrieve gabriel-license.shar.
This is a shar file of licenses that you must sign and mail back to us (the
old-fashioned way) before we can give you the source.  Then we can tell you
the password for an account that will allow you to FTP Gabriel.

>From: evans@eedsp.gatech.edu (Brian Evans)
There was an entire session on this subject at ICASSP '92
chaired by Dr. Sally Wood and Dr. James McClellan.  It appears
in Volume 4 of the Proceedings pages 73-112.  There will be another
such session at ICASSP '93.

Sample of free (though possibly licensed and/or copyrighted) educational
software:

(1) Ptolemy--- block diagram simulator for DSP systems.
    Runs on Suns under X. Graphical interface. See ICASSP '92 session.
    Similar licensing system to gabriel package (see above)
    Contact: ptolemy-request@ohm.berkeley.edu

(2) Khoros--- block diagram simulator for image and video processing.
    Runs on Suns under X.  Graphical interface.  1-D SP supported.
    There is an entire Usenet news group for Khoros: comp.soft-sys.khoros
    Contact:  Univ. of New Mexico

(3) DSP Tutorials---  computer-aided instruction
    Runs on Suns under SunView.  Graphical interface.
    Contact:  Dr. Sally Wood of Santa Clara Univ.

Sample of public domain extensions to existing software:

(1) From the Matlab Users Group (Editor, hwilson@ua1vm.ua.edu)

    The MATLAB Digest is issued at irregular intervals based on the  number
    of  questions  and  software  items  contributed  by  users.   To  make
    submissions  to the digest, please send  to hwilson@ua1vm.ua.edu with a
    subject: "DIG" and description.

    For  the  Pacific,   try  netlib@draci.cs.uow.edu.au  located   at  the
    University of Wollongong, NSW, Australia.

    A plethora of toolboxes are available at FTP site: research.att.com
    (use netlib for the username)

    General index for the MATLAB User Group software library
    ----------------------------------------------------------
    Currently there are the following subdirectories:
    approximation      approximation theory
    archive            old MATLAB user group digests
    control            control theory
    dataanalysis       data analysis and statistics
    graphics           graphics programs
    integration        numerical integration
    linearalgebra      linear algebra utilities
    misc               miscellaneous
    ode                ordinary differential equations
    optimization       as the name says
    pde                partial differential equations
    rootfinding        zero-finding routines
    specialfunctions   special functions
    teaching           for classroom use
    tools              miscellaneous tools

    In order to get an index for a subdirectory (tools, say)
    send the message
        send index from MATLAB/tools
    to netlib@ornl.gov.

    In order to get some code, (unbundle in the `tools'
    directory, say), send the message
        send unbundle from MATLAB/tools
    to netlib@ornl.gov.

    FOR  STUDENTS: Prentice Hall has published  a student edition of matlab
    which contains a book and  set of disks for PCs and Macs.  The software
    is limited only in matrix size (32 x 32 matrix;  1024 elements) and  in
    its ability  to import or call  C or Fortran  subroutines.  On the plus
    side, it is able to run without a coprocessor (it will use one if it is
    present) and it includes a subset of the Signal Processing and Controls
    Toolboxes, The Signals and  Systems Toolbox,  which  provides for added
    functionality. Book only (about US$30): ISBN = 0138560064; Book + disk:
    (about US$50 ISBN=0-13-855974-0 for 3.5" or ISBN=0-13-855982-1 for 5.25
    Macintosh version:  ISBN=0-13-855990-2. There will be related books out
    by mid to late 1993 :  Computer Aided Signal Processing with MATLAB, by
    Burrus, Oppenheim, McClellan, Parks, Schafer, and Schussler; and Signal
    Processing : A Computer  Approach, by Etter. More books in this  MATLAB
    Curriculum Series are planned. For general info: matlab@prenhall.com

(2) Mathematica--- Signal Processing Packages (SPP) and Notebooks
    SPP  implements  1-D  symbolic convolution and 1-D/m-D linear  symbolic
    transforms   (showing  intermediate  results).   Interactive   tutorial
    Notebooks on analog filter design, DTFT, convolution, z-transform.
    Contact:   Brian Evans at evans@eedsp.gatech.edu 
    FTP site:  gauss.eedsp.gatech.edu (130.207.226.24)
               (different archive formats for different operating sys)

(3) Mathematica--- Controls Systems Packages (COSYPAK) and Notebooks
    follows the textbook "Modern Controls Theory" by Ogata.
    The packages are largely based on SPP (above).
    Contact:  Dr. Sreenath at sree@veda.esys.cwru.edu 
    FTP site: veda.esys.cwru.edu (129.22.40.9)

(4) Maple--- Linear systems toolbox
    Contact:  Tony Richardson  amr@egr.duke.edu
    FTP site:  cameron.egr.duke.edu  (pub/maple/linsys.tar.Z)

There are many course sequences being developed based on commercial
programs.  In this case, the extensions to the commercial programs
would come with the purchase of the textbooks, e.g.

(1) Matlab--- four-part DSP curriculum, including Stochastic SP
    Authored by Drs. McClellan, Parks, Burrus, and Schussler.
    See ICASSP '92 special session.
    Contact:  Dr. McClellan at mcclella@eedsp.gatech.edu
=======================================================================
3. Where can I get the Motorola DSP C compilers source?

There are  two separate  compiler sources. One is the port of gcc 1.40 done
by Andrew Sterian (ASTERIAN@BNR.CA) and the other  is a port of  gcc 1.37.1
done by Motorola and returned to the FSF. These may be portable to gcc2.x.x
with  some  effort  required.   Neither  of  these  compilers  includes  an
assembler, though a  publicly available assembler exists, thanks  to  Quinn
Jensen  (jensenq@qcj.icon.com).   The  current version  is  1.1, and  it is
posted to  alt.sources, so look for it on mirrors of this  newsgroup  (like
wuarchive.wustl.edu)
For more information on the Motorola compilers try contacting Jeff Enderwick
(jeff@dsp.sps.mot.com).

>From: Andrew (A.) Sterian <ASTERIAN@BNR.CA>
The source code for the Moto compiler is available on nic.funet.fi. 
My own DSP56K  port has bowed to  Motorola's version.  My DSP56156 port  is
still the only DSP56156 compiler around and I have just released an updated
version of it. Both this compiler and the previous incarnation are archived
on wuarchive.wustl.edu (in the usenet/alt.sources directory) amongst  other
places.
=======================================================================
4. Where can I get a free compiler for the C30/C40 ?

   Currently, you can't. {any corrections to this - anyone working on it?}
=======================================================================
5. OK then, where can I pay money for a C30/C40 compiler ?
   
TI has  a  C30/C40  compiler for C. Tartan  has an  ADA compiler.  Computer
Motion has a C++  compiler for C3x based on GNU  C++, but  it appears  they
haven't returned the deltas to FSF.
=======================================================================
6. Where can I get some algorithms?

These  archives  contain  things  such  as  matrix  operations,  FFT's  and
generally useful things like that, as opposed to complete applications.

(1) there is host ux1.cso.uiuc.edu - log in as anonymous, get the
    file  math/README. It summarises the contents of the archive.

(2) there is the netlib host which also serves some of this software via
    email. Try mail to netlib@ORNL.GOV with "send help" in the subject
    field.
    For Europe: 
        Internet:       netlib@nac.no
        EARN/BITNET:    netlib%nac.no@norunix.bitnet
        X.400:          s=netlib; o=nac; c=no;
        EUNET/uucp:     nac!netlib
    For the Pacific, try    
        netlib@draci.cs.uow.edu.au
     For background about netlib, see Jack J. Dongarra and Eric Grosse,
     Distribution of Mathematical Software Via Electronic Mail,
     Comm. ACM (1987) 30,403--407.
     
     A similar collection of statistical software is available from
           statlib@temper.stat.cmu.edu.

     The symbolic algebra system REDUCE is supported by
          reduce-netlib@rand.org.

(3) It may be possible to get an extensive set of fortran routines
produced by the Naval Surface Warfare Centre. { Any one got more data ?}

(?) if you don't know where to find what you're after, try archie.
=======================================================================
7. Yeah, but thats all in fortran and I only wanted some simple stuff for 
my 56000...

Firstly, not all of the above stuff is in fortran, some is in C, and you
could always use the f2c fortran to C compiler (use archie to locate the
nearest archive of f2c).

Alternatively, Dr BuB (the Motorola BBS) is mirrored on:
calvin.stanford.edu   (36.14.0.43)     in   /motorola
bode.ee.ualberta.ca   (129.128.16.96)  in   /pub/dos/motorola
nic.funet.fi          (128.214.6.100)  in   /pub/misc/motorola
doc.ic.ac.uk          (146.169.3.7)    in   
/computing/systems/motorola/digital-signal-processing/dr.bub.sources

Also try nic.funet.fi in /pub/ham/dsp for a lot of good stuff on 
communications uses, including some hardware
=======================================================================
8. Where can I get the source for CELP ?
From: jpcampb@afterlife.ncsc.mil (Joe Campbell)

The U.S. DoD's Federal-Standard-1016 based 4800 bps code excited linear
prediction voice coder version 3.2 (CELP 3.2) Fortran and C simulation
source codes are available for worldwide distribution at no charge (on
DOS diskettes, but configured to compile on Sun SPARC stations) from:

Bob Fenichel
National Communications System
Washington, D.C.  20305
1-703-692-2124
1-703-746-4960 (fax)

Example input and processed speech files, a technical information bulletin,
and the official standard "Federal Standard 1016, Telecommunications:
Analog to Digital Conversion of Radio Voice by 4,800 bit/second Code
Excited Linear Prediction (CELP)" are included at no charge.

The following article describes the Federal-Standard-1016 4.8-kbps CELP
coder:
Campbell, Joseph P. Jr., Thomas E. Tremain and Vanoy C. Welch, "The
Proposed Federal Standard 1016 4800 bps Voice Coder:  CELP," Speech
Technology Magazine, April/May 1990, p. 58-64.

The U.S. DoD's Federal-Standard-1015/NATO-STANAG-4198 based 2400 bps
linear prediction coder version 53 (LPC-10e v53) Fortran or C simulation
source codes are available on a limited basis upon written request to:
 
Tom Tremain
Department of Defense
Ft. Meade, MD  20755-6000
USA

The U.S. Federal Standard 1015 (NATO STANAG 4198) is described in:
Thomas E. Tremain, "The Government Standard Linear Predictive Coding
Algorithm:  LPC-10," Speech Technology Magazine, April 1982, p. 40-49.

Copies of the official standards FS 1015 and FS 1016 are available for
US$ 2.50 each from:
GSA Rm 6654
7th & D St SW
Washington, D.C.  20407
1-202-708-9205

Realtime DSP code for FS-1015 and FS-1016 is sold by:
John DellaMorte
DSP Software Engineering
165 Middlesex Tpk, Suite 206
Bedford, MA  01730
1-617-275-3733
1-617-275-4323 (fax)
dspse.bedford@channel1.com
 
DSP Software Engineering's FS-1016 code can run on a DSP Research's Tiger 30
or on Intellibit's AE2000 TMS320C31 based 3" by 2.5" card. See section 10
for more on these cards.

=======================================================================
9. How does pitch perception work, and how do I implement it on my DSP chip?

From:  Malcolm Slaney, Apple Computer, and John Lazzaro, UC Berkeley.
Pitch is officially defined as "That attribute of auditory sensation
in terms of which sounds may be ordered on a musical scale."  Several
good examples illustrating the subtleties of pitch perception are
included in the "Auditory Demonstrations CD" which is available from
the Acoustical Society of America, Woodbury, NY 10797 for $20.

A good general reference about the psychology of pitch perception is
the book
	"An Introduction to the Psychology of Hearing," by B. C. J.
	Moore, Academic Press, London, 1989. 
This book is available in paperback and makes a good desk reference.

An algorithm implementation that matches a large body of psychoacoustical
work, but which is computationally very intensive, is presented in the paper:
	Malcolm Slaney and Richard Lyon, "A Perceptual Pitch Detector," 
	Proceedings of the International Conference of Acoustics, Speech, 
	and Signal Processing, 1990, Albuquerque, New Mexico.

The definitive papers describing the use of such a perceptual pitch
detector as applied to the classical pitch literature is in:
	Ray Meddis and M. J. Hewitt. "Virtual pitch and phase
        sensitivity of a computer model of the auditory periphery. "
        Journal of the Acoustical Society of America 89 (6 1991): 2866-2682.
        and 2883-2894.

The current work that argues for a pure spectral method starts with the work
of Goldstein:
	J. Goldstein,  "An optimum processor theory for the 
	central formation of the pitch of complex tones," Journal
	of the Acoustical Society of America 54, 1496-1516, 1973.

Two approaches are worth considering if something approximating pitch
is appropriate.  The people at IRCAM have proposed a harmonic analysis
approach that can be implemented on a DSP
	Boris Doval and Xavier Rodet, "Estimation of Fundamental Frequency
	of Musical Sound Signals," Proceedings of the 1991 International
	Conference on Acoustics, Speech, and Signal Processing, Toronto,
	Volume 5, pp. 3657-3660.

The classic paper for time domain (peak picking) pitch algorithms is:
	B. Gold and L. Rabiner, "Parallel processing techniques for estimating
	pitch periods of speech in the time domain," Journal of the Acoustical
	Society of America, 46, pp 441-448, 1969.

Finally, a word of caution: Pitch is not single-valued.  We can hear a
sound and match it to several different pitches.  Imagine the number
of instruments in an orchestra, each with it's own pitch.  Even a
single sound can have more than one pitch.  See for example
Demonstration 27 from the ASA Auditory Demonstrations CD.
=======================================================================
10. What are the available DSP chips and chip architectures?

{ This is based on my woefully inadequate databook collection. Anyone want
  to add to this list?  Manufacturers want to submit anything? }

a. TMS320C1x (TI) family of low cost fixed-point DSP's; 16 bit data, 32 bit
registers; Various RAM&ROM configurations; 16 bit I/O bus, serial ports.

b. TMS320C25 (TI) 50MHz fixed-point DSP; 16 bit data, 32 bit registers;
12.5 MIPS@50MHz.

c. TMS320C30 (TI) 27/33/40 MHz floating point DSP; 32 bit floating point,
24  bit fixed point data, 40 bit  registers; DMA  controller; dual serial
ports; some support for multi-processor arrays.

d. TMS320C40 (TI) 40/50 MHz floating point DSP; extensive parallel processing
support through 6 buffered byte-wide 20 Mb/s links and 6 channel DMA; cache.

e. TMS320C50 (TI) enhanced TMS320C25 (double thoughput); low overhead looping;
10Kwords SRAM on chip.

f. DSP32C (AT&T) floating point DSP; 32bit floating point, 16/24 bit fixed
point data.

From: Greg Koker <greg.koker@analog.com>
g. ADSP2100 (Analog Devices) 32 and 50Mhz fixed point DSP, (8 MIPS,12.5MIPS).
16 Bit registers except for multiplyer-accumulate register which is 40 bits.
No on chip memory except for a 16 word instruction cache. 
   ADSP2101  Derived from ADSP2100, 16 bit registers except for the multiplier
accumulator which is 40 bits. Has 2kx24 instruction/data ram in program memory
space, 1Kx16 data ram in data memory space.  Adds memory, timer, serial ports 
etc to the 2100.  Fastest speed grade in production is 16.6Mhz=16.6MIPS. Other 
variants are : ADSP2102: Ram/rom version of 2101 where user selects how much of
the 2kx24 program memory is mask rom;
               ADSP2103: 3V version of the 2101
               ADSP2105: 10Mhz fixed point DSP with 1 serial port, timer
and 1kx24 instruction/data ram in program memory space, and 512 word data ram
in data memory space. This processor sells for US$9.90 in any quantity.
               ADSP2111: adds a 8/16bit host interface port.
               ADSP21msp50: ADSP2111 with an on chip a/d and d/a interface and
additional low power modes.
               ADSP2161: has 8Kx24 mask rom.
All of the processors (except the 2100) use a 1X instruction clock and use an
on chip PLL to generate an internal 4X clock.  All processor have an extended
harvard architecture which allows two data fetches and an instruction fetch
every cycle in parallel with an alu or mac operation.  All instructions
including accessing external memory can complete in 1 cycle.

h. DSP56001 (Motorola) 27 MHz fixed point DSP; 24 bit data, 56 bit accumulator;
Harvard architecture.

i. DSP96002 (Motorola) IEEE format floating point DSP; 32 bit data;
Harvard architecture.
=======================================================================
-- 

Please send email concerning this FAQ to hards4@ee.adfa.oz.au
Snail mail to : Brad Hards, Officers Mess, Australian Defence Force Academy,
Campbell ACT 2601, AUSTRALIA.
Newsgroups: comp.dsp