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;
42 bool d_process_uplink;
43 const int d_chan_imp_length;
45 std::vector<int> d_tseq_nums;
46 std::vector<int> d_cell_allocation;
65 unsigned d_fcch_start_pos;
66 float d_freq_offset_setting;
68 std::list<double> d_freq_offset_vals;
79 fcch_search, sch_search,
90 unsigned d_failed_sch;
99 bool find_fcch_burst(
const gr_complex *input,
const int nitems,
double & computed_freq_offset);
109 double compute_freq_offset(
const gr_complex * input,
unsigned first_sample,
unsigned last_sample);
117 inline float compute_phase_diff(gr_complex val1, gr_complex val2);
124 bool reach_sch_burst(
const int nitems);
132 int get_sch_chan_imp_resp(
const gr_complex *input, gr_complex * chan_imp_resp);
142 void detect_burst(
const gr_complex * input, gr_complex * chan_imp_resp,
int burst_start,
unsigned char * output_binary);
151 void gmsk_mapper(
const unsigned char * input,
int nitems, gr_complex * gmsk_output, gr_complex start_point);
160 gr_complex correlate_sequence(
const gr_complex * sequence,
int length,
const gr_complex * input);
168 inline void autocorrelation(
const gr_complex * input, gr_complex * out,
int nitems);
178 inline void mafi(
const gr_complex * input,
int nitems, gr_complex * filter,
int filter_length, gr_complex * output);
188 int get_norm_chan_imp_resp(
const gr_complex *input, gr_complex * chan_imp_resp,
float *corr_max,
int bcc);
197 void send_burst(
burst_counter burst_nr,
const unsigned char * burst_binary, uint8_t
burst_type,
unsigned int input_nr);
202 void configure_receiver();
207 receiver_impl(
int osr,
const std::vector<int> &cell_allocation,
const std::vector<int> &tseq_nums,
bool process_uplink);
210 int work(
int noutput_items, gr_vector_const_void_star &input_items, gr_vector_void_star &output_items);
212 virtual void set_tseq_nums(
const std::vector<int> & tseq_nums);
213 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
#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:41