25#ifndef INCLUDED_GR_BLUETOOTH_MULTI_BLOCK_H
26#define INCLUDED_GR_BLUETOOTH_MULTI_BLOCK_H
29#include <gnuradio/sync_block.h>
30#include <gnuradio/filter/mmse_fir_interpolator_ff.h>
31#include <gnuradio/filter/freq_xlating_fir_filter.h>
44 multi_block(
double sample_rate,
double center_freq,
double squelch_threshold);
106 std::map<int, gr::filter::freq_xlating_fir_filter_ccf::sptr>
d_noise_ddcs;
119 int mm_cr(
const float *in,
int ninput_items,
float *out,
int noutput_items);
122 void demod(
const gr_complex *in,
float *out,
int noutput_items);
125 void slicer(
const float *in,
char *out,
int noutput_items);
132 gr_vector_const_void_star& in,
133 gr_vector_void_star& out,
146 const double on_channel_energy,
148 gr_vector_const_void_star& in );
#define BLUETOOTH_API
Definition api.h:19
void slicer(const float *in, char *out, int noutput_items)
float d_gain_omega
Definition multi_block.h:91
int mm_cr(const float *in, int ninput_items, float *out, int noutput_items)
double d_center_freq
Definition multi_block.h:75
int d_first_noise_sample
Definition multi_block.h:110
bool check_snr(const double freq, const double on_channel_energy, double &snr, gr_vector_const_void_star &in)
std::map< int, gr::filter::freq_xlating_fir_filter_ccf::sptr > d_channel_ddcs
Definition multi_block.h:101
float d_omega_mid
Definition multi_block.h:92
void demod(const gr_complex *in, float *out, int noutput_items)
double d_target_snr
Definition multi_block.h:96
double d_samples_per_slot
Definition multi_block.h:72
float d_gain_mu
Definition multi_block.h:87
std::map< int, gr::filter::freq_xlating_fir_filter_ccf::sptr > d_noise_ddcs
Definition multi_block.h:106
static const int SYMBOL_RATE
Definition multi_block.h:47
static const int CHANNEL_WIDTH
Definition multi_block.h:60
int d_ddc_decimation_rate
Definition multi_block.h:84
float d_mu
Definition multi_block.h:88
float d_omega
Definition multi_block.h:90
static const int SYMBOLS_FOR_BASIC_RATE_HISTORY
Definition multi_block.h:54
void set_symbol_history(int num_symbols)
double d_noise_filter_width
Definition multi_block.h:104
multi_block(double sample_rate, double center_freq, double squelch_threshold)
multi_block()
Definition multi_block.h:43
double d_sample_rate
Definition multi_block.h:66
uint64_t d_cumulative_count
Definition multi_block.h:63
std::vector< float > d_noise_filter
Definition multi_block.h:105
static const int SYMBOLS_PER_LOW_ENERGY_PREAMBLE_AA
Definition multi_block.h:50
double d_samples_per_symbol
Definition multi_block.h:69
std::vector< float > d_channel_filter
Definition multi_block.h:100
gr::filter::mmse_fir_interpolator_ff * d_interp
Definition multi_block.h:116
float d_omega_relative_limit
Definition multi_block.h:89
double channel_rel_freq(int channel)
double channel_abs_freq(int channel)
static const int SYMBOLS_PER_BASIC_RATE_SLOT
Definition multi_block.h:53
float d_demod_gain
Definition multi_block.h:113
int channel_samples(const double freq, gr_vector_const_void_star &in, gr_vector_void_star &out, double &energy, int ninput_items)
double d_low_freq
Definition multi_block.h:78
static const uint32_t BASE_FREQUENCY
Definition multi_block.h:57
static const int SYMBOLS_PER_BASIC_RATE_SHORTENED_ACCESS_CODE
Definition multi_block.h:49
int d_first_channel_sample
Definition multi_block.h:109
double d_high_freq
Definition multi_block.h:81
int abs_freq_channel(double freq)
int channel_symbols(gr_vector_const_void_star &in, char *out, int ninput_items)
double d_channel_filter_width
Definition multi_block.h:99
float d_last_sample
Definition multi_block.h:93
Definition multi_block.h:34
Definition multi_block.h:33