The pipeline
Framer — burst detection
The Framer accepts a magnitude-squared (
|I|² + |Q|²) float stream. It searches for the ADS-B preamble pattern and tags the stream with "burst" stream tags at every detected preamble location, carrying the start-of-burst indicator and SNR estimate.Demod — PPM demodulation
The Demod block reads the same float stream and acts on the
"burst" stream tags emitted by the Framer. For each burst, it samples the PPM-encoded bits and publishes a PMT PDU on its demodulated message port containing 112 raw bits plus metadata.GRC connections
In GNU Radio Companion the blocks are wired as follows:- Stream connection:
adsb_framer:out→adsb_demod:in - Message connection:
adsb_demod:demodulated→adsb_decoder:demodulated
out port, so further stream processing (e.g., recording or display) is possible without a separate tap.
Import and block IDs
[ADS-B].
| GRC block ID | Python constructor |
|---|---|
adsb_framer | adsb.framer(fs, threshold) |
adsb_demod | adsb.demod(fs) |
adsb_decoder | adsb.decoder(msg_filter, error_corr, print_level) |
Block summary
| Block | Stream inputs | Stream outputs | Message inputs | Message outputs |
|---|---|---|---|---|
| Framer | in (float) | out (float) | — | — |
| Demod | in (float) | out (float) | — | demodulated |
| Decoder | — | — | demodulated | decoded, unknown |
Block pages
Framer
Detects ADS-B preambles in a magnitude-squared float stream and emits burst stream tags with SNR estimates.
Demod
Demodulates PPM-encoded ADS-B bursts and publishes raw 112-bit PDUs on a message port.
Decoder
Parses Mode S downlink formats, checks CRC-24, and publishes fully decoded aircraft state PDUs.