summaryrefslogtreecommitdiff
path: root/src/lib/gsm_receiver_cf.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/lib/gsm_receiver_cf.h')
-rw-r--r--src/lib/gsm_receiver_cf.h10
1 files changed, 7 insertions, 3 deletions
diff --git a/src/lib/gsm_receiver_cf.h b/src/lib/gsm_receiver_cf.h
index cc3fc15..796bb5b 100644
--- a/src/lib/gsm_receiver_cf.h
+++ b/src/lib/gsm_receiver_cf.h
@@ -247,7 +247,8 @@ class gsm_receiver_cf : public gr_block
const int d_chan_imp_length;
gr_complex d_sch_training_seq[N_SYNC_BITS]; //encoded training sequence of a SCH burst
-
+ gr_complex d_norm_training_seq[TRAIN_SEQ_NUM][N_TRAIN_BITS];
+
gr_feval_dd *d_tuner;
unsigned d_counter;
@@ -284,11 +285,14 @@ class gsm_receiver_cf : public gr_block
bool find_sch_burst(const gr_complex *in, const int nitems , float *out);
int get_sch_chan_imp_resp(const gr_complex *in, gr_complex * chan_imp_resp);
void detect_burst(const gr_complex * in, gr_complex * chan_imp_resp, int burst_start, unsigned char * output_binary);
- void gmsk_mapper(const int * input, gr_complex * gmsk_output, int ninput);
+ void gmsk_mapper(const unsigned char * input, int ninput, gr_complex * gmsk_output, gr_complex start_point);
gr_complex correlate_sequence(const gr_complex * sequence, const gr_complex * input_signal, int ninput);
inline void autocorrelation(const gr_complex * input, gr_complex * out, int length);
inline void mafi(const gr_complex * input, int input_length, gr_complex * filter, int filter_length, gr_complex * output);
-
+ int get_norm_chan_imp_resp(const gr_complex *in, gr_complex * chan_imp_resp, unsigned search_range);
+ void detect_norm_burst(const gr_complex * in, gr_complex * chan_imp_resp, int burst_start, unsigned char * output_binary);
+ inline void mafi_norm(const gr_complex * input, int input_length, gr_complex * filter, int filter_length, gr_complex * output);
+
public:
~gsm_receiver_cf();
void forecast(int noutput_items, gr_vector_int &ninput_items_required);
personal git repositories of Harald Welte. Your mileage may vary