Coding in communication systems
Overall Course Objectives
To provide an introduction to coding in communication systems and cyber technology:
– Error-correcting coding for communication channels
– Coding of information sources for data compression
– Encryption of information to safeguard the content.
See course description in Danish
Learning Objectives
- explain linear block codes and their most important properties
- explain and use encoders and decoders for common block codes as Hamming, BCH, and RS
- explain convolutional codes and their most important properties
- describe and apply the Viterbi decoding algorithm for convolutional codes
- simulate coding systems
- recognize the entropy concept
- perform Huffman coding of simple information sources
- explain the application of prediction in source coding
- explain the most important elements of coding of images and video (JPEG, MPEG) and be able to apply and parameterize such coders
- know classical methods of cryptography
Course Content
Modern communication and cyber systems use one or more instances of coding and the goal of this course is to provide an introduction to such coding systems. The present course has an application perspective supported by practical exercises and projects which may be solved and executed in Python or MATLAB. The theories for coding systems are quite deep and these issues are treated in several other DTU courses. The course contains the following subjects:
• Channel coding (error-correction)
– Linear block codes: Principles. Hamming, RS, and BCH from a user perspective
– Convolutional codes: Encoding and decoding (Viterbi)
• Source coding (data compression)
– The entropy concept
– Huffman-coding
– Use of linear prediction of signals
– Video and image coding
– MPEG and JPEG
• Cryptography (safeguarding and protection of information)
– Classical block cryptography
– McEliece’s crypto-system
The lectures use detailed slides The exercises usually require programming in Python (or if you prefer MATLAB). At the end of the course, a small project on a subject chosen by the student is to be carried out and a report should be handed in.
Teaching Method
Lectures, exercises and project work
Faculty
Remarks
The course is introductory and many advanced courses are offered in these subjects.
It is assumed that the students bring a laptop computer and have access to programming in Python, MATLAB, or C/C++.
Limited number of seats
Maximum: 40.
Please be aware that this course has a limited number of seats available. If there are too many applicants, a pool will be created for the remainder of the qualified applicants, and they will be selected at random. You will be informed 8 days before the start of the course, whether you have been allocated a spot.