create new tag
, view all tags

OpenAirInterface Gnu/OCTAVE Interface

All code for the Gnu/OCTAVE interface is found in:


ExpressMIMO interface


The OCTAVE scripts are compiled automatically when you compile the lte-softmodem for the ExpressMIMO target using the build script.

In case your compiler complains about missing SSE instructions you need to add the corresponding flags directly in the scrip /usr/bin/mkoctfile

at line 83 it should look like this:

${XTRA_CXXFLAGS="-mieee-fp -msse2"}

You can also make the OCTAVE interface scripts using the old Makefile in $OPENAIR_TARGETS/ARCH/EXMIMO/USERSPACE/OCTAVE:

make oarf


This section explains basic information regarding the use of OpenAirInterface Hardware in Gnu/OCTAVE.

Before using any of the following commands, the kernel module and firmware needs to loaded (see ExpressMIMO).

The Gnu/OCTAVE Interface provides:

  • Configuration command: oarf_config_exmimo (see online help for parameters)
  • Signal acquisition: sig = oarf_get_frame(card)
  • Signal generation: oarf_send_frame(card,sig,nbits)
  • Stop signal generation: oarf_stop(card)
Example codes are given in the following scripts:
  • rx_spec.m: configures the cards, grabs a frame, plots spectrum
  • tx_sig.m: generates a signal and sends it to the card
-- FlorianKaltenberger - 22 Apr 2013

GPIB Interface

This section explains how to use the National Instruments GPIB-USB-B interface to remotely controll the Rhode&Schwarz signal generator.


  • install fxload (using Ubuntu synaptic or apt-get install)
  • download the Linux GPIB driver sourcecode from http://linux-gpib.sourceforge.net/. The tarball should also include the firmware for the National Instruments GPIB-USB-B hardware. For the GPIB-USB-HS no additional firmware is needed.
  • untar, move to /usr/local/share
  • ./configure, make, make install
  • export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/lib/
  • copy the configuration file gpib.conf attached below to /etc/
  • For GPIB-USB-B
    • add hotpulg rule to /etc/udev/rules t load firmware automatically when the GPIB-USB-B is connected (if this does not work out it can also be done manually)
    • if the hotplug does not work, the script launch_gpib.sh (attached below, also in repository) can be used to start up the GPIB-USB-B device
      • connect the GPIB-USB-B device
      • use lsusb to find out the bus and device number of the device
      • enter bus and device number in the launch_gpib.sh script
      • execute the script
    • just execute the last two lines of the script launch_gpib.sh:
chmod a+rw /dev/gpib0
  • To compile the GPIB OCTAVE interface type
make gpib_send.oct

Usage Example

gpib_card=0;      % first GPIB PCI card in the computer
gpib_device=28;   % this is configured in the signal generator Utilities->System->GPIB->Address menu

gpib_send(gpib_card,gpib_device,'*RST;*CLS');   % reset and configure the signal generator
gpib_send(gpib_card,gpib_device,'POW -70dBm');   % set output signal power
gpib_send(gpib_card,gpib_device,'FREQ 1.91860');   % set frequency
gpib_send(gpib_card,gpib_device,'OUTP:STAT ON'); %  activate output 

Automatic Signal Generator (SMBV) Configuration Over Sockets

It is possible to configure the R&S SMBV signal generator automatically from both downlink link-level simulation (dlsim) and system-level simulation (oaisim).

More precisely, the simulation generates a config-file containing the configuration commands, which then can be used to remotely configure the E-UTRA DOWNLINK of the SMBV.


To generate a config-file, both dlsim and oaisim have to be compiled with the option SMBV=1. To run the simulations, no further options are required.

However, if the SMBV is to be configured automatically after the simulation, the option -Wip-adress is provided, where -W0 sends the commands to the default IP adress.

In oaisim, it is possible to "record" up to 4 frames, i.e., in the file oaisim.c one can specify a maximum of 4 frames for which all control information (PDCCH) and data (PDSCH) will be used to configure the SMBV.



  1. "./dlsim -x1 -S7 -R1 -m8" will configure subframe 7, i.e., program a UE-specific DCI that allocates all 25 RBs for a PDSCH with MCS=8.
  2. "./dlsim -x1 -S5 -R1 -r6 -m18 -W192.168.1.23" will configure subframe 5, program a UE-specific DCI that allocates 6 RBs for a PDSCH with MCS=16 AND send the commands to the SMBV with IP adress
In both examples, when programming the SMBV a data list will be created containing the payload bits from the simulation. That is, the SMBV will encode the same payload as in the simulation.


  1. In oaisim.c, set the variable config_frames[4] = {2,9,10,11}" then run ./oaisim -x1 -AAWGN -s30 -n20 -W0". This will configure 4 frames in the SMBV corresponding to frames 2,9,10 and 11 in the simulation.
    These frames contain SI, Random-Access Response and the RRCConnectionSetup. This configuration can be used to test the connection procedure with the real-time hardware. For the connection setup to
    succeed the lte-softmodem has to be compiled with SMBV=1 as well. This ensures that both the PRACH preamble and the contention resolution message are fixed.

Known Limitations

  • PHICH is not recorded
  • Only for 4 frames are recorded, could be made more flexible by allowing two or more frames in the simulation to merge into one frame in the SMBV
  • Only Downlink configuration is available
  • After configuration, when switching from K55 mode "Auto" to "Manual" in order to add DCIs and then switch back, turns on all PDCCH, which are configured with P-RNTI to avoid accidental decoding by user
  • Parameters like Frequency, Level etc are left at their default values. Attention when connecting the SMBV to the hardware, the default output level of -30dBm might be to high
-- FlorianKaltenberger - 22 Apr 2013
Topic attachments
I Attachment Action Size Date Who Comment
Unknown file formatconf gpib.conf manage 2.5 K 12 Aug 2008 - 09:18 FlorianKaltenberger  
Unix shell scriptsh launch_gpib.sh manage 0.3 K 04 Aug 2008 - 08:43 FlorianKaltenberger  
Topic revision: r15 - 07 Oct 2015 - FlorianKaltenberger
Copyright 2004-2010 Institut Eurecom & all contributing authors.