Clock recovery

Clock recovery consists in trying to sample the received signal at the good time points, that is, in a synchronized manner with the emitter clock. If that operation is not done, the risk is that the timing offset can induce decoding errors at the receiver, as in the example below:

Clock error

The used architecture is based on (see figure below): an interpolator, which purpose is to fix the offset between the receiver and emitter clocks, a timing error detector (ted) and a loop filter, whose purpose is to align the interpolator on the emitter clock, and lastly an optionnal decimation stage so as to be at the symbol frequency at the end.

Clock recovery architecture

A complete example can be found in the documentation of the clock_rec_process function.