Prev: Mode S preamble detection
Next: LDPC FADING
From: astrayelmgod on 19 Nov 2009 06:26 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 20 Nov 2009 00:09 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 20 Nov 2009 00:19 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 20 Nov 2009 01:31 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 20 Nov 2009 10:34
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. ����������������������������������������������������������������������� |