SDRAngel  4.11.5
Developer docs for <a href="https://github.com/f4exb/sdrangel">SDRangel<\a>, an Open Source Qt5 / OpenGL 3.0+ SDR and signal analyzer frontend to various hardware.
Public Types | Public Member Functions | Public Attributes | List of all members
leansdr::s2_bch_engines Struct Reference

#include <dvbs2.h>

+ Collaboration diagram for leansdr::s2_bch_engines:

Public Types

typedef bch_engine< uint32_t, 192, 17, 16, uint16_t, 0x002d > s2_bch_engine_nf12
 
typedef bch_engine< uint32_t, 160, 17, 16, uint16_t, 0x002d > s2_bch_engine_nf10
 
typedef bch_engine< uint32_t, 128, 17, 16, uint16_t, 0x002d > s2_bch_engine_nf8
 
typedef bch_engine< uint32_t, 168, 17, 14, uint16_t, 0x002b > s2_bch_engine_sf12
 

Public Member Functions

 s2_bch_engines ()
 

Public Attributes

bch_interfacebchs [2][FEC_COUNT]
 

Detailed Description

Definition at line 1964 of file dvbs2.h.

Member Typedef Documentation

◆ s2_bch_engine_nf10

typedef bch_engine<uint32_t, 160, 17, 16, uint16_t, 0x002d> leansdr::s2_bch_engines::s2_bch_engine_nf10

Definition at line 1971 of file dvbs2.h.

◆ s2_bch_engine_nf12

typedef bch_engine<uint32_t, 192, 17, 16, uint16_t, 0x002d> leansdr::s2_bch_engines::s2_bch_engine_nf12

Definition at line 1970 of file dvbs2.h.

◆ s2_bch_engine_nf8

typedef bch_engine<uint32_t, 128, 17, 16, uint16_t, 0x002d> leansdr::s2_bch_engines::s2_bch_engine_nf8

Definition at line 1972 of file dvbs2.h.

◆ s2_bch_engine_sf12

typedef bch_engine<uint32_t, 168, 17, 14, uint16_t, 0x002b> leansdr::s2_bch_engines::s2_bch_engine_sf12

Definition at line 1974 of file dvbs2.h.

Constructor & Destructor Documentation

◆ s2_bch_engines()

leansdr::s2_bch_engines::s2_bch_engines ( )
inline

Definition at line 1975 of file dvbs2.h.

References leansdr::FEC12, leansdr::FEC13, leansdr::FEC14, leansdr::FEC23, leansdr::FEC25, leansdr::FEC34, leansdr::FEC35, leansdr::FEC45, leansdr::FEC56, leansdr::FEC89, and leansdr::FEC910.

1976  {
1977  bitvect<uint32_t, 17> bch_polys[2][12]; // [shortframes][polyindex]
1978  // EN 302 307-1 5.3.1 Table 6a (polynomials for normal frames)
1979  bch_polys[0][0] = bitvect<uint32_t, 17>(0x1002d); // g1
1980  bch_polys[0][1] = bitvect<uint32_t, 17>(0x10173); // g2
1981  bch_polys[0][2] = bitvect<uint32_t, 17>(0x10fbd); // g3
1982  bch_polys[0][3] = bitvect<uint32_t, 17>(0x15a55); // g4
1983  bch_polys[0][4] = bitvect<uint32_t, 17>(0x11f2f); // g5
1984  bch_polys[0][5] = bitvect<uint32_t, 17>(0x1f7b5); // g6
1985  bch_polys[0][6] = bitvect<uint32_t, 17>(0x1af65); // g7
1986  bch_polys[0][7] = bitvect<uint32_t, 17>(0x17367); // g8
1987  bch_polys[0][8] = bitvect<uint32_t, 17>(0x10ea1); // g9
1988  bch_polys[0][9] = bitvect<uint32_t, 17>(0x175a7); // g10
1989  bch_polys[0][10] = bitvect<uint32_t, 17>(0x13a2d); // g11
1990  bch_polys[0][11] = bitvect<uint32_t, 17>(0x11ae3); // g12
1991  // EN 302 307-1 5.3.1 Table 6b (polynomials for short frames)
1992  bch_polys[1][0] = bitvect<uint32_t, 17>(0x402b); // g1
1993  bch_polys[1][1] = bitvect<uint32_t, 17>(0x4941); // g2
1994  bch_polys[1][2] = bitvect<uint32_t, 17>(0x4647); // g3
1995  bch_polys[1][3] = bitvect<uint32_t, 17>(0x5591); // g4
1996  bch_polys[1][4] = bitvect<uint32_t, 17>(0x6b55); // g5
1997  bch_polys[1][5] = bitvect<uint32_t, 17>(0x6389); // g6
1998  bch_polys[1][6] = bitvect<uint32_t, 17>(0x6ce5); // g7
1999  bch_polys[1][7] = bitvect<uint32_t, 17>(0x4f21); // g8
2000  bch_polys[1][8] = bitvect<uint32_t, 17>(0x460f); // g9
2001  bch_polys[1][9] = bitvect<uint32_t, 17>(0x5a49); // g10
2002  bch_polys[1][10] = bitvect<uint32_t, 17>(0x5811); // g11
2003  bch_polys[1][11] = bitvect<uint32_t, 17>(0x65ef); // g12
2004  // Redundant with fec_infos[], but needs static template argument.
2005  memset(bchs, 0, sizeof(bchs));
2006  bchs[0][FEC12] = new s2_bch_engine_nf12(bch_polys[0], 12);
2007  bchs[0][FEC23] = new s2_bch_engine_nf10(bch_polys[0], 10);
2008  bchs[0][FEC34] = new s2_bch_engine_nf12(bch_polys[0], 12);
2009  bchs[0][FEC56] = new s2_bch_engine_nf10(bch_polys[0], 10);
2010  bchs[0][FEC45] = new s2_bch_engine_nf12(bch_polys[0], 12);
2011  bchs[0][FEC89] = new s2_bch_engine_nf8(bch_polys[0], 8);
2012  bchs[0][FEC910] = new s2_bch_engine_nf8(bch_polys[0], 8);
2013  bchs[0][FEC14] = new s2_bch_engine_nf12(bch_polys[0], 12);
2014  bchs[0][FEC13] = new s2_bch_engine_nf12(bch_polys[0], 12);
2015  bchs[0][FEC25] = new s2_bch_engine_nf12(bch_polys[0], 12);
2016  bchs[0][FEC35] = new s2_bch_engine_nf12(bch_polys[0], 12);
2017  bchs[1][FEC12] = new s2_bch_engine_sf12(bch_polys[1], 12);
2018  bchs[1][FEC23] = new s2_bch_engine_sf12(bch_polys[1], 12);
2019  bchs[1][FEC34] = new s2_bch_engine_sf12(bch_polys[1], 12);
2020  bchs[1][FEC56] = new s2_bch_engine_sf12(bch_polys[1], 12);
2021  bchs[1][FEC45] = new s2_bch_engine_sf12(bch_polys[1], 12);
2022  bchs[1][FEC89] = new s2_bch_engine_sf12(bch_polys[1], 12);
2023  bchs[1][FEC14] = new s2_bch_engine_sf12(bch_polys[1], 12);
2024  bchs[1][FEC13] = new s2_bch_engine_sf12(bch_polys[1], 12);
2025  bchs[1][FEC25] = new s2_bch_engine_sf12(bch_polys[1], 12);
2026  bchs[1][FEC35] = new s2_bch_engine_sf12(bch_polys[1], 12);
2027  }
bch_engine< uint32_t, 192, 17, 16, uint16_t, 0x002d > s2_bch_engine_nf12
Definition: dvbs2.h:1970
bch_engine< uint32_t, 128, 17, 16, uint16_t, 0x002d > s2_bch_engine_nf8
Definition: dvbs2.h:1972
bch_interface * bchs[2][FEC_COUNT]
Definition: dvbs2.h:1966
bch_engine< uint32_t, 160, 17, 16, uint16_t, 0x002d > s2_bch_engine_nf10
Definition: dvbs2.h:1971
bch_engine< uint32_t, 168, 17, 14, uint16_t, 0x002b > s2_bch_engine_sf12
Definition: dvbs2.h:1974

Member Data Documentation

◆ bchs

bch_interface* leansdr::s2_bch_engines::bchs[2][FEC_COUNT]

Definition at line 1966 of file dvbs2.h.


The documentation for this struct was generated from the following file: