Muxwright

Firmware & tecnica

Via USB il Pluto regge in modo continuo solo circa 7 MS/s, mentre il DVB-T a 8 MHz richiede 9,14 MS/s. Per questo il modulatore gira sul dispositivo stesso.

  1. PC / WSLffmpeg + TSDuck: video, audio, tabelle SI, bitrate costante
  2. UDPTransport stream fino a 32 Mbit/s tramite la rete USB
  3. ARM del PlutoCore 0: RS, interleaver, codice convoluzionale, mapper · core 1: IFFT NEON
  4. DAC → HFAD9364, 70 MHz–6 GHz, attenuazione 0–89,75 dB

Virgola fissa + NEON

Coder, interleaver, mapper e IFFT lavorano in virgola fissa. L’IFFT Stockham radix-4 usa NEON ed è identica bit a bit al riferimento C (stesso checksum su x86 e ARM).

Tempo reale su 2 core

8k/64-QAM/7/8 gira con fattore di tempo reale 1,00 senza underrun al 55–67 % di carico per core Cortex-A9. DVB-S a 22 MBd usa il 42–63 % di un core; DVB-S2 QPSK arriva a 27 MBd su un core.

Firmware basato su v0.31

Buildroot 2019.02, Linux 4.14 e bitstream FPGA identici all’originale, più libiio/iiod 0.25, ottimizzazioni real-time e DMA e un agente del dispositivo con API HTTP.

Verificato contro un riferimento

Pilot, TPS e portanti dati coincidono con gr-dtv. L’autoricezione tramite l’ingresso RX decodifica in modo bit-exact. Il firmware si può testare prima dalla RAM senza modificare la flash.

Bitrate utili DVB-T in Mbit/s (8 MHz, guard 1/32)
Costellazione1/22/33/45/67/8
QPSK6,038,049,0510,0510,56
16-QAM12,0616,0918,1020,1121,11
64-QAM18,1024,1327,1430,1631,67

Dietro le quinte

Ricezione di controllo, verbale e media