Class dsp::Filterbank

class Filterbank : public dsp::Convolution

Breaks a single-band TimeSeries into multiple frequency channels.

Subclassed by dsp::SKFilterbank, dsp::TFPFilterbank

Public Functions

Filterbank(const char *name = "Filterbank", Behaviour type = outofplace)

Null constructor.

virtual void prepare() override

Prepare all relevant attributes.

virtual void reserve() override

Reserve the maximum amount of output space required.

virtual uint64_t bytes_storage() const override

The number of bytes of additional storage used by the operation.

virtual uint64_t bytes_scratch() const override

The number of bytes of scratch space used by the operation.

inline uint64_t get_minimum_samples()

Get the minimum number of samples required for operation.

inline uint64_t get_minimum_samples_lost()

Get the minimum number of samples lost.

inline void set_nchan(unsigned _nchan)

Set the number of channels into which the input will be divided.

inline unsigned get_nchan() const

Get the number of channels into which the input will be divided.

inline void set_freq_res(unsigned _freq_res)

Set the frequency resolution factor.

inline unsigned get_freq_res() const

Get the frequency resolution factor.

inline unsigned get_nfilt_pos()

get the response’s positive impulse

inline unsigned get_nfilt_neg()

get the response’s negative impulse

class Config

Subclassed by dsp::InverseFilterbank::Config

Public Types

enum When

When dedispersion takes place with respect to filterbank.

Values:

enumerator Before
enumerator During
enumerator After
enumerator Never

Public Functions

void set_device(Memory*)

Set the device on which the unpacker will operate.

void set_stream(void*)

Set the stream information for the device.

Filterbank *create()

Return a new Filterbank instance and configure it.

uint64_t get_overlap() const

Get the Input::overlap required when InputBuffer is disabled.

uint64_t get_block_size() const

Get the Input::block_size required when InputBuffer is disabled.

class Engine : public Reference::Able

Subclassed by CUDA::FilterbankEngine, dsp::FilterbankEngineCPU

Public Functions

virtual void setup(Filterbank*) = 0

If kernel is not set, then the engine should set up for benchmark only.

virtual void set_scratch(float*) = 0

Set the base address of scratch space that can be used for temporary results.

virtual void copy_response(const dsp::Response*) = 0

Copy the frequency response function.

virtual void perform(const dsp::TimeSeries *in, dsp::TimeSeries *out, uint64_t npart, const uint64_t in_step, const uint64_t out_step) = 0

Perform the filterbank operation on the input data.

virtual void perform(const dsp::TimeSeries *in, dsp::TimeSeries *out, dsp::TimeSeries *zero_DM_out, uint64_t npart, const uint64_t in_step, const uint64_t out_step) = 0

Perform the filterbank operation on the input data.

inline virtual void finish()

Finish up.

inline unsigned get_total_scratch_needed() const

get the amount of scratch space the engine has calculated that it needs