“As to methods there may be a million and then some, but principles are few. The man who grasps principles can successfully select his own methods. The man who tries methods, ignoring principles, is sure to have trouble.”. – Emerson
There are three different angles from which this book contributes to the understanding of wireless communication systems from the perspective of a Software Defined Radio (SDR).
1. Visualization
In my opinion, any language, including that of mathematics, is an unnatural mode of communication. For example, I can write the words darwaza, porte, puerta, umnyango, ovi and only certain people will understand what I mean. However, if I show you an image of a door, almost every single person on the planet will immediately get the concept. A figure imprints a massive amount of parallel information in our brains that is much easier to process and recall later. Since a human mind handles images very well, I try to visualize equations through beautiful figures which you will encounter throughout the text with logical and intuitive explanations.
2. Easy Mathematics
If you are not a pure wireless communications academic, you would have found that the mainstream textbooks on this topic are filled with heavy mathematical details which makes this field an exclusive membership club for those who can understand several types of frequency variables and their corresponding Fourier transforms, probability and random processes and detection and estimation theories. While this is true for becoming a master, the Software Defined Radio (SDR) revolution and subsequent projects like GNU Radio have made it possible for anyone to sit down and construct their own unique radio by writing code. For this purpose, I have only relied on school level mathematics to explain all the concepts. You will not find any $e$ or $j$ of complex numbers here, nor will you encounter any integrals, probability theory and detection or estimation theory. The only things to know are a sine, cosine and a summation as well as a derivative (which I have occasionally used). This I/Q representation is also suitable for the implementation of algorithms in FPGAs or Digital Signal Processors.
“When you understand something, then you can find the math to express that understanding. The math doesn’t provide the understanding.” – Leslie Lamport
Please note that this is not a mathematics-free guide to SDRs. Instead, it relies on simpler operations to explain how radio algorithms work. I have also reduced the font size for some unavoidable derivations or moved them to their respective appendices where possible. The reader can skip the content with a smaller font if desired.
3. ‘Aha’ Moments
The best books written on implementing digital communication systems using Digital Signal Processing (DSP) algorithms are by fred harris (Multirate signal processing for communication systems) and Michael Rice (Digital communications – A discrete-time approach). As often happens with the grandmasters, they walk on a trail without exactly clarifying it for others. After reading their books, I started to feel that fred harris has mainly focused on how of communication systems in an unprecedented detail while Michael Rice has mainly covered what of communication systems in his simple and beautiful style. In this process, there were many why generated in my mind for which I had to find satisfactory answers. This book is a collection of those simple answers which will produce many ‘aha’ moments for you as well.
+ Bonus
An extra little bonus is a one page summary of the crux of Rx algorithms, clarifying the role of particular parameters in the signal waveform. Most of the algorithm design can be understood by just grasping the concepts on this one page.
And More
– A common theme in this text is that some concepts seem easier in time domain and some others are simpler in frequency domain, while their mathematical derivations reinforce the idea. It is fun (in addition to being extremely useful) to grasp a concept covering all three sides.
– Using this same approach of time and frequency domains as well as mathematics, the book explains the logic behind the functionality of several GNU Radio blocks (e.g., Costas Loop, Band Edge FLL, Polyphase Clock Sync, MM Clock Recovery and timing error detectors in Symbol Sync). This is important because most books on digital and wireless communications do not contain an in-depth discussion on the topics of timing and carrier synchronization or equalization from an implementation viewpoint. Interestingly, these are the exact challenges the designer of a digital modem or radio needs to overcome for a working product.
Product Details
There are 26 letters in English language and countless rules.
The language of signal processing is simpler.
– It has only 1 letter: a sample at time 0. From there, we can build any discrete-time signal on which our 1s and 0s can be mapped.
– It has one major rule which is repeatedly employed for demapping the received signal to bits.
Just imagine yourself mastering this language spoken by signals.
See the table of contents below or here.
Preface
1 Introduction to Signals
1.1 Basics of Signals
1.2 Transforming a Signal
1.3 Dealing with Complex Numbers
1.4 The Concept of Frequency
1.5 Sampling a Continuous-Time Signal
1.6 Correlation
1.7 Discrete Frequency
1.8 The Discrete Fourier Transform (DFT)
1.9 Effect of Time Shift in Frequency Domain
1.10 DFT Examples
1.10.1 A Rectangular Signal
1.10.2 A General Sinusoid
1.10.3 The Unit Impulse
1.10.4 The Sampling Sequence
1.11 A Digital Signal
1.12 The Small Picture
2 Introduction to Systems
2.1 Linear Systems
2.2 Time-Invariant Systems
2.3 System Characterization
2.4 Convolution
2.4.1 Regular Convolution
2.4.2 Complex Sinusoids and the Grand Scheme of Things
2.4.3 Circular Convolution
2.5 Finite Impulse Response (FIR) Filters
2.6 Some Useful FIR Filters
2.7 Sample Rate Conversion
2.7.1 Downsampling
2.7.2 Upsampling
2.8 Additive White Gaussian Noise (AWGN)
2.9 Appendix
3 Digital Communication with Linear Modulations
3.1 A Simple Communication System
3.2 Packing More Bits in One Symbol
3.3 Modulation: From Numbers to Signals
3.4 Demodulation: From Signals Back to Numbers
3.4.1 Matched Filter in Time Domain
3.4.2 Matched Filter in Frequency Domain
3.5 Pulse Amplitude Modulation (PAM)
3.6 Pulse Shaping Filter
3.7 Quadrature Amplitude Modulation (QAM)
3.8 Stethoscopes for a Communication System
3.9 Modulation Bandwidths
3.10 Computing Error Rates
3.11 Spectral Efficiency
4 Phase Locked Loop
4.1 What is Synchronization?
4.2 Basic Components of a PLL
4.3 Phase Error Detector
4.4 Proportional + Integrator (PI) Loop Filter
4.5 Numerically Controlled Oscillator (NCO)
4.6 Designing a PLL
4.7 Comments on Locking and Acquisition
5 Carrier Phase Synchronization
5.1 Effect of Carrier Phase Mismatch
5.2 The Fundamental Problem of Synchronization
5.3 The Big Picture
5.4 Enter the Correlation
5.5 Data-Aided/Decision-Directed Techniques
5.5.1 Feedforward: Conjugate Product Estimator
5.5.2 General Approach to Feedforward Synchronization
5.5.3 Feedback: Phase Difference Phase Error Detector
5.5.4 General Approach to Feedback Synchronization
5.5.5 Feedback: Cross Product Phase Error Detector
5.5.6 A Comparison of Phase Error Detectors
5.6 Non-Data-Aided Techniques
5.6.1 Feedforward: Mth-Power Estimator
5.6.2 Feedback: Mth-Power Phase Error Detector
5.6.3 The Costas Loop: A Classic Solution
5.7 Detection Aids
5.7.1 Carrier Lock Detector
5.7.2 Resolving Phase Ambiguity
5.7.3 Cycle Slips, Hangup and the Role of AGC
5.8 The Small Picture
5.9 Appendix
6 Carrier Frequency Synchronization
6.1 Effect of Carrier Frequency Mismatch
6.2 The Big Picture
6.3 Timing-Aided Techniques
6.3.1 Enter the Correlation
6.3.2 Feedforward: Brute Force Estimator
6.3.3 Feedforward: The DFT Estimator
6.3.4 Feedforward: Multiple Correlations Estimators
6.3.5 A Frequency Locked Loop (FLL)
6.3.6 Feedback: Phase Based Frequency Error Detector
6.4 Non-Timing-Aided Techniques
6.4.1 Feedforward: Delay and Multiply Technique
6.4.2 Feedback: Derivative Frequency Error Detector
6.4.3 Feedback: Band Edge FLL
6.5 The Small Picture
6.6 Appendix
7 Timing or Clock Synchronization
7.1 Effect of Symbol Timing Mismatch
7.2 The Big Picture
7.3 Enter the Correlation
7.3.1 Feedforward: Brute Force Estimator
7.4 Why Squaring is Fundamental to Timing Synchronization
7.4.1 The Sinusoid Perspective
7.4.2 Role of Excess Bandwidth
7.4.3 Clock Recovery in Analog Modems
7.4.4 Feedforward: Digital Filter and Square Estimator
7.5 A Timing Locked Loop (TLL)
7.6 Symbol Centric Timing Error Detectors
7.6.1 Feedback: Derivative Timing Error Detector
7.6.2 Feedback: Early-Late Timing Error Detector
7.6.3 Why Symbol Centric?
7.7 Feedback: Zero Crossing (Gardner) Timing Error Detector
7.8 Interpolation
7.8.1 Piecewise Polynomial Interpolation
7.8.2 Farrow Structure
7.9 Interpolator Control
7.9.1 Modulo-1 Counter
7.9.2 Computing Basepoint Indices and Fractional Intervals
7.10 Sampling Clock Offset
7.11 Feedback: Mueller and Muller (M&M) Timing Error Detector
7.12 Feedback: Band Edge Timing Error Detector
7.13 Polyphase Clock Synchronization
7.14 The Small Picture
7.15 Appendix
8 Wireless Channel and Equalization
8.1 A Wireless Channel
8.1.1 Multipath Distortion Assuming No Carrier Wave
8.1.2 What Happens When a Carrier Wave Enters the Picture
8.1.3 Frequency Flat and Frequency Selective Fading
8.1.4 Doppler Shift: A Deceptive Villain
8.1.5 What Happens When Motion Enters the Picture
8.1.6 Time Flat (Slow) and Time Selective (Fast) Fading
8.1.7 From Channel Paths to Channel Taps
8.1.8 Dealing with a Time-Varying Channel
8.1.9 Effect of Channel on Rx Constellation
8.2 Channel Estimation
8.3 Equalization
8.3.1 The Big Picture
8.3.2 Brute Force Equalization: ML Sequence Estimation
8.3.3 Linear Equalizers
8.3.4 Least Mean Square (LMS) Equalizer
8.3.5 Decision Feedback Equalization
8.3.6 Blind Equalization: Constant Modulus Algorithm (CMA)
8.3.7 From Time to Frequency Domain Equalization
8.3.8 Single-Carrier Frequency Domain Equalization
9 Orthogonal Frequency Division Multiplexing (OFDM)
9.1 The Big Picture
9.2 How OFDM Works
9.2.1 From the Printer Port
9.2.2 To a Sliced Bread
9.3 An OFDM Transceiver
9.4 Timing Synchronization
9.5 Carrier Frequency Synchronization
9.6 Sampling Clock Synchronization
9.7 Channel Estimation
9.8 The Small Picture
10 The Chapter with No Title
10.1 Tx Architecture
10.1.1 Polyphase Filterbank Implementation
10.2 Rx Architectures
10.2.1 Tuned Radio Frequency (TRF) Rx
10.2.2 Heterodyne Rx
10.2.3 Zero-IF (Direct Conversion) Rx
10.2.4 Low-IF and Digital-IF Rx
10.2.5 Polyphase Filterbank Implementation
10.3 The Origins of Magic
10.4 The Small Picture
One Page Summary for Rx Algorithms
Bibliography
Customer Testimonials
I’ve been generally interested in communications systems since taking my one comms course as an undergrad EE, and periodically attempted to get myself sufficiently up to speed to teach a comms course, but I’ve generally gotten a bit lost in the usual math-heavy textbooks. Moreover, it seems that they cover the theory so intensely that practical details are just barely mentioned as an afterthought. Also, I always thought that one needed to be an expert at RF, E&M, and analog electronics to really understand how a digital communications system is put together. I recently discovered your textbook and really appreciate how you span the usual chasm between theory and practice.
Professor Ed Doering, ECE, Rose-Hulman Institute of Technology, USA
Fantastic read. The author makes it easy to understand the wireless concepts without needing a degree in mathematics and I highly recommend that you take his online course which compliments the book. It’s definitely a book that I will be referring back to again and again.
Alan Lawrence, Security ID, Australia
… A large number of figures and tables are used to explain the difficult topics like PLL, synchronization (carrier phase, frequency and symbol time), OFDM and transceiver architecture. Author successfully answered “why” of communication systems in an unprecedented detail. This is really an excellent and unique book in communication engineering and I wish every communication engineering student/engineer/faculty should read it.
Prashantha Kumar, NITK, India
An example screenshot from the book is shown below (click on the image to enlarge it). Notice how using many figures really enables the reader to see things up close.
The complete package contains 700+ figures which are placed at regular intervals keeping in mind the sampling theorem in DSP, i.e., a reader can miss the text and still connect the figures to build the concepts up to a reasonable extent.
Basic | Complete |
10-Chapter Wireless Communications eBook (PDF) | 10-Chapter Wireless Communications eBook (PDF) |
SDR course (videos) | |
Original slides | |
50 GNU Radio Companion (GRC) exercises | |
Over-the-air transmission project | |
8-Chapter 5G eBook (PDF) |
I need to say "thank you!" for your fantastic book. This is one of the best technical books I’ve ever read in my life. It is an absolute joy to read and your explanations of OFDM etc. are incredibly lucid.
Matt Anderson, CEO, Sound Devices LLC, USA
This work by Qasim is not just a book, it is in fact a complete and complex course on signal processing applied to wireless communication, consisting of teaching/learning tools with good graphic content and explanations based on digital signal processing. There is an extensive amount of information and the concepts are very well covered. Qasim is to be congratulated on the work done and for keeping it continually updated and expanded.
Prof. Dr. Ivan R. S. Casella, Universidade Federal do ABC, Brazil
Frequently Asked Questions
Q. I am an expert on DSP and wireless communications. How do I benefit from this?
A. Every person has a unique view of looking at the same concepts. I genuinely think that you will gain authentic new angles of seeing the old problems at many places of this book where I have presented the root concepts in a few sentences with relevant figures. This understanding directly leads to DSP algorithm development in a straightforward manner. A one page summary at the end also proves much helpful. This ability to see many different algorithms branching from one source simplifies and condenses the required knowledge.
Q. Is it a guide to build an SDR?
A. The focus of this book is on the DSP part of the SDR. Using concepts from time and frequency domains, you will come to know how to produce IQ samples on the Tx side that are fed into the SDR hardware. On the Rx side, once the RF signal is converted into IQ samples, you will understand the physical layer (PHY) algorithms leading to the detection of bits.
Q. Will I get a receipt for company reimbursement?
A. Yes. A default email is sent with the purchase details. However, a separate payment receipt can also be given on request.
Q. Is the source code to complement the concepts explained in the book like timing and carrier synchronization or equalization available?
A. Thanks to the open source community, all the code behind GNU Radio is freely available on Github. GNU Radio is a free software development toolkit that provides signal processing blocks to implement software-defined radios and signal-processing systems. For example, C++ code for implementation of various algorithms can be accessed here.
Q. Is there any specific application of wireless signal transmission everyone should know about?
A. On September 5, 1977, NASA launched the space probe Voyager 1 which has gone beyond the solar system travelling at a speed of 60,000 km/hr and is in interstellar space now. The total memory aboard its computer is 69.63 kilobytes (approximately the size of the solar system image shown here). After 40+ years and from a distance of 22 billion kilometres, it still sends back signals relating to the spectacular cosmic show to Earth at a rate of 160 bits/second. These signals take 20 hours to reach our planet and the received power by that time has reduced to an astonishing less than a billionth-billionth of a Watt. According to NASA, Voyager 1 may survive until 2025 and were it not for dwindling power and the possibility of losing lock on the faint Sun, our tracking antennas could continue to “talk” with the Voyagers for another century or two!