time-nuts@lists.febo.com

Discussion of precise time and frequency measurement

View all threads

precision frequency/time/amplitude reference

J
jimlux
Mon, Oct 9, 2017 2:20 PM

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 edges.

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?

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 edges. 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?
MR
Mattia Rizzi
Mon, Oct 9, 2017 3:00 PM

Hi,
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.

cheers,
Mattia

2017-10-09 16:20 GMT+02:00 jimlux jimlux@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
edges.

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@febo.com
To unsubscribe, go to https://www.febo.com/cgi-bin/m
ailman/listinfo/time-nuts
and follow the instructions there.

Hi, 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. cheers, Mattia 2017-10-09 16:20 GMT+02:00 jimlux <jimlux@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 > edges. > > 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@febo.com > To unsubscribe, go to https://www.febo.com/cgi-bin/m > ailman/listinfo/time-nuts > and follow the instructions there. >
BK
Bob kb8tq
Mon, Oct 9, 2017 3:02 PM

Hi

Pick a couple of local broadcast stations and record them. That will give you a baseline
for each of the parameters you are after in real time. They will drift.

Past that, I’d go with a sweep of each node before installation. That will give you the
frequency response and (to some degree) a guess for noise and spurs.

Bob

On Oct 9, 2017, at 10:20 AM, jimlux jimlux@earthlink.net wrote:

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 edges.

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@febo.com
To unsubscribe, go to https://www.febo.com/cgi-bin/mailman/listinfo/time-nuts
and follow the instructions there.

Hi Pick a couple of local broadcast stations and record them. That will give you a baseline for each of the parameters you are after in real time. They *will* drift. Past that, I’d go with a sweep of each node before installation. That will give you the frequency response and (to some degree) a guess for noise and spurs. Bob > On Oct 9, 2017, at 10:20 AM, jimlux <jimlux@earthlink.net> wrote: > > 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 edges. > > 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@febo.com > To unsubscribe, go to https://www.febo.com/cgi-bin/mailman/listinfo/time-nuts > and follow the instructions there.
J
jimlux
Tue, Oct 10, 2017 12:07 AM

On 10/9/17 8:00 AM, Mattia Rizzi wrote:

Hi,
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.

My application is more like an HF interferometer/radio telescope, so I
don't have any control over the transmitted signal.

I am willing to transmit a "pilot tone" of some sort to allow me to do
the interelement cal, but I'd like it to be "real simple". An RTL-SDR is
receive only, but the beaglebone microcontroller next to it can generate
pulse trains, for instance.

On 10/9/17 8:00 AM, Mattia Rizzi wrote: > Hi, > 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. > My application is more like an HF interferometer/radio telescope, so I don't have any control over the transmitted signal. I am willing to transmit a "pilot tone" of some sort to allow me to do the interelement cal, but I'd like it to be "real simple". An RTL-SDR is receive only, but the beaglebone microcontroller next to it can generate pulse trains, for instance.
J
jimlux
Tue, Oct 10, 2017 12:49 AM

On 10/9/17 8:02 AM, Bob kb8tq wrote:

Hi

Pick a couple of local broadcast stations and record them. That will give you a baseline
for each of the parameters you are after in real time. They will drift.

Past that, I’d go with a sweep of each node before installation. That will give you the
frequency response and (to some degree) a guess for noise and spurs.

The RTL-SDR has only about 2 MHz BW, so you'd have to be lucky to have a
broadcast station in the band (and if I'm looking at trying to image
Jupiter with an interferometer, at 20.1 MHz, I'm not sure that the SW
broadcast bands cover within 2MHz - and you'd be subject to the vagaries
of propagation.. low sunspots = low critical frequency = not much
skywave propagation for WWV).

So a local reference would be nice.  Originally, I thought about just
radiating a CW tone (perhaps modulated with timecode), but then, I
realized I'd also like to calibrate the RF chain in the receiver, so
feeding a calibrated pulse that has spurs (hey, a "marker beacon" in old
school radios with a analog dial)

On 10/9/17 8:02 AM, Bob kb8tq wrote: > Hi > > Pick a couple of local broadcast stations and record them. That will give you a baseline > for each of the parameters you are after in real time. They *will* drift. > > Past that, I’d go with a sweep of each node before installation. That will give you the > frequency response and (to some degree) a guess for noise and spurs. > The RTL-SDR has only about 2 MHz BW, so you'd have to be lucky to have a broadcast station in the band (and if I'm looking at trying to image Jupiter with an interferometer, at 20.1 MHz, I'm not sure that the SW broadcast bands cover within 2MHz - and you'd be subject to the vagaries of propagation.. low sunspots = low critical frequency = not much skywave propagation for WWV). So a local reference would be nice. Originally, I thought about just radiating a CW tone (perhaps modulated with timecode), but then, I realized I'd also like to calibrate the RF chain in the receiver, so feeding a calibrated pulse that has spurs (hey, a "marker beacon" in old school radios with a analog dial)
BK
Bob kb8tq
Tue, Oct 10, 2017 3:27 PM

HI

On Oct 9, 2017, at 8:49 PM, jimlux jimlux@earthlink.net wrote:

On 10/9/17 8:02 AM, Bob kb8tq wrote:

Hi
Pick a couple of local broadcast stations and record them. That will give you a baseline
for each of the parameters you are after in real time. They will drift.
Past that, I’d go with a sweep of each node before installation. That will give you the
frequency response and (to some degree) a guess for noise and spurs.

The RTL-SDR has only about 2 MHz BW, so you'd have to be lucky to have a broadcast station in the band (and if I'm looking at trying to image Jupiter with an interferometer, at 20.1 MHz, I'm not sure that the SW broadcast bands cover within 2MHz - and you'd be subject to the vagaries of propagation.. low sunspots = low critical frequency = not much skywave propagation for WWV).

So a local reference would be nice.  Originally, I thought about just radiating a CW tone (perhaps modulated with timecode), but then, I realized I'd also like to calibrate the RF chain in the receiver, so feeding a calibrated pulse that has spurs (hey, a "marker beacon" in old school radios with a analog dial)

Monitor for 55 minutes and calibrate for 5 minutes. Do the calibration in maybe 10 second segments spread
out over the hour.

The gotcha with any “radiated” signal is finding a band you can legally transmit it in ….. For an array a few feet on a
side, not a big deal. For something a mile or two across, it begins to be an issue.

Bob


time-nuts mailing list -- time-nuts@febo.com
To unsubscribe, go to https://www.febo.com/cgi-bin/mailman/listinfo/time-nuts
and follow the instructions there.

HI > On Oct 9, 2017, at 8:49 PM, jimlux <jimlux@earthlink.net> wrote: > > On 10/9/17 8:02 AM, Bob kb8tq wrote: >> Hi >> Pick a couple of local broadcast stations and record them. That will give you a baseline >> for each of the parameters you are after in real time. They *will* drift. >> Past that, I’d go with a sweep of each node before installation. That will give you the >> frequency response and (to some degree) a guess for noise and spurs. > > The RTL-SDR has only about 2 MHz BW, so you'd have to be lucky to have a broadcast station in the band (and if I'm looking at trying to image Jupiter with an interferometer, at 20.1 MHz, I'm not sure that the SW broadcast bands cover within 2MHz - and you'd be subject to the vagaries of propagation.. low sunspots = low critical frequency = not much skywave propagation for WWV). > > So a local reference would be nice. Originally, I thought about just radiating a CW tone (perhaps modulated with timecode), but then, I realized I'd also like to calibrate the RF chain in the receiver, so feeding a calibrated pulse that has spurs (hey, a "marker beacon" in old school radios with a analog dial) Monitor for 55 minutes and calibrate for 5 minutes. Do the calibration in maybe 10 second segments spread out over the hour. The gotcha with any “radiated” signal is finding a band you can legally transmit it in ….. For an array a few feet on a side, not a big deal. For something a mile or two across, it begins to be an issue. Bob > > > _______________________________________________ > time-nuts mailing list -- time-nuts@febo.com > To unsubscribe, go to https://www.febo.com/cgi-bin/mailman/listinfo/time-nuts > and follow the instructions there.