O que é este projeto? Este repositório contém um simulador robusto da camada física (PHY) para redes móveis 5G NR (New Radio) e tecnologias futuras. Ele foi desenvolvido em Python para avaliar o ganho de eficiência espectral e a mitigação de erros de transmissão através do uso de comunicação cooperativa (AF Relay) e inteligência artificial (Algoritmos Genéticos para otimizar Throughput vs. BER).
- MIMO (Multiple-Input Multiple-Output): Processamento e modulação com múltiplas antenas (2x2), com suporte para esquemas até 64-QAM.
- Forma de Onda GFDM: Modulação Generalized Frequency Division Multiplexing, implementada com filtros Root-Raised Cosine para reduzir emissões fora de banda (OOBE).
- Comunicação Cooperativa (AF Relay): Modelagem de uma antena repetidora no modo Amplify-and-Forward para combater o desvanecimento de Rayleigh.
- Equalização Avançada (MMSE): Filtro dinâmico para anular a interferência cruzada do MIMO sem causar amplificação catastrófica do ruído.
- Otimização via Machine Learning: Utilização de Algoritmo Genético (NSGA-II) para calibração simultânea de múltiplos objetivos: maximização de Throughput (Vazão) e minimização do BER (Taxa de Erro de Bit).
O projeto foi construído sobre Python 3.10+ e foca fortemente em operações matriciais otimizadas em CPU.
Navegue até a pasta do projeto no seu terminal:
cd /caminho/para/simulation_pyA melhor prática para executar este projeto isoladamente é criar um ambiente virtual (venv):
# Cria o ambiente virtual na pasta venv/
python -m venv venv
# Ativa o ambiente virtual (Linux / macOS)
source venv/bin/activate
# Ativa o ambiente virtual (Windows)
# venv\Scripts\activateCom o ambiente ativado, instale os pacotes base de dados e plotagem:
pip install numpy scipy matplotlib deap(Caso esteja utilizando um ambiente global no Linux protegido pelo PEP-668, adicione a flag --break-system-packages caso saiba o que está fazendo).
A execução principal do projeto abstrai as simulações e orquestra automaticamente os comparativos base (Sem IA) versus otimizados (Com IA).
Para iniciar a simulação, simplesmente rode o maestro do projeto:
python main.pyDurante a execução, o terminal exibirá:
- A varredura (Sweep) de SNR de 0dB a 20dB.
- A evolução geracional da Inteligência Artificial em tempo real.
- Os parâmetros vencedores descobertos pela máquina.
- As taxas exatas de Throughput de ganho.
A execução gera automaticamente 3 relatórios gráficos em alta qualidade salvos na raiz do seu projeto:
-
ber_vs_snr.png: Gráfico Waterfall logarítmico provando o ganho da antena Relay contra o desvanecimento do link direto. -
fitness_evolution.png: Gráfico temporal exibindo as tentativas da IA, a estabilização do ganho de internet (eixo Y1) e a queda do ruído (eixo Y2). -
comparison.png: Gráfico de barras atestando a diferença de Vazão e Erro (O Trade-Off matemático) após a aplicação dos resultados da inteligência artificial.
O código foi rigorosamente componentizado seguindo o paradigma de engenharia de software sustentável. Para manter o código limpo, todos os comentários teóricos, fórmulas e explicações foram movidos para a pasta /docs/.
Para entender profundamente a matemática e as equações presentes no código, visite a documentação modular:
- 📄
docs/channel.md- Modelagem da física e ruído (Rayleigh/AWGN). - 📄
docs/relay.md- Dinâmica de Amplificação da antena cooperativa. - 📄
docs/mimo.md- Transmissores, Receptores e Equalizador MMSE. - 📄
docs/gfdm.md- Matemática da modulação matricial paralela GFDM. - 📄
docs/optimization.md- Algoritmo Genético do pacote DEAP. - 📄
docs/simulation.md- Orquestrador de blocos do Monte Carlo. - 📄
docs/graficos.md- Como ler cientificamente os gráficos gerados. - 📄
docs/resultados.md- Interpretação detalhada dos ganhos e resultados do sistema.
Projeto voltado para simulação técnica de PHY-Layer de redes móveis (IEEE).


