Analysis updated 2026-06-24
Simulate a single-carrier signal hitting a Rydberg atomic receiver
Compare CPU and GPU quantum-solver backends on the same waveform
Reproduce the dynamic transfer function results from the paper
Drive simulations from a browser via the Flask web UI
| johnzja/rydbergcomms | chenshuo/dspfirst | aaronjackson/vrn | |
|---|---|---|---|
| Stars | 11 | 16 | 4,521 |
| Language | MATLAB | MATLAB | MATLAB |
| Setup difficulty | hard | easy | hard |
| Complexity | 5/5 | 2/5 | 4/5 |
| Audience | researcher | researcher | researcher |
Figures from each repo's GitHub metadata at analysis time.
GPU path needs CUDA toolchain plus a CUDAHOSTCXX env var on Windows, and you must build C++ and CUDA binaries before the web app works.
RydbergComms is a research code release from Jieao Zhu at Tsinghua University that simulates communication signals being received by a Rydberg atomic receiver. A Rydberg receiver is a physics-based way of detecting radio waves using atoms in a special excited state, and this repository lets researchers test how well such receivers handle real waveforms. The code is split into three parts. There is a Flask web application defined in app.py that gives a browser front end for kicking off a simulation, watching it run in the background, and looking at the resulting transmit and receive waveforms and a constellation plot. There is also a reusable Python single carrier simulator that researchers can call from their own scripts, and a set of MATLAB scripts that go with the author's paper on dynamic transfer functions of Rydberg atomic receivers. Under the simulation surface there are two compute backends, a C plus plus RK4 solver and a CUDA version that runs on a GPU. The README shows that the CUDA build gives a large speedup over the CPU build. You build the backends with make cpp and make cuda from the repository root, and the binaries end up under python/utils/bin/. On Windows the CUDA build may need a CUDAHOSTCXX environment variable. The web service is started with python app.py and listens on port 5000. The README documents a three step HTTP API: post to /api/generate_tx to make a transmit IF waveform, post to /api/start_simulation with that waveform and a backend choice of cpp or cuda, then poll /api/simulation_status with the returned job id until the status is completed. A worked Python client example is included. For local use the repository also shows a direct pipeline through sim_SingleCarrier.py and TransientQuantumSimulator, generating symbols, modulating to an intermediate frequency, running the quantum simulation, demodulating, and printing a mean squared error in decibels. The full reference is in python/study_sc.py.
Research code that simulates radio communication signals received by a Rydberg atomic receiver, with a Flask web UI, C++ RK4, and CUDA backends.
Mainly MATLAB. The stack also includes Python, Flask, MATLAB.
Setup difficulty is rated hard, with roughly 1day+ to a first successful run.
Mainly researcher.
This repo across BitVibe Labs
Verify against the repo before relying on details.