JuliaComputing / xtrx_julia

XTRX LiteX/LitePCIe based design for Julia Computing
BSD 2-Clause "Simplified" License
1 stars 0 forks source link

Experiment #3: Antenna array geometry and and gain/phase response calibration #58

Open staticfloat opened 2 years ago

staticfloat commented 2 years ago

Once we have a coherent array, we need to calibrate the gain and phase mismatches due to array geometry (antenna placement, etc...) and antenna manufacturing defects. The typical way to do this is in a faraday cage, with a robot arm that moves around the antenna element, determining gain and phase response at each point on a hemisphere around the antenna element. This procedure is costly, so Sören has pioneered a technique to use GPS signals to provide "serendipitous sampling" of the hemisphere above an antenna element. Because we know the direction of arrival of each GPS signal, we can use these serendipitous signals as sampling points on the hemisphere, and use the received gain and phase as a (relative) calibration measurement, taking antenna 1 as the arbitrary reference point. From this information, we can build a machine learning model to estimate the gain and phase mismatch of antenna elements (relative to antenna 1) across the entire hemisphere.

To perform this experiment, we must collect coherent data with at least 4 antenna elements for at least 2.5 hours, with a good view of the sky, to provide a full sampling of the hemisphere above the antennas. This dataset will give us answers to the following questions:

1) Is it possible to calibrate the antenna geometry and gain/phase mismatch per element from nothing but GPS signals? (So far, simulations look very promising) 2) Is it necessary to have a truly coherent system, or can we bundle individual channel offsets into the slowly-varying phase offsets we already learn for thermal expansion? 3) What is the time period necessary to capture over in order to truly calibrate the system? The longer we capture, the more points are sampled, as the satellites inch across the sky. 4) What is the accuracy we can obtain through this technique? We should be able to verify by comparing the known direction of arrival of a signal (obtained from decoding the incoming GPS signal) against the calculated direction of the signal obtained from analysis of the incident phases on our antenna elements.

staticfloat commented 2 years ago

@zsoerenm I have so far been imagining that we are going to perform phase calibration on our XTRXs by sharing clocks (#55), doing over-the-air calibration (#56) or sacrificing half of our receive channels, etc... But do you think it's possible we might be able to use uncalibrated (and slowly-varying) phase offsets with your new group calibration ML model? If our ML model can normalize out the phase variations due to thermal expansion, I see no reason it could not normalize out phase variations due to clock drift, as long as it's a slow enough change over time that it can be disambiguated from actual incoming signals.

What do you think?

zsoerenm commented 2 years ago

Yes, the ML model can calibrate slowly varying gain and phase mismatches. They should at least be coherent during the integration of the CDMA code of GNSS signals, which is at minimum 1 ms. If we allow 1° of deviation between the channels during the integration, that corresponds to a maximal frequency deviation of 2.8 Hz. Over the time of 8 hours this is still highly oscillating function and the current implementation of the ML model can not estimate it. Other than that, we probably want to integrate for longer times to increase the SNR (e.g. for 1 s). That corresponds to a maximal frequency deviation of 2.8e-3 Hz. Over the time of 8 hours this results into roughly 500 oscillations, which is still fairly large. I guess we could adapt the ML model in such a way that it can cope with oscillating gain and phase mismatches, too.