[hfsig] More on synchronization

chris at yipyap.com chris at yipyap.com
Fri Sep 24 17:40:59 EDT 2004

Hi again,  the office is pretty slow today so I've been
thinking again.

Imagine we have two radio stations and they both can
see the same GPS satelite.  They can see other satelites
too, so they have a good fix on time and location.
Let's say they can each see 5 satelites, and there
are two that they can both see.

So we have the capability of time synchronization.  And
we have at least two streams of 'random' numbers that both
stations can read, at the same time.

We can use those two streams as an encoding dictionary
to compress our information.

For example, if the sending station wants to send a byte
'10011101', it can wait for that to appear on one of the
streams, then send a small message that means wait
for three ticks, then grab a byte from stream A.
On the receiving end, that station gets the messages
and follows the roadmap through the random streams.

You could use operations (and, or, xor) between the two
streams, or the next two or three items of each stream.
You could look for long sequences that fit the data
you want to send.   

If you have one shared random byte stream, with nothing
else fancy, you might have to wait 256 ticks to get the
byte you are looking for.  In that amount, you wouldn't
be saving any time or space since you would have to
transmit 8 bits to tell which byte to grab next...  so
you might as well just send the byte itself.  

Add in a second stream and that's reduced to 128 ticks
(or less if you are lucky).
Do some &&, || manipulations and you could bring it down

The closer these stations are to each other, the more
shared data they enjoy and the more efficient the

What if the random number stream is too slow?
That's ok.  Just have both stations park and soak
it up for awhile before sending your messages.  That
way they have a common dictionary to work from as
fast as they can go.  If you have a 1k message to send,
they you could buffer up a 1MB chunk of shared random stream(s),
coordinate the start point, and away you go.

Sorry if I'm subjecting you to boring stuff that you
already know.


More information about the hfsig mailing list