Turbo codici: differenze tra le versioni

Contenuto cancellato Contenuto aggiunto
Nessun oggetto della modifica
Corretto: "concatenate"
 
(58 versioni intermedie di 15 utenti non mostrate)
Riga 1:
I '''turbo codici''' o '''codici turbo''' sono una classe di recenti [[codifica di canale|codici di correzione degli errori]] ad alte prestazioni, che trovano impiego nelle [[Rete satellitare|comunicazioni satellitari]] nello spazio profondo ed in altre applicazioni in cui i progettisti puntano ad avere il massimo trasferimento di informazione su una [[Banda (informatica)|banda]] limitata in presenza di un [[Segnale elettrico|segnale]] ricevuto molto affetto da [[Rumore (elettronica)|rumore]].
{{S|telecomunicazioni}}
 
I '''turbo codici''' o '''codici turbo''' sono una classe di recenti [[codifica di canale|codici di correzione degli errori]] ad alte prestazioni, che trovano impiego nelle [[Rete satellitare|comunicazioni satellitari]] nello spazio profondo ed in altre applicazioni in cui i progettisti puntano ad avere il massimo trasferimento di informazione su una [[Banda (informatica)|banda]] limitata in presenza di un [[Segnale elettrico|segnale]] ricevuto molto affetto da [[Rumore (elettronica)|rumore]].
 
I codici turbo sono stati teorizzati da [[Claude Berrou]], [[Alain Glavieux]] e [[Punya Thitimajshima]] presentati nel [[1993]] ad una conferenza dell'[[IEEE]]<ref>Berrou C., A. Glavieux e P. Thitmajshima; "''Near Shannon Limit Error-Correcting Coding and Decoding: Turbo Codes''", Proceeding of the IEEE International Conference on Communications, 1993, [[Ginevra]], [[Svizzera]]. [http://www-elec.enst-bretagne.fr/equipe/berrou/Near%20Shannon%20Limit%20Error.pdf]</ref>.
 
{{citazioneSenza necessariafonte|I ricercatori di più atenei verificarono i risultati di Berrou, accorgendosi solo in un secondo momento che i risultati mostrati dal francese non andavano al di sotto di probabilità di errore di 10^-5, scoprendo poi che le curve di errore non decrescevano rapidamente dopo questo valore}}.
{{citazioneSenza necessariafonte|Bisogna ricordare che l'algoritmo di Berrou non è completamente originale. Infatti [[Robert Gallager]], geniale studente e ora insegnante del [[Massachusetts Institute of Technology]], propose già con la sua tesi di dottorato un algoritmo di decodifica, chiamato ''[[belief propagation]]'', per lungo tempo passato inosservato e successivamente ripreso da Berrou. Inoltre la stessa idea dei codici turbo è riconducubilericonducibile ad alcuni lavori di Robert Gallager, sebbene Berrou abbia il merito di avere scelto la soluzione parallela anziché quella seriale, poiché per sua stessa ammissione la prima forma risultava di più semplice implementazione}}.
 
I codici turbo sono ancora ad oggi oggetto di ricerche in numerose università del mondo, allo scopo di raffinarli e di ottenere implementazioni più efficienti.
 
Nella [[teoria dell'informazione]], i '''turbo codici''' (originariamente ''Turbocodes'', in francese Turbocodes) sono una classe di codici FEC [[forwardForward errorError correctionCorrection]] (FEC) ad alte prestazioni sviluppati intorno al 1990-91 (ma pubblicati per la prima volta nel 1993), chele inprime pratica sono stati i primi codici sviluppaticodifiche capaci di avvicinarsi al massimo teorico didella capacità del canale [[teorema di Shannon–HartleyShannon]]–Hartley, unil massimo teorico per la velocità alla quale è ancora possibile una comunicazione affidabile dato un certo livello di rumore specifico. I turbo codici sono utilizzati nelle comunicazioni mobili [[3G]]/[[4G]] (ad es. In [[UMTS]] e [[LTE (telefonia)|LTE]]) e nelle comunicazioni satellitari (nello spazio profondo) così come altre applicazioni in cuidove i progettisti cercano di ottenere un trasferimento affidabile delle informazioni tramite collegamenti di comunicazione, condati i limiti di larghezza di banda o di latenza, ine la presenza di rumore dannoso per i dati. I turbo codici sono attualmente in competizione con i codici [[LDPC]], (''Low-Density-Parity-Check-Code'') che offrono prestazioni comparabili.
 
Il nome "turbo code" deriva dal loopciclo di feedback usato durante lain decodifica, edperciò è stato associato alla retro-alimentazione dai gas di scarico utilizzata per la sovralimentazione dei motori turbo, [[Hagenauer]] ha sostenuto che il termine turbo in tal senso è improprio poiché non vi è alcun feedback nelverso il processo di codifica, sebbene il termine nell'uso popolare rende bene l'idea di un sistema veloce e potente.encoder,<ref>{{citeCita web |url=http://www.ima.umn.edu/csg/bib/bib16.0429hage.pdf |titletitolo=Archived copy |accessdateaccesso=2014-03-20 marzo 2014 |deadurlurlmorto=yes |archiveurlurlarchivio=https://web.archive.org/web/20130611235418/http://www.ima.umn.edu:80/csg/bib/bib16.0429hage.pdf |archivedatedataarchivio=11 Junegiugno 2013 |df=dmy }}</ref>. In ogni caso, il termine turbo, nell'uso popolare, rende bene l'idea di un sistema ingegnoso, veloce e potente.
 
==Storia==
La prima domanda di brevetto per i codici turbo codici è stata depositata il 23 aprile 1991. La domanda di brevetto indica Claude Berrou come l'unico inventore dei codici turbo. La registrazione del brevetto ha portato a numerosi brevetti tra cui il brevetto US 5.446.747 [https://www.google.com/patents/US5446747 US Patent 5,446,747], che è scaduto il 29 agosto 2013.
 
Il primo documento pubblico sui codici turbo codici fu "''Near Shannon Limit Error-correcting Coding and Decoding: Turbo-codes''".<ref>{{CitationCita pubblicazione|url=http://www-elec.enst-bretagne.fr/equipe/berrou/Near%20Shannon%20Limit%20Error.pdf|firstnome=Claude|first2nome2=Alain|first3nome3=Punya|lastcognome=Berrou|last2cognome2=Glavieux|last3cognome3=Thitimajshima|titletitolo=Near Shannon Limit Error – Correcting|accessdateaccesso=11 Februaryfebbraio 2010}}</ref> Questo documento è stato pubblicato nel 1993 negli Atti della Conferenza Internazionale delle Comunicazioni IEEE. Il documento del 1993 era composto da tre distinti contributi combinatimessi insieme per vincoli di spazio. La fusione ha fatto sì che il documento elencasse tre autori: [[Claude Berrou|Berrou]], [[Alain Glavieux|Glavieux]], e [[Punya Thitimajshima|Thitimajshima]] (da [[Télécom Bretagne]], [[École Nationale Supérieure des Télécommunications de Bretagne|ENST Bretagne]], Francia). Tuttavia dalla domanda di brevetto originale è chiaro che Claude Berrou è l'unico inventore dei codici turbo codici e che gli altri autori del lavoro hanno fornito del materiale diverso rispetto ai concetti chiave dei codici turbo codici.
 
I turbo codici furono così rivoluzionari al momento della loro introduzione che molti esperti nel campo della codifica non credettero ai risultati riportati. Quando la performance fu confermata, ebbe luogo una piccola rivoluzione nel mondo della codifica che ha portato allo studio di molti altri tipi di elaborazione di segnale iterativa.
 
La prima classe di codice turbo era il [[codice convoluzionale concatenato parallelo]] (PCCC). Dopo l'introduzione del primo turbo codice parallelo nel 1993, sono state realizzate molte altre classi di codici turbo codici, incluse le versioni seriali didei codici convoluzionali seriali concatenati e dei codici ripetuti-accumulati . Metodi di decodifica turbo iterativi sono stati applicati anche ai più convenzionali sistemi FEC, compresi i codici convoluzionali corretti [[Reed-Solomon]], sebbene questi sistemi di decoder iterativi siano troppo complessi per implementazioni pratiche. La turbo equalizzazione a sua volta è stata derivata dai concetti di turbo codifica.
 
Oltre all'invenzione dei codiciturbo Turbocodici, Claude Berrou ha anche sviluppato i [[codici ricorsivi sistematici convoluzionali]] (RSC), utilizzati nell'esempio di implementazione dei turbo codici descritti nel brevetto. I(i turbo codici che usano i codici RSC sembrano funzionare meglio di quelli che non li usano).
 
Prima dei codici turbo, le migliori implementazioni FEC erano costituite da codifiche seriali concatenaticoncatenate basate su un codice di correzione degli errori esterno [[Reed-Solomon]] combinato con un codice interno convoluzionale a lunghezza corta [[algoritmo di Viterbi]], noto anche come codice [[RSV]].
 
In un saggio successivo, Berrou ha generosamente riconosciuto l'intuizione di "G. Battail, J. Hagenauer e P. Hoeher, che, alla fine degli anni '80, hanno acceso l'interesse per l'elaborazione probabilistica". Aggiungendo che " R. Gallager e M. Tanner avevano già immaginato tecniche di codifica e decodifica i cui principi generali erano strettamente legaticorrelati," anche se i calcoli necessari erano impraticabili ala momentoquel tempo.<ref>{{CitationCita pubblicazione|firstnome=Claude|lastcognome=Berrou|titletitolo=The ten-year-old turbo codes are entering into service|___locationcittà=Bretagne, France|accessdateaccesso=11 Februaryfebbraio 2010|url=http://www-elec.enst-bretagne.fr/equipe/berrou/com_mag_berrou.pdf}}</ref>
 
==Un esempio di encoder==
Esistono molti casi diversi di turbo codici, che utilizzano diversi componenti di codificatori, rapporti di [[input/output]], interleaver e pattern di foratura. Questo esempio di implementazione dell'encoder descrive un classico codificatore turbo e mostra la progettazione generale dei turbo codici paralleli.
 
Questa implementazione dell'encoder invia tre sotto-blocchi di bit. Il primo sottoblocco è il blocco ''m''-bit dei dati del payload o carico utile (che è inviatospedito talesenza e quale, lamodifiche (codifica è ''sistematica''). Il secondo sottoblocco è costituito da ''n/2'' [[bit di parità,]] calcolati dai dati del carico utilepayload utilizzando un codice convoluzionale sistematico ricorsivo (codice RSC). Il terzo sottoblocco è costituito da ''n/2'' bit di parità calcolati su una permutazione nota dei datibit del carico utilepayload, calcolati nuovamenteancora utilizzando un codice RSC. Pertanto, due sottogruppi ridondanti ma diversi di bit di controllo di parità vengonosono inviati insieme al carico utile. Il blocco completo haè composto da ''m + n'' bit di dati, con velocitàrapporto ridottaD/C di un fattore di(Dati/Controllo) ''m / ( m + n )''. La permutazione dei dati del carico utile tra le i due RSC viene eseguito da un dispositivo chiamato interleaver.
La permutazione dei bit del payload tra le i due RSC in parallelo viene eseguito da un dispositivo chiamato interleaver. L'interleaver installato tra i due codificatori (e i decodificatori) è utilizzato per diffondere e sfumare i picchi di errore prodotti sull'output dal rumore che affligge il [[mezzo trasmissivo]].
 
Dal punto di vista dell'hardware, questoil codificatore di turbo-codicecomplessivo consiste di due codificatori RSC identiciin parallelo, С ''C''<sub>1</sub> e ''C ''<sub>2 </sub>, come illustrato nellain figura, che sono collegati tra loro usando uno schema di concatenazione, chiamato concatenazione parallela:
 
[[File:turbo encoder.svg]]
 
Nella figura, ''M'' è un registro di memoria. La linea di ritardo e l'interleaver forzaportano i bit di input d<sub>k</sub> al secondo encoder ad apparire in sequenze diverse rispetto al primo encoder. AllaA primaogni iterazione, la sequenza di ingresso ''d''<sub>k</sub> appare suin entrambe le uscite dell'encoder,uscita ''x''<sub>k</sub> e'(codifica sistematica) con l'aggiunta dei bit di parità ''y''<sub>1k</sub> oro ''y''<sub>2k</sub> per la sistematicità dell'encoder. Se glii due encoder ''C''<sub>1</sub> and e''C''<sub>2</sub> sono utilizzati rispettivamente nellein un numero di iterazioni ''n''<sub>1</sub> ande ''n''<sub>2</sub>, le loro velocità sono rispettivamente uguali a
 
:<math>\begin{align}
Riga 46 ⟶ 45:
 
==Il decoder==
Il decodificatore è costruito in modo simile all'encoder. Due decodificatori elementari sono interconnessi tra loro, ma in modo seriale, non in parallelo. Il decodificatore <math>\scriptstyle DEC_1</math> funziona a bassa velocità (es. <math>\scriptstyle R_1</math>), quindi, è destinatoriferito al codificatore <math>\scriptstyle C_1</math> e corrispondentemente <math>\scriptstyle DEC_2</math> issta forper il <math>\scriptstyle C_2</math>. <math>\scriptstyle DEC_1</math> produce una decisione di tipo ''soft decision'' [[Turbo code#Soft decision approach|soft decision]] che causa un ritardo <math>\scriptstyle L_1</math>. Lo stesso ritardo è causatoprodotto dalla linea di ritardo nell'encoder. L'operazione <math>\scriptstyle DEC_2</math> causa un ritardo <math>\scriptstyle L_2</math>.
 
[[File:turbo decoder.svg]]
 
Viene utilizzato un interleaver installato tra i due decodificatori per diffondere i picchi di errore prodotti in output <math>\scriptstyle DEC_1</math>. Il blocco ''DI'' è un modulo di demultiplexing e inserimento. Funzionadi zeri che funziona come un doppio interruttore, reindirizzando alternativamente i bit di input a <math>\scriptstyle DEC_1</math> in un momento e a <math>\scriptstyle DEC_2</math>, all'altro.e Nellonello stato OFF, alimenta entrambi gli ingressi <math>\scriptstyle y_{1k}</math> and <math>\scriptstyle y_{2k}</math> con dei bit di riempimento (zeri).
 
ConsiderandoConsideriamo un canale AWGN senza memoria [[additive white Gaussian noise|AWGN]] sie supponeassumiamo che alla ''k''-esima iterazione, il decodificatore riceva una coppia di variabili casuali:
 
:<math>\begin{align}
Riga 59 ⟶ 58:
\end{align}</math>
 
dove <math>\scriptstyle a_k</math> e <math>\scriptstyle b_k</math> sono componenti di rumore indipendenti con la stessa varianza <math>\scriptstyle \sigma^2</math>. <math>\scriptstyle Y_k</math> è unil bit ''k''-thmo bitproveniente dall'uscita dell'encoder <math>\scriptstyle y_k</math>.
 
Le informazioni ridondanti sono demultiplexate e inviate attraverso ''DI'' toa <math>\scriptstyle DEC_1</math> (dove <math>\scriptstyle y_k \;=\; y_{1k}</math>) e a <math>\scriptstyle DEC_2</math> (dove <math>\scriptstyle y_k \;=\; y_{2k}</math>).
 
<math>\scriptstyle DEC_1</math> implicaprende una decisione ''soft''; i.e.:
 
:<math>\Lambda(d_k) = \log\frac{p(d_k = 1)}{p(d_k = 0)}</math>
 
e lola consegna a <math>\scriptstyle DEC_2</math>. <math>\scriptstyle \Lambda(d_k)</math> è il cosiddetto ''logaritmo del rapporto di verosimiglianza'' (LLR). <math>\scriptstyle p(d_k \;=\; i),\, i \,\in\, \{0,\, 1\}</math> isè thela ''è la probabilità a posteriori'' (APP) del <math>\scriptstyle d_k</math> bit di dati, che mostracioè la probabilità di nell'interpretare un bit ricevuto <math>\scriptstyle d_k</math> come <math>\scriptstyle i</math>. Prendendo in considerazione l'''LLR'', <math>\scriptstyle DEC_2</math> produce una decisione ''hard''; cioè ilun bit decodificato.
 
L'[[algoritmoAlgoritmo Viterbidi Viterbi]] non è in grado di calcolare l'APP, quindi non può essere utilizzato in <math>\scriptstyle DEC_1</math>. Invece di quello,Qui può essere usato utilizzato un algoritmo BCJR modificato [[BCJR algorithm]]. Per <math>\scriptstyle DEC_2</math> invece l' algoritmo di Viterbi è appropriato.
 
Tuttavia, la struttura rappresentata non è ottimale, perché <math>\scriptstyle DEC_1</math> utilizza solo una parte delle informazioni ridondanti disponibili. Per migliorare la struttura, viene utilizzato un ciclo di feedback (vedere la linea tratteggiata sullain figura).
 
==Approccio alla decisione Soft==
Il front-end del decoder produce un numero intero per ogni bit nel flusso di dati. Questo numero intero è una misura di quanto è probabile che il bit sia uno 0 o 1 ed è anche chiamato ''soft'' bit . Il numero intero potrebbe esserepuò estrattospaziare dallnell'intervallo [-127, 127], dove:
 
* -127 significa "certamente 0"
Riga 81 ⟶ 80:
* 100 significa "molto probabile 1"
* 127 significa "certamente 1"
* ecceteraecc.
 
Questo introduce un aspetto probabilistico al flusso di dati dal front-end, ma trasmette più informazioni su ogni bit rispetto a un solosemplice 0 o 1.
 
Ad esempio, per ciascun bit, il front end di un ricevitore tradizionale deve decidere se una tensione analogica interna è al di sopra o al di sotto di un determinato livello di tensione di soglia. Per un decodificatore di turbo-codice, il front-end fornirebbe una misura di quanto è distante la tensione interna dalla soglia data.
 
Per decodificare il blocco di dati {{nowrapTutto attaccato|''m'' + ''n''}}, il front-end del decoder crea un blocco di misure di verosimiglianzaprobabilità, con una misura di verosimiglianza per ogni bit nel flusso di dati. Ci sono due decodificatori paralleli, uno per iciascuno dei {{frac|''n''|2}} sottoblocchi di bit di parità per ciascuno dei sottoblocchi. EntrambiCiascun idecodificatore decodificatoriusa utilizzano ilun sottoblocco di ''m'' probabilità per i dati del caricopayload utile.''m'' Il(il decodificatore che lavora sul secondo sotto-blocco di parità conosce la permutazione chedi ilbit codificatoreche ha usato peril questosecondo sottobloccocodificatore).
 
==Risoluzione delle ipotesi per trovare i bit==
L'innovazione chiave dei codici turbo codici è il modo in cui utilizzano i dati di probabilità per riconciliare le differenze tra i due decodificatori. Ciascuno dei due decodificatori convoluzionali genera un'ipotesi di fiducia (con relativa probabilità relativa) per la sequenza diricevuto degli ''m'' bit nelrelativi sottoblocco delal carico utile. ILe modellidue disequenze bit delld'ipotesi sui bit vengono confrontaticonfrontate e se concordano il lavoro è finito, mentre se differiscono, i decodificatori si scambiano le probabilità che hanno per ciascun bit nell'ipotesi. Ciascun decodificatore incorpora le stime di probabilità derivate dall'altro decodificatore per generare una nuova ipotesi per i bit nel''m'' del carico utile. Quindi confrontano queste nuove ipotesi. Questo processo iterativo continua fino a quando i due decodificatori giungono alla stessa ipotesi sulla sequenza 'm' di bit del payload, e tipicamente cii riescerisultati convergono (o divergono) in 154 o 1810 cicli.
An analogy can be drawn between this process and that of solving cross-reference puzzles like [[crossword]] or [[sudoku]]. Consider a partially completed, possibly garbled crossword puzzle. Two puzzle solvers (decoders) are trying to solve it: one possessing only the "down" clues (parity bits), and the other possessing only the "across" clues. To start, both solvers guess the answers (hypotheses) to their own clues, noting down how confident they are in each letter (payload bit). Then, they compare notes, by exchanging answers and confidence ratings with each other, noticing where and how they differ. Based on this new knowledge, they both come up with updated answers and confidence ratings, repeating the whole process until they converge to the same solution.
 
Si può tracciare un'analogia tra questo processo e quello di risolvere enigmi dia riferimenti incrociati come ili cruciverba o ili sudoku. Consideriamo un cruciverba parzialmente completato, e probabilmente sbagliato. Due risolutori di rompicapo indipendenti (i decodificatori) cercano di risolverlo: uno possiede solo gli indizi "verticali" (bit di parità) "verticali" e l'altro possiede solo gli indizi "orizzontali". Per iniziare, entrambi i solutori ipotizzano delle risposte alle domande, annotando quanto sono sicuri di ciascuna lettera (bit del payload). Quindi, confrontano le ipotesi, scambiandosi reciprocamente risposte e valutazioni di quando sono fiduciosi delle risposte, notando dove e come si differenziano. Sulla base di queste nuove conoscenze, entrambi forniscono risposte aggiornate e nuove valutazioni di fiducia, ripetendo l'intero processo fino a quando non convergono allasulla stessa soluzione.
L'innovazione chiave dei codici turbo è il modo in cui utilizzano i dati di probabilità per riconciliare le differenze tra i due decodificatori. Ciascuno dei due decodificatori convoluzionali genera un'ipotesi (con probabilità relativa) per la sequenza di ''m'' bit nel sottoblocco del carico utile. I modelli di bit dell'ipotesi vengono confrontati e, se differiscono, i decodificatori scambiano le probabilità che hanno per ciascun bit nell'ipotesi. Ciascun decodificatore incorpora le stime di probabilità derivate dall'altro decodificatore per generare una nuova ipotesi per i bit nel carico utile. Quindi confrontano queste nuove ipotesi. Questo processo iterativo continua fino a quando i due decodificatori giungono alla stessa ipotesi sulla sequenza 'm' di bit del payload, e tipicamente ci riesce in 15 o 18 cicli.
 
Si può tracciare un'analogia tra questo processo e quello di risolvere enigmi di riferimenti incrociati come il cruciverba o il sudoku. Consideriamo un cruciverba parzialmente completato, probabilmente sbagliato. Due risolutori di rompicapo indipendenti (i decodificatori) cercano di risolverlo: uno possiede solo gli indizi "verticali" (bit di parità) e l'altro possiede solo gli indizi "orizzontali". Per iniziare, entrambi i solutori ipotizzano delle risposte alle domande, annotando quanto sono sicuri di ciascuna lettera (bit del payload). Quindi, confrontano le ipotesi, scambiandosi reciprocamente risposte e valutazioni di quando sono fiduciosi delle risposte, notando dove e come si differenziano. Sulla base di queste nuove conoscenze, entrambi forniscono risposte aggiornate e nuove valutazioni di fiducia, ripetendo l'intero processo fino a quando non convergono alla stessa soluzione.
 
==Prestazioni==
I codici Turbo funzionano bene grazie alla combinazione dell'aspetto casuale del codice sul canale con la struttura di decodifica fisicamente realizzabile. I codici Turbo sono affetti da un bassocalo erroreimprovviso di fondoprestazioni al peggiorare del rapporto segnale rumore, detto [[error floor]], in altre parole o correggono tutto bene oppure, oltre una certa soglia di rumore, non correggono più affatto.
 
==Applicazioni pratiche usandodei iturbo codici turbo==
Telecomunicazioni:
* I codiciturbo Turbocodici sono ampiamente utilizzati negliin standard di telefonia mobile [[3G]] and [[4G]]; es., in [[High Speed Packet Access|HSPA]], [[EV-DO]] e [[3GPP Long Term Evolution|LTE]].
* [[MediaFLO]], sistema televisivo mobile terrestre dida [[Qualcomm]].
* IlNel canale di interazione dei sistemi di comunicazione satellitare , come [[DVB-RCS]]<ref>[http://www.etsi.org/deliver/etsi_en/301700_301799/301790/01.05.01_60/en_301790v010501p.pdf Digital Video Broadcasting (DVB); Interaction channel for Satellite Distribution Systems], ETSI EN 301 790, V1.5.1, May 2009.</ref> and [httphttps://web.archive.org/web/20170624210148/https://www.dvb.org/standards/dvb-rcs2 DVB-RCS2].
* NewNelle missioni [[NASA]] missions such ascome [[Mars Reconnaissance Orbiter]] che ora usano codici turbo codici, in alternativa ai codici RS- Viterbi [[Viterbi decoder|Viterbi]].
* La turbo codifica del turbo, come la turbo codifica dela blocco del turboblocchi e la turbo codifica del turbo convoluzionale, è utilizzata in [[IEEE 802.16]] ([[WiMAX]]), uno standard di rete metropolitana senza fili.
 
==Formulazione bayesiana==
Dal punto di vista dell'intelligenza artificiale , i codici turbo codici possono essere considerati come un'istanza di propagazione delle credenze fiduciarie ad anello nelle reti bayesiane [[BayesianRete networkbayesiana]]s.<ref>{{CitationCita pubblicazione|autore=Robert J. McEliece |wkautore=Robert McEliece
|autore2=David J. C. MacKay
| author1=McEliece, Robert J. | author1-link=Robert McEliece
|autore3=Jung-Fu Cheng
| author2=MacKay, David J. C. | author2-link=David J. C. MacKay
| titletitolo=Turbo decoding as an instance of Pearl's "belief propagation" algorithm
| author3=Cheng, Jung-Fu
| journalrivista=IEEE Journal on Selected Areas in Communications
| title=Turbo decoding as an instance of Pearl's "belief propagation" algorithm
| volume=16
| journal=IEEE Journal on Selected Areas in Communications
|numero=2
| volume=16
|pp=140-152
| issue=2
| yearanno=1998
| pages=140–152
| year=1998
| issn=0733-8716
| doi=10.1109/49.661103
Riga 123 ⟶ 119:
}}</ref>
 
==Vedi ancheNote==
<references />
* [[Convolutional code]]
* [[Viterbi algorithm]]
* [[Soft-decision decoding]]
* [[Interleaver]]
* [[BCJR algorithm]]
* [[Low-density parity-check code]]
* [[Serial concatenated convolutional codes]]
* [[Turbo equalizer]]
* [[Forward error correction]]
 
==ReferencesVoci correlate==
* [[Codice convoluzionale]]
{{reflist}}
* [[Algoritmo di Viterbi]]
* [[Soft-decision decodingdecoder]]
* [[Interleaving]]
 
==ExternalCollegamenti linksesterni==
* [httphttps://web.archive.org/web/20180113202924/https://www.spectrum.ieee.org/computing/software/closing-in-on-the-perfect-code "Closing In On The Perfect Code"], IEEE Spectrum, March 2004
* [http://www.csee.wvu.edu/~mvalenti/documents/valenti01.pdf "The UMTS Turbo Code and an Efficient Decoder Implementation Suitable for Software-Defined Radios"] {{Webarchive|url=https://web.archive.org/web/20161020193559/http://www.csee.wvu.edu/~mvalenti/documents/valenti01.pdf |date=20 ottobre 2016 }} (''International Journal of Wireless Information Networks'')
* {{CitationCita pubblicazione| authorautore=Dana Mackenzie | titletitolo=Take it to the limit |url=https://archive.org/details/sim_new-scientist_2005-07-09_187_2507/page/n39 journal|rivista=New Scientist | volume=187 | issuenumero=2507 | yearanno=2005 | pagespp=38–4138-41 | postscript=. | issn=0262-4079 }} ([https://www.newscientist.com/article.ns?id=mg18725071.400 preview], [https://web.archive.org/web/20060902150939/http://geilenkotten.homeunix.org/TC_NS_09072005.pdf copy])
* [httphttps://www.sciencenews.org/articles/20051105/bob8.asp "Pushing the Limit"] {{Webarchive|url=https://web.archive.org/web/20080423213747/http://www.sciencenews.org/articles/20051105/bob8.asp |date=23 aprile 2008 }}, a ''[[Science News]]'' feature about the development and genesis of turbo codes
* [http://www-turbo.enst-bretagne.fr/ International Symposium On Turbo Codes]
* [http://www.iterativesolutions.com/Matlab.htm Coded Modulation Library], an open source library for simulating turbo codes in matlab
* [http://www.ifp.uiuc.edu/~singer/journalpapers/tuchler_2002a.pdf "Turbo Equalization: Principles and New Results"] {{Webarchive|url=https://web.archive.org/web/20090227062216/http://www.ifp.uiuc.edu/~singer/journalpapers/tuchler_2002a.pdf |date=27 febbraio 2009 }}, an ''[[IEEE Transactions on Communications]]'' article about using convolutional codes jointly with channel equalization.
* [http://itpp.sourceforge.net IT++ Home Page] The [[IT++]] is a powerful C++ library which in particular supports turbo codes
* [http://www.inference.phy.cam.ac.uk/mackay/CodesTurbo.html Turbo codes publications by David MacKay]
* [https://aff3ct.github.io AFF3CT Home Page] ([[AFF3CT|A Fast Forward Error Correction Tool]]) for high speed turbo codes simulations in software
{{CCSDS|state=collapsed}}
{{Use dmy dates|date=September 2010}}
 
{{DEFAULTSORT:Turbo Code}}
[[Category:Error detection and correction]]
[[Category:Capacity-approaching codes]]
 
{{Controllo di autorità}}
== Note ==
<references/>
{{Portale|ingegneria}}