PySDR: A Guide to SDR and DSP using Python¶
- 1. Introduction
- 2. Frequency Domain
- 3. IQ Sampling
- Sampling Basics
- Nyquist Sampling
- Quadrature Sampling
- Complex Numbers
- Complex Numbers in FFTs
- Receiver Side
- Carrier and Downconversion
- Receiver Architectures
- Baseband and Bandpass Signals
- DC Spike and Offset Tuning
- Sampling Using our SDR
- Calculating Average Power
- Calculating Power Spectral Density
- Further Reading
- 4. Digital Modulation
- 5. PlutoSDR in Python
- 6. USRP in Python
- 7. Noise and dB
- 8. Filters
- 9. Link Budgets
- 10. Channel Coding
- 11. IQ Files and SigMF
- 12. Multipath Fading
- 13. Pulse Shaping
- 14. Synchronization
- 15. End-to-End Example
- Introduction to FM Radio and RDS
- The RDS Signal
- Acquiring a Signal
- FM Demodulation
- Frequency Shift
- Filter to Isolate RDS
- Decimate by 10
- Resample to 19 kHz
- Time Synchronization (Symbol-Level)
- Fine Frequency Synchronization
- Demodulate the BPSK
- Differential Decoding
- RDS Decoding
- RDS Parsing
- Wrap-Up and Final Code
- Acknowledgments
- Further Reading
- 16. DOA & Beamforming
- 17. About the Author