Much improved LimeSDR Python programs for interferometry

241 views
Skip to first unread message

David Lonard

unread,
Jun 16, 2020, 8:47:35 PM6/16/20
to Amateur radio interferometry
Hello everyone,

As I mention on the SARA message board, I wrote some better scripts to do interferometry with a LimeSDR. This code will work pretty much as is on an Ubuntu box with a Nvidia graphics card.

A variety of dependencies are needed including CUDA, but they are pretty easy to install. The main program is limeinter1.py. It includes a routine that will plot both phase and amplitude from the two LimeSDR RX inputs in real time so that you can set up your interferometer prior to data recording. When executed this data will loop on the screen and you can add or remove lengths of coax and look at the outcome. When the phase (blue line) is horizontal when looking at a geosynchronous satellite or the sun at the meridian, the system is ready to be initiated for recording that will start once the plotting window is closed. After synchronization of the channels, it is possible to reposition the antennas to observe at a desired declination for drift-scanning.

The program will then record for nearly a single sidereal day and start again on the next sidereal day. Data is saved as 2D FITs files with one file containing I and the other file containing Q filterbank data. It will later be reassembled as complex visibility data later.

The other program is interread2.py that will take these I and Q FITs files, filter RFI and integrate across the bandwidth to generate a 1D complex visibility NumPy array. It can then plot this data as demonstrated with the attached PNG file (SgrA.png). The RFI excision is critical and is performed by zeroing out rows of the filterbank with RFI in them. This is evident in the program and can be achieved by inspecting the filterbank data with the plt.imshow command. Matplotlib is very handy for flexible visualization of data.

This setup will work at any frequency range for the LimeSDR, say for two yagis at 400 MHz, two horn antennas at 1420 MHz, or with LNBs that downconvert to a lower frequency passband if the two LNBs share a common clock source. 

David

interread2.py
SgrA.png
limeinter1.py

David Lonard

unread,
Jun 17, 2020, 9:01:25 AM6/17/20
to Amateur radio interferometry
Ignore the original interread2.py file that I attached and use interread3.py if you want to get the 1D phase and amplitude plots like the SgrA.png example.

David

interread3.py
Reply all
Reply to author
Forward
0 new messages