← Back to Projects

SDR Text Transceiver

SDR Text Transceiver: M-PSK over USRP

Encode a passage of text, packetise it, modulate it, push it out of a USRP antenna — then pull it back out of the air and reconstruct the original.

Role
Course Project · Team of two
Period
Feb. 2026 – Jun. 2026
Institution
SUSTech

Why this matters

Modulation and demodulation in class run in simulation: no noise, no frequency offset, clocks perfectly aligned. Anything works. On real hardware the same algorithm has to survive sample-rate mismatch, carrier phase drift and packet boundaries it cannot find. The point of this project was never implementing PSK — it was getting PSK to work over a real link, where the receiver must first locate where a packet begins inside a continuous bit stream before demodulation means anything.

What I did

  • The transmitter was written in class; our work was the receiver — swapping the queued input for real USRP drivers to close the hardware loop.
  • Text is mapped to bits via Unicode, split into blocks, and wrapped with guard bits, a sync sequence, a packet number and a data field.
  • Built the receive chain in LabVIEW: USRP session setup and configuration, IQ acquisition, resampling and PSK demodulation.
  • Implemented frame synchronisation — searching the demodulated bit stream for the agreed sync sequence to locate packet starts, validating structure, then reassembling text by packet number.
  • Used constellation and eye diagrams to judge signal quality in the phase and time domains respectively.
  • Extended the modulation order from BPSK through QPSK and 8PSK to 16PSK, comparing demodulation behaviour at each.

A two-person course project. The transmitter was written in class; our work was the receiver — replacing the queued input with real USRP drivers so the text had to survive an actual wireless link.

The receiver running 8-PSK. On the left, the recovered text in full (Frost's "The Road Not Taken"); on the right, eight cleanly separated constellation points, Sync Found lit green, 46 packets correct. The text really did travel through an antenna and come back.
The receiver running 8-PSK. On the left, the recovered text in full (Frost's "The Road Not Taken"); on the right, eight cleanly separated constellation points, Sync Found lit green, 46 packets correct. The text really did travel through an antenna and come back.
The same poem at 16-PSK. The constellation collapses from eight clean points into a smear, and the text starts breaking up: "藉cause it was grassy and(w`nted". Phase spacing drops from 45° to 22.5°, and the same SNR no longer suffices — more legible than any formula.
The same poem at 16-PSK. The constellation collapses from eight clean points into a smear, and the text starts breaking up: "藉cause it was grassy and(w`nted". Phase spacing drops from 45° to 22.5°, and the same SNR no longer suffices — more legible than any formula.
The LabVIEW receiver block diagram: USRP session setup, IQ acquisition, resampling and demodulation, frame synchronisation, packet validity checks and text reconstruction — the whole chain in one screen.
The LabVIEW receiver block diagram: USRP session setup, IQ acquisition, resampling and demodulation, frame synchronisation, packet validity checks and text reconstruction — the whole chain in one screen.

Outcome

  • At 8-PSK the text came back intact, with all 46 packets received correctly.
  • At 16-PSK it garbled — phase spacing drops from 45° to 22.5°, and the same SNR stops being enough. Eight clean constellation points collapse into a smear; the failure explains the cost of higher-order modulation better than the formula does.

Technologies

  • LabVIEW
  • USRP
  • Software-Defined Radio
  • M-PSK Modulation
  • Frame Synchronisation
  • Constellation & Eye Diagrams