GNU Radio Manual and C++ API Reference 3.7.14.0
The Free & Open Software Radio Ecosystem
ofdm_insert_preamble.h
Go to the documentation of this file.
1/* -*- c++ -*- */
2/*
3 * Copyright 2007,2011,2012 Free Software Foundation, Inc.
4 *
5 * This file is part of GNU Radio
6 *
7 * GNU Radio is free software; you can redistribute it and/or modify
8 * it under the terms of the GNU General Public License as published by
9 * the Free Software Foundation; either version 3, or (at your option)
10 * any later version.
11 *
12 * GNU Radio is distributed in the hope that it will be useful,
13 * but WITHOUT ANY WARRANTY; without even the implied warranty of
14 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15 * GNU General Public License for more details.
16 *
17 * You should have received a copy of the GNU General Public License along
18 * with this program; if not, write to the Free Software Foundation, Inc.,
19 * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
20 */
21
22#ifndef INCLUDED_DIGITAL_OFDM_INSERT_PREAMBLE_H
23#define INCLUDED_DIGITAL_OFDM_INSERT_PREAMBLE_H
24
25#include <gnuradio/block.h>
27#include <vector>
28
29namespace gr {
30namespace digital {
31
32/*!
33 * \brief insert "pre-modulated" preamble symbols before each payload.
34 * \ingroup ofdm_blk
35 * \ingroup synchronizers_blk
36 * \ingroup deprecated_blk
37 *
38 * \details
39 * <pre>
40 * input 1: stream of vectors of gr_complex [fft_length]
41 * These are the modulated symbols of the payload.
42 *
43 * input 2: stream of char. The LSB indicates whether the corresponding
44 * symbol on input 1 is the first symbol of the payload or not.
45 * It's a 1 if the corresponding symbol is the first symbol,
46 * otherwise 0.
47 *
48 * N.B., this implies that there must be at least 1 symbol in the payload.
49 *
50 * output 1: stream of vectors of gr_complex [fft_length]
51 * These include the preamble symbols and the payload symbols.
52 *
53 * output 2: stream of char. The LSB indicates whether the corresponding
54 * symbol on input 1 is the first symbol of a packet (i.e., the
55 * first symbol of the preamble.) It's a 1 if the corresponding
56 * symbol is the first symbol, otherwise 0.
57 * </pre>
58 */
60{
61public:
62 // gr::digital::ofdm_insert_preamble::sptr
63 typedef boost::shared_ptr<ofdm_insert_preamble> sptr;
64
65 /*!
66 * Make an OFDM preamble inserter block.
67 *
68 * \param fft_length length of each symbol in samples.
69 * \param preamble vector of symbols that represent the pre-modulated preamble.
70 */
71 static sptr make(int fft_length,
72 const std::vector<std::vector<gr_complex> >& preamble);
73
74 virtual void enter_preamble() = 0;
75};
76
77} /* namespace digital */
78} /* namespace gr */
79
80#endif /* INCLUDED_DIGITAL_OFDM_INSERT_PREAMBLE_H */
The abstract base class for all 'terminal' processing blocks.
Definition: block.h:66
insert "pre-modulated" preamble symbols before each payload.
Definition: ofdm_insert_preamble.h:60
static sptr make(int fft_length, const std::vector< std::vector< gr_complex > > &preamble)
boost::shared_ptr< ofdm_insert_preamble > sptr
Definition: ofdm_insert_preamble.h:63
#define DIGITAL_API
Definition: gr-digital/include/gnuradio/digital/api.h:30
Include this header to use the message passing features.
Definition: basic_block.h:45