Week 9 – OFDM finale

In week 9 of GSoC I prototyped a new OFDM algorithm since the old one had too high CPU usage. I did some tests and managed to implement a C++ version this week.

OFDM Estimator

The new block uses the algorithm in [1] (I won’t give it a name today) to estimate the OFDM parameters

  • FFT length
  • CP length
  • Symbol time
  • Subcarrier spacing

The new algorithm is The new algorithm is much faster than the old one, but still has some disadvantages in recognizion much faster than the old one, but still has some trouble with correct estimation in bad channels or too short cyclic prefixes. Still the prototype performed quite nicely and I implemented a C++ version of the algorithm, that is now part of the gr-inspector toolbox.

Since Martin pointed out that other users might have interest in the old algorithm, that has better recognizion capabilities, I kept this implementation also in the repo, but without GRC file or unit test. Feel free to play around/take over here.

Message protocol

Output of this block is now a pmt message as a tuple of tuples. In the first tuple, the signal number gets mentioned. In the following tuples, estimation results with description and value are included. This way I want to keep the GUI protocol generic and easy extendable since it will just print the contents of the received messages. Example of my OFDM block output:
{{Signal 0} {Subc. space 125} {Sym time 0.008} {Subcarriers 256} {CP len 32}}

I agreed with Christopher Richardson on that protocol for now, so he will also develop his blocks according to this scheme.


  • Sreeraj reported a freezing bug with the signal separator. While I try to fix it, any information about this or any other odd behaviour is welcome!
  • Merge dev into master, as soon as this bug is fixed along with a bit code cleanup.
  • Start next week with frequency and time synchronization


[1] S. Koslowski, “Implementierung eines OFDM-Merkmalsklassifikators in einer SCA-Umgebung,” Diploma Thesis, Karlsruhe Institute of Technology, 2011.