~ubuntu-branches/ubuntu/trusty/gnuradio/trusty-updates

« back to all changes in this revision

Viewing changes to gr-digital/include/digital_ofdm_mapper_bcv.h

  • Committer: Package Import Robot
  • Author(s): A. Maitland Bottoms
  • Date: 2012-02-26 21:26:16 UTC
  • mfrom: (1.1.4)
  • Revision ID: package-import@ubuntu.com-20120226212616-vsfkbi1158xshdql
Tags: 3.5.1-1
* new upstream version, re-packaged from scratch with modern tools
    closes: #642716, #645332, #394849, #616832, #590048, #642580,
    #647018, #557050, #559640, #631863
* CMake build

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
/* -*- c++ -*- */
 
2
/*
 
3
 * Copyright 2006,2007,2011 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
 
18
 * along with GNU Radio; see the file COPYING.  If not, write to
 
19
 * the Free Software Foundation, Inc., 51 Franklin Street,
 
20
 * Boston, MA 02110-1301, USA.
 
21
 */
 
22
 
 
23
#ifndef INCLUDED_DIGITAL_OFDM_MAPPER_BCV_H
 
24
#define INCLUDED_DIGITAL_OFDM_MAPPER_BCV_H
 
25
 
 
26
#include <digital_api.h>
 
27
#include <gr_sync_block.h>
 
28
#include <gr_message.h>
 
29
#include <gr_msg_queue.h>
 
30
 
 
31
class digital_ofdm_mapper_bcv;
 
32
typedef boost::shared_ptr<digital_ofdm_mapper_bcv> digital_ofdm_mapper_bcv_sptr;
 
33
 
 
34
DIGITAL_API digital_ofdm_mapper_bcv_sptr 
 
35
digital_make_ofdm_mapper_bcv (const std::vector<gr_complex> &constellation, unsigned msgq_limit, 
 
36
                              unsigned occupied_carriers, unsigned int fft_length);
 
37
 
 
38
/*!
 
39
 * \brief take a stream of bytes in and map to a vector of complex
 
40
 * constellation points suitable for IFFT input to be used in an ofdm
 
41
 * modulator.  Abstract class must be subclassed with specific mapping.
 
42
 * \ingroup modulation_blk
 
43
 * \ingroup ofdm_blk
 
44
 */
 
45
 
 
46
class DIGITAL_API digital_ofdm_mapper_bcv : public gr_sync_block
 
47
{
 
48
  friend DIGITAL_API digital_ofdm_mapper_bcv_sptr
 
49
  digital_make_ofdm_mapper_bcv (const std::vector<gr_complex> &constellation, unsigned msgq_limit, 
 
50
                                unsigned occupied_carriers, unsigned int fft_length);
 
51
protected:
 
52
  digital_ofdm_mapper_bcv (const std::vector<gr_complex> &constellation, unsigned msgq_limit, 
 
53
                           unsigned occupied_carriers, unsigned int fft_length);
 
54
 
 
55
 private:
 
56
  std::vector<gr_complex> d_constellation;
 
57
  gr_msg_queue_sptr     d_msgq;
 
58
  gr_message_sptr       d_msg;
 
59
  unsigned              d_msg_offset;
 
60
  bool                  d_eof;
 
61
  
 
62
  unsigned int          d_occupied_carriers;
 
63
  unsigned int          d_fft_length;
 
64
  unsigned int          d_bit_offset;
 
65
  int                   d_pending_flag;
 
66
 
 
67
  unsigned long  d_nbits;
 
68
  unsigned char  d_msgbytes;
 
69
  
 
70
  unsigned char d_resid;
 
71
  unsigned int d_nresid;
 
72
 
 
73
  std::vector<int> d_subcarrier_map;
 
74
 
 
75
  int randsym();
 
76
 
 
77
 public:
 
78
  ~digital_ofdm_mapper_bcv(void);
 
79
 
 
80
  gr_msg_queue_sptr     msgq() const { return d_msgq; }
 
81
 
 
82
  int work(int noutput_items,
 
83
           gr_vector_const_void_star &input_items,
 
84
           gr_vector_void_star &output_items);
 
85
 
 
86
};
 
87
 
 
88
#endif