[time-nuts] precision frequency/time/amplitude reference
mattia.rizzi at gmail.com
Mon Oct 9 11:00:36 EDT 2017
I did something similar when I had to deliver synchronization over IEEE
802.15.4-CSS (Chirp spread spectrum).
If you have SDR on both ends (TX & RX), you can use complex chirp signals
and then cross-correlation at RX. Just be sure that the multi-path is not
killing you (i.e. the cross-correlation peak has a width smaller than
multi-path echoes delay).
If you use up & down chirps, you can compensate the time-shift introduced
by carrier frequency offset (due to RF front-end).
To estimate clock frequency offset, well, just send a repetitive pattern.
Amplitude is easy as well.
2017-10-09 16:20 GMT+02:00 jimlux <jimlux at earthlink.net>:
> I'm trying to come up with a relatively simple scheme to calibrate an HF
> antenna array - I've got a bunch of RTL-SDRs operating as a distributed
> array spread over a few 10s of meters.
> The things I want to do are:
> a) determine the phase/time offset between stations relative to other nodes
> b) determine the sample rate (clock rate) variation relative to other nodes
> c) determine the amplitude calibration (of each node).
> One of the schemes I cam up with was to take the output from the sample
> clock oscillator, divide it down to around 500 kHz or 1 MHz, and then use
> that to generate short pulses by switching a precision voltage reference.
> That pulse train (the spectrum of which is a comb with lots of harmonics)
> would be connected to the antenna of the node.
> So, I get a precise amplitude pulse train into my own node receiver - so I
> can calibrate my receiver gain. And, I radiate a low power pulse train to
> the other nodes. By looking at the digitized signal on the other nodes, I
> can figure out relative clock rate (and, to a lesser extent, whether the
> antenna has changed)
> This scheme seems to hang together, but a lot depends on that switch that
> turns my internal clock derived pulse train into a precise amplitude and
> Off hand, it seems that almost any sort of transistor (BJT or FET) would
> work as long as the rise/fall time is fast enough to get the harmonic comb
> up high enough (I'm only interested up to, say, 50 MHz - yeah, the RTL-SDR
> will tune higher, but for this project I'm not so worried about that).
> I suppose too, that I could do a "bench calibration" of each unit the
> first time (to take out component/component variations in the switch), as
> long as the switch properties are stable, or at least vary in a known way.
> In terms of amplitude, the amplitude of the fundamental should be pretty
> stable, but I can see the relative amplitude of the high harmonics falling
> in precision - small changes in switch rise/fall time will affect that more.
> In terms of frequency, I think it should work fairly well - I tune the
> RTL's front end, look for my calibration combs that are "in band" and fit
> an appropriate function to the signal (there should be a well defined phase
> relationship between the harmonics)
> So, one remaining issue is how to get "time" out of this. Since the
> individual nodes are battery powered and not connected to a network in real
> time, I would assume that their internal clock is good to maybe 1 second.
> I was thinking I could try and encode a standard time code (Irig) on the
> pulses from my comb generator, either by changing the pulse rate, or by
> changing the pulse width?
> Any other clever ideas?
> time-nuts mailing list -- time-nuts at febo.com
> To unsubscribe, go to https://www.febo.com/cgi-bin/m
> and follow the instructions there.
More information about the time-nuts