Elektro- och informationsteknik

Lunds Tekniska Högskola | Lunds universitet


EDI042 Kodningsteknik, 2015/2016


Coding is at the core of any modern communication system; reliable communication would not be possible without the use of coding. When digital data is transmitted from one place to another it is always prone to noise or interference occurring in the transmission medium. For this reason all modern communication systems use some error correcting codes that add redundancy to the original data in order to protect it from errors occurring during the transmission. As a simple example, assume that each data symbol is repeated three times. From the received sequence ’010’ one would then conclude that the original data symbol more likely was a ’0’ than a ’1’. In this example we are able to correct one error by decoding according to a simple majority vote. The number of correctable errors can easily be increased by increasing the number of repetitions. But increasing the amount of redundancy reduces the data rate and hence the bandwidth efficiency of the system. 



Since bandwidth is a very limited and expensive resource, in a practical system we need to find more efficient codes that can correct a large number of errors by means of decoding algorithms with feasible complexity. A fundamental limit for reliable communication was derived by Shannon in 1948 in his famous coding theorem. He showed that with coding it is possible to transmit data with an arbitrary accuracy if the rate is below a characteristic parameter of the channel, called channel capacity.

Since Shannon's theoretical characterization of the fundamental limit, the challenge of channel coding has been to find efficient algorithms that can be used in practice. 


Application examples:

  • Mobile communication:
    • coding protects against noise and fading, which leads to burst errors of several hundreds of bits
    • GSM system uses convolutional codes with interleaving
    • UMTS / LTE / WiFi: more modern codes with iterative decoding 
  • Data storage:
    • coding protects against dirt, scratches or instabilities in the reading/writing process
    • optical storage: CD / DVD
    • magnetic storage: hard disks, backup-media
    • flash memory
  • Deep space communications:
    • strong protection against errors is essential because retransmissions are not an option
    • was already used in Voyager mission to Jupiter, Saturn, Uranus, and Neptune
    • modern CCSDS standard: uses modern LDPC codes
  • 2D Barcodes:
    • quick response codes (QR codes, see example picture)
    • use Reed-Solomon error correction
    • different levels of protection possible


Example pictures: QR codes remain readable when getting distorted or dirty (for example by coffee spots) 

Dirty QR code exampleQR code example  



Aim of this course:

This course gives an introduction to error correction coding (also called error control coding or channel coding). After taking this course you should understand the basic principles of block- and convolutional codes and how to characterize their performance, know different constructions that are most commonly used in digital communication systems and know how their encoding and decoding can be implemented in practice.



Coding is obviously closely connected to Information Theory (EITN45) and Digital Communications (ETT051), but these courses are not necessarily required for following this course.