home *** CD-ROM | disk | FTP | other *** search
- Path: senator-bedfellow.mit.edu!bloom-beacon.mit.edu!news.kei.com!sol.ctr.columbia.edu!howland.reston.ans.net!agate!usenet
- From: phil@ohm.berkeley.edu (Phil Lapsley)
- Newsgroups: comp.dsp,comp.answers,news.answers
- Subject: comp.dsp FAQ [1 of 4]
- Supersedes: <dspone_749099921@ohm.berkeley.edu>
- Followup-To: poster
- Date: 23 Nov 1993 15:39:49 GMT
- Organization: University of California at Berkeley
- Lines: 1518
- Approved: news-answers-request@MIT.Edu
- Distribution: world
- Message-ID: <dspone_754069187@ohm.berkeley.edu>
- NNTP-Posting-Host: cooley.eecs.berkeley.edu
- Summary: This is a periodic posting to comp.dsp that gives information
- on frequently asked questions asked in this newsgroup.
- Xref: senator-bedfellow.mit.edu comp.dsp:8179 comp.answers:2769 news.answers:15022
-
- Archive-name: dsp-faq/part1
- Last-modified: Sun May 30 1993
- Version: 1.1
-
- Welcome to the comp.dsp FAQ. We are seeking 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 comp-dsp-faq@ohm.Berkeley.EDU.
- Meta-comments are all in curly braces, {like this}. Acknowledgements to
- people responsible for articles and/or bits of information are in
- square brackets, [like so].
-
- 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, or from copernicus.Berkeley.EDU
- in dsp-faq.help.*.
-
- In version 1.1 of the FAQ, we've included a list of DSP-related FTP sites
- at the end of the FAQ (section 7). Be sure to check this if you're looking
- for an FTP site, as it may have more up-to-date information on than the text
- in the body the FAQ.
-
- We are most grateful to the following contributors who helped out with
- this version of the FAQ:
-
- Harry Bates hjb@transtech.com
- Chuck Corley chuckc@hpnmdlc0.sr.hp.com
- Jutta Degener jutta@cs.tu-berlin.de
- John Edwards johned@cix.compulink.co.uk
- Cole Erskine cole@analogical.com
- Robert Gammon rgammon@rgam.sc.ti.com
- Alan Kamas aok@ohm.berkeley.edu
- Stephen Moshier moshier@world.std.com
- Ted Rossin rossin@hpfcrd.fc.hp.com
- Paul Rubin phr@america.telebit.com
- Witold Waldman witold@hotblk.aed.dsto.gov.au
-
- and the following folks who helped out with previous versions:
-
- William Alves alves@calvin.usc.edu
- Harry Bates transtech!hjb@tc.cornell.edu
- Annard Brouwer annard@stack.urc.tue.nl
- Joe Campbell jpcampb@afterlife.ncsc.mil
- Tim Channon tchannon@black.demon.co.uk
- Steve Clift clift@ml.csiro.au
- Joel Coltoff joel@wmi.com
- Chuck Corley chuckc@hpnmdlc0.sr.hp.com
- Jutta Degener jutta@cs.tu-berlin.de
- Malachy Devlin madmal@spd.eee.strathclyde.ac.uk
- John Edwards johned@cix.compulink.co.uk
- Kenneth Ekman y88kenek@und.ida.liu.se
- Brian Evans evans@markov.eedsp.gatech.edu
- John Fisher johnf@dsp.sps.mot.com
- Dan Frankowski dfrankow@cs.umn.edu
- Robert Gammon 5692330@mcimail.com
- Kevin Gardner gardner@zinc.med.yale.edu
- Maurice Givens maury@tellabs.com
- Ed Hall edhall@rand.org
- Vince Herried vjh21@cas.org
- Eric Jacobsen ericj@hwcae.honeywell.com
- Pete Janzow pjanzow@prenhall.com
- Quinn Jensen jensenq@qcj.icon.com
- Richard Kim richard@math.mit.edu
- Gints Klimanis gints@roadkill.esd.sgi.com
- Greg Koker dsp_applications@analog.com
- Juhana Kouhia jk87377@cc.tut.fi
- John Lazzaro lazzaro@boom.CS.Berkeley.EDU
- Sergio Liberman sergio@msil.sps.mot.com
- Stan McClellan mcclella@ee.tamu.edu
- Renzo Mercanzin aire@sabrina.dei.unipd.it
- Phillip Musumeci phillip@ee.adfa.oz.au
- Bill Ralston wtr@mitre.org
- C.S. Ramalingam ramli@mizar.ele.uri.edu
- Tony Richardson amr@mpl.ucsd.edu
- Ted Rossin rossin@hpfcrd.fc.hp.com
- Paul Russell paulr@syma.sussex.ac.uk
- Stanley Sasaki stans@tekig7.pen.tek.com
- Bill Schottstaedt bil@ccrma.stanford.edu
- Paul Simoneau pas1@kepler.unh.edu
- Greg Smart rcogs@citri.edu.au
- Larry Stewart stewart@crl.dec.com
- Andrew Ukrainec ukrainec@nimios.Eng.McMaster.CA
- Witold Waldman witold@hotblk.aed.dsto.gov.au
- Phil Woodland pcw@eng.cam.ac.uk
- Ronnin Yee ronnin.yee@analog.com
-
- Get your name here - contribute something! (If you don't want your
- email address listed in your contribution, please indicate so.)
-
- Phil Lapsley phil@ohm.Berkeley.EDU (FAQ maintainer)
- Bradley Hards hards4@ee.adfa.oz.au (assistant/original FAQ maintainer)
-
- =============================================================================
-
- 0. What is comp.dsp?
-
- 1. General DSP.
- 1.1 DSP book and article references.
- 1.1.1 Bibles of DSP.
- 1.1.2 Adaptive signal processing.
- 1.1.3 Array signal processing.
- 1.1.4 Windowing.
- 1.1.5 Digital audio effects processing.
- 1.2 Where can I get free software for general DSP?
- 1.2.1 What is Gabriel? Where can I get it?
- 1.2.2 What is Ptolemy? Where can I get it?
- 1.2.3 What is Khoros? Where can I get it?
- 1.2.4 What are DSP Tutorials? Where can I get them?
- 1.2.5 What are some DSP extensions to MATLAB? Where can I get them?
- 1.2.6 What is the Signal Processing Package for Mathematica?
- Where can I get it?
- 1.2.7 What is the Controls System Package for Mathematica?
- Where can I get it?
- 1.2.8 What are some other DSP Notebooks for Mathematica?
- 1.2.9 What is the Linear Systems Toolbox for Maple? Where can I get it?
- 1.2.10 Where can I get text to speech conversion software?
- 1.2.11 Where can I get filter design software?
- 1.2.12 What is SigLib? Where can I get it?
- 1.2.13 What is the AudioFile System? Where can I get it?
-
- 2. Algorithms and standards.
- 2.1 Where can I get some algorithms for DSP?
- 2.2 What is CELP and LPC? Where can I get source for them?
- 2.3 What is ADPCM? Where can I get source for it?
- 2.4 What is GSM? Where can I get source for it?
- 2.5 How does pitch perception work, and how do I implement it?
- 2.6 What standards exist for digital audio? What is AES/EBU?
- What is S/PDIF?
- 2.7 What is mu-law encoding? Where can I get source for it?
- 2.8 How can I do CD <-> DAT sample rate conversion?
-
- 3. Programmable DSP chips and their software.
- 3.1 What are some current, popular programmable DSP chips?
- 3.2 Software for Motorola DSPs.
- 3.2.1 Where can I get a free assembler for the Motorola DSP56000?
- 3.2.2 Where can I get a free C compiler for the Motorola DSP56000?
- 3.2.3 Where can I get algorithms or libraries for Motorola DSPs?
- What is the number for the Motorola DSP BBS?
- 3.2.4 Where can I get NeXT-compatible Motorola DSP56001 code?
- 3.3 Software for Texas Instruments DSPs.
- 3.3.1 Where can I get algorithms or libraries for TI DSPs?
- What is the number for the TI DSP BBS?
- 3.3.2 Where can I get a free C compiler for the TMS320C30?
- 3.3.2 Where can I get a free assembler for the TMS320C30?
- 3.4 Software for Analog Devices DSPs.
- 3.4.1 Where can I get algorithms or libraries for AD DSPs?
- What is the number for the Analog Devices DSP BBS?
-
- 4. Hardware.
- 4.1 DSP development boards.
- 4.1.1 IBM PC.
- 4.1.2 Mac Nubus.
- 4.1.3 SBus.
- 4.1.4 VMEbus.
- 4.1.5 Next bus.
- 4.1.6 Amiga bus.
- 4.1.7 SCSI bus.
- 4.1.8 TIM-40.
- 4.1.9 Standalone.
- 4.2 Who makes AES/EBU chips?
-
- 5. Operating Systems.
-
- 6. List of manufacturers, addresses, and telephone numbers.
-
- 7. Summary of FTP sites.
-
- To search for a particular question within a text editor, look for the
- pattern "Q#.##:", e.g., "Q1.2:".
-
- =============================================================================
-
- Q0: 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, comp.speech, and sci.image.processing.
-
- =============================================================================
-
- 1. General DSP.
-
- This section deals with general DSP, that is, DSP books, algorithms,
- and packages that are not related to a particular manufacturer's DSP chip.
-
- =========================================================================
-
- Q1.1: Summary of DSP books and significant research articles.
-
- Q1.1.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.
-
- P. P. Vaidyanathan, "Multirate Systems and Filter Banks",
- Prentice-Hall. 911 pp.
-
- Thomas Parsons, "Voice and Speech Processing", McGraw-Hill, 1987,
- ISBN 0-07-048541-0.
- Addresses the cocktail party effect, as well as other material.
- [Maurice Givens, maury@tellabs.com]
-
- --------------------------------------------------
-
- Q1.1.2: Adaptive signal processing.
-
- S. Haykin, "Adaptive Filter Theory", 2nd Ed., Prentice Hall,
- Englewood Cliffs, NJ, 1991.
-
- B. Widrow and S.D. Stearns, "Adaptive Signal Processing",
- Prentice-Hall, Inc., Englewood Cliffs, N.J., 1985.
-
- --------------------------------------------------
-
- Q1.1.3: 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.
-
- R.T. Compton, Jr., "Adaptive Antennas, Concepts and Performance",
- Prentice-Hall, 1988, ISBN 0-13-004151-3.
-
- --------------------------------------------------
-
- Q1.1.4: Windowing articles.
-
- F. J. Harris, "On the Use of Windows for Harmonic Analysis with the DFT",
- IEEE Proceedings, January 1978, pp. 51-83.
- Perhaps the classic overview paper for discrete-time windows. It discusses
- some 15 different classes of windows including their spectral responses and
- the reasons for their development. [Brian Evans, evans@eedsp.gatech.edu]
-
- Nezih C. Geckinli & Davras Yavuz, "Some Novel Windows and a Concise Tutorial
- Comparison of Window Families", IEEE Transactions on Acoustics, Speech,
- and Signal Processing, Vol. ASSP-26, No. 6, December 1978.
- [Bob Beauchaine, bobb@vice.ico.tek.com]
-
- Lineu C. Barbosa, "A Maximum-Energy-Concentration Spectral Window,"
- IBM J. Res. Develop., Vol. 30, No. 3, May 1986, p. 321-325.
- An elegant method for designing a time-discrete solution for
- realization of a spectral window which is ideal from an energy
- concentration viewpoint. This window is one that concentrates the
- maximum amount of energy in a specified bandwidth and hence provides
- optimal spectral resolution. Unlike the Kaiser window, this window is
- a discrete-time realization having the same objectives as the
- continuous-time prolate spheroidal function; at the expense of not
- having a closed form solution. [Joe Campbell, jpcampb@afterlife.ncsc.mil]
-
- --------------------------------------------------
-
- Q1.1.5: Digital Audio Effects Processing.
-
- Books (in no particular order, sorry):
-
- Hal Chamberlin, Musical Applications of Microprocessors, 2nd Ed.,
- Hayden Book Company, 1985.
-
- Barry Blesser and J. Kates. "Digital Processing in Audio Signals." In A. V.
- Oppenheim, ed. Applications of Digital Signal Processing. Englewood Cliffs,
- NJ: Prentice-Hall, 1978.
-
- Digital Signal Processing Committee of IEEE Acoustics, Speech, and Signal
- Processing Society, ed. Programs for Digital Signal Processing. New York:
- IEEE Press, 1979.
-
- John Strawn, ed., "Digital Audio Signal Processing: An Anthology.", Los Altos,
- CA: W. Kaufmann, 1985. [Contains Moorer J.A. "About This Reverb..."
- and contains an article which gives a code for Phase Vocoder -- great
- tool for EQ, for Pitchshifter and more --Juhana Kouhia]
-
- Charles Dodge and Thomas A. Jerse. Computer Music: Synthesis, Composition,
- and Performance. New York: Schirmer Books, 1985.
-
- F. Richard Moore, "Elements of Computer Music", Englewood Cliffs, NJ:
- Prentice-Hall, 1990. ISBN: 0-13252-552-6 [Recommended. --Juhana Kouhia]
-
- Curtis Roads and John Strawn, ed., "The Foundations of Computer Music",
- Cambridge, MA: MIT Press, 1985. [Contains article on analysis/synthesis
- by Strawn, recommended; also an another article maybe by J.A. Moorer
- -- Juhana Kouhia]
-
- John Strawn, ed., "Digital Audio Signal Processing", 283 pages,
- $34.95, ISBN 0-86576-082-9, pub: A-R Editions. Contents:
-
- 1. Introduction to the mathematics of DSP (F. Richard Moore)
- [Not a bad little text]
-
- 2. Introduction to digital filter theory (Julius O. Smith)
- [Not a bad little text, either]
-
- 3. Spiral Synthesis (Tracy Lind Petersen)
- [first published account of a new synthesis technique]
-
- 4. Signal processing aspects of computer music (J. A. Moorer)
- [James Moorer's classic article--discusses many synthesis
- techniques. Reverb algorithms. More than 6 pages of refs]
-
- 5. An introduction to the phase vocoder (J. W. Gordon, J. Strawn)
- [Includes source code for a phase vocoder--a powerful method
- for synthesis, pitch shifting, time scale modification, etc.]
- [Comments by Quinn Jensen].
-
- Curtis Road, ed., "Composers and the Computer", 201 pages,
- $27.95, ISBN 0-86576-085-3, pub: A-R Editions.
-
- John Strawn, ed., "Digital Audio Engineering", 144 pages,
- $29.95, ISBN 0-86576-087-X pub: A-R Editions.
-
- Deta S. Davis, "Computer Applications in Music: A Bibliography", 537 pages,
- $49.95, ISBN 0-89579-225-7, pub: A-R Editions.
-
- Ken C. Pohlmann, "The Compact Disc: A Handbook of Theory and Use",
- 288 pages, $45.95 (cloth) ISBN 0-89579-234-6, $29.95 (paper)
- ISBN 0-89579-228-1, pub: A-R Editions.
-
- Forthcoming books:
-
- Curtis Roads, "A Computer Music History: Musical Automation
- from Antiquity to the Computer Age"
-
- Joseph Rothstein, "MIDI: A Comprehensive Introduction"
-
- David Cope, "Computer Analysis of Musical Style"
-
- Dexter Morrill and Rick Taube, "A Little Book of Computer Music
- Instruments"
-
- Articles:
-
- James A. Moorer, "About This Reverberation Business", Computer Music Journal
- 3, 20 (1979): 13-28. (Also in Foundations of CM below).
- [Ok article, but you have to know basic DSP operations. --Juhana Kouhia]
-
- Check more articles from Journal of the Audio Engineering Society
- (JAES), for example more articles by Strawn.
-
- Note: books published by A-R editions can be ordered from:
-
- A-R Editions
- 801 Deming Way
- Madison, Wisconsin 53717
- 608-836-9000 (They accept VISA orders)
-
- [The above is largely from Quinn Jensen, jensenq@qcj.icon.com;
- Juhana Kouhia, jk87377@cc.tut.fi; William Alves, alves@calvin.usc.edu;
- and Paul A Simoneau, pas1@kepler.unh.edu]
-
- =========================================================================
-
- Q1.2: Where can I get free software for general DSP?
-
- The packages listed below are mostly for general purpose DSP, that is,
- DSP that is not specific to a particular programmable DSP chip. See
- the later sections in the FAQ for software relevant to a particular
- programmable DSP chip.
-
- According to Brian Evans: "There was an entire session on this subject
- [free DSP software] 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." [Brian Evans,
- evans@eedsp.gatech.edu] Much of the information below is from Brian's mail.
-
- --------------------------------------------------
-
- Q1.2.1: What is Gabriel? Where can I get it?
-
- Package: Gabriel
-
- Description:
-
- Gabriel was a hierarchical block diagram environment for prototyping
- signal processing systems on single or multiple processors. It has
- been superceded by Ptolemy (see below), and is no longer available.
-
- --------------------------------------------------
-
- Q1.2.2: What is Ptolemy? Where can I get it?
-
- Package: Ptolemy
-
- Description:
- Ptolemy provides a highly flexible foundation for the specification,
- simulation, and rapid prototyping of systems. It is an object
- oriented framework within which diverse models of computation can
- co-exist and interact. For example, using Ptolemy a data-flow
- system can be easily connected to a hardware simulator which in turn
- may be connected to a discrete-event system, etc. Because of this,
- Ptolemy can be used to model entire systems.
-
- In addition, Ptolemy now has code generation capabilities. From a
- flow graph description, Ptolemy can generate both C code and DSP
- assembly code for rapid prototyping. Note that code generation is
- not yet complete, and is included in the current release for
- demonstration purposes only.
-
- Ptolemy has been used for a broad range of applications including
- signal processing, telecomunications, parallel processing, wireless
- communications, network design, radio astronomy, real-time systems,
- and hardware/software co-design. Ptolemy has also been used as a lab
- for signal processing and communications courses. Currently Ptolemy
- has hundreds of users in over 100 sites, both in industry and academia.
-
- Ptolemy is available for the Sun 4 (sparc), DecStation (MIPS), and HP
- (HP-PA) architectures. Installing the system requires 49 Mbytes for
- Ptolemy (64 Mbytes after you optionally rebuild) and 16 Mbytes for the
- Gnu tools subset. At least 8 Mbytes of physical memory are required.
-
- Ptolemy has been developed at UC Berkeley over the past 3 years.
- Further information, including papers and the complete release
- notes, is available from the FTP site.
-
- A license is no longer required to receive Ptolemy. The source code,
- binaries, and documentation are available by anonymous ftp from
-
- ptolemy.berkeley.edu
-
- Ftp to "ptolemy.bekeley.edu", login as "anonymous", cd "pub", get README
-
- Contact: Alan Kamas, aok@ohm.berkeley.edu.
- --------------------------------------------------
-
- Q1.2.3: What is Khoros? Where can I get it?
-
- Package: Khoros
-
- Description:
- Block diagram simulator for image and video processing. 1-D signal processing
- is also supported. See the UseNet group comp.soft-sys.khoros.
-
- Platforms: sun 3, sun 4, others? X windows. Written in C.
-
- To obtain:
- Anonymous ftp to pprg.eece.unm.edu, cd /pub/khoros/release, get install.ftp.
- --------------------------------------------------
-
- Q1.2.4: What are DSP Tutorials? Where can I get them?
-
- Package: DSP Tutorials
-
- Description: Computer aided instruction.
-
- Platforms: suns under SunView.
-
- Contact: Dr. Sally Wood, Electrical Engineering Department, Santa Clara
- University, Santa Clara, CA 95053.
- --------------------------------------------------
-
- Q1.2.5: What are some DSP extensions to MATLAB? Where can I get them?
-
- Package: MATLAB user's group public domain extensions to MATLAB
-
- Description:
-
- 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
-
- [From the Matlab Users Group (Editor, hwilson@ua1vm.ua.edu)]
- --------------------------------------------------
-
- Q1.2.6: What are the Signal Processing Packages for Mathematica?
- Where can I get them?
-
- Package: Signal Processing Pacakages (SPP) and Notebooks.
-
- Description:
-
- Public domain extensions to Mathematica. Enables the symbolic
- manipulation of signal processing expressions: 1-D discrete/continuous
- convolutions and 1-D/m-D linear transforms (Laplace, Fourier, z, DTFT,
- and DFT). For linear transforms, you can specify your own transform
- pairs and see the intermediate computations. Great for showing students
- how to take transforms, or for deriving input-output relationships in a
- transform domain. Additional abilities include analog filter design,
- solving DE's using transforms, converting signal processing expressions
- to their equivalent TeX forms, and number theoretic operations (Bezout
- numbers, Smith Form decompositions, and matrix factors). Accompanying
- SPP are tutorial notebooks on analog filter design, Fourier analysis,
- piecewise convolution, and the z-transform (includes a discussion of
- fundamentals of digital filter design). These Notebooks illustrate
- difficult concepts (such as the flip-and-slide view of convolution)
- through animation. A Notebook reader is available in the public domain
- for Macintosh computers (a BinHexed version is on the ftp site).
-
- FOR STUDENTS: A student version of Mathematica is available for $175.
- The price includes a copy of the reference manual. The only drawbacks
- to the student version are that the floating point coprocessor is dis-
- abled and that upgrades cannot be ordered.
-
- Contact: Brian Evans, evans@eedsp.gatech.edu.
-
- To obtain: anonymous ftp to gauss.eedsp.gatech.edu (130.207.226.24).
- (available in UNIX, Mac, and MS-DOS archive formats).
-
- --------------------------------------------------
-
- Q1.2.7: What is the Control Systems Analysis Packages for Mathematica?
- Where can I get them?
-
- Package: Control Systems Analysis Package (COSYPAK) and Notebooks
-
- Description: Public domain extension to Mathematica. Classical and
- state-space control analysis and design methods. The Notebooks
- supplement the material in the textbook "Modern Controls Theory" by
- Ogata. Largely based on the Signal Processing Packages (SPP, see above).
-
- Contact: Dr. Sreenath, sree@veda.esys.cwru.edu.
-
- To obtain: anonymous ftp veda.esys.cwru.edu (129.22.40.9).
- --------------------------------------------------
-
- Q1.2.8: What are some other Mathematica DSP Notebooks?
-
- The following Mathematica notebooks can be ftped from ccrma-ftp.stanford.edu:
-
- pub/DSP/GenHamming.ma.Z Generalized Hamming windows
- pub/DSP/Kaiser.ma.Z The Kaiser window
- pub/DSP/WinFlt.ma.Z Digital filter design by the "window method"
-
- (There are other DSP related items in pub/DSP on ccrma-ftp; see other
- sections of this FAQ for details).
- --------------------------------------------------
-
- Q1.2.9: What is the Linear Systems Toolbox for Maple?
- Where can I get it?
-
- Package: Linear systems toolbox for Maple.
-
- Description: Public domain extension to Maple.
-
- Contact: Tony Richardson, amr@mpl.ucsd.edu.
-
- To obtain: anonymous ftp to ftp.egr.duke.edu
- file pub/maple/linsys1.2.tar.Z.
- --------------------------------------------------
-
- Q1.2.10: Where can I get text to speech conversion software?
-
- Free (but not public domain) text to speech conversion software is
- available via anonymous ftp from wilma.cs.brown.edu in the pub directory
- as speak.tar.Z. It will compile and run on a SPARC's built-in audio
- after modifying speak.c with the path of your libaudio.h (e.g.,
- /usr/demo/SOUND/libaudio.h). It's a simple phoneme concatenation
- system with commensurate synthesized speech quality (a directory of
- phoneme audio files is included). [Joe Campbell, jpcampb@afterlife.ncsc.mil]
- --------------------------------------------------
-
- Q1.2.11: Where can I get filter design software?
-
- There are filter design programs available via anonymous FTP. The
- following are summarized here and discussed in greater detail below:
-
- 1. August 1992 IEEE Trans. on Signal Processing: METEOR FIR filter design
- program.
-
- 2. DFIR FIR filter design program.
-
- 3. Netlib IIR filter design.
-
- 4. IEEE Press "Programs for Digital Signal Processing".
-
- -----
-
- The August 92 issue of IEEE Transactions on Signal Processing there is
- a paper entitled "METEOR: A Constraint-Based FIR Filter Design Program"
- by Kenneth Steiglitz, Thomas W. Parks and James F. Kaiser. They
- describe an FIR design program which allows specification of the target
- frequency response characteristics in a fairly generalised and flexible
- way. As well as designing filters, the program can optimise filter
- lengths and push band limits.
-
- The paper contains a footnote which says "Pascal and C versions of
- source code are available to anonymous ftp at princeton.edu in the
- directory /pub as meteor.p, form.p, meteor.c and form.c".
-
- True, they are. They appear to work. The Pascal versions have been
- put through p2c to get the C versions; all the needed Pascal library
- stuff is included in the C versions and they built error-free out of
- the box for me on an SGI machine.
-
- One catch is, there is no manual - you need the paper to know how to drive
- the programs.
-
- [Steve Clift, clift@ml.csiro.au]
-
- -----
-
- Another public domain filter design package is DFIR, for FIR filter designs.
- It includes design capabilities for: equiripple linear phase multiband filters,
- linear phase differentiators, linear phase Hilbert transform filters, MMSE
- interpolating filters and equiripple Nyquist filters. It is written in
- Fortran 77 and has been tested on DECStations and Suns.
-
- It is available via anonymous ftp from aldebaran.ee.mcgill.ca in "pub/dfir".
- Additionally, a package to plot filter responses is available in
- "pltfilter-V2R0.tar.Z".
-
- [Peter Kabal, via Witold Waldman]
-
- -----
-
- Another source is netlib: "A free program to design IIR Butterworth,
- Chebyshev, and Cauer (elliptic) filters, in any of lowpass, bandpass,
- band reject, and high pass configurations, is available in netlib (e.g.
- research.att.com) as the file netlib/cephes/ellf.shar.Z. By email to
- netlib@research.att.com the request message text is `send ellf from cephes'
-
- [Stephen Moshier, mosher@world.std.com]
-
- -----
-
- The Fortran source code from the IEEE Press book "Programs For
- Digital Signal Processing" is available for anonymous ftp from
- nimios.eng.mcmaster.ca in directory pub/IEEE/software as dsp.zip.
- It includes FIR and IIR filter design software, as well as other
- general purpose DSP subroutines.
-
- There is also a C/C++ version of the Parks-McLellan FIR filter
- design program available for anonymous ftp from ftp.uu.net in
- directory /usenet/comp.sources.misc/volume22/fir as file part01.Z.
- This program was created and tested using Borland C++ 2.0.
-
- [Witold Waldman, witold@hotblk.aed.dsto.gov.au, from
- Charles Owen at mgcbo@uxa.ecn.bgu.au]
-
- { There are other free filter design programs floating around out there,
- such as optfir/wfir. Does anyone know of ftp sites? }
-
- --------------------------------------------------------------------------
- Q1.2.12: What is SigLib? Where can I get it?
-
- SigLib is an ANSI C Source Library of DSP functions that has been used
- on a variety of platforms containing both General purpose micros and
- DSPs. Siglib contains graphical front ends for DOS and Windows, the
- full C Source, example programs and registered users get one years free
- upgrade, maintenance and support. SigLib is distributed as shareware and
- as a commercial product. The shareware version is available in object code
- only, however.
-
- The following is a brief overview of some of the functionality of
- SigLib: spectrum analysis (including frequency zoom capabilities),
- windows, fixed, multirate (polyphase) and adaptive filters, filter
- design methods, convolution (1 and 2 dimensions), correlation, signal
- generation, modulation and a whole suite of DSP utility functions and
- graphic routines.
-
- Contact: John Edwards, johned@cix.compulink.co.uk.
-
- To obtain: Compuserve, or 157 Sileby Road, Barrow-on-Soar, Leics, LE12 8LW, UK.
-
- {If someone downloads this, mail a note to Brad Hards, hards4@ee.adfa.oz.au,
- and he will put it up for anonymous FTP.}
-
- --------------------------------------------------------------------------
- Q1.2.13: What is the AudioFile System? Where can I get it?
-
- The AudioFile System (AF) is a device-independent network-transparent
- audio server. The distribution includes device drivers and server
- code for Digital RISC systems running Ultrix, Digital Alpha AXP systems
- running OSF/1, and Sun Microsystems SPARCstations running SunOS.
- Also included are an API and library, out-of-the-box core applications,
- and a number of contributed applications. AudioFile allows applications
- to generate and process audio in real-time and at present handles
- up to 48 KHz stereo audio.
-
- AudioFile is distributed in source form, with a copyright allowing
- unrestricted use for any purpose except sale (see the Copyright notice).
- af@crl.dec.com is a mailing list for discussions of AudioFile. Send
- mail to af-request@crl.dec.com to be added to this list.
-
- The kit is located at ftp site crl.dec.com (Internet 192.58.206.2) in
- /pub/DEC/AF. The kit is contained in a compressed tar file named
- AF2R2.tar.Z. Use anonymous ftp to retrieve the file.
- AF2R2-other.tar.Z is a sample kit of Hi-Fi sound bites, if you
- have suitable hardware such as DECaudio.
-
- [Larry Stewart, stewart@crl.dec.com]
-
- =============================================================================
-
- 2. Algorithms and standards.
-
- This section deals with DSP algorithms and related standards.
-
- =======================================================================
- Q2.1: Where can I get some algorithms for general DSP?
-
- The following archives contain things such as matrix operations, FFT's and
- generally useful things like that, as opposed to complete applications:
-
- (1) host ux1.cso.uiuc.edu - log in as anonymous, get the file math/README.
- It summarises the contents of the archive.
-
- (2) Netlib, which 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) The Naval Surface Warfare Center has a library of mathematical
- Fortran subroutines that may be of use. From the report itself:
-
- NSWC Library of Mathematical Subroutines
- Report No.: NSWC TR 90-21, January 1990
- by Alfred H. Morris, Jr.
-
- Naval Surface Warfare Center (E43)
- Dahlgren, VA 22448-5000
- U.S.A.
-
- Distribution: Approved for public release; distribution unlimited.
-
- Abstract:
-
- The NSWC library is a library of general-purpose Fortran subroutines
- that provide a basic computational capability in a variety of
- mathematical activities. Emphasis has been placed on the transportability
- of the codes. Subroutines are available in the following areas:
- Elementary Operations, Geometry, Special Functions, Polynomials, Vectors,
- Matrices, Large Dense Systems of Linear Equations, Banded Matrices,
- Sparse Matrices, Eigenvalues and Eigenvectors, l1 Solution of Linear
- Equations, Least-Squares Solution of Linear Equations, Optimization,
- Transforms, Approximation of Functions, Curve Fitting, Surface Fitting,
- Manifold Fitting, Numerical Integration, Integral Equations, Ordinary
- Differential Equations, Partial Differential Equations
-
- [Witold Waldman, witold@hotblk.aed.dsto.gov.au]
-
- Apparently euler.math.usma.edu has these routines in the file
- "pub/misc/nswc.tar.Z". This is a 3.2 Mbyte file with 800+ Fortran
- routines mentioned above. Apparently euler.math.usma.edu has been
- down a lot lately, however, and the network connection to it is
- quite slow. If somebody would like to make this available from
- a more reliable site, please let us know at comp-dsp-faq@ohm.Berkeley.EDU.
-
- (4) The Fortran source code from the IEEE Press book "Programs For
- Digital Signal Processing" is available for anonymous ftp from
- nimios.eng.mcmaster.ca in directory pub/IEEE/software as dsp.zip.
- It includes FIR and IIR filter design software, FFT subroutines,
- interpolation programs, a coherence and cross-spectral estimation
- program, linear prediction analysis programs, and a frequency
- domain filtering program.
-
- [Witold Waldman, witold@hotblk.aed.dsto.gov.au, from
- Charles Owen, mgcbo@uxa.ecn.bgu.edu]
-
- Also, see the summary of DSP-related FTP sites, at the end of this FAQ.
-
- If you don't know where to find what you're after, try archie.
-
- =======================================================================
-
- Q2.2: What are CELP and LPC? Where can I get the source for CELP and LPC?
-
- CELP stands for "code excited linear prediction". LPC stands for
- "linear predictive coding". They are compression algorithms used for
- low bit rate (2400 and 4800 bps) speech coding.
-
- The U.S. DoD's Federal Standard 1016 (FS 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.
-
- Unfortunately, a document that is a vital part of the CELP release package
- is not available in electronic form. Anyone serious interested in CELP
- should obtain the document:
-
- Details to Assist in Implementation of Federal Standard 1016 CELP.
- National Communications System, Office of Technology & Standards, 1992.
- Technical Information Bulletin 92-1.
-
- It is available from the above address.
-
- The following article describes the FS 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 several vendors,
- including DSP Software Engineering and Analogical Systems (see the
- vendor address list in section 5 for contact info). 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 4.1
- for more on these cards. Analogical's product runs on a 27 MHz
- DSP56001 chip.
-
- [Most of the above from Joe Campbell, jpcampb@afterlife.ncsc.mil, with
- additions from Dan Frankowski, drankow@cs.umn.edu, and Ed Hall,
- edhall@rand.org]
-
- {The CELP code is no longer available for FTP. If anyone knows of a
- new ftp site, please send mail to comp-dsp-faq@ohm.berkeley.edu.}
-
- =======================================================================
- Q2.3: What is ADPCM? Where can I get source for it?
-
- ADPCM stands for Adaptive Differential Pulse Code Modulation. It is a
- family of speech compression and decompression algorithms. A common
- implementation takes 16-bit linear PCM samples samples and converts
- them to 4-bit samples, yeilding a compression rate of 4:1.
-
- There is public domain C code available via anonymous ftp at
- ftp.cwi.nl in /pub/adpcm.shar written by Jack Jansen (email
- Jack.Jansen@cwi.nl). It is very programmer-friendly. The ADPCM code
- used is the Intel/DVI ADPCM code which is being recommended by the IMA
- Digital Audio Technical Working Group. It allows the following calls:
-
- adpcm_coder(short inbuf[], char outbuf[], int nsample,
- struct adpcm_state *state);
- adpcm_decoder(char inbuf[], short outbuf[], int nsample,
- struct adpcm_state *state);
-
- The routines have been tested on an SGI Indigo running Irix 4.0.2 and
- on a Sparcstation 1+ running SunOS 4.1.1. On a Sun, the code will
- compress at 250Ksample/sec and decompress at 300Ksample/sec. On an
- SGI, the compressor runs at 350Ksample/sec and the decompressor at
- 700Ksample/sec.
-
- Note that this is NOT a CCITT G722 coder. The CCITT ADPCM standard is
- much more complicated, probably resulting in better quality sound but
- also in much more computational overhead.
-
- [From Dan Frankowski, drankow@cs.umn.edu; Jack Jansen, Jack.Jansen@cwi.nl]
-
- =======================================================================
- Q2.4: What is GSM? Where can I get source for it?
-
- The README file for GSM says:
-
- GSM 06.10 13 kbit/s RPE/LTP speech compression available
- --------------------------------------------------------
-
- The Communications and Operating Systems Research Group (KBS) at the
- Technische Universitaet Berlin is currently working on a set of
- UNIX-based tools for computer-mediated telecooperation that will be
- made freely available.
-
- As part of this effort we are publishing an implementation of the
- European GSM 06.10 provisional standard for full-rate speech
- transcoding, prI-ETS 300 036, which uses RPE/LTP (residual pulse
- excitation/long term prediction) coding at 13 kbit/s.
-
- GSM 06.10 compresses frames of 160 13-bit samples (8 kHz sampling
- rate, i.e. a frame rate of 50 Hz) into 260 bits; for compatibility
- with typical UNIX applications, our implementation turns frames of 160
- 16-bit linear samples into 33-byte frames (1650 Bytes/s).
- The quality of the algorithm is good enough for reliable speaker
- recognition; even music often survives transcoding in recognizable
- form (given the bandwidth limitations of 8 kHz sampling rate).
-
- The interfaces offered are a front end modelled after compress(1), and
- a library API. Compression and decompression run faster than realtime
- on most SPARCstations. The implementation has been verified against the
- ETSI standard test patterns.
-
- Jutta Degener (jutta@cs.tu-berlin.de)
- Carsten Bormann (cabo@cs.tu-berlin.de)
-
- Communications and Operating Systems Research Group, TU Berlin
- Fax: +49.30.31425156, Phone: +49.30.31424315
-
- An implementation can be FTPed from
- tub.cs.tu-berlin.de:/pub/tubmik/gsm-1.0.tar.Z
- +/pub/tubmik/gsm-1.0-patch1
- +/pub/tubmik/gsm-1.0-patch2
-
- or as a faster but not always up-to-date alternative:
- liasun3.epfl.ch:/pub/audio/gsm-1.0pl1.tar.Z
-
- [From Dan Frankowski, dfrankow@cs.umn.edu]
- ============================================================================
- Q2.5: How does pitch perception work, and how do I implement it on my DSP chip?
-
- 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:
-
- B.C.J. Moore, "An Introduction to the Psychology of Hearing",
- 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 its own pitch. Even a
- single sound can have more than one pitch. See for example
- Demonstration 27 from the ASA Auditory Demonstrations CD.
-
- [The above from Malcolm Slaney, Apple Computer, and John Lazzaro,
- U.C. Berkeley.]
-
- =======================================================================
-
- Q2.6: What standards are there for digital audio? What is AES/EBU?
- What is S/P-DIF?
-
- The "AES/EBU" (Audio Engineering Society / European Broadcast Union)
- digital audio standard is probably the most popular digital audio
- standard today. Most consumer and professional digital audio devices
- (CD players, DAT decks, etc.) that feature digital audio I/O support
- AES/EBU.
-
- AES/EBU is a bit-serial communications protocol for transmitting
- digital audio data through a single transmission line. It provides two
- channels of audio data (up to 24 bits per sample), a method for
- communication control and status information ("channel status bits"),
- and some error detection capabilities. Clocking information (i.e.,
- sample rate) is derived from the AES/EBU bit stream, and is thus
- controlled by the transmitter. The standard mandates use of 32 kHz,
- 44.1 kHz, or 48 kHz sample rates, but some interfaces can be made to
- work at other sample rates.
-
- AES/EBU provides both "professional" and "consumer" modes. The big
- difference is in the format of the channel status bits mentioned above.
- The professional mode bits include alphanumeric channel origin and
- destination data, time of day codes, sample number codes, word length,
- and other goodies. The consumer mode bits have much less information,
- but do include information on copy protection (naturally). Additionally,
- the standard provides for "user data", which is a bit stream containing
- user-defined (i.e., manufacturer-defined) data. According to Tim
- Channon, "CD user data is almost raq CD subcode; DAT is StartID and
- SkipID. In progfessional mode, there is an SDLC protocol or, if DAT,
- it may be the same as consumer mode."
-
- There physical connection media are commonly used with AES/EBU:
- balanced (differential), using two wires and shield in three-wire microphone
- cable with XLR connectors; unbalanced (single-ended), using audio coax cable
- with RCA jacks; and optical (via fiber optics).
-
- "S/P-DIF" (Sony/Philips Digital Interface Format) typically refers to
- AES/EBU operated in consumer mode over unbalanced RCA cable. Note
- that S/P-DIF and AES/EBU mean different things depending on how much
- of a purist you are in the digital audio world; see the Finger article
- below.
-
- References:
-
- Finger, Robert, "AES3-199X: The Revised Two Channel Digital Audio
- Interface (DRAFT)", presented at the 91st Convention of the Audio
- Engineering Society, October 4-8, 1991. Reprints: AES, 60 East 42nd
- St., New York, NY, 10165.
-
- [The above from Phil Lapsley, phil@ohm.Berkeley.EDU, and Tim Channon,
- tchannon@black.demon.co.uk]
-
- =============================================================================
-
- Q2.7: What is mu-law encoding? Where can I get source for it?
-
- Mu-law (also "u-law") encoding is a form of logarithmic quantization
- or companding. It's based on the observation that many signals are
- statistically more likely to be near a low signal level than a high
- signal level. Therefore, it makes more sense to have more quantization
- points near a low level than a high level. In a typical mu-law system,
- linear samples of 14 to 16 bits are companded to 8 bits. Most telephone
- quality codecs (including the Sparcstation's audio codec) use mu-law
- encoded samples.
-
- Desktop Sparc machines come with routines to convert between linear and
- mu-law samples. On a desktop Sparc, see the man page for audio_ulaw2linear
- in /usr/demo/SOUND/man.
-
- Craig Reese posted the source of similar routines to comp.dsp in August '92.
- These are archived on evans.ee.adfa.oz.au (131.236.30.24) in /pub/dsp/misc
-
- References:
-
- CCITT Recommendation G.711 (very difficult to follow).
-
- Michael Villeret, et. al, "A New Digital Technique for Implementation
- of Any Continuous PCM Companding Law,", IEEE Int. Conf. on Communications,
- 1973, vol. 1, pp. 11.12-11.17.
-
- MIL-STD-188-113, "Interoperability and Performance Standards
- for Analog-to-Digital Conversion Techniques," 17 February 1987.
-
- "TI Digital Signal Processing Applications with the TMS320 Family",
- pp. 169-198.
-
- [From Joe Campbell; Craig Reese, cfreese@super.org; Sepehr Mehrabanzad,
- sepehr@falstaff.dev.cdx.mot.com]
-
- =============================================================================
-
- Q2.8: How can I do CD <-> DAT sample rate conversion?
-
- CD players use a 44.1 kHz sample rate, whereas DAT uses a 48 kHz sample rate.
- This means that you must do sample rate conversion before you can get data
- from a CD player directly into a DAT deck.
-
- [From Ed Hall, edhall@rand.org:]
-
- For a start, look at "Multirate Digital Signal Processing" by Crochiere
- and Rabiner (see FAQ section 1.1).
-
- Almost any technique for producing good digital low-pass filters will be
- adaptable to sample-rate conversion. 44.1:48 and vice-versa is pretty
- hairy, though, because the lowest whole-number ratio is 147:160. To do
- all that in one go would require a FIR with thousands of coefficients,
- of which only 1/147th or 1/160th are used for each sample--the real
- problem is memory, not CPU for most DSP chips. You could chain several
- interpolators and decimators, as suggested by factoring the ratio into
- 3*7*7:2*2*2*2*2*5. This adds complexity, but reduces the number of
- coefficients required by a considerable amount.
-
- In any case, your local DSP guru will probably be able to suggest a good
- program for designing digital filters (this is a good general question
- for the net, anyway). This is one case where going beyond the simpler
- windowed-sinc-based approaches might pay off (and I'm afraid I can't
- recommend any readily available programs myself).
-
- =============================================================================
-
-
-
- 3. Programmable DSP chips and software.
-
- This section deals with programmable DSP chips and their software.
-
- Q3.1: What are the available DSP chips and chip architectures?
-
- { This is based on a woefully inadequate databook collection. Anyone want
- to add to this list? Manufacturers want to submit anything? }
-
- The "big four" programmable DSP chip manufacturers are Texas Instruments,
- with the TMS320 series of chips; Motorola, with the DSP56000 and DSP96000
- series; AT&T, with the DSP16 and DSP32 series; and Analog Devices, with
- the ADSP2100 series. A good overview of prorammable DSP chips is published
- periodically in EDN magazine. The most recent version is from Sep. 17, 1992,
- pp. 90-141.
-
- Here's a less ambitious chip breakdown by manufacturer:
-
- -------------------------------------
-
- Texas Instuments:
-
- TMS320C1x: family of low cost fixed-point DSP's; 16 bit data, 32 bit
- registers; Various RAM and ROM configurations; 16 bit I/O bus, serial ports.
-
- TMS320C25: 50MHz fixed-point DSP; 16 bit data, 32 bit registers;
- 12.5 MIPS @ 50MHz.
-
- TMS320C30: 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.
-
- TMS320C31: version of C30 minus peripheral bus, one serial port, and the 4Kx32
- internal ROM. ~$20, 132 pin PQFP.
-
- TMS320C40: 40/50 MHz floating point DSP; extensive parallel processing
- support through 6 buffered byte-wide 20 Mb/s links and 6 channel DMA; cache.
-
- TMS320C50: enhanced TMS320C25 (double throughput); low overhead looping;
- 10 Kwords SRAM on chip.
-
- -------------------------------------
-
- Motorola:
-
- DSP56001: 20.5, 27, or 33 MHz 24-bit fixed point DSP. 24 bit data bus, 16 bit
- address bus, 56 bit accumulators (2), host interface port, serial ports (2),
- general purpose I/O pins, timer. Harvard architecture. 512 words program
- RAM, 32 words bootstrap ROM, 512 words data RAM, 512 words data ROM on chip.
- Available in PGA, CQFP or PQFP packaging.
-
- DSP56000: Mask-programmed version of DSP56001, same peripherals and data
- memories, 3.75k words program ROM on chip.
-
- DSP56002: modular DSP based on new 24-bit DSP56k core, a superset of
- the DSP56001 architecture with On-Chip Emulation (OnCE) debug port,
- clock PLL and improved bus arbitration. Has four cycle double precision
- multiply and support for block floating point. Same memory as in
- DSP56001, except for 64 words bootstrap ROM. Host interface port,
- serial ports (2), general purpose I/O pins, programmable 24-bit timer,
- non-maskable interrupt. Low power fully static design, no minimum
- clock frequency requirement. Available at 40 MHz (5V supply) in PGA
- and CQFP packaging.
-
- DSP56004: modular DSP, same 24-bit DSP56k core as in DSP56002. Targeted
- to consumer digital audio applications. Has On-Chip Emulation (OnCE)
- debug port, clock PLL, serial host interface (I2C and SPI), four
- general purpose I/O pins, two stereo serial audio receivers (I2S/Sony),
- three stereo serial audio transmitters (I2S/Sony), external SRAM/DRAM
- memory interface with 8-bit data bus. Low power fully static design,
- no minimum clock frequency requirement. Available at 40 MHz (5V
- supply) in 80-pin QFP package.
-
- DSP56156: 40, 50, or 60 MHz fixed point DSP; 16 bit data bus, 40 bit
- accumulators (2), host interface port, serial ports (2), timer, OnCE
- debug port, clock PLL, 14 bit sigma-delta voice band CODEC, 2K words
- program RAM, 2K words data RAM on chip.
-
- DSP96002: IEEE format floating point DSP; two complete 32 bit data and
- address buses; Harvard architecture. 1k words program RAM, 64 words
- bootstrap ROM, 1k words data RAM, 1k words data ROM, host interface
- ports (2). Available in 33 MHz or 40 MHz in 223-pin PGA packaging.
- [The above from Sergio Liberman, sergio@msil.sps.mot.com ]
-
- -------------------------------------
-
- AT&T:
-
- DSP 16 FAMILY: DSP16A, $22.60; DSP1610, $91; DSP1616, $35.70
- 16 bit fixed point DSPs. The DSP16A has a 25ns cycle time while the
- 16C has an ADC and DAC on chip. The C-version also has a 4-pin JTAG
- interface. The 1610/1616 are enhanced versions intended for cellular
- phone use. The chips use separate on-chip 16-bit program- and data
- buses. The A and C versions have 12k x 16-bit program ROM and a 2k x
- 16-bit data-RAM while featuring parallell and serial I/O.
-
- DSP 32C/3210: DSP32C, $70(1000); DSP3210, $50(100k)
- 32-bit floating point with 40-bits accumulator and 16/24-bit fixed
- point. These DSP's uses a single 4M-word (3210: 4G-word) linear memory
- space instead of the separate program and data memory found on most
- DSP:s. The bus can be accessed four times and each internal memory two
- times per cycle. The 3210, along with the VCOS operating system is
- intended for use on the mother board of personal computers and
- workstations where it shares memory with the host. The 32C has three
- 512 x 32-bit RAM:s while the 3210 has two 1k x 32-bit RAMs and a 256 x
- 32-bit boot ROM. 32C: Serial and parallell I/O, 3210: Serial I/O,
- timer, DMA-controller. 3210 available at 50 and 66MHz.
-
- -------------------------------------
-
- Analog Devices:
-
- ADSP-2100: 40 and 50Mhz fixed point DSP (10 MIPS, 12.5MIPS). 16 bit
- operations with 40-bit multiply-accumulate. No on chip memory except for a 16
- word instruction cache. Off chip harvard architecture. PGA and PQFP
- packages.
-
- ADSP-2101: Derived from ADSP-2100; 16 bit operations with 40-bit MAC
- register. Extras include on chip memory of 2Kx24 program memory
- instruction/data RAM and 1Kx16 data memory RAM, 16-bit timer, two serial
- ports, low power state. PGA, PLCC, PQFP packages. Fastest speed grade in
- production is 16.6 MHz (16.6MIPS).
-
- ADSP-2102: RAM/ROM version of 2101; user selects how much of the 2kx24
- program memory is mask ROM.
-
- ADSP-2103: 3.3V version of the 2101 running at 13MHz (13 MIPs). PLCC, PQFP
- packages.
-
- ADSP-2105: 10Mhz (10MIPS) low cost 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. Architecture and instruction set identical to
- ADSP-2101. Pin compatible with 2101. PLCC package only (can use standard 68
- pin plcc socket). This processor sells for US $9.90 in any quantity.
-
- ADSP-2115: Architecture and pinout same as ADSP-2101, but 1K program memory
- RAM, 1/2K data memory RAM with 2 serial ports, interval timer etc. PLCC and
- PQFP packages. Available in 13.8MHz and 16MHz (13.8, 16 MIPs)
-
- ADSP-2111: Adds a 8/16bit host interface port to ADSP-2101 architecure
- allowing interface to Intel or Motorola style microprocessors. 13 and 16 MIPs
- speeds available. PGA and PQFP packages.
-
- ADSP-21msp50: ADSP-2111 with an on chip a/d and d/a interface (65dB SNR)
- Additional low power modes allow CMOS standby (<100uA). 100-lead PQFP
- package.
-
- ADSP-216x: Four devices, two with 8Kx24 mask ROM and two with 2K*24 mask ROM,
- each has 1/2K data memory RAM. Pin-for-pin compatible with ADSP-2101. PLCC,
- PQFP packages.
-
- ADSP-21020: 20/25/33 MHz floating-point DSP; Supports 32-bit fixed point,
- IEEE format 32-bit floating point, and 40-bit floating point; 40-bit registers
- plus two 80-bit fixed-point multiply-accumulators; Harvard arch. with 32 word
- instruction cache allows two data accesses in a single cycle; IEEE 1149.1 JTAG
- boundry scan; 33.3 MIPS @ 33.3 MHz.
-
- ADSP21010: Slower inexpensive version of '020 (16 MHz). Limited to 32-bit
- fixed and floating point.
-
- 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 processors have an extended
- Harvard architecture which allows two data fetches and an instruction fetch
- every cycle in parallel with an alu or mac operation.
-
- Processors with internal memory support booting from inexpensive 8 bit EPROMS.
- All processors include hardware support for zero overhead looping, modulo
- addressing, single cycle context switch, and bit reversal addressing. All
- instructions, even those which access external memory can complete in 1 cycle.
-
- [Analog Devices DSP applications, dsp_applications@analog.com]
-
- =======================================================================
-
- Q3.2: Software for Motorola DSPs.
-
- =======================================================================
-
- Q3.2.1: Where can I get a free assembler for the Motorola DSP56000?
-
- A free assembler for the Motorola DSP56000 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 that
- newsgroup (like wuarchive.wustl.edu).
-
- =======================================================================
-
- Q3.2.2: Where can I get a free C compiler for the Motorola DSP56000?
-
- There are two separate compiler sources for the Motorola DSP56000. One
- is the port of gcc 1.40 done by Andrew Sterian (asterian@eecs.umich.edu) and
- the other is a port of gcc 1.37.1 done by Motorola and returned to the
- FSF. Andrew's port has bowed to Motorola's version. Both may be
- portable to gcc2.x.x with some effort required. Neither of these comes
- with an assembler, but you can get a free DSP56000 assembler elsewhere
- (see Q3.2.1 above).
-
- The Motorola gcc source is available for FTP from:
-
- nic.funet.fi ~pub/ham/dsp/dsp56k-tools/dsp56k-gcc.tar.Z
- evans.ee.adfa.oz.au pub/micros/56k/g56k.tar.Z
-
- From Andrew Sterian, asterian@eecs.umich.edu:
-
- 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.
-
- =======================================================================
-
- Q3.2.3: Where can I get algorithms and libraries for Motorola DSPs?
- What is the number for the Motorola DSP BBS?
-
- Motorola runs "Dr. Bub", a bulletin board for DSPs containing source code
- for various libraries and algorithms. You can call it at (512) 891-3771
- (9600, 4800, 2400, 1200 bps) or (512) 891-3773 (2400/1200/300 bps).
- Format is 8 data bits, no parity, 1 stop bit). Log in as "guest" to
- browse the system, or you can open an account by entering "new" at the
- account name prompt. [John Fisher, johnf@dsp.sps.mot.com]
-
- Alternatively, Dr. BuB is mirrored on the following sites:
-
- 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.
-
- ccrma-ftp.stanford.edu also has a variety of DSP code (much of it NeXT
- specific, see below), including the following for the DSP56000:
-
- pub/clm.tar.Z "CLM", a package aimed mainly at composers doing
- computer music in Common Lisp, but includes a Lisp
- 56000 assembler, debugger, loader, large libraries of
- DSP56000 routines useful in computer music, and
- a compiler from a subset of Common Lisp to
- DSP56000 code. [bil@ccrma.stanford.edu]
-
- =======================================================================
-
- Q3.2.4: Where can I get NeXT-compatible Motorola DSP56001 code?
-
- Try the following from ccrma-ftp.Stanford.EDU:
-
- DSP programs for the NeXT platform:
-
- pub/DSP/resample.tar.Z Audio sampling-rate conversion and FIR
- filter design.
- pub/DSP/ResoLab2.1.tar.Z Interactive filter instrument; sources now
- included, online help.
- pub/DSP/Spectro.Z Spectrum analysis tool, with source code.
- pub/DSP/WaveFormEditor.tar.Z Jean Laroche's real-time waveform editor,
- with DAJ's additions.
-
- DSP programming examples for the NeXT platform:
-
- pub/DSP/dsp_dma_stream.tar.Z Fast DSP DMA programming example (two-way DMA).
- pub/DSP/JeanLaroche.tar.Z Low-level sound and DSP programming examples
- and docs.
-
- [bil@ccrma.Stanford.EDU]
-
- =======================================================================
-
- Q3.3: Software for Texas Instruments DSPs.
-
- =======================================================================
-
- Q3.3.1: Where can I get free algorithms or libraries for TI DSPs?
- What is the number for the TI DSP BBS?
-
- nic.funet.fi has some old, apparently public domain, assembler and
- related tools from TI for the TMS320 family. [Antti-Pekka Virtanen,
- antsu@utu.fu]
-
- The TI DSP bulletin board is at (713) 274-2323 (300, 1200, 2400, or 9600 bps;
- 8 data, 1 stop, no parity).
-
- evans.ee.adfa.oz.au has a mirror of the TI DSP bulletin board in
- "mirrors/tibbs". See the "00README" file at the top of the
- directory tree for info. Please restrict FTP session to outside of
- 8 am to 6 pm local time (10 pm to 8 am GMT).
- This is mirrored from ti.com, in /tms320bbs. The TI site is
- the official one, but has no user contributed software.
- [Brad Hards, hards4@ee.adfa.oz.au]
-
- { If anyone knows of any other sources for TI DSP software, please let
- us know at comp-dsp-faq@ohm.Berkeley.EDU. Thanks! }
-
- =======================================================================
-
- Q3.3.2: Where can I get a free C compiler for the TI TMS320C30?
-
- Sonitech (see vendors list) has a gcc based TMS320C30 C compiler
- that was originally done Computer Motion. Sonitech sells it
- for $995, but under the terms of the Gnu Public License, other
- people can then give it away. While we haven't heard of any
- ftp sites yet, there are bound to be some soon.
-
- =======================================================================
-
- Q3.3.3: Where can I get a free assembler for the TI TMS320C30?
-
- Ted Rossin has written an assembler and linker for the TMS320C30. In
- his words, "It is somewhat limited by the fact that it can't handle
- expressions but it has worked fine for me over the past few years.
- There is no manual because it is a clone of the TI assembler and
- linker. However the linker command files use a different (easier to
- use) syntax. It runs on HP-UX workstations, Macs, IBM clones and
- believe it or not the Atari-ST (because I developed the code on it)."
-
- It is available for anonymous ftp from schutz.ee.uts.edu in
- ~/pub/DSP/c30/as30.tar.Z".
-
- [Ted Rossin, rossin@fc.hp.com]
-
- =======================================================================
-
- Q3.4: Software for Analog Devices DSPs.
-
- =======================================================================
-
- Q3.4.1: Where can I get algorithms or libraries for Analog Devices DSPs?
- What is the number for the Analog Devices DSP BBS?
-
- The number for the Analog Devices DSP BBS is (617) 461-4258 (300, 1200,
- 2400, 9600, 14400 bps), 8N1.
-
- [Analog Devices DSP Applications, dsp_applications@analog.com]
-
- { If anyone knows of other sources for Analog Devices DSP software,
- please let us know at comp-dsp-faq@ohm.Berkeley.EDU. Thanks! }
-
- =======================================================================
-
- Questions, comments, or submissions for this FAQ should be mailed to
- comp-dsp-faq@ohm.Berkeley.EDU, ...!ucbvax!ohm!comp-dsp-faq. Thanks!
-