WARP Project Forums - Wireless Open-Access Research Platform

You are not logged in.

#1 2017-Jul-10 02:17:11

linrobert
Member
Registered: 2017-Jan-09
Posts: 11

CFO and LTS correlation

Hi everyone,

I want to know what value of CFO may cause the LTS cross-correlation can not pass the LTS Corr Thresh.

In my project I use the sample clock as 2MHz, it means my subcarrier spacing is 31.25KHz, and I found that when the CFO is bigger than 12.5KHz will cause LTS correlation can not have two obvious peak.

By the way, I already set the LTS Corr Thresh to 8500.

So I want to know what value of CFO may cause LTS correlation do not have two obvious peak either sample rate is 2MHz or 20MHz.

Offline

 

#2 2017-Jul-10 08:29:58

murphpo
Administrator
From: Mango Communications
Registered: 2006-Jul-03
Posts: 5159

Re: CFO and LTS correlation

The time-domain CFO estimation scheme works by comparing the phases of two samples that were identical at the transmitter. The preamble contains two copies of the 64-sample LTS transmitted back-to-back. The receiver compares the phases of each sample in the two training symbols and computes the average phase difference. This phase difference is proportional to the frequency offset. Think of frequency as (phase / time). The receiver computes the "phase" term by comparing the phases of the two LTS. The receiver knows the "time" term (64 sample periods). From these the receiver computes the frequency offset.

In this scheme the receiver can estimate the CFO as long as the phase difference between the two LTS samples is less than one-half cycle (abs(phase_diff) < pi/2); a larger phase difference would be ambiguous. Thus the maximum CFO this system can estimate is (0.5 cycles / 64 samples). For 20MHz bandwidth this is 156.25kHz.

In practice there is always noise (both additive noise and phase noise) which corrupts the individual phase difference estimates, so the usable CFO estimate range is a bit smaller.

I would encourage you to experiment with this in simulation, where you can observe the effects of various CFO magnitudes without additive/phase noise. This will give you a better foundation for understanding what you observe once real hardware is introduced into the system.

Offline

 

#3 2017-Jul-10 21:05:01

linrobert
Member
Registered: 2017-Jan-09
Posts: 11

Re: CFO and LTS correlation

Hi Murphpo,

According to the IEEE 802.11 spec, the transmitter frequency offset tolerance is +20ppm~-20ppm. This means the CFO between transmitter and receiver will have 40ppm error maximum. If the signal bandwidth is 20MHz and the center frequency is 5GHz, there will have 5GHz*40ppm=200KHz frequency offset maximum. How can the reference design solve this problem?

In my project I have to transmit the signal with bandwidth 2MHz, and the center frequency is 900MHz. So the maximum CFO is 900MHz*40ppm=36KHz, but my subcarrier spacing is only 31.25KHz, is this means the reference design can not support to this requirement? Or how can I improve the design to achieve my project's requirement?

Appreciate  for your reply.

Offline

 

#4 2017-Jul-10 22:56:56

murphpo
Administrator
From: Mango Communications
Registered: 2006-Jul-03
Posts: 5159

Re: CFO and LTS correlation

According to the IEEE 802.11 spec, the transmitter frequency offset tolerance is +20ppm~-20ppm. This means the CFO between transmitter and receiver will have 40ppm error maximum. If the signal bandwidth is 20MHz and the center frequency is 5GHz, there will have 5GHz*40ppm=200KHz frequency offset maximum. How can the reference design solve this problem?

Our current Rx PHY's CFO estimator would not be able to handle a CFO that large. The preamble STF can be used for this purpose; it's periodicity of 16 samples is sufficient to estimate the worst-case frequency offset allowed by the spec. However every device we have tested has frequency accuracy much better than ±20ppm, including cheap Wi-Fi devices (most are <5ppm). It's entirely possible there are Wi-Fi devices out there with larger CFOs, but we've never seen one.

In my project I have to transmit the signal with bandwidth 2MHz, and the center frequency is 900MHz. So the maximum CFO is 900MHz*40ppm=36KHz, but my subcarrier spacing is only 31.25KHz, is this means the reference design can not support to this requirement? Or how can I improve the design to achieve my project's requirement?

The actual range of CFO values will be determined by the accuracy of your hardware's oscillators. Since you're using WARP v3 you can assume the on-board TCXO is accurate to ±5ppm (this is the TCXO spec; every WARP v3 kit we've tested is more accurate than this, usually 1-2ppm).

If the other device in your experiment has a much larger frequency offset, you would need to add STF-based CFO estimation to the Rx PHY core. This is definitely feasible, but tricky. One challenge is choosing which 16-sample symbols to use for CFO estimation. The AGC process consumes the first few STS (duration depends on how late packet detection fires and how much the AGC must reduce the radio's gains). The radio takes some time to settle after gain changes. It would probably be safe to use the last 2-3 STS for CFO estimation, but I haven't actually characterized this in hardware.

Offline

 

#5 2017-Jul-10 23:43:34

linrobert
Member
Registered: 2017-Jan-09
Posts: 11

Re: CFO and LTS correlation

In my project I use the AD9361 FMCOMMS3 as my RF module, so there is no radio controller and AGC in my project, these handle by the AD9361 module.

Unfortunately, the DCXO on the AD9361 module has frequency offset of +-18.1ppm, and we use this as the reference clock to drive all hardware.

I think I can try your suggestion, but I need your help to figure out some question.

In the reference design, CFO use 2 LTS to estimate the phase and decide the phase by the first peak of LTS correlation. So if I want to do this by using STS, how should I decide the phase of STS?

Should I do the CFO estimate and compensate by STS before the LTS correlation first, and do the CFO again by LTS? Do I have to do the CFO twice in my Rx PHY?

Is this method can make the LTS correlation pass the threshold? Because if I can not synchronize the signal then CFO estimator will not work too.

Very appreciate!!

Offline

 

#6 2017-Jul-11 09:24:54

murphpo
Administrator
From: Mango Communications
Registered: 2006-Jul-03
Posts: 5159

Re: CFO and LTS correlation

Unfortunately, the DCXO on the AD9361 module has frequency offset of +-18.1ppm, and we use this as the reference clock to drive all hardware.

It is worth confirming in hardware whether you see offsets this big. According to ADI the Epson crystal they use has accuracy ±10ppm. The DCXO in the AD9361 can tune the actual reference frequency programmatically over a ±60ppm range (per ADI UG-570). You may be able to calibrate your ADI RF module to reduce its frequency error using the DCXO to correct for the crystal's inherent offset. The crystal frequency will still vary with time and temperature, however.

In the reference design, CFO use 2 LTS to estimate the phase and decide the phase by the first peak of LTS correlation. So if I want to do this by using STS, how should I decide the phase of STS?

Should I do the CFO estimate and compensate by STS before the LTS correlation first, and do the CFO again by LTS? Do I have to do the CFO twice in my Rx PHY?

I can't offer specific guidance here, as I've never needed to build an STF-based CFO estimator. A few general things:
-For a large CFO you must estimate the CFO from the STF and apply that correction to the LTF *before* estimating the residual CFO using the LTF. Otherwise your CFO estimate from the LTF will be wrong for the reasons I described above.

-The current Rx PHY uses the LTF for CFO estimation, the cross-correlation used to set sample-level timing, and channel estimation. The CFO estimation and cross-correlation blocks run in parallel; we've found the correlation works well enough in the presence of nominal CFOs. If your system will have much larger CFO, you probably need to begin applying CFO correction before the cross-correlation step. This would happen naturally if you begin correcting CFO before the LTF.

-You may also need to consider the effects of sampling frequency offset. The current (as of v1.7) PHY does not implement any SFO correction, as we've observed its effects are negligible with W3 hardware and the max packet durations in 11a/g/n. For longer packets or larger frequency offsets, SFO will definitely matter.

-I would strongly encourage you to explore the effects/estimation/correction of these frequency offsets in simulation and/or WARPLab before attempting any modifications to the Rx PHY design. The WARPLab OFDM examples use the same preamble structure as 802.11. You can emulate arbitrary carrier frequency offsets by multiplying the Tx waveform by a complex sinusoid.

Offline

 

#7 2017-Jul-11 23:21:50

linrobert
Member
Registered: 2017-Jan-09
Posts: 11

Re: CFO and LTS correlation

Dear Murphpo,

I already read the AD9361 user guide UG-570 before, so I know I can adjust the DCXO value to correct the offset. But just like you said, the crystal frequency still vary with time, temperature and initial accuracy, this value has maximum offset about ±18.1ppm, even if I know it is not probable to achieve the maximum offset. Because the DCXO can not tuning itself automatically, if I don't want to adjust the DCXO value regularly by manual, I have to take this offset by RX PHY's algorithm or else method that I don't know.

I will think about your suggestion and post my question in this page, hope you can help me to figure out some problem in the future.

Thanks a lot.

Offline

 

#8 2017-Jul-13 21:43:30

linrobert
Member
Registered: 2017-Jan-09
Posts: 11

Re: CFO and LTS correlation

Dear Murphpo,

I have few questions about implement your suggestion.

In the reference design CFO is estimated by calculate the phase of LTS, and removed by multiply the DDS signal. Now I am doing is calculate the phase by STS and multiply the DDS signal to the received signal. Theoretically, after doing above step the phase of LTS is supposed to be close to zero right? But after multiply the DDS signal my received signal has bad phase...

Figure below is my design
http://i.imgur.com/U1dWLUJ.png

and this is the phase after/before multiply the DDS dignal.
http://i.imgur.com/reFTIqt.png

Do you have any idea of this? Please help me to figure out this implementation.
Very appreciate!

-------------------------New Edition-------------------------
I put the RX I/Q data to the output of STS CFO compensated port, like figure below
http://i.imgur.com/0HBdkFT.png
Then it shows the error "Bool type output port dout gets indeterminate value."
http://i.imgur.com/suQDggB.png
Why this error happen? Can you help me to solve it?

Thanks a lot.

Last edited by linrobert (2017-Jul-13 22:59:10)

Offline

 

#9 2017-Jul-14 02:28:53

linrobert
Member
Registered: 2017-Jan-09
Posts: 11

Re: CFO and LTS correlation

Hi Murphpo, I already solved this problem.

That problem is caused by there is no initial value after the Complex Multiplier, so I add a mux to fix this problem.

And I finished  the project that use STS to do the CFO estimated and compensated.

Can you help me to check my design and is there have any method to advance my design?

Figure below is my design and scope:

http://i.imgur.com/muZWpQJ.png

http://i.imgur.com/VJNdf5s.png

http://i.imgur.com/DCWKhBK.png
The last figure is the phase before/after doing the STF-based CFO Est and Correction.

Now I am going to test different value of CFO and observe the effect. I will post my result here and hope you can give me some advice.

Offline

 

#10 2017-Jul-16 23:12:13

linrobert
Member
Registered: 2017-Jan-09
Posts: 11

Re: CFO and LTS correlation

After my testing, this implementation can estimate the frequency offset up to (2 x subcarrier spacing), and it is same as the theoretical value.

Offline

 

Board footer