DSPRelated.com
Forums

Using STO as a proxy for accurate CFO compensation

Started by robhhh6 2 weeks ago6 replieslatest reply 2 weeks ago107 views
Hello!

I have an OFDM-based system and I am trying to accurately estimate the Carrier Frequency Offset (CFO) and the Sampling Time Offset (STO).
I use the "traditional" algorithm for estimating the CFO (using a coarse and fine estimation, since I've built my frames to have the equivalent of short and long training symbols). Once this large frequency offset removed, I'd like to more accurately compensate the remaining CFO. For this part, I have thought about estimating the sampling time offset across my long training symbols, and then use its derivative as a proxy for the CFO (I have the same clock driving the PLL for the carrier and the sampling clock, so if the timing of my samples (Sampling Frequency Offset - SFO) is different that what I expect, then the CFO will also be non-zero). Note that both the sampling rate and the internal clock are 10 MHz. I've been able to nicely fit lines in the STO estimate across the long training symbols of a frame, but on recorded data with the an offset of the clock of roughly 2 Hz the algorithm returns me values of the slope of the line of around 300 * 10^-6.
Is there anything wrong with my idea?

Thanks a lot in advance!
Rob
[ - ]
Reply by SlartibartfastNovember 21, 2024

First, don't assume everybody knows what CFO and STO stand for, as those aren't universal acronyms.  It took me a bit to figure out what you were asking about.

Timing offset and carrier offset aren't really related.  Rate of change of carrier phase is equivalent to frequency offset, but that's not the same thing as sample timing offset.  Changing the sample timing offset of a sinusoid does not affect its frequency.

Most preambles are designed to facilitate synchronization of frequency, phase and timing, sometimes not all at once depending on the expected range of initial conditions.

[ - ]
Reply by robhhh6November 22, 2024

Thanks for your reply, and you're 100% right about the acronyms, I've edited my question.


I agree that the two are not related in a general sense, but the reasoning behind "my" approach (and only valid given the assumptions on the hardware given below) is the following (feel free to contradict me!):
my SDR's clock drives both the oscillator that is used for the carrier, and the oscillator used to sample the incoming signal. My SDR's clock is not synchronized with the transmitter's clock, and this implies that there is both a phase offset (this offset also includes the time it takes for the signal to travel to the receiver, which I assume to be constant for the moment) and a frequency offset. The latter is both reflected in the carrier's frequency (e.g., instead of 4.5 GHz, I'll be at 4.500001 GHz) and in the sampling frequency --- the transmitter (which I assume as golden reference) has a sampling rate of 1 Msps, it emits samples at t=0, t=1 us, t=2 us, ... but the receiver has a faster clock and thus receives them at t=T_1 us, t=T_1 + 1 - 1*d_t, t=T1 + 2*(1 - d_t), ... If the difference in the clocks is too big, I'll skip samples and thus my approach won't work. However, if across my frame I lose no samples (which should be the case, otherwise I have other bigger issues to care of), then, on top of the phase slope I have due to the standard delay, I have a change that is due to the clock not being syntonized. For two adjacent training symbols with length N, this change will be (using the example above) N*d_t. My reasoning is that, if I adjust (using proportionality coefficients I havent' figured out yet) my main clock to have d_t=0 then the CFO will also be 0 (since the carrier's oscillator origins from the same clock). Where is the fallacy in my idea?

Thanks again and have a nice day! :)

[ - ]
Reply by SlartibartfastNovember 22, 2024

Doppler and other effects usually make the clock and carrier offsets independent.  Even when there is no Doppler, unless you are intimately familiar with the transmitter/modulator architecture, it is often not a good assumption that the clock and carrier offset will be correlated.  Even if it is correlated, depending on whether the modulator is direct conversion or high-side or low-side mix, the scale may change. 

The usual scale of reference clock accuracy and stability results in only small symbol clock phase errors over the duration of a typical OFDM or single-carrier symbol.  The relative clock phases and symbol epoch phases will be random, but the drift will be small over the symbol times of interest, usually enough to be negligible.

But, again, in a receiver the symbol clock and carrier frequency are generally independent.   In OFDM there are some tricks to achieve fine-tuning, but steering a sampling clock phase (or symbol clock phase) does not affect the offset frequency.

Changing the sampling clock frequency creates an apparent change in signal frequency, but trying to steer clock phase for symbol synchronization and clock frequency for carrier synchronization would be very difficult to achieve independently, which is usually required. It also doesn't actually synchronize the frequency in the AFE/DFE, which may be needed.



[ - ]
Reply by robhhh6November 26, 2024

Thanks a lot for your analysis! Makes a lot of sense.
In the end, I've implemented the algorithm in the paper suggested by sravanskarri, and it works like a charm :)

Have a nice day!

[ - ]
Reply by sravanskarriNovember 21, 2024

"use its derivative as a proxy for the CFO (I have the same clock driving the PLL for the carrier and the sampling clock, so if the timing of my samples (SFO) is different that what I expect, then the CFO will also be non-zero)"

My understanding is the CFO would manifest itself as a constant phase offset on top of a slope resulting from STO (freq domain), so the derivative would not necessarily indicate the residual CFO.The CFO attaches a phase which increases linearly with symbols. Looking at the differnce in phase of each symbol and dividing by symbol distance should give the CFO. One good ref to look at is below 

A Technique for Orthogonal Frequency Division Multiplexing Frequency Offset Correction by Paul H Moose 


[ - ]
Reply by robhhh6November 22, 2024

Thanks for your reply and for the reference, I'll have a look at it immediately! :)

[ - ]
Reply by robhhh6November 22, 2024

Very, very interesting paper, thanks a lot !!! :)