Skip to content

📡 Using Software Designed Radio to transmit OFDM QPSK signals at 5 GHz

License

Notifications You must be signed in to change notification settings

MeowLucian/SDR_Matlab_OFDM_802.11a

Repository files navigation

SDR_Matlab_OFDM_802.11a

npm

This simple OFDM demo is based on IEEE 802.11a 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

Hardware_RX.m

OFDM_RX.m

  • Long_preamble_slot_Frequency.mat
  • setstate0.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=gNmMxtsWckw 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
  • 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 3000
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
  • Packet Detection (problem case & deselect the imperfect packet)
  • Coarse CFO Estimation & Compensation
  • Fine CFO Estimation & Compensation
  • Channel Estimation & Equalizer