Symbol Sync

From GNU Radio
Revision as of 03:06, 2 March 2019 by 777arc (talk | contribs) (Created page with "Symbol Sync is a type of symbol synchronizer that performs a bunch of tasks typically required to receive/decode a digital signal from over the air, listed below. This block...")
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigation Jump to search

Symbol Sync is a type of symbol synchronizer that performs a bunch of tasks typically required to receive/decode a digital signal from over the air, listed below. This block acts as an improvement to the Clock Recovery and Polyphase Clock Sync blocks.

1. Estimates and tracks symbol rate (i.e. number of samples per symbol), given an initial estimate of samples per symbol and an allowable deviation from that estimate.

2. Performs the timing synchronization needed so that the signal is sampled at exactly the right moment in time, which is when each symbol/pulse is at its max value (see diagram below).

Symbol sync 1.png

3. Decimate the signal so that what comes out of the block is 1 sample per symbol (or multiple if the user would like, but it's usually set to 1 or sometimes 2).

4. Filter signal appropriately


For the GNU Radio Conference 2017 presentation on this block, see [[1]]

Arguments:

Timing Error Detector : The enumerated type of timing error detector to use. See enum ted_type for a list of possible types.

Samples per Symbol : User specified nominal clock period in samples per symbol.

Expected TED Gain : Expected gain of the timing error detector, given the TED in use and the anticipated input amplitude, pulse shape, and Es/No. This value is the slope of the TED's S-curve at timing offset tau = 0. This value is normally computed by the user analytically or by simulation in a tool outside of GNURadio. This value must be correct for the loop filter gains to be computed properly from the desired input loop bandwidth and damping factor.

Loop BW : Approximate normailzed loop bandwidth of the symbol clock tracking loop. It should nominally be close to 0, but greater than 0. If unsure, start with a number around 2*pi*0.040, and experiment to find the value that works best for your situation.

Damping Factor : Damping factor of the symbol clock tracking loop. Damping < 1.0f is an under-damped loop. Damping = 1.0f/sqrt(2.0f) is a maximally flat loop response. Damping = 1.0f is a critically-damped loop. Damping > 1.0f is an over-damped loop.

Max Deviation : Maximum absolute deviation of the average clock period estimate from the user specified nominal clock period in samples per symbol.

Output Samples/Symbol : The number of output samples per symbol (default=1).

TED Slicer Constellation : A constellation obj shared pointer that will be used by decision directed timing error detectors to make decisions. I.e. the timing error detector will use this constellation as a slicer, if the particular algorithm needs sliced symbols.

Interpolating Resampler Type : The enumerated type of interpolating resampler to use. See the interpolating resampler type enum for a list of possible types.

Num Filters (if using certain resamplers): The number of arms in the polyphase filterbank of the interpolating resampler, if using an interpolating resampler that uses a PFB.

PFB Taps (if used certain resamplers) : The prototype filter for the polyphase filterbank of the interpolating resampler, if using an interpolating resampler that uses a PFB.


Symbol sync 2.png