Lançamento da Rádio GNU 3.10.0

Após um ano de desenvolvimento, um novo lançamento significativo da plataforma gratuita de processamento de sinal digital GNU Radio 3.10 foi formado. A plataforma inclui um conjunto de programas e bibliotecas que permitem criar sistemas de rádio arbitrários, esquemas de modulação e formas de sinais recebidos e enviados, que são especificados em software, e os dispositivos de hardware mais simples são usados ​​​​para capturar e gerar sinais. O projeto é distribuído sob a licença GPLv3. O código para a maioria dos componentes do GNU Radio é escrito em Python; partes críticas para desempenho e latência são escritas em C++, o que permite que o pacote seja usado na resolução de problemas em tempo real.

Em combinação com transceptores programáveis ​​universais que não estão vinculados à banda de frequência e tipo de modulação de sinal, a plataforma pode ser usada para criar dispositivos como estações base para redes GSM, dispositivos para leitura remota de tags RFID (IDs e passes eletrônicos, smart cartões), receptores GPS, WiFi, receptores e transmissores de rádio FM, decodificadores de TV, radares passivos, analisadores de espectro, etc. Além do USRP, o pacote pode utilizar outros componentes de hardware para entrada e saída de sinais, por exemplo, drivers para placas de som, sintonizadores de TV, BladeRF, Myriad-RF, HackRF, UmTRX, Softrock, Comedi, Funcube, FMCOMMS, USRP e Dispositivos S estão disponíveis -Mini.

Também inclui uma coleção de filtros, codecs de canal, módulos de sincronização, demoduladores, equalizadores, codecs de voz, decodificadores e outros elementos necessários para criar sistemas de rádio. Esses elementos podem ser usados ​​como blocos de construção para montar um sistema acabado, o que, combinado com a capacidade de determinar fluxos de dados entre blocos, permite projetar sistemas de rádio mesmo sem conhecimentos de programação.

Grandes mudanças:

  • Foi adicionado um novo módulo gr-pdu, que traz ferramentas para manipulação de objetos do tipo PDU (Protocol Data Unit), utilizado para transferência de dados entre blocos GNU Radio. Do módulo gr-blocks, todos os blocos PDU foram movidos para os módulos gr-network e gr-pdu e, em vez de gr-blocks, uma camada foi deixada para garantir a compatibilidade com versões anteriores. Os tipos de PDU vetoriais agora estão disponíveis no namespace gr::types, e as funções para manipulação de PDU agora estão disponíveis no namespace gr::pdu.
  • Adicionado um novo módulo gr-iio, que fornece uma estrutura de entrada/saída para organizar a troca de dados entre GNU Radio e dispositivos industriais baseados no subsistema IIO (Industrial I/O), como PlutoSDR, AD-FMCOMMS2-EBZ, AD-FMCOMMS3 -EBZ, AD -FMCOMMS4-EBZ, ARRADIO e AD-FMCOMMS5-EBZ.
  • Foi proposto suporte experimental para a classe Custom Buffer, que simplifica a transferência de dados entre blocos de rádio GNU e aceleradores de hardware baseados em GPU, FPGA e DSP. O uso de custom_buffer permite evitar a gravação de blocos especiais para permitir a aceleração no lado da GPU e torna possível mover dados diretamente do ring buffer do GNU Radio para a memória da GPU, iniciar kernels CUDA e retornar os dados com o resultado para os buffers do GNU Radio.
  • A infraestrutura de log passou a usar a biblioteca spdlog, que melhorou a usabilidade do trabalho com logs, eliminou chamadas para iostream e cstdio, forneceu suporte para expressões libfmt para formatação de strings e modernizou a interface do programa. A biblioteca Log4CPP usada anteriormente foi removida como dependência.
  • A transição para uso no desenvolvimento do padrão C++17 foi feita. A biblioteca boost::filesystem foi substituída por std::filesystem.
  • Requisitos aumentados para compiladores (GCC 9.3, Clang 11, MSVC 1916) e dependências (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).
  • Adicionadas ligações Python para blocos RFNoC.
  • O suporte para Qt 6.2 foi adicionado aos blocos para construção da interface gráfica gr-qtgui. Adicionada opção “--output” para blocos hierárquicos à GUI do GRC (GNU Radio Companion).

Fonte: opennet.ru

Adicionar um comentário