This is a GNU Radio Out of Tree (OOT) module for the findET
blocks. The aim is to create a GNU Radio block that can perform turboSETI analysis on a numpy.float32
data matrix stored in RAM.
The module currently consists of 3 blocks:
The findET Sink
block seeks to combine the functions of both findET Buffer
and findET
. For a good example of the intended output of findET Sink
, refer to turboseti_multiprocessing_test.py
.
This code has been tested on a Linux installation of GNU Radio version 3.8.
- turboseti-stream
- turboSETI
- blimpy
- GNU Radio version 3.8
- gr-ata OOT module (not necessary for this module, but needed to run ATA observations)
git clone https://github.com/youais/gr-turboseti.git
cd gr-turboseti
mkdir build
cd build
cmake ../
sudo make install
sudo ldconfig #for Linux users
You may need to specify the install path when running cmake
.
/python
-- Python source code for blocks/grc
--.yml
code for blocks' appearance in GNU Radio Companion (GRC)/lib
-- C++ source code for blocks (not used in this module)/examples
-- Examples of flowgraph andturboseti_stream
output, as well as observation planning code
This project was undertaken as part of the Berkeley SETI Research Center 2021 summer REU. My mentors were Dr. Wael Farah (SETI Institute), and Dr. Steve Croft (Breakthrough Listen, UC Berkeley).
The aim of my project is to develop a SETI data processing pipeline for the Allen Telescope Array (ATA), using GNU Radio. The ATA is a radio interferometer operated by the SETI Institute at the Hat Creek Radio Observatory in California, and consists of 42 fully-steerable antennae, each 6.1m in diameter. Its main science goal is to perform searches for technosignatures, which appear as narrowband signals 'drifting' in frequency.
Currently, the existing data-processing pipeline for the ATA uses custom hardware unavailable to those not on-site. GNU Radio is a free open-source software for developing signal-processing routines, and is used by a large community of amateur radio astronomers and enthusiasts. The implementation of a GNU Radio SETI pipeline will make the search for extraterrestrial intelligence more accesible to smaller radio observatories and citizen scientists.
The GNU Radio SETI pipeline is outlined as follows:
- Radio telescope data from the ATA streams in through a USRP source
- The data is 'channelised' through a polyphase filterbank (PFB), followed by a Fast Fourier Transform (FFT). This creates a high-resolution spectral product on the order of ~1MHz
- This product accumulates in findET Buffer for ~60s, to create a data matrix of shape (60, 1e6)
- The data matrix is then passed to findET, which uses an adapted version of turboSETI (i.e. turboseti_stream) to analyses it for potential technosignatures
Example flowgraph (refer to examples folder for .grc file):
Working:
findET
blockfindET Buffer
block- 1 channel USRP/File Source flowgraph up to 1 MHz sample rate
- 4 channel USRP/File Source flowgraph up to 4 MHz sample rate
Issues:
findET Sink
block -- current issue:TypeError: cannot pickle 'SwigPyObject' object
- Automate plotting of dynamic spectra of hits (adapt turboSETI's
find_event_pipeline
andplot_event_pipeline
functions) - Increase maximum sample rate at which the flowgraphs can run (using multiprocessing?)
- Observe known technosignature source (e.g. Chang'e 5) with the ATA using the GNU Radio SETI pipeline
- Turn
gr-turboseti
into PyPi package - Begin ATA observations of interesting stars using the GNU Radio SETI pipeline
I plan to continue working on this project into the academic year.
Richard Elkins and Luigi Cruz did a significant amount of work on developing turboseti_stream
. Luigi also helped greatly with the structure of the flowgraph, particularly the polyphase filterbank and FFT components. Daniel Estévez and Derek Kozel answered many, many questions about GNU Radio, OOT modules, and using Python multiprocessing. Lastly, Wael Farah was very patient while helping me wade through hordes upon hordes of bugs.
Thank you all!
This project was made possible by funding from Breakthrough Listen.
Theory:
- Sheikh et al. 2019, Choosing a Maximum Drift Rate in a SETI Search: Astrophysical Considerations
GNU Radio: