Path: senator-bedfellow.mit.edu!bloom-beacon.mit.edu!ra.nrl.navy.mil!chiapp19.algx.com!allegiance!news-out.visi.com!petbe.visi.com!news.octanews.net!green.octanews.net!news-out.octanews.net!cox.net!news-xfer.cox.net!newshub.sdsu.edu!elnk-nf2-pas!elnk-pas-nf1!newsfeed.earthlink.net!sn-xit-02!sn-xit-01!sn-post-02!sn-post-01!supernews.com!corp.supernews.com!bertha.bdti.com!not-for-mail
From: comp-dsp-faq@bdti.com (Kenton Williston)
Newsgroups: comp.dsp,comp.answers,news.answers
Subject: comp.dsp FAQ [1 of 4]
Approved: news-answers-request@MIT.Edu
Supersedes: <compdsp.1_1075850452@bdti.com>
Followup-To: poster
Date: Thu, 18 Mar 2004 18:09:22 +0000 (UTC)
Organization: Berkeley Design Technology, Inc.
Message-ID: <compdsp.1_1079633358@bdti.com>
Sender: williston@bdti.com
Distribution: world
Expires: 1 May 2004 18:09:18 GMT
Summary: This is a periodic posting to comp.dsp that gives information
         on frequently asked questions asked in this newsgroup.
X-Complaints-To: abuse@supernews.com
Lines: 1460
Xref: senator-bedfellow.mit.edu comp.dsp:155135 comp.answers:56626 news.answers:268475

Archive-name: dsp-faq/part1
Last-modified: Thu Mar 18 2004
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.

   <<<<<<<  dsp_faq.htm  Version date: Mar 18, 2004 ======= Version date:
   Mar 18, 2004 >>>>>>> 1.7

   - Kenton Williston, 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.arch.embedded FAQ
          + comp.compression FAQ
          + comp.realtime FAQ
          + comp.speech FAQ
          + sci.image.processing FAQ
          + Audio sampling FAQ

          There is an index of DSP-related mailing lists at:

          + http://www.dsprelated.com/

          Other relevant links:

          + http://weblab.research.att.com/phoaks/comp/dsp/
          + http://www.ncc.com/misc/dsp_sites.html
          + http://www.tasp.org
          + http://www.eg3.com/dsp/index.htm,
            http://www.cera2.com/dsp/index.htm, or
            http://www.eetoolbox.com/dsp/index.htm
          + http://www.dspguru.com
          + http://shoko.calarts.edu/~glmrboy/musicdsp/music-dsp.html

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      or
          http://www.bdti.com/faq/dsp_faq.tar.Z  to download a compressed
          HTML version of the FAQ.

          Click     on     http://www.bdti.com/faq/dsp_faq.asc.zip     or
          http://www.bdti.com/faq/dsp_faq.asc.tar.Z    to    download   a
          compressed ASCII version of the FAQ.

          (When  you  click  on these links, your browser should tell you
          that it can't display the files and then ask you if you want to
          download them instead. Say "yes.")

          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  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. 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.   G.   Lyons,   Understanding   Digital  Signal  Processing,
          Addison-Wesley Publishing Co., 1997, ISBN 0-201-63467-8.

          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,
     jkahrs@castor.atlas.de]

          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, bevans@ece.utexas.edu]

     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,
     jpcampb@afterlife.ncsc.mil]

          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,
     wei@vision.ece.utexas.edu, and Brian Evans, bevans@ece.utexas.edu]
     _________________________________________________________________

  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, jk87377@cc.tut.fi]

          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,
     jk87377@cc.tut.fi]

          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,
     jk87377@cc.tut.fi]

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

     Recommended. [Quinn Jensen, jensenq@qcj.icon.com]

   Forthcoming books:

   {please let us know at comp-dsp-faq@bdti.com if they are out!}

          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, jk87377@cc.tut.fi]

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

          [The  above is largely from Quinn Jensen, jensenq@qcj.icon.com;
          Juhana     Kouhia,     jk87377@cc.tut.fi;     William    Alves,
          alves@calvin.usc.edu; and Paul A Simoneau, pas1@kepler.unh.edu]
     _________________________________________________________________

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

          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.

          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. [DanShein@ix.netcom.com]

          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.

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

  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.

    Yehar's sound DSP tutorial for the braindead

          This  tutorial  is  for  people  with  "high school level" math
          knowledge,  so  you won't have to be a specialized genius to be
          able  to read this. There's actually quite a lot information in
          this  one,  but  the  best  covered  subjects  are:  filters in
          general,  FIR  and  IIR filter design, interpolation, frequency
          shifting.

          http://www.student.oulu.fi/~oniemita/DSP/INDEX.HTM

   [Steve Horne, steve@lurking.demon.co.uk]
     _________________________________________________________________

Q1.2: DSP training

   Updated 05/06/02

  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.zdt.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 dsp@io.com. 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,    bevans@ece.utexas.edu;   Andreas   Spanias,
          spanias@asu.edu]
     _________________________________________________________________

  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
          subscribe@mathworks.com.  To  make  submissions  to the digest,
          please  send  to hwilson@ua1vm.ua.edu 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.m
          anual.ps. [Mehmet Zeytinoglu, mzeytin@ee.ryerson.ca]

    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, mzeytin@ee.ryerson.ca]

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

   To obtain:
          http://www.cysip.com/dsplinks.html.      [Andreas      Spanias,
          spanias@asu.edu]

    GSM Routines

   Description:
          Chris  Stratford  has  placed  GSM-related  MATLAB code online,
          including    routines   for   GMSK   modulation   and   Viterbi
          equalization.

   To obtain:
          http://www.stratfordc.free-online.co.uk.
     _________________________________________________________________

  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   bevans@ece.utexas.edu,   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, sree@veda.esys.cwru.edu.

    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  (corp.lib@applelink.apple.com).
            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,
          jos@ccrma.stanford.edu)       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, bevans@ece.utexas.edu]

    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:
          fftw@fftw.org.

    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/documentat
          ion/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, amr@mpl.ucsd.edu.

    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:
          tony_kirke@ieee.org.

    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:
          af@crl.dec.com  is a mailing list for discussions of AudioFile.
          Send  mail  to af-request@crl.dec.com to be added to this list.
          [Larry Stewart, stewart@crl.dec.com]

    Khoros

   Description:
          Visual  programming  interface  for image and video processing.
          See the UseNet group comp.soft-sys.khoros. A free trial version
          is available.

   Platforms:
          Digital UNIX 4.0D, Red Hat Linux 4.2, Irix 6.2 and 6.3, Solaris
          2.5.1, Windows NT 4.0

   To obtain:
          Khoros is found at: http://www.khoral.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,  shalevy@mathwizards.com,  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: kk@ee.umr.edu

    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: ilpsoftware@eecs.berkeley.edu

          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,
          vanni@Physiology.RWTH-Aachen.DE]

    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, ajr@softsound.com]
     _________________________________________________________________

  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, jpcampb@afterlife.ncsc.mil]

          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/english2p
          honeme.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,
          ajr@softsound.com]
     _________________________________________________________________

  Q1.3.6: Filter Design Software

   Updated 03/30/01

     * There  are filter design programs available via anonymous FTP. 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.

     * 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, clift@mail.anacapa.net]
       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/FilterDesi
       gn.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,
       kabal@ECE.McGill.CA]

     * 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 netlib@netlib.bell-labs.com
       the  request  message  text is `send ellf from cephes'. The URL is
       http://www.netlib.org. [Stephen Moshier, moshier@world.std.com]

     * 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      mgcbo@uxa.ecn.bgu.au;      also      Andrew      Ukrainec,
       ukrainec@InfoUkes.com]

     * 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@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_soft
       ware.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_des
       ign_ecctd95/ 
       [Brian Evans, bevans@combo.ece.utexas.edu]

     * 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, grant.griffin@iowegian.com]

     * 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.
     _________________________________________________________________

  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, steve@lurking.demon.co.uk]
     _________________________________________________________________

                   Previous section (0) Next section (2)
