The software-radio helps to make it possible to implement a signal-processing algorithm which works on samples that are transmitted and received over the air.
Because the debugging is an important part of the implementation of a signal-processing algorithm, the software-radio can be run in either simulation mode or in real-time mode. Fig. 3.1 shows the software-radio in both modes.
The Graphical User Interface (GUI) is the only visible part of the software-radio and allows the user to visualize the state of the different Modules as well as to change their configuration. The Channel is a general interface that represents either a Simulation or has access to the Hardware.
In simulation mode no hardware is used, and the whole transmission is simulated in software, including Gaussian noise and multi-path fading. There are no real-time constraints which makes it very easy to debug the algorithm to be implemented.
Of course, if you don't have access to the right hardware, this is the only possibility to use the software-radio. However, the channel-server which links multiple channels together, is written to simulate a real channel with high enough accuracy to test and verify signal-processing algorithms.
In real-time mode only the Graphical User Interface runs on Linux, while the rest of the software-radio runs in Real-Time mode, made available through the use of RTLinux. This is necessary, as the transmission and reception of the samples has to meet time-constraints that are not possible to meet in simple Linux.
As of spring 2004, there exists two hardware-platform that allow the software-radio to do actual transception of samples over the air. The older one, produced by STMicroelectronics, offers a simple SISO-interface, that is, one antenna at each end of the transmission. The newer interface, produced by ICS-Ltd, allows the software-radio to take advantage of a MIMO-channel, with up to four antennas at each end of a transmission. A MIMO-channel is defined as a channel that has more than one transmitting antenna and more than one receiving antenna. These channels have very interesting properties, mainly the possibility to multiply the available channel-capacity by a function of the available antennas.
The software-radio is built to have a two-way communication. So, if you have more than one instance of a software-radio running, they can communicate together.
If the software-radio is run in real-time mode, only one instance of a software-radio can run on a computer. So if you want to communicate in real-time, you need at least two computers.
In simulation mode, the number of instances per computer is only limited by its calculation-power (and the patience of the user ;). A Channel-Server connects all channels of all instances of the software-radio together and makes it possible that everybody can listen to what the other radios are sending.
Linus Gasser 2004-04-14