Search the FAQ Archives

3 - A - B - C - D - E - F - G - H - I - J - K - L - M
N - O - P - Q - R - S - T - U - V - W - X - Y - Z - Internet FAQ Archives

comp.dsp FAQ [1 of 4]

( Part1 - Part2 - Part3 - Part4 )
[ Usenet FAQs | Web FAQs | Documents | RFC Index | Sex offenders ]
Archive-name: dsp-faq/part1
Last-modified: Wed Apr 11 2007

See reader questions & answers on this topic! - Help others by sharing your knowledge
  FAQs (Frequently asked questions with answers) on Digital Signal Processing

   The world-wide web version of the comp.dsp FAQ is maintained and sponsored
   by Berkeley Design Technology, Inc. For information on BDTI, visit the
   BDTI home page at

   Version date: Apr 11, 2007

   - Seth Benton, FAQ maintainer


  0. What is comp.dsp?

           0.1 Relevant links
           0.2 Versions of the comp.dsp FAQ
           0.4 Redistribution permission
           0.5 Note on the list of manufacturers, addresses, and telephone

  1. General DSP

           1.1 DSP book and article references

                        1.1.1 Bibles of DSP theory

                        1.1.2 Adaptive signal processing

                        1.1.3 Array signal processing

                        1.1.4 Windowing articles

                        1.1.5 Digital audio effects processing

                        1.1.6 Digital signal processing implementation

                        1.1.7 Free online books

           1.2 DSP training

                        1.2.1 Courses on DSP

                        1.2.2 On-Line courses on DSP

           1.3 Where can I get free software for general DSP?

                        1.3.1 DSP packages for MATLAB

                        1.3.2 DSP packages for Mathematica

                        1.3.3 Other DSP libraries

                        1.3.4 DSP software

                        1.3.5 Text to Speech Conversion Software

                        1.3.6 Filter design software

                        1.3.7 Audio effects

  2. Algorithms and standards

           2.1 Where can I get public domain algorithms for DSP?
           2.2 What are 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.6.1 Where can I get copies of ITU (formerly CCITT)

                        2.6.2 What standards are there for digital audio?

           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?
           2.9 What are wavelets?

                        2.9.1 What are wavelets? Where can I get more

                        2.9.2 What are some good books and papers on

                        2.9.3 Where can I get some software for wavelets?

           2.10 How do I calculate the coefficients for a Hilbert
           2.11 Algorithm implementation: floating-point versus fixed-point

  3. Programmable DSP chips and their software

           3.1 What are the available DSP chips and chip architectures?
           3.2 What is the difference between a DSP and a microprocessor?
           3.3 Software for Analog Devices DSPs

                        3.3.1 Where can I get a C compiler for the ADSP-21xx
                        and ADSP-21xxx?

                        3.3.2 Where can I get tools for the ADSP-21xxx?

                        3.3.3 Where can I get an assembler for the ADSP-2105?

                        3.3.4 Where can I get algorithms or libraries for
                        Analog Devices DSPs?

           3.4 Software for Agere Systems (Formerly Lucent Technologies) DSPs
           3.5 Software for Motorola DSPs

                        3.5.1 Where can I get a free assembler for the
                        Motorola DSP56000?

                        3.5.2 Where can I get a free C compiler for the
                        Motorola DSP56000?

                        3.5.3 Where can I get a disassembler for the Motorola

                        3.5.4 Where can I get algorithms and libraries for
                        Motorola DSPs?

                        3.5.5 Where can I get NeXT-compatible Motorola
                        DSP56001 code?

                        3.5.6 Where can I get emulators for the 68HC11 (6811)

           3.6 Software for Texas Instruments DSPs

                        3.6.1 Where can I get free algorithms or libraries
                        for TI DSPs?

                        3.6.2 Where can I get free development tools for TI

                        3.6.3 Where can I get a free C compiler for the TI

                        3.6.4 Where can I get a free assembler for the TI

                        3.6.5 Where can I get a free simulator for the TI

                        3.6.6 What is Tick? Where can I get it?

  4. DSP development boards

  5. Operating Systems

   People involved...
                  Previous section (Overview) Next section (1)

                             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.

Q0.1: Relevant links

           Other relevant news groups are:

              * comp.arch.embedded
              * comp.compression
              * comp.realtime
              * comp.speech.research
              * sci.image.processing

           Relevant FAQs are:

              * Higher-order statistics FAQ
              * comp.compression FAQ
              * comp.realtime FAQ
              * comp.speech FAQ
              * Audio sampling FAQ

           There is an index of DSP-related resources, books, discussion


           Other relevant links:


Q0.2: Versions of the comp.dsp FAQ

           If you're reading this via the World Wide Web:

           Click on to download a
           compressed HTML version of the FAQ.

           Click on to download a
           compressed ASCII version of the FAQ.

           If you're reading this as ASCII text:

           Get with the program and get a web browser. The FAQ is available
           on World Wide Web with a much nicer interface. This is especially
           true for information presented in tabular form. Try:



           Additionally, please note that the opinions expressed herein are
           those of the individual contributors, and should not be construed
           to be those of the contributor's employers or Berkeley Design
           Technology, Inc.


Q0.4: Redistribution Permission

           This FAQ may be redistributed (in either electronic or printed
           form) for non-commercial purposes provided that this notice is
           preserved and that due credit is given to the maintainers and

Q0.5: Note on the list of manufacturers, addresses, and telephone numbers

           The comp.dsp FAQ no longer includes a list of manufacturers. The
           information becomes outdated in a few months, and we believe that
           the list takes up an inappropriate amount of space in the FAQ
           compared to the interest in the list.

                 Previous section (Overview)  Next section (1)
                     Previous section (0) Next section (2)

                                Q1: General DSP

Q1.1: Summary of DSP books and significant research articles

   Updated 12/17/01

  Q1.1.1: Bibles of DSP theory

           R. E. Crochiere and L. R. Rabiner, Multirate Digital Signal
           Processing, Prentice-Hall, 1983, ISBN 0-13-605162-6.

             This book is the only real reference for filter banks and
             multirate systems, as opposed to being a tutorial.

             Peter Kootsookos <p.kootsookos""> notes: this book is
             most certainly an excellent book on multi-rate signal
             processing, but it came out right before perfect reconstruction
             filter banks hit the streets. </p.kootsookos>Multirate Systems
             and Filter Banks by P. P. Vaidyanathan covers this issue.

           G. H. Golub and C. F. van Loan, Matrix Computations, Third
           Edition, John Hopkins University Press, 1996, ISBN 081085413-X.

           S. M. Kay, Modern Spectral Estimation: Theory and Application,
           Prentice Hall, 1988, ISBN 0-13-598582-X.

           R. Lyons, Understanding Digital Signal Processing, 2/E, Prentice
           Hall Publishing Co., 2004, ISBN 0-13-108989-7.

           Sanjit K. Mitra and James F. Kaiser, Handbook for Digital Signal
           Processing, John Wiley and Sons, 1993, ISBN 0-471-61995-7.

             Excellent reference work, but assumes you know a fair amount to
             begin with. [Phil Lapsley]

           A. V. Oppenheim, A. S. Willsky, and S. H. Nawab, Signals &
           Systems, Prentice-Hall, Inc., 1996, ISBN 0-13-814757-4.

           A. V. Oppenheim and R. W. Schafer, Digital Signal Processing,
           Prentice-Hall, Inc., Englewood Cliffs, NJ, 1975, ISBN

           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.

           S. J. Orfanidis, Optimum Signal Processing, Second Edition, 1989,
           MacMillan Publishing, USA, ISBN 0-02-9498597.

             An introduction to signal processing methods which have many
             applications including speech analysis, image processing, and
             oil exploration. The author uses optimum Wiener filtering and
             least-squares estimation concepts as unifying themes and
             includes subroutines for FORTRAN and C. [Juergen Kahrs,

           T.W. Parks and C. S. Burrus, DFT/FFT and Convolution Algorithms:
           Theory and Implementation, John Wiley and Sons, 1985, ISBN

           Thomas Parsons, Voice and Speech Processing, McGraw-Hill, 1987,
           ISBN 0-07-048541-0.

           W. H. Press, S. A. Teukolsky, W. T. Vetterling, and B. P.
           Flannery, Numerical Recipes in C, Second Edition, Cambridge
           University Press, 1992, ISBN 0-52-143108-5.

             The book is also available on-line at

           J. G. Proakis and D. G. Manolakis, Digital Signal Processing:
           Principles, Algorithms, and Applications, MacMillan Publishing,
           New York, NY, 1992, ISBN 0-02-396815-X.

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

           S. D. Stearns and R. A. David, Signal Processing Algorithms,
           Prentice Hall, Eaglewood Cliffs, NJ, 1988. ISBN

           P. P. Vaidyanathan, Multirate Systems and Filter Banks,
           Prentice-Hall. 911 pp. ISBN 0-13-605718-7.


  Q1.1.2: Adaptive signal processing

           S. Haykin, Adaptive Filter Theory, 3rd Ed., Prentice Hall,
           Englewood Cliffs, NJ, 1991. ISBN 0-13-322760-X.

           J. R. Treichler, C. R. Johnson, and M. G. Lawrence, Theory and
           Design of Adaptive Filters, John Wiley & Sons, New York, NY, 1987,
           ISBN 0-47-183220-0.

           B. Widrow and S.D. Stearns, Adaptive Signal Processing,
           Prentice-Hall, Inc., Englewood Cliffs, NJ, 1985. ISBN


  Q1.1.3: Array signal processing

           J.E. Hudson, Adaptive Array Principles, IEE London and New York,
           Peter Peregrinus Ltd. Stevenage, UK and NY, 1981. ISBN

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

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

           D. H. Johnson and D. E. Dudgeon, Array Signal Processing, Concepts
           and Techniques, Prentice-Hall, 1993. ISBN 0-13-048513-6.

           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 Discrete Fourier Transform", 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

             There are several typos in the above paper. The errors are
             corrected in:

           A. H. Nuttall, "Some Windows with Very Good Sidelobe Behavior,"
           IEEE Trans. on Acoustics, Speech, and Signal Processing, Vol.
           ASSP-29, No. 1, February 1981.

           Nezih C. Geckinli and 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.

           Lineu C. Barbosa, "A Maximum-Energy-Concentration Spectral
           Window," IBM J. Res. Develop., Vol. 30, No. 3, May 1986, p.

             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

           D. J. Thomson, "Spectrum Estimation and Harmonic Analysis," Proc.
           of the IEEE, vol. 70, no. 9, pp. 1055-1096, Sep. 1982.

             In his classic 1982 paper, David Thompson proposes the powerful
             multiple-window method, which is an elegant and robust technique
             for spectrum estimation. Based on the Cramer representation,
             Thompson's method is nonparametric, consistent, efficient, and
             optimally suited for finite data samples. In addition, it has
             excellent bias control and stability, provides an analysis of
             variance test for line components, and finally, works very well
             in many practical applications. Unfortunately, his important
             work has been neglected in many textbooks and graduate courses
             on statistical signal processing. [Dong Wei,
   , and Brian Evans,


  Q1.1.5: Digital audio effects processing


           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. ISBN

           Hal Chamberlin, Musical Applications of Microprocessors, 2nd Ed.,
           Hayden Book Company, 1985.

           Deta S. Davis, Computer Applications in Music: A Bibliography, 537
           pages, ISBN 0-89579-225-7, pub: A-R Editions.

           Charles Dodge and Thomas A. Jerse, Computer Music: Synthesis,
           Composition, and Performance, NY: Schirmer Books, 1985. ISBN

           Digital Signal Processing Committee of IEEE Acoustics, Speech, and
           Signal Processing Society, ed., Programs for Digital Signal
           Processing, New York: IEEE Press, 1979.

           F. Richard Moore, Elements of Computer Music, Englewood Cliffs,
           NJ: Prentice-Hall, 1990. ISBN: 0-13252-552-6.

             Recommended. [Juhana Kouhia,]

           Ken C. Pohlmann, The Compact Disc: A Handbook of Theory and Use,
           288 pages (cloth) ISBN 0-89579-234-6. (paper) ISBN 0-89579-228-1,
           pub: A-R Editions.

           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,

           Joseph Rothstein, Midi: A Comprehensive Introduction (Computer
           Music and Digital Audio, Vol 7), 2nd Ed., A-R Editions, 1995. ISBN

           Ken Steiglitz, A DSP Primer - With Applications to Digital Audio
           and Computer Music, Addison-Wesley, 1996, 314 pp, softcover, ISBN

           John Strawn, ed., Digital Audio Engineering, 144 pages, A-R
           Editions. ISBN 0-86576-087-X.

           John Strawn, ed., Digital Audio Signal Processing: An Anthology,
           Los Altos, CA: W. Kaufmann, 1985. ISBN 0-86-576087-X.

             Contains J.A. Moorer's classic "About This Reverb Business..."
             and contains an article which gives a code for Phase Vocoder --
             great tool for EQ, for Pitchshifter and more [Juhana Kouhia,

           John Strawn, ed., Digital Audio Signal Processing, 283 pages, ISBN
           0-86576-082-9, pub: A-R Editions.

             Recommended. [Quinn Jensen,]

           Curtis Roads, "A Computer Music History: Musical Automation from
           Antiquity to the Computer Age"

           David Cope, "Computer Analysis of Musical Style"

           Dexter Morrill and Rick Taube, "A Little Book of Computer Music


           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

           Check more articles from Journal of the Audio Engineering Society
           (JAES), for example more articles by Strawn.

           [The above is largely from Quinn Jensen,;
           Juhana Kouhia,; William Alves,
 ; and Paul A Simoneau,]


  Q1.1.6: Digital signal processing implementation

           User's manuals and data sheets on specific digital signal
           processors are available directly from the manufacturers. The
           works listed below may also be of interest.

           A. Bateman and W. Yates, Digital Signal Processing Design,
           Computer Science Press, MD, 1989.

           R. Chassaing, Digital Signal Processing - Laboratory Experiments
           Using C and the TMS320C31 DSK, Wiley, NY, ISBN 0-471-29362-8,

           R. Chassaing, Digital Signal Processing with C and the TMS320C30,
           Wiley, NY, 1992.

           R. Chassaing and D. W. Horning, Digital Signal Processing with the
           TMS320C25, Wiley, NY, 1990.

           R. Chassaing, DSP Applications Using C and the TMS320C6x DSK,
           Wiley, NY, ISBN 0471207543, 2002.

           J. Datta, B. Karley, J. Lane, and J. Norwood, DSP Filter Cookbook,
           Prompt, 2000.Updated!

           Y. Dote, Servo Motor and Motion Control Using Digital Signal
           Processors, Prentice Hall, NJ, 1990.

           Mohamed El-Sharkawy, Digital Signal Processing Applications with
           Motorola's 56002 Processor, Prentice Hall, Upper Sadle River, NJ,
           ISBN 0-13-569476-0, 1996.

           P. Embree, C Algorithms for Real-Time DSP, Prentice Hall,

           Dale Grover and John R. Deller, Digital Signal Processing and the
           Microcontroller, Prentice Hall, NJ, ISBN 0-13-081348-6, 1999.

           J. L. Hennessy and D. A. Patterson, Computer Architecture: A
           Quantitative Approach, Morgan Kaufmann Publishers, San Mateo, CA,
           1990, ISBN 1-55-860329-8.

           R. Higgins, Digital Signal Processing in VLSI, Prentice Hall, NJ,
           1990. ISBN 0-13-212887-X.

             It's a good primer on DSP theory and practice (albeit slightly
             out of date regarding today's chips), aimed at both analog
             engineers entering the digital realm and digital engineers
             dealing with real-world problems. Its hardware orientation is
             towards components and the Analog Devices ADSP-2100 series (just
             emerging at the time of publication), but there is much in it of
             fundamental tutorial value. []

           B. A. Hutchins and T. W. Parks, A Digital Signal Processing
           Laboratory Using the TMS320C25, Prentice Hall, NJ, 1990.

           D. L. Jones and T. W. Parks, A Digital Signal Processing
           Laboratory using the TMS32010, Prentice Hall, NJ, 1988.

           N. Kehtarnavaz , Real-Time Digital Signal Processing : Based on
           the TMS320C6000, Elsevier, 2004.Updated!

           S. M. Kuo and B. H. Lee, Real-Time Digital Signal Processing:
           Implementations, Application and Experiments with the TMS320C55x,
           Wiley, 2001.Updated!

           P. Lapsley, J. Bier, A. Shoham, and E. A. Lee, DSP Processor
           Fundamentals: Architectures and Features, Berkeley Design
           Technology, Inc., Fremont, CA, 1996.

           Vijay Madisetti, VLSI Digital Signal Processors: An Introduction
           to Rapid Prototyping and Design Synthesis, IEEE
           Press/Butterworth-Heinemann, 1995.

           Henrik V. Sorensen and Jianping Chen, A Digital Signal Processing
           Laboratory Using the TMS320C30, Prentice Hall, Upper Sadle River,
           NJ, ISBN 0-13-741828-0, 1997.

           Steven A. Tretter, Communication system design using DSP
           algorithms: with laboratory experiments for the TMS320C30, Plenum
           Press, Norwell, MA, ISBN 0306450321, 1995.

           S. A. Tretter, Communication system design using DSP algorithms:
           with laboratory experiments for the TMS320C6700, Kluwer Academic
           Publishers, 2003.Updated!


  Q1.1.7: Free online books

   Updated 2/11/02

    The Scientist and Engineer's Guide to Digital Signal Processing

           This introductory DSP book is available for free download at
  Topics covered in this 640-page book
           include: convolution, digital filters, audio processing, data
           compression, and Fourier, Laplace, and z transforms.

    Introduction to Statistical Signal Processing     

             This site provides the current version of the book Introduction
           to Statistical Signal Processing by R.M. Gray and L.D. Davisson in
           the Adobe portable document format (PDF). This format can be read
           from a Web browser by using the Acrobat Reader helper application,
           which is available at Adobe.

    Yehar's Digital Sound Processing Tutorial for the Braindead

           This is a comprehensive entry-level tutorial for anybody
           interested in processing of digital sound. Warning: This reflects
           my at-the-time knowledge, and is not always 100 % correct. 
           Yehar's Digital Sound Processing Tutorial for the Braindead or 


Q1.2: DSP training

   Updated 03/15/2007

  Q1.2.1: Courses on DSP

           DSP training is available from the following sources:

             1. DSP Made Simple: basic DSP theory and algorithms. Web:

             2. DSP without Tears: Z Domain Technologies covers theory and
                applications. Web:

             3. DSP Workshop: Dr. Bill Gordon, who is located in Austin,
                gives them. He is a former Texas Instruments employee. He can
                be reached at Web:

             4. Berkeley Design Technology Inc.: BDTI is a DSP consulting and
                independent DSP processor/tools evaluation firm in Berkeley,
                CA. Web:

             5. Cysip: Courses in DSP, Speech/Image Processing, and
                Communications. Web:

           [Brian Evans,; Andreas Spanias,


  Q1.2.2: On-Line courses on DSP

   Updated Mar 1, 2003

           Prof. Brian Evans: Real-time DSP course online at

           TechOnLine ( Courses on various

           Engineering Productivity Tools Ltd.
           ( Technical notes on various
           topics (FFT, Sensor arrays, etc.).

           BORES Signal Processing DSP course.
           ( Introduction
           courses to DSP.

           TI has a centralized training site where DSP designers can access
           all of TI's training webcasts, workshops and seminars. It can be
           found at It covers TI DSP,
           tools, software and applications. Analog training is also

           TI also has a site designed to help new DSP users (primarily new
           TI DSP users) get started with their designs:


Q1.3: Where can I get free software for general DSP?

   Updated 05/06/02

           The packages listed below are mostly not oriented for use with a
           specific DSP processor. See the later sections in the FAQ for
           software relevant to a particular programmable DSP chip.

  Q1.3.1: DSP Packages for MATLAB

   Updated 05/06/02

           FOR STUDENTS IN THE US AND CANADA: The MATLAB Student Version,
           available from The MathWorks, is a full-featured version of MATLAB
           and includes Simulink (with model sizes up to 300 blocks) and the
           Symbolic Math toolbox. It is available for Windows and Linux. See

    MATLAB user's group public domain extensions to MATLAB

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

   To obtain:
           Some MATLAB tools are available on the web at
 , or via anonymous ftp at

    Wavelet Tools

           There is a set of Wavelet Tools available for MATLAB, see Section
           2.9 of this FAQ.

    Communications Toolbox

           We have developed a "Communications Toolbox" based on the MATLAB
           code for classroom use. It is used by students taking a 4th year
           communications course where the emphasis is on digital coding of
           waveforms and on digital data transmission systems. The MATLAB
           code that constitutes this toolbox has been in use for over two

           There are close to 100 "M-files" that implement various functions.
           Some of them are quite simple and are based on existing MATLAB
           M-files. But a great many of them has been created from scratch.
           We also prepared a lab manual (in TEX format) for the 7
           simulations which the students perform as the lab component of
           this course. The topics of these simulations are:

              * Probability Theory
              * Random Processes
              * Quantization
              * Binary Signalling Formats
              * Detection
              * Digital Modulation
              * Digital Communication

   To obtain:
           M-files (MATLAB 4.2) is available in:

           The complete manual in Postscript format is available at
           [Mehmet Zeytinoglu,]

    Digital Filter Package (DFP)

           The Digital Filter Package is a GUI front-end to digital filter
           design with MATLAB. DFP extends the basic digital filter design
           functionality of MATLAB in two important ways:

              * Filter coefficients can be quantized. This feature is
                important if the filter is to be implemented on a fixed-point
                DSP processor.
              * DFP generates assembly-language code for the designed digital
                filter. In the current release of DFP, this option is only
                available for the Motorola DSP56xxx family.

   For more information:

    Implementations of the CELP Federal Standard 1016 Speech Coder and LPC-10e
    Speech Coder

   To obtain:
  [Andreas Spanias,


  Q1.3.2: DSP Packages for Mathematica

           Updated 04/03/01

             Note: FOR STUDENTS: A student version of Mathematica is
             available. It includes a copy of the reference manual. The only
             drawbacks to the student version are that the floating point
             coprocessor is disabled and that upgrades cannot be ordered.

    Signal Processing Packages (SPP) and Notebooks, Version 2.9.5

                        Freely distributable 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, number
                        theoretic operations (Bezout numbers, Smith Form
                        decompositions, and matrix factors), and multirate
                        operations (graphical design of 2-d decimators).
                        Accompanying the SPPs 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

                To obtain:
                        Contact Brian Evans at, or see

                        Version 3.0 of the SPP (an "overhauled version of
                        2.x" according to the author) is available
                        commercially in two products: the Signals and Systems
                        Pack from Wolfram Research, and a book entitled
                        "Mathematica Notebooks to Accompany Contemporary
                        Linear Systems Using MATLAB" from PWS Publishing


                        Dr. Roberto H. Bamberger reports: I have developed a
                        series of about 30 Lectures that I use for EE341
                        (Analog Communication Systems) here at Washington
                        State University. They use the SPP by Brian Evans.
                        They discuss many concepts associated with linear
                        systems theory. Topics covered include LTI system
                        theory, convolution, AM, FM, PM modulation and
                        demodulation, and the sampling theorem. NOTE: All
                        Notebooks were developed under NeXTSTEP 3.1 using
                        Mathematica 2.2. I make no guarantees about the
                        graphics being able to be rendered on anything other
                        than a NeXT.

    Control Systems Analysis Package (COSYPAK) and Notebooks

                        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).

                For more information:
                        Contact Dr. Sreenath,

    Other Mathematica DSP Notebooks

                        The following Mathematica notebooks can be ftped from

                           * pub/malcolm/FilterDesign.math IIR Filter Design
                             (continuous and discrete)
                           * pub/malcolm/ear.math.Z Implementation of Lyon's
                             Cochlear Model
                           * pub/malcolm/Gammatone.math Implementation of
                             Gammatone Cochlear Model. Printed copies (with
                             floppies) are available from the Apple library
                             ( Pointers to the
                             notebooks are available from Malcolm Slaney's
                             homepage at

                        The following Mathematica notebooks (from Julius
                        Smith, can be ftped from

                           * pub/DSP/Tutorials/ Generalized
                             Hamming windows
                           * pub/DSP/Tutorials/ The Kaiser window
                           * pub/DSP/Tutorials/ 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


  Q1.3.3: Other DSP Libraries

           Updated 05/06/02

    Audio File I/O Routines

                        The Audio File Signal Processing (AFsp) package is a
                        library of routines for reading and writing audio
                        files of various formats. It also provides utility
                        programs for comparing audio files (speech activity
                        factor, SNR); coping, combining, concatenating, and
                        changing the format of audio files; resampling
                        (arbitrary sample rate conversion); filtering audio
                        files (including ITU-T filters); and generating noise
                        / tones. These routines are freely distributable
                        under a license similar to the GNU license. They were
                        written by Prof. Peter Kabal of the
                        Telecommunications and Signal Processing Library at
                        McGill University.

                To obtain:
                        The kit is located at:

                For more information:
                        [Brian Evans,]

    FFTW ("Fastest Fourier Transform in the West")

                        FFTW, a fast C FFT library, along with benchmarks
                        comparing the speed and accuracy of many public
                        domain FFTs on a variety of platforms.

                To obtain:

                For more information:

    Intel Signal Processing Library

                        The Intel Signal Processing Library provides a set of
                        optimized C functions that implement typical signal
                        processing operations on Intel processors.

                To obtain:

    ISIP Automatic Speech Recognition System

                        Source code for a public domain automatic speech
                        recognition system.

                To obtain:

    ISIP Foundation Classes

                        A large C++ class library for use in signal
                        processing research. Includes classes for file I/O,
                        vector and matrix operations, signal processing,
                        pattern recognition, and automatic speech

                To obtain:

    Linear Systems Toolbox for Maple

                        Public domain extension to Maple.

                To obtain:

                For more information:
                        Contact Tony Richardson,

    Signal Processing using C++ (SPUC)

                        Free C++ classes for DSP & digital communications
                        simulation and modeling. Includes:

                           * Basic building blocks such as fixed bit width
                             integer classes, pure-delay blocks, Gaussian and
                             random noise, etc.
                           * DSP building blocks such as FIR, IIR, Allpass,
                             Running Average, Lagrange interpolation filters,
                             NCOs (numerically controlled oscillators),
                             Cordic rotator.
                           * Several communications functions such as timing,
                             phase and frequency discriminators for BPSK/QPSK
                             signals and raised-cosine type FIR filter

                To obtain:

                For more information:

    Vector/Signal/Image Processing Library (VSIPL)

                        VSIPL is an API and library for vector, signal, and
                        image processing.

                To obtain:


  Q1.3.4: DSP Software

           Updated 10/18/99

    AudioFile System

                        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

                To obtain:
                        AudioFile is distributed in source form, with a
                        copyright allowing unrestricted use for any purpose
                        except sale (see the Copyright notice).

                        The kit is located in the at:


                        A sample kit of sound-bites is available as:

                For more information:
               is a mailing list for discussions of
                        AudioFile. Send mail to to be
                        added to this list. [Larry Stewart,

    VisiQuest (previously known as Khoros Pro)

                        Visual programming interface for image and video
                        processing. See the UseNet group
                        comp.soft-sys.khoros. VisiQuest is a commercial
                        product, but free licenses are available to students
                        using the product in a profit-free manner. For more
                        information, see

                        A variety of Unix platforms, Windows 2000 and Windows
                        XP, Mac OS X. (Note that the native Windows versions
                        are scheduled for release in January 2005.)

                To obtain:
                        VisiQuest can be obtained from the AccuSoft website:

    MathViews, WaveXplorer, MathXplorer

                        MathViews for Windows/32 - Math Software for Windows
                        3.1 (version 2.1 only) and Windows 95/NT. Current
                        version is 2.21. "MathViews for Windows/32 is MATLAB
                        look-alike. It has a full set of linear algebra and
                        signal processing functionality. MathViews is highly
                        compatible with the MATLAB language"

                        WaveXplorer for Windows 95/NT: version 2.21.
                        "Interactive waveform editor (based on the
                        computational engine of MathViews)"

                        MathXplorer, MathViews ActiveX control: version 2.21.
                        "MathXplorer provides easy access to the MathViews
                        computational engine that can be embedded in MS
                        Excel, Visual Basic, Internet Explorer, etc."

                        Author: Dr. Shalom Halevy,,
                        PO BOX 22564, San Diego, CA 92192 (619) 552-9031 USA

                To obtain:
               No sources. Shareware
                        version available.

    PC Convolution

                        P.C. convolution is a educational software package
                        that graphically demonstrates the convolution
                        operation. It runs on IBM PC type computers using DOS
                        4.0 or later. It is currently being used in schools
                        of Mathematics, Electrical Engineering, Earth
                        Sciences, Aeronautics, Astronomy, Geophysics, and
                        Experimental Psychology.

                        The current version of this software demonstrates
                        continuous time convolution, discrete time, and
                        circular convolution along with cross-correlation.

                To obtain:
                        instructors may obtain a free, fully operational
                        version by contacting Dr. Kurt Kosbar at the address
                        listed below.

                           Dr. Kurt Kosbar
                           117 Electrical Engineering Building
                           University of Missouri - Rolla
                           Rolla, Missouri, USA 65401, phone: (573) 341-4894


                        Ptolemy is an object oriented framework for the
                        specification, simulation, and rapid prototyping of
                        systems. From a flow graph description, Ptolemy can
                        generate both C code and DSP assembly code for rapid
                        prototyping. Code generation is not yet complete and
                        is included in the current release for demonstration
                        purposes only.

                        Ptolemy is available for Solaris, HPUX, Digital Unix,
                        Linux, and Windows NT.

                To Obtain:
                        Ptolemy is available via anonymous ftp. Get the file:
               and follow
                        the instructions.

                        Organizations without Internet access can obtain
                        Ptolemy, without support, from ILP. This is often a
                        more stable, less featured version than is available
                        by FTP.

                           EECS/ERL Industrial Liaison Program Office
                           Software Distribution
                           205 Cory Hall
                           University of California, Berkeley
                           Berkeley, CA 94720
                           (510) 643-6687

                        This includes printed documentation, including
                        installation instructions, a user's guide, and manual
                        pages. A handling fee will be charged.

                For more information about Ptolemy and its successor, Ptolemy
                        See and the
                        comp.soft-sys.ptolemy Usenet newsgroup.

    SANTIS (now Dataplore)

                        SANTIS is a tool for Signal ANalysis and TIme Series
                        processing. All operations can be executed from a
                        mouse-supported graphical user interface. It contains
                        standard facilities for signal processing as well as
                        advanced features like wavelet techniques and methods
                        of nonlinear dynamics.

                        Supported systems include Microsoft Windows, Linux,
                        Solaris, and SGI Irix.

                To obtain:
                        You can get the software and more information from
                        the WWW page [Ralf
                        Vandenhouten, vanni@Physiology.RWTH-Aachen.DE]


                        ScopeDSP is a time and frequency signal processing
                        tool for Windows 95/NT. It can read and or write real
                        or complex, time or frequency sampled data in a
                        variety of file formats. It can generate various
                        types of time signals, manipulate data, and transform
                        between time and frequency domains. Shareware with a
                        60-day test period.

                To obtain:


                        Sfront is a compiler for Structured Audio, the audio
                        signal processing language that is a part of the
                        ISO/IEC MPEG 4 Audio standard. The output of the
                        compiler is a C program, that when compiled and
                        executed generates the audio, with many audio input,
                        audio output, and control options, including
                        real-time interactive and audio streaming support for
                        some OS's. The website also includes an online book
                        for learning how to program in Structured Audio, and
                        a reference manual that describes how to extend
                        sfront and embed it in applications.

                        The compiler is written in strict ANSI C, and runs on
                        most UNIX systems as well as MS Windows.

                To obtain:
                        Sfront is distributed under the GNU public license,
                        and is available for free download at the website:


                        Shorten is a compressor/coder for waveform files. It
                        supports both lossless coding and lossy coding down
                        to three bits per sample. It operates using a linear
                        predictor and Huffman coding the prediction residual
                        using Rice codes. A technical report shows that this
                        simple scheme is both fast and near optimal. Data
                        formats supported are RIFF WAVE plus signed and
                        unsigned values at 8 or 16 bits per sample, ulaw,
                        alaw and multiple interleaved channels. For lossless
                        compression of speech files recorded using 16 bits at
                        16 kHz the compression ratio is typically 2:1. CD
                        audio (44.1 kHz, 16 bit stereo) is near transparant
                        at 4:1 or 5:1 lossy compression.

                        The command line version compiles on most UNIX
                        platforms. A version is available for MS Windows/NT.

                To obtain:
               points to all
                        versions. [Tony Robinson,]


  Q1.3.5: Text to Speech Conversion Software

           Updated 1/7/97

                        Free (but not public domain) text to speech
                        conversion software is available via anonymous ftp
                        from 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,]

                        A public domain version of the same Naval Research
                        Lab text to phoneme rules can be obtained from:


                        The comp.speech FTP site includes a speech synthesis
                        directory at
                        The main package is "rsynth" which is a complete text
                        to speech synthesis system. Several component
                        packages are also present. "textnorm" converts
                        non-words such as digit strings into words (e.g. 1000
                        to ONE THOUSAND). "english2phoneme" does some of the
                        same but its main functionality is to guess an
                        appropriate phoneme sequence for each word. "klatt"
                        takes a parametric form that describes each phoneme
                        and converts it to a waveform. Other packages exist
                        in the same directory to edit and visualise the klatt
                        parameters. [Tony Robinson,]


  Q1.3.6: Filter Design Software

           Updated Sep 9 2004

              * There are many filter design programs available via anonymous
                FTP or by HTTP. The following are summarized here and
                discussed in greater detail below:

                   * August 1992 IEEE Trans. on Signal Processing: METEOR FIR
                     filter design program.
                   * DFiltFIR and DFiltInt FIR filter design program.
                   * Netlib IIR filter design.
                   * IEEE Press "Programs for Digital Signal Processing".
                   * Tod Schuck's near-optimal Kaiser-Bessel program.
                   * Brian Evans' and Niranjan Damera-Venkata's packages for
                     Matlab and Mathematica.
                   * ScopeFIR.
                   * FilterExpress.
                   * Charles Poynton's filter design resource page.
                   * Juhana Kouhia's hotlist.
                   * Alex Matulich's recipes for compiling 2-pole digital

              * The August 92 issue of IEEE Transactions on Signal Processing
                includes a paper entitled "METEOR: A Constraint-Based FIR
                Filter Design Program" by Kenneth Steiglitz, Thomas W. Parks
                and James F. Kaiser. The authors describe an FIR design
                program which allows specification of the target frequency
                response characteristics in a fairly generalized and flexible
                way. As well as designing filters, the program can optimize
                filter lengths and push band limits.

                The source for the programs (meteor.p, form.p, meteor.c, and
                form.c) and the METEOR paper as a postscript file may be
                found at http://www.
                The programs were originally written in Pascal and then
                evidentally run through p2c to produce the C versions; all
                the necessary Pascal library stuff is included in the C code
                and they built error-free out of the box for me on an SGI

                There is no manual. The paper includes instructions on
                running the programs. [Steve Clift,]

                Weimin Liu has created a Windows 95 interface to the Meteor
                program, which can be downloaded from

              * Other free filter design packages are DFiltFIR and DFiltInt.
                DFiltFIR designs minimax approximation FIR filters. It uses
                the algorithm developed by McClelland and Parks and
                incorporates constraints on the response as proposed by
                Grenez. DFiltInt designs minimum mean-square error FIR
                interpolating filters. The design specification is in terms
                of a tabulated power spectrum model for the input signal.

                The packages are available from
                or directly via anonymous ftp from

                Another package, libtsp, is a library of C-language routines
                for signal processing. The package is available from
                or directly via anonymous ftp from
       [Peter Kabal,

              * 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.,
       as the file netlib/cephes/ellf.shar.Z.
                By email to the request message
                text is `send ellf from cephes'. The URL is
       [Stephen Moshier,

              * The Fortran source code from the IEEE Press book "Programs
                For Digital Signal Processing" is available by anonymous ftp
                from or
                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. There is also a C/C++
                version of the McClellan-Parks-Rabiner FIR filter design
                program available from

                This program was created and tested using Borland C++ 2.0.
                This requires a pretty reasonable C++ compiler - it is
                reported that QuickC (not C++) won't do it. [Witold Waldman,
                from Charles Owen at; also Andrew

              * I have developed a MATLAB (vers 4.0 for Windows) program that
                allows for the frequency domain design of the "near optimal"
                Kaiser-Bessel window. The program is based upon the three
                closed form equations developed by Kaiser and Schafer in 1981
                that allow for the specification of the time domain window
                length, and the frequency domain mainlobe width and relative
                sidelobe amplitude. For signal processing applications where
                the spectral content of the windowing function is critical so
                as not to mask adjacent spectra such as radar signal
                processing applications where a weak target return adjacent
                to a strong target return could be easily masked by a
                windowing function that resolves poorly in frequency; this
                program allows complete frequency domain specification of the
                spectral characteristics of the windowing function. The
                current version of this program allows for the user to
                specify the two frequency domain parameters of mainlobe width
                and relative sidelobe amplitude and lets the window length
                fall out as the dependent variable. The program is easily
                modified to allow for any two parameters to be selected and
                allowing the third to be determined as a result.

                This program will output to an ASCII file the window
                coefficients that can be easily dumped to an EPROM or
                included in a program. It also generates both time and
                frequency domain graphs so that the user can visually verify
                the widow record length and spectral content. I will gladly
                provide any interested parties with my MATLAB code.

                   Tod M. Schuck
                   Lockheed Martin NE&SS
                   Moorestown, NJ 08060
                   e-mail: tod.m.schuck(no spam)

              * Filter Optimization Packages for Matlab and Mathematica,
                version 1.1 by Brian L. Evans and Niranjan Damera-Venkata,
                Dept. of ECE, The University of Texas at Austin. Available

                We have released a set of Matlab packages to optimize the
                following characteristics of analog filter designs

                  1. magnitude response
                  2. linear phase in the passband
                  3. peak overshoot in the step response
                  4. quality factors (Q)

                subject to constraints on the same characteristics. The
                Matlab packages take about 10 seconds for fourth-order
                filters and 3 minutes for eighth-order filters to run on a
                167-MHz Sun Ultra-2 workstation.

                We use the symbolic mathematics environment Mathematica to
                describe the constrained non-linear optimization problem
                formally, derive the gradients of the cost function and
                constraints, and synthesize the Matlab code to perform the
                optimization. In the public release, we provide the Matlab to
                optimize analog IIR filters of fourth, sixth, and eighth
                orders. Using the Mathematica formulation, designers can add
                new measures and constraints, such as capacitance spread for
                integrated circuit layout, and regenerate the Matlab code.

                We describe the framework in [1]. An earlier version of the
                framework is described in [2]. We plan to extend this
                framework to digital IIR filters.

                [1] N. Damera-Venkata, B. L. Evans, M. D. Lutovac, and D. V.
                Tosic, Joint Optimization of Multiple Behavioral and
                Implementation Properties of Analog Filter Designs, Proc.
                IEEE Int. Sym. on Circuits and Systems, Monterey, CA, May 31
                - Jun. 3, 1998, vol. 6, pp. 286-289.

                [2] B. L. Evans, D. R. Firth, K. D. White, and E. A. Lee,
                Automatic Generation of Programs That Jointly Optimize
                Characteristics of Analog Filter Designs, Proc. of European
                Conf. on Circuit Theory and Design, Istanbul, Turkey, August
                27-31, 1995, pp. 1047-1050.

                [Brian Evans,]

              * ScopeFIR is a FIR filter design tool for Windows 95/NT which
                designs complex FIR filters using the Parks-McClellan
                algorithm or windowing. It can then mix, scale, quantize, and
                edit the FIR coefficients. It creates a wide variety of
                impulse and frequency response plots, and supports many data
                file formats, including TI assembly and ADI PM. Shareware
                with a 60-day trial period, available from

                [Grant Griffin,]

              * FilterExpress is a free filter synthesis tool for Windows. It
                supports the design and analysis of IIR, FIR and multirate
                FIR filters. It is available for download from

              * DSP Design Performance provides Java applets generating
                different filters. The applets can be found at

              * Charles Poynton has an extensive list of hot-links to filter
                design resources on the web at

              * Juhana Kouhia has an extensive list of links at

              * Alex Matulich has compiled recipes (step by step
                instructions) for coding three kinds of 2-pole digital
                filters, both low-pass and high-pass, complete with
                correction factors to ensure that the 3 dB cutoff frequency
                stays where you put it when you cascade filters of the same
                type together.

                Alex has made these recipes available here:

                The recipes cover Butterworth, Critically-Damped, and Bessel
                filters. Alex also includes test results; i.e., plots of
                actual frequency response and step-function temporal response
                for each filter.


  Q1.3.7: Audio effects

   Updated 2/11/02

    Harmony Central

           Harmony Central publishes some of the source code for its
           synthesis and audio processing program at
  The code may
           be used in public releases, but Harmony Central asks you to credit
           the author and possibly make the product available for free or
           publish any modified code.

    Music-DSP Source Code Archive

  is a collection of data gathered for the music dsp
           community. It includes code for wavetable synthesis, dithering,
           guitar feedback, and many other effects and algorithms.


   [Steve Horne,]


                     Previous section (0) Next section (2)

User Contributions:

Comment about this article, ask questions, or add new information about this topic:

Part1 - Part2 - Part3 - Part4

[ Usenet FAQs | Web FAQs | Documents | RFC Index ]

Send corrections/additions to the FAQ Maintainer: (Seth Benton)

Last Update March 27 2014 @ 02:11 PM