Ryan Malloy
0e77373ea4
Add uplink chain: DSKY command encoder to RF and back
Uplink word codec (uplink_word_codec.py):
- UplinkSerializerEngine: (channel, value) pairs to 15-bit NRZ bit stream
with configurable inter-word gap for UPRUPT timing
- UplinkDeserializerEngine: two-phase state machine (acquisition + fixed
framing) recovers words from NRZ bits, handles leading-zero data words
- GR wrappers: uplink_word_serializer (sync_block source) and
uplink_word_deserializer (basic_block sink with message output)
TX source (usb_uplink_source.py):
- hier_block2 wiring: word_serializer -> nrz_encoder -> FM mod (4 kHz dev)
-> 70 kHz upconvert -> complex_to_real -> PM mod (1.0 rad) -> [AWGN]
- Message input "words" forwards PDUs from uplink_encoder
RX receiver (usb_uplink_receiver.py):
- hier_block2 wiring: PM demod -> subcarrier_extract (70 kHz, 20 kHz BW)
-> quadrature_demod -> matched filter -> decimate -> slicer -> deserializer
- Message output "commands" emits recovered (channel, value) PDUs
GRC block definitions for both source and receiver.
Loopback demo (uplink_loopback_demo.py):
- Encodes V16N36E, serializes with pure-Python engine, runs through GR RF
chain (FM + PM + noise + demod), deserializes, compares TX vs RX words
2026-02-24 14:17:58 -07:00
..
2026-02-24 10:18:42 -07:00
2026-02-20 13:18:42 -07:00
2026-02-20 13:18:42 -07:00
2026-02-20 13:18:42 -07:00
2026-02-21 18:55:50 -07:00
2026-02-24 10:18:42 -07:00
2026-02-20 13:18:42 -07:00
2026-02-24 10:18:42 -07:00
2026-02-24 10:18:42 -07:00
2026-02-24 10:18:42 -07:00
2026-02-24 10:18:42 -07:00
2026-02-22 13:01:48 -07:00
2026-02-21 18:55:50 -07:00
2026-02-20 13:18:42 -07:00
2026-02-21 18:55:50 -07:00
2026-02-20 13:18:42 -07:00
2026-02-20 13:18:42 -07:00
2026-02-21 18:55:50 -07:00
2026-02-20 13:18:42 -07:00
2026-02-20 13:18:42 -07:00
2026-02-22 13:01:48 -07:00
2026-02-20 13:18:42 -07:00
2026-02-20 13:18:42 -07:00
2026-02-24 14:17:58 -07:00
2026-02-20 13:18:42 -07:00
2026-02-20 13:18:42 -07:00
2026-02-21 18:55:50 -07:00
2026-02-24 14:17:58 -07:00
2026-02-24 14:17:58 -07:00
2026-02-20 13:18:42 -07:00