Projects

Research projects with published papers, open-source code, or both. Repositories include reproduction scripts (reproduce_paper.py, run_all.sh) where applicable.

Wi-Fi Systems & Machine Learning — Texas State University (2024–present)

Deep-RL Target Wake Time Scheduling for IEEE 802.11ax

IEEE ICCCN 2026 ↗ $70K Comcast Innovation Fund

Wi-Fi networks serving heterogeneous IoT and multimedia devices suffer from CSMA contention, resulting in performance anomaly and excessive energy use. Target Wake Time (TWT) improves this by slicing the beacon interval into non-overlapping service periods (SPs) and assigning one or more stations to each SP. However, optimal 802.11ax TWT scheduling is NP-hard (≈1030 configurations for 32 stations). To solve this, I developed an end-to-end RL scheduler in an ns-3 simulator with a custom BSR Manager, Wi-Fi-stack patches for unilateral TWT, a C++↔Python bridge over ns3-ai shared memory, and PPO agents (MLP and LSTM) trained on a 208-dimensional protocol-compliant observation space with a 380-configuration action space and three reward presets. Against an analytical M/D/1 baseline: −44% energy, +18% throughput, −73% packet drops (MLP-PPO, energy preset) and −77% drops (LSTM-PPO, queue preset). Because observations are restricted to standard BSR and 802.11k statistics, the scheduler is deployable on existing APs with no firmware changes.

Stack: C++ (ns-3 3.44), Python, Stable-Baselines3 PPO, ns3-ai shared memory, one-shot build→train→evaluate pipeline.

Wi-Fi 6 TWT system model: 16 stations across four traffic types (IoT sensor, video camera, voice assistant, video stream) around one AP in a 30 m by 30 m indoor 802.11ax environment

RF Energy Harvesting & Power-Delivery MAC Coordination for IEEE 802.11

ns-3 had no realistic RF energy-harvesting hardware model and no standards-compliant MAC mechanism for power-delivery coordination, impeding research on battery-free IoT. I built two complementary modules: (1) a datasheet-accurate PowerCast P21XXCSR-EVB Band-6 rectenna model (−40 to +15 dBm sensitivity, 0–85% efficiency curve, capacitor/voltage classes, energy accounting, deep-discharge and overcharge protection with pre-TX validation) and (2) IEEE 802.11 Category-127 vendor-specific action frames for AP-broadcast power-delivery schedules with autonomous station-side parsing. Stations harvest, schedule, and gate transmissions with hysteresis-based power management.

Stack: C++ (ns-3 3.44), ns-3 source patches, PCAP capture + Python analyzer.

ns-3 / ns3-ai Simulation Infrastructure

Bridging ns-3 (C++) to Python ML agents is a recurring blocker with fragile installs and dependency conflicts. I built a reusable four-layer stack: a one-shot installer for ns-3 3.44 + ns3-ai + Python 3.11 with dependency-conflict resolution (TF/PyTorch ABI pinning), bootstrap examples with proper simulator scheduling, a real-time Wi-Fi simulation with C++↔Python communication (8 mobile stations, log-distance + Nakagami fading), and a Python-bindings wrapper exposing 23 environment and 9 action variables with CSV logging. Downstream RL projects skip installation and IPC work entirely.

Stack: Bash, C++, Python, ns3-ai shared memory, CMake.

Physical-Layer Security & Information Theory — UC Riverside Ph.D. (2018–2024)

SVD-CEF: Continuous Encryption Functions for Physical-Layer Security & Key Generation

Conventional one-way functions are discrete and demand perfectly reliable shared keys, but wireless feature vectors (e.g., reciprocal channel estimates) are always noisy. This body of work formalized five criteria for a good Continuous Encryption Function (CEF), proved prior candidates (random projection, dynamic random projection, index-of-max hashing, higher-order polynomials) each fail at least one, and introduced the SVD-CEF family, which is nonlinear encryption built from SVDs of randomly modulated feature matrices. Applied in two domains: (1) UAV-to-ground physical-layer encryption (symbol and constellation hiding, provably robust against ML-equipped eavesdroppers); and (2) secret-key generation via encryption-before-quantization with adaptive fractional quantization. Achieved a 20 dB BER improvement over direct quantization under RF impairments and passed NIST randomness tests.

Stack: Python, MATLAB, multipath/Rician channel models, NIST test suite, Reed-Solomon/Hamming ECC.

UAV-to-ground channel scenario with line-of-sight and non-line-of-sight paths and an eavesdropper

Secret-Key Capacity of MIMO Channels

Wyner's wiretap-channel framework predicts zero secrecy whenever the eavesdropper has more antennas or better SNR than the legitimate nodes, and no closed-form secret-key capacity (SKC) expression existed for arbitrary MIMO channels. Using a generalized channel probing / pre-processing framework (nodes exchange random matrices beyond public pilots), Maurer's bounds, and random-matrix theory, this work derived closed-form upper/lower SKC bounds and characterized the first-order (∝ log SNR) and SNR-invariant second-order terms. The key result is that a positive secret-key rate is achievable even when the eavesdropper has more antennas and better SNR, overturning the conventional wiretap pessimism, with analytical and Monte-Carlo results matching across regimes.

Stack: Python (NumPy), gradient/conjugate-gradient solvers, Monte-Carlo validation.

MIMO channel model: Alice and Bob with multiple antennas exchanging probes while Eve observes

MC-STEEP: Multi-Carrier OFDM Optimization for Secure Communications

Ph.D. Dissertation Ch. 6 Code ↗

STEEP (Secret Transmission by Echoing Encrypted Probes) achieves positive secrecy over non-reciprocal channels with no pre-shared key through two-phase signaling (probe and echo), but was defined only for single-carrier links, and naive OFDM extension wastes secrecy rate and probing power. I formulated multi-carrier STEEP against a multi-antenna eavesdropper and analytically proved three optimal joint policies: (1) probe/echo carrier pairing, (2) receiver-side power allocation maximizing average achievable secrecy rate, and (3) a compound two-sided allocation matching that rate at lower probing power. Result: ~28% higher peak secrecy rate, matched at ~4 dB lower probing power, sustaining up to ~83% of secret-key capacity where the classic wiretap-channel rate is essentially zero against a multi-antenna eavesdropper.

Stack: Python OFDM evaluation harness, convex/joint-resource optimization.

MC-STEEP system model: Alice and Bob exchanging multi-carrier probes and echoes while a multi-antenna Eve observes

RF Hardware & DSP

4th-Order 2.4 GHz Bandpass Filter — Cadence Virtuoso / SpectreRF

RFIC design (UCR EE221) Report PDF ↗

Designed and characterized a 4th-order shunt-first bandpass filter for the 2.3–2.5 GHz Wi-Fi band in Cadence Virtuoso (SpectreRF), using cascaded second-order sections with realistic Q = 50 components (explicit ESR resistors) and 50 Ω port matching. Achieved S11 < −10 dB across the passband with low insertion loss and a loaded Q-factor of 24 (2.4 GHz center, 100 MHz bandwidth), validated against 1st- and 2nd-order baselines in MATLAB.

Stack: Cadence Virtuoso, SpectreRF, S-parameter analysis, MATLAB.

Cadence Virtuoso schematic of the 4th-order bandpass filter

DSP & Channel-Coding Toolkits

MATLAB Communications Toolbox CSI autoencoder ↗

Two standalone toolkits: (1) a parameter-swept MATLAB testbed for M-QAM BER under rate-1/2 Viterbi convolutional coding (soft/hard decision, traceback 32/48, SNR 0–26 dB, parallelized sweeps), and (2) a convolutional autoencoder for CSI compression and denoising in TensorFlow/Keras, trained on COST 2100 massive-MIMO channel data.

Stack: MATLAB (Communications Toolbox, parfor), Python, TensorFlow/Keras.