QPSK (Quadrature Phase Shift Keying) is a phase modulation scheme that encodes two bits per symbol by mapping each 2-bit dibit to one of four carrier phase states, typically 45°, 135°, 225°, and 315°. Because two bits are carried per symbol, QPSK carries twice the bits per symbol of binary PSK (BPSK) at the same symbol rate, which translates to higher spectral efficiency when pulse shaping and occupied bandwidth are held constant.
In practice
QPSK appears in a wide range of wireless standards including WCDMA, LTE (as one of several available modulation orders), DVB-S/S2, and IEEE 802.11 Wi-Fi. On embedded targets, the modulation itself is typically implemented in a DSP, FPGA, or dedicated RF transceiver IC rather than a general-purpose MCU, though MCUs often handle higher-layer framing and control of those peripherals via SPI or I2C.
On the transmit side, a QPSK modulator splits the bitstream into I (in-phase) and Q (quadrature) streams, each running at half the bit rate. Each stream independently BPSK-modulates a carrier, with the Q carrier shifted 90 degrees relative to I. Pulse shaping -- most commonly a root-raised-cosine (RRC) filter -- is applied to limit spectral occupancy before upconversion. On receive, a coherent demodulator must recover both carrier phase and symbol timing, tasks usually handled by a PLL and a timing recovery loop. The blog post "Discrete-Time PLLs, Part 1: Basics" covers the PLL fundamentals directly relevant to carrier recovery in PSK systems.
A key pitfall in QPSK is phase ambiguity: a coherent receiver that locks to the carrier 90°, 180°, or 270° off from the transmitter will decode all symbols incorrectly or with a fixed rotation. Differential QPSK (DQPSK) resolves this by encoding dibits as phase transitions rather than absolute phases, at the cost of a small noise penalty. Another practical issue is that standard QPSK constellations can produce 180° phase transitions between symbols; these cause large envelope variations that stress nonlinear power amplifiers. Offset QPSK (OQPSK) and pi/4-QPSK reduce the maximum phase jump to 90° and 135° respectively to mitigate this, and MSK can be viewed as a continuous-phase evolution of OQPSK (see "Minimum Shift Keying (MSK) - A Tutorial").
On hardware, RF transceiver ICs such as the Texas Instruments CC1101, Silicon Labs EZRadioPRO family, and Nordic nRF9160 handle modulation and demodulation in silicon, exposing configuration registers to the host MCU. Higher-bandwidth implementations targeting standards like DVB or LTE typically use an FPGA or dedicated baseband ASIC. When characterizing QPSK link performance, be aware that third-order intermodulation products in the transmit chain can spread energy outside the channel; "Third-Order Distortion of a Digitally-Modulated Signal" provides relevant analysis.
Discussed on DSPRelated
Frequently asked
How does QPSK compare to BPSK in terms of spectral efficiency and noise tolerance?
QPSK transmits 2 bits per symbol versus
BPSK's 1 bit per symbol, so it doubles spectral efficiency at the same symbol rate and
bandwidth. The theoretical bit-error-rate (BER) versus
Eb/N0 curve for QPSK is identical to that of BPSK -- both require roughly 9.6 dB Eb/N0 for 10^-5 BER in AWGN -- because the
I and Q channels are orthogonal and each is essentially an independent BPSK channel.
What is the difference between QPSK, OQPSK, and pi/4-QPSK?
Standard QPSK allows simultaneous transitions on both
I and Q rails, which can produce
phase jumps of up to 180° depending on the symbol sequence, causing significant amplitude variation in a band-limited signal. OQPSK (Offset QPSK) staggers the Q rail by half a symbol period relative to I, limiting phase jumps to 90°. Pi/4-QPSK alternates between two QPSK constellations rotated 45° from each other, capping phase jumps at 135° while also enabling differential detection. All three have the same theoretical BER under ideal conditions; the differences matter primarily for power-amplifier linearity requirements and receiver design.
How is QPSK demodulated in a digital receiver?
A coherent QPSK receiver multiplies the received signal by local
I and Q carrier references (90° apart), low-pass filters each product to recover the
baseband I and Q streams, applies matched filtering (typically an RRC filter), and then makes hard decisions on each stream independently at the symbol sampling instants. Accurate carrier
phase and frequency recovery -- usually via a Costas loop or a
PLL-based carrier recovery circuit -- and symbol timing recovery are prerequisites for correct decisions. Differential QPSK relaxes the carrier phase requirement by decoding phase differences between consecutive symbols.
Can a resource-constrained MCU implement QPSK modulation directly?
Generating a properly pulse-shaped, upconverted QPSK waveform at RF frequencies is beyond the capability of most MCU-class devices acting alone. A common embedded architecture is to have the MCU prepare framed data and configure a dedicated RF transceiver IC (for example, a TI CC1200 or a semtech SX1280) that handles modulation internally. For lower-frequency or fully software-defined implementations, DSPs or FPGAs are more appropriate. MCUs with hardware
floating-point and a
DAC can implement
baseband QPSK at audio or near-baseband rates for educational or low-rate purposes.
What is Gray coding and why is it used in QPSK constellations?
Gray coding assigns 2-bit labels to the four QPSK constellation points such that adjacent points -- those closest in
phase -- differ by exactly one bit. Because the most likely errors under noise cause a received symbol to land on an adjacent point, Gray coding ensures that most symbol errors produce only a single-bit error rather than two. This reduces BER at moderate
SNR values compared to a non-Gray-coded assignment, and it is the standard mapping used in virtually all practical QPSK implementations.
Differentiators vs similar concepts
QPSK is often confused with QAM (
Quadrature Amplitude Modulation). QPSK encodes information only in the
phase of the carrier; all four constellation points lie on a circle of constant amplitude. QAM varies both amplitude and phase, placing points in a grid pattern. 16-QAM and higher orders carry more bits per symbol than QPSK but require higher
SNR and greater linearity from the RF chain. QPSK is sometimes described as a special case of 4-QAM, and the two share the same constellation geometry, though they are typically treated as equivalent only up to labeling and implementation conventions -- the naming difference reflects distinct design intents and historical contexts. QPSK is also distinct from FSK (Frequency Shift Keying), which encodes data in frequency shifts rather than phase shifts; FSK is generally more tolerant of nonlinear amplification but less spectrally efficient than QPSK at comparable rates.