1544 fec = &fec_specs[cr];
1549 fail(
"Code rate not suitable for this constellation");
1554 switch (
cstln->nsymbols)
1566 switch (
cstln->nsymbols)
1572 nrotations =
cstln->nrotations / 2;
1575 nrotations =
cstln->nrotations;
1588 for (
int s = 0; s <
nsyncs; ++s)
1591 int rot = s % nrotations;
1592 int conj = (s / nrotations) % nconj;
1593 int shift = s / nrotations / nconj;
1602 fprintf(stderr,
"sync %3d: conj%d offs%d rot%d/%d map:",
1603 s, conj,
syncs[s].shift, rot,
cstln->nrotations);
1604 for (
int i=0;
i<
cstln->nsymbols; ++
i )
1605 fprintf(stderr,
" %2d",
syncs[s].map[
i]);
1606 fprintf(stderr,
"\n");
1613 trell->init_convolutional(
fec->polys);
1614 for (
int s = 0; s <
nsyncs; ++s)
1617 else if (cr ==
FEC23)
1620 trell->init_convolutional(
fec->polys);
1621 for (
int s = 0; s <
nsyncs; ++s)
1624 else if (cr ==
FEC46)
1627 trell->init_convolutional(
fec->polys);
1628 for (
int s = 0; s <
nsyncs; ++s)
1631 else if (cr ==
FEC34)
1634 trell->init_convolutional(
fec->polys);
1635 for (
int s = 0; s <
nsyncs; ++s)
1638 else if (cr ==
FEC45)
1641 trell->init_convolutional(
fec->polys);
1642 for (
int s = 0; s <
nsyncs; ++s)
1645 else if (cr ==
FEC56)
1648 trell->init_convolutional(
fec->polys);
1649 for (
int s = 0; s <
nsyncs; ++s)
1652 else if (cr ==
FEC78)
1655 trell->init_convolutional(
fec->polys);
1656 for (
int s = 0; s <
nsyncs; ++s)
1661 fail(
"CR not supported");
viterbi_dec< TS, 64, TUS, 8, TCS, 16, TBM, TPM, path_34 > dvb_dec_34
trellis< TS, 64, TUS, 128, 256 > trellis_78
trellis< TS, 64, TUS, 16, 32 > trellis_45
trellis< TS, 64, TUS, 32, 64 > trellis_56
trellis< TS, 64, TUS, 2, 4 > trellis_12
viterbi_dec< TS, 64, TUS, 16, TCS, 32, TBM, TPM, path_45 > dvb_dec_45
runnable(scheduler *_sch, const char *name)
viterbi_dec< TS, 64, TUS, 4, TCS, 8, TBM, TPM, path_23 > dvb_dec_23
TCS * init_map(bool conj, float angle)
trellis< TS, 64, TUS, 16, 64 > trellis_46
trellis< TS, 64, TUS, 8, 16 > trellis_34
viterbi_dec< TS, 64, TUS, 2, TCS, 4, TBM, TPM, path_12 > dvb_dec_12
trellis< TS, 64, TUS, 4, 8 > trellis_23
cstln_lut< eucl_ss, 256 > * cstln
viterbi_dec< TS, 64, TUS, 32, TCS, 64, TBM, TPM, path_56 > dvb_dec_56
viterbi_dec< TS, 64, TUS, 16, TCS, 64, TBM, TPM, path_46 > dvb_dec_46
viterbi_dec< TS, 64, TUS, 128, TCS, 256, TBM, TPM, path_78 > dvb_dec_78
static const int chunk_size
struct leansdr::viterbi_sync::sync * syncs
pipewriter< unsigned char > out