Hello, In the last months, we have developed an ofdm system using your gnuradio architecture as part of a research on dynamic resource allocation. Now we like to contribute parts of our code to the gnuradio project. We think that it will be useful to you since it partially employs more advanced techniques than in your example. If you like it, I suggest to add it as an alternative ofdm system.
We are using this system on USRPs at revision 4 with daughterboards RFX2400. It is tested, stable and has a good performance in BER and SNR. All hierarchical blocks are using the new style blocks. Here are some facts about the receiver and transmitter: - preamble based timing synchronization The modified Schmidl & Cox algorithm is used to position the sampling window at the first preamble. Only coarse timing synchronization is done. - preamble based frequency offset synchronization Before FFT, the frequency offset, divided into a fractional part and an integer part, will be estimated based on the S&C preamble (also used for timing sync) and a second preamble. Therefore both fine and coarse frequency offset estimation is performed. - preamble based channel estimation The second preamble, used for frequency offset estimation, will be exploited to give an estimate of the current channel state. The fine timing synchronization is absorbed into the channel transfer function (as phase rotation), i.e. compensated for at this place. - pilot tone based sampling frequency offset estimation We insert 8 pilot tones (or subcarriers) to ofdm data blocks. The sampling frequency offset (as phase rotation) and the residual carrier frequency offset is estimated and compensated for. Without SFO compensation, we observed a severe drop of SNIR using the USRPs, especially between two different charges we bought. The current algorithm acquires and tracks the SFO and RCFO within an ofdm frame. - flexible channel estimator The estimator block can easily use several ofdm blocks to estimate the channel transfer function. It will output both the inverse ctf to be fed to the equalizer and the ctf. It uses a simple zero-forcing criteria. The known blocks' positions within the ofdm frame can be freely chosen. For example, we used a midamble in our experiments to mitigate some special problems. - flexible mapper/demapper We created a new ofdm mapper/demapper that allows to assign different signal constellations on different subcarriers. This can be either static or dynamically changed. Please let me know if you want to have more details. If you accept our contribution, I will port the system to use your packet utils and to have it behave like your systems. Please note that the system has a modular design and uses simple gnuradio blocks if possible and useful. Additionally, I personally want to thank you for your great work at the gnuradio project. It is definitely one of the best SDR environments. Greetings, Dominik Auras Chair of Theoretical Information Technology RWTH Aachen University http://www.ti.rwth-aachen.de _______________________________________________ Discuss-gnuradio mailing list Discuss-gnuradio@gnu.org http://lists.gnu.org/mailman/listinfo/discuss-gnuradio