#include <atsci_sssr.h>

This class implements data segment sync tracking and symbol timing using the method described in "ATSC/VSB Tutorial - Receiver Technology" by Wayne E. Bretl of Zenith, pgs 41-45.
Public Member Functions | |
| atsci_sssr () | |
| ~atsci_sssr () | |
| void | reset () |
| call on channel change | |
| void | update (sssr::sample_t sample_in, bool *seg_locked, int *symbol_index, double *timing_adjust) |
| process a single sample at the ATSC symbol rate (~10.76 MSPS) | |
| atsci_sssr::atsci_sssr | ( | ) |
References _SSSR_DIAG_OUTPUT_, and reset().
| atsci_sssr::~atsci_sssr | ( | ) |
| void atsci_sssr::reset | ( | ) |
call on channel change
References sssr::quad_filter::reset(), sssr::seg_sync_integrator::reset(), and sssr::digital_correlator::reset().
Referenced by atsci_sssr().
| void atsci_sssr::update | ( | sssr::sample_t | sample_in, | |
| bool * | seg_locked, | |||
| int * | symbol_index, | |||
| double * | timing_adjust | |||
| ) |
process a single sample at the ATSC symbol rate (~10.76 MSPS)
This block computes an indication of our timing error and keeps track of where the segment sync's occur. timing_adjust is returned to indicate how the interpolator timing needs to be adjusted to track the transmitter's symbol timing. If seg_locked is true, then symbol_index is the index of this sample in the current segment. The symbols are numbered from 0 to 831, where symbols 0, 1, 2 and 3 correspond to the data segment sync pattern, nominally +5, -5, -5, +5.
References _SSSR_DIAG_OUTPUT_, sssr::seg_sync_integrator::find_max(), gr_signbit(), sssr::seg_sync_integrator::update(), sssr::digital_correlator::update(), and sssr::quad_filter::update().
Referenced by atsc_bit_timing_loop::work().
1.5.5