- 1,573
- 485
Some 8 years ago I posted some experiments using 2 Software Defined Radios slaved to a common clock. The idea was measure small thermal noise by making correlation measurements between the IQ samples from each radio. This is a project that has kinda smoldered in the background where I've made progress in fits and starts. Since most (all?) RA signals are small thermal signals it seemed like the technique should be a natural approach. A recent thread discussing the feasibility of using SDRs to do amateur radio astronomy spawn another look at the technique.
By post #27 of this 8 year old thread, it looked like I had solved the problem of syncing the radios making the phase relation between the radios fixed and stable. Well, they are but I was missing a rather important point. While the phase and frequency of the radios were indeed in sync they were most definitely not time synchronous. What this means is, given IQ sample, ##A_n## from radio ##A## and ##B_n## from radio ##B##, one may not assume ##n##, the sample number, refers to the same instant of time. From a software perspective the reasons are straight forward. The system needs to start data collection threads and aren't setup to start them on the same cycle of the reference clock. Turns out the sample offset between data streams is typically large. These run 10k to 20k samples and of somewhat random sign (which radio thread starts first is a crap shoot).
The solution to this problem is straightforward by adding some additional buffering into the IQ data streams. One just needs to compute the correlation between the IQ stream and look for the correlation peak. Initially I would inject a common noise source into each radio. It turns out there is already enough common noise to do a time sync. This is both a convenience and a serious limiting problem.
The conclusion at this point is more work is needed to make it worth while. A 50ohm terminator produces -187 dBW/Hz at 290K. Under ideal conditions I've been able to get to about -182 dBW/Hz with the radios each terminated independently in 50 ohms at 20MHz. At 1420MHz there is enough common noise present to sync the radios so the system temperature is much hotter at -172 dBW/Hz.
So, as it stands, one could think about RA using this technique but one would need two antennas.
By post #27 of this 8 year old thread, it looked like I had solved the problem of syncing the radios making the phase relation between the radios fixed and stable. Well, they are but I was missing a rather important point. While the phase and frequency of the radios were indeed in sync they were most definitely not time synchronous. What this means is, given IQ sample, ##A_n## from radio ##A## and ##B_n## from radio ##B##, one may not assume ##n##, the sample number, refers to the same instant of time. From a software perspective the reasons are straight forward. The system needs to start data collection threads and aren't setup to start them on the same cycle of the reference clock. Turns out the sample offset between data streams is typically large. These run 10k to 20k samples and of somewhat random sign (which radio thread starts first is a crap shoot).
The solution to this problem is straightforward by adding some additional buffering into the IQ data streams. One just needs to compute the correlation between the IQ stream and look for the correlation peak. Initially I would inject a common noise source into each radio. It turns out there is already enough common noise to do a time sync. This is both a convenience and a serious limiting problem.
The conclusion at this point is more work is needed to make it worth while. A 50ohm terminator produces -187 dBW/Hz at 290K. Under ideal conditions I've been able to get to about -182 dBW/Hz with the radios each terminated independently in 50 ohms at 20MHz. At 1420MHz there is enough common noise present to sync the radios so the system temperature is much hotter at -172 dBW/Hz.
So, as it stands, one could think about RA using this technique but one would need two antennas.
Last edited: