From: astrayelmgod on
We are creating a product that is a network that will exchange short
messages in the 915MHz ISM band. All of the RF related stuff will be
handled by a Semtech XE1205, which has an SPI interface to our processor.


I should probably say here that I have a lot of experience with sensors,
transducers, etc, but no real experience with RF. We have an RF guy
designing the hardware, but his experience doesn't extend to frequency
hopping.

My question is, when we are searching for usable frequencies, how do we
know that a frequency is or is not usable? Do we ping-pong messages back
and forth, and count the errors? Or can we just listen for awhile and
count the bits that we receive? I don't think the XE1205 has any registers
that would help, although it does have several that I haven't deciphered
yet.


From: Grant Griffin on
astrayelmgod wrote:
> We are creating a product that is a network that will exchange short
> messages in the 915MHz ISM band.
....
> My question is, when we are searching for usable frequencies, how do we
> know that a frequency is or is not usable? Do we ping-pong messages back
> and forth, and count the errors? Or can we just listen for awhile and
> count the bits that we receive?
....

FWIW, it might be best not to search for usable frequencies at all.
Instead, you could hop through frequencies based on a pseudo-random
sequence used by both the transmitter and receiver (after
synchronization). You could use interleaving and forward-error
correction such as Reed-Solomon coding to allow the system to tolerate
lost data up to some allowance. Then, if the number of unusable
frequencies is below a certain percentage, all the data will get
through, after correction by Reed-Solomon. (This magic is possible
because RS coding introduces some amount of redundant data, thus
reducing the overall data rate of the system somewhat.)

RS correction can restore all lost bits up to the correction capability
of an RS block. Interleaving is needed to spread burst errors (caused
by a set of lost consecutive bits on a bad frequency hop) across
multiple RS blocks so that the correction ability of no single block is
exceeded.

This is analagous to how CDs work: to oversimplify a bit, as long as the
amount of damage on the surface of the disk is below a threshold, all
the data comes through perfectly. (Which is _much_ better than the bad
old days of getting unusable scratched-up LPs at your local library.)
Beyond the threshold, though, all bets are off: RS correction actually
makes it worse. In your case, if you have too many unusable
frequencies, the system wouldn't work at all. Otherwise, if properly
designed, all the data will get through even though it it using bad
frequencies part of the time.

This approach is somewhat complicated to design and implement
(especially the RS encoding/decoding); however, probably any successful
frequency hopping system will be complicated. Some very good free (and
even GPL'ed <wink>) RS implementations are available on the web.

A good reference for frequency hopping is "Spread Spectrum Systems with
Commercial Applications" by Robert C. Dixon. Probably worth investing
in if you're designing a frequency hopper.

Grant

_____________________________________________________________________

Grant R. Griffin
Publisher of dspGuru http://www.dspguru.com
Iowegian International Corporation http://www.iowegian.com
See http://www.iowegian.com/img/contact.gif for e-mail address
From: Al Clark on
Hi Grant

A ghost from the past!

Al




Grant Griffin <nobody(a)example.com> wrote in news:c79be$4b062484$407e2ca9
$5778(a)EVERESTKC.NET:

> astrayelmgod wrote:
>> We are creating a product that is a network that will exchange short
>> messages in the 915MHz ISM band.
> ...
>> My question is, when we are searching for usable frequencies, how do we
>> know that a frequency is or is not usable? Do we ping-pong messages
back
>> and forth, and count the errors? Or can we just listen for awhile and
>> count the bits that we receive?
> ...
>
> FWIW, it might be best not to search for usable frequencies at all.
> Instead, you could hop through frequencies based on a pseudo-random
> sequence used by both the transmitter and receiver (after
> synchronization). You could use interleaving and forward-error
> correction such as Reed-Solomon coding to allow the system to tolerate
> lost data up to some allowance. Then, if the number of unusable
> frequencies is below a certain percentage, all the data will get
> through, after correction by Reed-Solomon. (This magic is possible
> because RS coding introduces some amount of redundant data, thus
> reducing the overall data rate of the system somewhat.)
>
> RS correction can restore all lost bits up to the correction capability
> of an RS block. Interleaving is needed to spread burst errors (caused
> by a set of lost consecutive bits on a bad frequency hop) across
> multiple RS blocks so that the correction ability of no single block is
> exceeded.
>
> This is analagous to how CDs work: to oversimplify a bit, as long as the
> amount of damage on the surface of the disk is below a threshold, all
> the data comes through perfectly. (Which is _much_ better than the bad
> old days of getting unusable scratched-up LPs at your local library.)
> Beyond the threshold, though, all bets are off: RS correction actually
> makes it worse. In your case, if you have too many unusable
> frequencies, the system wouldn't work at all. Otherwise, if properly
> designed, all the data will get through even though it it using bad
> frequencies part of the time.
>
> This approach is somewhat complicated to design and implement
> (especially the RS encoding/decoding); however, probably any successful
> frequency hopping system will be complicated. Some very good free (and
> even GPL'ed <wink>) RS implementations are available on the web.
>
> A good reference for frequency hopping is "Spread Spectrum Systems with
> Commercial Applications" by Robert C. Dixon. Probably worth investing
> in if you're designing a frequency hopper.
>
> Grant
>
> _____________________________________________________________________
>
> Grant R. Griffin
> Publisher of dspGuru http://www.dspguru.com
> Iowegian International Corporation http://www.iowegian.com
> See http://www.iowegian.com/img/contact.gif for e-mail address
>

From: astrayelmgod on
Grant --

Actually, I was planning to use RS anyway. Interleaving and convolution
if necessary. I have RS code from SourceForge (MIT - how bad could it be?
(don't answer that!!!)). I haven't found any convolution code that I can
use directly.

I don't have any feeling for how much bullet proofing I really need. I
was talking to an FAE who had another customer who took a year to get
frequency hopping to work. Of course, there are any number of reasons for
that, some of which are even related to how hard it is. Nevertheless, this
project is not budgeted for a year of anything; and the client's previous
experience with RF (with other designers) was so bad that I'm pretty sure
he would kill it if it ever got anywhere near a year.

Thanks for the reference, I will find it ASAP.

Gary Olmstead
Toucan Technology
Ventura CA


> Instead, you could hop through frequencies based on a pseudo-random
>sequence used by both the transmitter and receiver (after
>synchronization). You could use interleaving and forward-error
>correction such as Reed-Solomon coding to allow the system to tolerate
>lost data up to some allowance.

From: Jerry Avins on
Grant Griffin wrote:

...
_____________________________________________________________________
>
> Grant R. Griffin
> Publisher of dspGuru http://www.dspguru.com
> Iowegian International Corporation http://www.iowegian.com
> See http://www.iowegian.com/img/contact.gif for e-mail address

Hello, stranger!

Jerry
--
Engineering is the art of making what you want from things you can get.
�����������������������������������������������������������������������
 |  Next  |  Last
Pages: 1 2
Prev: Mode S preamble detection
Next: LDPC FADING