In general, a "birdie" is an artificial signal
added to the input of a signal-processing system
to verify that the system works correctly.
We use this idea in the SETI@home back end.
Our birdies are simulated ET signals:
beacons with fixed sky position and frequency.
For each one, we generate a set of SETI@home signals
(currently just spikes) that mimics as closely as possible
what we'd expect to detect from the birdie.
We add these to the signal database at the start
of the Nebula pipeline, before RFI removal.
These birdies serve several purposes:
If the fraction of birdie signals removed by RFI filtering
is close to zero, it gives us confidence that this filtering
wouldn't erroneously remove an actual ET signal.
If our multiplet-finding algorithms detects multiplets
containing the birdie signals,
it gives us confidence in the algorithms.
We generate birdies with a range of powers,
see which are detected, and compare their multiplet scores
with other multiplets.
This gives us a rough idea of the sensitivity
of the back end as a whole.
Each birdie has several parameters:
- Its sky position, which is chosen randomly from the area
that SETI@home has observed at least once.
- The center frequency of the transmitted signal,
chosen randomly from SETI@home's frequency band.
- The bandwidth of the transmitted signal.
- The power as it arrives at the receiver; uniformly random.
- Whether the signal is "barycentric", i.e. whether its frequency
has been adjusted by the sender to cancel Doppler shift due
to acceleration of the sender's reference frame
(e.g. planetary rotation and orbit).
- For non-barycentric birdies, we model its frequency over time
as a sinusoid with random amplitude, frequency, and phase.
Generating birdie signals
We generate signals for a given birdie by scanning
the pointing history of each beam
(we have this history with a time resolution of about 1 second).
When the beam is close to the birdie position,
we consider generating spikes of the different FFT lengths.
The power of each potential spike is a function of
- The angle between the beam and birdie positions.
- Attenuation due to the disparity between the birdie's bandwidth
and the frequency resolution of that FFT length.
- A random factor representing noise.
If the result is above the power threshold for spikes,
we create a signal.
We limit the time spacing of these signals to reflect the fact
that each FFT can produce at most one spike of a given frequency.
The detection frequency and chirp rate of the signal
are calculated in a way that reflects both the birdie parameters
and the receiver velocity and acceleration.
The code for birdie generation is