0
$\begingroup$

I am having trouble to synchronize on a frequency hopping pattern between an emitter Tx and a receiver Rx. More precisely, the communication between Tx and Rx uses frequency hopping spread spectrum (FHSS) in the 2.4GHz - 2.485GHz ISM band, and I would like another Rx to be able to synchronize on the Tx.

To do so, I thought of cutting the entire bandwidth in a set of smaller ones and, if the energy contained in one of the smaller bands is greater than the mean of the energy of all the bands, it means I have a signal in that band and that I have to use that frequency. Using GNU Radio (3.8.3.1), a LimeSDR is connected to a polyphase filter bank (where each filter is a low-pass one) block, each of the outputs connected to a Stream to Vector block, a Complex to Mag Squared block, a threshold block, and finally some sinks to see the result. So far, I could not achieve satisfying results, and was wondering if

  1. the proposed method made sense ?
  2. it was possible to have a "dynamic" threshold to adapt to noisy environments and put the computed mean energy as threshold ?
  3. I use the polyphase filter bank block correctly ?

Here is a link to the code using the LimeSDR, and here is a code using a perdiodic band sweeper used to see if what I am trying makes sense.

Thank you and have a nice day, Alex.

$\endgroup$
4
  • 2
    $\begingroup$ This question is on-topic here, but honestly, it's very much the focus of DSP.SE, and there's more estimation theory, detection, digital filtering… experts over there. Might just be a better place to ask! I still think it fits here, it's really just because I think you might get a broader feedback. $\endgroup$ Mar 4, 2022 at 11:52
  • 2
    $\begingroup$ If the frequency hopping sequence is quasi random with a really long period, then you may not be able to synchronize. Such systems have been used in security applications. $\endgroup$ Mar 4, 2022 at 22:07
  • $\begingroup$ Thank you for the pointer @MarcusMüller, have a nice day. Alex $\endgroup$
    – aheuchamps
    Mar 5, 2022 at 12:27
  • $\begingroup$ @PhilFreedenberg thank you for your answer. I thought so but still wanted to try. Have a nice day, Alex $\endgroup$
    – aheuchamps
    Mar 5, 2022 at 12:28

1 Answer 1

1
$\begingroup$
  1. the proposed method made sense ?

Sounds good. If you were a student of mine, I had you sit down and write down the probability of missing something due to white noise being stronger on the non-signal bands, and the probability of misinterpreting noise as occupancy. (the latter is easier.)

This has to be done with SNR as a parameter (hint: you can fix the noise power to be 1 and just vary the $\sigma^2$ of noise).

That way, you can evaluate how sensible your approach is, in numbers.

  1. it was possible to have a "dynamic" threshold to adapt to noisy environments and put the computed mean energy as threshold ?

Sure! That's what you described in 1.

  1. I use the polyphase filter bank block correctly ?

Probably, it's kind of hard to reconstruct it from the Python alone

$\endgroup$

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .