CCSDS Encoding class for convolutional encoding with rate 1/2, K=7, and polynomials [109, 79]. More...
#include <gnuradio/fec/ccsds_encoder.h>
Public Member Functions | |
bool | set_frame_size (unsigned int frame_size) override=0 |
double | rate () override=0 |
Public Member Functions inherited from gr::fec::generic_encoder | |
virtual void | generic_work (void *in_buffer, void *out_buffer)=0 |
int | unique_id () |
std::string | alias () |
virtual int | get_input_size ()=0 |
virtual int | get_output_size ()=0 |
virtual const char * | get_input_conversion () |
virtual const char * | get_output_conversion () |
generic_encoder (void) | |
generic_encoder (std::string name) | |
virtual | ~generic_encoder () |
Static Public Member Functions | |
static generic_encoder::sptr | make (int frame_size, int start_state=0, cc_mode_t mode=CC_STREAMING) |
Additional Inherited Members | |
Public Types inherited from gr::fec::generic_encoder | |
typedef std::shared_ptr< generic_encoder > | sptr |
Public Attributes inherited from gr::fec::generic_encoder | |
int | my_id |
std::string | d_name |
Static Public Attributes inherited from gr::fec::generic_encoder | |
static int | base_unique_id |
Protected Attributes inherited from gr::fec::generic_encoder | |
gr::logger_ptr | d_logger |
CCSDS Encoding class for convolutional encoding with rate 1/2, K=7, and polynomials [109, 79].
Uses Phil Karn's (KA9Q) implementation of the CCSDS encoder for rate 1/2, K=7, and CC polynomial [109, 79]. These are non-adjustable in this encoder. For an adjustable CC encoder where we can set the rate, constraint length, and polynomial, see gr::fec::code::cc_encoder.
The encoder is set up with a number of bits per frame in the constructor. When not being used in a tagged stream mode, this encoder will only process frames of the length provided here. If used in a tagged stream block, this setting becomes the maximum allowable frame size that the block may process.
The mode
is a cc_mode_t that specifies how the convolutional encoder will behave and under what conditions.
start_state
between frames.A common convolutional encoder uses K=7, Rate=1/2, Polynomials=[109, 79]. This is the Voyager code from NASA:
|
static |
Build the CCSDS (rate=1/2, K=7, polys=[109,79] convolutional code FECAPI object.
frame_size | Number of bits per frame. If using in the tagged stream style, this is the maximum allowable number of bits per frame. |
start_state | Initialization state of the shift register. |
mode | cc_mode_t mode of the encoding. |
|
overridepure virtual |
Returns the coding rate of this encoder.
Implements gr::fec::generic_encoder.
|
overridepure virtual |
Sets the uncoded frame size to frame_size
. If frame_size
is greater than the value given to the constructor, the frame size will be capped by that initial value and this function will return false. Otherwise, it returns true.
Implements gr::fec::generic_encoder.