Path: senator-bedfellow.mit.edu!bloom-beacon.mit.edu!171.67.22.44.MISMATCH!newshub.stanford.edu!postnews.google.com!news2.google.com!border1.nntp.dca.giganews.com!nntp.giganews.com!local01.nntp.dca.giganews.com!nntp.megapath.net!news.megapath.net.POSTED!not-for-mail
NNTP-Posting-Date: Wed, 11 Apr 2007 13:15:48 -0500
From: [email protected] (Seth Benton)
Newsgroups: comp.dsp,comp.answers,news.answers
Subject: comp.dsp FAQ [1 of 4]
Supersedes: <[email protected]>
Followup-To: poster
Date: Wed, 11 Apr 2007 18:16:50 +0000 (UTC)
Organization: Berkeley Design Technology, Inc.
Sender: [email protected]
Approved: [email protected]
Distribution: world
Expires: 25 May 2007 18:16:44 GMT
Message-ID: <[email protected]>
Summary: This is a periodic posting to comp.dsp that gives information
        on frequently asked questions asked in this newsgroup.
Lines: 1545
NNTP-Posting-Host: 66.80.7.58
X-Trace: sv3-vLEKKHMn+F+6Pq58T67cPom0Jwm/sP+5DD5NYB1TaPI8VE0EPQoeu8KfkvgutHluGkSkaZ/MHzLQXmn!T0NtgAVAEhZ6ZiKKiUrwyBCLU1amFy8Sl5gZVgaBtFBsC61Z69hInFBe5kpBkWlzww==
X-Complaints-To: [email protected]
X-DMCA-Complaints-To: [email protected]
X-Abuse-and-DMCA-Info: Please be sure to forward a copy of ALL headers
X-Abuse-and-DMCA-Info: Otherwise we will be unable to process your complaint properly
X-Postfilter: 1.3.34
Xref: senator-bedfellow.mit.edu comp.dsp:217374 comp.answers:64743 news.answers:313543

Archive-name: dsp-faq/part1
Last-modified: Wed Apr 11 2007
URL: http://www.bdti.com/faq/

 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 http://www.bdti.com.

  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.3 DISCLAIMER OF WARRANTY
          0.4 Redistribution permission
          0.5 Note on the list of manufacturers, addresses, and telephone
          numbers

 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)
                       standards?

                       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
                       information?

                       2.9.2 What are some good books and papers on
                       wavelets?

                       2.9.3 Where can I get some software for wavelets?

          2.10 How do I calculate the coefficients for a Hilbert
          transformer?
          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
                       DSP56000?

                       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)
                       processor?

          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
                       DSPs?

                       3.6.3 Where can I get a free C compiler for the TI
                       TMS320C3x/4x?

                       3.6.4 Where can I get a free assembler for the TI
                       TMS320C3x/4x?

                       3.6.5 Where can I get a free simulator for the TI
                       TMS320C3x/4x?

                       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
          groups:

             * http://www.dsprelated.com/

          Other relevant links:

             * http://www.dspdesignline.com/
             * http://www.insidedsp.com
             * http://www.eg3.com/dsp/index.htm,
             * http://www.eetoolbox.com/dsp/index.htm
             * http://www.dspguru.com

Q0.2: Versions of the comp.dsp FAQ

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

          Click on http://www.bdti.com/faq/dsp_faq.zip to download a
          compressed HTML version of the FAQ.

          Click on http://www.bdti.com/faq/dsp_faq.asc.zip 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:
          http://www.bdti.com/faq

Q0.3: DISCLAIMER OF WARRANTY

          BERKELEY DESIGN TECHNOLOGY, INC. AND THE INDIVIDUAL CONTRIBUTORS
          TO THE FAQ BY NECESSITY ASSUME NO RESPONSIBILITY FOR ACCURACY,
          ERRORS OR OMISSIONS, OR FOR THE USES MADE OF ANY INFORMATION
          AND/OR MATERIAL CONTAINED HEREIN OR ANY DECISION BASED ON SUCH
          USE. NO WARRANTIES ARE MADE, EXPRESS OR IMPLIED, WITH REGARD TO
          THE CONTENTS OF THIS WORK, ITS MERCHANTABILITY, OR FITNESS FOR A
          PARTICULAR PURPOSE. BERKELEY DESIGN TECHNOLOGY, INC. AND THE
          INDIVIDUAL CONTRIBUTORS SHALL NOT BE RESPONSIBLE FOR ANY DIRECT,
          INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES ARISING
          OUT OF THE USE AND/OR RELIANCE ON THE CONTENTS OF THIS WORK.

          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.

          Phew.

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

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 @mvt.ie=""> 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
          0-13-214635-5.

          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,
            [email protected]]

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

          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 http://www.nr.com.

          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
          0-13-004029-0

    ----------------------------------------------------------------------

 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
          0-86-341143-6.

          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
            Evans, [email protected]]

            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.
          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, [email protected]]

          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,
            [email protected], and Brian Evans,
            [email protected]]

    ----------------------------------------------------------------------

 Q1.1.5: Digital audio effects processing

  Books:

          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
          0-13-039115-8.

          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
          0-02-873100-X.

          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, [email protected]]

          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,
            [email protected]]

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

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

          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,
            [email protected]]

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

            Recommended. [Quinn Jensen, [email protected]]

          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
          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, [email protected]]

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

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

    ----------------------------------------------------------------------

 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,
          1999.

          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,
          1995.Updated!

          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. [[email protected]]

          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
          http://www.dspguide.com/. 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
          http://www.iki.fi./o/dsp

    ----------------------------------------------------------------------

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:
               http://www.bessercourse.com/

            2. DSP without Tears: Z Domain Technologies covers theory and
               applications. Web: http://www.dspwithouttears.com/

            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 [email protected]. Web: http://www.dsp-workshops.com/

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

            5. Cysip: Courses in DSP, Speech/Image Processing, and
               Communications. Web: http://www.cysip.com/

          [Brian Evans, [email protected]; Andreas Spanias,
          [email protected]]

    ----------------------------------------------------------------------

 Q1.2.2: On-Line courses on DSP

  Updated Mar 1, 2003

          Prof. Brian Evans: Real-time DSP course online at
          http://www.ece.utexas.edu/~bevans/courses/realtime/.

          TechOnLine (http://www.techonline.com/): Courses on various
          topics.

          Engineering Productivity Tools Ltd.
          (http://www.eptools.com/tn/index.htm): Technical notes on various
          topics (FFT, Sensor arrays, etc.).

          BORES Signal Processing DSP course.
          (http://www.bores.com/courses/intro/index.htm): 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 www.dspvillage.ti.com/trainingpr2. It covers TI DSP,
          tools, software and applications. Analog training is also
          included.

          TI also has a site designed to help new DSP users (primarily new
          TI DSP users) get started with their designs:
          http://www.dspvillage.ti.com/cocostu.

    ----------------------------------------------------------------------

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
          http://www.mathworks.com/products/studentversion/.

   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
          subscribe to the newsletter, send mail to [email protected].
          To make submissions to the digest, please send to
          [email protected] with a subject: "DIG" and description.

  To obtain:
          Some MATLAB tools are available on the web at
          http://www.mathworks.com, or via anonymous ftp at
          ftp://ftp.mathworks.com/.

   Wavelet Tools

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

   Communications Toolbox

  Description:
          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
          years.

          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:
          ftp://ftp.mathworks.com/pub/contrib/v4/misc/comm_tbx/

          The complete manual in Postscript format is available at
          ftp://ftp.mathworks.com/pub/contrib/v4/misc/comm_tbx/comm_tbx.manual.ps.
          [Mehmet Zeytinoglu, [email protected]]

   Digital Filter Package (DFP)

  Description:
          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:
          http://www.ee.ryerson.ca:8080/~mzeytin/dfp/index.html. [Mehmet
          Zeytinoglu, [email protected]]

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

  To obtain:
          http://www.cysip.com/dsplinks.html. [Andreas Spanias,
          [email protected]]

    ----------------------------------------------------------------------

 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

               Description:
                       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
                       animation.

               To obtain:
                       Contact Brian Evans at [email protected], or see
                       http://www.ece.utexas.edu/~bevans/projects/symbolic/spp.html.

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

   EE341

               Description:
                       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

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

               For more information:
                       Contact Dr. Sreenath, [email protected].

   Other Mathematica DSP Notebooks

                       The following Mathematica notebooks can be ftped from
                       worldserver.com:

                          * 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
                            ([email protected]). Pointers to the
                            notebooks are available from Malcolm Slaney's
                            homepage at
                            http://www.interval.com/~malcolm/pubs.html.

                       The following Mathematica notebooks (from Julius
                       Smith, [email protected]) can be ftped from
                       ccrma-ftp.stanford.edu:

                          * pub/DSP/Tutorials/GenHamming.ma.Z Generalized
                            Hamming windows
                          * pub/DSP/Tutorials/Kaiser.ma.Z The Kaiser window
                          * pub/DSP/Tutorials/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.3.3: Other DSP Libraries

          Updated 05/06/02

   Audio File I/O Routines

               Description:
                       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:
                       ftp://ftp.tsp.ece.mcgill.ca/TSP/AFsp/

               For more information:
                       See
                       http://www.tsp.ece.mcgill.ca/Docs/Software/AFsp/AFsp.html
                       [Brian Evans, [email protected]]

   FFTW ("Fastest Fourier Transform in the West")

               Description:
                       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:
                       http://www.fftw.org

               For more information:
                       [email protected].

   Intel Signal Processing Library

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

               To obtain:
                       http://developer.intel.com/software/products/perflib/spl/index.htm

   ISIP Automatic Speech Recognition System

               Description:
                       Source code for a public domain automatic speech
                       recognition system.

               To obtain:
                       http://www.isip.msstate.edu/projects/speech/software/asr/index.html

   ISIP Foundation Classes

               Description:
                       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
                       recognition.

               To obtain:
                       http://www.isip.msstate.edu/projects/speech/software/documentation/class/index.html

   Linear Systems Toolbox for Maple

               Description:
                       Public domain extension to Maple.

               To obtain:
                       ftp://ftp.egr.duke.edu/pub/maple/linsys1.2.tar.Z

               For more information:
                       Contact Tony Richardson, [email protected].

   Signal Processing using C++ (SPUC)

               Description:
                       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
                            functions.

               To obtain:
                       http://spuc.sourceforge.net/

               For more information:
                       [email protected].

   Vector/Signal/Image Processing Library (VSIPL)

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

               To obtain:
                       http://www.vsipl.org

    ----------------------------------------------------------------------

 Q1.3.4: DSP Software

          Updated 10/18/99

   AudioFile System

               Description:
                       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.

               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:

                       ftp://crl.dec.com/pub/DEC/AF/

                       A sample kit of sound-bites is available as:
                       ftp://crl.dec.com/pub/DEC/AF/AF2R2-other.tar

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

   VisiQuest (previously known as Khoros Pro)

               Description:
                       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
                       http://www.accusoft.com/imaging/visiquest/students.asp.

               Platforms:
                       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:
                       http://www.accusoft.com/.

   MathViews, WaveXplorer, MathXplorer

               Description:
                       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, [email protected],
                       PO BOX 22564, San Diego, CA 92192 (619) 552-9031 USA
                       (Tel/FAX) http://www.mathwizards.com.

               To obtain:
                       http://www.mathwizards.com/. No sources. Shareware
                       version available.

   PC Convolution

               Description:
                       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:
                       ftp://lamarr.ee.umr.edu/pub/pcc5.zip. University
                       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
                          e-mail: [email protected]

   Ptolemy

               Description:
                       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.

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

               To Obtain:
                       Ptolemy is available via anonymous ftp. Get the file:
                       ftp://ptolemy.eecs.berkeley.edu/pub/README 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
                          email: [email protected]

                       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
               II:
                       See http://ptolemy.eecs.berkeley.edu and the
                       comp.soft-sys.ptolemy Usenet newsgroup.

   SANTIS (now Dataplore)

               Description:
                       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.

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

               To obtain:
                       You can get the software and more information from
                       the WWW page http://datan.de/dataplore/. [Ralf
                       Vandenhouten, [email protected]]

   ScopeDSP

               Description:
                       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:
                       http://www.iowegian.com/.

   Sfront

               Description:
                       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.

               Platforms:
                       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:
                       http://www.cs.berkeley.edu/~lazzaro/sa.

   Shorten

               Description:
                       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.

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

               To obtain:
                       http://www.softsound.com/Shorten.html points to all
                       versions. [Tony Robinson, [email protected]]

    ----------------------------------------------------------------------

 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 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, [email protected]]

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

                       ftp://svr-ftp.eng.cam.ac.uk/pub/comp.speech/syntheses/english2phoneme.tar.gz

                       The comp.speech FTP site includes a speech synthesis
                       directory at
                       ftp://svr-ftp.eng.cam.ac.uk/pub/comp.speech/synthesis.
                       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, [email protected]]

    ----------------------------------------------------------------------

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

             * 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. music.Princeton.edu/classes/class.html.
               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
               machine.

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

               Weimin Liu has created a Windows 95 interface to the Meteor
               program, which can be downloaded from
               http://www.nyx.net/~wliu/filter.html.

             * 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
               http://www.tsp.ece.mcgill.ca/Docs/Software/FilterDesign/FilterDesign.html
               or directly via anonymous ftp from
               ftp://ftp.tsp.ece.mcgill.ca/TSP/FilterDesign/.

               Another package, libtsp, is a library of C-language routines
               for signal processing. The package is available from
               http://www.tsp.ece.mcgill.ca/reports/Software/libtsp/libtsp.html
               or directly via anonymous ftp from
               ftp://ftp.tsp.ece.mcgill.ca/pub/libtsp/ [Peter Kabal,
               [email protected]]

             * 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.,
               netlib.bell-labs.com) as the file netlib/cephes/ellf.shar.Z.
               By email to [email protected] the request message
               text is `send ellf from cephes'. The URL is
               http://www.netlib.org. [Stephen Moshier,
               [email protected]]

             * The Fortran source code from the IEEE Press book "Programs
               For Digital Signal Processing" is available by anonymous ftp
               from ftp://soma.crl.mcmaster.ca/pub/IEEE/software/dsp.zip or
               ftp://soma.crl.mcmaster.ca/pub/IEEE/software/dsp.tar.gz. It
               includes FIR and IIR filter design software, FFT subroutines,
               interpolation programs, a coherence and cross-spectral
               estimation program, linear prediction analysis programs, and
               a frequency domain filtering program. There is also a C/C++
               version of the McClellan-Parks-Rabiner FIR filter design
               program available from
               ftp://ftp.uu.net/usenet/comp.sources.misc/volume22/fir/part01.Z

               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 [email protected]; also Andrew
               Ukrainec, [email protected]]

             * 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)@lmco.com

             * 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
               from
               http://www.ece.utexas.edu/~bevans/projects/filters/syn_filter_software.html
               .

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

                 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.
               http://www.ece.utexas.edu/~bevans/papers/1998/filter_optimization/.

               [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.
               http://ptolemy.eecs.berkeley.edu/publications/papers/95/filter_design_ecctd95/

               [Brian Evans, [email protected]]

             * 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
               http://www.iowegian.com/scopefir.htm.

               [Grant Griffin, [email protected]]

             * 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
               http://www.systolix.co.uk/swdownload.htm.

             * DSP Design Performance provides Java applets generating
               different filters. The applets can be found at
               http://www.nauticom.net/www/jdtaft.

             * Charles Poynton has an extensive list of hot-links to filter
               design resources on the web at
               http://www.inforamp.net/~poynton/Poynton-dsp.html.

             * Juhana Kouhia has an extensive list of links at
               http://www.funet.fi/~kouhia/hotlist-dsp.html.

             * 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:
               http://unicorn.us.com/alex/2polefilters.html

               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
          http://www.harmony-central.com/Computer/Programming/. 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

          Musicdsp.org 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.

          http://www.musicdsp.org/

  [Steve Horne, [email protected]]

    ----------------------------------------------------------------------

                    Previous section (0) Next section (2)