Learn SDR 18: Symbol Timing Recovery with Symbol Sync
Channel: HarveyMuddPhysicsElectronicsLab
Date: 2022-10-13

First look at eye diagram of 16sps or more incoming signal real part

We'll basically be describing the function of the "Symbol Sync" Block

Timing Error Detector (TED)

Time Lock Loop: nudge an internally-running numerically-controlled oscillator (NCO) slightly faster or slower.

Interpolation to really nail down the right place to sample. This is done by selecting from a bank of filters, each of which interpolates to a different fractional point (a polyphase filter bank).

Important fact: the TEDs we'll use are insensitive to overall (constant or slowly rotating) phase rotation, so you don't need the carrier to be exactly right. We'll correct that next. If the phase changes significantly over the course of a few symbols, this could cause problems, which is why we needed the FLL.

Loop bandwidth

Need to drop first million samples until FLL locks

Other videos to watch:

GRCon17 - Symbol Clock Recovery and Improved Symbol Synchronization use this new Symbol Sync Block, as opposed to blocks used in older tutorials

GRCon17 - Band-Edge Filtering - fred harris (who said not to use M&M above; yes he prefers to have his name be in lower case)

GRCon16 - Whole Packet Clock Recovery, Michael Ossmann using FFT phase

HW: The symbol sync block allows you to swap out different timing error detectors (TEDs) and different interpolators. Swap out different interpolators, but don't try the ones for MSK or GMSK because we haven't done frequency-shift keying yet. Some of these require a constellation object to help with the decisions; fortunately we have such an object called "constellation". If you don't use the "Polyphase Filterbank, MF," you'll need to do the matched filtering yourself in a preceding block.

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

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

--- Learn SDR with Professor Jason Gallicchio