This project implements a complete MISO 2×1 OFDM baseband stack in MATLAB, targeting real-time over-the-air transmission on NI USRP E310 (TX) and USRP B200 (RX) platforms.
The system implements Alamouti Space-Frequency Block Coding (SFBC) with 802.11a-compliant preambles, Schmidl–Cox packet detection, fractional CFO correction, L-LTF fine timing, and pilot-based per-symbol channel tracking — all running over real hardware.
| Parameter | Value |
|---|---|
| FFT Size | 64 |
| Cyclic Prefix | 16 samples (25%) |
| Subcarrier Plan | 48 data + 4 pilots + 1 DC + 11 guard (802.11a) |
| Modulation | QPSK — Gray-coded |
| FEC | Rate-1/2 Convolutional (K=7, polynomials 133/171), Viterbi decoding |
| Interleaving | Stride-7 bit interleaver |
| Preamble | L-STF (160 samples, TX1 only) + L-LTF (160 samples, frequency-orthogonal) |
| Center Frequency | 400 MHz |
| Sample Rate | 1 MHz |
| TX Hardware | NI USRP E310 (2 channels) |
| RX Hardware | USRP B200 |
miso/
├── config.m — Single source of truth for all system parameters
├── miso_tx_usrp.m — Transmitter: FEC → SFBC → OFDM → USRP E310
├── reciever_record.m — IQ capture from USRP B200
│
├── packet_detect.m — Schmidl–Cox coarse packet detection
├── CFO_sync.m — Fractional CFO estimation and correction
├── exact_start.m — L-LTF matched-filter fine timing
├── miso_rx.m — Channel estimation + Alamouti combining + Viterbi
│
├── run_from_usrp.m — Full RX pipeline: live B200 capture → decode
├── run_from_file.m — Full RX pipeline: pre-recorded .mat → decode
│
├── raw_bits.mat — Reference bit sequence (TX/RX ground truth)
└── LLTF.mat — L-LTF time-domain reference sequence
The miso/ module runs a four-stage receiver chain after capture:
miso_tx_usrp.m → transmits continuously over USRP E310 (2 TX)
↓ (over the air)
reciever_record.m → captures IQ samples from USRP B200
packet_detect.m → Schmidl–Cox metric, detects all packet boundaries
↓
CFO_sync.m → L-STF autocorrelation → fractional CFO correction
↓
exact_start.m → L-LTF matched filter → fine LSTF/LLTF timing
↓
miso_rx.m → L-LTF channel estimation (TX1/TX2 frequency-orthogonal)
pilot-based per-symbol tracking
Alamouti SFBC MRC combining
QPSK demod → deinterleave → Viterbi → BER
To run the full pipeline:
% Option 1 — live capture from B200 (transmitter must be running)
run('miso/run_from_usrp.m')
% Option 2 — process a pre-recorded capture
run('miso/run_from_file.m') % opens file picker, or set capture_file at top- MATLAB R2023b or later
- Communications Toolbox
- Signal Processing Toolbox
- Communications Toolbox Support Package for USRP Radio (hardware only)
- Alamouti SFBC transmitter (USRP E310, 2 channels)
- IQ capture (USRP B200)
- Schmidl–Cox packet detection (multi-packet)
- Fractional CFO estimation and correction
- L-LTF fine timing synchronization
- Frequency-orthogonal channel estimation (TX1/TX2 separation)
- Pilot-based per-symbol channel tracking
- Alamouti SFBC combining + Viterbi decoding
- End-to-end automated pipeline (run_from_usrp / run_from_file)
- Over-the-air BER measurement and validation
- STO correction
[1] S. Cho, J. Kim, W. Y. Yang, and C. G. Kang, MIMO-OFDM Wireless Communications with MATLAB. John Wiley & Sons, 2010.
[2] A. M. Wyglinski, R. Getz, T. Collins, and D. Pu, Software-Defined Radio for Engineers. Artech House, 2018.
[3] IEEE, "IEEE Std 802.11a/D7.0-1999, Part 11: Wireless LAN Medium Access Control (MAC) and Physical Layer (PHY) Specifications: High Speed Physical Layer in the 5 GHz Band," IEEE Standard, Institute of Electrical and Electronics Engineers, 1999.
[4] M. A. Youssef and A. Mouhsen, "Performance improvement for vehicular communications using Alamouti scheme with high mobility," Journal of Telecommunications and Information Technology, vol. 81, pp. 47–56, Sep. 2020.
[5] S. Alamouti, "A simple transmit diversity technique for wireless communications," IEEE Journal on Selected Areas in Communications, vol. 16, no. 8, pp. 1451–1458, 1998.
[6] T. Schmidl and D. Cox, "Robust frequency and timing synchronization for OFDM," IEEE Transactions on Communications, vol. 45, no. 12, pp. 1613–1621, 1997.
![]() Javad Ibrahimli |
![]() Kerem Karadeniz |





