Skip to content

MeowLucian/SDR_Matlab_OFDM_802.11n

Repository files navigation

SDR_Matlab_OFDM_802.11n

npm

This simple OFDM demo is based on IEEE 802.11n OFDM format for testing SDR hardware.

Using Software Designed Radio (SDR) to transmit OFDM signals at 5 GHz.

Transmitter and Receiver hardware : Zedboard (Xilinx Zynq®-7000) + AD9361 (Analog Device-FMCOMMS3)

Hardware

Software needed :

  • Matlab R2016a
  • support package for Xilinx Zynq-Based Radio (R2016a version)

Before executing this code, please follow this tutorial to install support package for Xilinx Zynq-Based Radio in Matlab.

Code Structure :

Please open multiple Matlab windows to run Hardware_TX.m and Hardware_RX.m respectively.

Hardware_TX.m

TX_signal.mat

OFDM_TX.m

  • data_Payload_1.mat
  • data_Payload_2.mat
  • oversamp.m
  • setstate0_TX.m

Hardware_RX.m

OFDM_RX.m

  • Long_preamble_slot_Frequency.mat
  • HTL_k_slot_Frequency.mat
  • setstate0_RX.m

RX_test

  • RX.mat
  • RX2.mat

GUI :

  • GUI_TX

Program GUI_TX

  • GUI_RX

Program GUI_RX

Video Demo : https://www.youtube.com/watch?v=CiHpd1Z8qK8 Program GUI gif

System Model :

OFDM Block Diagram

Code Function :

Implemented

  • Data Signal Mapping
  • Packet Detection
  • Coarse/Fine Frequency Offset Estimation & Compensation
  • Channel Estimation & One-Tap Equalizer
  • Data De-Mapping

Not implemented yet

  • AGC (Auto Gain Control)
  • Fine Symbol Timing Estimation
  • Convolutional Decoding
  • De-Interleaving
  • Frame check calculation (It assumes every packet is the same length)

TX System Model

  • Short Preamble
  • Long Preamble
  • HT-Long Preamble (Tone Interleaving)
  • Payload
  • TX signal

TX RX Hardware Parameters

Center Frequency 5 GHz
Baseband Sample Rate (Bandwidth) 20 MHz
Ts (Sampling time) 50 ns
Samples Per Frame 3500
PC Host IP address 192.168.3.1
TX IP address 192.168.3.2
RX IP address 192.168.3.3

The way to change Hardware IP / Mac address

Edit newip.sh file in SD card

# Flush existing config
ip addr flush dev eth0
ip link set dev eth0 down
# Set up new config
ip addr add 192.168.3.3/24 dev eth0
ip link set eth0 address 00:0A:35:00:01:23
ip route add default via 192.168.3.1
ip link set dev eth0 up

Then, use router DHCP hand setting mode to distribute network configuration parameters :

Router setting

RX System Model

  • "Delay and Correlate" algorithm for Packet Detection
  • Packet Detection (normal case) , Threshold=0.75
  • Coarse CFO Estimation & Compensation
  • Fine CFO Estimation & Compensation
  • MIMO Channel Estimation Diagram (Tone Interleaving)
  • Channel Estimation & Equalizer