0
$\begingroup$

I'm trying to reuse standard synchronization algorithms for phase(Costas) and Time (Polyphase Filter bank) for receiving bursty signals. The bursty signals are transmitted every 5 seconds. The signals have a 32-bit frame synchronization pattern (preamble as some would call it) for frame synchronization. After demodulation, I can see the constellation forming very quickly before it disappears under the noise (once the burst finishes). However, I'm unable to get the packets as the frame synchronization fails to recover the full sync pattern. It seems like the Costas and PFB are too slow to get all the bits. I added an automatic frequency control (AFC) based on a cross discriminator. Simulations show that the Costas locks much faster with the AFC (See the two figures below). However, it is still too slow in practice. Is there anything I could try to improve the locking speed? I have heard of correlation-based algorithms but I haven't tried them before. enter image description here enter image description here

EDIT

I have been experimenting with correlation-based approaches, as shown in the diagram below. I have a couple of questions regarding this approach

  1. I was able to deduce the phase error at the maximum correlation value. It coincides perfectly with the beginning of the packet. My question is, how does one determine the timing estimate? I'm looking for a way to determine the fractional interval [0.0 to 1.0] (if that's the timing estimate expected)
  2. I was also wondering how to pick the right peak. For example, zooming into the peaks in the diagram below, you will find out that the peak is surrounded by two other peaks of comparable magnitude.
  3. Finally, the correlation values seem to change with channel conditions e.g. AWGN. How does one choose a threshold?

enter image description here

$\endgroup$
3
  • $\begingroup$ What I would try is saving the entire signal, and once synchronization is acquired, process the signal from the start. $\endgroup$
    – MBaz
    Commented Feb 17, 2022 at 0:04
  • $\begingroup$ You need to adjust your loop bandwidth in either approach. That would be very specific to the implementation but as a quick test you may be able to simply add gain after your discriminator (the error signal) to increase the bandwidth $\endgroup$ Commented Feb 17, 2022 at 0:36
  • $\begingroup$ Thanks a lot guys. I tried to play with the loop bandwidth optimization but the performance was not as good as I hoped for. I have decided to turn to correlation-based approaches. Please do let me know what you think from the edit. $\endgroup$ Commented Mar 1, 2022 at 0:52

0

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.