• © 2006 West Virginia University.
  • Site Design: WVU Web Services
  • Last Modified:


PSP is a large collection of the programs and scripts to process the scientific data, mostly the pulsar data, and it stands for Pulsar Signal Processing. It includes those to decode the raw binary data recorded in several formats, correct the data for instrumental and digitizing effects and propagation through the ionized interstellar medium (dispersion), folding the average pulsar profiles, search for giant pulses, visualize the binary data, and many others. They are written mostly in C with C++ extensions, and a few – with the object-oriented essence of C++.

Some of the programs that PSP package includes are:

  • Data decoding:
    • decoder - to rotate bits in binary words or decode the data written in different binary formats, mainly designed to decode S2-TCI data. Also used to decode the data from Portable Pulsar Receiver (PPR, "desh-machine"), and NMT fast pulsar DAS.
    • k5toraw - to decode K5 VLBI data. Options for quick check of spectra and statistics of bits are available.
    • mk5decode - to decode VLBA Mark5A data also with options to check spectra and bit-statistics. Only two modes are supported now: 512-8-2 and 512-16-2.
  • Data reduction:
    • checkmark - to correct the data stream from PPR for slips and block labels.
    • bandid - graphical program written in X11/Xt and used to select an RFI in time-series data and fit the "ideal" bandpass to the real one to calculate the correction function to compensate for receiver bandpass amplitude irregularities.
    • bitstat - to correct 2-bit sampled data for quasi-instantaneous statistics of bits using either power-optimized or voltage-optimized schemes (check the paper by Jenet & Anderson (1998) for more details).
    • ccf - powerful program to calculate cross-correlation functions. Many options are provided.
    • dt - "dt" stands for "digital transforms" and performs many different general digital operations, such as direct and reverse FFTs, auto-correlation functions, power spectra, averaging and smoothing the time series, adding a value to all samples in a time series, or multiplying them by a value, and others.
    • summ - to sum binary files together, for example to fold an average profile.
    • undisp - to coherently dedisperse the pulsar data.
    • k5search - to cut the long time-series data with the pulsar period to look for strong bursts (giant pulses) in every period and fold the average profile. Originally written to deal with the K5 VLBI data, it can be used now for any pulsar raw binary data. Old version of this program, known as "knife", can also be used without a search for strong pulses.
    • t2b - to convert any column of the ASCII table into the binary data of a given format. The program "b2t" to convert from binary to ASCII is also available.
  • Visualizing:
    • see - the very powerful graphical program written in X11/Xt to visualize binary data in different formats. Zooming in and out, saving selected regions in different file formats: binary, ASCII, GIF, PPM, and PS.
    • gpview - to plot profiles, single pulses, etc. using PGPLOT library.
  • Timing:
    • libpolyco - library to work with polyco files, in particular to calculate period and phase for specific MJD.
    • getperiod - calculate the period and phase of the pulsar for the specific MJD.
    • getpolyco - the Perl-script to create a polyco file for the given pulsar, date range, observatory.
  • Princeton Catalog:
    • psr - the Perl-script to read formatted data of the Pulsar Princeton Catalog for a given pulsar. Search for pulsars that met given conditions is also available. Note, that native Princeton utility to access the catalog data file does not provide ALL the available information for the given pulsar.
  • Other utilities:
    • azlst.pl - to calculate the rise and set azimuth (AZ) and local siderial time (LST) for a source with given right ascension (RA) and declination (DEC), for a given elevation (EL) at the particular site (with a given latitude and longitude). The script is written in Perl.
    • azza.pl - to calculate the AZ and EL (or zenith angle) for a given source and time (Perl-script).
    • ffdot, ppdot - to calculate inferred pulsar properties (such as characteristic age, spin-down luminosity, surface magnetic field, others), estimates of which can be obtained only from its period (or frequency) and period (or frequency) derivative, resting upon many assumptions, such as that spin-down is due to magnetic dipole radiation only (Perl-scripts).
    • jd - to calculate Julian day (JD), Modified Julian day (MJD), or day of the year for a given date and time. Also, any other mutual conversions are available (for example, from MJD to usual date). The script is written in Perl. One can use also a graphical wrapper called "jd.wish" written in Tcl/Tk.
    • sid.pl - to calculate local siderial time (LST) for a given JDand longitude of the site. The script is written in Perl.
    • tscat - to calculate the scattering time of the pulsar for a given DM and observing frequency based on the empirical relationship from the paper by Bhat et al. (2004)


The most recent version of all suite you may download from here (last version: May 13, 2008).

Home | Pulsar Group Page | Papers | Memos | Software | Projects | GBT 350 drift-scan | NANOGrav | PALFA | PSC | Photos | Useful links | Dump of links | Personal