Giter Site home page Giter Site logo

ryaneguerra / wurc_80211ac_mubf Goto Github PK

View Code? Open in Web Editor NEW
7.0 4.0 2.0 11.97 MB

Library and examples to generate, transmit, and decode IEEE 802.11ac standard packets of arbitrary dimension using Mango Communications WARPv3 SDR or Skylark Wireless WURC SDR.

License: Apache License 2.0

MATLAB 98.91% Shell 1.09%

wurc_80211ac_mubf's Introduction

wurc_80211ac_mubf

Library and examples to generate, transmit, and decode IEEE 802.11ac and IEEE 802.11af standard Multi-User MIMO (MU-MIMO) packets of arbitrary dimension and channel bandwidth using the WARPv3 software-defined radio framework from Mango Communications using MATLAB scripts. Optionally, a software switch will allow you to perform the same experiments using a WARPv3 kit and a WURC kit from Skylark Wireless to transmit 802.11af MU-MIMO packets over UHF channels.

This code will form 802.11ac sounding packets, transmit them over the air to a number of receivers to estimate the channel, then generate a multi-user transmission of arbitrary size and channel bandwidth using zero-forcing beamforming to a set of those receivers. The data is decoded and reception metrics are provided as output.

This framework can be used in a real environment to test actual MUBF performance under various conditions. It also has convenient spots to insert your own beamforming user selection or beamforming algorithms, provided to you stick to the 802.11ac/af frame format. I'm releasing this open-source in the hopes that it will assist anyone looking to learn about wireless systems, beamforming, or software-defined radios.

Known Bugs

  1. 4x3 transmissions have a bug in the beamforming calculation logic somewhere. I recommend sticking to 4x2 or 4x4 transmissions.

How do I start?

I recommend you start at the top level debug_* scripts that provide known working implementations of the library that you can use as a starting point.

You should be able to set the variable USE_OTA_HARDWARE=0 to avoid initializing and transmitting over a physical radio channel with hardware in the loop. Instead, packets are transmitted through a virtual channel, but everything from encoding to decoding is performed exactly the same. This would be a great way to set up simulations or experiments without actual radio hardware or under simulated channel conditions.

This will also make sure that you have you MATLAB environment set up properly. Adding hardware in the loop requires advanced knowledge to configure and set up complex software defined radiom systems. At this time, I am NOT able to assist you with that task.

WARPLab Versions

Images of the compatible WARPLab image and SD card flashing scripts are available within the /warp_configs directory. This library uses WARPLab version 7.4.0. No other versions have been tested.

History

I developed this code while working on my Ph.D. thesis. I used it to test hardware systems and wireless protocols that were being developed at that time and to run small tests and experiments in the lab. It was also used by other researchers with some customizations that have not yet been published. Quite frankly, I was often surprised at how well it works and I hope others can learn something from it.

License

This all is released under the Apache-2.0 license. Best of luck, everyone! Go nuts!

wurc_80211ac_mubf's People

Contributors

ryaneguerra avatar

Stargazers

 avatar  avatar  avatar  avatar Timothy avatar justiceli avatar Mohamed Ali avatar

Watchers

James Cloos avatar justiceli avatar  avatar Mohamed Ali avatar

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.