jakapoor / AMRUPT

Animal Movement Research Using Phase-based Trilateration (AMRUPT)
GNU General Public License v3.0
4 stars 7 forks source link

Can distributed RTL-SDRs receive a frequency-hopped signal without losing coherence to other ground-nodes? #20

Open jakapoor opened 6 years ago

jakapoor commented 6 years ago

Background

We currently have two plans for limiting environmental interference (mainly through multi-path interference) in the planned AMRUPT system:

  1. A 4-antenna element array employing a subspace smoothing algorithm (e.g. MUSIC)
  2. A multi-frequency (HMFCW) ranging approach (system of Dr. Kan and colleagues) to select a set of frequencies with good LOS SNR.

Our current plan is to first attempt a MUSIC-based AOA approach, and if this proves to be inadequate for reaching high precision to next try out the HMFCW ranging technique.

Because our receiver units (ground-nodes) will not be driven by the same clock, they will have to be synchronized by known-location beacons or by a GPS signal.

Problem

It may be very difficult to maintain coherence between distributed ground-nodes without recalibration from known-location beacons between each stepped frequency of a single mobile-node transmission. Clearly this is a problem if recalibration is required. If this is a requirement, we will need to determine if an alternative transmission protocol might be a possibility, or determine if GPS-disciplined ground-nodes may allow us to skirt around the issue of recalibration entirely.

Recommendation

I believe we should look into the RTL-SDR literature to determine if frequency hopping perturbs synchronization. We should also look into the use of GPS to create a UTC common time between distributed receivers.

jakapoor commented 6 years ago

Reposted from Kapoor [7/12/2018], #17

...If we cannot maintain coherence between ground-nodes (without time-consuming recalibration) as we receive multi-frequency signals, we may already have reached a dead-end with forward-compatibility of our system to the ranging approach.

Reposted from Silva [7/13/2018], #17

For the latter issue in the forward compatibility approach, I believe only phase/frequency offsets need to be recalibrated for (the frequency and bulk sampling offsets from the ADCs will not change because this is not dependent on the frequency of the received signal). Furthermore, the cubic alignment and beamforming methods developed to counteract phase/frequency offsets are not as computationally expensive as the long FFT used for bulk offsets (the GNU radio blocks in the Whiting's implementation perform these continuously, rather than every 10 iterations for bulk offsets).

Furthermore, a cross correlation must be performed at each frequency hop within the coherent receiver because the phase offset (along with the bulk offset) is inherently corrected here by cross correlating white noise signal in the coherent receiver [3, 4]. If we desire to reduce the software computational complexity of the coherent receiver for frequency hopping, we could just correct for phase offsets at each frequency hop by adjusting for differences in AoAs when the white noise signal is provided to each receiver channel so that a long FFT convolution does not need to be performed at each frequency hop.

jakapoor commented 6 years ago

I believe only phase/frequency offsets need to be recalibrated for (the frequency and bulk sampling offsets from the ADCs will not change because this is not dependent on the frequency of the received signal).

This makes sense to me. We can confirm by changing the frequency of the received signal and observing the bulk offset values. They should be unaffected, as you predict.

Furthermore, the cubic alignment and beamforming methods developed to counteract phase/frequency offsets are not as computationally expensive as the long FFT used for bulk offsets (the GNU radio blocks in the Whiting's implementation perform these continuously, rather than every 10 iterations for bulk offsets).

Good to know. This may mean we may be able to recalibrate the phase/frequency offsets more frequently. We should determine the time required for this process since it may determine the frequency hopping rate we can achieve (assuming we do need to recalibrate for each new frequency).

Furthermore, a cross correlation must be performed at each frequency hop within the coherent receiver because the phase offset (along with the bulk offset) is inherently corrected here by cross correlating white noise signal in the coherent receiver [3, 4].

This seems to contradict your previous statement that only cubic alignment, and not cross correlation is needed for phase and frequency when changing received frequency, and that only bulk offsets require cross-correlation. Also, I do not see why cross-correlating with white noise is the reason that we need to recalibrate between frequencies. To me it seems that if switching the ground-node's LO frequency is deterministic with respect to a calibrated clock, we will not need to recalibrate any more than for a single frequency. Can you help me identify literature that points to the need for recalibration between stepped frequencies?

If we desire to reduce the software computational complexity of the coherent receiver for frequency hopping, we could just correct for phase offsets at each frequency hop by adjusting for differences in AoAs when the white noise signal is provided to each receiver channel so that a long FFT convolution does not need to be performed at each frequency hop.

The primary goal is not to reduce the complexity (although it is a goal), but to make it possible in the first place to do HMFCW using frequency hopping. I don't understand what you mean by "adjusting for differences in AOAs" since the frequency hopping itself will result in AOA estimates that are of varying, but unknown quality. AOAs are the end result, not something that can be used in calibration. We do need to avoid a long FFT convolution at each frequency hop, but I simply don't see how we maintain coherence by "adjusting for differences in AOAs" when the true AOA is unknown. If your intention is to use a known-location beacon as the reference for the true AOA in recalibration, then we would likely need a beacon pulse for each stepped frequency, which is impractical.

Also, let's try to tackle how a GPS-disciplined ground-node might help us. We can continue that aspect of this discussion in issue #22.

jakapoor commented 6 years ago

Information WRT issue of loss of synchronization during frequency hopping:

I've found a source of information from Piotr Krysik's Multi-RTL Repo webpage. In it, he explains that synchronization (in terms of bulk-offset) remains intact as different RTL-SDRs are switched between frequencies. The following is an excerpt from his discussion of his tests:

Before I decided to code time-synchronization myself I have already shown that RTL-SDR receivers keep time-synchronization across re-tunings to different carrier frequencies. I will show it again here with a bit more of the background information.

I've coded the test so it first started with recording a signal on a GSM C0 (BCCH) frequency, then it switched to another central frequency where only noise was present and in the end it switched back to the same GSM C0 frequency. The GSM signal's amplitude is periodic with the period of 156.25us - equal to the duration of one GSM TDMA time slot. Each GSM burst transmitted inside of time slot has constant amplitude. After a burst there is always 8.25us long guard period when signal amplitude decreases to 0. If you sample the signal with 4gsm_symbold_rate=41625000/6=1.08333... MHz the length of a time slot in samples is 625. The easy way giving indication that the signal didn't loose synchronization is to look if guard periods are in the expected positions. In order to do this graphically I've cut the signal into blocks of the length of a single time slot, created a matrix with consecutive bursts in the rows and plotted the matrix as an image with pixels intensity representing amplitude. The result can be observed on the image below: image RTL-SDR retune synchronization test

You can first see the amplitude of the GSM signal, then amplitude of noise and in the end amplitude of the GSM signal again. What can be seen is that guard periods after two retunes of a RTL-SDR receiver are aligned. The same situation repeated for all recordings I made. Synchronization is kept. Hurray!

This experiment had shown that it is possible to time-synchronize multiple RTL-SDR dongles working on different frequencies with very simple means:

  • tuning the RTL-SDR dongles to the same frequency where some transmission is present,
  • recording a short signals with all of the dongles,
  • computing cross-correlation of the signals (i.e. with respect to a one selected channel),
  • finding position of maximums of cross-correlations in order to estimate relative delays of the channels,
  • correcting the delays so the channels are time-synchronized,
  • switching the dongles to their target frequencies,
  • changing other parameters of the channels (like gains) to target values.