23 #ifndef INCLUDED_GSM_RECEIVER_IMPL_H 24 #define INCLUDED_GSM_RECEIVER_IMPL_H 37 unsigned int d_c0_burst_start;
38 float d_c0_signal_dbm;
43 bool d_process_uplink;
44 const int d_chan_imp_length;
46 std::vector<int> d_tseq_nums;
47 std::vector<int> d_cell_allocation;
66 bool d_freq_offset_tag_in_fcch;
67 unsigned d_fcch_start_pos;
68 float d_freq_offset_setting;
70 std::list<double> d_freq_offset_vals;
81 fcch_search, sch_search,
92 unsigned d_failed_sch;
101 bool find_fcch_burst(
const gr_complex *input,
const int nitems,
double & computed_freq_offset);
111 double compute_freq_offset(
const gr_complex * input,
unsigned first_sample,
unsigned last_sample);
118 inline float compute_phase_diff(gr_complex val1, gr_complex val2);
125 bool reach_sch_burst(
const int nitems);
133 int get_sch_chan_imp_resp(
const gr_complex *input, gr_complex * chan_imp_resp);
143 void detect_burst(
const gr_complex * input, gr_complex * chan_imp_resp,
int burst_start,
unsigned char * output_binary);
152 void gmsk_mapper(
const unsigned char * input,
int nitems, gr_complex * gmsk_output, gr_complex start_point);
161 gr_complex correlate_sequence(
const gr_complex * sequence,
int length,
const gr_complex * input);
169 inline void autocorrelation(
const gr_complex * input, gr_complex * out,
int nitems);
179 inline void mafi(
const gr_complex * input,
int nitems, gr_complex * filter,
int filter_length, gr_complex * output);
189 int get_norm_chan_imp_resp(
const gr_complex *input, gr_complex * chan_imp_resp,
float *corr_max,
int bcc);
198 void send_burst(
burst_counter burst_nr,
const unsigned char * burst_binary, uint8_t
burst_type,
unsigned int input_nr);
203 void configure_receiver();
206 void fcch_search_handler(gr_complex *input,
int noutput_items);
207 void sch_search_handler(gr_complex *input,
int noutput_items);
208 void synchronized_handler(gr_complex *input,
209 gr_vector_const_void_star &input_items,
int noutput_items);
212 receiver_impl(
int osr,
const std::vector<int> &cell_allocation,
const std::vector<int> &tseq_nums,
bool process_uplink);
215 int work(
int noutput_items, gr_vector_const_void_star &input_items, gr_vector_void_star &output_items);
217 virtual void set_tseq_nums(
const std::vector<int> & tseq_nums);
218 virtual void reset();
Definition: receiver_config.h:131
virtual void set_cell_allocation(const std::vector< int > &cell_allocation)
int work(int noutput_items, gr_vector_const_void_star &input_items, gr_vector_void_star &output_items)
#define N_TRAIN_BITS
Definition: gsm_constants.h:36
#define TRAIN_SEQ_NUM
Definition: gsm_constants.h:92
burst_type
Definition: gsm_constants.h:62
Definition: constants.h:29
#define N_SYNC_BITS
Definition: gsm_constants.h:37
receiver_impl(int osr, const std::vector< int > &cell_allocation, const std::vector< int > &tseq_nums, bool process_uplink)
Definition: receiver_config.h:67
Definition: receiver_impl.h:34
virtual void set_tseq_nums(const std::vector< int > &tseq_nums)
<+description of block+>
Definition: receiver.h:40