Loading...
Searching...
No Matches
sccc_encoder.h
Go to the documentation of this file.
/* -*- c++ -*- */
/*
* Copyright 2004,2012,2018 Free Software Foundation, Inc.
*
* This file is part of GNU Radio
*
* SPDX-License-Identifier: GPL-3.0-or-later
*
*/
#ifndef SCCC_ENCODER_H
#define SCCC_ENCODER_H
#include <gnuradio/sync_block.h>
#include <gnuradio/trellis/api.h>
#include <gnuradio/trellis/fsm.h>
#include <gnuradio/trellis/interleaver.h>
#include <vector>
namespace gr {
namespace trellis {
/*!
* \brief SCCC encoder.
* \ingroup trellis_coding_blk
*/
template <class IN_T, class OUT_T>
class TRELLIS_API sccc_encoder : virtual public sync_block
{
public:
typedef std::shared_ptr<sccc_encoder<IN_T, OUT_T>> sptr;
static sptr make(const fsm& FSMo,
int STo,
const fsm& FSMi,
int STi,
const interleaver& INTERLEAVER,
int blocklength);
virtual fsm FSMo() const = 0;
virtual int STo() const = 0;
virtual fsm FSMi() const = 0;
virtual int STi() const = 0;
virtual interleaver INTERLEAVER() const = 0;
virtual int blocklength() const = 0;
};
typedef sccc_encoder<std::uint8_t, std::uint8_t> sccc_encoder_bb;
typedef sccc_encoder<std::uint8_t, std::int16_t> sccc_encoder_bs;
typedef sccc_encoder<std::uint8_t, std::int32_t> sccc_encoder_bi;
typedef sccc_encoder<std::int16_t, std::int16_t> sccc_encoder_ss;
typedef sccc_encoder<std::uint8_t, std::int32_t> sccc_encoder_si;
typedef sccc_encoder<std::int32_t, std::int32_t> sccc_encoder_ii;
} /* namespace trellis */
} /* namespace gr */
#endif /* SCCC_ENCODER_H */
gr::sync_block
synchronous 1:1 input to output with history
Definition sync_block.h:26
gr::trellis::fsm
Finite State Machine Specification class.
Definition fsm.h:33
gr::trellis::interleaver
INTERLEAVER class.
Definition interleaver.h:26
gr::trellis::sccc_encoder
SCCC encoder.
Definition sccc_encoder.h:29
gr::trellis::sccc_encoder::sptr
std::shared_ptr< sccc_encoder< IN_T, OUT_T > > sptr
Definition sccc_encoder.h:31
gr::trellis::sccc_encoder::FSMo
virtual fsm FSMo() const =0
gr::trellis::sccc_encoder::STo
virtual int STo() const =0
gr::trellis::sccc_encoder::FSMi
virtual fsm FSMi() const =0
gr::trellis::sccc_encoder::INTERLEAVER
virtual interleaver INTERLEAVER() const =0
gr::trellis::sccc_encoder::blocklength
virtual int blocklength() const =0
gr::trellis::sccc_encoder::STi
virtual int STi() const =0
gr::trellis::sccc_encoder::make
static sptr make(const fsm &FSMo, int STo, const fsm &FSMi, int STi, const interleaver &INTERLEAVER, int blocklength)
fsm.h
api.h
TRELLIS_API
#define TRELLIS_API
Definition gr-trellis/include/gnuradio/trellis/api.h:18
interleaver.h
gr::trellis::sccc_encoder_bs
sccc_encoder< std::uint8_t, std::int16_t > sccc_encoder_bs
Definition sccc_encoder.h:48
gr::trellis::sccc_encoder_si
sccc_encoder< std::uint8_t, std::int32_t > sccc_encoder_si
Definition sccc_encoder.h:51
gr::trellis::sccc_encoder_bb
sccc_encoder< std::uint8_t, std::uint8_t > sccc_encoder_bb
Definition sccc_encoder.h:47
gr::trellis::sccc_encoder_ii
sccc_encoder< std::int32_t, std::int32_t > sccc_encoder_ii
Definition sccc_encoder.h:52
gr::trellis::sccc_encoder_ss
sccc_encoder< std::int16_t, std::int16_t > sccc_encoder_ss
Definition sccc_encoder.h:50
gr::trellis::sccc_encoder_bi
sccc_encoder< std::uint8_t, std::int32_t > sccc_encoder_bi
Definition sccc_encoder.h:49
gr
GNU Radio logging wrapper.
Definition basic_block.h:29
sync_block.h