How shunqiang-feng/beamformer works
BeamFormer reconstructs a full beam-direction RSS spectrum from a small set of reference-beam measurements. Its deployment workflow generates reference weights, obtains RSS measurements, estimates the spectrum, optionally corrects its amplitude, and selects the strongest direction. Training uses CSI data in a joint generator/estimator stage followed by ARN training; the README also documents spectrum visualization and baseline CDF comparison. The excerpts show core model, dataset, and inference wiring; links for unsampled training and visualization internals are limited to documented behavior.
Main entry points: inference_helper.py Inference Pipeline · weight_generator.py Beam Generator · train.py Joint Trainer · dataset.py CSI Processing
Components 21
CSI and Beam Physics
- CSI Dataset
beamformer/dataset.py - CSI Processing
beamformer/dataset.py - Array Physics
beamformer/utils.py
Beam Models
- Beam Generator
beamformer/weight_generator.py - Weight Transform
beamformer/weight_generator.py - Spectrum Estimator
beamformer/modules.py - Perceiver IO
beamformer/perceiver_io.py - Amplitude Recovery
beamformer/modules.py
Model Training
- Co-train Config
configs/co_train.py - ARN Config
configs/arn.py - Shared Config
configs/submodules.py - Joint Trainer
beamformer/train.py - ARN Trainer
beamformer/train_ARN.py
Inference and Evaluation
- Inference Pipeline
beamformer/inference_helper.py - Reference RSS
- Predicted Spectrum
- Beam Alignment
- Spectrum Visualization
beamformer/visualize_spectrum.py - CDF Evaluation
beamformer/cdf_plot.py - Baseline Results
baselines_result/all_performance_dict.json
Other components
- Base Station
Connections 25
- CSI Dataset → CSI Processing: loads CSI
- CSI Processing → Array Physics: uses array model
- Co-train Config → Shared Config: selects settings
- ARN Config → Shared Config: selects settings
- Joint Trainer → CSI Dataset: loads training data
- Joint Trainer → CSI Processing: prepares RSS
- Joint Trainer → Beam Generator: optimizes
- Joint Trainer → Spectrum Estimator: optimizes
- ARN Trainer → Amplitude Recovery: trains
- ARN Trainer → Beam Generator: uses pretrained
- Inference Pipeline → CSI Processing: loads processing
- Inference Pipeline → Beam Generator: runs
- Inference Pipeline → Weight Transform: transforms weights
- Inference Pipeline → Spectrum Estimator: runs
- Inference Pipeline → Amplitude Recovery: applies correction
- Spectrum Estimator → Perceiver IO: delegates attention
- Base Station → Beam Generator: requests reference weights
- Beam Generator → Base Station: provides weights
- Base Station → Reference RSS: measures reference RSS
- Reference RSS → Inference Pipeline: supplies measurements
- Inference Pipeline → Predicted Spectrum: returns spectrum
- Predicted Spectrum → Beam Alignment: selects strongest direction
- Spectrum Visualization → Inference Pipeline: runs inference
- CDF Evaluation → Inference Pipeline: evaluates model
- CDF Evaluation → Baseline Results: loads baselines