In week 10 of GSoC I worked with two OFDM synchronization algorithms and implemented one of them in C++.

## OFDM Synchronization

After the OFDM parameter estimation I dealt with last week, it is reasonable to perform a frequency and timing synchronization since OFDM is sensible to synchronization offsets.

I started to implement a python prototype for the algorithm presented in [1], but soon me and my mentors had doubts about the functionality of this algorithm. I did not manage to create a working prototype and some detail questions where unanswered by this paper. Therefore I concurrently searched an implemented an alternative algorithm presented in [2].

It turned out that [2] did work quite well and since we could not clearly make sense of [1], I chose to implement a C++ version of [2]. The performance of the current implementation looks very good.

The algorithm works by correlating the cyclic prefixes at the beginning and end of each OFDM symbol. The phase of the correlation holds information about a frequency offset while a high absolute value of the correlation indicates a symbol beginning.

The block outputs a frequency-corrected version of the input OFDM signal with stream tags at the estimated symbol beginnings.

## ToDo

- Write test case for synchronizer block
- Create FM demod block that works with inspector
- Add feedback ports to GUI block and display information there

[1] B. Park, H. Cheon, E. Ko, C. Kang, and D. Hong, “A blind OFDM synchronization algorithm based on cyclic correlation,” *IEEE Signal Processing Letters*, vol. 11, no. 2, pp. 83–85, Feb. 2004. [Online]. Available: http://ieeexplore.ieee.org/xpls/abs_all.jsp?arnumber=1261943&tag=1.

[2] J. J. van de Beek, M. Sandell, and P. O. Borjesson, “ML estimation of time and frequency offset in OFDM systems,” *IEEE Transactions on Signal Processing*, vol. 45, no. 7, pp. 1800–1805, 1997. [Online]. Available: http://pure.ltu.se/portal/files/1612155/Article.pdf.