PE2-2.1 MATLAB Fundamentals & Linear Algebra

Standard communication theory, taught through simulation — written September 2026

What this is and why it exists

This course teaches communication theory by simulating it. Before any of that, you need to be fluent in the tool and in the linear algebra it assumes.

The single biggest improvement most students make here is a change of habit. Stop thinking element by element and start thinking in whole arrays.

The vocabulary

  • Array — the basic data structure. Almost everything is one, including a single number.
  • Vectorised expression — an operation written on whole arrays rather than inside a loop.
  • Indexing — selecting elements from an array. The first element is numbered one.
  • Slice — a range of elements taken from an array.
  • Floating point — how numbers are actually stored, with limited precision.
  • Eigenvector — a vector an operation leaves pointing the same way, only scaled.
  • Eigenvalue — the scaling factor for that vector.
  • Transpose — flipping a matrix about its diagonal.
  • Conjugate transpose — transposing and conjugating every entry.
  • Hermitian matrix — a matrix equal to its own conjugate transpose.
  • Convolution — the operation that describes filtering a signal.

The mental model

Start with the change of habit, because everything else is faster once you have it. A loop that adds one to each element of a long array does the right thing slowly and reads poorly. Written as one expression on the whole array it is faster and it says what you meant. Whenever you find yourself writing a loop over an array, stop and ask whether the operation exists on the array itself. Usually it does.

Indexing is where the errors live, and two conventions cause most of them. The first element is numbered one, not zero. And a colon means every element along that dimension, so it is how you take a whole row or a whole column. Practise slicing until it is automatic, because everything else in the course is built on it.

Floating point deserves a moment because you will be checking simulated results against theory. Stored numbers have limited precision, so a computed value and its exact value differ slightly. Two quantities that should be identical will not compare equal, and a difference of one part in a million billion is agreement, not a discrepancy.

The linear algebra section is not filler. Matrix multiplication is the operation the whole subject runs on. Eigenvalues and eigenvectors come straight back in the antenna material at the end of this course.

An eigenvector of an operation is a direction the operation does not turn. It only stretches or shrinks it, and the eigenvalue is by how much. When a system is described by a matrix, its eigenvectors are the inputs that pass through unchanged in shape. That is why they appear wherever a system is split into independent pieces.

Complex numbers deserve care, and one distinction causes a particular kind of bug. The transpose flips a matrix about its diagonal. The conjugate transpose flips it and conjugates every entry. For real matrices they are identical, so a mistake goes unnoticed on real test data and then produces plausible but wrong answers on complex signals. Signal processing wants the conjugate transpose almost always. That is the version giving a real, positive value when a vector is multiplied by itself.

A Hermitian matrix equals its own conjugate transpose. Such matrices have real eigenvalues, which is why they turn up wherever a physical quantity like power or energy is being described.

Convolution closes the topic and is where the course turns from mathematics towards communication. Filtering a signal is convolving it with the filter's impulse response. Every operation downstream, from pulse shaping to matched filtering, is that one operation wearing a different name.

What you should now be able to explain or do

Replace a loop over an array with a vectorised expression. Index and slice confidently, remembering that numbering starts at one. Say why exact equality is the wrong test for two computed floating point values. Explain what an eigenvector is in words. State the difference between transpose and conjugate transpose, and say why the mistake hides on real data.

Check yourself

It runs much faster and it states the intent directly. A loop over an array usually means an operation on the whole array was overlooked.

The first element is numbered one, and a colon means every element along that dimension.

Floating point storage has limited precision. Each result is rounded slightly differently, so a tolerance is needed rather than exact equality.

On real data the two are identical, so the mistake passes every real test. It then produces plausible wrong answers on complex signals.

A direction the operation does not turn. It is only scaled, and the eigenvalue says by how much.

Go deeper

Back to MATLAB Fundamentals & Linear Algebra: work through the checklist