## Auto-Correlation based Carrier Frequency Recovery

Started by 11 months ago2 replieslatest reply 11 months ago118 views

Hello all,

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?

Regards

[ - ]

I need some clarification.   At the receiver you have some signal x[n] that you want and another signal y[n] which is a pure sinusoid. y[n] is unwanted. You only have w[n[] which is x[n]+y[n]. Correct so far?

You also have a known signal X[n] which is some copy of x[n] but shifted in time, in frequency and in amplitude. You are computing the cross-correlation of w[n] with X[n]. Still right?

The assumption I am making is that sum_n X*[n+m] x[n] has a sharp peak at m=M and is near zero elsewhere. Matched filter. But sum_n X*[n+m] y[n] is expected to be small for all m.  Am I still right?

If so, I have experience with the case where y[n] is large but can be suppressed. The autocorrelation of w[n] with itself should then look like a large sinusoid with an extraneous peak. You can estimate the amplitude and frequency of y[n] and either subtract it from w[n], or use a notch filter to remove that frequency and leave almost all the rest of the band unchanged, or, if you have a directive antenna you can direct it away from the source of the sinewave, or if you can control the antenna pattern put a null in the offending direction.

If the source of the sinewave is local oscillator leakage, you would almost always be better off by eliminating the problem with a physical circuit layout change rather than trying to signal process it away. Is the frequency an integer multiple of the local oscillator frequency?

[ - ]