21 #ifndef INCLUDED_IRIDIUM_BURST_DOWNMIX_IMPL_H 22 #define INCLUDED_IRIDIUM_BURST_DOWNMIX_IMPL_H 24 #include <gnuradio/blocks/rotator.h> 25 #include <gnuradio/filter/fir_filter.h> 29 #include <volk/volk_alloc.hh> 37 int d_output_sample_rate;
38 int d_output_samples_per_symbol;
39 size_t d_max_burst_size;
41 int d_pre_start_samples;
42 int d_cfo_est_fft_size;
43 int d_fft_over_size_facor;
45 int d_sync_search_len;
46 int d_hard_max_queue_len;
47 uint64_t d_n_dropped_bursts;
48 bool d_handle_multiple_frames_per_burst;
55 gr_complex * d_dl_preamble_reversed_conj_fft;
56 gr_complex * d_ul_preamble_reversed_conj_fft;
58 float * d_magnitude_f;
59 float * d_magnitude_filtered_f;
60 float * d_cfo_est_window_f;
62 gr::fft::fft_complex * d_corr_fft;
63 gr::fft::fft_complex * d_corr_dl_ifft;
64 gr::fft::fft_complex * d_corr_ul_ifft;
66 filter::kernel::fir_filter_ccf d_input_fir;
67 filter::kernel::fir_filter_fff d_start_finder_fir;
68 filter::kernel::fir_filter_ccf d_rrc_fir;
69 filter::kernel::fir_filter_ccf d_rc_fir;
71 volk::vector<gr_complex> d_dl_preamble_reversed_conj;
72 volk::vector<gr_complex> d_ul_preamble_reversed_conj;
75 gr::fft::fft_complex d_cfo_est_fft;
77 void handler(pmt::pmt_t msg);
78 int process_next_frame(
float sample_rate,
float center_frequency,
79 uint64_t timestamp, uint64_t sub_id,
size_t burst_size,
80 int start,
float noise,
float magnitude);
82 void update_buffer_sizes(
size_t burst_size);
83 void initialize_cfo_est_fft(
void);
84 void initialize_correlation_filter(
void);
86 int fft_shift_index(
int index,
int fft_size);
87 int fft_unshift_index(
int index,
int fft_size);
88 float interpolate(
float alpha,
float beta,
float gamma);
92 const std::vector<float> &input_taps,
const std::vector<float> &start_finder_taps,
93 bool handle_multiple_frames_per_burst);
98 void debug_id(uint64_t
id);
100 int work(
int noutput_items,
101 gr_vector_const_void_star &input_items,
102 gr_vector_void_star &output_items);
uint64_t get_n_dropped_bursts()
direction
Definition: iridium.h:4
int work(int noutput_items, gr_vector_const_void_star &input_items, gr_vector_void_star &output_items)
burst_downmix_impl(int sample_rate, int search_depth, size_t hard_max_queue_len, const std::vector< float > &input_taps, const std::vector< float > &start_finder_taps, bool handle_multiple_frames_per_burst)
<+description of block+>
Definition: burst_downmix.h:35
size_t get_input_queue_size()
Definition: burst_downmix.h:27
Definition: burst_downmix_impl.h:34