Title: Software Radio for Smart Wireless Systems

The
design and implementation of radio transceivers for certain classes of
applications is increasingly shifting from the hardware to the software
domain. The “softwarization” of radio systems is enabled by the
increased speed and reduced cost of general-purpose processors, and
allows developing systems that are more flexible, adaptable and
evolvable than traditional hardware-based systems. It also facilitates
experimentation and over-the-air testing of novel wireless communication
techniques and systems for communication and/or sensing.

The
high-level goal of the course is to enable students to develop radio
transceiver systems for advanced wireless applications entirely in
software. The course is designed specifically for Computer Science (CS)
students, it is entirely self-consistent and does not require previous
knowledge of Communication theory. 


The course consists of three parts.

Part
I – Fundamentals. The initial part of the course will provide a
thorough review of basic concepts that are the foundation of
communication theory and signal processing: baseband vs. pass-band
signals, complex representation of pass-band signal, representation and
reasoning in the frequency and time/frequency domain,
sampling/decimation, aliasing, definition of basic functions like
modulation, coding, etc. This initial part covers topics that are
normally thought in basic communication courses, but they are addressed
here with a different cut, more pragmatic and oriented to (software)
implementation. The use of mathematical formalism is limited to the
minimum that is necessary to facilitate the comprehension of basic
signal manipulations and the reasoning in frequency and time/frequency
domains. Furthermore, mathematical notions and signal processing
concepts are readily “interpreted” and illustrated with reference to
software (not hardware) implementation.

Part II - Functions and
components. The second part of the system provides a high-level view of
various components and functions of a radio transceiver system that are
traditionally accounted to the PHY/MAC/LLC layers in the reference OSI
model. Differently from other courses on signal processing, the goal
here is not to provide an in-depth treatment of individual components,
but rather provide a synthetic view of what these modules are needed
for, and what are the key properties of the most common state-of-art
solutions. The perspective taken in the course is that the students will
not have to implement each component individually from scratch:
instead, they will select and use existing implementations, possibly
with some level of optimization (e.g., parameter tuning) and/or
customization of few selected module, in order to build a whole
transmitter/receiver system.  To this end, they need to have a
high-level understanding of (i) whether a specific function is needed at
all for the particular application at hand, and if so, (ii) how to
select the most appropriate implementation (in terms of various
performance vs. cost tradeoffs).

Part IIII – Advanced wireless
systems and applications. The final part of the course addresses the
system level: how functions and components can be combined to implement a
specific application. At this stage of the course it is important to
refer to concrete examples of applications, or classes thereof. Instead
of established radio standards, the course will focus on advanced
applications that are currently at the forefront of the research
activities in the wireless research arena, namely wireless localization
and physical-layer security. Selected case-study from the recent
research literature will be presented. Collectively, these exemplary
applications will be mind-opening for the students and give them a
different perspective on the current capabilities and further potential
of modern wireless systems.

During the laboratory sessions the
students will learn to program radio protocol stack in the open-source
platform GNU-Radio (for an overview see
en.wikipedia.org/wiki/GNU_Radio). Basic implementations of protocol
stack for various radio standards are already available in GNU-Radio
(e.g. FM Stereo, WiFi, IEEE 802.15.4, RFID, ADS-B, and many others).
During the laboratory course, the implementation of 2-3 selected radio
standards will be studied and used to quickly acquire familiarity and
hands-on experience with (the processing) of real-world radio signals.
Programming languages will be C/C++  and Python.