dsp::InverseFilterbankEngineCPU Class Reference

InverseFilterbankEngineCPU is the InverseFilterbank engine that runs on the CPU. More...

#include <InverseFilterbankEngineCPU.h>

Inheritance diagram for dsp::InverseFilterbankEngineCPU:
dsp::InverseFilterbank::Engine Reference::Able Reference::HeapTracked CUDA::InverseFilterbankEngineCUDA

Public Member Functions

 InverseFilterbankEngineCPU ()
 Default Constructor.
 
void setup (InverseFilterbank *)
 Use the parent InverseFilterbank object to set properties used in the perform member function.
 
void set_scratch (float *)
 Setup scratch space used in the perform member function.
 
void perform (const TimeSeries *in, TimeSeries *out, uint64_t npart, uint64_t in_step=0, uint64_t out_step=0)
 Operate on input and output data TimeSeries, performing the PFB inversion algorithm.
 
void perform (const TimeSeries *in, TimeSeries *out, TimeSeries *zero_DM_out, uint64_t npart, const uint64_t in_step=0, const uint64_t out_step=0)
 
void finish ()
 Called when the the InverseFilterbank sees that the engine is done operating on data.
 
- Public Member Functions inherited from dsp::InverseFilterbank::Engine
unsigned get_total_scratch_needed () const
 get the amount of scratch space the engine has calculated that it needs
 
bool get_report () const
 
void set_report (bool _report)
 
- Public Member Functions inherited from Reference::Able
 Able (const Able &)
 
Ableoperator= (const Able &)
 
unsigned get_reference_count () const
 
- Public Member Functions inherited from Reference::HeapTracked
 HeapTracked (const HeapTracked &)
 
HeapTrackedoperator= (const HeapTracked &)
 
bool __is_on_heap () const
 

Protected Member Functions

void stitch (float *dest, unsigned ipol, unsigned fine_channel_offset, uint64_t input_offset_nfloat, bool shift_by_half_chan)
 
void stitch_one (float *dest, unsigned ipol, unsigned chan_offset, uint64_t input_offset_nfloat, bool shift_by_half_chan)
 
void filter (float *spectrum, unsigned ipol, unsigned chan_offset)
 
void invert (float *spectrum, unsigned ipol, unsigned chan_offset, uint64_t output_offset_nfloat)
 
void build_fine_channel_plan ()
 
unsigned matlab_fine_channel_plan (unsigned jchan)
 
- Protected Member Functions inherited from Reference::Able
Handle__reference (bool active) const
 
void __dereference (bool auto_delete=true) const
 

Protected Attributes

bool real_to_complex
 Complex-valued data.
 
bool dual_sideband
 Frequencies are ordered with fft[0]=DC, +ve, fft[N/2]=+/-Nyquist, -ve.
 
bool verbose
 verbosity flag
 
Responseresponse
 A response object that gets multiplied by assembled spectrum.
 
Responsezero_DM_response
 zero DM response
 
Apodizationtemporal_apodization
 Taper applied before forward FFT.
 
Apodizationspectral_apodization
 Taper applied before backward FFT.
 
unsigned input_npol
 the number of input polarizations
 
unsigned input_nchan
 The number of input channels. From the parent InverseFilterbank.
 
unsigned output_nchan
 The number of output channels. From the parent InverseFilterbank.
 
unsigned input_discard_neg
 The number of samples discarded at the end of an input TimeSeries. From the parent InverseFilterbank.
 
unsigned input_discard_pos
 The number of samples discarded at the start of an input TimeSeries. From the parent InverseFilterbank.
 
unsigned input_discard_total
 The total number of samples discarded in an input TimeSeries. From the parent InverseFilterbank.
 
unsigned output_discard_neg
 The number of samples discarded at the end of an output TimeSeries. From the parent InverseFilterbank.
 
unsigned output_discard_pos
 The number of samples discarded at the start of an output TimeSeries. From the parent InverseFilterbank.
 
unsigned output_discard_total
 The total number of samples discarded ain an input TimeSeries. From the parent InverseFilterbank.
 
unsigned input_fft_length
 The number of samples in the forward FFT.
 
unsigned output_fft_length
 The number of samples in the backward FFT.
 
unsigned input_sample_step
 The number samples in an input TimeSeries step, or segment. From the parent InverseFilterbank.
 
unsigned output_sample_step
 The number samples in an output TimeSeries step, or segment. From the parent InverseFilterbank.
 
unsigned input_os_keep
 How much of the forward FFT to keep due to oversampling.
 
unsigned input_os_discard
 How much of the forward FFT to discard due to oversampling.
 
bool fft_plans_setup
 Flag indicating whether FFT plans have been setup.
 
bool pfb_dc_chan
 This flag indicates whether we have the DC, or zeroth PFB channel. More...
 
bool pfb_all_chan
 This flag indicates whether we have all the channels from the last stage of upstream channelization. More...
 
unsigned pfb_nchan
 The number of channels output by the analysis filter bank (per input channel)
 
const TimeSeriesinput
 
TimeSeriesoutput
 
TimeSerieszero_DM_out
 
unsigned coarse_channels
 Number of coarse channels spanned by input data.
 
unsigned fine_channels_per_coarse_channel
 Number of fine channels per coarse channel. More...
 
unsigned fine_channels_per_output_channel
 Number of fine channels per output channel. More...
 
unsigned coarse_channels_per_output_channel
 Number of coarse channels per output channel. More...
 
unsigned output_channels_per_coarse_channel
 Number of output channels per coarse channel. More...
 
unsigned spectral_steps
 Number of steps across all of the input (fine) channels. *‍/.
 
unsigned output_channels_per_spectral_step
 Number of output channels per spectral step.
 
std::vector< unsigned > fine_channel_plan
 
- Protected Attributes inherited from dsp::InverseFilterbank::Engine
float * scratch
 
float * output
 
unsigned output_span
 
unsigned total_scratch_needed
 
bool report
 Flag indicating whether to report intermediate data products.
 

Additional Inherited Members

- Static Public Member Functions inherited from Reference::Able
static size_t get_instance_count ()
 
- Static Public Member Functions inherited from Reference::HeapTracked
static void * operator new (size_t size, void *ptr=0)
 
static void operator delete (void *location, void *ptr)
 
static void operator delete (void *location)
 
static size_t get_heap_queue_size ()
 
- Public Attributes inherited from dsp::InverseFilterbank::Engine
EventEmitter< Reporter > reporter
 

Detailed Description

InverseFilterbankEngineCPU is the InverseFilterbank engine that runs on the CPU.

This class implements the PFB inversion algorithm, which synthesizes some channelized input into a lower (single) number of output channels at a higher sampling rate.

Member Function Documentation

◆ filter()

void dsp::InverseFilterbankEngineCPU::filter ( float *  spectrum,
unsigned  ipol,
unsigned  chan_offset 
)
protected

Called once per spectral step

◆ invert()

void dsp::InverseFilterbankEngineCPU::invert ( float *  spectrum,
unsigned  ipol,
unsigned  chan_offset,
uint64_t  output_offset_nfloat 
)
protected

Called once per spectral step

called once per spectral step

References dsp::TimeSeries::get_datptr().

◆ stitch()

void dsp::InverseFilterbankEngineCPU::stitch ( float *  dest,
unsigned  ipol,
unsigned  fine_channel_offset,
uint64_t  input_offset_nfloat,
bool  shift_by_half_chan 
)
protected

Called once per spectral step

Member Data Documentation

◆ coarse_channels_per_output_channel

unsigned dsp::InverseFilterbankEngineCPU::coarse_channels_per_output_channel
protected

Number of coarse channels per output channel.

Greater than 1 when combining coarse channels; otherwise equal to 1.

◆ fine_channels_per_coarse_channel

unsigned dsp::InverseFilterbankEngineCPU::fine_channels_per_coarse_channel
protected

Number of fine channels per coarse channel.

input channels are called fine channels

◆ fine_channels_per_output_channel

unsigned dsp::InverseFilterbankEngineCPU::fine_channels_per_output_channel
protected

Number of fine channels per output channel.

input channels are called fine channels

◆ output_channels_per_coarse_channel

unsigned dsp::InverseFilterbankEngineCPU::output_channels_per_coarse_channel
protected

Number of output channels per coarse channel.

Greater than 1 when partially inverting; otherwise equal to 1.

◆ pfb_all_chan

bool dsp::InverseFilterbankEngineCPU::pfb_all_chan
protected

This flag indicates whether we have all the channels from the last stage of upstream channelization.

From the parent InverseFilterbank

◆ pfb_dc_chan

bool dsp::InverseFilterbankEngineCPU::pfb_dc_chan
protected

This flag indicates whether we have the DC, or zeroth PFB channel.

From the TimeSeries input to the parent InverseFilterbank


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

Generated using doxygen 1.8.17