Wireless pessimo e trasmissioni lampo, codice miracoloso
Un nuovo schema di codice di correzione errori, ECC, garantisce la trasmissione dati più veloce possibile anche con collegamenti wireless instabili.
Gregory Wornell professore del MIT, Uri Erez dell'Università di Tel Aviv e Mitchell Trott di Google hanno messo a punto un nuovo schema di codifica che garantisce la trasmissione dei dati via cavo o wireless il più veloce possibile (anche con un collegamento instabile), senza conoscere in anticipo i livelli di rumore. Questa tecnica è stata brevettata negli Stati Uniti a settembre, e potrebbe essere adottata molto presto, portando a un uso più efficiente del bandwith a disposizione nel mondo delle comunicazioni.
La trasmissione di dati digitali spesso è compromessa dal rumore. Per questo esistete una tecnica chiamata "codice di correzione errori", o ECC (Error-correcting code), che consente di preservare la fedeltà dei dati persino in presenza di un canale con un livello elevato di rumore.
In gergo un messaggio codificato è definito "codeword". Più rumoroso è il canale, maggiore deve essere la lunghezza del codeword per avere una comunicazione perfetta. Codeword più lunghi aumentano il tempo in cui si trasmette il messaggio, perciò per massimizzare l'efficienza sarebbe meglio avere una comunicazione perfettamente fedele, con un codeword di lunghezza uguale al livello di rumore nel canale.
http://www.tomshw.it/files/2012/02/i...ess-ecc2_t.jpg
I dispositivi wireless, come gli smartphone o trasmettitori Wi-Fi, inviano regolarmente messaggi di prova per misurare i livelli di rumore, in modo da modificare di conseguenza i loro codici. Chiunque usa un telefono sa però che la qualità di ricezione può variare anche entro pochi metri e perciò le rilevazioni del rumore possono diventare rapidamente obsolete, e i dispositivi wireless finiscono per usare codeword troppo lunghi, più banda del necessario, oppure troppo corti rendendo impossibile una decodifica accurata.
Lo schema messo a punto dai tre ricercatori è chiaro. "Inviamo la prima parte del codeword. Se non ha successo, inviamo la seconda, e così via. Non ripetiamo la trasmissione: inviamo sempre la parte successiva piuttosto che la stessa parte. Quando si unisce la prima parte, troppo rumorosa da decodificare, con la seconda e le eventuali parti successive, si ottiene una nuova buona codifica del messaggio per un livello del rumore più elevato", ha spiegato Wornell.
Facciamo un esempio. Diciamo che questo lungo codeword - che chiamiamo master - consiste di 30mila simboli. Se c'è un livello ridotto di rumore nel canale i primi 10mila sono codificati in modo ideale. Nel csao il rumore fosse maggiore, il ricevitore potrebbe aver bisogno anche dei successivi 5mila simboli, o degli altri 7374.
Alla presenza di tanto rumore il ricevitore potrebbe richiedere quasi tutti i 30mila simboli, ma quando ne ha ricevuto un numero sufficiente per decodificare il messaggio sottostante, segnala a chi trasmette di fermarsi. I tre ricercatori hanno dimostrato matematicamente che a quel punto, la lunghezza del codeword ricevuto è la più breve possibile date le proprietà di rumore del canale trasmissivo, anche in presenza di un segnale fluttuante.
http://www.tomshw.it/files/2012/02/i...-deserto_t.jpg
Per produrre il codeword "master" i ricercatori hanno diviso il messaggio da inviare in diversi frammenti di lunghezza identica. Ciascuno è stato codificato usando i codici di correzione errori esistenti, come i codici Gallager, efficienti e comuni nelle trasmissioni wireless. Poi hanno moltiplicato ciascuno dei codeword risultanti per un numero diverso e sommato i risultati. Successivamente hanno moltiplicato i codeword per un insieme differente di numeri e aggiunto questi risultati, producendo il secondo pezzo del codeword master, e così via.
Per decodificare il messaggio, il ricevitore deve conoscere i numeri attraverso i quali i codeword sono stati moltiplicati. Questo numero dipende dalla variabilità attesa del canale di comunicazione. L'unico pezzo di codeword master che deve essere inviato nella sua interezza è il primo. Successivamente, il ricevitore può completare la decodifica con solo pezzi parziali. Quindi è la dimensione del blocco iniziale a essere tarata per la massima qualità.
La complessità del processo di decodifica dipende dal numero di frammenti in cui è diviso il messaggio iniziale. Se questo numero è tre - secondo il professor Wornell è una cifra che dovrebbe essere comune alla maggior parte dei collegamenti senza fili - il decoder deve decifrare tre messaggi invece di uno per ogni pezzo che riceve. Perciò si ritroverà a compiere un numero di calcoli tre volte maggiore rispetto a un codice convenzionale. Un problema che, data la legge di Moore sulla crescita di potenza di calcolo, non si pone, a fronte del vantaggio nella velocità ed efficienza di trasmissione.
Tom's H