OPEN SOURCE TRANSPARENCY FOR OFDM EXPERIMENTATION Thomas W. Rondeau (CTVR, Trinity College Dublin, Dublin, Ireland, trondeau@vt.edu), Matt Ettus (Ettus Research, LLC., matt@ettus.com), Robert W. McGwier (CCR, IDA, rwmcgwier@gmail.com) ABSTRACT Many developments in communications systems begin as a theoretical model and then analyzed in a simulation environment such as Matlab. Often, these simulations do not provide the complexity of a real implementation where one must deal with real circuitry and channels. The open source GNU Radio platform offers an easy transition between the theoretical models and an affordable solution to test the models under real-world conditions. We present the concept of GNU Radio for this purpose here by discussing and analyzing a flexible OFDM transceiver. This design offers research and development of different methods of OFDM symbol transmission, reception, and synchronization. These concepts are currently being applied to develop waveforms such as WiMAX. 1. INTRODUCTION GNU Radio is a free and open source software defined radio (SDR) project [1]. The purpose of this paper is to show how GNU Radio is useful in experimenting with and developing SDR techniques. Many problems faced in communication system design have multiple solutions while other new problems have solutions that are still in experimental stages of development. Some of these solutions have been developed and shown only mathematically and in simple simulations that ignore or miss certain problems experienced when used in real systems. Other times, different solutions to the same problems can have trade-offs in power cost and performance. In all of these cases, an open, transparent system for developing, testing, and comparing these systems can help advance our understanding. GNU Radio is a solution to these problems. As an open source project, GNU Radio offers transparency to analyze, design, and distribute concepts in communications. We have developed a number of communications and signal processing blocks that can be used to build and test systems to analyze performance. Furthermore, GNU Radio runs in real-time and on-line and can be interfaced with RF hardware, which means we can go from experimentation to deployment in the same system. In order to illustrate how GNU Radio offers these services to SDR development, we will discuss the implementation of an OFDM transceiver system. In particular, we have developed the transmit and receive chains in a modular way that enables discrete replacement of components so that different modulators, demodulators, and receivers can be developed and tested. We will explain the architecture and describe how to replace components in order to build new functionality such as modulator subcarrier mapping and timing and frequency synchronization methods. We have implemented three different synchronization blocks and will provide some results of their use to describe how to analyze and compare them. This paper focuses on the implementation in GNU Radio, and so we will not present any more than the necessary description of OFDM and instead point to the relevant texts and papers. For a general introduction to OFDM, see [2]. To make the software and the information in this paper as useful as possible, all of the code, commands, and examples are distributed as part of the standard GNU Radio software package. The code is split between implementation in C++ and Python. The OFDM blocks written in C++ can be found in gnuradio- core/src/lib/general and are prefixed as gr_ofdm_. The Python blocks are hierarchical structures containing other hierarchical blocks and the C++ blocks and are found in gnuradio-core/src/python/ gnuradio/blks2impl. 2. TRANSMIT AND RECEIVE CHAINS 2.1. Transmit Chain In OFDM, the data is mostly operated on in the frequency domain. Baseband data is manipulated using standard modulation techniques as a complex number and mapped to a vector which is then converted to the time domain using an IFFT. The vector is made up of N FFT elements of which N OC elements are used. When this is put through an IFFT of length N FFT , the elements represent orthogonal subcarriers of which N OC carry information. In general, these N OC subcarriers occupy the middle subcarriers, leaving about (N FFT -N OC )/2 subcarriers unused on either side (ignoring a ±1 if N FFT is odd) as guard bands. The DC subcarrier is often removed to avoid problems caused by DC offsets. Proceedings of the SDR ’08 Technical Conference and product Exposition, Copyright © 2008 SDR Forum, Inc. All Rights Reserved