DSPSR Documentation

Introduction

DSPSR implements a family of C++ classes that may be used to load, transform and reduce observational data, primarily data that are regularly sampled in time (and, optionally, frequency). This includes both phase-coherent data, as stored by baseband recording systems, and detected data, as produced by a filterbank system. The functionality, contained in the dsp namespace, is divided into three main classes: data containers, operations, and auxilliary objects.

The most general data container is the dsp::TimeSeries class, which is used to store the floating point representation of the signal in a variety of states. The dsp::BitSeries class is used to store the N-bit digitized data before unpacking into a TimeSeries object. The dsp::Loader class and its children are used to load data into the dsp::TimeSeries container.

The main DSP algorithms are implemented by dsp::Operation and its sub-classes. These operate on dsp::TimeSeries and can:

  • convert digitized data to floating points (dsp::Unpack class)
  • coherently dedisperse data (dsp::Convolution class)
  • fold data using polyco (dsp::Fold class)
  • etc...

The auxilliary classes perform operations on arrays of data, such as multiplying a frequency response matrix by a spectrum field vector (e.g. the dsp::Response class).

Adding a new File Format

When adding a new file format, the following steps should be followed:

  • Create a new subdirectory of dspsr/Kernel/Formats, say dspsr/Kernel/Formats/myformat, and create all new files here.

  • Inherit dsp::File or one of its derived classes, implement the header-parsing code, and add the new class to dspsr/Kernel/Formats/File_registry.C using preprocessor directives.

  • Inherit dsp::Unpacker or one of its derived classes, implement the bit-unpacking code, and add the new class to dspsr/Kernel/Formats/Unpacker_registry.C using preprocessor directives.

  • Add the name of the new subdirectory to the ASCII text file named backends.list in the DSPSR build directory (where you type make).


Generated using doxygen 1.8.17