summaryrefslogtreecommitdiff
path: root/gsm-tvoid/src/lib/gsm_burst_cf.h
diff options
context:
space:
mode:
Diffstat (limited to 'gsm-tvoid/src/lib/gsm_burst_cf.h')
-rwxr-xr-xgsm-tvoid/src/lib/gsm_burst_cf.h50
1 files changed, 50 insertions, 0 deletions
diff --git a/gsm-tvoid/src/lib/gsm_burst_cf.h b/gsm-tvoid/src/lib/gsm_burst_cf.h
new file mode 100755
index 0000000..fe3663c
--- /dev/null
+++ b/gsm-tvoid/src/lib/gsm_burst_cf.h
@@ -0,0 +1,50 @@
+#ifndef INCLUDED_GSM_BURST_CF_H
+#define INCLUDED_GSM_BURST_CF_H
+
+#include <gr_block.h>
+#include "gsm_burst.h"
+#include "mm_f.h"
+
+class gsm_burst_cf;
+
+typedef boost::shared_ptr<gsm_burst_cf> gsm_burst_cf_sptr;
+
+gsm_burst_cf_sptr gsm_make_burst_cf(gr_feval_ll *,float);
+
+class gri_mmse_fir_interpolator_cc;
+
+class gsm_burst_cf : public gr_block, public gsm_burst
+{
+private:
+
+ friend gsm_burst_cf_sptr gsm_make_burst_cf(gr_feval_ll *,float);
+ gsm_burst_cf(gr_feval_ll *,float);
+
+ //clocking parameters
+ float d_sample_interval;
+ float d_clock_counter; //??? sample count ???
+
+ gr_complex d_last_sample;
+
+ //M&M clock recovery
+ mm_f mm;
+
+ gri_mmse_fir_interpolator_cc *d_interp; //sub-sample interpolator from GR
+
+ gr_complex slicer(gr_complex x);
+
+public:
+ ~gsm_burst_cf ();
+
+ void forecast (int noutput_items, gr_vector_int &ninput_items_required);
+
+ int general_work ( int noutput_items,
+ gr_vector_int &ninput_items,
+ gr_vector_const_void_star &input_items,
+ gr_vector_void_star &output_items);
+
+ float get_omega() {return mm.d_omega;}
+
+};
+
+#endif /* INCLUDED_GSM_BURST_CF_H */
personal git repositories of Harald Welte. Your mileage may vary