diff options
author | Achilleas Anastasopoulos | 2011-02-20 13:10:15 -0500 |
---|---|---|
committer | Achilleas Anastasopoulos | 2011-02-20 13:10:15 -0500 |
commit | a36d479a99488037aadbd36714829ff673bf0226 (patch) | |
tree | 6c4db3f7830cddcec4992cca0770b79550ac036d /gr-trellis/src/lib/trellis_pccc_encoder_XX.h.t | |
parent | 77a448850c14b37b0c4098bd2f3fc836af34f907 (diff) | |
download | gnuradio-a36d479a99488037aadbd36714829ff673bf0226.tar.gz gnuradio-a36d479a99488037aadbd36714829ff673bf0226.tar.bz2 gnuradio-a36d479a99488037aadbd36714829ff673bf0226.zip |
added pccc (parallel concatenated convlutional code) encoder
Diffstat (limited to 'gr-trellis/src/lib/trellis_pccc_encoder_XX.h.t')
-rw-r--r-- | gr-trellis/src/lib/trellis_pccc_encoder_XX.h.t | 83 |
1 files changed, 83 insertions, 0 deletions
diff --git a/gr-trellis/src/lib/trellis_pccc_encoder_XX.h.t b/gr-trellis/src/lib/trellis_pccc_encoder_XX.h.t new file mode 100644 index 000000000..68ccf75db --- /dev/null +++ b/gr-trellis/src/lib/trellis_pccc_encoder_XX.h.t @@ -0,0 +1,83 @@ +/* -*- c++ -*- */ +/* + * Copyright 2004 Free Software Foundation, Inc. + * + * This file is part of GNU Radio + * + * GNU Radio is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 3, or (at your option) + * any later version. + * + * GNU Radio is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with GNU Radio; see the file COPYING. If not, write to + * the Free Software Foundation, Inc., 51 Franklin Street, + * Boston, MA 02110-1301, USA. + */ + +// @WARNING@ + +#ifndef @GUARD_NAME@ +#define @GUARD_NAME@ + +#include <vector> +#include "fsm.h" +#include "interleaver.h" +#include <gr_sync_block.h> + +class @NAME@; +typedef boost::shared_ptr<@NAME@> @SPTR_NAME@; + +@SPTR_NAME@ trellis_make_@BASE_NAME@ ( + const fsm &FSM1, int ST1, + const fsm &FSM2, int ST2, + const interleaver &INTERLEAVER, + int blocklength +); + +/*! + * \brief SCCC encoder. + * \ingroup coding_blk + */ +class @NAME@ : public gr_sync_block +{ +private: + friend @SPTR_NAME@ trellis_make_@BASE_NAME@ ( + const fsm &FSM1, int ST1, + const fsm &FSM2, int ST2, + const interleaver &INTERLEAVER, + int blocklength + ); + fsm d_FSM1; + int d_ST1; + fsm d_FSM2; + int d_ST2; + interleaver d_INTERLEAVER; + int d_blocklength; + std::vector<int> d_buffer; + @NAME@ ( + const fsm &FSM1, int ST1, + const fsm &FSM2, int ST2, + const interleaver &INTERLEAVER, + int blocklength + ); + +public: + fsm FSM1 () const { return d_FSM1; } + int ST1 () const { return d_ST1; } + fsm FSM2 () const { return d_FSM2; } + int ST2 () const { return d_ST2; } + interleaver INTERLEAVER () const { return d_INTERLEAVER; } + int blocklength () const { return d_blocklength; } + + int work (int noutput_items, + gr_vector_const_void_star &input_items, + gr_vector_void_star &output_items); +}; + +#endif |