23 #ifndef INCLUDED_GSM_RECEIVER_IMPL_H
24 #define INCLUDED_GSM_RECEIVER_IMPL_H
39 unsigned int d_c0_burst_start;
40 float d_c0_signal_dbm;
44 const int d_chan_imp_length;
46 std::vector<int> d_tseq_nums;
47 std::vector<int> d_cell_allocation;
64 unsigned d_fcch_start_pos;
65 float d_freq_offset_setting;
67 std::list<double> d_freq_offset_vals;
78 fcch_search, sch_search,
89 unsigned d_failed_sch;
98 bool find_fcch_burst(
const gr_complex *input,
const int nitems,
double & computed_freq_offset);
108 double compute_freq_offset(
const gr_complex * input,
unsigned first_sample,
unsigned last_sample);
116 inline float compute_phase_diff(gr_complex val1, gr_complex val2);
123 bool reach_sch_burst(
const int nitems);
131 int get_sch_chan_imp_resp(
const gr_complex *input, gr_complex * chan_imp_resp);
141 void detect_burst(
const gr_complex * input, gr_complex * chan_imp_resp,
int burst_start,
unsigned char * output_binary);
150 void gmsk_mapper(
const unsigned char * input,
int nitems, gr_complex * gmsk_output, gr_complex start_point);
159 gr_complex correlate_sequence(
const gr_complex * sequence,
int length,
const gr_complex * input);
167 inline void autocorrelation(
const gr_complex * input, gr_complex * out,
int nitems);
177 inline void mafi(
const gr_complex * input,
int nitems, gr_complex * filter,
int filter_length, gr_complex * output);
187 int get_norm_chan_imp_resp(
const gr_complex *input, gr_complex * chan_imp_resp,
float *corr_max,
int bcc);
196 void send_burst(
burst_counter burst_nr,
const unsigned char * burst_binary, uint8_t
burst_type,
unsigned int input_nr);
201 void configure_receiver();
206 receiver_impl(
int osr,
const std::vector<int> &cell_allocation,
const std::vector<int> &tseq_nums);
209 int work(
int noutput_items, gr_vector_const_void_star &input_items, gr_vector_void_star &output_items);
211 virtual void set_tseq_nums(
const std::vector<int> & tseq_nums);
212 virtual void reset();
receiver_impl(int osr, const std::vector< int > &cell_allocation, const std::vector< int > &tseq_nums)
Definition: receiver_config.h:129
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
std::vector< gr_complex > vector_complex
Definition: receiver_impl.h:34
#define TRAIN_SEQ_NUM
Definition: gsm_constants.h:92
burst_type
Definition: gsm_constants.h:62
Definition: control_channels_decoder.h:30
#define N_SYNC_BITS
Definition: gsm_constants.h:37
Definition: receiver_config.h:67
Definition: receiver_impl.h:36
virtual void set_tseq_nums(const std::vector< int > &tseq_nums)
<+description of block+>
Definition: receiver.h:40