1139 fail(
"constellation not set");
1142 float freq_alpha = 0.04;
1153 complex<T> *pin =
in.rd(), *pin0 = pin, *pend = pin +
chunk_size;
1154 SOFTSYMB *pout =
out.
wr(), *pout0 = pout;
1157 complex<float> sg{0.0f, 0.0f};
1159 complex<signed char> *cstln_point = NULL;
1172 typename cstln_lut<SOFTSYMB, 256>::result *cr =
1178 phase += cr->phase_error * freq_alpha;
1179 freqw += cr->phase_error * freq_beta;
1188 hist[0].p.re = s.re;
1189 hist[0].p.im = s.im;
1191 hist[0].c.re = cstln_point->re;
1192 hist[0].c.im = cstln_point->im;
1194 float mucorr = muerr * gain_mu;
1195 const float max_mucorr = 0.1;
1197 if (mucorr < -max_mucorr)
1198 mucorr = -max_mucorr;
1199 if (mucorr > max_mucorr)
1200 mucorr = max_mucorr;
1211 in.read(pin - pin0);
1228 float insp = sg.re * sg.re + sg.im * sg.im;
1235 complex<float> ev(s.re - cstln_point->re,
1236 s.im - cstln_point->im);
1237 float sig_power, ev_power;
1243 float sig_real = (cstln_point->re + cstln_point->im) * 0.707;
1244 float ev_real = (ev.re + ev.im) * 0.707;
1245 sig_power = sig_real * sig_real;
1246 ev_power = ev_real * ev_real;
1250 sig_power = (int)cstln_point->re * cstln_point->re + (
int)cstln_point->im * cstln_point->im;
1251 ev_power = ev.re * ev.re + ev.im * ev.im;
1263 if (freqw < min_freqw || freqw >
max_freqw)
static const unsigned int chunk_size
cstln_lut< SOFTSYMB, 256 > * cstln
pipewriter< cf32 > * cstln_out
unsigned long meas_decimation
pipewriter< SOFTSYMB > out
pipewriter< float > * ss_out
struct leansdr::cstln_receiver::@8 hist[3]
result * lookup(float I, float Q)
pipewriter< float > * mer_out
void written(unsigned long n)
pipereader< complex< T > > in
sampler_interface< T > * sampler
pipewriter< float > * freq_out
complex< int8_t > * symbols