itpp_sci  1.0.0
it++ based simulation framework for scicoslab, scilab and scipy
sim_cofdm_dem.hpp
1 
6 #ifndef COFDM_DEM_HPP
7 #define COFDM_DEM_HPP
8 
9 #include <itpp/itbase.h>
10 #include <itpp/itcomm.h>
11 
12 #include <complex>
13 #include "sim\_sim_extension.hpp"
14 
15 using namespace itpp;
16 using namespace std;
17 
18 
19 namespace SIM
20 {
21 
29 class cofdm_dem : public itpp::OFDM
30 {
31 private:
32  int NFFT;
33  int CP;
34  double scale;
35  cvec symbol;
36 
37 public:
38 
39  cvec y0;
41  {
42  NFFT = 256;
43  CP = 16;
44  OFDM::set_parameters(NFFT, CP, 1);
45  scale = std::sqrt(static_cast<double>(NFFT)) / std::sqrt(static_cast<double>(NFFT + CP));
46  y0.set_size(NFFT);
47  symbol.set_size(NFFT);
48  };
49 
51  {
52  };
53 
57  void set_NFFT(int n);
58 
62  void set_CP(int cp);
63 
67  void set_scale(double s);
68 
72  void set_symbol(cvec x);
73 
77  int get_NFFT();
78 
82  int get_CP();
83 
87  double get_scale();
88 
92  cvec get_symbol();
93 
97  cvec get_carriers();
98 
104  cmat process(const bvec &ce, const cmat &x);
105 
106 };
107 
108 
109 }
110 #endif //SIM_cofdm_dem
~cofdm_dem()
Definition: sim_cofdm_dem.hpp:50
cofdm_dem()
Definition: sim_cofdm_dem.hpp:40
SIM layer implements low level simulation models with itpp base classes as operational types...
Definition: sim_amp.hpp:15
COFDM demodulator Core immediate functions SIM::cofdm_dem.set_symbol(), SIM::cofdm_mod.get_carriers() Core clocked functions SIM::cofdm_dem.process() .
Definition: sim_cofdm_dem.hpp:29
Definition: _sci_assert.cpp:35
cvec y0
y0 - demodulated carriers (frequency domain)
Definition: sim_cofdm_dem.hpp:39