NRZ – Non Return to Zero

NRZ – Non Return to Zero

Oggi voglio parlarti di un concetto fondamentale nel mondo delle telecomunicazioni e dei sistemi digitali: NRZ, cioè Non Return to Zero. In questo articolo ti spiego in modo approfondito cosa significa NRZ, come funziona e perché è così usato nella trasmissione dati digitali. Inoltre, ti farò vedere esempi pratici per farti capire bene cosa succede a livello di segnale. Iniziamo!

Cos’è il codice NRZ?

NRZ, o Non Return to Zero, è un metodo di codifica digitale in cui il segnale non ritorna mai a zero (cioè a uno stato di riferimento o di assenza di segnale) tra un bit e l’altro. In pratica, il livello del segnale rimane costante per tutta la durata di un bit e cambia solo quando il valore del bit successivo è diverso.

Questo significa che un bit “1” potrebbe essere rappresentato da un livello alto, mentre un bit “0” da un livello basso, o viceversa, ma senza tornare a uno stato neutro tra i bit. Questo è diverso da altri codici come il Manchester, dove invece ogni bit ha un cambio di stato a metà del periodo.

Come funziona il codice NRZ?

Nel dettaglio, nel codice NRZ:

  • Se il bit è “1”, il segnale rimane a un livello alto (ad esempio +5V).
  • Se il bit è “0”, il segnale rimane a un livello basso (ad esempio 0V).
  • Il segnale mantiene questo livello per tutta la durata del bit, senza tornare a zero tra un bit e l’altro.

Questo permette di trasmettere dati digitali in modo semplice e con un’ampiezza di banda relativamente bassa, perché non ci sono transizioni inutili.

Esempio tecnico di trasmissione NRZ

Immagina di voler trasmettere la sequenza di bit 1100101. In codice NRZ, la forma d’onda sarà così:

  1. Per il primo bit “1” il segnale è alto (+5V).
  2. Rimane alto anche per il secondo “1”.
  3. Al terzo bit “0” il segnale scende a basso (0V) e ci resta per due bit consecutivi (terzo e quarto).
  4. Al quinto bit torna alto per lo “1”.
  5. Al sesto bit è basso per lo “0”.
  6. Al settimo bit torna alto per l’ultimo “1”.

Quindi il segnale cambia stato solo quando il bit successivo è diverso, altrimenti rimane costante.

Vantaggi del codice NRZ

  • Semplicità: NRZ è facile da implementare sia nella parte di trasmissione che in quella di ricezione.
  • Efficienza di banda: Non ci sono transizioni inutili, quindi l’ampiezza di banda necessaria è inferiore rispetto ad altre codifiche più complesse.
  • Compatibilità: È ampiamente usato in molti protocolli di comunicazione, come USB, RS-232 e altri sistemi seriali.

Limiti e problemi del codice NRZ

Il problema principale del codice NRZ è che se si trasmette una lunga sequenza di bit uguali, ad esempio tanti “0” o tanti “1” consecutivi, il segnale rimane sempre allo stesso livello e non ci sono transizioni. Questo rende difficile per il ricevitore sincronizzarsi con il segnale e capire dove iniziano e finiscono i bit, perché la sincronizzazione spesso si basa proprio sui cambiamenti di livello.

Per esempio, se trasmetti una lunga serie di “1” senza variazioni, il ricevitore può perdere la sincronizzazione e quindi interpretare male i dati ricevuti. Per risolvere questo problema si usano altri codici di linea o tecniche di sincronizzazione esterne.

Tipi di codice NRZ

Esistono due varianti principali di NRZ:

  • NRZ-Level (NRZ-L): Il livello del segnale rappresenta direttamente il valore del bit (alto per “1”, basso per “0” o viceversa).
  • NRZ-Inverted (NRZ-I): Qui la variazione di livello indica un bit “1”, mentre l’assenza di variazione indica uno “0”. In questo modo si cerca di migliorare la sincronizzazione riducendo la possibilità di lunghi periodi senza cambi di stato.

Esempio pratico di NRZ-I

Se trasmetti la sequenza 100110 con NRZ-I, il segnale cambia stato solo quando il bit è “1”. Quindi:

  • Al primo “1” il segnale cambia livello.
  • Al secondo bit “0” il segnale rimane stabile.
  • Al terzo bit “0” ancora stabile.
  • Al quarto bit “1” cambia livello di nuovo.
  • Quinto bit “1” cambia ancora livello.
  • Sesto bit “0” resta stabile.

Questa tecnica aiuta a mantenere una buona sincronizzazione anche in presenza di sequenze di bit ripetuti.

Applicazioni comuni del codice NRZ

Il NRZ è ampiamente utilizzato in vari standard di comunicazione seriale. Per esempio:

  • Interfacce RS-232 e RS-485
  • Trasmissione dati USB di base
  • Alcuni sistemi di comunicazione via fibra ottica

Per chi lavora con microcontrollori, protocolli seriali e sistemi di trasmissione digitale, conoscere NRZ è fondamentale per capire come i dati viaggiano tra dispositivi.

Domani approfondiremo il codice Manchester, una tecnica alternativa a NRZ che risolve i problemi di sincronizzazione grazie a transizioni di segnale garantite a ogni bit. Ti aspetto per continuare a esplorare insieme il mondo delle codifiche digitali!