Learn SDR 20: Phase Ambiguity and Differential Encoding
Channel: HarveyMuddPhysicsElectronicsLab
Date: 2022-10-13

Learn SDR with Professor Jason Gallicchio at Harvey Mudd College
Lesson 20: Resolving the Phase Ambiguity and Differential Encoding

First just look at the output for BPSK and see that sometimes it's inverted.
For QPSK, explicitly decode all 4 possible phase shifts.

I've sneakily avoided comparing TX to RX until now because of this issue.
Option 1: sync word to determine which of 4. For packet data, this can be part of a header, which also is designed with lots of transitions to help with symbol and phase sync. 

Differential encoding and decoding:

Easiest "set it and forget it" for continuous data. Instead of the data mapping to phase, have the data map to phase shifts. Easiest example is BPSK where you start with some random state and switch when you get a 1 but stay put if you get a zero. Encoding and decoding this amounts to simple binary math on either end.   001101 to  (0)001001 back to 001101. Even if incoming bits all flipped, the changes remain the same.

Make a repeating pseudo-random sequence and show it on an image raster plot. Using the QT GUI Time Raster Sink

HW: However, this costs you in bit errors because each error affects at least two outputs.

https://gallicchio.github.io/learnSDR/lesson20.html

All GNURadio flowgraphs are at:
https://github.com/gallicchio/learnSDR

--- Learn SDR with Professor Jason Gallicchio