Muxwright

Прошивка і технологія

Через USB Pluto стабільно видає лише близько 7 MS/s, а DVB-T 8 MHz потребує 9,14 MS/s. Тому модулятор працює на самому пристрої.

  1. PC / WSLffmpeg + TSDuck: відео, аудіо, SI-таблиці, сталий бітрейт
  2. UDPТранспортний потік до 32 Mbit/s через USB-мережу
  3. ARM PlutoЯдро 0: RS, перемежувач, згортковий код, маппер · ядро 1: NEON-IFFT
  4. DAC → HFAD9364, 70 MHz–6 GHz, ослаблення 0–89,75 dB

Фіксована кома + NEON

Кодер, перемежувач, маппер і IFFT працюють з фіксованою комою. IFFT Stockham radix-4 використовує NEON і побітово збігається з еталоном на C (однакова контрольна сума на x86 і ARM).

Реальний час на 2 ядрах

8k/64-QAM/7/8 працює з коефіцієнтом реального часу 1,00 без underrun при навантаженні 55–67 % на ядро Cortex-A9. DVB-S з 22 MBd займає 42–63 % одного ядра; DVB-S2 QPSK досягає 27 MBd на одному ядрі.

Прошивка на базі v0.31

Buildroot 2019.02, Linux 4.14 і бітстрим FPGA ідентичні оригіналу, плюс libiio/iiod 0.25, налаштування реального часу і DMA та агент пристрою з HTTP-API.

Перевірено за еталоном

Пілоти, TPS і несучі даних збігаються з gr-dtv. Власне приймання через вхід RX декодується побітово точно. Прошивку можна спершу перевірити з RAM, не змінюючи флеш-пам’ять.

Корисні бітрейти DVB-T у Mbit/s (8 MHz, захисний інтервал 1/32)
Сузір’я1/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

Зсередини

Контрольне приймання, протокол і медіа