GNU Radio Manual and C++ API Reference 3.10.5.1
The Free & Open Software Radio Ecosystem
sccc_encoder.h
Go to the documentation of this file.
1/* -*- c++ -*- */
2/*
3 * Copyright 2004,2012,2018 Free Software Foundation, Inc.
4 *
5 * This file is part of GNU Radio
6 *
7 * SPDX-License-Identifier: GPL-3.0-or-later
8 *
9 */
10
11#ifndef SCCC_ENCODER_H
12#define SCCC_ENCODER_H
13
14#include <gnuradio/sync_block.h>
18#include <vector>
19
20namespace gr {
21namespace trellis {
22
23/*!
24 * \brief SCCC encoder.
25 * \ingroup trellis_coding_blk
26 */
27template <class IN_T, class OUT_T>
28class TRELLIS_API sccc_encoder : virtual public sync_block
29{
30public:
31 typedef std::shared_ptr<sccc_encoder<IN_T, OUT_T>> sptr;
32
33 static sptr make(const fsm& FSMo,
34 int STo,
35 const fsm& FSMi,
36 int STi,
37 const interleaver& INTERLEAVER,
38 int blocklength);
39
40 virtual fsm FSMo() const = 0;
41 virtual int STo() const = 0;
42 virtual fsm FSMi() const = 0;
43 virtual int STi() const = 0;
44 virtual interleaver INTERLEAVER() const = 0;
45 virtual int blocklength() const = 0;
46};
53
54} /* namespace trellis */
55} /* namespace gr */
56
57#endif /* SCCC_ENCODER_H */
synchronous 1:1 input to output with history
Definition: sync_block.h:26
Finite State Machine Specification class.
Definition: fsm.h:33
INTERLEAVER class.
Definition: interleaver.h:26
SCCC encoder.
Definition: sccc_encoder.h:29
virtual fsm FSMo() const =0
virtual int STo() const =0
virtual fsm FSMi() const =0
std::shared_ptr< sccc_encoder< IN_T, OUT_T > > sptr
Definition: sccc_encoder.h:31
virtual interleaver INTERLEAVER() const =0
virtual int blocklength() const =0
virtual int STi() const =0
static sptr make(const fsm &FSMo, int STo, const fsm &FSMi, int STi, const interleaver &INTERLEAVER, int blocklength)
#define TRELLIS_API
Definition: gr-trellis/include/gnuradio/trellis/api.h:18
sccc_encoder< std::uint8_t, std::int16_t > sccc_encoder_bs
Definition: sccc_encoder.h:48
sccc_encoder< std::uint8_t, std::int32_t > sccc_encoder_si
Definition: sccc_encoder.h:51
sccc_encoder< std::uint8_t, std::uint8_t > sccc_encoder_bb
Definition: sccc_encoder.h:47
sccc_encoder< std::int32_t, std::int32_t > sccc_encoder_ii
Definition: sccc_encoder.h:52
sccc_encoder< std::int16_t, std::int16_t > sccc_encoder_ss
Definition: sccc_encoder.h:50
sccc_encoder< std::uint8_t, std::int32_t > sccc_encoder_bi
Definition: sccc_encoder.h:49
GNU Radio logging wrapper.
Definition: basic_block.h:29