wiki:WARPLab/Examples/MIMO_OFDM

Version 3 (modified by chunter, 9 years ago) (diff)

--

WARPLab 7 Example: MIMO OFDM

File: wl_example_mimo_ofdm_txrx.m

This WARPLab example implements a simple 2x2 MIMO OFDM transmitter and receiver. The script can run with or without WARP hardware in the loop and does not require any extra MATLAB toolboxes.

This example extends the SISO OFDM example. Users are encouraged to read and test that example before moving on to this MIMO variant.

Running the Example

The WARPLab OFDM example can be used in simulation only mode and in hardware-in-the-loop mode.

Simulation

To use the example in simulation mode set the top-level param USE_WARPLAB_TXRX = 0;, then run the m-script. When the script finishes 6 plots will show:

Simulation Plots

Transmitted waveform

Received waveform

Preamble correlation results
(peaks indicate locations of preamble LTS)

Channel estimate per subcarrier
(I/Q components and complex magnitude)

Phase error estimates
(per OFDM symbol)

Tx and Rx constellations

By default the simulation script applies AWGN with an arbitrary fixed SNR. You can change the simulated propagation characteristics in the m-code. Search for AWGN and apply whatever Tx->Rx degradations you like.

For example to simulate a perfect (noiseless) link, set the noise power to zero:

rx_vec_air = tx_vec_air + 0*complex(randn(1,length(tx_vec_air)), randn(1,length(tx_vec_air)));

The script also prints statistics about the experiment to the MATLAB command prompt:

Results:
Num Bytes:  4560
Sym Errors:  0 (of 9120 total symbols)
Bit Errors:  0 (of 36480 total bits)
EVM:        3.779%
LTS CFO Est: -0.07 kHz

Hardware in the Loop

Requirements: 2 WARP v3 kits, 1 antenna each.

To use the example with WARP hardware you will need two WARP nodes each running WARPLab 7.3 (or later) and a WARPLab environment setup on your PC. Refer to the WARPLab Quick Start if you have not yet setup WARPLab.

To target WARP hardware set the top-level param USE_WARPLAB_TXRX = 1;, then run the m-script. When the script finishes 6 plots will show:

Hardware in the Loop Plots

Transmitted waveform

Received waveform

Preamble correlation results
(peaks indicate locations of preamble LTS)

Channel estimate per subcarrier
(I/Q components and complex magnitude)

Phase error estimates
(per OFDM symbol)

Tx and Rx constellations

The script also prints statistics about the experiment to the MATLAB command prompt:

Results:
Num Bytes:   12000
Sym Errors:  0 (of 24000 total symbols)
Bit Errors:  0 (of 96000 total bits)
EVM:         6.757%
LTS CFO Est: -1.38 kHz

Limitations

This example is intended as a starting point for researchers wishing to use WARPLab to prototype a wireless communications link. This examples does not implement some some blocks common in deployed OFDM systems, such as scrambling, interleaving and error correcting coding. For an example of a real-time OFDM implementation that implements all of these subsystems, please see the PHY in the 802.11 Reference Design.

Attachments (13)

Download all attachments as: .zip