Electrical Engineering 121 — Introduction to Digital Communication Systems (4 Units)

Course Overview



The official prerequisites for this course are EE120 and EE126, both of which are used extensively throughout the course. Math54 (a prerequisite for EE120) and EE123 (digital signal processing) can also be helpful during certain parts of the course. Note that EE123 is not required for this course, but highly recommended especially for DFT relations to OFDM.

Topics Covered

  • Idea of digital communication (bits)
  • Source coding
  • Basic wireline communication
  • AWGN (additive white gaussian noise model)
  • Error correction and reliable communication
  • ISI and waveform channels
  • OFDM (orthogonal frequency division multiplexing)
  • Interference
  • Wireless


Course Work

Time Commitment

Choosing the Course

When to take

What's next?

There are no undergraduate courses that directly build off of EE121.

EE224A is a graduate course intended as an introduction to digital communication for first-year graduate-level students. While it does cover more material than EE121, many of the topics are the same and there is a great deal of overlap--in fact, EE121 and EE224A once shared the same lecture. EE224A does not have EE121 as an official prerequisite.

EE224B is a course on Wireless Communication that has EE121 and EE226A as official prerequisites.

Usefulness for Research or Internships

For those interested in working in communications whether in industry or research, this course provides a great introduction and surveys a lot of key ideas used in communications and a little bit of information theory.

Additional Comments/Tips

Important topics are covered throughout the course and certain topics are covered in more depth in their own courses (e.g. information theory, wireless communication).

Seeing the big picture of how digital communication works as a huge block diagram is mind-blowing.

There is no EECS class that directly teaches how to program in MATLAB, but for many courses -- especially EE121 -- MATLAB can be a very useful tool for running simulations. Most of the problem sets in this class have some MATLAB component, and for students who have never used MATLAB before, the first couple problem sets can be somewhat difficult. Having some prior experience with MATLAB can be extremely helpful. MATLAB is a simple language and very easy to learn, so just tinkering around can be a good way to pick up some MATLAB experience before diving into EE121.

There are a lot of coding and modulation schemes covered in this course, and it can be cumbersome to follow. Its a good idea to spend some time comparing and contrasting these schemes in terms of rate, reliability, and power in order to differentiate them. Also EE126 is a heavy prerequisite for the course. Understanding Gaussian noise, white processes, cross-correlation, Bayes Rule, Markov chains, WSS processes, etc. is very important. In addition, it might be a good idea to brush up on linear algebra as well. This will be helpful in understanding matched filter, zero-forcing equalizers, and MMSE equalizers. Source coding relies heavily on a student's understanding of information storage. Understanding the idea of bits, trits, etc. (from CS61C) is necessary. A lot of bounds are used for approximations. Knowing these bounds becomes very helpful in solving homework problems.