1 Introduzione



Scaricare 459.5 Kb.
Pagina2/15
29.03.2019
Dimensione del file459.5 Kb.
1   2   3   4   5   6   7   8   9   ...   15
BIBLIOGRAFIA 28

CAPITOLO 1


1.1 INTRODUZIONE
La trasmissione di un segnale radio può essere schematizzata attraverso l’uso di tre componenti: il trasmettitore, il canale di trasmissione ed il ricevitore.

Il segnale trasmesso utilizza una codifica binaria; però il segnale non sempre viene ricevuto correttamente perché il canale di trasmissione disturba il segnale (per esempio a causa di fading).


La figura sottostante rappresenta un esempio di trasmissione di segnale:

Per questo motivo, al segnale prima di essere trasmesso, viene aggiunta ridondanza.

Facendo un esempio di codifica di segnale si può pensare di ripetere ogni bit n volte.

Riferendosi all’ esempio della figura 11110000 diventa 1111111100000000 (con ridondanza pari a 2/1).

Alcuni algoritmi di codifica consentono, oltre alla rilevazione, anche
la correzione degli errori.  Nell'esempio della codifica banale, è
possibile correggere l'errore se il numero di bit errati è minore della
metà del numero di ripetizioni n.

Esempio: se voglio trasmettere l’intero “1100” con ridondanza 3/1 otterrò l’intero 111111000000.

Se il segnale, passando attraverso il canale, arriverà come 110110000001 potrà essere decodificato utilizzando un algoritmo che, sapendo che il segnale è stato trasmesso con una ridondanza pari a 3/1, controlla tre bit alla volta e, nel caso in cui trovi un solo bit diverso dagli altri due, cambia il suo valore.

Applicando questo algoritmo, il segnale ottenuto risulterebbe 111111000000 e successivamente, eliminando la ridondanza, si otterrebbe 1100 che è lo stesso segnale di partenza.

Non è sicuro però che, aggiungendo ridondanza, il segnale dopo la decodifica risulti uguale a quello inviato; infatti, riferendoci sempre all’esempio di prima, se il segnale arrivato al ricevitore fosse stato 100110000001, la sua decodifica sarebbe risultata 000111000000 che, una volta eliminata la ridondanza, sarebbe uguale a 0100 (che è diverso dal segnale di partenza).

In questo caso, la codifica non è sufficiente a correggere l'errore.

Più si aggiunge ridondanza più è facile che l’errore introdotto dal disturbo del canale risulti ininfluente al momento della decodifica; questo metodo però non risulta molto conveniente perché per inviare X bit se ne dovrebbero in realtà inviare n*X .

Sono stati inventati, perciò, algoritmi più efficienti per la codifica del segnale; due classi di questi algoritmi sono i codici a blocchi che hanno la caratteristica di non agire sul singolo bit ma su blocchi di bit ed i codici convoluzionali.

Ciò che rende vantaggiosi questi algoritmi rispetto all’esempio banale fatto prima è che la capacità di rilevazione dell’errore (Error Detection) e la sua correzione (Error Correction) sono migliori a parità di ridondanza.

Tra i codici a blocchi è particolarmente usato quello che utilizza l’algoritmo di Reed-Solomon (RS) che lavora su simboli di m bit piuttosto che sul bit. Il caso più diffuso e’ quello con m=8 (1 simbolo = 1 byte).

I codici convoluzionali sono codici binari che associano a k bit di informazione n bit di codice da trasmettere sul canale. La loro funzione è identica a quella dei codici a blocco, dai quali si distinguono però per alcune caratteristiche fondamentali:


  • k e n sono generalmente numeri piccoli (valori tipici sono k = 1 e n = 2 o 3, e di solito k, n < 7);

  • gli n bit di codice non dipendono solo dagli ultimi k bit di informazione, ma anche dall’informazione precedente;

Algoritmi associati ai codici convoluzionali sono il decodificatore di


Viterbi e i metodi di punturazione e depunturazione, usati per ottenere
da un dato codice convoluzionale un codice simile a ridondanza inferiore
con un algortimo di semplice implementazione.

Lo scopo del progetto è il seguente: esiste una libreria chiamata “codec” che implementa l’emulazione di un canale di trasmissione radio e contenente dei moduli (codificatori, decodificatori e canali)che vanno messi in cascata per ottenere il risultato finale; il programma però funziona a linea di comando quindi è necessario costruire un interfaccia grafica che, attraverso il meccanismo del “drag and drop”, permetta all’utente di emulare un canale radio.

Visto che il programma può essere eseguito su macchine diverse, il linguaggio di programmazione che si è scelto di usare è il Python (e la sua GUI wxPython) grazie alla sua portabilità su numerose piattaforme.




Condividi con i tuoi amici:
1   2   3   4   5   6   7   8   9   ...   15


©astratto.info 2019
invia messaggio

    Pagina principale