Chapter Summary

Chapter Summary

Key Points

  • 1.

    Master scipy.stats for distribution work. Every distribution provides a unified API: pdf, cdf, rvs, fit, ppf. Use scipy.stats for standard distributions and the Cholesky decomposition for generating correlated Gaussian vectors: x=Lz\mathbf{x} = \mathbf{L}\mathbf{z} where R=LLT\mathbf{R} = \mathbf{L}\mathbf{L}^T. For complex Gaussians, divide by 2\sqrt{2} to get unit variance.

  • 2.

    Always report confidence intervals. A bare BER number is scientifically meaningless. The CI width scales as 1/N1/\sqrt{N}: halving the CI requires 4x the samples. Use Clopper-Pearson exact intervals for small error counts and bootstrap for non-standard statistics. Run at least 100 errors per SNR point.

  • 3.

    Vectorize and validate your Monte Carlo simulations. Process all bits as NumPy arrays, never in Python loops (100-1000x speedup). Use np.random.default_rng() with SeedSequence.spawn() for reproducible parallel simulations. Always validate against a known theoretical result (BPSK AWGN) before simulating complex systems.

  • 4.

    Generate channels with correct statistics. Rayleigh = CN(0,1)\mathcal{CN}(0,1); Ricean adds a LOS component scaled by K/(K+1)\sqrt{K/(K+1)}; Kronecker MIMO uses H=LrHwLtT\mathbf{H} = \mathbf{L}_r \mathbf{H}_w \mathbf{L}_t^T. Always verify envelope distribution, mean power, spatial correlation, and temporal autocorrelation (J0J_0 for Jakes).

  • 5.

    Use variance reduction for low BER. For BER below 10410^{-4}, importance sampling with exponential tilting provides exponential speedup. Antithetic variates give a free 2x improvement. Control variates work when a correlated quantity with known mean is available. Monitor effective sample size to detect weight degeneracy.

Looking Ahead

Chapter 10 applies these statistical and Monte Carlo tools to signal processing: filtering, spectral analysis, and detection. The channel models from Section 9.4 become inputs to equalizers and detectors, while the variance reduction techniques from Section 9.5 accelerate the BER simulations that validate those algorithms.