GNU Radio's BLUETOOTH Package
gr::bluetooth::multi_block Class Reference

Bluetooth multi-channel parent class. More...

#include <multi_block.h>

Inheritance diagram for gr::bluetooth::multi_block:
gr::bluetooth::multi_LAP gr::bluetooth::multi_UAP gr::bluetooth::multi_hopper gr::bluetooth::multi_sniffer gr::bluetooth::multi_LAP_impl gr::bluetooth::multi_UAP_impl gr::bluetooth::multi_hopper_impl gr::bluetooth::multi_sniffer_impl

Protected Member Functions

 multi_block ()
 multi_block (double sample_rate, double center_freq, double squelch_threshold)
int mm_cr (const float *in, int ninput_items, float *out, int noutput_items)
void demod (const gr_complex *in, float *out, int noutput_items)
void slicer (const float *in, char *out, int noutput_items)
int channel_samples (const double freq, gr_vector_const_void_star &in, gr_vector_void_star &out, double &energy, int ninput_items)
int channel_symbols (gr_vector_const_void_star &in, char *out, int ninput_items)
bool check_snr (const double freq, const double on_channel_energy, double &snr, gr_vector_const_void_star &in)
void set_symbol_history (int num_symbols)
void set_channels ()
double channel_rel_freq (int channel)
double channel_abs_freq (int channel)
int abs_freq_channel (double freq)

Protected Attributes

uint64_t d_cumulative_count
double d_sample_rate
double d_samples_per_symbol
double d_samples_per_slot
double d_center_freq
double d_low_freq
double d_high_freq
int d_ddc_decimation_rate
float d_gain_mu
float d_mu
float d_omega_relative_limit
float d_omega
float d_gain_omega
float d_omega_mid
float d_last_sample
double d_target_snr
double d_channel_filter_width
std::vector< float > d_channel_filter
std::map< int, gr::filter::freq_xlating_fir_filter_ccf::sptr > d_channel_ddcs
double d_noise_filter_width
std::vector< float > d_noise_filter
std::map< int, gr::filter::freq_xlating_fir_filter_ccf::sptr > d_noise_ddcs
int d_first_channel_sample
int d_first_noise_sample
float d_demod_gain
gr::filter::mmse_fir_interpolator_ff * d_interp

Static Protected Attributes

static const int SYMBOL_RATE = 1000000
static const int SYMBOLS_PER_BASIC_RATE_SHORTENED_ACCESS_CODE = 68
static const int SYMBOLS_PER_LOW_ENERGY_PREAMBLE_AA = 40
static const int SYMBOLS_PER_BASIC_RATE_SLOT = 625
static const int SYMBOLS_FOR_BASIC_RATE_HISTORY = 3125
static const uint32_t BASE_FREQUENCY = 2402000000UL
static const int CHANNEL_WIDTH = 1000000

Detailed Description

Bluetooth multi-channel parent class.

Constructor & Destructor Documentation

◆ multi_block() [1/2]

gr::bluetooth::multi_block::multi_block ( )
inlineprotected

◆ multi_block() [2/2]

gr::bluetooth::multi_block::multi_block ( double sample_rate,
double center_freq,
double squelch_threshold )
protected

Member Function Documentation

◆ abs_freq_channel()

int gr::bluetooth::multi_block::abs_freq_channel ( double freq)
protected

◆ channel_abs_freq()

double gr::bluetooth::multi_block::channel_abs_freq ( int channel)
protected

◆ channel_rel_freq()

double gr::bluetooth::multi_block::channel_rel_freq ( int channel)
protected

◆ channel_samples()

int gr::bluetooth::multi_block::channel_samples ( const double freq,
gr_vector_const_void_star & in,
gr_vector_void_star & out,
double & energy,
int ninput_items )
protected

Extract a single BT channel's worth of samples from the wider bandwidth samples.

◆ channel_symbols()

int gr::bluetooth::multi_block::channel_symbols ( gr_vector_const_void_star & in,
char * out,
int ninput_items )
protected

Produce symbols stream for a single BT channel, developed from of the raw samples for a single BT channel.

◆ check_snr()

bool gr::bluetooth::multi_block::check_snr ( const double freq,
const double on_channel_energy,
double & snr,
gr_vector_const_void_star & in )
protected

◆ demod()

void gr::bluetooth::multi_block::demod ( const gr_complex * in,
float * out,
int noutput_items )
protected

◆ mm_cr()

int gr::bluetooth::multi_block::mm_cr ( const float * in,
int ninput_items,
float * out,
int noutput_items )
protected

◆ set_channels()

void gr::bluetooth::multi_block::set_channels ( )
protected

◆ set_symbol_history()

void gr::bluetooth::multi_block::set_symbol_history ( int num_symbols)
protected

◆ slicer()

void gr::bluetooth::multi_block::slicer ( const float * in,
char * out,
int noutput_items )
protected

Member Data Documentation

◆ BASE_FREQUENCY

const uint32_t gr::bluetooth::multi_block::BASE_FREQUENCY = 2402000000UL
staticprotected

◆ CHANNEL_WIDTH

const int gr::bluetooth::multi_block::CHANNEL_WIDTH = 1000000
staticprotected

◆ d_center_freq

double gr::bluetooth::multi_block::d_center_freq
protected

◆ d_channel_ddcs

std::map<int, gr::filter::freq_xlating_fir_filter_ccf::sptr> gr::bluetooth::multi_block::d_channel_ddcs
protected

◆ d_channel_filter

std::vector<float> gr::bluetooth::multi_block::d_channel_filter
protected

◆ d_channel_filter_width

double gr::bluetooth::multi_block::d_channel_filter_width
protected

◆ d_cumulative_count

uint64_t gr::bluetooth::multi_block::d_cumulative_count
protected

◆ d_ddc_decimation_rate

int gr::bluetooth::multi_block::d_ddc_decimation_rate
protected

◆ d_demod_gain

float gr::bluetooth::multi_block::d_demod_gain
protected

◆ d_first_channel_sample

int gr::bluetooth::multi_block::d_first_channel_sample
protected

◆ d_first_noise_sample

int gr::bluetooth::multi_block::d_first_noise_sample
protected

◆ d_gain_mu

float gr::bluetooth::multi_block::d_gain_mu
protected

◆ d_gain_omega

float gr::bluetooth::multi_block::d_gain_omega
protected

◆ d_high_freq

double gr::bluetooth::multi_block::d_high_freq
protected

◆ d_interp

gr::filter::mmse_fir_interpolator_ff* gr::bluetooth::multi_block::d_interp
protected

◆ d_last_sample

float gr::bluetooth::multi_block::d_last_sample
protected

◆ d_low_freq

double gr::bluetooth::multi_block::d_low_freq
protected

◆ d_mu

float gr::bluetooth::multi_block::d_mu
protected

◆ d_noise_ddcs

std::map<int, gr::filter::freq_xlating_fir_filter_ccf::sptr> gr::bluetooth::multi_block::d_noise_ddcs
protected

◆ d_noise_filter

std::vector<float> gr::bluetooth::multi_block::d_noise_filter
protected

◆ d_noise_filter_width

double gr::bluetooth::multi_block::d_noise_filter_width
protected

◆ d_omega

float gr::bluetooth::multi_block::d_omega
protected

◆ d_omega_mid

float gr::bluetooth::multi_block::d_omega_mid
protected

◆ d_omega_relative_limit

float gr::bluetooth::multi_block::d_omega_relative_limit
protected

◆ d_sample_rate

double gr::bluetooth::multi_block::d_sample_rate
protected

◆ d_samples_per_slot

double gr::bluetooth::multi_block::d_samples_per_slot
protected

◆ d_samples_per_symbol

double gr::bluetooth::multi_block::d_samples_per_symbol
protected

◆ d_target_snr

double gr::bluetooth::multi_block::d_target_snr
protected

◆ SYMBOL_RATE

const int gr::bluetooth::multi_block::SYMBOL_RATE = 1000000
staticprotected

◆ SYMBOLS_FOR_BASIC_RATE_HISTORY

const int gr::bluetooth::multi_block::SYMBOLS_FOR_BASIC_RATE_HISTORY = 3125
staticprotected

◆ SYMBOLS_PER_BASIC_RATE_SHORTENED_ACCESS_CODE

const int gr::bluetooth::multi_block::SYMBOLS_PER_BASIC_RATE_SHORTENED_ACCESS_CODE = 68
staticprotected

◆ SYMBOLS_PER_BASIC_RATE_SLOT

const int gr::bluetooth::multi_block::SYMBOLS_PER_BASIC_RATE_SLOT = 625
staticprotected

◆ SYMBOLS_PER_LOW_ENERGY_PREAMBLE_AA

const int gr::bluetooth::multi_block::SYMBOLS_PER_LOW_ENERGY_PREAMBLE_AA = 40
staticprotected

The documentation for this class was generated from the following file: