Prerequisites & Notation

Before You Begin

This chapter assumes familiarity with NumPy arrays (Chapter 5) and basic Python scripting. We also use complex-valued arrays and FFTs (Chapter 7) in the phase-plot section. No prior Matplotlib experience is required — we start from scratch.

  • NumPy arrays, broadcasting, and linspace/meshgrid (Chapter 5)(Review ch05)

    Self-check: Can you create a 2D grid with np.meshgrid and evaluate a function on it?

  • Complex numbers and magnitude/phase (Chapter 5)(Review ch05)

    Self-check: Do you know that np.abs(z) gives the magnitude and np.angle(z) gives the phase?

  • Basic Python: lists, dicts, f-strings(Review ch01)

    Self-check: Can you write a for-loop that builds a list of formatted strings?

Notation for This Chapter

Symbols and conventions used throughout this chapter.

SymbolMeaningIntroduced
fig\texttt{fig}Matplotlib Figure object — the top-level containers01
ax\texttt{ax}Matplotlib Axes object — the plotting surfaces01
Eb/N0E_b/N_0Bit energy to noise spectral density ratio (dB), used in BER plotss02
PbP_bBit error rate (probability)s02
DPIDPIDots per inch — controls figure resolutions05
H(f)H(f)Complex-valued frequency responses06
H(f)|H(f)|, H(f)\angle H(f)Magnitude and phase of the frequency responses06