fringes.org 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
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
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)
Operating System (Linux)
Some requirements to build the software include:
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
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 127.0.0.1
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
SAC I and Q (saciq)
saciq is a program for generating amplitude
and phase measurements from two separate data files which contain fringes in
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
SAC Edit (sacedit)
of fringes, then you can derive the astronomical
amplitude and phase information - which is what we really want from our
This allows you to manually manipulate data,
such as deleting period of RFI, inserting an offset into the data, etc..