Git Product home page Git Product logo

sdr_matlab_ofdm_802.11a's Introduction

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

sdr_matlab_ofdm_802.11a's People

Contributors

meowlucian avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

sdr_matlab_ofdm_802.11a's Issues

Parameter Settings in file "OFDM_RX.m"

Recently, I am reading the core code about the frame detection described in your repository called SDR_Matlab_OFDM_802.11a_2.4GHz. But some parameters setting confuse me. To be exact, i do not understand the intention of parameter Length_over_Threshold and why the value of Length_over_Threshold should be 230.

For another, the nexe code block confuses me.

for x=1:length(Packet_Front_idx)-1
    if M_n(Packet_Front_idx(x)+Length_over_Threshold)>Threshold;
        idx=Packet_Front_idx(x)+L+1; 
    end 
end 

If you are free, I would be more than thankful to receive your answers to my questions.

How to measure Doppler Frequency not Carrier Frequency Offset(CFO)?

I could follow the contents as given and run the code with the zedboard. I need to measure Doppler Frequency or the propagation time from tx to rx. Can you give some tips to measure about it?

By the way, the Doppler frequency is related to CFO as estimated on the code, but the size of it is quite big around over 30,000Hz. Should I check the FFT of the received signal?

some sentences in the code block

Threshold_graph=Threshold*ones(1,length(M_n));
Threshold_graph(idx-L-1)=1.15;

I face some problems in understanding the intention of these two sentences. If you are free, would you please give me some guidance? thank you ahead of time.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.