Modulação LoRa - Conceitos

Publicado em março/2020


CÓDIGOS DE CORREÇÃO DE ERRO (FOWARD ERROR CORRECTION - FEC)

São adicionados bits de redundância para servir como referência para detectar e corrigir erros na recepção, por exemplo, devido a uma interferência. Quanto mais bits redundantes acrescentarmos (maior "overhead"), maior a quantidade de bits corrompidos poderão ser recuperados, porém transmitimos menos informação propriamente dita, o que tem como consequência, por exemplo, um maior consumo de bateria. LoRa utiliza códigos de detecção de erro com taxas CR (coding rate) que variam de 20% a 50% do overhead:

  1. CR=1 (4/5) - 80,0% informação e 20,0% overhead;
  2. CR=2 (4/6) - 66,6% informação e 33,3% overhead;
  3. CR=3 (4/7) - 57,1% informação e 42,9% overhead;
  4. CR=4 (4/8) - 50,0% informação e 50,0% overhead;

Observando os valores acima fica facilmente perceptível a relação de compromisso entre a taxa de dados e implementação de detecção e correção de erros para permitir uma recepção mais robusta.

Utilizando um módulo de desenvolvimento "ESP32 LoRa TTGO SX1276 868/915MHZ" implementei um código para comparar as combinações possíveis de parâmetrização, teste que será abordado com detalhes em outro tópico. Na ilustração abaixo segue um exemplo da relação CR com taxa de dados (observar que além do CR foi implementado o CRC no teste comparativo):

CHIP
Comparativo da influência do CR na taxa de dados