Go to the documentation of this file.00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023 #ifndef INCLUDED_GR_OFDM_SAMPLER_H
00024 #define INCLUDED_GR_OFDM_SAMPLER_H
00025
00026 #include <gr_sync_block.h>
00027
00028 class gr_ofdm_sampler;
00029 typedef boost::shared_ptr<gr_ofdm_sampler> gr_ofdm_sampler_sptr;
00030
00031 gr_ofdm_sampler_sptr gr_make_ofdm_sampler (unsigned int fft_length,
00032 unsigned int symbol_length,
00033 unsigned int timeout=1000);
00034
00035
00036
00037
00038
00039 class gr_ofdm_sampler : public gr_block
00040 {
00041 friend gr_ofdm_sampler_sptr gr_make_ofdm_sampler (unsigned int fft_length,
00042 unsigned int symbol_length,
00043 unsigned int timeout);
00044
00045 gr_ofdm_sampler (unsigned int fft_length,
00046 unsigned int symbol_length,
00047 unsigned int timeout);
00048
00049 private:
00050 enum state_t {STATE_NO_SIG, STATE_PREAMBLE, STATE_FRAME};
00051
00052 state_t d_state;
00053 unsigned int d_timeout_max;
00054 unsigned int d_timeout;
00055 unsigned int d_fft_length;
00056 unsigned int d_symbol_length;
00057
00058 public:
00059 void forecast (int noutput_items, gr_vector_int &ninput_items_required);
00060
00061 int general_work (int noutput_items,
00062 gr_vector_int &ninput_items,
00063 gr_vector_const_void_star &input_items,
00064 gr_vector_void_star &output_items);
00065 };
00066
00067 #endif