If you think I should include something here, please email me details.

Web Links for FEC Products--Viterbi, Reed-Solomon, and Turbo Codes

4i2i offers C++, VHDL, and Verilog code for convolutional encoders/Viterbi decoders. In addition, they offer Reed-Solomon and Golay code products.

Advanced Hardware Architectures offers turbo product code encoder/decoders, Reed-Solomon encoder/decoders, and a concatenated Viterbi/Reed-Solomon decoder.

The Communications Research Centre of Canada offers Turbo and Viterbi codecs for the PC platform.  They claim that their Turbo decoder has a throughput of over 400 kbps for a full four-iteration decoder, and that their Viterbi decoder has a throughput of over 1 Mbps for rate 1/2, K = 7, both on a 400 MHz Pentium II.

Efficient Channel Coding, Inc. developed the turbo product coding techniques implemented by Advanced Hardware Architectures in their AHA4501 device.

Istari Design, Inc. used to offer Reed-Solomon decoder cores. They also had a Viterbi Decoder Simulation Accelerator, and they were developing Viterbi decoder cores. The "Technology" section of their web page was very interesting.  A reader has informed me that they are now part of Conexant.  I havenít investigated further at this time.

Qualcomm offers a Viterbi/Trellis decoder, the Q1900.  I have been told that the last-time-buy deadline on this part is March 15, 2001.

Small World Communications offers a MAP decoder implementation for Xilinx FPGAs, suitable for use as a component of a turbo code decoder.

The ASIC and Custom Products Division of Stanford Telecom developed a number of different Viterbi decoder chips.  This group is now part of Intel.  You can find their products listed on the Intel Developer's web site .

Web Links for FEC Articles, Papers, Class Notes, Patents, etc.

Brian Joseph of Alantro (now part of Texas Instruments) has written a nice Java applet to run a step-by-step simulation of a Viterbi decoder.  Visit the Viterbi Algorithm Workshop and try it out.

Dr. Robert H. Morelos-Zaragoza, currently at the University of Tokyo, has a comprehensive page listing links to source code for error-control coding programs in C and links to other pages with more information on error-control coding. Reed-Solomon, convolutional/Viterbi, BCH, and Golay codes and Galois-field calculators are among the topics covered.

There is a set of nicely-done lecture notes on Digital Communications, by Dr. Janak Sodha of the Department of Computer Science, Mathematics & Physics at the University of the West Indies in Bridgetown, Barbados. Now there's a job.... Unfortunately for us, Dr. Sodha is in the process of publishing a textbook on the topic, and his publisher has made him password-protect the Digital Communications lecture notes due to copyright concerns.  But some of the other course material is open-access, and may be useful to you.  Contact Dr. Sodha for more info on his forthcoming book.

Phil Karn, KA9Q, has published the source code for his Reed-Solomon, Viterbi, and Fano decoders.  His main FEC code page is here .  Phil recently released the source code for Viterbi and Reed-Solomon decoders designed to take advantage of the Intel® SIMD instruction sets.  His Viterbi decoder reaches speeds of 14 Mbps running on a 1.8 GHz Intel® Pentium® 4 Processor.  Phil also has a descriptive page on convolutional code decoders for amateur radio. Includes the Fano sequential decoding algorithm as well as the Viterbi algorithm.

There is a very useful web page on turbo codes at this JPL site maintained by Fabrizio Pollara and Dariush Divsalar. It contains detailed information about turbo codes with emphasis on deep-space applications, and contains a good bibliography on turbo codes as well as links to other turbo coding research sites. They also have links to commercial turbo codec providers.  Another extensive bibliography on turbo coding can be found at this University of Virginia site .

If you want to be drowned in information about Viterbi decoders (and perhaps, keep yourself out of trouble), go to the US Patent and Trademark Office patent search site and do a Boolean Search for all years on "Viterbi decoder" in any field. When I did it on February 14, 1999, I got 702 hits. On November 27, 2002, that number had more than doubled, to 1580.  Other interesting search terms are "Reed-Solomon," (1304 hits) "parallel concatenated," (7 hits) and "turbo code" (7 hits).

Some Books about Digital Communications

L. W. Couch, II, Digital and Analog Communication Systems, 4 th ed. New York: Macmillan Publishing Company, 1993.

S. Haykin, Communication Systems, 3rd ed. New York: John Wiley & Sons, 1994.

T. McDermott, Wireless Digital Communications: Design and Theory . Tucson, AZ: Tucson Amateur Packet Radio Corporation, 1996.

J. G. Proakis, Digital Communications, 3rd ed. Boston, MA: WCB/McGraw-Hill,1995.

J. G. Proakis and M. Salehi, Contemporary Communication Systems Using MATLAB®. Boston, MA: PWS Publishing Company, 1998.

M. S. Roden, Digital Communication Systems Design. Englewood Cliffs, NJ: Prentice Hall, 1988.

Some Books about Forward Error Correction

S. Lin and D. J. Costello, Error Control Coding. Englewood Cliffs, NJ: Prentice Hall, 1982.

A. M. Michelson and A. H. Levesque, Error Control Techniques for Digital Communication. New York: John Wiley & Sons, 1985.

W. W. Peterson and E. J. Weldon, Jr., Error Correcting Codes, 2 nd ed. Cambridge, MA: The MIT Press, 1972.

V. Pless, Introduction to the Theory of Error-Correcting Codes, 3rd ed. New York: John Wiley & Sons, 1998.

C. Schlegel and L. Perez, Trellis Coding. Piscataway, NJ: IEEE Press, 1997

S. B. Wicker, Error Control Systems for Digital Communication and Storage . Englewood Cliffs, NJ: Prentice Hall, 1995.

Some Papers about Convolutional Coding with Viterbi Decoding

For those interested in VLSI implementations of the Viterbi algorithm, I recommend the following paper and the papers to which it refers (and so on):

Lin, Ming-Bo, "New Path History Management Circuits for Viterbi Decoders," IEEE Transactions on Communications, vol. 48, October, 2000, pp. 1605-1608.

Other papers are:

G. D. Forney, Jr., "Convolutional Codes II: Maximum-Likelihood Decoding," Information Control, vol. 25, June, 1974, pp. 222-226.

K. S. Gilhousen et. al., "Coding Systems Study for High Data Rate Telemetry Links," Final Contract Report, N71-27786, Contract No. NAS2-6024, Linkabit Corporation, La Jolla, CA, 1971.

J. A. Heller and I. M. Jacobs, Viterbi Decoding for Satellite and Space Communications," IEEE Transactions on Communication Technology, vol. COM-19, October, 1971, pp. 835-848.

K. J. Larsen, "Short Convolutional Codes with Maximal Free Distance for Rates 1/2, 1/3, and 1/4," IEEE Transactions on Information Theory, vol. IT-19, May, 1973, pp. 371-372.

J. P. Odenwalder, "Optimum Decoding of Convolutional Codes," Ph. D. Dissertation, Department of Systems Sciences, School of Engineering and Applied Sciences, University of California at Los Angeles, 1970.

A. J. Viterbi, "Error Bounds for Convolutional Codes and an Asymptotically Optimum Decoding Algorithm," IEEE Transactions on Information Theory , vol. IT-13, April, 1967, pp. 260-269.

Some Papers about Turbo Coding

An excellent series of introductory articles on turbo coding appeared in the January through April, 1998 issues of Personal Engineering and Instrumentation News. Although PE&IN appears to be defunct, the author is in the process of working with ChipCenter to make these articles available on the ChipCenter Column Archives website .  The articles are as follows:

C. Gumas, "Turbo codes rev up error-correcting performance," (Part 1), PE&IN, January, 1998, pp. 61-66.

C. Gumas, "Turbo codes build on classic error-correcting codes and boost performance," (Part 2), PE&IN, February, 1998, pp. 54-63.

C. Gumas, "Turbo Codes propel new concepts for superior codes," (Part 3), PE&IN, March, 1998, pp. 65-70.

C. Gumas, "Win, place, or show, Turbo Codes enter the race for next generation error-correcting systems," (Part 4), PE&IN, April, 1998, pp. 54-62.

Another good introductory article that was published recently in an IEE (UK) magazine is as follows:

A. Burr, "Turbo-codes:  the ultimate error control codes?"  Electronics and Communication Engineering Journal, August, 2001, pp. 155-165.

The seminal paper on the MAP algorithm upon which the original turbo-code decoder was based is:

L.R. Bahl, J. Cocke, F. Jelinek , J. Raviv.  "Optimal Decoding of Linear Codes for Minimizing Symbol Error Rate."  IEEE Transactions on Information Theory,
IT-20, pp. 284-287, March 1974

Other papers of interest are (but refer to the web pages mentioned above for extensive bibliographies):

C. Berrou, A. Glavieux, and P. Thitimajshima, "Near Shannon limit error-correcting coding and decoding," Proceedings of the ICC '93, May, 1993, pp. 1064-1070.

C. Berrou, "Some clinical aspects of turbo codes," International Symposium on Turbo Codes, September, 1997, pp. 26-31.

S. Benedetto and G. Montorsi, "Design of parallel concatenated convolutional codes," IEEE Transactions on Communications, vol. 44, May, 1996.

S. Benedetto, D. Divsalar, G. Montorsi, and F. Pollara, "Algorithm for continuous decoding of turbo codes," Electronic Letters, vol. 32 no. 4, February, 1996.

R. M. Pyndiah, "Near-optimum decoding of product codes: block turbo codes," IEEE Transactions on Communications, vol. 46, August, 1998, pp. 1003-1010.

Click on one of the links below to go to the beginning of that section:

Description of the Algorithms
Simulation Source Code Examples
Example Simulation Results
About Spectrum Applications...

Copyright 1999-2002, Spectrum Applications