# Tutorial¶

This webpage introduces a detailed tutorial for the imtoolkit command and APIs. The imtoolkit command is a stand-alone toolkit for the spatial modulation and subcarrier-index modulation schemes, which supports Windows, Mac, and Linux. By contrast, the imtoolkit APIs provide various classes and functions for the general MIMO/OFDM scenarios.

Before using imtoolkit, one can activate the CuPy-aided GPGPU acceleration by setting an environment variable USECUPY=1 as follows.

> export USECUPY=1


In case you would like to use the CPU backend, NumPy, please unset the environment variable.

> unset USECUPY


## API examples for the imtoolkit package

• CoherentMIMO-IdealRayleigh-BER.py

• This example compares the BER performance of the coherent Bell laboratories layered space-time (BLAST) and spatial modulation (SM) schemes.

• DifferentialMIMO-IdealRayleigh-BER.py

• This example compares the BER performance of the differential BPSK, differential orthogonal space-time block code (DOSTBC), diagonal unitary code (DUC), algebraic differential spatial modulation (ADSM), and differential threaded algebraic space-time (DTAST) schemes.