Prerequisites & Notation

Before You Begin

This chapter assumes familiarity with NumPy array operations (Chapter 5), basic signal processing concepts (Chapter 7), and statistics/Monte Carlo simulation (Chapter 9). We build on the Q-function and BER simulation framework from Chapter 9.

  • NumPy arrays, broadcasting, and vectorized computation (Chapter 5)(Review ch05)

    Self-check: Can you create and manipulate complex-valued NumPy arrays?

  • FFT, convolution, and filtering (Chapter 7)(Review ch07)

    Self-check: Can you compute the cross-correlation of two signals using np.correlate?

  • Monte Carlo simulation and BER estimation (Chapter 9)(Review ch09)

    Self-check: Can you estimate BER with confidence intervals from a vectorized simulation?

Notation for This Chapter

Symbols and conventions used throughout the chapter. Boldface denotes vectors/matrices; j=1j = \sqrt{-1} is the imaginary unit.

SymbolMeaningIntroduced
MMConstellation size (number of symbols)s01
sms_mComplex constellation point for symbol index mms01
EsE_sAverage symbol energys01
EbE_bAverage bit energy; Eb=Es/log2ME_b = E_s / \log_2 Ms01
N0N_0One-sided noise power spectral densitys02
sigman2\\sigma_n^2Noise variance per dimension; σn2=N0/2\sigma_n^2 = N_0/2s02
PbP_bBit error rate (BER)s02
PsP_sSymbol error rate (SER)s02
Q(x)Q(x)Gaussian tail probability Q(x)=12erfc(x/2)Q(x) = \frac{1}{2}\mathrm{erfc}(x/\sqrt{2})s02
h(t)h(t)Matched filter impulse responses03
dmind_{\\min}Minimum Euclidean distance between constellation pointss01