DSPRelated.com

BPSK

Category: Comms-dsp | Also known as: Binary Phase Shift Keying

Binary Phase Shift Keying (BPSK) is a digital modulation scheme that encodes one bit per symbol by shifting the carrier phase between two states, typically 0° and 180°. It is the simplest member of the PSK family and offers robust noise immunity at the cost of low spectral efficiency.

In practice

BPSK appears frequently in embedded systems that include a wireless or wired communications front-end: satellite receivers, RFID readers, spread-spectrum systems (GPS uses BPSK on its ranging codes), power-line communication modems, and low-data-rate IoT links. Because it uses only two constellation points separated by the maximum possible phase distance (180°), BPSK achieves the best bit-error-rate performance of any coherent PSK scheme for a given Eb/N0 (assuming matched detection without additional coding), making it a common choice when link margin is tight and throughput requirements are modest.

On the DSP/firmware side, a BPSK demodulator typically involves a matched filter or correlator, carrier recovery, and symbol timing recovery. Carrier recovery for BPSK is often implemented with a Costas loop, though other methods such as decision-directed loops also exist; all of these can be realized as discrete-time PLLs on an MCU or FPGA. The "Discrete-Time PLLs, Part 1: Basics" post on EmbeddedRelated covers the foundational building blocks directly applicable to this task. On fixed-point MCUs (Cortex-M4/M7 with DSP extensions, or DSP cores like the C28x), the multiply-accumulate operations in the correlator and loop filter map well to the available MAC and SIMD instructions.

A common pitfall is the inherent 180° phase ambiguity: a coherent BPSK receiver cannot distinguish an absolute phase of 0° from 180° after acquisition, meaning the recovered bitstream may be inverted in the absence of additional measures. Systems handle this with differential encoding (DBPSK), a known preamble, or a framing layer that uses a known header or sync word to detect and correct polarity inversion. A second pitfall is that BPSK is sensitive to phase noise; oscillator quality and phase-noise budget must be accounted for in the link budget, especially at higher carrier frequencies.

Discussed on DSPRelated

Frequently asked

How does BPSK differ from QPSK in terms of implementation complexity and performance?
BPSK carries 1 bit per symbol using two phase states; QPSK carries 2 bits per symbol using four phase states spaced 90° apart. For the same symbol rate, QPSK doubles throughput but requires a higher Eb/N0 to achieve the same BER — though in Eb/N0 terms BPSK and QPSK are actually equivalent because QPSK can be viewed as two orthogonal BPSK streams. The practical tradeoff is spectral efficiency vs. implementation simplicity: BPSK requires a simpler receiver with fewer constellation points to track, while QPSK needs tighter carrier phase accuracy.
What is the phase ambiguity problem in BPSK and how is it typically resolved?
A coherent BPSK demodulator recovers the carrier by squaring or using a Costas loop, both of which eliminate the phase information mod 180°. The recovered carrier may lock 180° out of phase, inverting every bit in receivers that do not apply additional countermeasures. The standard solutions are differential encoding (each bit is encoded as a phase change rather than an absolute phase, yielding DBPSK), transmitting a known sync word or preamble at startup so the receiver can detect and correct polarity inversion, or relying on a higher-layer framing protocol that uses a known header to detect polarity inversion.
Can BPSK be demodulated on a small MCU without a dedicated DSP core?
Yes, at low symbol rates. An ARM Cortex-M0/M0+ or similar core can implement a software BPSK demodulator using fixed-point arithmetic if the symbol rate is low enough that the DSP workload fits within the available MIPS budget. At higher symbol rates or carrier frequencies, an ADC front-end, hardware correlator, or FPGA fabric is typically needed. Cortex-M4/M7 parts with hardware MAC and SIMD DSP extensions extend the practical symbol-rate ceiling considerably.
How is BPSK related to spread-spectrum systems like GPS?
GPS L1 C/A uses BPSK modulation: the navigation data and pseudo-random noise (PRN) ranging code both BPSK-modulate the carrier. The receiver correlates the incoming signal against a locally generated replica of the PRN code to despread the signal and recover timing and data. The simplicity and robustness of BPSK is a key reason it was chosen for a system that must work at very low received signal power (around -130 dBm at Earth's surface).
How does BPSK compare to MSK or FSK for low-power embedded radio links?
MSK (Minimum Shift Keying) is a continuous-phase FSK variant, and like conventional FSK it modulates frequency rather than phase in the conventional PSK sense; both allow the use of non-coherent or simpler discriminator-based receivers and relax oscillator phase-noise requirements. BPSK requires coherent detection and is more sensitive to phase noise, but achieves better BER performance than non-coherent FSK at the same Eb/N0. For embedded systems where a simple, low-cost receiver is more important than raw noise performance, FSK or MSK is often preferred; BPSK is favored when link margin is the binding constraint. The EmbeddedRelated post 'Minimum Shift Keying (MSK) - A Tutorial' covers MSK in detail and provides useful contrast.

Differentiators vs similar concepts

BPSK is the 1-bit-per-symbol baseline of the PSK family. QPSK encodes 2 bits per symbol across four phase states; 8-PSK encodes 3 bits per symbol. DBPSK (Differential BPSK) adds differential encoding to eliminate the 180° phase ambiguity without requiring absolute phase reference at the receiver. BPSK is sometimes confused with OOK (On-Off Keying), which modulates amplitude rather than phase and is simpler to implement but less power-efficient. It is also distinct from FSK/MSK, which modulate frequency and tolerate non-coherent receivers more easily.