- Rádio definido por software (SDR) e processamento digital de sinais (DSP) apresentados em um material online voltado ao aprendizado prático com Python
- Inclui os princípios de SDR, que processa sinais de RF por software em vez de hardware, além de exemplos de visualização e análise de sinais com NumPy e Matplotlib
- Projetado para permitir a compreensão intuitiva dos conceitos por meio de animações e recursos visuais, em vez de fórmulas matemáticas
- Estruturado para ser acessível até mesmo a aprendizes com experiência em programação, mesmo sem formação em engenharia elétrica
- Mantido como open source, com possibilidade de participar da melhoria do material por meio de contribuições no GitHub e apoio no Patreon
1. Objetivo e público-alvo
- SDR (Software-Defined Radio) é o conceito de realizar em software o processamento de RF que tradicionalmente era baseado em hardware
- Pode ser executado em computadores comuns (CPU), FPGA, GPU etc., com suporte tanto a processamento em tempo real quanto a processamento offline de sinais gravados
- Também existe na forma de dispositivos aos quais é possível conectar uma antena para receber e transmitir sinais de RF
- DSP (Digital Signal Processing) é a tecnologia de processamento de sinais em formato digital; neste material, o foco está principalmente em sinais de RF
- O material é voltado para aprendizes como os seguintes
- Pessoas que querem realizar projetos experimentais usando SDR
- Pessoas familiarizadas com Python, mas iniciantes em DSP e comunicações sem fio
- Aprendizes que preferem recursos visuais a fórmulas
- Pessoas que preferem explicações concisas e querem um aprendizado mais prático em vez de um material longo
- É adequado também para estudantes de ciência da computação com experiência em programação, mesmo sem formação em engenharia elétrica
- Em vez de matemática complexa, explica conceitos centrais como séries de Fourier por meio de imagens e animações
- Por esse motivo, o PySDR não é vendido em formato impresso
2. Estrutura do material e abordagem de aprendizado
- Condensa os fundamentos teóricos de DSP, normalmente vistos em um semestre de “Signals and Systems” em engenharia elétrica, em alguns capítulos
- Depois, amplia o conteúdo para tópicos relacionados a SDR, enquanto conceitos de DSP e comunicações sem fio reaparecem ao longo de todo o material
- Os exemplos de código em Python usam NumPy e Matplotlib
- NumPy é a biblioteca padrão para arrays e operações matemáticas, e a maior parte das operações é otimizada em C/C++
- Matplotlib é a ferramenta de plotagem para visualizar sinais, arrays e números complexos
- Mesmo que Python seja mais lento que C++, as operações internas são otimizadas e oferecem desempenho suficiente para a prática
- Quem já tem experiência com MATLAB, Ruby ou Perl também pode usar com facilidade após se acostumar com a sintaxe de Python
3. Como contribuir
- Recomenda-se compartilhar com estudantes, colegas e aprendizes o que foi aprendido com o PySDR
- Ao apoiar via Patreon, é possível ter o nome exibido no rodapé das páginas do material
- Ao ler o material, quem enviar perguntas, opiniões ou sugestões de correção por e-mail é automaticamente reconhecido como colaborador
- Também é possível enviar sugestões de alteração diretamente por meio de Pull Request no repositório do GitHub
- Mesmo sem familiaridade com Git, ainda é possível enviar sugestões por e-mail
4. Agradecimentos
- Agradecimentos aos leitores e colaboradores de tradução que forneceram feedback para o material
- São mencionados participantes das traduções para francês, neerlandês, ucraniano, chinês e espanhol
- Também inclui a lista de apoiadores no Patreon e patrocinadores institucionais, como Analog Devices, Inc.
- O PySDR é distribuído sob a licença CC BY-NC-SA 4.0
1 comentários
Comentários do Hacker News
No geral, acho que é um bom material, mas é uma pena que alguns detalhes sejam tratados de forma meio vaga
Por exemplo, não há explicação de como escolher os parâmetros do loop para travar de forma estável quando se conhece o comprimento do preâmbulo e o desvio máximo de frequência
Teria sido muito melhor se desse esse tipo de direcionamento
Teria sido melhor mostrar também que isso varia conforme a taxa de amostragem e a duração
Claro, reconheço que a série perfeita de senóides que aparece em aulas de sistemas lineares também não é realista
Agora todo mundo tem, na prática, um assistente pessoal de nível de pós-graduação, então o importante é aprender a fazer as perguntas certas
É uma introdução muito boa especialmente para novos membros da equipe que dominam código, mas têm pouca base em DSP
Além disso, o hardware abordado no livro também é barato, então é bem acessível. No momento uso um RTL-SDR da Nooelec, e para aprendizado básico algo em torno de 50 euros já basta
Dependendo da faixa de frequência, há ruído e sinais espúrios, mas quem tem experiência normalmente lida com isso sem problemas
Quanto mais você explora o mundo do rádio, mais o RTL-SDR abre novas possibilidades, e depois você acaba escrevendo software para processar amostras I/Q por conta própria
Senti saudade de ouvir rádio e decidi voltar a isso, então acabei encomendando um Tecsun PL-880
Se for para ouvir no computador, streaming já basta, mas se depois eu sentir que o Tecsun não é suficiente, penso em me aprofundar mais no lado de SDR
Não quero acumular vários rádios nem ter um equipamento grande de mesa