64 d_sr = ((bit & 1) << 3) | (d_sr >> 1);
108 void reset() { d_delay[0] = d_delay[1] = d_delay[2] = d_delay[3] = 0; }
112 d_delay[3] = d_delay[2];
113 d_delay[2] = d_delay[1];
114 d_delay[1] = d_delay[0];
118 return d_delay[3] + d_delay[2] - d_delay[1] - d_delay[0];
139 double d_timing_adjust;
156 void incr_symbol_index()
190 double* timing_adjust);
203 double d_nominal_ratio_of_rx_clock_to_symbol_freq;
229 double timing_adjustment,
235 unsigned ntaps()
const {
return d_interp.ntaps(); }
238 double mu()
const {
return d_mu; }
239 double w()
const {
return d_w; }
240 int incr()
const {
return d_incr; }
interpolator control for segment and symbol sync recovery
Definition: sssr_impl.h:200
bool update(const sssr::sample_t input_samples[], int nsamples, int *index, double timing_adjustment, sssr::sample_t *output_sample)
produce next sample referenced to Tx clock
double w() const
Definition: sssr_impl.h:239
unsigned ntaps() const
Definition: sssr_impl.h:235
void reset()
call on channel change
int incr() const
Definition: sssr_impl.h:240
atsci_interpolator(double nominal_ratio_of_rx_clock_to_symbol_freq)
nominal_ratio_of_rx_clock_to_symbol_freq must be >= 1.8
double mu() const
Definition: sssr_impl.h:238
ATSC Segment and Symbol Sync Recovery.
Definition: sssr_impl.h:134
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)
void reset()
call on channel change
Compute intermediate samples between signal samples x(k*Ts)
Definition: mmse_fir_interpolator_ff.h:51
digital correlator for 1001 and 0110 patterns
Definition: sssr_impl.h:48
void reset()
called on channel change
Definition: sssr_impl.h:58
bool update(int bit)
clock bit in and return true if we've seen 1001
Definition: sssr_impl.h:62
digital_correlator()
Definition: sssr_impl.h:53
quad filter (used to compute timing error)
Definition: sssr_impl.h:98
void reset()
called on channel change
Definition: sssr_impl.h:108
double update(sample_t sample)
Definition: sssr_impl.h:110
quad_filter()
Definition: sssr_impl.h:103
segment sync integrator
Definition: sssr_impl.h:75
seg_sync_integrator()
Definition: sssr_impl.h:80
void reset()
called on channel change
int update(int weight, int index)
update current tap with weight and return integrated correlation value
int find_max(int *value)
return index of maximum correlation value
static const int ATSC_DATA_SEGMENT_LENGTH
Definition: consts.h:33
#define ATSC_API
Definition: gr-atsc/include/gnuradio/atsc/api.h:30
Definition: sssr_impl.h:40
float sample_t
Definition: sssr_impl.h:42