Rilascio di GNU Radio 3.10.0

Dopo un anno di sviluppo, è stata creata una nuova importante versione della piattaforma gratuita di elaborazione del segnale digitale GNU Radio 3.10. La piattaforma include una serie di programmi e librerie che consentono di creare sistemi radio arbitrari, schemi di modulazione e la forma dei segnali ricevuti e inviati in cui sono specificati nel software, e i dispositivi hardware più semplici vengono utilizzati per acquisire e generare segnali. Il progetto è distribuito sotto la licenza GPLv3. Il codice per la maggior parte dei componenti di GNU Radio è scritto in Python; le parti critiche per le prestazioni e la latenza sono scritte in C++, il che consente di utilizzare il pacchetto per risolvere problemi in tempo reale.

In combinazione con ricetrasmettitori programmabili universali, svincolati dalla banda di frequenza e dal tipo di modulazione del segnale, la piattaforma può essere utilizzata per creare dispositivi come stazioni base per reti GSM, dispositivi per la lettura remota di tag RFID (ID e pass elettronici, smart schede), ricevitori GPS, WiFi, ricevitori e trasmettitori radio FM, decoder TV, radar passivi, analizzatori di spettro, ecc. Oltre all'USRP, il pacchetto può utilizzare altri componenti hardware per l'ingresso e l'uscita dei segnali, ad esempio driver per schede audio, sintonizzatori TV, BladeRF, Myriad-RF, HackRF, UmTRX, Softrock, Comedi, Funcube, FMCOMMS, USRP e Sono disponibili dispositivi S -Mini.

Comprende anche una raccolta di filtri, codec di canale, moduli di sincronizzazione, demodulatori, equalizzatori, codec vocali, decodificatori e altri elementi necessari per creare sistemi radio. Questi elementi possono essere utilizzati come elementi costitutivi per assemblare un sistema finito che, combinato con la capacità di determinare i flussi di dati tra i blocchi, consente di progettare sistemi radio anche senza competenze di programmazione.

Principali modifiche:

  • È stato aggiunto un nuovo modulo gr-pdu che porta strumenti per la manipolazione di oggetti di tipo PDU (Protocol Data Unit), utilizzati per il trasferimento dei dati tra blocchi GNU Radio. Dal modulo gr-blocks, tutti i blocchi PDU sono stati spostati sui moduli gr-network e gr-pdu e, invece di gr-blocks, è stato lasciato un livello per garantire la compatibilità con le versioni precedenti. I tipi Vector PDU sono ora disponibili nello spazio dei nomi gr::types e le funzioni per la manipolazione della PDU sono ora disponibili nello spazio dei nomi gr::pdu.
  • Aggiunto un nuovo modulo gr-iio, che fornisce un framework di input/output per organizzare lo scambio di dati tra GNU Radio e dispositivi industriali basati sul sottosistema IIO (Industrial I/O), come PlutoSDR, AD-FMCOMMS2-EBZ, AD-FMCOMMS3 -EBZ, AD -FMCOMMS4-EBZ, ARRADIO e AD-FMCOMMS5-EBZ.
  • È stato proposto il supporto sperimentale per la classe Custom Buffer, che semplifica il trasferimento dati tra blocchi GNU Radio e acceleratori hardware basati su GPU, FPGA e DSP. L'uso di custom_buffer consente di evitare di scrivere blocchi speciali per abilitare l'accelerazione lato GPU e rende possibile spostare direttamente i dati dal buffer ad anello GNU Radio alla memoria della GPU, avviare i kernel CUDA e restituire i dati con il risultato ai buffer GNU Radio.
  • L'infrastruttura di registrazione è passata all'utilizzo della libreria spdlog, che ha migliorato l'usabilità dell'utilizzo dei log, eliminato le chiamate a iostream e cstdio, fornito supporto per le espressioni libfmt per la formattazione delle stringhe e modernizzato l'interfaccia del programma. La libreria Log4CPP utilizzata in precedenza è stata rimossa come dipendenza.
  • È stata effettuata la transizione all'utilizzo nello sviluppo dello standard C++17. La libreria boost::filesystem è stata sostituita con std::filesystem.
  • Requisiti aumentati per compilatori (GCC 9.3, Clang 11, MSVC 1916) e dipendenze (Python 3.6.5, numpy 1.17.4, VOLK 2.4.1, CMake 3.16.3, Boost 1.69, Mako 1.1.0, PyBind11 2.4.3, pygccxml 2.0.0).
  • Aggiunti collegamenti Python per i blocchi RFNoC.
  • Ai blocchi per la creazione dell'interfaccia grafica gr-qtgui è stato aggiunto il supporto per Qt 6.2. Aggiunta l'opzione "--output" per i blocchi gerarchici alla GUI GRC (GNU Radio Companion).

Fonte: opennet.ru

Aggiungi un commento