Hi! I’m a 2nd year MS student in the CORES Lab. My areas of research interest focus on wireless systems and networking, as well as mobile and ubiquitous computing.
dingzhao99[at]ucla[dot]edu
]]>Hello!
My name is Nicholas Borda, and I am a first year MS student interested in wireless communications and signal processing. My research is focused on millimeter wave (mmW) communication systems, specifically with a Reconfigurable Intelligent Surface (RIS).
MS, Electrical and Computer Engineering, UCLA, 2023 – Present
BS, Electrical Engineering, University of Massachusetts Amherst, 2019 – 2023
Cum Laude (University of Massachusetts Amherst)
Departmental Honors (University of Massachusetts Amherst)
MIT Lincoln Laboratory
Wireless Systems Laboratory (University of Massachusetts Amherst)
Microwave Remote Sensing Laboratory (University of Massachusetts Amherst)
Tesla, Inc.
May 2023 – August 2023
May 2022 – May 2023
June 2020 – May 2022
May 2021 – August 2021
nborda[at]ucla[dot]edu
]]>Hi! I’m a 2nd year PhD student in the CORES Lab. My research interests focus on machine learning/deep learning applications in wireless communications.
zhaotianyi[at]ucla[dot]edu
]]>Hi! I’m a third year PhD student in the CORES Lab. My research interests include mmWave beamforming, MU-MIMO downlink precoder design, MIMO radar localization, and machine learning applications in wireless communications.
Hello, I am a second-year PhD student at the CORES Lab.
My research interests include applications of True Time Delay (TTD) phased arrays for wireless communications, beamforming and beamtraining for near-field channels and near-field localization and tracking.
Journal Papers:
Conference Papers:
Google Scholar [Link]
UCLA
UIUC
LinkedIn [Link]
ipehlivan[at]ucla[dot]edu
]]>v3 – October 13, 2021 (Released January 26, 2022)
[1] B. W. Domae, C. Chen, D. Cabric, “Energy Efficiency Tradeoffs for Sub-THz Multi-User MIMO Base Station Receivers,” to appear at the 55th IEEE International Symposium on Circuits and Systems (ISCAS 2022).
]]>If you use the WiSig datasets/codes or any (modified) part of them, please cite:
[1] S. Hanna, S. Karunaratne, and D. Cabric, “WiSig: A Large-Scale WiFi Signal Dataset for Receiver and Channel Agnostic RF Fingerprinting,” IEEE Access, vol. 10, pp. 22808–22818, 2022, doi: 10.1109/ACCESS.2022.3154790.
@article{hanna_wisig_2022,
title={WiSig: A Large-Scale WiFi Signal Dataset for Receiver and Channel Agnostic RF Fingerprinting}, volume={10}, ISSN={2169-3536},
DOI={10.1109/ACCESS.2022.3154790}, journal={IEEE Access}, author={Hanna, Samer and Karunaratne, Samurdhi and Cabric, Danijela},
year={2022}, pages={22808–22818} }
2. The Orbit testbed paper:
D. Raychaudhuri, I. Seskar, M. Ott, S. Ganu, K. Ramachandran,H. Kremo, R. Siracusa, H. Liu, and M. Singh, “Overview of the ORBITradio grid testbed for evaluation of next-generation wireless networkprotocols,” inWireless Communications and Networking Conference,2005 IEEE, vol. 3, pp. 1664–1669, IEEE, 2005.
@inproceedings{orbit_2005, title = {Overview of the {{ORBIT}} Radio Grid Testbed for Evaluation of Next-Generation Wireless Network Protocols}, booktitle = {Wireless {{Communications}} and {{Networking Conference}}, 2005 {{IEEE}}}, author = {Raychaudhuri, Dipankar and Seskar, Ivan and Ott, Max and Ganu, Sachin and Ramachandran, Kishore and Kremo, Haris and Siracusa, Robert and Liu, Hang and Singh, Manpreet}, year = {2005}, volume = {3}, pages = {1664–1669}, publisher = {{IEEE}} }
The WiSig dataset is licensed under a Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International License.
]]>The Dual Path Network (DPN) is a neural network architecture for blind symbol decoding and modulation classification. This repository includes the code that accompanies the paper [1]. It includes the code for DPN and the output post processing along with the code for data generation.
The training data was generated in realtime during training as described in [1]. The code for the generator is in this repo. A google drive link to the validation and test sets is available. The weights of the trained network used in the paper are also provided.
There is a known bug in the SNR values and a workaround is provided (See the IMPORTANT WARNING).
[1] S. Hanna, C. Dick, and D. Cabric, “Signal Processing Based Deep Learning for Blind Symbol Decoding and Modulation Classification,” arXiv:2106.10543 [cs, eess], Jun. 2021, Accessed: Jun. 21, 2021. [Online]. Available: http://arxiv.org/abs/2106.10543
Note that these requirements are to replicate the authors’ setup. The code might work with other versions of the packages.
If no GPU is available the GuDNNGRU layer can be replaced by a regular GRU in frm_nn_zoo_01.py (However, you might need some workaround to load the weights).
A smaller version of the validation and test dataset can be generated using dataset_creator.ipynb
Also note that data generation is run using multiprocessing with 10 workers. If you have fewer than 10 cores in your setup you might want to reduce this number in the fit_generator function in 001_d1_train.ipynb
There is a known bug in the code in the signal generation. A square root is missing in the generation of a noise. As a consequence, the signals generated have twice the required SNR in dB.
For example, when the input value of the SNR in the generator is 10dB, the true SNR of the generated signal is 20dB.
The workaround is to provide the input SNR value as half of the required value. For example, if you want a signal with a 10dB SNR, provide an input value of 5dB.
The bug is in line 30 in frm_dataset_creator.py. However, the datasets and results were generated before the bug was discovered and it was not fixed for backward compatibility.
001_d1_train.ipynb: DPN training
003_d1_demod_dsp.ipynb: Decode data using genie algorithm from [1]
004_d1_baseline_nets.ipynb: Train the SGRU network, which is used as a baseline
005_d1_demod_dpn.ipynb: Demodulate the signals using DPN output and store modulation classification (MC) output
006_d1_compare_demod.ipynb: Compare demodulation results between Genie and DPN
008_d1_compare_params.ipynb: Evaluate frequency and timing offsets
009_d1_pred_baseline.ipynb: Generate MC predictions for GRU
010_d1_mod_class.ipynb: Compare MC results for DPN and GRU
013_d1_demod_sample.ipynb: Plot a signal from the dataset
020_d1_confusion_matrix.ipynb: Plot the confusion matrix
dataset_creator.ipynb: Code to generate a dataset
frm_nn_zoo_01.py: The code for DPN
frm_dataset_creator.py: Code for data generation
frm_dataset_creator2.py: Optimized code for data generation
frm_modulations.py: Generating signals from different modulations
frm_modulations_fast.py: Optimized code for modulations
frm_train_generator.py: A keras generator for realtime sample generation
frm_dataset_loader.py: Code for reading the dataset from disk
frm_demod_utils.py: Functions used for demodulation
frm_eval_utils.py: Functions used in the evaulation
frm_nn_baseline.py: Neural network code for SGRU
frm_nn_functions.py: Keras functions used by DPN
conf_dataset_1.py: Configuration file for the datset used in [1]
datasets: dataset folder (contains google drive link)
models: The weights for trained models
outputs: Temporary outputs provided
html: HTML version of all jupyter notebooks for convenience
py: Python version of all jupyter notebooks for convenience
tmp: Temporary folder to store the weights
requirements.txt: List of python packages (with version numbers) used with this code. Exported from conda according to these instructions
Readme.md: This file
]]>We provide the instructions to download and use the compact subsets. This is the recommended approach to get started with WiSig.
The data can be directly downloaded as zipped files, one file per susbset. Note that the different subsets have some transmitters, receivers, and signals in common, hence, they should not be treated as distinct.
github: wisig-examples
Description: The code provides functions to load the compact datasets. It also includes the code and the weights used to generate the WiSig use cases presented in the paper. A description of the signals in Full WiSig, along with the hardware of each Tx and Rx is also provided.
We provide the instructions to download and use Full WiSig. You are recommended to use Full WiSig only if your requirements are not met using the prepackaged subsets; that is you need more Tx, Rx, or signals. Downloading and using Full WiSig requires more memory and storage than the prepackaged subsets.
Depending whether you want to download the whole Full WiSig or only some files, there a several options
Download Directory | Total Size |
Full WiSig (unzipped) | 76.9 GB |
Full WiSig (zipped) | 42 GB |
github: wisig-subset-creation
Description: The code provides solvers to assist the users create a Tx and Rx lists to meet his required parameters. Then it provides a function to specify the missing files to download and then package the required data into a dictionary, which can be stored as pkl file. Afterwards, the provided code for the compact subsets examples can be used.
Raw WiSig contains the data uploaded directly from Orbit testbed. It has a huge size of 1.7 TB. Processing it consists of many steps run manually, which would take a few days to run aside from the large storage required.
The WiSig Raw was uploaded directly from Orbit testbed. The data is stored per receiver. For each receiver, signals from at most 20 Tx are zipped together as a single Tx group. Each Rx has up 9 Tx groups. Note that in the provided google drive folder, there are multiple folders with the same name (google does not automatically merge them into one folder)
To download the data, google backup and sync can be used by adding the folder to your personal drive, then syncing the data to your computer. Other google sync utilities can be used (like gdrive, or similar).
Similarly, a function is provided to provide direct links, if only a subset of the data is needed.
Download Directory | Total Size |
WiSig Raw | 1.4 TB |
github: wisig-process-raw
Description: The code provides function to specify the files to download, then extract them. It provides the MATLAB code for packet detection & screening, equalization, then the creation of the pkl files.
We provide the code to replicate the capture setup used by WiSig. Replicating the captures requires at least two WiFi modules (one of which can act as an access point), and a USRP. The code provided assumes three PCs are used, one for each device, with Ubuntu installed.
github: wisig-capture-commands
Description: Provides the code to replicate the WiSig capture for one WiFi Tx, WiFi AP, and USRP Rx.
]]>