I'm using an auto-correlation based frequency recovery algorithm in the receiver to extract and correct the carrier frequency offset between the transmitter and receiver. I'm using a wide band signal with some repetitive pattern in the transmitter for this auto-correlation. Algorithm works very well even at very low SNR. But it fails when there is a pure sinusoidal signal (may be a single tone jammer or system LO leakage) in the the receiver path. I don't want to react to any other signal from my frequency recovery algorithm. Because from this all the remaining processing macros triggered and started to decode a wrong data. Is there any approach for this?
I have tried to keep a cross-correlation data in the transmitter before this auto-correlation matrix. In the receiver side, I'm running a cross-correlation as first logic. From this further frequency and timing recovery macro initiated by detecting a valid peak from the cross-correlation. With cross-correlation, the energy at the peak will depend on the received signal energy. So I have to keep the very lower threshold to detect the peak at the lower SNR also. With this also, algorithm failed when a strong sinusoidal signal entered in to the receiver chain. Is there any methods are available to resolve this issue?
Thanks in advance.
Maybe filtering the signal for the strong tones before your algorithm could work ?
Thanks for the reply. The auto-correlation matrix in the transmitter is a wide band signal. So I can't have a separate narrow band filter for the strong signal.
From an energy perspective I don't see how you can cut out the jamming signal. You can cut out a band pass to only look at your region of interest, but if the jammer is inside that band you'll lock in on the larger signal. If it's a leaking LO, that's systematic and you can fix it. You would need an independent system to locate the jamming signal and remove it before sending signals through the rest of the algorithm. If the jamming signal is louder that should be "easy". But it is independent of the rest of what you're doing.
If this is the preamble detection in a burst signal it's going to be difficult. There's always a tradeoff between low SNR operation and susceptibility to interference, and there's always going to be some interference level that will overwhelm detection of a desired signal. Maybe you're just discovering where those limits are for your algorithm.
If you absolutely need more immunity from the interference, then using a longer sequence for the correlation will help, which should also help low-SNR operation even more. Another thing to do is to make certain your preamble sequence is sufficiently random, i.e., has a very good autocorrelation property, as that will increase immunity from things like sinusoidal interferers.