DSPRelated.com
Forums

Design a preamble structure for OFDM

Started by Milruwan 4 years ago8 replieslatest reply 4 years ago605 views

Hi...

I'm designing a 1024-point OFDM transceiver system for my university project. First I implement a 64-point OFDM transceiver referring to WLAN 802.11a model. Symbol time offset is detected using the WLAN LTS preamble. I'm able to get a clear correlation peaks using the LTS preamble.

2020-04-08 20_05_35-window_76925.png

Then I tried to generate 1024 LTS preamble by replicating WLAN LTS preamble, but didn't get a clear correlation peak. I also tried replicating the Barker code, but result was unsuccessful.

Then I tried Zadoff–Chu sequence and got clear correlation peaks.

2020-04-08 20_16_48-window_29739.png

But found that the channel estimation and CFO estimation values were erroneous using the  Zadoff–Chu sequence. When i go through research papers, I found that  Zadoff–Chu sequence

is only used for MIMO OFDM channel & CFO estimation. It is not used for SISO OFDM. Is it impossible to use the Zadoff–Chu sequence for CFO & channel estimation in SISO OFDM?

How to generate a LTS (BPSK modulated) preamble for 1024 OFDM which can also be used for CFO & channel estimation ?

I really appreciate your suggestions and help. 

Thank you.




[ - ]
Reply by MarcinsteinApril 9, 2020

Hi,

Originally CFO is estimated using well known Schmidl&Cox algorithm based on STS. LTS is used for channel estimation and equalization. Best reference is MATLAB code for physical layer (OFDMReceiver class).

https://www.mathworks.com/help/comm/examples/ofdm-synchronization.html

Regards,

Marcin

[ - ]
Reply by MilruwanApril 9, 2020

Hi Marcin

Thanks for your quick and valuable reply.

According to what I heard Schmidl&Cox algorithm doesn't give a sharp peak for symbol timing synchronization and it gives a coarse CFO estimation. For fine CFO estimation LTS is needed. (I could be wrong)

Any how, how to generate a BPSK modulated preamble for CFO & channel estimation?

Thanks.

Milruwan

[ - ]
Reply by MarcinsteinApril 9, 2020

Dear Milruwan,

Yes you are right its coarse estimation but thats how its done in 802.11a.

There is a threshold value for STS correlation peaks. Sharpness depends upon SNR value. 

Answering to your question how to generate LTS and STS, they are straightly defined how they look like in 802.11 standard to have strong correlation properties.

Regards,

Marcin

[ - ]
Reply by MilruwanApril 9, 2020

Dear Marcin, 

After your suggestion, I search Schmidl&Cox algorithm based timing synchronization methods on internet. There are many research papers on this. Schmidl&Cox algorithm gives a large value plateau. This plateau may cause some uncertainty in frame detection especially with large noise. So is there some special preamble arrangement such as barker code, GCL sequence, Gold code sequence etc. (sequences with strong correlation property) to detect accurate frame start position? 


Thank you.

Milruwan

[ - ]
Reply by MarcinsteinApril 9, 2020

Dear Milruwan,

Large plateau? I don't think so, it gives you ten peaks if it comes to STS. You just have to correlate a priori known sequence of STS with received signal in the receiver. And yes, there is arrangement how the training sequences ought to look like. Its all written in 802.11a standard from 1999.

"A short OFDM training symbol consists of 12 subcarriers, which are modulated by the elements of the sequence S, given by

S(–26, 26) = √(13/6) × {0, 0, 1+j, 0, 0, 0, –1–j, 0, 0, 0, 1+j, 0, 0, 0, –1–j, 0, 0, 0, –1–j, 0, 0, 0, 1+j, 0, 0, 0, 0,

0, 0, 0, –1–j, 0, 0, 0, –1–j, 0, 0, 0, 1+j, 0, 0, 0, 1+j, 0, 0, 0, 1+j, 0, 0, 0, 1+j, 0,0}"

Those are samples you have to feed to IFFT algorithm. 

Regards,

Marcin

[ - ]
Reply by weetabixharryApril 9, 2020

Have you seen Annex I of the 802.11 PHY standard? This takes you through every step of the 802.11a/g modulation process to make sure you get everything exactly right. (Unfortunately, early versions of the standard had an error, so it was a bit misleading at first).

I worked through this Annex in Matlab and uploaded my code in this blog:

https://www.edaboard.com/entry.php?2069-Working-through-Annex-I-1-of-the-802-11-PHY-standard-in-MATLAB

I'm pretty certain all dependencies were uploaded, but let me know if it fails to run.

I think I also did it in C++, so I could also send you that code if it is more useful.

[ - ]
Reply by MilruwanApril 9, 2020

Dear weetabixharry,

First of all thanks for your reply.

Annex I of the 802.11 PHY is such an awesome implementation. Your code runs fine. Can you explain further about how you generated the LTS preamble? Is there a equation to generate it? or have you generated it by referring the WLAN 802.11 specification?


Thank you.

Milruwan

[ - ]
Reply by weetabixharryApril 9, 2020

Everything in those Matlab scripts is specified explicitly in the 802.11 specification. The comments in the Matlab code refer to the part of Annex I (e.g. "I.1.3.2" or "Table I-5"). From there, you could search around and you should find the definitions of the short and long training sequences on page 2289 of Part 11 of the 802.11 standard (which I linked in that blog post). Beware that the standard is many thousands of pages long, so don't waste too much time reading it. If necessary, find a textbook, as they are much shorter.

Both the Short Training Field and Long Training Field are designed with very specific properties, intended for specific (practical) purposes. They are not only designed with correlation properties in mind - they are also intended to be implemented efficiently in hardware, in the presence of real-world inaccuracies and distortions.

For example, the sequences repeat so that the receiver can just correlate them with themselves (at one fixed time offset), which is hugely more computationally efficient than cross-correlating with the known sequence (at every possible time offset).

Depending on your project, these properties may be beyond the scope of your work. When I was at university, I think I focused on things like Hadamard codes, m-sequences and Gold codes, since these allow you to understand the main principles of correlation (cross-correlation, autocorrelation, partial cross-correlation, partial autocorrelation) in a theoretical context.

However, if you need to worry about practical things like synchronization between the transmitter and receiver (in frequency and time) and efficiency of the implementation, then it's worth understanding how a practical system works.