Skip to content

Subhramoy/DistributedBeamforming-Receiver

Repository files navigation

Beamforming Receiver: Execute the below script to run the transmitter on a host PC connected to SDR:

airbeam_test_nogui.py

Important lines to update/edit:

Line #30: self.data_files_path = data_files_path = "/home/genesys/workarea-gnuradio/gnuradio/gr-beamforming/examples/data"

Change the data file path to the proper location where this folder kept in the host PC. Here it is stored at the /home/genesys/workarea-gnuradio/gnuradio location

Line #36: ",".join(("serial=318D28D", "")),

Assign the correct serial number of the usrp radio connected to the host machine running this code execute <uhd_find_devices> in terminal to get the correct serial numbering

Line #42: self.uhd_usrp_source_0.set_clock_source('external', 0)

Make sure the clock source is set to external in order for the SDRs to get 10MHz and PPS reference from Octoclock or RFClock

Line #45: self.uhd_usrp_source_0.set_center_freq(uhd.tune_request(925e6,1e6), 0)

The receive center frequency should match the transmitter frequency. Here it is kept at 925MHz in order to match with the default transmitter frequency. Users can use any frequency of their choosing, within the range of the SDR.

Line #56: self.beamforming_correlate_and_tag_py_0 = beamforming.correlate_and_tag_py(trainingSignal_size, trainingSignal_size + 400 + 256* 64 + 100, 1, data_files_path + "/trainingSig", 1, 0)

Update the number of Transmitters (kept in bold) in the above line. This line calls the correlate_and_tag_py.py script where these inputs are used in line #50: def init(self, seq_len, frame_len, num_Tx, file_path, cor_method, feedback_type)

Line#102 dst_dir = '/home/genesys/KRI_csi_data/flight_pattern'

Update the destination directory for storing the CSI and extracted payload

The corresponding .grc file for the beamforming receiver python script is: examples/airbeam_receiver_test.grc

this file can be opened with gnuradio-companion.

Also, check out my Distributed beamforming Transmitter repository for setting up the transmitter for this beamforming experiment:
https://github.com/Subhramoy/DistributedBeamforming-Transmitter


# Paper
If you use this code in your research, please cite our AirBeam and SABRE papers:

```
@INPROCEEDINGS{9077393,
  author={Mohanti, Subhramoy and Bocanegra, Carlos and Meyer, Jason and Secinti, Gokhan and Diddi, Mithun and Singh, Hanumant and Chowdhury, Kaushik},
  booktitle={2019 IEEE 16th International Conference on Mobile Ad Hoc and Sensor Systems (MASS)}, 
  title={AirBeam: Experimental Demonstration of Distributed Beamforming by a Swarm of UAVs}, 
  year={2019},
  volume={},
  number={},
  pages={162-170},
  keywords={Unmanned Aerial Vehicle;Distributed beamforming;Software Defined Radio;FPGA},
  doi={10.1109/MASS.2019.00028}}
```

```
@ARTICLE{9738441,
  author={Mohanti, Subhramoy and Bocanegra, Carlos and Sanchez, Sara Garcia and Alemdar, Kubra and Chowdhury, Kaushik Roy},
  journal={IEEE Transactions on Wireless Communications}, 
  title={SABRE: Swarm-Based Aerial Beamforming Radios: Experimentation and Emulation}, 
  year={2022},
  volume={21},
  number={9},
  pages={7460-7475},
  keywords={Array signal processing;Receivers;Autonomous aerial vehicles;Synchronization;Channel estimation;Signal to noise ratio;Radio transmitters;Unamanned aerial vehicle;distributed aerial beamforming;coordinated beamforming;resource allocation;IEEE 80211be;WiFi 7;5G;multi-transmitter coordination},
  doi={10.1109/TWC.2022.3158866}}
```

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors