| 1 | [[TracNav(WARPLab/TOC)]] |
| 2 | = WARPLab 7 Example: SISO OFDM = |
| 3 | File: [source:/ResearchApps/PHY/WARPLAB/WARPLab7/M_Code_Examples/wl_example_siso_ofdm_txrx.m wl_example_siso_ofdm_txrx.m] |
| 4 | |
| 5 | This WARPLab example implements a SISO OFDM transmitter and receiver. |
| 6 | |
| 7 | == Transmitter == |
| 8 | [[Image(wl_ofdm_blkDiag_Tx.png, nolink)]] |
| 9 | |
| 10 | The OFDM transmitter code implements the following functions: |
| 11 | * Random data generation |
| 12 | * Modulation of random data to complex constellation symbols |
| 13 | * Mapping of symbols to data-bearing subcarriers |
| 14 | * Insertion of pilot tones in pilot subcarriers |
| 15 | * Inverse fast Fourier transform (IFFT) |
| 16 | * Cyclic prefix insertion |
| 17 | * Preamble construction and insertion |
| 18 | * Interpolation by 2x |
| 19 | |
| 20 | |
| 21 | == Receiver == |
| 22 | [[Image(wl_ofdm_blkDiag_Rx.png, nolink)]] |
| 23 | |
| 24 | The OFDM receiver code implements the following functions: |
| 25 | * LTS correlation for synchronization |
| 26 | * CFO estimation and correcting use time-domain estimation from LTS |
| 27 | * Cyclic prefix removal |
| 28 | * Fast Fourier transform (FFT) |
| 29 | * Channel estimation from frequency-domain LTS |
| 30 | * Residual phase error estimation from frequency-domain pilot tones |
| 31 | * Equalization of data-bearing subcarriers using channel estimates and phase error estimates |
| 32 | * Demodulation of complex symbols to data values |
| 33 | |
| 34 | == Running the Example == |
| 35 | The WARPLab OFDM example can be used in simulation only mode and in hardware-in-the-loop mode. |
| 36 | |
| 37 | === Simulation === |
| 38 | 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: |
| 39 | |
| 40 | || [[Image(wl_ofdm_plots_sim_txIQ.png,nolink)]][[BR]]Transmitted waveform || [[Image(wl_ofdm_plots_sim_rxIQ.png,nolink)]] || [[Image(wl_ofdm_plots_sim_ltsCorr.png,nolink)]] || |
| 41 | || [[Image(wl_ofdm_plots_sim_chanEst.png,nolink)]] || [[Image(wl_ofdm_plots_sim_phaseError.png,nolink)]] || [[Image(wl_ofdm_plots_sim_constellations.png,nolink)]] |
| 42 | |
| 43 | == Limitations == |
| 44 | This example is intended as a staring 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 [wiki:802.11 802.11 Reference Design]. |