The Inspector (GNU Radio module gr-inspector)
gr::inspector::signal_separator_c Class Referenceabstract

Signal Separator takes input signal and RF map as input and passes samples of each filtered and decimated signal as output. More...

#include <signal_separator_c.h>

Inheritance diagram for gr::inspector::signal_separator_c:
gr::inspector::signal_separator_c_impl

Public Types

typedef boost::shared_ptr< signal_separator_csptr
 

Public Member Functions

virtual void set_samp_rate (double d_samp_rate)=0
 
virtual void set_window (int d_window)=0
 
virtual void set_trans_width (float d_trans_width)=0
 
virtual void set_oversampling (float d_oversampling)=0
 

Static Public Member Functions

static sptr make (double samp_rate, int window, float trans_width, float oversampling, bool taps_file, std::map< float, std::vector< float >> &file_path)
 Return new instance of Signal Separator block. More...
 

Detailed Description

Signal Separator takes input signal and RF map as input and passes samples of each filtered and decimated signal as output.

Signal Separator block takes input signal and RF map with signal center frequencies and bandwidths and filters the input spectrum for each signal.

Internally, FIR filters get calculated according to the RF map's specs. The steepness of the filters can be set with the relative transition width parameter. The spectrum gets shifted by the center frequency of each signal and filtered with the corresponding filter calculated from the RF map information. A floored integer decimation will be applied according to the set oversampling factor (decim = floor(samp_rate/(bw*OSF))).

To save CPU load, generic taps can be precalculated with the tool in the apps/ folder. This tool outputs a JSON file, which path can be specified in the block parameter file_path.

Output of this block is a pmt vector of tuples in the format

#[#(SigNo, cfreq, bandwidth, #[vector of samples]), #(...)]

Member Typedef Documentation

◆ sptr

Member Function Documentation

◆ make()

static sptr gr::inspector::signal_separator_c::make ( double  samp_rate,
int  window,
float  trans_width,
float  oversampling,
bool  taps_file,
std::map< float, std::vector< float >> &  file_path 
)
static

Return new instance of Signal Separator block.

Parameters
samp_rateSample rate of input signal
windowFirdes window type to scale input samples with
trans_widthTransition width for each signal relative to center frequency (w = trans_width*center_freq)
oversamplingOversampling factor (OSF) to ensure the whole signal gets passed
taps_fileDetermine wether to use a file of precalculated taps or caluculate them during runtime
file_pathFile path to taps file (leave empty if not enabled)

◆ set_oversampling()

virtual void gr::inspector::signal_separator_c::set_oversampling ( float  d_oversampling)
pure virtual

◆ set_samp_rate()

virtual void gr::inspector::signal_separator_c::set_samp_rate ( double  d_samp_rate)
pure virtual

◆ set_trans_width()

virtual void gr::inspector::signal_separator_c::set_trans_width ( float  d_trans_width)
pure virtual

◆ set_window()

virtual void gr::inspector::signal_separator_c::set_window ( int  d_window)
pure virtual

Takes integers and does internal cast to firdes::win_type

Implemented in gr::inspector::signal_separator_c_impl.


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