00001
00030 #ifndef OFDM_H
00031 #define OFDM_H
00032
00033 #include <itpp/base/vec.h>
00034
00035
00036 namespace itpp
00037 {
00038
00045 class OFDM
00046 {
00047 public:
00049 OFDM(void) { setup_done = false; }
00051 OFDM(int inNfft, int inNcp, int inNupsample = 1);
00053 int no_carriers() {return Nfft;}
00055 void set_parameters(const int Nfft, const int Ncp, const int inNupsample = 1);
00057 cvec modulate(const cvec &input);
00059 void modulate(const cvec &input, cvec &output);
00061 cvec demodulate(const cvec &input);
00063 void demodulate(const cvec &input, cvec &output);
00064 private:
00065 double norm_factor;
00066 bool setup_done;
00067 int Nfft, Ncp, Nupsample;
00068 };
00069
00070 }
00071
00072 #endif // #ifndef OFDM_H