Hello everyone :)
I am trying to make a mimo-ofdm transmitting system with usrp's for my bachelor thesis. The system is almost complete at the simulations in matlab but the last thing that i came up with is the synchronization of the receiver and specifically the carrier frequency estimation before i move on the real implementation on usrp's.
I use preambles for frequency estimation and the problem is that if I apply to the transmitting serial signal (ofdm burst) a cfo, then at the receiver because of awgn the cfo estimation will be aproximatelly the cfo applied before but not exactly that. If cfo at the receiver is 0.1 without loss of generality, the receiver will perceive something like 0.092 if snr=20dB. Removing that, the signal will have cfo 0.008. So, if the ofdm burst is big enough, the constellation diagram at the end will rotate and the system will degrade...
Is it normal? Is there any standard (802.11a) of how big an ofdm burst can be depending of receiver's snr knowledge? I couldn't find anything on the web.
Thank you very much
This is a very common problem. This is called residual frequency offset and is typically estimated using pilots in data symbols or using a technique known as "Decision Directed Refining". And yes, there is a limit on number of data symbols you can send e.g. in 802.11a the signal field carries information on the number of OFDM symbols being transmitted and is limited by the number of bits allocated for the length of the packet.
I think prashant is right. You are dealing with problem of residual frequency and timing offset. After you estimate coarse and fine frequency offset, you still have some frequency offset left (called residual frequency offset). During time, residual frequency offset will make phase offset grow and you will see rotation of your constellation plot. Way to deal with coarse frequency offset is to implement phase and timing tracking algorithm based on pilot symbols. I would advice you to take a look in this book (really practical book):
In that book you will find a lot of matlab code and explanation of alghoritams that are used in 802.11a/g standard.
Thank you for your reply, Ι appreciate it. Unfortunatelly, I can't afford right now this book, so if you have further info about how to deal with my issue I will be thankful. I am reading papers but I don't understand a thing and I find nowhere a thing about how to program this...