home *** CD-ROM | disk | FTP | other *** search
- Path: senator-bedfellow.mit.edu!bloom-beacon.mit.edu!newsfeed.stanford.edu!headwall.stanford.edu!newshub.sdsu.edu!elnk-nf2-pas!elnk-pas-nf1!newsfeed.earthlink.net!sn-xit-02!sn-xit-01!sn-post-02!sn-post-01!supernews.com!corp.supernews.com!bertha.bdti.com!not-for-mail
- From: comp-dsp-faq@bdti.com (Kenton Williston)
- Newsgroups: comp.dsp,comp.answers,news.answers
- Subject: comp.dsp FAQ [2 of 4]
- Approved: news-answers-request@MIT.Edu
- Supersedes: <compdsp.2_1075850452@bdti.com>
- Followup-To: poster
- Date: Thu, 18 Mar 2004 18:09:25 +0000 (UTC)
- Organization: Berkeley Design Technology, Inc.
- Message-ID: <compdsp.2_1079633358@bdti.com>
- Sender: williston@bdti.com
- Distribution: world
- Expires: 1 May 2004 18:09:18 GMT
- References: <compdsp.1_1079633358@bdti.com>
- Summary: This is a periodic posting to comp.dsp that gives information
- on frequently asked questions asked in this newsgroup.
- X-Complaints-To: abuse@supernews.com
- Lines: 1323
- Xref: senator-bedfellow.mit.edu comp.dsp:155136 comp.answers:56627 news.answers:268476
-
- Archive-name: dsp-faq/part2
- Last-modified: Thu Mar 18 2004
- 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
- netlib@ORNL.GOV with "send help" in the subject field.
-
- To Obtain:
- For Europe:
-
- Internet: netlib@nac.no
- EARN/BITNET: netlib%nac.no@norunix.bitnet
- X.400: s=netlib; o=nac; c=no;
- EUNET/uucp: nac!netlib
-
- For 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
- statlib@temper.stat.cmu.edu.
-
- The symbolic algebra system REDUCE is supported by
- reduce-netlib@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.ta
- r.Z.
-
- LPC-10 (2.4 Kbps) is available from
- ftp://svr-ftp.eng.cam.ac.uk/pub/comp.speech/coding/lpc10-1.0.ta
- r.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., phil@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,
- 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, jpcampb@afterlife.ncsc.mil, with
- additions from Dan Frankowski, drankow@winternet.com, and Ed Hall,
- edhall@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 Jack.Jansen@cwi.nl). It is very programmer-friendly. The
- ADPCM code used is the Intel/DVI ADPCM code which is being
- recommended by the IMA Digital Audio Technical Working Group.
- It allows the following calls:
-
- adpcm_coder(short inbuf[], char outbuf[], int nsample,
- struct adpcm_state *state);
- adpcm_decoder(char inbuf[], short outbuf[], int nsample,
- struct adpcm_state *state);
-
- 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/.
-
- This is also available as:
- ftp://svr-ftp.eng.cam.ac.uk/pub/comp.speech/coding/G711_G722_G7
- 23.tar.gz
-
- [From Dan Frankowski, dfrankow@winternet.com; Jack Jansen,
- 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 jutta@cs.tu-berlin.de, Carsten Bormann
- cabo@cs.tu-berlin.de)
-
- Communications and Operating Systems Research Group, TU Berlin
- Fax: +49.30.31425156, Phone: +49.30.31424315
-
- To obtain:
- ftp://svr-ftp.eng.cam.ac.uk/pub/comp.speech/coding/gsm-1.0.6.ta
- r.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, dfrankow@winternet.com; Jutta Degener,
- jutta@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.]
-
- Another interesting piece of information on pitch perception
- can be found at
- http://www.dspdimension.com/html/timepitch.html. [Stephan M.
- Sprenger, sms@prosoniq.com]
- _________________________________________________________________
-
- 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,
- tchannon@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, 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, cfreese@super.org; Sepehr
- Mehrabanzad, sepehr@falstaff.dev.cdx.mot.com; Keith Kendall,
- KLK3%mimi@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, edhall@rand.org:]
-
- For a start, look at Multirate Digital Signal Processing by
- Crochiere and Rabiner (see FAQ section 1.1).
-
- Almost any technique for producing good digital low-pass
- filters will be adaptable to sample-rate conversion. 44.1:48
- and vice-versa is pretty hairy, though, because the lowest
- whole-number ratio is 147:160. To do all that in one go would
- require a FIR with thousands of coefficients, of which only
- 1/147th or 1/160th are used for each sample--the real problem
- is memory, not CPU for most DSP chips. You could chain several
- interpolators and decimators, as suggested by factoring the
- ratio into 3*7*7:2*2*2*2*2*5. This adds complexity, but reduces
- the number of coefficients required by a considerable amount.
-
- [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/BandlimitedInter
- polation.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, f.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 wavelet@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 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-tools@rice.edu (or ramesh@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 [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.
-
- For more information on the IEEE-754 format, see James Carr's
- "Numerical Analysis" class notes at Florida State University,
- http://www.scri.fsu.edu/~jac/MAD3401/Backgrnd/ieee.html.
-
- 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://home.earthlink.net/~yatescr/papers.htm.
-
- Randy Yates [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; Motorola, 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 DSP Processors and
- Cores" in both HTML and PDF formats. 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.
-
- Motorola:
-
- 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.
-
- [Ole Wolf, wolf@bdti.com]
- _________________________________________________________________
-
- Q3.3: Software for Analog Devices DSPs
-
- Updated 05/08/02
-
- 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, egil@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.ww.tu-freiberg.de/~pberg/fgm/support/index.html.
-
- [Theo Markettos atm26@cam.ac.uk]
- _________________________________________________________________
-
- Q3.3.3: Where can I get an assembler for the ADSP-2105?
-
- John Sture has developed an assembler for the Analog Devices
- ADSP-2105. The latest version can be obtained from
- http://www.suresoft.ca. (Follow the links to the FTP site and
- select beta0.4.1src.tar.gz.) Requires Analog Devices' ld21.exe
- version 5.1 linker or equivalent for linking executables.
- Source code to the assembler is included under the terms of the
- GNU public license.
-
- [John Sture, jsture@vcn.bc.ca]
- _________________________________________________________________
-
- Q3.3.4: 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/support/Design_Support.html, or at their
- FTP site at ftp://ftp.analog.com.
-
- [Analog Devices DSP Applications, 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.lucent.com/micro/wam/tse/.
- _________________________________________________________________
-
- Q3.5: Software for Motorola DSPs
-
- Updated 05/07/02
-
- Motorola provides free software development tools that may be
- downloaded from the Motorola Web site at
- http://e-www.motorola.com/webapp/sps/site/prod_summary.jsp?code
- =MSW3SDK000AA&nodeId=01M983916044937.
-
- Q3.5.1: Where can I get a free assembler for the Motorola DSP56000?
-
- A free assembler for the Motorola DSP56000 exists, thanks to
- Quinn Jensen, jensenq@zdomain.com. The current version is 1.2.
- It is also available at ftp://ftp.zdomain.com/pub/jensenq/a56
- and http://www.zdomain.com/a56.html.
- _________________________________________________________________
-
- Q3.5.2: Where can I get a free C compiler for the Motorola DSP56000?
-
- There are two separate compiler sources for the Motorola
- DSP56000. One is the port of gcc 1.40 done by Andrew Sterian
- (asterian@umich.edu) and the other is a port of gcc 1.37.1 done
- by Motorola and returned to the FSF. Andrew's port has bowed to
- Motorola's version. Both may be portable to gcc2.x.x with some
- effort required. Neither of these comes with an assembler, but
- you can get a free DSP56000 assembler elsewhere (see question
- 3.5.1, above). The Motorola gcc source is available for FTP
- from:
- ftp://nic.funet.fi/pub/ham/dsp/dsp56k-tools/dsp56k-gcc.tar.Z
- and
- ftp://mirriwinni.cse.rmit.edu.au/pub/uP/56k/g56k.tar.gz-1996.
-
- From Andrew Sterian, asterian@umich.edu: "My DSP56K compiler,
- while not supported nor as well tested as Motorola'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, Motorola 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 Motorola 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.
- <<<<<<< 3.htm
-
- Pete gray has announced the availability of a Small C
- cross-compiler (with source) and assembler for the Motorola
- DSP56800, available for download from
- http://home.attbi.com/~petegray. Targetting a simple DOS-box
- host, developed and tested using djgpp
- (http://www.delorie.com/djgpp/) and Metrowerks CodeWarrior, in
- conjunction with NMI's (www.newmicros.com) IsoPod(TM) - based
- on =======
- href="http://www.newmicros.com">http://www.newmicros.com
-
- ) IsoPod(TM) - based on >>>>>>> 1.7 the DSP56F805. The
- assembler generates output suitable for Motorola's free JTAG
- flash loader.
-
- Small C language reference available online at
- http://www.ddjembedded.com/languages/smallc/
-
- Pete also asks for comments and feedback to be sent to
- petegray@ieee.org =======
-
- Pete Gray has announced the availability of a Small C
- cross-compiler (with source) and assembler for the Motorola
- DSP56800, available for download from
- http://home.attbi.com/~petegray. 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 Motorola's free JTAG flash loader.
-
- Small C language reference available online at
- http://www.ddjembedded.com/languages/smallc/
-
- Pete also asks for comments and feedback to be sent to
- petegray@ieee.org >>>>>>> 1.5
- _________________________________________________________________
-
- Q3.5.3 Where can I get a disassembler for the Motorola 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,
- thorgal@wmfh.org.pl]
- _________________________________________________________________
-
- Q3.5.4: Where can I get algorithms and libraries for Motorola DSPs?
-
- Motorola 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 Motorola DSP56001 code?
-
- Try FTP at ccrma-ftp.stanford.edu. The /pub/ directory contains
- free code for the Motorola DSP56001 and the NeXT platform.
- [bil@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,
- ftp://cherupakha.media.mit.edu/pub/projects/6811/sim6811/
- (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 05/07/02
-
- Q3.6.1: Where can I get free algorithms or libraries for TI DSPs?
-
- nic.funet.fi has some old, apparently public domain, assembler
- and related tools from TI for the TMS320 family. The directory
- is /pub/ham/dsp.
-
- [Antti-Pekka Virtanen, antsu@utu.fi]
-
- TI has a number of free algorithms available on their website
- at
- http://dspvillage.ti.com/docs/sdstools/sdscommon/showsdsinfo.jh
- tml?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, and on
- mirriwinni.cse.rmit.edu.au. The TI site is the official one,
- but has no user contributed software. The file:
- ftp://mirriwinni.cse.rmit.edu.au/mirrors/tibbs/00readme (might
- be broken) provides further guidance. Please restrict FTP
- session to outside of 8 am to 6 pm local time (10 pm to 8 am
- GMT). [Brad Hards, bradh@gil.com.au]
-
- { If anyone knows of any other sources for TI DSP software,
- please let us know at comp-dsp-faq@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://www.ti.com/sc/docs/tools/index.htm.
- _________________________________________________________________
-
- 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, m.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, 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, m.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://anchovy.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, bevans@combo.ece.utexas.edu]
-
- Herman Ten Brugge (haj.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, m.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:
- ftp://mirriwinni.cse.rmit.edu.au/mirrors/tibbs/UserContributed.
-
- Supports: Transtech, Hunt, and Traquair boards hosted by DOS,
- SunOS, Linux (a PC unix)
-
- Previous section (2) Next section (4)
-