Chapter Summary
Chapter Summary
Key Points
- 1.
Build constellations systematically. Use
qam_constellation(M)for rectangular QAM andpsk_constellation(M)for constant-envelope PSK. Always normalize to unit energy () for consistent SNR calculations. Gray coding ensures at moderate SNR. - 2.
Simulate BER with statistical rigor. Run until at least 100 errors per SNR point. Report Clopper-Pearson confidence intervals. Always validate against a known theoretical result (BPSK AWGN: ) before simulating complex systems.
- 3.
The matched filter is optimal for AWGN. The matched filter maximizes output SNR to by the Cauchy-Schwarz inequality. It is equivalent to a correlator receiver and forms a sufficient statistic for ML detection.
- 4.
Higher-order modulation trades SNR for throughput. Going from QPSK to 16-QAM doubles the bits per symbol but costs about 3.8 dB in required . Adaptive modulation selects the best trade-off based on current channel quality.
- 5.
Vectorize everything in NumPy. Process all symbols in parallel using broadcasting:
np.abs(rx[:, None] - const[None, :])computes all distances at once. This gives 100-1000x speedup over Python loops and is essential for large-scale BER simulations.
Looking Ahead
Chapter 21 introduces channel impairments beyond AWGN: path loss, shadowing, and multipath fading. The modulation and detection tools from this chapter become the inner loop of fading channel simulations.