Sparse Array Beamforming with a Phase Coherent 21-Channel RTL-SDR Array

Thank you to Laakso Mikko a PhD student at Aalto University School of Electrical Engineering for submitting news about his research group's latest paper involving a 21-channel phase coherent RTL-SDR system. Laakso writes that he an his colleagues have built a (massive) multichannel receiver array from RTL-SDRs to use in low-budget research. The paper presented at EUSIPCO2020 can be found at IEEE, and for free on their research portal (direct pdf link). The code is also entirely open source and available on GitHub.

Phase coherent SDRs enable interesting applications such as radio direction finding (RDF), passive radar and beam forming.

We introduce a modular and affordable coherent multichannel software-defined radio (SDR) receiver and demonstrate its performance by direction-of-arrival (DOA) estimation on signals collected from a 7 X 3 element uniform rectangular array antenna, comparing the results between the full and sparse arrays. Sparse sensor arrays can reach the resolution of a fully populated array with reduced number of elements, which relaxes the required structural complexity of e.g. antenna arrays. Moreover, sparse arrays facilitate significant cost reduction since fewer expensive RF-IF front ends are needed. Results from the collected data set are analyzed with Multiple Signal Classification (MUSIC) DOA estimator. Generally, the sparse array estimates agree with the full array.

Mikko notes that his next paper on applying deep neural nets to the problem of near-field localization will be presented at this years VTC2021 conference, so we are looking forward to that paper too. 

21 element array connected to a 21-input phase coherent RTL-SDR array
Notify of

Inline Feedbacks
View all comments

How to make antenna like this on picture?
What i need to do ?

Joe Hamlow

What is this for?


You mean what is beamforming and beamstearing useful for ?
5G is probably a good example, where the exact same frequency is being used at exactly the same time by the same phased antenna array to transmit different information to multiple handsets.


Wondering – can 5 KerberosSDR’s be connected together to create a 20 channel Coherent system?


Hearing about it already few years ago, it is nice to see this excellent work published!
If scaling up beyond 5×7 channels, where are the ultimate limits and what are limiting factors?


We haven’t unfortunately yet (still) expanded the system above 5×7 channels, so I can only speculate here. The limiting factor with the current software is not the CPU, as the computation/channel is kept low, even in the synchronization phase – we do this with a frequency domain cross-correlation queue with a limited number of tickets/frame.

Instead, there is a bandwidth limit set by the USB-host chip, which is naturally dependent on the sample rate we set on the signal channels. The host computer needs a PCI-e USB expansion card to be able to handle the traffic from 5×7 dongles (built-in USB chipset connects 2 couplers, PCI-e expansion 3 couplers). I’m certain we could go up to 6 x 7 signal channels @ 1MHz (atleast) on the current computer without adding a second USB expansion. Trying the low-bandwidth minimum sample rate (240kHz) we may also be limited by the available channels/pipes available on the USB hardware – the USB control transfers (e.g. set tuning frequency) start failing first.

Implementing networked nodes would circumvent any USB related limit, but would require extra work. Also, someone would have to assemble all the couplers and also build massive antenna array(s) for that to be useful in anything other than only test runs. We would also need to consider getting a load of lighter gauge cabling than those stiff 21 x RG-59 seen in the picture 🙂


Thanks! It seems then that the limits would be far at 100s of channels with networked nodes. And, yeah good points, I was just curious about technical limitations in the data transfer from dongles to PC hard drive – neglecting the practicalities like cable management or antenna array construction and labour for coding and manufacturing everything, or even how all the data is processed ultimately and why so many channels would be needed in the first place 😀

Sparse array beamforming using 35 physical channels would represent already a very large virtual array, so perhaps more couplers are not even needed for this specific research application.


It’s based on difference co-arrays. For example, suppose we have a uniform linear antenna array of 7 antenna elements, numbered as 0,1,..,6, and with half-the-wavelength spacing. The same aperture can be implemented with 4 antenna elements where the antenna elements are in the positions 0,1,4,6. Between these four antenna elements, one can form the same 6 phase differences as in the full antenna array, i.e. 1-0, 6-4, 4-1, 4-0, 6-1, 6-0. Antenna arrays having full aperture with the minimum number of antenna elements are referred to as minimum-redundancy arrays and there’s no closed form solution to find them in general.


Thank you! That’s what I was looking for.


These are known in maths as Golomb Rulers ( – how do you make a ruler with the minimal set of marks that can measure any/most (integer) distances from 1, 2, .. to N. The ones that have all values are the ‘perfect Golomb rulers’, but most don’t. The position of linear radio telescopes in arrays e.g. the VLA and the ATCA are often along a Golomb ruler, depending on coverage needs, where you don’t want to “waste” an expensive dish. It’s a great puzzle to find good rulers for any given N.


Okay, that makes complete sense. That’s also more my kind of math. Isn’t this more like a Costa’s array, though? It’s been a few decades since I played with Golomb Rulers and the associated math. Thanks for the tip, Markus!


Would this work if used with network-enabled SDR nodes for the array. By combining that and gps data or flight transponder tracking then maybe all aircraft could be detected with strong enough compute systems along with weather forecasting.


No, as the time and phase synch relies on the reference noise distributed via cables, it would not be possible to synchronize the receivers at remote locations. Unsynchronized nodes would be possible, but it is not implemented. However, it does allow your single receiver host to distribute samples over network, i.e your array can be at a remote location and data is received over network.

I had the option open in the code to implement _local_ network receiver nodes, but it was not yet needed to be implemented since one host PC (w/ pci USB host extension) could synchronize 35 RTL-SDR in test runs. If we ever build more coupler modules (7 RTL-SDR each), then I may need to implement network nodes.

David Lyons

I wont pretend to posess the knowledge of all the ins and out of phase arrays and beam steering but I was a RADAR repair tech back in my army life.

The RADARs we worked on used a very similar approach to achieve some amazing results (like shooting artillery out of the sky)

Really neat stuff.


This is really cool. I’m curious how they resolve phase ambiguity when they use sparsely populated arrays.