How open-sdr/openofdm works
OpenOFDM is an 802.11a/g and 802.11n OFDM PHY receiver, primarily implemented as synthesizable Verilog for the USRP N210. The documented runtime path accepts 20-MSPS I/Q samples and produces decoded packet bytes; synchronization, frequency correction, equalization, signaling, and payload decoding are distinct receiver stages. A Python decoder provides cross-validation. The tree exposes the RTL area only as broad directories, so internal hardware links are shown at that level; detailed wiring is not inferred from unsampled RTL.
Main entry points: usrp2 dot11 PHY · sync_long.rst Packet Sync · freq_offset.rst Frequency Correction · overview.rst OFDM FFT
Components 14
OFDM Receiver
- dot11 PHY
verilog/usrp2 - Packet Sync
docs/source/sync_long.rst - Long Training
docs/source/sync_long.rst - Frequency Correction
docs/source/freq_offset.rst - OFDM FFT
docs/source/overview.rst - Channel Equalization
docs/source/eq.rst
Packet Decoding
- SIGNAL Decode
docs/source/sig.rst - Payload Decode
docs/source/decode.rst
Python Validation
- Python Decoder
scripts/decode.py - CommPy Algorithms
scripts/commpy
Other components
- USRP I/Q Source
- Decoded Bytes
- USRP Host
- Captured Samples
Connections 12
- USRP I/Q Source → dot11 PHY: streams I/Q
- dot11 PHY → Packet Sync: detects packets
- Packet Sync → Long Training: locates training
- Long Training → Frequency Correction: estimates offset
- Frequency Correction → OFDM FFT: corrects samples
- OFDM FFT → Channel Equalization: transforms symbols
- Channel Equalization → SIGNAL Decode: provides carriers
- SIGNAL Decode → Payload Decode: provides parameters
- Payload Decode → Decoded Bytes: outputs bytes
- dot11 PHY → USRP Host: returns packet bytes
- Captured Samples → Python Decoder: reads samples
- Python Decoder → CommPy Algorithms: uses algorithms