Archive-name: dsp-faq/part1ãLast-modified: Fri Mar 19 1993ãVersion: 1.0ãã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.*.ããWe are most grateful to the following contributors who helped out withãthis version of the FAQ:ããHarry Bates transtech!hjb@tc.cornell.eduãJutta Degener jutta@cs.tu-berlin.deãMalachy Devlin madmal@spd.eee.strathclyde.ac.ukãKenneth Ekman y88kenek@und.ida.liu.seãGreg Koker dsp_applications@analog.comãRenzo Mercanzin aire@sabrina.dei.unipd.itãC.S. Ramalingam ramli@mizar.ele.uri.eduãTony Richardson amr@mpl.ucsd.eduãTed Rossin rossin@hpfcrd.fc.hp.comãLarry Stewart stewart@crl.dec.comããand the following folks who helped out with previous versions:ããWilliam Alves alves@calvin.usc.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ãMalachy Devlin madmal@spd.eee.strathclyde.ac.ukãJohn Edwards johned@cix.compulink.co.ukã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ãPhillip Musumeci phillip@ee.adfa.oz.auãBill Ralston wtr@mitre.orgãTony Richardson amr@mpl.ucsd.eduã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ã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 Where can I get DSP software for MS DOS?ã 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 Standalone.ã 4.2 Who makes AES/EBU chips?ãã5. Operating Systems.ãã6. List of manufacturers, addresses, and telephone numbers.ãã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:ãHierarchical block diagram environment for prototyping signal processingãsystems on single or multiple processors. Algorithms expressed in blockãdiagram form can be simulated, and assembly code can also be generated forãthe Motorola DSP56001 and DSP96002. Gabriel has almost been obsoleted byãPtolemy, below.ããPlatforms: sun 3, sun 4, X windows. Written in Lisp (lisp compiler supplied).ããContact: Alan Kamas, aok@ohm.berkeley.edu.ããTo obtain:ã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.ã--------------------------------------------------ãã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, optical phase lock loops, 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 75 sites, both in industry and academia.ããPtolemy is available for the Sun 4 (sparc) and DecStation (MIPS)ãarchitectures. A port to the HP workstation is in progress.ã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 "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?ããOne source is the following: in 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]ãã{ There are other free filter design programs floating around out there,ã such as optfir/wfir. Does anyone know of ftp sites? }ãã--------------------------------------------------------------------------ãQ1.2.12: Where can I get some DOS stuff?ããThere is a DOSD library available. The author wrote:ããThe DSP library is currently on Compuserve engineering forum. It ãincludes a Microsoft and Turbo C library. At the moment it is just a ãdemo object format library (and the microsoft version only works with ãan x87), but the source code lisence is purchaseable. I have done it ãthis way because at the moment I am unsure of exactly how I want to ãmake it available, LSI are quite interested in supplying it with ãtheir boards, or I may just offer it a freeware. If you are ãinterested, I could maybe just send you a disk, the problem is that ãit is quite large and costs a bit to download from somewhere like ãCompuserve.ããThe library contains many functions for things like FFTs, filtering ã(including LMS adaptive), windowing, convolution (inc 2d) and ãcorrelation. It also has loads of examples, of how to use the ãfunctions, including things like FIR filter design methods and ãamplitude modulation.ãã{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.ãã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 4800 bps CELP code is available via anonymous FTP onãfurmint.nectar.cs.cmu.edu (128.2.209.1111) in celp.audio.compression.ãIt is unsupported, and has not been compiled or tested. This versionãtakes a lot of CPU time. It is about 15 times slower than real-time.ãThat is, to code 1 minute of speech takes about 15 minutes. It hasãdirections on how to reduce the codebook search to make it faster, butãthey are only for the speech coding expert.ãã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:ãã 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ããandãã Analogic Systemsã 2916 Ramonaã Palo Alto, CA 94306ã (415) 323-3232ãã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. Analogic'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]ãã=======================================================================ã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-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 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)."ãã{ Contact Ted for the software. If somebody puts it up for FTP, pleaseã let us know at comp-dsp-faq@ohm.Berkeley.EDU. }ãã[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!ã