home page

Software for Interferometers

I have developed a fairly complete set of software for doing soundcard-based radio astronomy under Linux. The "SAC" suite of software, to give it a plug (hey, if I don't who else will!), includes some of the following features:

  • Every one second or so (configurable) it records the total power measurements from each channel of the soundcard as well as the cross product of the two channels (for interferometry).
  • A disk based archive keeps all of your data for later analysis, in a nice format for rapid data extraction.
  • Client/server model, the correlator/archive program (sac) deals with requests from networked client programs (eg, if you want to share your data with others via the Internet).
  • Automatic algorithms for discarding sudden spikes (eg, a nearby power switch turning on) as well as long duration interference (such as a radio transmitter operating on your frequency).
  • Can record raw soundcard data for a fixed period (such as 1 day or 1 week), so that you can easily produce .wav audio files of any recent activity (such as Jupiter activity or solar bursts - or to listen to any other curious bump in your graph).
  • You can average data from different days together according to sidereal time in order to improve you signal-to-noise ration and also to fill in gaps in the data caused by RFI.
  • Can write ASCII data so that you can do further analysis in your own software.
  • Lets you manually edit data (eg, to remove RFI that the automatic algorithms missed, or to offset one channel to make a nice graph for public display).
  • Some data files are included to help you test your fresh install.
  • Free software (GPL)
  • Much more.

    Operating System (Linux)

    Some requirements to build the software include:

  • Linux.
  • pgplot, the pgplot packages for some distributions don't include the development libraries or C version of the software (cpgplot). If you get build errors relating to pgplot you will need to find a complete pgplot5 package for your distro.
  • g++.
  • libx11-dev, libc6-dev, libpng-dev, and probably others. If the compiler manages to build the individual files but fails to link the programs together because of a missing library, you should install the appropriate package from your Linux distribution.


    The software project is now hosted on Google Code - CLICK HERE TO VIEW THE REPOSITORY

    A Slap-Dash Intro To The Different Programs:

  • Simple Audio Correlator (sac)

    SAC is the app that reads the raw data from the soundcard, performs the correlations, archives the data to disk and serves network client requests. Most of the magic happens in the 'sac.conf' file. The config file is well documented and it will tell you how to roll SAC your own way.

    This is the program you need to run when you want to start recording your own observations from the soundcard.

  • SAC MONitor (sacmon)

    "sacmon" is the main program for retrieving data from a "sac" server or a file, processing it to flag and excise RFI, merging and averaging sets of data to improve the signal to noise ratio of the resulting data, and displaying the data to the screen or an output file. sacmon is a non-interactive program which must be configured using command line arguments.

    The readme file contains all the juicy details. The first thing you will want to do if the software builds okay is have a look at one of the sample data files:

    ./sacmon -F data/90m-I.dat

  • SAC Real Time (sacrt)

    "sacrt" can collect and display real-time data from one or more "sac" servers. It is useful for monitoring telescope data during periods of astronomical interest or to check/tweak telescope performance. The program is able to connect to multiple servers and rescale the data to compensate for different volume levels at different sites.

    The readme file has the various options explained. If you're in a rush to see what data you're collecting, try this (you'll need to have sac running on the local PC for this particular command to work):

    ./sacrt -s

  • SAC Make '.wav' file (sacmkwav)

    Sacmkwav asks sac for data from a buffer and converts it to a '.wav' file. You can define the length of the buffer to suit your needs in 'sac.conf'. After looking at your graphs, this utility is handy to help figure out if what you've heard is RFI or a burst from Jupiter.

  • SAC I and Q (saciq)

    saciq is a program for generating amplitude and phase measurements from two separate data files which contain fringes in quadrature.

    Basically, if, for a given baseline, you capture a set of fringes, and then insert a delay line between your local oscillators so that the two receivers are running 90 degrees out of phase (in quadrature) and capture this other set
    of fringes, then you can derive the astronomical amplitude and phase information - which is what we really want from our interferometers.

  • SAC Edit (sacedit)

    This allows you to manually manipulate data, such as deleting period of RFI, inserting an offset into the data, etc..