Discussion:
comp.dsp FAQ [1 of 4]
(too old to reply)
Seth Benton
2007-04-11 18:16:50 UTC
Permalink
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,
***@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, ***@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, ***@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,
***@vision.ece.utexas.edu, and Brian Evans,
***@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, ***@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,
***@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,
***@cc.tut.fi]

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

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

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, ***@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, ***@qcj.icon.com;
Juhana Kouhia, ***@cc.tut.fi; William Alves,
***@calvin.usc.edu; and Paul A Simoneau, ***@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.

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. [***@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.

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 ***@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, ***@ece.utexas.edu; Andreas 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 ***@mathworks.com.
To make submissions to the digest, please send to
***@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.manual.ps.
[Mehmet Zeytinoglu, ***@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, ***@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,
***@asu.edu]

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

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

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, ***@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: ***@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: ***@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, ***@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, ***@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, ***@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/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, ***@softsound.com]

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

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, ***@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/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,
***@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.bell-labs.com the request message
text is `send ellf from cephes'. The URL is
http://www.netlib.org. [Stephen 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 ***@uxa.ecn.bgu.au; also Andrew
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(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, ***@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, ***@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.

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

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

Previous section (0) Next section (2)
Seth Benton
2007-04-11 18:18:03 UTC
Permalink
Archive-name: dsp-faq/part2
Last-modified: Wed Apr 11 2007
URL: http://www.bdti.com/faq/

Previous section (1) Next section (3)

Q2: Algorithms and standards

Q2.1: Where can I get public domain algorithms for general-purpose DSP?

Updated 12/31/96

The following archives contain things such as matrix operations,
FFT's and generally useful things like that, as opposed to
complete applications.

Netlib

Netlib serves some of this software via email. Try mail to
***@ORNL.GOV with "send help" in the subject field.

To Obtain:
For Europe:

Internet: ***@nac.no
EARN/BITNET: netlib%***@norunix.bitnet
X.400: s=netlib; o=nac; c=no;
EUNET/uucp: nac!netlib

For more information:
See Jack J. Dongarra and Eric Grosse, "Distribution of
Mathematical Software Via Electronic Mail," Comm. ACM (1987)
30,403--407.

A similar collection of statistical software is available from
***@temper.stat.cmu.edu.

The symbolic algebra system REDUCE is supported by
reduce-***@rand.org.

NSWC Library

The Naval Surface Warfare Center has a library of mathematical
Fortran subroutines that may be of use. The NSWC library is a
library of general-purpose Fortran subroutines that provide a
basic computational capability in a variety of mathematical
activities. Emphasis has been placed on the transportability of
the codes. Subroutines are available in the following areas:
Elementary Operations, Geometry, Special Functions, Polynomials,
Vectors, Matrices, Large Dense Systems of Linear Equations, Banded
Matrices, Sparse Matrices, Eigenvalues and Eigenvectors, l1
Solution of Linear Equations, Least-Squares Solution of Linear
Equations, Optimization, Transforms, Approximation of Functions,
Curve Fitting, Surface Fitting, Manifold Fitting, Numerical
Integration, Integral Equations, Ordinary Differential Equations,
Partial Differential Equations

For more information:
NSWC Library of Mathematical Subroutines
Report No.: NSWC TR 90-21, January 1990
by Alfred H. Morris, Jr.

Naval Surface Warfare Center (E43)
Dahlgren, VA 22448-5000
U.S.A.

[Witold Waldman]

IEEE Press book "Programs For Digital Signal Processing"

You can get the Fortran source code from the IEEE Press book
"Programs For Digital Signal Processing." See question 1.3.6.

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

Q2.2: What are CELP and LPC? Where can I get the source for CELP and LPC?

Updated 09/10/01

CELP stands for "code excited linear prediction". LPC stands for
"linear predictive coding". They are compression algorithms used
for low bit rate (2400 and 4800 bps) speech coding.

The U.S. DoD's Federal-Standard-1016 based 4800 bps code excited
linear prediction voice coder version 3.2 (CELP 3.2) Fortran and C
simulation source codes are available for worldwide distribution
(on DOS diskettes, but configured to compile on Sun SPARC
stations) from NTIS and DTIC. Example input and processed speech
files are included. A Technical Information Bulletin (TIB),
"Details to Assist in Implementation of Federal Standard 1016
CELP," and the official standard, "Federal Standard 1016,
Telecommunications: Analog to Digital Conversion of Radio Voice by
4,800 bit/second Code Excited Linear Prediction (CELP)," are also
available.

To obtain CELP:
Available through the National Technical Information Service:

NTIS
U.S. Department of Commerce
5285 Port Royal Road
Springfield, VA 22161
USA
(800) 553-6847

FS-1016 CELP 3.2 may also be obtained from
ftp://svr-ftp.eng.cam.ac.uk/pub/comp.speech/coding/celp_3.2a.tar.Z.

LPC-10 (2.4 Kbps) is available from
ftp://svr-ftp.eng.cam.ac.uk/pub/comp.speech/coding/lpc10-1.0.tar.gz.

LPC (4.8 Kbps) can be downloaded in SpeakFreely
http://www.speakfreely.org/, or in HawkVoice
http://www.hawksoft.com/hawkvoice/. HawkVoice includes versions of
OpenLPC, LPC-10, LPC, GSM, and Intel/DVI ADPCM. These versions
have been rewritten to support multiple encoding and decoding
streams, and the interfaces have been standardized. [Phil Frisbie,
Jr., ***@hawksoft.com]

OpenLPC (1.4 and 1.8 Kbps) can be downloaded from
ftp://ftp.futuredynamics.com/OpenLPC/.

MATLAB software for LPC-10 is available from
http://www.eas.asu.edu/~spanias/srtcrs.html. Also, postscript
copies of tutorials of speech coding can be found at
http://www.eas.asu.edu/~spanias/papers.html. [Andreas Spanias,
***@asu.edu]

For more information:

* The following articles describe the Federal-Standard-1016 4.8-kbps
CELP coder (it's unnecessary to read more than one):

Campbell, Joseph P. Jr., Thomas E. Tremain and Vanoy C. Welch, The
Federal Standard 1016 4800 bps CELP Voice Coder, Digital Signal
Processing, Academic Press, 1991, Vol. 1, No. 3, p. 145-155.

Campbell, Joseph P. Jr., Thomas E. Tremain and Vanoy C. Welch, The
DoD 4.8 kbps Standard (Proposed Federal Standard 1016), in Advances
in Speech Coding, ed. Atal, Cuperman and Gersho, Kluwer Academic
Publishers, 1991, Chapter 12, p. 121-133.

Campbell, Joseph P. Jr., Thomas E. Tremain and Vanoy C. Welch, The
Proposed Federal Standard 1016 4800 bps Voice Coder: CELP, Speech
Technology Magazine, April/May 1990, p. 58-64.

Additional information on CELP can also be found in the comp.speech
FAQ.

* The voicing classifier used in the enhanced LPC-10 (LPC-10e) is
described in: Campbell, Joseph P., Jr. and T. E. Tremain,
Voiced/Unvoiced Classification of Speech with Applications to the U.S.
Government LPC-10E Algorithm, Proceedings of the IEEE International
Conference on Acoustics, Speech, and Signal Processing, 1986, p.
473-6.

The U. S. Federal Standard 1015 (NATO STANAG 4198) is described in:
Thomas E. Tremain, The Government Standard Linear Predictive Coding
Algorithm: LPC-10, Speech Technology Magazine, April 1982, pp. 40-49.

[Most of the above from Joe Campbell, ***@afterlife.ncsc.mil, with
additions from Dan Frankowski, ***@winternet.com, and Ed Hall,
***@rand.org]

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

Q2.3: What is ADPCM? Where can I get source for it?

Updated: 04/03/01

ADPCM stands for Adaptive Differential Pulse Code Modulation. It is a
family of speech compression and decompression algorithms. A common
implementation takes 16-bit linear PCM samples and converts them to 4-bit
samples, yielding a compression rate of 4:1.

To obtain:
There is public domain C code available via anonymous ftp at
ftp://ftp.cwi.nl/pub/audio/adpcm.shar written by Jack Jansen
(email ***@cwi.nl). It is very programmer-friendly. The
ADPCM code used is the Intel/DVI ADPCM code which is being
recommended by the IMA Digital Audio Technical Working Group. It
allows the following calls:

adpcm_coder(short inbuf[], char outbuf[], int nsample,
struct adpcm_state *state);
adpcm_decoder(char inbuf[], short outbuf[], int nsample,
struct adpcm_state *state);

Note that this is NOT a G.722 coder. The ADPCM standard is much
more complicated, probably resulting in better quality sound but
also in much more computational overhead.

Platforms:
The routines have been tested on numerous platforms, and will
easily compress and decompress millions of samples per second on
current hardware.

For more information:
The G.721/722/723 packages are available from ITU at
http://www.itu.ch/.

[From Dan Frankowski, ***@winternet.com; Jack Jansen,
***@cwi.nl]

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

Q2.4: What is GSM? Where can I get source for it?

Updated 4/27/00

GSM (Global System for Mobile Communication) is a standard for
digital cellular telephony used in Europe. GSM also refers to the
speech coder used in GSM telephones, which is what this section of
the FAQ is concerned with.

The Communications and Operating Systems Research Group (KBS) at
the Technische Universitaet Berlin is currently working on a set
of UNIX-based tools for computer-mediated telecooperation that
will be made freely available.

As part of this effort they are publishing an implementation of
the European GSM 06.10 provisional standard for full-rate speech
transcoding, prI-ETS 300 036, which uses RPE/LTP (residual pulse
excitation/long term prediction) coding at 13 kbit/s.

GSM 06.10 compresses frames of 160 13-bit samples (8 kHz sampling
rate, i.e. a frame rate of 50 Hz) into 260 bits; for compatibility
with typical UNIX applications, our implementation turns frames of
160 16-bit linear samples into 33-byte frames (1650 Bytes/s). The
quality of the algorithm is good enough for reliable speaker
recognition; even music often survives transcoding in recognizable
form (given the bandwidth limitations of 8 kHz sampling rate).

The interfaces offered are a front end modeled after compress(1),
and a library API. Compression and decompression run faster than
real time on most SPARCstations. The implementation has been
verified against the ETSI standard test patterns.

Jutta Degener ***@cs.tu-berlin.de, Carsten Bormann
***@cs.tu-berlin.de)

Communications and Operating Systems Research Group, TU Berlin
Fax: +49.30.31425156, Phone: +49.30.31424315

To obtain:
ftp://svr-ftp.eng.cam.ac.uk/pub/comp.speech/coding/gsm-1.0.6.tar.gz.
An alternative site is
ftp://ftp.cwi.nl/pub/audio/gsm-1.0.7.tar.gz. Try also:
http://kbs.cs.tu-berlin.de/~jutta/toast.html.

[From Dan Frankowski, ***@winternet.com; Jutta Degener,
***@cs.tu-berlin.de]

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

Q2.5: How does pitch perception work, and how do I implement it on my DSP chip?

Updated 04/02/01

Pitch is officially defined as "That attribute of auditory
sensation in terms of which sounds may be ordered on a musical
scale." Several good examples illustrating the subtleties of pitch
perception are included in the "Auditory Demonstrations CD" which
is available from the Acoustical Society of America, Woodbury, NY
10797 for $20.

Books/papers:
A good general reference about the psychology of pitch perception
is the book:

B.C.J. Moore, An Introduction to the Psychology of Hearing,
Academic Press, London, 1997.

This book is available in paperback and makes a good desk
reference.

An algorithm implementation that matches a large body of
psycho-acoustical work, but which is computationally very
intensive, is presented in the paper:

Malcolm Slaney and Richard Lyon, "A Perceptual Pitch Detector,"
Proceedings of the International Conference of Acoustics,
Speech, and Signal Processing, 1990, Albuquerque, New Mexico.
Available for ftp at
ftp://worldserver.com/pub/malcolm/ICASSP90.psc.Z

The definitive papers describing the use of such a perceptual
pitch detector as applied to the classical pitch literature is in:

Ray Meddis and M. J. Hewitt. "Virtual pitch and phase
sensitivity of a computer model of the auditory periphery. "
Journal of the Acoustical Society of America 89 (6 1991):
2866-2682. and 2883-2894.

The current work that argues for a pure spectral method starts
with the work of Goldstein:

J. Goldstein, "An optimum processor theory for the central
formation of the pitch of complex tones," Journal of the
Acoustical Society of America 54, 1496-1516, 1973.

Two approaches are worth considering if something approximating
pitch is appropriate. The people at IRCAM have proposed a harmonic
analysis approach that can be implemented on a DSP:

Boris Doval and Xavier Rodet, "Estimation of Fundamental
Frequency of Musical Sound Signals," Proceedings of the 1991
International Conference on Acoustics, Speech, and Signal
Processing, Toronto, Volume 5, pp. 3657-3660.

The classic paper for time domain (peak picking) pitch algorithms
is:

B. Gold and L. Rabiner, "Parallel processing techniques for
estimating pitch periods of speech in the time domain," Journal
of the Acoustical Society of America, 46, pp 441-448, 1969.

Finally, a word of caution:
Pitch is not single-valued. We can hear a sound and match it to
several different pitches. Imagine the number of instruments in an
orchestra, each with its own pitch. Even a single sound can have
more than one pitch. See for example Demonstration 27 from the ASA
Auditory Demonstrations CD.

[The above from Malcolm Slaney, Interval Research, and John
Lazzaro, U.C. Berkeley.]

Information about independently changing the pitch and speed of a
digital recording can be found at
http://www.dspdimension.com/html/timepitch.html. [Stephan M.
Bernsee, ***@dspdimension.com]Updated!

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

Q2.6: What standards exist for digital audio? What is AES/EBU? What is S/PDIF?

Updates 1/8/97

Q2.6.1: Where can I get copies of ITU (formerly CCITT) standards?

Try the ITU (International Telecommunication Union) homepage at
http://www.itu.ch/.

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

Q2.6.2: What standards are there for digital audio?

AES/EBU

The "AES/EBU" (Audio Engineering Society / European Broadcast
Union) digital audio standard is probably the most popular digital
audio standard today. Most consumer and professional digital audio
devices (CD players, DAT decks, etc.) that feature digital audio
I/O support AES/EBU.

AES/EBU is a bit-serial communications protocol for transmitting
digital audio data through a single transmission line. It provides
two channels of audio data (up to 24 bits per sample), a method
for communication control and status information ("channel status
bits"), and some error detection capabilities. Clocking
information (i.e., sample rate) is derived from the AES/EBU bit
stream, and is thus controlled by the transmitter. The standard
mandates use of 32 kHz, 44.1 kHz, or 48 kHz sample rates, but some
interfaces can be made to work at other sample rates.

AES/EBU provides both "professional" and "consumer" modes. The big
difference is in the format of the channel status bits mentioned
above. The professional mode bits include alphanumeric channel
origin and destination data, time of day codes, sample number
codes, word length, and other goodies. The consumer mode bits have
much less information, but do include information on copy
protection (naturally). Additionally, the standard provides for
"user data", which is a bit stream containing user-defined (i.e.,
manufacturer-defined) data. According to Tim Channon, "CD user
data is almost raw CD subcode; DAT is StartID and SkipID. In
professional mode, there is an SDLC protocol or, if DAT, it may be
the same as consumer mode."

The physical connection media are commonly used with AES/EBU:
balanced (differential), using two wires and shield in three-wire
microphone cable with XLR connectors; unbalanced (single-ended),
using audio coax cable with RCA jacks; and optical (via fiber
optics).

S/P-DIF

"S/P-DIF" (Sony/Philips Digital Interface Format) typically refers
to AES/EBU operated in consumer mode over unbalanced RCA cable.
Note that S/P-DIF and AES/EBU mean different things depending on
how much of a purist you are in the digital audio world; see the
Finger article below.

References:
Finger, Robert, AES3-199X: The Revised Two Channel Digital Audio
Interface (DRAFT), presented at the 91st Convention of the Audio
Engineering Society, October 4-8, 1991. Reprints: AES, 60 East
42nd St., New York, NY, 10165.

[The above from Phil Lapsley and Tim Channon,
***@black.demon.co.uk]

Painter, E. M., and Spanias, A. S. (1997 and revised 1999). A
Review of Algorithms for Perceptual Coding of Digital Audio
Signals. (PostScript, 3MB)
http://www.eas.asu.edu/~spanias/papers.html

[Andreas Spanias, ***@asu.edu]

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

Q2.7: What is mu-law encoding? Where can I get source for it?

Updated 9/13/99

Mu-law (also "u-law") encoding is a form of logarithmic
quantization or companding. It's based on the observation that
many signals are statistically more likely to be near a low signal
level than a high signal level. Therefore, it makes more sense to
have more quantization points near a low level than a high level.
In a typical mu-law system, linear samples of 14 to 16 bits are
companded to 8 bits. Most telephone quality codecs (including the
Sparcstation's audio codec) use mu-law encoded samples.

Desktop Sparc machines come with routines to convert between
linear and mu-law samples. On a desktop Sparc, see the man page
for audio_ulaw2linear in /usr/demo/SOUND/man.

To obtain:
Craig Reese posted the source of similar routines to comp.dsp in
August '92. These are archived on
ftp://mirriwinni.cse.rmit.edu.au/pub/dsp/misc/ulaw_reese.

References:
ITU-T (formerly CCITT) Recommendation G.711 (very difficult to
follow).

Michael Villeret, et. al, A New Digital Technique for
Implementation of Any Continuous PCM Companding Law, IEEE Int.
Conf. on Communications, 1973, vol. 1, pp. 11.12-11.17.

MIL-STD-188-113, Interoperability and Performance Standards for
Analog-to-Digital Conversion Techniques, 17 February 1987.

TI Digital Signal Processing Applications with the TMS320 Family
(TI literature number SPRA012A), pp. 169-198.

[From Joe Campbell; Craig Reese, ***@super.org; Sepehr Mehrabanzad,
***@falstaff.dev.cdx.mot.com; Keith Kendall,
KLK3%***@magic.itg.ti.com]

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

Q2.8: How can I do CD <=> DAT sample rate conversion?

Updated 9/13/99

CD players use a 44.1 kHz sample rate, whereas DAT uses a 48 kHz
sample rate. This means that you must do sample rate conversion
before you can get data from a CD player directly into a DAT deck.

[From Ed Hall, ***@rand.org:]

For a start, look at Multirate Digital Signal Processing by
Crochiere and Rabiner (see FAQ section 1.1).

Almost any technique for producing good digital low-pass filters
will be adaptable to sample-rate conversion. 44.1:48 and
vice-versa is pretty hairy, though, because the lowest
whole-number ratio is 147:160. To do all that in one go would
require a FIR with thousands of coefficients, of which only
1/147th or 1/160th are used for each sample--the real problem is
memory, not CPU for most DSP chips. You could chain several
interpolators and decimators, as suggested by factoring the ratio
into 3*7*7:2*2*2*2*2*5. This adds complexity, but reduces the
number of coefficients required by a considerable amount.

[From Lou Scheffer:]

Theory of operation: 44.1 and 48 are in the ratio 147/160. To
convert from 44.1 to 48, for example, we (conceptually):

1. interpolate 159 zeros between every input sample. This raises
that data rate to 7.056 MHz. Since it is equivalent to
reconstructing with delta functions, it also creates images
of frequency f at 44.1-f, 44.1+f, 88.2-f, 88.2+f, ...
2. We remove these with an FIR digital filter, leaving a signal
containing only 0-20 KHz information, but still sampled at a
rate of 7.056 MHz.
3. We discard 146 of every 147 output samples. It does not hurt
to do so since we have no content above 24 KHz. In practice,
of course, we never compute the values of the samples we will
throw out.

So we need to design an FIR filter that is flat to 20 KHz, and
down at least X db at 24 KHz. How big does X need to be? You might
think about 100 db, since the max signal size is roughly +-32767,
and the input quantization +- 1/2, so we know the input had a
signal to broadband noise ratio of 98 db at most. However, the
noise in the stopband (20KHz-3.5MHz) is all folded into the
passband by the decimation in step 3, so we need another 22 db
(that's 160 in db) to account for the noise folding. Thus 120 db
rejection yields a broadband noise equal to the original
quantizing noise. If you are a fanatic, you can shoot for 130 db
to make the original quantizing errors dominate, and a 22.05 KHz
cutoff to eliminate even ultrasonic aliasing. You will pay for
your fanaticism with a penance of more taps, however.

To obtain:
There's a free implementation of Julius O. Smith III and someone
else's "bandwidth-limited interpolation" rate conversion
algorithm.

A paper available as
ftp://ccrma-ftp.stanford.edu/pub/DSP/Tutorials/BandlimitedInterpolation.eps.Z
explains the algorithm. Free source code, as well as an HTML
discussion of the algorithm, is available at
http://ccrma-www.stanford.edu/~jos/resample/. It all works quite
well.

[From Kevin Bradley, kb+@andrew.cmu.edu:]

There is an implementation of polyphase resampling for various
rates as a part of the Sox audio toolkit at
http://home.sprynet.com/~cbagwell/sox.html. See file polyphas.c
for details.

Sox also contains an implementation of bandlimited interpolation
and linear interpolation, and serves as a ready vehicle for module
experimentation.

[From Fritz M. Rothacher, ***@ieee.org:]

You can add my Ph.D. thesis on sample-rate conversion to the FAQ:

Fritz M. Rothacher, Sample-Rate Conversion: Algorithms and VLSI
Implementation, Ph.D. thesis, Integrated Systems Lab, Swiss
Federal Institute of Technology, ETH Zuerich, 1995, ISBN
3-89191-873-9

It can also be downloaded from my homepage at
http://www.guest.iis.ee.ethz.ch/~rota.

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

Q2.9: Wavelets

Updated 6/3/98

Q2.9.1 What are wavelets? Where can I get more information?

In short, wavelets are a way to analyze a signal using base
functions which are localized both in time (as diracs, but unlike
sine waves), and in frequency (as sine waves, but unlike diracs).
They can be used for efficient numerical algorithms and many DSP
or compression applications.

Sources of information on wavelets include:

* a newsletter, "Wavelet Digest". Subscriptions for Wavelet
Digest: E-mail to ***@math.scarolina.edu with "subscribe"
as subject. The Wavelet Digest can also be found at
http://www.wavelet.org/.
* http://www.amara.com/current/wavelet.html

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

Q2.9.2 What are some good books and papers on wavelets

The best introduction to wavelet transforms is in:

Wavelets and Signal Processing- Oliver Rioul and Martin
Vetterli, IEEE Signal Processing magazine, Oct. 91, pp 14-38

A good introductory book on wavelets:

Randy K. Young, Wavelet Theory and Its Applications, Kluwer
Academic Publishers, ISBN 0-7923-9271-X, 1993.

A more thorough book:

Ali N. Akansu and Richard A. Haddad, Multiresolution Signal
Decomposition Transforms, Subbands, Wavelets Academic Press,
Inc., ISBN 0-12-047140-X

A couple more interesting papers:

Wavelets and Filter banks: Theory and Design, IEEE Transactions
on Signal Processing, Vol. 40, No.9, Sept. 1992, pp 2207-2232

Mac Cody's articles in Dr. Dobb's Journal, April 1992 and April
1993

Paper by Ingrid Daubechies in IEEE Trans. on Info. theory , vol
36. No.5 , Sept 1990 and a book titled " Ten lectures on
Wavelets" deal with the mathematical aspects of the WT.

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

Q2.9.3: Where can I get some software for wavelets?

ftp://pascal.math.yale.edu/pub/wavelets/software/xwpl

Binaries are available for the following platforms: Sun
Sparcstations running SunOS 4.1 or Solaris 2.3, NeXT machines
running NeXTstep 3.0 or higher, with an X server, Silicon Graphics
machines (IRIS), DEC Alpha AXP running OSF/1 1.2 or higher,
i386/i486 PC compatible with Linux 0.99.

There is also a sample data directory containing interesting
signals.

More information:
http://www.math.yale.edu/users/majid/

[From Fazal Majid ***@math.yale.edu]:

Rice Wavelet Tools

Description:
The Rice Wavelet Toolbox (RWT) is a collection of Matlab M-files
and C MEX-files for 1D and 2D wavelet and filter bank design,
analysis, and processing. The toolbox provides tools for denoising
and interfaces directly with our Matlab code for wavelet domain
hidden Markov models and wavelet regularized deconvolution. Also
included is a simple converter to the data format used by the
official Matlab wavelet toolbox.

The current distribution, Version 2.3 (Dec 1, 2000), has been
streamlined and packaged for different systems, including Solaris,
Linux, and Microsoft Windows. Functions omitted in Version 2.3 can
be found in the Version 2.01 distribution.

To obtain:
See http://www-dsp.rice.edu/software/RWT/.

Send mail to wlet-***@rice.edu (or ***@dsp.rice.edu)

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

Q2.10: How do I calculate the coefficients for a Hilbert transformer?

Updated 6/3/98

For all the gory details, I suggest the paper: Andrew Reilly and
Gordon Frazer and Boualem Boashash: Analytic signal
generation---tips and traps, IEEE Transactions on Signal
Processing, no. 11, vol. 42, Nov. 1994, pp. 3241-3245.

For comp.dsp, the gist is:

1. Design a half-bandwidth real low-pass FIR filter using
whatever optimal method you choose, with the principle design
criterion being minimization of the maximum attenuation in
the band f_s/4 to f_s/2.

2. Modulate this by exp(2 pi f_s/4 t), so that now your
stop-band is the negative frequencies, the pass-band is the
positive frequencies, and the roll-off at each end does not
extend into the negative frequency band.

3. either use it as a complex FIR filter, or a pair of I/Q real
filters in whatever FIR implementation you have available.

If your original filter design produced an impulse response with
an even number of taps, then the filtering in 3 will introduce a
spurious half-sample delay (resampling the real signal component),
but that does not matter for many applications, and such filters
have other features to recommend them.

Andrew Reilly [***@zeta.org.au]

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

Q2.11: Algorithm implementation: floating-point versus fixed-point

According to the WWWebster Dictionary, an algorithm is "a
procedure for solving a mathematical problem (as of finding the
greatest common divisor) in a finite number of steps that
frequently involves repetition of an operation; broadly: a
step-by-step procedure for solving a problem or accomplishing some
end especially by a computer."

Typical (although by no means the only) operations are those of
addition and multiplication. When expressing the algorithm with
pencil and paper, these operations are commonly taken to be within
an algebraically complete number system such as the integers or
the reals. However, when the time comes to implement the algorithm
on a computer, these "ideal" number systems must be exchanged for
something realizable. The number systems available today on common
processors and digital hardware are broadly categorized as
floating-point and fixed-point.

In a floating-point representation, the total number of bits
available are partitioned into an exponent and mantissa. Generally
speaking, the mantissa stores the "significant digits" of the
value while the exponent scales the significant digits to the
desired magnitude. The action of the exponent is to move, or
"float," the decimal point depending on the magnitude being
represented; thus the term "floating-point."

Because floating-point representations are typically at least 32
bits long (IEEE-754 is a popular standard for 32-bit and 64-bit
floating-point numbers), there exists simultaneously high
precision and high dynamic range. These traits of floating-point
numbers allow most algorithms to be ported directly to
floating-point implementations with little or no change, and this
is the key reason floating-point representations are highly
desirable. The disadvantage of floating-point implementations is
that they require a significant amount of extra hardware over
fixed-point implementations, which translates to higher parts
costs, higher power consumption, slower execution, larger chip
area, or a combination of these.

As the term "fixed-point" implies, fixed-point representations
have the binary point at a fixed location. There are two subsets
of fixed-point implementations: fractional and integer. In a
fractional fixed-point implementation, such as that provided on
the Motorola 56K series of DSPs, the binary point is always
assumed to be to the left of the most-significant digit. In an
integer fixed-point implementation, such as that provided by the
Texas Instruments TMS320C54xx series of DSPs, the binary point is
to the right of the least-significant digit. In either case, the
arithmetic operations implemented in the hardware are essentially
integer, which results in a much simpler arithmetic logic unit in
hardware that allows lower cost, lower power consumption, faster
execution, smaller chip area, or a combination of these, over that
of floating-point implementations.

Fixed-Point Arithmetic: The Basics

In essence, a fixed-point representation is a simple integer
scaled (divided) by a power of two. If we denote an unscaled
integer variable by upper case "X" and the scaled, fixed-point
variable by lower case "x," then x = X/2^b, where b is the number
of digits the binary point is shifted left. For example, if X is a
16-bit, two's complement integer, and b=4, then "X" has values
ranging from -2^(15) to +2^(15)-1 and with minimum step size of 1,
while the scaled value "x" ranges from -2^(11) to +2^(11) -
1/(2^4) with a minimum step size of 1/(2^4).

Note that the value of "b" is not part of the representation. You
won't see it in a register or as part of the data anywhere; it is
a parameter that the algorithm implementer must determine and
maintain.

Fixed-point representations place some very different rules on
operations than their floating-point counterparts. For example,
two variables must be scaled the same in order to be added (or
subtracted). Thus it may be necessary to shift one or the other
operand prior to adding. Another example is that when multiplying
two N-bit values with scale factors b0 and b1, the result is
scaled (b0+b1) and requires 2*N bits in general in order to avoid
overflow and maintain precision.

There are several other rules and considerations for fixed-point
arithmetic that are commonly encountered when implementing
algorithms. For more information, see
http://www.digitalsignallabs.com/papers.htm.

Randy Yates [***@ieee.org]

Previous section (1) Next section (3)
Previous section (2) Next section (4)

Q3: Programmable DSP chips and their software

Q3.1: What are the available DSP chips and chip architectures?

Updated 05/07/02

The "big four" programmable DSP chip manufacturers are Texas
Instruments, with the TMS320C2000, TMS320C5000, and TMS320C6000
series of chips; Freescale, with the DSP56300, DSP56800, and
MSC8100 (StarCore) series; Agere Systems (formerly Lucent
Technologies), with the DSP16000 series; and Analog Devices, with
the ADSP-2100 and ADSP-21000 ("SHARC") series. A good overview of
programmable DSP chips is published periodically in EDN and
Computer Design magazines.

You may also want to check out Berkeley Design Technology's home
page, which has a number of articles on choosing DSP processors,
as well as a "Pocket Guide to Processors for DSP" in HTML format.
Brief overviews of various DSP processors, cores, and
general-purpose processors can be found at
http://www.bdti.com/procsum/index.htm.

Here's a less ambitious chip breakdown by manufacturer:

Agere Systems (formerly Lucent Technologies):

DSP16xxx:
100 to 170 MHz 16-bit fixed-point DSP. The DSP16000 core features
two multipliers with SIMD-like capabilities, a 20-bit address bus,
a 32-bit address bus, and eight 40-bit accumulators. The chips
feature two serial ports and two timers.

The first-generation processor, the DSP16210, contains a single
DSP16000 core and 120 KB of internal RAM. The second-generation
DSP16410 incorporates two DSP16000 cores and 386 KB of internal
RAM.

Analog Devices:

ADSP-21xx:
10 to 80 MHz 16-bit fixed point DSPs; 40-bit accumulator; 24-bit
instructions. Large number of family members with different
configurations of on-chip memory and serial ports, timers, and
host ports. ADSP-21mspxx members include an on-chip codec.

ADSP-219x:
160 MHz 16-bit fixed point DSPs; 40-bit accumulator; 24-bit
instructions. Based on the ADSP-21xx family, and is is mostly, but
not completely, assembly source-code upward compatible with the
ADSP-21xx Adds new addressing modes and an instruction cache,
expands address space, and lengthens pipeline (six stages compared
to three on the ADSP21xx). Family includes members containing
multiple ADSP-219x cores.

ADSP-21xxx ("SHARC"):
33 to 100 MHz floating-point DSP; Supports 32-bit fixed-point,
IEEE format 32-bit floating-point, and 40-bit floating-point;
40-bit registers plus an 80-bit accumulator that can be divided
into two 32-bit registers and a 16-bit register.

The first-generation SHARC, the ADSP-2106x, features a single data
path, a 32-bit address bus, and 40-bit data bus. Versions are
available with up to 512 KB of on-chip memory, up to six
communication ports, and up to 10 DMA channels.

The second-generation ADSP-2116x has two parallel data paths, a
32-bit address bus, and a 64-bit data bus. Versions are available
with up to 512 KB of on-chip memory; up to six communication
ports, and up to 14 DMA channels.

Analog Devices also sells the AD14000 series, which contain four
ADSP-2106x SHARC processors in a single-chip package.

ADSP-2153x:
200 to 300 MHz 16-bit fixed point DSPs that can execute two MAC
instructions per cycle; based on the ADI/Intel MSA core. Uses a
mix of 16-, 32-, and 64-bit instructions. Features include ability
to operate over a wide range of frequencies and voltages.

Freescale:

DSP563xx:
66 to 160 MHz 24-bit fixed-point DSP; most family members have
24-bit address and data busses. The DSP563xx also features 56-bit
accumulators (2), timers, serial interface, host interface port.
The DSP56307 and DSP56311 contain a filter co-processor. Up to 1
MB of internal RAM.

DSP568xx:
40 MHz 16-bit fixed point DSP; 36-bit accumulators (2), three
internal address buses (two 16-bit, one 19-bit) and one 16-bit
external address bus; three 16-bit internal data buses, one 16-bit
external data bus; serial ports, timers. 4-12 KB of internal RAM.
Most family members include an on-chip A/D.

DSP5685x:
160 MHz 16-bit fixed point DSP based on the DSP568xx. Adds an
exponent detector and two accumulators, extends shifter and the
logic unit to 32 bits, and widens internal address and data buses.
The DSP5685x uses a 1X master clock rate rather than the 2X master
clock rate used by the DSP568xx.

MSC81xx:
The 300 MHz MSC8101 is the first processor based on the StarCore
SC140 core. It contains four parallel ALU units that can execute
up to four MAC operations in a single clock cycle. The MSC8101
uses variable-length instructions. Features include: 512 KB
on-chip RAM; 16 DMA channels; an on-chip filter co-processor; and
interfaces for ATM, Ethernet, E1/T1 and E3/T3, and the PowerPC
bus.

Texas Instruments:

TMS320C2xxx:
20-40 MHz 16-bit fixed-point DSPs oriented toward low-cost control
applications; 16 bit data, 32 bit registers. The family members
have a variety of peripherals, such as A/D converters, 41 I/O
pins, and 16 PWM outputs. A variety of RAM and ROM configurations
are available

TI also sells the TMS320C2x family, an older version of the chip
with fewer features.

TMS320C3x:
33-75 MHz floating point DSPs; 32-bit floating-point, 24-bit
fixed-point data, 40-bit registers; DMA controller; serial ports;
some support for multi-processor arrays. Various ROM and RAM
configurations.

TMS320C54xx:
40 to 160 MHz 16-bit fixed-point DSPs with a large number of
specialized instructions. Many family members; the processors
differ in configuration of on-chip ROM/RAM, serial ports,
autobuffered serial ports, host ports, and time-division
multiplexed ports. On-chip RAM ranges from 10 KB to over 1 MB.

TMS320C55xx:
144 to 200 MHz dual-ALU variant of the TMS320C54xx that can
execute two MAC instructions per cycle. Variable instruction word
width. Features include up to 320 KB internal RAM; 6 DMA channels;
2 serial ports; and 2 timers.

TMS320C62xx:
150-300 MHz 16-bit fixed-point DSP with VLIW (very large
instruction word), load/store architecture; 32 32-bit registers;
very deep pipeline; two multipliers, ALUs, and shifters; cache.

TMS320C64xx:
400-600 MHz 16-bit fixed-point DSP based on the TMS320C62xx. Adds
SIMD support to most execution units, including extensive 8-bit
SIMD support. Also doubles data bandwidth and increases size of
on-chip memory.

TMS320C67xx:
100-167 MHz 32-bit and 64-bit IEEE-754 floating-point DSP with
VLIW (very large instruction word), load/store architecture; 32
32-bit registers; very deep pipeline; two multipliers, ALUs, and
shifters; cache.

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

Q3.2: What is the difference between a DSP and a microprocessor?

Updated 04/02/01

The essential difference between a DSP and a microprocessor is
that a DSP processor has features designed to support
high-performance, repetitive, numerically intensive tasks. In
contrast, general-purpose processors or microcontrollers
(GPPs/MCUs for short) are either not specialized for a specific
kind of applications (in the case of general-purpose processors),
or they are designed for control-oriented applications (in the
case of microcontrollers). Features that accelerate performance in
DSP applications include:

* Single-cycle multiply-accumulate capability; high-performance
DSPs often have two multipliers that enable two
multiply-accumulate operations per instruction cycle; some
DSP have four or more multipliers
* Specialized addressing modes, for example, pre- and
post-modification of address pointers, circular addressing,
and bit-reversed addressing
* Most DSPs provide various configurations of on-chip memory
and peripherals tailored for DSP applications. DSPs generally
feature multiple-access memory architectures that enable DSPs
to complete several accesses to memory in a single
instruction cycle
* Specialized execution control. Usually, DSP processors
provide a loop instruction that allows tight loops to be
repeated without spending any instruction cycles for updating
and testing the loop counter or for jumping back to the top
of the loop
* DSP processors are known for their irregular instruction
sets, which generally allow several operations to be encoded
in a single instruction. For example, a processor that uses
32-bit instructions may encode two additions, two
multiplications, and four 16-bit data moves into a single
instruction. In general, DSP processor instruction sets allow
a data move to be performed in parallel with an arithmetic
operation. GPPs/MCUs, in contrast, usually specify a single
operation per instruction

While the above differences traditionally distinguish DSPs from
GPPs/MCUs, in practice it is not important what kind of processor
you choose. What is really important is to choose the processor
that is best suited for your application; if a GPP/MCU is better
suited for your DSP application than a DSP processor, the
processor of choice is the GPP/MCU. It is also worth noting that
the difference between DSPs and GPPs/MCUs is fading: many
GPPs/MCUs now include DSP features, and DSPs are increasingly
adding microcontroller features.

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

Q3.3: Software for Analog Devices DSPs

Updated 12/01/2006

Q3.3.1: Where can I get a C compiler for the ADSP-21xx and ADSP-21xxx?

The G21 package collects the free source code for the Analog
Devices GCC-based C compilers for their 21xxx (SHARC) and 21xx
series DSPs. These compilers are all based on GCC version 2.3.3.
Full source code for the compiler, assembler, linker, etc. is
available at http://www.kvaleberg.com/g21.html.

The C compilers are available for the 210x series as well as for
the SHARC. The assemblers and linkers are only available for the
SHARC. The source code is based on what is released under GPL by
ADI, but is adapted for use with Linux and other Unix variants.

[Egil Kvaleberg, ***@kvaleberg.no]

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

Q3.3.2: Where can I get tools for the ADSP-21xxx?

SHARC development tools are avaiable for Acorn/BSD, Linux, and
other platforms. The tools include frontend/preprocessor ,
assembler, linker, archiver, a utility to generate ROM images for
eprom burners, and other utilities The supplied assembler is not
part of the gnu archive, but is based on a assembler originaly
written by P. Lantto. Source code and binaries are available at:
http://www.markettos.org.uk/electronics/sharc/.

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

Q3.3.3: Where can I get algorithms or libraries for Analog Devices DSPs?

The number for the Analog Devices DSP BBS is (617) 461-4258 (300,
1200, 2400, 9600, 14400 bps), 8N1.

You can also find files on Analog Devices' web site at
http://www.analog.com/processors/index.html, or at their FTP site
at ftp://ftp.analog.com.

[Analog Devices DSP Applications, ***@analog.com]

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

Q3.4: Software for Agere Systems (Formerly Lucent Technologies) DSPs

Agere Systems provides application libraries for their DSPs at
http://www.agere.com/networking/dsps.html.

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

Q3.5: Software for Freescale DSPs

Updated 12/01/2006

Freescale provides free software development tools that may be
downloaded from the Freescale Web site at
http://www.freescale.com/webapp/sps/site/prod_summary.jsp?code=MSW3SDK000AA&nodeId=01M983916044937.

Q3.5.1: Where can I get a free assembler for the Freescale DSP56000?

A free assembler for the Freescale DSP56000 exists, thanks to
Quinn Jensen, ***@zdomain.com. The current version is 1.2. It
is also available at http://www.zdomain.com/a56.html.

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

Q3.5.2: Where can I get a free C compiler for the Freescale DSP56000?

There are two separate compiler sources for the Freescale
DSP56000. One is the port of gcc 1.40 done by Andrew Sterian
(***@umich.edu) and the other is a port of gcc 1.37.1 done by
Freescale and returned to the FSF. Andrew's port has bowed to
Freescale's version. Both may be portable to gcc2.x.x with some
effort required. Neither of these comes with an assembler, but you
can get a free DSP56000 assembler elsewhere (see question 3.5.1,
above). The Freescale gcc source is available for FTP from:
ftp://nic.funet.fi/pub/ham/dsp/dsp56k-tools/dsp56k-gcc.tar.Z.

From Andrew Sterian, ***@umich.edu: "My DSP56K compiler,
while not supported nor as well tested as Freescale's, implements
fixed-point arithmetic rather than floating-point arithmetic. This
may be suitable for some applications. The 5615 compiler also
implements fixed-point arithmetic. To the best of my knowledge,
Freescale does not have a C compiler for the 5615 family, although
alternatives may exist. As of this writing (January 1997) I have
not worked with Freescale DSPs or compiler software for nearly 5
years so questions regarding my compilers may well be met with
"Ummm... I have no idea."

Both compilers were posted to alt.sources so any Usenet site that
archives this newsgroup will have a copy. I have also found the
5616 compiler at
ftp://ftp.funet.fi/pub/ham/dsp/dsp56k-tools/gcc5616.tar.Z.
(http://www.newmicros.com) IsoPod(TM) - based on the DSP56F805.
The assembler generates output suitable for Freescale's free JTAG
flash loader.

Pete Gray has announced the availability of a Small C
cross-compiler (with source) and assembler for the Freescale
DSP56800, available for download from
http://petegray.newmicros.com/ . Targetting a simple DOS-box host,
developed and tested using djgpp (http://www.delorie.com/djgpp/)
and Metrowerks CodeWarrior, in conjunction with NMI's
(http://www.newmicros.com) IsoPod(TM) - based on the DSP56F805.
The assembler generates output suitable for Freescale's free JTAG
flash loader.

Small C language reference available online at
http://www.ddjembedded.com/languages/smallc/

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

Q3.5.3 Where can I get a disassembler for the Freescale DSP56000?

Miloslaw Smyk has released an open source (BSD style) 5600x
disassembly library. It is available for download at
https://sourceforge.net/projects/lib5600x [Miloslaw Smyk,
***@wmfh.org.pl]

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

Q3.5.4: Where can I get algorithms and libraries for Freescale DSPs?

Freescale provides a software archive that is available via
World-Wide Web from the software page at
http://www.mot.com/SPS/DSP/software/. The archive includes macros
for filters (FIR, IIR, adaptive) and floating-point functions.
[Tim Baggett]

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

Q3.5.5: Where can I get NeXT-compatible Freescale DSP56001 code?

Try FTP at ccrma-ftp.stanford.edu. The /pub/ directory contains
free code for the Freescale DSP56001 and the NeXT platform.
[***@ccrma.Stanford.EDU]

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

Q3.5.6: Where can I get emulators for the 68HC11 (6811) processor?

While the 68HC11 is not a DSP processor, emulators are available
for those who might be interested in doing DSP on these
processors:

* New Mexico State University (NMSU) simulator engine,
ftp://crl.nmsu.edu/pub/non-lexical/6811/ (Unix). Simulator
engine with a command-line interface.
* Sim6811,
http://www.cs.nmsu.edu/~pfeiffer/classes/273/notes/sim.html
(Mac). Screen-oriented user interface based on the NMSU
simulator engine (plus bug fixes).
* THRSim11, http://programfiles.com/index.asp?ID=8366 allows
you to edit, assemble, simulate and debug programs for the
68HC11 on Windows 95/98. THRSim11 simulates the CPU, ROM,
RAM, all memory mapped I/O ports, and the on board
peripherals.

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

Q3.6: Software for Texas Instruments DSPs

Updated 12/01/2006

Q3.6.1: Where can I get free algorithms or libraries for TI DSPs?

ftp://ftp.funet.fi/pub/ham/dsp/ has some old, apparently public
domain, assembler and related tools from TI for the TMS320
family.

TI has a number of free algorithms available on their website at
http://dspvillage.ti.com/docs/sdstools/sdscommon/showsdsinfo.jhtml?templateId=57&path=templatedata/cm/ccstudio/data/free_tools.

TI's world-wide web site is http://www.ti.com. The TI DSP bulletin
board is mirrored on ftp.ti.com. The TI site is the official one,
but has no user contributed software. [Brad Hards,
***@gil.com.au]

{ If anyone knows of any other sources for TI DSP software, please
let us know at comp-dsp-***@bdti.com. Thanks! }

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

Q3.6.2: Where can I get free development tools for TI DSPs?

TI development tools are available for free 30 day evaluation on
the TI website.
Go to
http://focus.ti.com/dsp/docs/dspsupportaut.tsp?sectionId=3&tabId=416&familyId=44&toolTypeId=30.

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

Q3.6.3: Where can I get a free C compiler for the TI TMS320C3x/4x?

The GNU binutils 2.11 and later have been ported to the TI
C54xx/IBM C54DSP. Most of the binutils tools are supported,
including the assembler, linker and objdump. The assembler is
source-compatible with the TI assembler. The GNU binutils are
available from http://sources.redhat.com/binutils/ GDB ports for
c25/c5x/c54x are also available.

[Timothy Wall]

Dr. Michael P. Hayes has written a GNU C-based compiler for the
TMS320C30 and TMS320C40 families, available at
http://www.elec.canterbury.ac.nz/c4x. The current version patches
against gcc-2.8.1; support is moving to egcs-1.2. The compiler is
freely redistributable under the terms of the GNU Public License.
Front-ends are also available for C++, Java, Fortran 77, Pascal,
Ada 95, among others.

[Dr. Michael P. Hayes, ***@elec.canterbury.ac.nz]

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

Q3.6.4: Where can I get a free assembler for the TI TMS320C3x/4x?

Ted Rossin has written an assembler and linker for the TMS320C30.
In his words, "It is somewhat limited by the fact that it can't
handle expressions but it has worked fine for me over the past few
years. There is no manual because it is a clone of the TI
assembler and linker. However the linker command files use a
different (easier to use) syntax. It runs on HP-UX workstations,
Macs, IBM clones and believe it or not the Atari-ST (because I
developed the code on it)."

[Ted Rossin, ***@fc.hp.com]

Dr. Michael P. Hayes has written a GNU-based assembler for the
TMS320C30 and TMS320C40 families, available at
http://www.elec.canterbury.ac.nz/c4x. The current version patches
against binutils-2.7. According to Michael Hayes, the assembler
syntax is compatible with the Texas Instruments TMS320C30
assembler, although not all the Texas Instruments directives are
supported. The binutils include a linker (ld), archiver (ar),
disassembler (objdump), and other miscellaneous utilities. The
object format of the assembler is compatible with the COFF format
used by the Texas Instruments assembler. The assembler and other
binary utilities are freely redistributable under the terms of the
GNU Public License.

[Dr. Michael P. Hayes, ***@elec.canterbury.ac.nz]

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

Q3.6.5: Where can I get a free simulator for the TI TMS320C3x/4x?

A freely distributable instruction set architecture simulator is
available for the TMS320C30 DSP as part of the Web-Enabled
Simulation framework from UT Austin at
http://signal.ece.utexas.edu/~arifler/wetics/.

We have released all of the source code, as well as prebuilt C30
simulators for Windows '95/NT and Solaris 2.5 architectures.

The C30 simulator is bit-, cycle-, and instruction-accurate. The
behavior of the C30 simulator has been validated against a C30 DSK
board. The C30 simulator correctly reports interlocking and
pipeline flushes, so it provides a convenient way to check C30
programs for these hidden delays. The C30 simulator is based on
the C30 DSK tools by Keith Larson at Texas Instruments.

[Brian Evans, ***@ece.utexas.edu]

Herman Ten Brugge (***@net.hcc.nl) has also written a
GNU debugger (GDB) based simulator for the TMS320C30 and
TMS320C40, available via anonymous FTP at
http://www.elec.canterbury.ac.nz/c4x. This is freely
redistributable under the terms of the GNU Public License.

This simulator allows you to debug your programs without having to
a connect to a real C[34]x target system. It will also profile
your code showing you where the pipeline conflicts are occurring.
You can connect I/O ports to files (or TCP/IP sockets), trigger
interrupts, examine the cache etc. It will detect different
threads of control running and generate a profile summary for each
thread, annotating both the C code and assembler code with the
number of executed cycles.

[Dr. Michael P. Hayes, ***@elec.canterbury.ac.nz]

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

Q3.6.6: What is Tick? Where can I get it?

Tick is a TMS320C40 parallel network detection and loader utility.

It is available from:
http://wotug.kent.ac.uk/parallel/vendors/ti/tms320c40/tick/

Supports: Transtech, Hunt, and Traquair boards hosted by DOS,
SunOS, Linux

Previous section (2) Next section (4)
Seth Benton
2007-04-11 18:18:13 UTC
Permalink
Archive-name: dsp-faq/part3
Last-modified: Wed Apr 11 2007
URL: http://www.bdti.com/faq/

Previous section (3) Next section (5)

Q4: DSP Development Boards

Updated 05/08/2002

Note: This information was mainly supplied by vendor catalogues.
It is in no way definitive, and some of the information may well
be out of date or simply wrong. Beware!

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

DSP Development Boards

|-----------------------------------------------------------------------------|
|Vendor |Analog Devic|Agere System|Motorola |Texas Instru|Other |
| |es |s (formerly |DSP56K |ments | |
| |ADSP-21xx |Lucent Techn|or |TMS320Cxx | |
| |or ADSP |ologies) |DSP96002 | | |
| |210xx |DSP16xx | | | |
| |or ADSP |or | | | |
| |2153x |DSP32xx | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
|-----------------------------------------------------------------------------|
|Analog Devic|Standalone |- |- |- |- |
|es | | | | | |
|-----------------------------------------------------------------------------|
|Ariel Corp |VME |- |- |ISA, PCI, |- |
| | | | |VME | |
|-----------------------------------------------------------------------------|
|Atlanta |- |- |- |ISA, |- |
|Signal | | | |Standalone | |
|Processors, | | | | | |
|Inc. | | | | | |
|-----------------------------------------------------------------------------|
|Berkeley |- |- |SBus, |- |- |
|Camera | | |SCSI bus, | | |
|Engineering | | |standalone, | | |
| | | |Peckbus | | |
| | | |Eurocard | | |
| | | | | | |
| | | | | | |
|-----------------------------------------------------------------------------|
|BittWare, |ISA, PCI, |- |- |- |- |
|Inc. |PC/104, | | | | |
| |Compact PCI | | | | |
| | | | | | |
| |PMC | | | | |
|-----------------------------------------------------------------------------|
|Blue Wave |ISA, PCI, |- |PCM |ISA, PCI, |- |
|Systems |VME, PMC | | |VME, PMC | |
| | | | | | |
|-----------------------------------------------------------------------------|
|Bridgenorth |- |- |- |ISA |- |
|Signal Proce| | | | | |
|ssing | | | | | |
|-----------------------------------------------------------------------------|
|Catalina |- |- |- |- |Sharp LH9124|
|Research, | | | | |/9320 on |
|Inc. | | | | |VMEbus |
| | | | | | |
|-----------------------------------------------------------------------------|
|CMS GmbH |ISA |- |- |- |- |
|-----------------------------------------------------------------------------|
|Communicatio|- |ISA, |- |- |- |
|n | |VMEbus | | | |
|Automation | | | | | |
|and Control | | | | | |
| Inc. | | | | | |
|-----------------------------------------------------------------------------|
|Computer |ISA |- |- |- |- |
|Continuum | | | | | |
|-----------------------------------------------------------------------------|
|Creative |- |- |VMEbus |- |- |
|Electronic | | | | | |
|Systems | | | | | |
|-----------------------------------------------------------------------------|
|Current |(part of |- |- |- |- |
|Technology, |FF2 DSP | | | | |
|Inc. |frame grabbe| | | | |
| |r) | | | | |
|-----------------------------------------------------------------------------|
|Dalanco |- |- |- |ISA |- |
|Spry | | | | | |
|-----------------------------------------------------------------------------|
|Danville |Standalone |- |- |- |- |
|Signal Proce| | | | | |
|ssing | | | | | |
|-----------------------------------------------------------------------------|
|Data Transla|- |- |- |ISA |- |
|tion | | | | | |
|-----------------------------------------------------------------------------|
|Dicon Lab, |- |- |- |ISA, PCI, |- |
|Inc. | | | |standalone | |
| | | | | | |
|-----------------------------------------------------------------------------|
|DigiDesign, |- |- |Mac Nubus |- |- |
|Inc. | | | | | |
|-----------------------------------------------------------------------------|
|DIPIX Techno|- |- |- |ISA |- |
|logies, Inc | | | | | |
| | | | | | |
|-----------------------------------------------------------------------------|
|DSP Research|- |- |- |ISA, SBus, |- |
| | | | |standalone, | |
| | | | |proprietary | |
| | | | | | |
|-----------------------------------------------------------------------------|
|EnterTec, |ISA |- |- |- |- |
|Inc. | | | | | |
|-----------------------------------------------------------------------------|
|Eonic System|standalone |- |- |- |- |
|s |TSC21020E: | | | | |
| |radiation | | | | |
| |tolerant | | | | |
| |ADSP-21020 | | | | |
| |compatible | | | | |
| | | | | | |
| | | | | | |
|-----------------------------------------------------------------------------|
|Hollis |ISA |- |- |- |- |
|Electronics | | | | | |
|-----------------------------------------------------------------------------|
|Hunt |- |- |- |- |ISA, PCI, |
|Engineering | | | | |cPCI,VME, |
| | | | | |PC/104, |
| | | | | |standalone |
| | | | | | |
|-----------------------------------------------------------------------------|
|Hyperception|ISA |- |ISA |ISA, PCI, |- |
|, Inc. | | | |PCMCIA | |
|-----------------------------------------------------------------------------|
|Image and |- |- |- |VMEbus |- |
|Signal | | | | | |
|Processing | | | | | |
|-----------------------------------------------------------------------------|
|Innovative |Standalone |- |- |- |- |
|Devices | | | | | |
|-----------------------------------------------------------------------------|
|Integrated |- |- |- |Standalone |- |
|Motions, | | | | | |
|Inc. | | | | | |
|-----------------------------------------------------------------------------|
|Intellibit |- |- |- |Standalone |- |
|-----------------------------------------------------------------------------|
|Integrated |- |- |ISA |- |- |
|Technologies| | | | | |
| | | | | | |
|Solutions, | | | | | |
|Inc. | | | | | |
|-----------------------------------------------------------------------------|
|Ixthos, Inc |VME |- |- |VME |- |
| | | | | | |
|-----------------------------------------------------------------------------|
|Kinetic |- |SBus |- |- |- |
|Systems | | | | | |
|-----------------------------------------------------------------------------|
|Logabex |ISA |- |- |- |- |
|-----------------------------------------------------------------------------|
|Momentum |- |- |ISA |- |- |
|Data Systems| | | | | |
| | | | | | |
|-----------------------------------------------------------------------------|
|Motorola |- |- |ISA, |- |Motorola |
|Corp. | | |Mac Nubus | |68HC16 as |
| | | | | |standalone |
| | | | | | |
|-----------------------------------------------------------------------------|
|National |- |ISA |- |Mac Nubus |- |
|Instruments | | | | | |
|-----------------------------------------------------------------------------|
|Natural |- |- |- |ISA |- |
|Microsystems| | | | | |
|, Inc. | | | | | |
|-----------------------------------------------------------------------------|
|N.E.L. |- |- |Standalone |Standalone |- |
|-----------------------------------------------------------------------------|
|ND Tech |- |- |- |Standalone |- |
|North Market| | | | | |
|ing, Inc. | | | | | |
| | | | | | |
|-----------------------------------------------------------------------------|
|Oxford Micro|- |- |- |- |A236 Video |
| | | | | |DSP |
|Devices, | | | | | |
|Inc. | | | | | |
|-----------------------------------------------------------------------------|
|Pacific |- |- |- |VMEbus |- |
|Cyber/Metric| | | | | |
|, Inc. | | | | | |
|-----------------------------------------------------------------------------|
|Pentek |- |- |- |VMEbus |- |
|-----------------------------------------------------------------------------|
|Petsoff |- |- |Amigabus |- |- |
|Limited | | | | | |
|Partnership | | | | | |
|-----------------------------------------------------------------------------|
|Precision |- |- |Standalone |- |- |
|Design Servi| | | | | |
|ces | | | | | |
|-----------------------------------------------------------------------------|
|Prime Ideal |ISA |- |- |- |- |
|-----------------------------------------------------------------------------|
|Quantawave |- |ISA |- |- |- |
|-----------------------------------------------------------------------------|
|RCN Realtime|- |- |ISA, NeXT, |- |- |
| | | |Standalone | | |
|Computing | | | | | |
|and Nets | | | | | |
|-----------------------------------------------------------------------------|
|Saddle Point|ISA |- |- |- |- |
| | | | | | |
|Systems | | | | | |
|-----------------------------------------------------------------------------|
|Sample Rate |- |- |standalone, |- |- |
|Systems Oy | | |home theater| | |
|Inc.) | | | EVM | | |
| | | | | | |
|-----------------------------------------------------------------------------|
|Signal-Data |ISA |- |- |- |- |
|-----------------------------------------------------------------------------|
|SKY Computer|VME, |- |- |- |PowerPC or |
|s, Inc. |standalone | | | |i860 on VME |
| | | | | |or standalon|
| | | | | |e |
|-----------------------------------------------------------------------------|
|Sonitech |- |- |- |ISA, Sbus, |- |
|Internationa| | | |VMEbus | |
|l | | | | | |
|-----------------------------------------------------------------------------|
|Southwest |- |- |- |- |TI 6xxx DSK |
|Software & | | | | |EVM daughter|
|Systems | | | | |board |
| | | | | | |
|-----------------------------------------------------------------------------|
|Specom Techn|Standalone |- |- |- |- |
|ologies | | | | | |
|-----------------------------------------------------------------------------|
|Spectrum |- |- |ISA, |VMEbus |PDSP-16488 |
|Signal Proce| | |VMEbus | | |
|ssing | | | | | |
|-----------------------------------------------------------------------------|
|Spectral |- |Mac Nubus |- |- |- |
|Innovations | | | | | |
|-----------------------------------------------------------------------------|
|Texas Instru|- |- |- |ISA, |- |
|ments | | | |Standalone | |
|-----------------------------------------------------------------------------|
|Townshend |- |SCSI |- |- |- |
|Computer | | | | | |
|Tools | | | | | |
|-----------------------------------------------------------------------------|
|Transtech |- |- |- |ISA, Sbus, |- |
|Parallel | | | |VMEbus, | |
|Systems | | | |Standalone | |
|Corp. | | | | | |
| | | | | | |
|-----------------------------------------------------------------------------|
|Traquair |- |- |- |ISA, PCI, |- |
|Data | | | |PC/104, | |
|Systems, | | | |VME, SBus, | |
|Inc. | | | |standalone | |
| | | | | | |
| | | | | | |
|-----------------------------------------------------------------------------|
|Tucker-Davis|- |ISA |- |- |- |
| Technologie| | | | | |
|s | | | | | |
|-----------------------------------------------------------------------------|
|Valley Techn|- |VMEbus |- |- |- |
|ologies | | | | | |
|-----------------------------------------------------------------------------|
|Vigra |- |- |Sbus, |- |- |
| | | |VMEbus | | |
|-----------------------------------------------------------------------------|
|Wavetron |ISA |- |- |- |- |
|Microsystems| | | | | |
| | | | | | |
|-----------------------------------------------------------------------------|
|Wintriss |- |- |- |ISA, |- |
|Engineering | | | |Standalone | |
|Corp. | | | | | |
| | | | | | |
|-----------------------------------------------------------------------------|

Previous section (3) Next section (5)
Previous section (4)

Q5: What DSP operating systems are available?

[Researched and written by Chuck Corley ***@sr.hp.com. Last updated
11/22/96]

Some designers need to use an operating system with a DSP
processor and others don't. The need for DSP operating system
seems to depend on the task(s) to be performed.

For simple DSP tasks where a single function or a few simple
functions are being performed, an operating system is usually not
needed and could get in the way.

When the number and complexity of DSP tasks increase, an operating
system of some type may be needed in order to allocate system
resources (RAM, etc.) and to perform multi-tasking, where several
tasks take turns executing.

Some people have chosen to write their own DSP 'task-switching' or
'job allocating' operating system. Whether this is the right
choice for you depends on how involved your operating system needs
to be, and how much time you have available to spend writing it.

Many companies offer pre-written operating systems that execute on
DSP processors. In exchange for your money they offer to save you
the time and effort of writing and debugging your own 'operating
system' or 'task switcher'.

These companies describe their products as 'real-time' operating
systems. What 'real-time' means can be debated, but it normally
means that the maximum time for the operating system to respond to
an external event is known. The calculation for measuring this
time involves adding together interrupt response time, task
switching time, and other processor and operating system
benchmarks. 'Real-time' also usually means 'fast'. Embedded CPU or
DSP tasks often require a 'real-time' response time.

Prices and features vary. Most companies charge for purchasing
their 'development environment', which allows you to develop code
which will run on their operating system. Some companies also
charge a fee for each product you build that includes their
operating system software. This is usually called a 'target fee'
or 'runtime license' fee. Some operating systems have no 'runtime
license' fees.

It is *very* important to negotiate what the runtime license fee
will be *in advance*. This is not nearly as big a problem as it
used to be, but be careful! If this runtime license fee is not
agreed upon in writing when the development system is purchased,
you could be in a bad position later. You will have invested a lot
of time and effort writing software to work with a particular
operating system, and when your creation is produced you could
discover that the 'runtime license fee' has increased or is more
than you can afford. Considering the amount of work you would have
invested in that operating system, you would be in a very poor
bargaining position.

You will also need to decide if having the source code for the
operating system is important to you. Some companies include it
for free, while others may charge extra.

Features for the DSP operating systems are listed below. Some
vendors claim that a 'No' listing for a feature doesn't
necessarily mean that their operating system is missing something
you need. Many companies state that particular features were not
appropriate for either a 'DSP' or a 'real-time' operating system,
and so they did not implement them. Other companies stated that
some features were not appropriate for their targeted users.

One suggestion for comparing features: Make a list of the features
you *really* need and compare it against the list below.

Disclaimer: Any opinions I've expressed are mine, and not my
employer's. I've tried to make this information current, accurate,
and impartial, but I can't guarantee this. This document is
provided "as is", with no warranty of any kind. You should contact
the vendors listed below for the best and most up-to-date
information. Corrections and suggestions for this section on DSP
operating systems should be addressed to ***@sr.hp.com.

Key To Abbreviations

|-----------------------------------------------------------------------------|
|Abbreviation |Explanation |
|-----------------------------------------------------------------------------|
|Yes |Included with operating |
| |system |
|-----------------------------------------------------------------------------|
|No |NOT available with operating |
| |system |
|-----------------------------------------------------------------------------|
|Soon |Not yet available |
|-----------------------------------------------------------------------------|
|? |Don't know if this is |
| |available |
|-----------------------------------------------------------------------------|
|Opt |Extra-cost option, cost not |
| |available |
|-----------------------------------------------------------------------------|
|Number |Cost of a feature or size of a |
| |feature. Costs are in dollars $$. |
| |Code sizes are in bytes. Numbers may |
| |have been rounded to only 2 or 3 |
| |significant digits. A range (example: |
| |2-5K) means the size or cost varies, |
| |depending on options chosen or which |
| |code libraries are used |
| | |
| | |
|-----------------------------------------------------------------------------|
|Disk |Program is supplied on floppy |
| |disk |
|-----------------------------------------------------------------------------|
|FTP |Program is supplied by FTPing it over |
| |the network |
|-----------------------------------------------------------------------------|

Operating System Features (1/2)

|---------------------------------------------------------------------|
|Op Sys|Byte- |Nucleu|RXTC |SPOX |Helios|Parall|VCOS |Virtuo| |
|tem |BOS |s | | | |el | |so | |
|Featur| | | | | |C | |Nan/Cl| |
|e | | | | | | | |as* | |
| | | | | | | | | | |
| | | | | | | | | | |
|---------------------------------------------------------------------|
|Preemt|Yes |Yes |Yes |Yes |Yes |Yes |No |No |Yes |
|. | | | | | | | | | |
|Task | | | | | | | | | |
|Sched | | | | | | | | | |
| | | | | | | | | | |
|---------------------------------------------------------------------|
|Time |Yes |Yes |Yes |Yes |Yes |Yes |Yes |No |Yes |
|Sliced| | | | | | | | | |
| | | | | | | | | | |
|Schedu| | | | | | | | | |
|le | | | | | | | | | |
|---------------------------------------------------------------------|
|Round |? |Yes |Yes |Yes |Yes |Yes |Yes |Yes |Yes |
|Robin | | | | | | | | | |
|Schedu| | | | | | | | | |
|le | | | | | | | | | |
| | | | | | | | | | |
|---------------------------------------------------------------------|
|Parall|No |No |No |Opt |Yes |Yes |Yes |Yes? |Yes |
|el | | | | | | | | | |
|Proces| | | | | | | | | |
|sing | | | | | | | | | |
| | | | | | | | | | |
|---------------------------------------------------------------------|
|Inter |Yes |Yes |Yes |Yes |Yes |Yes |Yes |Yes |Yes |
|Task | | | | | | | | | |
|Messag| | | | | | | | | |
|es | | | | | | | | | |
| | | | | | | | | | |
|---------------------------------------------------------------------|
|Memory|Yes |Yes |Yes |Yes |Yes |Yes |Yes |No |Yes |
| | | | | | | | | | |
|Manage| | | | | | | | | |
|ment | | | | | | | | | |
|---------------------------------------------------------------------|
|Interr|Yes |No |Yes |Yes |Yes |Yes |Yes |Yes |Yes |
|upt | | | | | | | | | |
|Manage| | | | | | | | | |
|ment | | | | | | | | | |
| | | | | | | | | | |
|---------------------------------------------------------------------|
|Timer |Yes |Yes |Yes |Yes |Yes |Yes |Yes |Yes |Yes |
|Manage| | | | | | | | | |
|ment | | | | | | | | | |
| | | | | | | | | | |
|---------------------------------------------------------------------|
|OS Siz|5-40K |4-20K |12-16K|6K+ |80K+ |11K+ |2K |.8K |40K |
|e | | | | | | | | | |
|(Bytes| | | | | | | | | |
|) | | | | | | | | | |
| | | | | | | | | | |
|---------------------------------------------------------------------|

Operating System Features (2/2)

|-----------------------------------------------------------------------------|
|Operating System Feature |Precise MQX(+M) |DspTask |
| | | |
|-----------------------------------------------------------------------------|
|Preemptive Task Sched. |Yes |Yes |
| | | |
|-----------------------------------------------------------------------------|
|Time-Sliced Scheduling |Yes |No |
| | | |
|-----------------------------------------------------------------------------|
|Round-Robin Scheduling |Yes |No |
| | | |
|-----------------------------------------------------------------------------|
|Parallel Processing |Yes |No |
| | | |
|-----------------------------------------------------------------------------|
|Inter-Task Messages |Yes |Yes |
| | | |
|-----------------------------------------------------------------------------|
|Memory Management |Yes |No |
| | | |
|-----------------------------------------------------------------------------|
|Interrupt Management |Yes |Yes |
| | | |
|-----------------------------------------------------------------------------|
|Timer Management |Yes |Yes |
| | | |
|-----------------------------------------------------------------------------|
|OS Size (Bytes) |23K+ |5-20K |
| | | |
|-----------------------------------------------------------------------------|

Features and Cost (1/2)

|---------------------------------------------------------------------|
|Featur|Byte- |Nucleu|RXTC |SPOX |Helios|Parall|VCOS |Virtuo| |
|es |BOS |s | | | |el | |so | |
|and Co| | | | | |C | |Nan/Cl| |
|sts | | | | | | | |as* | |
| | | | | | | | | | |
| | | | | | | | | | |
|---------------------------------------------------------------------|
|Includ|No |No |No |No |Yes |Yes |No |No |No |
|es C | | | | | | | | | |
|Compil| | | | | | | | | |
|er | | | | | | | | | |
|---------------------------------------------------------------------|
|Includ|No |No |No |No |Yes |Yes |Yes |No |No |
|es Ass| | | | | | | | | |
|embler| | | | | | | | | |
| | | | | | | | | | |
|---------------------------------------------------------------------|
|Source|Yes |Yes |Yes |No |No |No |No |Opt |Opt |
| Code | | | | | | | | | |
|Includ| | | | | | | | | |
|ed | | | | | | | | | |
|---------------------------------------------------------------------|
|Source|C |C |Asm&C |Asm&C |Asm&C |Asm&C |Asm |Asm |Asm&C |
| Code | | | | | | | | | |
|Type | | | | | | | | | |
| | | | | | | | | | |
| | | | | | | | | | |
|---------------------------------------------------------------------|
|Run-Ti|0 |0 |0 |25-200|25-300|50-300|TBD |<32|<11|
|me Lic| | | | | | | | |2 |
|ense | | | | | | | | | |
|$ | | | | | | | | | |
|---------------------------------------------------------------------|
|Develo|2K |5K |1-4.2K|6-12K |1-5.4K|1.5-7 |0 |3.2K |11K |
|p Lice| | | | | |6K | | | |
|nse $ | | | | | | | | | |
| | | | | | | | | | |
| | | | | | | | | | |
|---------------------------------------------------------------------|
|Develo|Site |Produc|Site |Node |Node |Node |N/A |Site |Site |
|p Lice| |t | | | | | | | |
|nse Ty| | | | | | | | | |
|pe | | | | | | | | | |
| | | | | | | | | | |
| | | | | | | | | | |
|---------------------------------------------------------------------|
|Demo |? |Yes |Yes |No |No |No |No |No |Yes |
|Disk | | | | | | | | | |
|Availa| | | | | | | | | |
|ble | | | | | | | | | |
|---------------------------------------------------------------------|

Features and Cost (2/2)

|-----------------------------------------------------------------------------|
|Operating System Feature |Precise MQX(+M) |DspTask |
| | | |
|-----------------------------------------------------------------------------|
|Includes C Compiler |No |No |
| | | |
|-----------------------------------------------------------------------------|
|Includes Assembler |No |No |
| | | |
|-----------------------------------------------------------------------------|
|Source Code Included |Yes |Yes |
| | | |
|-----------------------------------------------------------------------------|
|Source Code Type |C & Asm |C |
| | | |
|-----------------------------------------------------------------------------|
|Run-Time License $$ |$0 |$0 |
| | | |
|-----------------------------------------------------------------------------|
|Develop License $$ |$6K |$120 |
| | | |
|-----------------------------------------------------------------------------|
|Develop License Type |Product |Company |
| | | |
|-----------------------------------------------------------------------------|
|Demo Pgm Available |Disk & FTP |FTP |
| | | |
|-----------------------------------------------------------------------------|

Libraries (1/2)

|---------------------------------------------------------------------|
|Availa|Byte- |Nucleu|RXTC |SPOX |Helios|Parall|VCOS |Virtuo| |
|ble |BOS |s | | | |el | |so | |
|Librar| | | | | |C | |Nan/Cl| |
|ies | | | | | | | |as* | |
| | | | | | | | | | |
| | | | | | | | | | |
|---------------------------------------------------------------------|
|C Run |No |No |No |2K |Yes |Yes |No |Yes |Yes |
|Time | | | | | | | | | |
|Librar| | | | | | | | | |
|y | | | | | | | | | |
|---------------------------------------------------------------------|
|DSP Ma|No |1K |No |4K |0-2K |1-2K |100 |1.8K |1.8K |
|th Lib| | | | | | | | | |
|rary | | | | | | | | | |
|s) | | | | | | | | | |
| | | | | | | | | | |
|---------------------------------------------------------------------|
|Image |No |No |No |No |No |2K |No |5K |5K |
|Proces| | | | | | | | | |
|sing | | | | | | | | | |
|Lib | | | | | | | | | |
| | | | | | | | | | |
|---------------------------------------------------------------------|
|JPEG |No |No |No |No |No |No |Opt |No |No |
|Librar| | | | | | | | | |
|y | | | | | | | | | |
|---------------------------------------------------------------------|
|X Wind|No |No |No |No |930 |No |No |No |No |
|ows Li| | | | | | | | | |
|brary | | | | | | | | | |
|$ | | | | | | | | | |
|---------------------------------------------------------------------|
|PC Win|No |No |No |Opt |730 |No |No |No |3K |
|dows | | | | | | | | | |
|Librar| | | | | | | | | |
|y $ | | | | | | | | | |
|---------------------------------------------------------------------|
|Ethern|No |9.5K |No |No |1-1.3K|No |No |No |No |
|et Lib| | | | | | | | | |
| Cost | | | | | | | | | |
|$ | | | | | | | | | |
|---------------------------------------------------------------------|

Libraries (2/2)

|-----------------------------------------------------------------------------|
|Available Libraries |Precise MQX(+M) |DspTask |
| | | |
|-----------------------------------------------------------------------------|
|C Run-Time Library |No |No |
| | | |
|-----------------------------------------------------------------------------|
|DSP Math Library(s) |No |No |
| | | |
|-----------------------------------------------------------------------------|
|Image Processing Lib |No |No |
| | | |
|-----------------------------------------------------------------------------|
|JPEG Library |No |No |
|-----------------------------------------------------------------------------|
|X Windows Library $ |No |No |
| | | |
|-----------------------------------------------------------------------------|
|PC Windows Library $ |No |No |
| | | |
|-----------------------------------------------------------------------------|
|Ethernet Lib Cost $ |$10K |No |
| | | |
|-----------------------------------------------------------------------------|

Debugging (1/2)

|---------------------------------------------------------------------|
|OS Sys|Byte- |Nucleu|RXTC |SPOX |Helios|Parall|VCOS |Virtuo| |
|tem |BOS |s | | | |el | |so | |
|Level | | | | | |C | |Nan/Cl| |
|Debugg| | | | | | | |as* | |
|er | | | | | | | | | |
| | | | | | | | | | |
| | | | | | | | | | |
|---------------------------------------------------------------------|
|Basic |Yes |Yes |Yes |Yes |Yes |Yes |Yes |No |Yes |
|Debugg| | | | | | | | | |
|ing | | | | | | | | | |
|---------------------------------------------------------------------|
|Perfor|Yes |Yes |No |Yes |Yes |No |Yes |No |Yes |
|mance | | | | | | | | | |
|Timer | | | | | | | | | |
| | | | | | | | | | |
|---------------------------------------------------------------------|
|Debugg|$295 |$750 |$0 |$3.8K |$900 |$950 |TBD |N/A |$0 |
|er Cos| | | | | | | | | |
|t | | | | | | | | | |
| | | | | | | | | | |
|---------------------------------------------------------------------|

Debugging (2/2)

|-----------------------------------------------------------------------------|
|OS System Level Debugger |Precise MQX(+M) |DspTask |
| | | |
|-----------------------------------------------------------------------------|
|Basic Debugging |Yes |Soon |
| | | |
|-----------------------------------------------------------------------------|
|Performance Timer |Yes |No |
| | | |
|-----------------------------------------------------------------------------|
|Debugger Cost |$2K |$0 |
| | | |
|-----------------------------------------------------------------------------|

* Note that only Virtuoso "Nano" and "Classico" products are shown
in the comparison charts. There is also an intermediate "Micro"
product.

Previous section (4)
Seth Benton
2007-04-11 18:18:37 UTC
Permalink
Archive-name: dsp-faq/part4
Last-modified: Wed Apr 11 2007
URL: http://www.bdti.com/faq/

Contributors to the comp.dsp FAQ

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

This FAQ was originally developed by Brad Hards in the early 1990s. Phil
Lapsley and Brad Hards traded off maintenance of the FAQ during the first
several years of its life. Brad was also responsible for converting the
FAQ to HTML. Franz Weller helped maintain the FAQ during 1995. (Brad and
Franz are no longer involved with the FAQ, but we appreciate their help!
Thanks, guys.) Phil Lapsley maintained the list in 1996. Ole Wolf took
over next, and served until 1999; Laurent Bonetto maintained the list from
then until 2001.

The FAQ is currently maintained by Seth Benton. Chuck Corley is the "guest
editor" of the DSP real-time operating system section.

Questions, comments, suggestions, and new material should be sent to
comp-dsp-***@bdti.com.

Most of the information in this FAQ comes from the generous people who
supplied the resources and expertise required. We are grateful to the
following contributors:

|-----------------------------------------------------------------------------|
|Ben Abbott
|***@vuse.vanderbilt.edu |
| | |
|-----------------------------------------------------------------------------|
|Mark Ainsworth
|***@sundance.com
|
|-----------------------------------------------------------------------------|
|William Alves
|***@calvin.usc.edu |
| | |
|-----------------------------------------------------------------------------|
|Tim Baggett
| |
| |

|
|-----------------------------------------------------------------------------|
|Phil Bangayan
|***@gobruins.icsl.ucla.edu |
| | |
|-----------------------------------------------------------------------------|
|Pradeep Bardia
|***@ti.com
|
|-----------------------------------------------------------------------------|
|Peter Barszczewski
|***@bnr.ca
|
|-----------------------------------------------------------------------------|
|Harry Bates
|transtech!***@tc.cornell.edu |
| | |
|-----------------------------------------------------------------------------|
|George Biner
|***@bellind.com
|
|-----------------------------------------------------------------------------|
|Michail Bletsas
|***@cdsp.neu.edu |
| | |
|-----------------------------------------------------------------------------|
|Neil Bowers
|***@chama.eece.unm.edu |
| | |
|-----------------------------------------------------------------------------|
|Kevin Bradley
|kb+@andrew.cmu.edu
|
|-----------------------------------------------------------------------------|
|Annard Brouwer
|***@stack.urc.tue.nl |
| | |
|-----------------------------------------------------------------------------|
|James Brundell
|***@physics.otago.ac.nz |
| | |
|-----------------------------------------------------------------------------|
|Dennis W. Brown
|***@ece.nps.navy.mil |
| | |
|-----------------------------------------------------------------------------|
|Sarah Buckley
|***@khoral.com
|
|-----------------------------------------------------------------------------|
|Joe Campbell
|***@afterlife.ncsc.mil |
| | |
|-----------------------------------------------------------------------------|
|Ralph Campbell
|***@eng.sun.com |
| | |
|-----------------------------------------------------------------------------|
|Brian Carlson
|***@lsil.com
|
|-----------------------------------------------------------------------------|
|Harold Carbonneau
|***@lucent.com |
| | |
|-----------------------------------------------------------------------------|
|Tim Channon
|***@black.demon.co.uk |
| | |
|-----------------------------------------------------------------------------|
|Steve Clift
|***@mail.anacapa.net |
| | |
|-----------------------------------------------------------------------------|
|Howard Cohen
|cda!***@uunet.uu.net |
| | |
|-----------------------------------------------------------------------------|
|Joel Coltoff
|***@wmi.com
|
|-----------------------------------------------------------------------------|
|Chuck Corley
| |
|-----------------------------------------------------------------------------|
|Jutta Degener
|***@cs.tu-berlin.de |
| | |
|-----------------------------------------------------------------------------|
|William J. Delveaux
|***@infoserv.com |
| | |
|-----------------------------------------------------------------------------|
|Malachy Devlin
|***@nallatech.com |
| | |
|-----------------------------------------------------------------------------|
|John Edwards
|***@cix.compulink.co.uk |
| | |
|-----------------------------------------------------------------------------|
|Cole Erskine
|***@voicepump.com
|
|-----------------------------------------------------------------------------|
|Brian Evans
|***@ece.utexas.edu |
| | |
|-----------------------------------------------------------------------------|
|John C. Fisher
|***@dsp.sps.mot.com |
| | |
|-----------------------------------------------------------------------------|
|Dan Frankowski
|***@winternet.com |
| | |
|-----------------------------------------------------------------------------|
|Mark Gallagher
|***@e-eng.hull.ac.uk |
| | |
|-----------------------------------------------------------------------------|
|Robert Gammon
|***@mcimail.com
|
|-----------------------------------------------------------------------------|
|Kevin Gardner
|***@zinc.med.yale.edu |
| | |
|-----------------------------------------------------------------------------|
|Maurice Givens
|***@tellabs.com
|
|-----------------------------------------------------------------------------|
|Stephen A Glow
|***@world.std.com
|
|-----------------------------------------------------------------------------|
|Willy Gonnason
|***@cuug.ab.ca
|
|-----------------------------------------------------------------------------|
|Bill Grenoble
|***@radixii.com
|
|-----------------------------------------------------------------------------|
|Peter Gutmann
|***@cs.aukuni.ac.nz |
| | |
|-----------------------------------------------------------------------------|
|Ed Hall
|***@rand.org
|
|-----------------------------------------------------------------------------|
|Michael Hayes
|***@irl.cri.nz
|
|-----------------------------------------------------------------------------|
|Sverre Holm
|***@ifi.uio.no
|
|-----------------------------------------------------------------------------|
|Joseph Hora
|***@galileo.ifa.hawaii.edu |
| | |
|-----------------------------------------------------------------------------|
|Eric Jacobsen
|***@hwcae.honeywell.com |
| | |
|-----------------------------------------------------------------------------|
|Richard Jaenicke
| |
|-----------------------------------------------------------------------------|
|Jack Jansen
|***@cwi.nl
|
|-----------------------------------------------------------------------------|
|Pete Janzow
|***@prenhall.com |
| | |
|-----------------------------------------------------------------------------|
|Quinn Jensen
|***@qcj.icon.com |
| | |
|-----------------------------------------------------------------------------|
|Robert Jonsson
|***@ludd.luth.se |
| | |
|-----------------------------------------------------------------------------|
|Peter Kabal
|***@ECE.McGill.CA
|
|-----------------------------------------------------------------------------|
|Mohammed Kabir
| |
|-----------------------------------------------------------------------------|
|Alan Kamas
|***@kamas.com
|
|-----------------------------------------------------------------------------|
|Ken Karnofsky
|***@mathworks.com |
| | |
|-----------------------------------------------------------------------------|
|Keith Kendall
|klk3%***@magic.itg.ti.com |
| | |
|-----------------------------------------------------------------------------|
|Richard Kim
|***@math.mit.edu |
| | |
|-----------------------------------------------------------------------------|
|Gints Klimanis
|***@roadkill.esd.sgi.com |
| | |
|-----------------------------------------------------------------------------|
|Greg Koker
|***@analog.com |
| | |
|-----------------------------------------------------------------------------|
|Peter Kootsookos
|***@ieee.org |
| | |
|-----------------------------------------------------------------------------|
|Kurt Kosbar
|***@ee.umr.edu
|
|-----------------------------------------------------------------------------|
|Juhana Kouhia
|***@cc.tut.fi
|
|-----------------------------------------------------------------------------|
|Mark M. Lacey
|***@dsp.sps.mot.com |
| | |
|-----------------------------------------------------------------------------|
|Weimin Liu
|***@nyx.net
|
|-----------------------------------------------------------------------------|
|John Lazzaro
|***@boom.CS.Berkeley.EDU |
| | |
|-----------------------------------------------------------------------------|
|Sergio Liberman
|***@msil.sps.mot.com |
| | |
|-----------------------------------------------------------------------------|
|Fazal Majid
|majid-***@math.yale.edu |
| | |
|-----------------------------------------------------------------------------|
|Stan McClellan
|***@ee.tamu.edu |
| | |
|-----------------------------------------------------------------------------|
|Paul McMahan
|***@cs.utk.edu
|
|-----------------------------------------------------------------------------|
|Renzo Mercanzin
|***@sabrina.dei.unipd.it |
| | |
|-----------------------------------------------------------------------------|
|Theresa Meuse
|***@imaging.com
|
|-----------------------------------------------------------------------------|
|Stephen Moshier
|***@world.std.com |
| | |
|-----------------------------------------------------------------------------|
|Andrew Mullhaupt
|***@ix.netcom.com |
| | |
|-----------------------------------------------------------------------------|
|Phillip Musumeci
|***@ieee.org
|
|-----------------------------------------------------------------------------|
|Lance Norskog
|***@netcom.com
|
|-----------------------------------------------------------------------------|
|Bill Novak
| |
| |

|
|-----------------------------------------------------------------------------|
|Jose Luis Pino
|***@gamow.eecs.berkeley.edu |
| | |
|-----------------------------------------------------------------------------|
|Nina Pinto
|***@ix.netcom.com |
| | |
|-----------------------------------------------------------------------------|
|Gerrit Polder
|***@cpro.agro.nl |
| | |
|-----------------------------------------------------------------------------|
|Jim Prater
|***@FtCollins.NCR.COM |
| | |
|-----------------------------------------------------------------------------|
|Bill Ralston
|***@mitre.org
|
|-----------------------------------------------------------------------------|
|C.S. Ramalingam
|***@mizar.ele.uri.edu |
| | |
|-----------------------------------------------------------------------------|
|Craig F. Reese
|***@super.org
|
|-----------------------------------------------------------------------------|
|Andrew Reilly
|[***@zeta.org.au] |
| | |
|-----------------------------------------------------------------------------|
|Tony Richardson
|***@mpl.ucsd.edu
|
|-----------------------------------------------------------------------------|
|J.S. Robertson
|***@euler.math.usma.edu |
| | |
|-----------------------------------------------------------------------------|
|Tony Robinson
|***@softsound.com
|
|-----------------------------------------------------------------------------|
|Lee Rogers
|***@aplmail.jhuapl.edu |
| | |
|-----------------------------------------------------------------------------|
|Ted Rossin
|***@hpfcrd.fc.hp.com |
| | |
|-----------------------------------------------------------------------------|
|Fritz Rothacher
|***@ieee.org |
| | |
|-----------------------------------------------------------------------------|
|Paul Rubin
|***@america.telebit.com |
| | |
|-----------------------------------------------------------------------------|
|Paul Russell
|***@syma.sussex.ac.uk |
| | |
|-----------------------------------------------------------------------------|
|Stanley Sasaki
|***@tekig7.pen.tek.com |
| | |
|-----------------------------------------------------------------------------|
|Jeff Sasmor
|***@janix.com
|
|-----------------------------------------------------------------------------|
|Louis K. Scheffer
|***@cadence.com
|
|-----------------------------------------------------------------------------|
|Bill Schottstaedt
|***@ccrma.Stanford.EDU |
| | |
|-----------------------------------------------------------------------------|
|W. F. Schroeder
|***@norton.sni.de
|
|-----------------------------------------------------------------------------|
|Tod Schuck
|tod.m.schuck(no spam)@lmco.com |
| | |
|-----------------------------------------------------------------------------|
|Paul Simoneau
|***@kepler.unh.edu
|
|-----------------------------------------------------------------------------|
|Malcolm Slaney
|***@apple.com
|
|-----------------------------------------------------------------------------|
|Greg Smart
|***@citri.edu.au
|
|-----------------------------------------------------------------------------|
|Henry B. Smith
|***@crl.com
|
|-----------------------------------------------------------------------------|
|Andreas Spanias
|***@asu.edu
|
|-----------------------------------------------------------------------------|
|Stephan M. Sprenger
|***@prosoniq.com
|
|-----------------------------------------------------------------------------|
|Andrew Sterian
|***@umich.edu
|
|-----------------------------------------------------------------------------|
|Larry Stewart
|***@crl.dec.com
|
|-----------------------------------------------------------------------------|
|John Sture
| |
| |

|
|-----------------------------------------------------------------------------|
|Derek H. Thille
|***@dvinci.usask.ca |
| | |
|-----------------------------------------------------------------------------|
|Andrew Ukrainec
|***@InfoUkes.com |
| | |
|-----------------------------------------------------------------------------|
|Peter Ullrich
|***@kapsch.co.at |
| | |
|-----------------------------------------------------------------------------|
|Ralf Vandenhouten
|***@Physiology.RWTH-Aachen.DE |
| | |
|-----------------------------------------------------------------------------|
|Antti-Pekka Virtanen |***@utu.fi
|
| | |
|-----------------------------------------------------------------------------|
|Jarkko Vuori
|***@hut.fi
|
|-----------------------------------------------------------------------------|
|Witold Waldman
| |
| |

|
|-----------------------------------------------------------------------------|
|George Warner
|***@lucent.com
|
|-----------------------------------------------------------------------------|
|Phil Woodland
|***@eng.cam.ac.uk
|
|-----------------------------------------------------------------------------|
|Ronnin Yee
| |
| |

|
|-----------------------------------------------------------------------------|
|Randy Yates
|***@ieee.org
|
|-----------------------------------------------------------------------------|

We would also like to express our gratitude to the contributors who are
not in the list above, but are mentioned in the body of the FAQ. Apologies
if we inadvertantly left anybody out! (Please let us know if so).

Get your name here - contribute something! (If you don't want your email
address listed in your contribution, please indicate so.)

Loading...