tesis fer vhdl

115
UNIVERSIDAD NACIONAL AUTÓNOMA DE MÉXICO FACULTAD DE INGENIERÍA TESIS SIMULAR EN VHDL LA IMPLEMENTACIÓN DE ALGORITMOS FEC EN DISPOSITIVOS PROGRAMABLES RECONFIGURABLES QUE PARA OBTENER EL TÍTULO DE INGENIERO ELÉCTRICO ELECTRÓNICO PRESENTA: FERNANDO SERRALDE MEDINA DIRECTOR DE TESIS JUAN FERNANDO SOLÓRZANO PALOMARES CIUDAD UNIVERSITARIA AGOSTO/2013.

Upload: celso-palomino

Post on 16-Aug-2015

231 views

Category:

Documents


1 download

DESCRIPTION

nice

TRANSCRIPT

UNIVERSIDAD NACIONAL AUTNOMADE MXICO FACULTAD DE INGENIERA TESIS

SIMULAR EN VHDL LA IMPLEMENTACIN DE ALGORITMOS FEC ENDISPOSITIVOS PROGRAMABLES RECONFIGURABLES QUE PARA OBTENER EL TTULO DE INGENIEROELCTRICO ELECTRNICO PRESENTA: FERNANDO SERRALDE MEDINA DIRECTOR DE TESIS JUAN FERNANDO SOLRZANO PALOMARES CIUDADUNIVERSITARIAAGOSTO/2013. Cada instante es una oportunidad de rehacer nuestras vidasAgradecimientosA mis padres que son la razn y motivos ms importantes de mi vida, mis hermanossiempre han formado parte de m.MialmamterlaUNAM,todoslosgrandesingenierosyprofesoresquehicieronposible directa o indirectamente la realizacin de este trabajo.Ing. Carolina Garrido, una gran profesora y amiga.A mis amigos y todos aquellos que han sido parte de mi vida en una forma especial.2ndice general1. Introduccin 12. Generalidades 52.1. Antecedentes y contexto general . . . . . . . . . . . . . . . . . . . . . 62.2. Canal . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 82.2.1. Capacidad de canal . . . . . . . . . . . . . . . . . . . . . . . . 102.2.2. Codicacin de canal . . . . . . . . . . . . . . . . . . . . . . . 102.3. Cdigos de deteccin y correccin de errores vs cdigos de lnea . . . 132.4. Errores . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 152.4.1. Error de bit . . . . . . . . . . . . . . . . . . . . . . . . . . . . 152.4.2. Error de rfaga . . . . . . . . . . . . . . . . . . . . . . . . . . 162.5. BER. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 162.6. Ruido, origen y clasicacin . . . . . . . . . . . . . . . . . . . . . . . 162.7. Rendimiento de cdigo . . . . . . . . . . . . . . . . . . . . . . . . . . 183. Teora de codicacin y algoritmos 213.1. Deteccin y correccin de errores . . . . . . . . . . . . . . . . . . . . 213.1.1. ARQ vs FEC . . . . . . . . . . . . . . . . . . . . . . . . . . . 223.1.2. Nomenclatura de codicacin . . . . . . . . . . . . . . . . . . 253.1.3. Cdigos lineales. . . . . . . . . . . . . . . . . . . . . . . . . . 263.1.4. Cdigos Hamming . . . . . . . . . . . . . . . . . . . . . . . . 263.1.5. Cdigos cclicos . . . . . . . . . . . . . . . . . . . . . . . . . . 303.1.6. Cdigos cclicos sistemticos . . . . . . . . . . . . . . . . . . . 333.1.7. Codicacin a bloquesCb(n, k) . . . . . . . . . . . . . . . . . 383.1.8. Codicador Convolucional . . . . . . . . . . . . . . . . . . . . 413.1.9. Turbo codicacin . . . . . . . . . . . . . . . . . . . . . . . . 453.2. Entrelazado de cdigo (inter- leaving) . . . . . . . . . . . . . . . . . . 483.3. FEC y las comunicaciones . . . . . . . . . . . . . . . . . . . . . . . . 483.4. Estandarizacin en codicacion de canal . . . . . . . . . . . . . . . . 504. Mtodos y modelos de diseo 554.1. Por qu un dispositivo reprogramable. . . . . . . . . . . . . . . . . . 574.2. Mtodos de diseo . . . . . . . . . . . . . . . . . . . . . . . . . . . . 594.2.1. Modelos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 594.2.2. Ingeniera concurrente . . . . . . . . . . . . . . . . . . . . . . 60indice general ndice general5. Simulacines e implementacin en VHDL 635.1. Hamming (7,4) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 675.2. Codicador cclico . . . . . . . . . . . . . . . . . . . . . . . . . . . . 705.3. Codicador convolucional . . . . . . . . . . . . . . . . . . . . . . . . 735.3.1. Convolucional por mquina de estados . . . . . . . . . . . . . 786. Conclusiones 83I. Anexos 87A. lgebra moderna 89A.1. Espacios Vectoriales . . . . . . . . . . . . . . . . . . . . . . . . . . . . 89A.2. Subespacio vectorial . . . . . . . . . . . . . . . . . . . . . . . . . . . 90A.3. Campos de Galois o campos nitos . . . . . . . . . . . . . . . . . . . 91B. Indicadores 93B.1. Interferencia intersimblica . . . . . . . . . . . . . . . . . . . . . . . . 93B.2.EbN0. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 93B.3. Informacin y entropa . . . . . . . . . . . . . . . . . . . . . . . . . . 94B.4. Probabilidad de error. . . . . . . . . . . . . . . . . . . . . . . . . . . 94C.Otros procesos 95C.1. Modulacin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 95C.2. Pucturing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 95D. Dispositivos y VHDL 97D.1. VHDL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 97D.1.1. Herramientas . . . . . . . . . . . . . . . . . . . . . . . . . . . 97D.2. Dispositivos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 98D.2.1. FPGAs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 99D.3. Prestaciones de un dispositivo: . . . . . . . . . . . . . . . . . . . . . . 101D.4. Arquitecturas hbridas . . . . . . . . . . . . . . . . . . . . . . . . . . 101D.5. Mega-estructuras . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 101E. Glosario: 103Bibliografa 107ii1. IntroduccinEn todo sistema digital, ya sea de comunicaciones, almacenamiento de informacin,etc. la informacin se ve afectada por diversos fenmenos, generando una gran reade trabajo que busca obtener mejores resultados en la transmisin de la informacin,para lo cual se han desarrollado toda una teora de cdigos, los cuales en general, sehan aplicado primordialmente con tres grandes objetivos:1. Comprimir mensajes.2. Detectar y corregir posibles errores3. Garantizar privacidadEn otras palabras, hacer la transmisin rpida, able y segura. La teora abordapor separado cada uno de estos objetivos, porque de hecho son independientes. Portanto, tenemos tres tipos diferentes de cdigos:1. Cdigos compresores2. Cdigos correctores de errores3. Cdigos criptogrcos.Denirydelimitarcadauno, nospermitetrabajarlosenformatotalmenteinde-pendiente. Para el caso de la abilidad en la transmisin de la informacin, se handesarrollado los cdigos correctores de error bajo dos vertientes;1. Solo deteccin de errores2. Deteccin y correccinLa primera se realiza por requerimiento de repeticin (Automatic Repeat reQuest,ARQ), mientras que la segunda se hace por correccin de los errores en el lado delreceptor (Forward Error Correction FEC). La correccin de los errores en el ladodel receptor (FEC) se compone de dos partes, la aplicacin de un cierto algoritmoFEC en el emisor y, la deteccin y correccin de errores producidos por el canal,mediante la comprobacin del algoritmo recibido en el lado del receptor.Por otro lado, la creciente rea de aplicacin de los diseos en VHDL, comienza aabarcar otras reas en general, por ejemplo, el rea de correccin de errores y pro-cesamiento digital de seales, as como criptografa, donde por razones de seguridady desempeo, resulta preferible realizar su implementacin a nivel hardware sobredispositivos recongurables, implicando esto la comprensin de los correspondientes1Introduccin Introduccinalgoritmos, desarrollo metodolgico de los componentes y el establecimiento del mo-delo correspondiente, as como su respectiva validacin mediante algn simuladorHDL.Los algoritmos de codicacin pueden ser implementados en plataformas de softwarey hardware, sin embargo, los mtodos implementados en hardware ofrecen solucio-nes veloces para aplicaciones donde el trco de datos es ms intenso y requieren deprocesamiento en tiempo real. Los circuitos VLSI (Very Large Scale Integration),y los dispositivos FPGAs (Field Programmable Gate Arrays) son dos alternativaspara implementar estos algoritmos en hardware, teniendo cada uno sus propias ca-ractersticas, los FPGAs ofrecen un balance adecuado entre el espacio requerido porlos circuitos y la rapidez con que se pueden realizar las operaciones de codicaciny decodicacin, aunado a la ventaja de la relacin costo/benecio.Es posible simular los algoritmos de deteccin y correccin de errores hacia adelante(FEC) en lenguajes de descripcin por hardware (HDL), que permiten visualizar elfuncionamiento de dichos algoritmos a n de sintetizar circuitos a implementar, porlo que proponemos: realizar en VHDL, que resulta ser una herramienta ampliamenteusada a nivel industrial, la simulacin de aquel los algoritmos FEC, cuyo desarrol lometodolgico, o partes de l, sirven de fundamento para conformar otros algoritmos.Presentando las ventajas del mtodo modular, as como del diseo descendente Top-Down, no solo dentro de la estructura del diseo algortmico, sino tambin en lacontextualizacin y anlisis del problema.Mediante una metodologa descendente, partiendo de la importancia de los sistemasdigitales, reas de aplicacin de los cdigos detectores de error, contextualizacinde aspectos referentes al proceso de codicacin, hacia la codicacin de canal y losfenmenos que la afectan. Consecuentemente trabajar en la teora de codicacin,que servir de argumento en el proceso de diseo, y como mtodo de comprobacindelasimulacinamodoquepodamossimularycomprobarlaaplicacindeloscdigos FEC, sin necesidad de implementar el proceso de decodicacin.2IntroduccinSistemas digitalesComunicacionesAlmacenamiento de informacin.........Codificador de fuente Codificador de canalEncriptado ... ...Codificador de canalAlgoritmos de codificacinVHDLFigura 1.1.: Esquema Descendente/ModularPor qu es importante la propuesta:Diseo multiplataforma.Uso de un lenguaje HDL de uso libre e industrial, Verilog o VHDLNo usar ningn IP-core.No usarn bibliotecas o cheros de diseo predeterminadas.Implementacin jerrquica y modular.Diseo con potencial de implementacin en hardware.Reconocer y proponer el diseo de bloques o sistemas funcionales, como prin-cipio y fundamento del diseo de libreras y en su caso, de cores.Seleccin de estructuras y niveles en VHDL, adecuados para implementar al-goritmos FEC.32. GeneralidadesActualmenteexisteunafuertetendenciahacialascomunicacionesdigitales, estodebido a sus ventajas frente a las analgicas, claramente cada una con sus respectivasatribuciones. Lascualeshanhechoimprescindibletrabajararduamenteenstas,demodoquel usodeherramientasprogramablesrecongurables(porejemploCPLDS, FPGAs, etc.), resultan de excelente ayuda en el diseo de sistemas decomunicaciones.Ventajas de las comunicaciones digitales:Inmunidad al ruidoResistentes a las distorsiones lineales y no linealesDeteccin y correccin de erroresCompatible con multiplexajeProcesamiento digital de sealesFlexibilidad de implementar hardware digitalDesventajas de las comunicaciones digitales:SincronaEl ancho de banda requerido; para una informacin requiere 10 o ms vecesque si fuera una seal analgicaIntroducen ruido regenerativo llamado jitter o uctuaciones de fase, en losregeneradoresLas caractersticas de un dispositivo reprogramable recongurable (ejemplo un FP-GA), son su exibilidad, capacidad de procesado en paralelo y velocidad1, lo cualles convierte en dispositivos idneos para:- Simulacin y depuracin en el diseo de microprocesadores.- Simulacin y depuracin en el diseo de ASICs.- Procesamiento de seal digital, por ejemplo vdeo.- Sistemas aeronuticos y militares.1Prestaciones del dispositivo.52.1 Antecedentes y contexto general Generalidades2.1. Antecedentes y contexto generalEn sus publicaciones Claude E. Shannon, considerado como el padre de la teora dela informacin, present un modelo para representar un sistema de comunicaciones,fundamentando en estas publicaciones importantes conceptos para la teora de la co-municacin como; ancho de banda, velocidad de transmisin, propiedades idealesde los sistemas, etc.EnsuprimermodelodesistemadecomunicacionesShannondeniqueestesecompona esencialmente por cinco partes:1. Fuente de informacin2. Transmisor3. Canal de comunicacin4. Receptor5. DestinatarioFigura 2.1.: Modelo de ShannonEste modelo sin embargo, ha sufrido diversos cambios, y/o especicaciones debi-doadiversascircunstancias, comoel agregadodecompresin, watermarker, etc.Ahora bien, es importante reconocer que estos varan de acuerdo con el sistema decomunicaciones, sus medios y nes.El esfuerzo principal de este trabajo se concentra en los sistemas digitales de comu-nicaciones, por lo que el enfoque de descripcin, y modelado tendr de igual maneraesta prioridad. A continuacin se ejemplican diversas formas de modelar un sistemade comunicaciones.62.1 Antecedentes y contexto generalFigura 2.2.: Modelos de comunicaciones digitalesCon base en el esquema anterior se simulan los fundamentos FEC usados en un ca-nal digital binario con auxilio de VHDL, para lo cual se estructura el procedimientodesde la conceptualizacin y profundidad a la teora relativa, los algoritmos de co-dicacin de canal, para nalmente a travs de una metodologa descendente y/omodular, obtener la simulacin de los fundamentos correspondientes a los algoritmosde codicacin de canal.2.1.0.1. Trminos y DenicionesSistemade comunicaciones. Es un sistema que tiene como primordial objetivo, elenvi de informacin entre dos o ms puntos en forma de seales analgicas odigitales.Fuentede informacin. La fuente selecciona un mensaje a enviar dentro de variosposibles mensajes a transmitir a la terminal de recepcin. el mensaje puede serde diversas naturalezas, por ejemplo una secuencia de nmeros o letras comoen telegrafa, o una funcin de tiempo continuo f(t), como en radio o telefona.Transmisor. Este opera en el mensaje de diversas formas y produce una seal ade-cuada para la transmisin, a travs del canal.Canal. Es meramente el medio para transmitir la seal del punto de transmisin alde recepcin, este puede ser un par de cables, cable coaxial, una banda o radiode frecuencias, etc. Durante la transmisin o en la terminal de recepcin, laseal puede ser perturbada por ruido o distorsiones. El ruido y la distorsinpueden ser diferenciadas con base en que la distorsin es una operacin ja72.2 Canal Generalidadesaplicada a la seal, mientras que el ruido implica perturbaciones impredeci-bles. La distorsin puede en un principio ser corregida aplicando la operacininversa, mientras que la perturbacin debida al ruido no puede siempre elimi-narse, ya que las seales no siempre presentan los mismos cambios durante latransmisin.Receptor. Este opera al recibir la seal e intenta reproducir el mensaje original.Comnmente realizar las operaciones matemticas inversas del transmisor,pudiendo alterar algunas con el n de mejorar el diseo para combatir el ruido.Destin. Es la persona u objeto a quien est intencionalmente dirigido el mensaje.Codicadorde fuente. Cambia la forma natural de la informacin, a una ms com-prensible para el sistema de comunicaciones.Codicadorde canal. Manipula los datos con la nalidad de darle mayor fortalezaa la informacin frente al ruido, etc.,(una forma comn es introduciendo bitsredundantes), y darle la posibilidad al receptor de detectar y hasta corregirerrores que puedan existir en el proceso de la transmisin.Entropa. Es la diferencia entre los elementos ordenados y desordenados de la in-formacin.Capacidad. Es la habilidad del canal para transmitir informacinUnidad.de.informaci onsegundo.Encriptado. Previene que usuarios no autorizados capten o inyecten informacin alsistema.Watermarker. Tcnicas de manipulacin que buscan proteger los derechos de autory/o reproduccin,Teoremade codicacin de canal. La tasa de errores de datos transmitidos en uncanal connado y con ruido puede reducirse a una cantidad arbitrariamentepequea, si la velocidad de transmisin es menor que la capacidad del canal[Claude E. Shannon]C = W log[1 +SN]Emisor y codicador de fuente El sistema de comunicaciones tiene como nalidadel trasladarinformacinentredosentes, deacuerdoconel modelodecanal decomunicaciones el origen de la informacin a transmitir es la fuente (emisor), la cualexiste con diversas naturalezas, ya sea voz, vdeo, etc, y la informacin que arrojadebe ser tratada para poder ser interpretada por el canal de comunicaciones, ste esel proceso del que se encarga el codicador de fuente.2.2. CanalComo ya se ha dicho el canal de comunicacin es meramente el medio para transmitirla seal del punto de transmisin al de recepcin, teniendo este, distintas naturalezas,82.2 Canalpor tanto diferentes particularidades (efectos del canal) a determinar, durante latransmisin; la seal puede ser perturbada por ruido o distorsiones, las cuales afectande formas diversas a la seal y varan de acuerdo con diversos factores, por ejemploenredesinalmbricas, nosepuedenmodelarestasalteracionesdelaseal, consoloagregarruidogaussianoalaseal, sinoqueresultafundamental agregareldesvanecimiento de la seal causado por las caractersticas de propagacin, as comolas pequeas uctuaciones causadas por la dispersin de la seal, (fenmeno conocidocomo propagacin por trayectorias mltiples), entre otros fenmenos, para poder asrealizar un efectivo modelado, para los nes de este trabajo, se menciona el canalperfectoyel binariosimtrico, loscualessepodranconsiderarcomoloslmitesextremos del modelado del canal, cuando para el binario simtrico la probabilidadde error es del 100 %.Canal perfectoosinruido Un canal ideal es aquel que no presenta fenmenoalguno que afecte la seal transmitida (ruido, atenuacin, etc.) por tanto la sealen el receptor es completamente igual a la seal enviada por el transmisor, de modoque no resulta necesaria la codicacin de canal, este canal ideal solo existe comouna referencia.Canal Binario simetrico (BSC) Este canal es el ms usual de los canales discretossin memoria (DMC) y es denido por una probabilidadp, de que se produzca errorpara cada bit (0 1) enviado.Figura 2.3.: Modelo de canal binario simtricoEste canal es simtrico por ser iguales las probabilidades de recibir un 0 al enviarun 1, y viceversa. La probabilidad de que haya error es la suma de los trminos deun rengln cualquiera es igual a la unidad, en la matriz del canal Q.El valor de la probabilidadp denida para el BSC, equivale a la tasa de error enel bit (BER) del canal digital binario, pero para el clculo de esta BER se empleanlas probabilidades de aparicin de cada uno de los smbolos de la constelacin. Apesar de las discordancias entre los modelos BSC y un canal digital binario, se sueleaceptar en la prctica la equivalencia entre ambos, asignando a p el valor de la BER,del canal digital.92.2 Canal Generalidades2.2.1. Capacidad de canalPara vericar si un sistema de comunicacin es ideal o perfecto, pueden utilizarsemuchos criterios. Para los sistemas digitales, el sistema ptimo es aquel que minimizala probabilidad de error de bit a la salida del sistema sujeto a las restricciones dela energa transmitida y del ancho de banda del canal. Por lo tanto, el error de bity el ancho de banda de la seal son de primordial importancia, por lo que Shannonplantequeesposibletenerunsistemasinerrordebitalasalidaauncuandose introduce ruido en el canal, pero solamente bajo ciertas circunstancias. Shannondemostr que (para el caso de una seal con ruido blanco gausiano aadido) se puedecalcular una capacidad de canal C (bits/s) tal que si la velocidad de informacin R(bits/s) era menor a C, entonces la probabilidad de error se aproximar a cero, ydonde la ecuacin para C, est dada por la expresin;C = B log2(1 +SN)Donde B es el ancho de banda del canal en hertz (Hz) ySNes la relacin de potenciade seal a ruido a la entrada del receptor digital. Shannon no describe cmo construirtal sistema, pero s demuestra que tener tal sistema es prcticamente posible. Portanto, Shannon aporta un lmite de rendimiento terico que puede alcanzarse consistemas de comunicacin prcticos. Los sistemas que se aproximan a este lmite amenudo incorporan codicacin para la correcin de errores.El sistema ptimo en los sistemas analgicos es aquel que puede alcanzar la relacinms grande de seal a ruido a la salida del receptor, sujeta a las restricciones de dise-o tales como el ancho de banda del canal y la potencia transmitida.[Claude E. Shannon]Otroslmitesfundamentalesparalasealizacindigital fuerondescubiertosporNyquist en 1924 y Hartley en 1928. Nyquist demostr que si un pulso representaun bit de datos, se pueden enviar pulsos no interferentes a travs de un canal a unavelocidad no mayor a 2B pulsos, donde B es el ancho de banda del canal en hertz.Esto se conoce ahora como el teorema de dimensionalidad.[Leon W. Couch]2.2.2. Codicacin de canalEn el proceso de cualquier comunicacin, resulta vital, poder obtener en el receptorla informacin del emisor lo ms elmente posible, sin embargo, durante el proceso detransmisin pueden producirse alteraciones en la informacin, debido a la presenciade ruido en el canal (esto debido a los mecanismos de propagacin, la estabilidad delmedio, interferencias, etc.) las no linealidades del transmisor, el ruido de cuantica-cin por el proceso de codicacin, etc. Estas alteraciones causan que al reconstruirla seal en el receptor, sta no corresponda elmente a la enviada por el transmisor,estas alteraciones son llamadas errores. Buscando proteger la informacin de estoserrores, se realiza el proceso de codicacin de canal, el cual primordialmente pro-tege la informacin ante las degradaciones del canal, as como detectar y corregir102.2 Canalerrores producidos en el mismo, mediante el agregado de redundancia y/o alguna se-cuencia estructurada, principalmente. Resulta prudente enfatizar que la codicacinde canal no tiene que ver con la codicacin de fuente. El codicador de canal tienecomo entrada una seal digital procedente del codicador de fuente. El codicadorde canal desconoce si se trata de audio, datos, vdeo o de otro tipo, para l soloson una secuencia de bits cuya integridad se debe proteger de alguna forma paraque puedan ser recuperados con la mayor delidad posible en el receptor.Los sistemas de comunicaciones que trabajan con medios de transmisin muy esta-bles como, bra ptica y/o cable, tienen como principal problema la degradacinde la seal, lo cual es muy predecible y por tanto relativamente fcil de compen-sar, mientras que los sistemas que trabajan con medios menos estables presentanproblemas ms complejos.La codicacin de canal puede tener dos vertientes; ya sea introduciendo redundanciacontrolada(secuenciasestructuradas), omediantelacodicacindelaformadeonda. La primera permite al receptor detectar y estimar la correccin de los erroresen la informacin recibida, a diferencia de la codicacin de fuente que tiene porfuncin reducir al mximo el caudal binario preservando el contenido de informacin,el codicador de canal agrega informacin al cdigo de fuente para posibilitar ladeteccinycorreccindeerrores. Enlasegundavertientesetienepornalidadconvertir un conjunto de pulsos en otro conjunto mejorado, de modo que cada unade las formas de onda as codicadas sea lo menos parecida posible a cualquier otradel conjunto. Esta forma est asociada con la modulacin digital.El proceso de codicacin en general suele componerse en dos partes principalmente,una codicacin externa que se enfoca principalmente a los errores de rfaga queafectan a varios bytes y, una codicacin interna que se enfoca a la distorsin de losbits. La codicacin llamada Exterior se emplea en todos los estndares DVB y secomplementa con la llamada Interior en el caso de los estndares de transmisin vasatlite y terrestre.Estratgicamente la correccin de errores a partir de lo antes mencionado tiene dosprincipales formas:ARQ (Automatic Repeat Request) solicitud automtica de re-envoFEC (Forward Error Correction) corrige a partir de la informacin recibida.stas se detallarn ms adelanteEl principio del problema de codicacin es determinar el cdigo ptimo2para que uncanal dado aproxime la tasa binaria efectiva transmitida, al lmite de la capacidaddeShannon,3lo cual est condicionado por: caractersticasdel canalyrecursos2Decodicador ptimo: se conceptualiza como el mejor decodicador, aquel que elije como palabracdigo, aquella que al ser transmitida, diere en menor nmero de bits en la secuencia recibida.3artculo de Shannon Communication in the presence of noise reimpresin IEEE 1998112.2 Canal GeneralidadesCodificadorExteriorEntrelazadoExteriorCodificadorInteriorEntrelazadoInteriorModuladorSe enfoca a errores de rfagaSe enfoca a la distorcion de bitsFigura 2.4.: Esquema de codicacindisponibles (lmites en la velocidad de transmisin), para esto entonces denimoslos siguientes conceptos:k: longitud de los mensajes de entrada al codicadorn: longitud de las palabras de salida del codicadorTasade codicacin (R): mide la proporcin de cada palabra codicada que trans-porta informacin.R =knPesode palabra: nmero de veces en que un 1 aparece en la palabra ejemplo; seala palabra (0110010), el peso de palabra es 3Distanciaentre dos palabras: nmero de dgitos en los que dos palabras no coinci-den, ejemplo; sean dos palabras cualesquiera d(01100110,01101101) la distan-cia entre estas palabras cdigo es entoces; d(01100110+01101101)=3.Distanciamnima de cdigo: Es la distancia Hamming entre las dos palabras cdigoms cercanas:dmn = min[dmn(c1, c2)] dondec1, c2 C.[Leon W. Couch]4Un tema digno de dedicarle unos segundos de anlisis es la asociacin de los cdigosconlatasadel cdigoR=kn, quemideel nivel deredundanciaempleadoenlacodicacin, indicando el porcentaje de bits codicados que contienen informacindemensaje. Esteconceptotienerelacinconel anchodebandaempleadoenlatransmisin cuando se utiliza codicacin. Por ejemplo, al emplear una codicacinen bloques de tasakn =23 entonces se debe tener en cuenta que en el mismo tiempoTen que originalmente y sin codicar se alojan las dos seales que representan alos dos bits, se tiene ahora que poder alojar a tres seales con la misma ocupacintemporal, de manera que el tiempo de duracin de cada seal pasa a ser deT= 2aT=3, y la ocupacin espectral resulta por tanto mayor. Del mismo modo enun concepto equivalente en el caso del almacenamiento de datos digitales es que4Cuanto ms distintas sean las palabras del cdigo, mejor es la capacidad de discriminacin delcdigo, es decir de deteccin y correccin de errores. Esta diferencia se mide como una distanciade Hamming, que es el nmero de bits distintos entre dos palabras del cdigoViyVj, si sedene al peso de vk, w(vk), como el nmero de 1s de vk, entonces la distancia mnima dmndeun cdigo es el mnimo peso del cdigo (excluyendo la palabra 0), y es una cota mnima parala capacidad de deteccin y correccin de errores. De igual modo, sea C un cdigo lineal cuyamatriz de comprobacin de paridad es H . El peso mnimo ( o la mnima distancia ) de C esigual al menor nmero de columnas de H que suman 0.122.3 Cdigos de deteccin y correccin de errores vs cdigos de lneala informacin codicada requerira de mayor espacio fsico para ser almacenada.Por estas razones ser entonces conveniente mantener la tasa del cdigo en nivelesrazonables, a pesar de que este objetivo va a estar en compromiso con la capacidadde correccin del cdigo. Dado que los 2k mensajes son transformados en palabras den bits, se puede interpretar este procedimiento como la aplicacin de una expansindel espacio vectorial de dimensin 2ka otro de dimensin mayor 2n, del cual seeligen de forma conveniente solo 2k vectores.Por otro lado, de forma ideal lo que se busca es tener un decodicador que proporcio-ne el mismo resultado del decodicador ptimo, pero con una carga computacionalque crezca linealmente de acuerdo con el nmero de bits de informacink. En losltimosaossehanencontradomuchosesquemasdecodicacinconunacargacomputacional lineal pero no ptima. Una excepcin son los cdigos bloque perfec-tos y los cdigos convolucionales, donde el algoritmo de decodicacin proporcionauna efectiva y ptima decodicacin. Si cadak bits de informacin vienen codi-cados de formas independientes, se trata de cdigos bloque, sin embargo esto nosiempre es as, y por ejemplo en los cdigos convolucionales la codicacin se realizasobre un ujo continuo de bits de mensaje. Un cdigo se dice sistemtico si los bitsde mensaje son parte de la palabra cdigo, separados de los bits de redundancia.Para vericar si un sistema de comunicacin es ideal o perfecto, pueden utilizarsemuchos criterios. En los sistemas digitales, el sistema ptimo es aquel que minimizala probabilidad de error de bit a la salida del sistema sujeto a las restricciones dela energa transmitida y del ancho de banda del canal. Por tanto se realizar unaconceptualizacin general de estos.2.3. Cdigos de deteccin y correccin de errores vscdigos de lneaComo se ha mencionado con anterioridad, la codicacin de canal puede tener dosvertientes; ya sea introduciendo redundancia controlada (secuencias estructuradas),o mediante la codicacin de la forma de onda (codicacin binaria de lnea). Sedetallar un poco ms, la diferencia esencial entre ambas, con el n de evitar confu-siones, as como delimitar el campo a abordar, excluyendo del trabajo la codicacinbinaria de lnea.Mientras que un cdigo de deteccin y correccin de errores trabaja esencialmentemediante el agregado de secuencias estructuradas, las cuales pueden componerse,por redundancia controlada, agregado de indicadores de paridad, etc., los Cdigosde lnea trabajan directamente sobre la forma de la onda a transmitir.Podemos ejemplicar la codicacin de deteccin y correccin de errores:Cdigos simplesCdigos convolucionales132.3 Cdigos de deteccin y correccin de errores vs cdigos de lnea GeneralidadesCdigos HammingCdigos lineales de bloqueTurbo cdigosEtc.Dadoel hechoquelacodicacindedeteccinycorreccindeerrores, esel ejecentral del presentetrabajo, la explicacindetallada serealizar demanera mscompleta en un captulo posterior.La codicacin de lnea trabaja sobre la forma de la onda, bajo varios formatos desealizacin de bit-serial, asignando niveles de voltaje, y/o fases de acuerdo con unaregla particular.Losunosycerosbinarios, comoaquellosenlasealizacinPCM, puedenrepre-sentarse en varios formatos de sealizacin serial de bit llamados cdigos de lnea.Existendosprincipalescategoras: conretornoacero(RZ)ysinretornoacero(NRZ). En la codicacin RZ la forma de onda regresa a un nivel de cero volts parauna porcin, generalmente una mitad, del intervalo de bit. Las formas de onda paralos cdigos de lnea pueden clasicarse an ms de acuerdo con la regla empleadapara asignar niveles de voltaje para representar los datos binarios, algunos ejemplosson:Sealizacinunipolar. En la sealizacin unipolar de lgica positiva el 1 binario estrepresentado para un alto nivel (+ A volts) y el 0 binario por un nivelde cero. Este tipo de sealizacin tambin se conoce como modulacinde encendido-apagado.Sealizacinpolar. Los unos y ceros binarios estn representados por niveles posi-tivos y negativos iguales.Sealizacinbipolar (seudoternaria). Los unos binarios estn representados por va-lores alternativamente positivos y negativos. El cero binario est repre-sentado por un nivel de cero. El trmino seudoternario se reere al usode tres niveles de seal codicados para representar datos de dos nive-les (binarios). Esto se conoce como sealizacin de inversin alterna demarca (AMI, por sus siglas en ingls).Sealizacinde Manchester. Cada uno binario est representado por un medio pe-riododepulsodebitpositivoseguidodeunonegativo. Delamismamanera, un 0 binario est representado por un medio periodo de pulsode bit negativo seguido de uno positivo. A este tipo de sealizacin tam-bin se le conoce como codicacin por fase dividida.[Leon W. Couch]142.4 ErroresFigura 2.5.: Codicacin Binaria de lnea [Leon W. Couch]2.4. Errores2.4.1. Error de bitSe denomina asi donde ocurre un error nicamente en un bit de una determinadacadena de bits, ya sea que este cambie de uno a cero o viceversa.El cambio de un bit, es decir, la ocurrencia de un error altera el signicado del dato.Son el tipo de error menos probable en una transmisin de datos serie, puesto queel intervalo de bit es muy breve1f, por lo que el ruido o interferencia que lo causasetendra que tener una duracin muy breve. Sin embargo, s puede ocurrir en unatransmisin paralela, en que un cable puede sufrir una perturbacin y alterar a unbit de cada byte.152.5 BER Generalidades1 1 0 1 0 1 1correcto error correcto1 1 1 1 0 1 12.4.2. Error de rfagaste es la ocurrencia de dos o ms errores en una determinada cadena de bits, estono signica que necesariamente los errores ocurran de forma consecutiva, algunosbits intermedios podran ser correctos.[Leon W. Couch]Este tipo de errores es comn en sistemas seriales, dado que el ruido normalmenteesmayorqueladuracindeunbit, porloqueafectaraunconjuntodebits.El nmero de bits afectados del cdigo depender de la duracin del ruido, estoserrores se pueden producir por irregularidades fsicas o estructurales en los mediosde grabacin.Existen cdigos especiales para corregir este tipo de errores, entre los principales loscdigos cclicos.1 1 0 1 1 1 0 0 1 1 1 0correctos error correcto error correctos1 1 1 1 0 0 0 0 0 1 1 02.5. BEREn los sistemas digitales, la medicin del deterioro a menudo se toma como la pro-babilidad de error en el bit (Pe), tambin conocida como la tasa de error en el bit(BER).Es un ndice del nmero de bits o bloques recibidos incorrectamente, con referenciaal total de bits o bloques de bits enviados durante un periodo de tiempo.Al ser ste un ndice, es posible interpretar;BER = 0 la transmisin ha sido perfecta y sin tipo alguno de error.BER = 1 se puede interpretar como una prdida total de la informacin.Esteparmetroseencuentraenciertaformarelacionadoconlarelacinseal aruido.52.6. Ruido, origen y clasicacinComo parte de los factores que afectan la transmisin de la informacin en un sistemade comunicaciones, encontramos al ruido, por lo que resulta necesario, denirlo, as5Para ms detalles referentes a la BER, como demostraciones, etc, se recomienda visitar entreotros [Leon W. Couch] captulo 7, donde se encontrar ms informacin del tema.162.6 Ruido, origen y clasicacincomo nombrar sus principales causas y efectos que se relacionan con el tema centraldel presente trabajo, sin embargo, no hay necesidad de profundizar en este tema,debido a que no constituye un eje central del trabajo.Ruido Es el factor de mayor importancia en la limitacin de las prestaciones de unsistema de comunicaciones, pues una seal se compone de: seal deseada, y seal nodeseada (ruido), ste puede componerse de seales elctricas indeseables externas ointernas que degradan el rendimiento de un canal de comunicaciones.Origen del ruidoEl movimiento de electrones u otros portadores de carga elctrica en una co-rriente. ste aumenta con la temperatura, la irradiacin de los cuerpos negros[todos los objetos del universo], dependiendo de su temperatura, emiten ener-ga en forma de ondas electromagnticasContactos defectuososArtefactos elctricos, alumbrado ourecenteEl ruido errtico producido por fenmenos naturales como tormentas elctri-cas, eclipses, manchas solares.ClasicacionRuido blanco o gaussianoRuido de impulsosRuido de intermodulacinRuido de amplitudRuido rosaRuido trmicoRuido blanco o gaussiano Es una seal aleatoria con densidad espectral de po-tencia plana [su valor es constante en Hz en ancho de banda] es decir; tiene igualpotencia sobre el espectro de frecuencias. No tiene correlacin, es decir, su valor endos momentos diferentes no estn relacionados, es llamado ruido blanco porque esuna mezcla de todos los colores.Ruido de impulsos Es un ruido de rfaga que dependiendo de su duracin y la tasade transferencia puede cambiar de un bit hasta decenas de bits, se causa por: falsoscontactos, cambios de voltaje en lneas adyacentes, arcos elctricos, interruptores orelevadores en telefona antigua.172.7 Rendimiento de cdigo GeneralidadesRuido de intermodulacin Se produce cuando las seales de 2 lneas se intermo-dulan y forman un producto que cae dentro de la banda de una tercera seal, perofuera de ambas entradas.Ruido de amplitud Comprende un cambio repentino en el nivel de potencia, cau-sado por amplicadores defectuosos.Ruido rosa Tiene espectro de frecuencias tal que su densidad espectral de potenciaes proporcional al recproco de su frecuencia, resulta en un predominio de frecuenciasbajas.Ruido trmico Agitacin trmica de los electrones, no se puede eliminar e imponeun lmite en el desempeo de los sistemas de comunicaciones, se mide en un anchode banda de 1[Hz], y se encuentra expresado;N0 = kT[WHz], donde;k = 1.3803x1023constante de BoltzmannT = Temperatura termodinmica expresada en grados KelvinN0 = Densidad de potencia de ruido2.7. Rendimiento de cdigoEn la gura 2.6, se ilustra la mejora en el rendimiento de un sistema de comunicacindigital quepuedealcanzarseutilizandolacodicacin. Seasumequeunasealdigital conruidoaadidoenel canal estpresentealaentradadel receptor. Semuestra tambin el rendimiento de un sistema que utiliza una sealizacin a travsde la modulacin por desplazamiento de fase binaria (BPSK), cuando se utiliza lacodicacin, as como cuando est no est existente.Lagananciadel cdigosedenecomolareduccinenEbN0(endecibeles)quesealcanza cuando se utiliza codicacin, en comparacin con laEbN0, requerida para elcaso sin codicacin a ningn nivel especco dePe (probabilidad de error de bit).Por ejemplo, como se ve en la gura, se puede alcanzar una ganancia de codicacinde 1.3 dB para una BER de 103, pero la ganancia aumenta si BER es ms pequea,tal quesealcanzaunagananciade2.15dBcuandoPe=105. stamejoraessignicativa en las aplicaciones de comunicaciones espaciales, donde cada decibel demejora es invaluable. Tambin podemos ver el umbral de codicacin en el sentidode que el sistema codicado en realidad suministra un rendimiento ms pobre que elde un sistema sin codicar cuandoEbN0es menor que el valor de umbral, recordandoque existe un umbral de codicacin en todos los sistemas codicados.182.7 Rendimiento de cdigoPara el caso sin codicacin, se emplea el circuito de deteccin ptimo en el receptor, para el caso concodicacin se usa un cdigo Golay.Figura 2.6.: Rendimiento de sistemas digitales con o sincodicacin.[Leon W. Couch]El teorema de Shannon provee laEbN0 requerida para una codicacin ptima. Esto es,si la velocidad de la fuente est por debajo de la capacidad del canal, la codicacinptima permitir la decodicacin de la informacin fuente en el receptor con unaPe = 0, aun cuando exista algn ruido en el canal.193. Teora de codicacin yalgoritmosLadiversidaddeformasdecodicacinsebasaenlanecesidaddeafrontarlassituaciones diversas, como las mencionadas anteriormente, la capacidad del canal,el tipo de datos a transmitir, el ruido y efectos indeseables del canal, etc.Lasfamiliasdecdigossonclasicadasdeacuerdoconlaformaenqueinterac-tan con los datos a transmitir, pero primero se dividen en mtodos de deteccin ycorreccin, ARQ y FEC.3.1. Deteccin y correccin de erroresLos mtodos de deteccin de error suelen ser ms simples que los de correccin deestos, sinembargolarealizacinyaplicacindeestosmtodossiempredependede las caractersticas del sistema en donde se les dese aplicar. Cuando el sistematiene la posibilidad de la comunicacin dplex, es decir cuando la transmisin puederealizarse en ambos sentidos (por ejemplo la lnea telefnica), los cdigos puedenser diseados solo para la deteccin de errores pues la correccin de los mismos serealiza por requerimiento de repeticin (Automatic Repeat reQuest ARQ). En todosistema ARQ existe la posibilidad de la retransmisin, ahora bien existen sistemascon capacidad de transmitir en un solo sentido en los cuales no existe posibilidadde retransmisin, para estos sistemas es necesario utilizar una codicacin capaz depermitir la correccin de los errores en el lado del receptor (Forward Error CorrectionFEC).En la primera, el receptor al detectar problemas con la informacin recibida y so-licitarunre-envo, delainformacinrespectiva; mientrasqueenlasegunda, apartir de la informacin recibida y la estructura de codicacin intenta recuperarla informacin originalmente enviada.La utilizacin de ARQ o FEC depende principalmente de la aplicacin en cuestin,donde por ejemplo ARQ es comnmente usado en sistemas de comunicacin porcomputadora, debido a que su implementacin es relativamente barata y general-mente existe un canal dplex (bidireccional), que permite al receptor transmitir unacuse de recibido ACK para datos correctamente recibidos o NAC datos incorrecta-mente recibidos.213.1 Deteccin y correccin de errores Teora de codicacin y algoritmosPor tanto en presencia de un canal smplex unidireccional, donde el envo del in-dicador ACK o NAC resulta poco factible y los retrasos de transmisin resultanlargos, son preferidas las tcnicas FEC, pues si se usara la tcnica de ARQ, la ve-locidad efectiva de datos resultara pequea, causando por tanto largos periodos deinactividad del transmisor mientras espera el indicador ACK/NAC.El trabajo presente se enfocar principalmente en los FEC, con nalidad primordialde desarrollo de un mtodo de FEC para aplicacin en VHDL.Si bien una prediccin originada por el segundo teorema de Shannon es una sosti-cada tcnica de codicacin que puede llevar la transmisin sobre un canal ruidoso aoperar como si se tratara de una transmisin sobre un canal libre de ruido. El teore-ma de Shannon muestra que la transmisin puede ser libre de errores utilizando unatcnica de codicacin de naturaleza aleatoria. En este proceso, las palabras de men-saje constituidas tpicamente por bloques de bits, son asignadas de forma aleatoria, yque permiten decodicar unvocamente cada mensaje, bajo ciertas condiciones. Estacodicacin propuesta por Shannon es esencialmente una codicacin en bloques.Sin embargo, lo que no queda totalmente denido por el teorema es algn mtodoconstructivo para disear la sosticada tcnica de codicacin. Para esto existen dostcnicas de codicacin que dieren en la mecnica de generacin de redundancia,estas dos tcnicas bsicas son la codicacin en bloques y la convolucional.Las etapas en el codicador se disponen en cascada y cada etapa es independientede la anterior. El orden de las etapas es predispuesta de acuerdo con cada estndar,junto con su correspondiente conguracin.3.1.1. ARQ vs FECResumiendoDeteccin de error y retransmisin (ARQ):Utiliza los bits de paridad (bits redundantes aadidos a los de datos) paradetectar la presencia de errores.El terminal receptor no intenta corregir los errores y simplemente pide al trans-misor una retransmisin de los datos.Se requiere por tanto un enlace doble (ida y vuelta) para establecer este dilogoentre transmisor y receptor.Correccin adelantada de errores (FEC):Necesita slo un enlace de idaLos bits de paridad se disean tanto para detectar la presencia de errores comopara corregirlos.No es posible corregir todos los posibles errores.223.1 Deteccin y correccin de erroresDiferencias y ventajas, ARQ y FEC ARQ funciona mejor que los FEC simplesen presencia de errores por rfaga.FEC funciona mejor que ARQ en presencia de errores independientes.Cuando es posible preveer la naturaleza de los errores, es posible disearse un sistemaFEC ad-hoc ms eciente que ARQ.-aqu la importancia de presentar los tipos de error y los efectos del canal sobre elsistema.FECesmuysensiblealadegradacindel canal (interferencia, ruidoimpulsivo,atenuacin, etc.)ARQ requiere grandes buers de memoria e introduce retardo, mientras que en lossistemas FEC el rendimiento se mantiene constante.Por tanto podemos decir que ARQ tiene ventaja sobre FEC en el sentido de queste es mucho ms simple y requiere el uso de menos redundancia en los cdigos, sinembargo debe usarse FEC cuando la conexin es simplex, cuando los retardos conARQ son excesivos o el nmero esperado de errores sin correccin implique un grannmero de retransmisiones.Para nalizar, se muestra en la gura 3.1. la funcin de los sistemas ARQ, queesencialmente pueden ser interpretados y asociados:ARQ de parada y espera (stop-and-wait - half duplex)El transmisor enva un bloque de informacin y espera del receptor unaseal de reconocimiento (ACK), que le indica que la informacin se harecibido sin errores, antes de que proceda al envo de ms informacin.Si se detectan errores, el receptor enva una seal de no reconocimiento(NAK) y el transmisor retransmite la informacin.Slo requiere una conexin semiduplex.ARQ continua con vuelta atrs (pullback - full duplex)El transmisor enva continuamente paquetes de informacin, con un n-mero de identicacin, y el receptor enva los correspondientes ACK oNAK con la identicacin del paquete. Cuando se recibe un NAK eltransmisor vuelve a retransmitir desde el bloque errneo en adelante.Se requiere una conexin dplex.ARQ con repeticin selectiva (selective repeat - full duplex)Parecidoal anteriorconladiferenciadequesloseretransmitenlosmensajes recibidos con error.233.1 Deteccin y correccin de errores Teora de codicacin y algoritmosFigura 3.1.: Automatic repeat request (ARQ) (a) Stop and wait ARQ (Half du-plex) (b) Continuos ARQ with pullback (full duplex) (c) Continous ARQ withselective repeat (full duplex) [Sklar]FEC Existe una enorme variedad de los algoritmos FEC, sin embargo y bajo elobjetivo de encontrar los fundamentos de la codicacin FEC resulta necesario re-mitirsealacodicacindigital binaria, excluyendoconestoloscdigosquenocumplan con alguna de estas condiciones, (aun aquellos que trabajan los bits comosmbolos y no como bits individuales) como los Reed Solomon, Reed Moler entreotros, de modo que, se hallaran los fundamentos de la codicacin digital binaria.Figura 3.2.: Algoritmos FEC243.1 Deteccin y correccin de errores3.1.2. Nomenclatura de codicacinDistintos autores describen los elementos de la salida del codicador en una grandiversidad de formas: bits de cdigo, bits de canal, smbolos de cdigo y sm-bolo de canal, teniendo todos exactamente el mismo signicado. Los trminos bitsde cdigo y bits de canal resultan ms descriptivos para el caso de cdigos bina-rios, mientras que smbolos de cdigo y smbolos de canal son frecuentementepreferidos porque pueden ser usados para describir igualmente cdigos binarios co-mo no - binarios. Es necesario no confundir smbolos de cdigo con el grupo debits que conforman la transmisin de smbolos.Lostrminosbitdeparidadysmbolodeparidadesusadoparaidenticarsolamente esos elementos del cdigo que representan los componentes redundantesagregados a los datos originales.Todo codicador se caracteriza bsicamente por el tipo y por la tasa de codicacin.Cdigos simples El cdigo de repeticin es una forma simple de realizar una co-dicacin, en el cual simplemente se repite el smbolo transmitido una determinadacantidad de veces. En la transmisin de smbolos binarios el bit 1 se representa poruna secuencia de 1 s , mientras el smbolo 0 se representa por una secuencia de0s. Para el caso de un cdigo de repeticin por ejemplo, las palabras pertenecientesal cdigo son (111) y (000). La primera tpicamente representa al uno, mientras quela segunda representa al cero. Existir deteccin de error cuando se reciba cualquierotra palabra de las ocho posibles que se tienen que no sean las del cdigo. As sesabr que hay errores si se recibe por ejemplo la palaba (110). El proceso de codicares bsicamente ampliar la dimensin del sistema en que se trabaja para elegir en unespacio de vectores mayor, ciertas palabras validas, mientras otras no pertenecen alcdigo. Los otros seis patrones posibles de ser recibidos corresponden a patrones deerror. Se dice entonces que el sistema es capaz de detectar uno o dos errores. As,si consideramos que la posibilidad de un error es mayor que la de dos errores, lospatrones (110), (101) y (011) se considerarn secuencias de tres 1 con un error,de igual manera los patrones de (001), (010) y (100) se considerarn secuencias detres ceros con un error. La correccin establecer que el vector transmitido fue el detres 0s por lo que el bit transmitido es 0, por tanto este sistema solo es capaz decorregir un error.Ahorarecordandoquelaecienciadel cdigosemidepormediodelatasadetransmicin (recordando; R =kn, dondek son los bits de informacin1yn la pa-labra entera que se transmite2), entonces los cdigos de repeticin tienen una bajaeciencia en cuanto a velocidad, a pesar de su buena capacidad de correccin deerrores.[Arnone Ing.]Todo codicador se caracteriza bsicamente por el tipo y por la tasa de codicacin.1bits de entrada2bits de salida.253.1 Deteccin y correccin de errores Teora de codicacin y algoritmosCdigo sistemtico El trmino sistemtico se reere a aquellos cdigos en los queuna de sus ramas generadoras de los smbolos de cdigo emite justamente los bits dedatos originales. Es decir que en la salida aparece explcitamente la entrada. As quecada uno de los puertos de entrada al codicador debe estar conectado directamentecon un puerto de salida. Un codicador es sistemtico si se puede identicar la matrizidentidad entre los elementos de G(x). Por tanto si no se cumplen las propiedadesanteriores, el codicador es no sistemtico. Si k es igual a uno, entonces el codicadores no sistemtico cuando hay al menos un puerto de entrada que no est conectadodirectamente con una salida.Cdigo no recursivo o recursivo En un codicador no recursivo, no hay ningunarealimentacin en ninguna etapa de los registros de desplazamiento, mientras queen un recursivo hay realimentacin, los bits de salida se realimentan a la entrada, oalguna etapa de algn registro de desplazamiento se realimenta a una etapa anteriordel registro de desplazamiento.3[Vi Viuelas]3.1.3. Cdigos linealesUn cdigo lineal es aquel en que las palabras cdigo se calculan mediante trans-formaciones lineales. Todo cdigo lineal debe contener la palabra cero (todos losdigitos de la palabra son cero), Esto es:Si Ci,Cj son palabras cdigo, entonces: Ci +Cj tambien debe ser una palabracdigoLa palabra cdigo ceroC1sta en el cdigoste tipo de cdigo es uno de los ms usados debido a las facilidades que nos presentapara resolver los problemas de codicacin.3.1.4. Cdigos HammingUna clase de cdigos de bloques ampliamente utilizada es la de los cdigos de Ham-ming.Sea para cualquier entero positivod 3 existe un cdigo de Hamming con ciertascaracteristicas particulares, las cuales son:longitud n = 2m1 En este codicador la informacin presentada es segmen-tada en bloques deK bits, que son los denominados bits de mensaje, que enconjunto constituyen 2Kposibiles mensajes. El cdicador transforma cada3Laformaderealimentar losbitsdesalidaaalgunaetapadel registrodedesplazamiento, estambin usado en el diseo de los bloques de cdigo pseudo aleatorio.263.1 Deteccin y correccin de erroresbloque de datos en un bloque ms largo, den>Kbits, agregando los de-nominados bits bits de redundancia o de control de paridad, para formar unapalabra cdigo:Nmero de bits de mensaje codicadon = 2kckc 1Nmero de bits de mensajeK = n kcNmero de bits de control de paridadkc = n KCapacidad de correccion de errorest = 1(dmin = 3)La matriz de paridad de estos cdigosHse forma con las columnas dekc bits nonulas que pude ser implementada de forma:H = [IkccQ]donde la submatriz identidad es demxn y la submatrizQ consiste de 2m m 1columnas formadas con vectores de peso 2 o mayor. La matriz generadora se obtienede acuerdo a la expresin, para la forma sistemtica del cdigo:G = [QTI2kc1]En la matrizHla suma de tres columnas dan como resultado el vector nulo, conlo cual la distancia mnima de estos cdigos esdmin = 3 de forma que pueden serutilizados para corregir patrones de error de un bit o detectar cualquier patrn deerror de dos bits[Arnone Ing.].Criterio de Hamming Sea una secuencia de informacin de K bits. Una decodi-cacin eciente resulta si, al aadirKc bits de codicacin, se cumple que:2k> K +Kc + 1Donde;Kc es el valor de Hamming.[Garca lvarez]Ejemplicandoel algoritmosimpledeHamming; Usando el algoritmo simplede Hamming, para codicar con capacidad de correccin de un error simpleSea la palabra a codicar:Xk = 1001101Deacuerdoal criteriodeHamminKc=44, portantosonnecesarios4bitsderedundancia, los cuales ocupan todas las posiciones de la nueva secuencia que sonpotencias de 2. Este cdigo se denominara (N,K)=(11,7)PosicinKc11 10 9 8 7 6 5 4 3 2 1Xkc1 0 0 X 1 1 0 X 1 X X4De acuerdo al criterio de Hamming para este ejemplo, siKc = 4 &K = 7 24> 7 +4 +1 PortantoKc = 4273.1 Deteccin y correccin de errores Teora de codicacin y algoritmosX es la posicin de los bits redundantes dentro de la secuencia Kc, los cuales resultande la suma en modulo 2, de los nmeros que corresponden a las posiciones que tienenbit=1.11 10117 01116 01103 0011Operando en modulo 211 7 1011 0111 = 1100(11 7) 6 1100 0110 = 1010((11 7) 6) 3 1010 0011 = 1001Por tanto 1001 = KcColocandoKc en las posiciones potencia de 2, los cuales anteriormente marcamoscon XPosicionesKc11 10 9 8 7 6 5 4 3 2 1Xkc1 0 0 1 1 1 0 0 1 0 1Obtenemos la palabra codicada, por tantoXk = 10011100101Bajoestaestructuraesposibledetectarunerrorsimple, enel decodicadorlosnmeros correspondientes a las posiciones con bit=1, incluyendo a los de paridad,se suman en modulo 2.En caso de que la secuencia enviada fuese se recibiera sin errorPosicin11 10118 10007 01116 01103 00111 0001Operando11 8 1011 1000 = 0011(11 8) 7 0011 0111 = 0100((11 8) 7) 6 0100 0110 = 0010(((11 8) 7) 6) 3 0010 0011 = 0001((((11 8) 7) 6) 3) 1 0001 0001 = 0000Como el resultado es una secuencia de ceros, podemos asegurar que no ha habidoerror.Este tipo de codicacin tiene capacidad de detectar un solo error simple y se realizamediante detectar en el receptor una secuencia distinta de ceros, la cual nos indica283.1 Deteccin y correccin de erroresla posicin del error, por ejemplo, si la suma binaria en el receptor igual a 1011,entonces el error se encuentra en la posicin 11, de la palabra cdigo.Esto solo es vlido para la distribucin donde los bits de control son posiciones 2kc,sin embargo existen otras formas de distribuir las posiciones de control, o de paridadpara esas otras formas el receptor debe tener en en su memoria las posiciones dondese insertan dichos bits. De stas y otras variaciones de distintos parmetros es quenacen nuevas formas del cdigo de Hamming.3.1.4.1. Hamming (7,4)Hoy en dia el cdigo (7,4), hace referencia al introducido por Hamming en los 50s,el cual agrega 3 bits de comprobacion, por cada 4 de mensaje.ste algoritmo puede corregir cualquier error de un solo bit, pero cuando hay erroresen ms de un bit, la palabra transmitida se confunde con otra con error en un slobit, siendo corregida, pero de forma incorrecta, es decir que la palabra que se corrigees otra distinta a la original, y el mensaje nal ser incorrecto sin saberlo. Parapoder detectar (aunque sin corregirlos) errores de dos bits, se debe aadir un bitms, y el cdigo se llama Hamming extendido. El procedimiento para esto se explicaal nal.1. Todos los bits cuya posicin es potencia de dos se utilizan como bits de paridad(posiciones 1, 2, 4, 8, 16, 32, 64, etc.).2. Los bits del resto de posiciones son utilizados como bits de datos (posiciones3, 5, 6, 7, 9, 10, 11, 12, 13, 14, 15, 17, etc.).3. Cada bit de paridad se obtiene calculando la paridad de alguno de los bits dedatos.La posicin del bit de paridad determina la secuencia de los bits que alternativamentecomprueba y salta, a partir de ste, de modo que tenemos:Posicin 1: salta 0, comprueba 1, salta 1, comprueba 1, etc.Posicin 2: salta 1, comprueba 2, salta 2, comprueba 2, etc.Posicin 4: salta 3, comprueba 4, salta 4, comprueba 4, etc.Posicin 8: salta 7, comprueba 8, salta 8, comprueba 8, etc.Posicin 16: salta 15, comprueba 16, salta 16, comprueba 16, etc.Por tanto para la posicinn es: saltan 1 bits, comprueban bits, saltan bits,comprueban bits.[Dapaena]3.1.4.2. CODIGOS HAMMING EXTENDIDOS.Estos cdigos se obtienen aadiendo un smbolo adicional que computa todos losanterioresn smbolos de la palabra cdigo. Tienendmin = 4, por lo que detectan293.1 Deteccin y correccin de errores Teora de codicacin y algoritmostodos los errores dobles y a la vez corrigen todos los individuales. La decodicacinse realiza as:Si el ltimo dgito del sndrome es 2, entonces el nmero de errores debe ser impar.La correccin se realizara de la manera habitual.Si el ltimo dgito del sndrome es 0, pero el sndrome no es todo ceros, no haycorreccin posible, porque se ha producido ms de un error, pero los errores doblesson detectados.CDIGOSDUALES. Se dice que dos cdigos son duales, cuando la matriz decomprobacin de paridad H de uno, es la matriz generadora del otro.CDIGOS MAXIMAL-LENGTH. Son los duales de los cdigos HAMMING, porlo que la matriz de comprobacin H de un cdigo Hamming es la matriz generadorade uno maximal-length.CDIGOSREED-MULLER Sonunafamiliadecdigosquecubreunampliorango de tasas y distancias mnimas. Para cualquier valor de m, y jando un r < m,hay un cdigo Reed-Muller conn = 2m.3.1.5. Cdigos cclicosEstos cdigos (BCH, cyclic error-correcting codes) son una subclase de los cdigosde bloque lineales, estos son fcilmente implementados mediante registros de despla-zamiento realimentados. (guras 3.3 y 3.4 ), De igual forma, el clculo del sndromeresulta sencillo mediante registros de desplazamiento. [Lathi]+g1 g2c12 cgn-k-1n-k-1 g+ +c0+mensajebits de paridadsalida decodificadoFigura 3.3.: Registro corrimiento en el codicadorg1c12 cgn-k-1n-k-1 g+ +c0+ +palabra recibida salida de sindrome2 gFigura 3.4.: Registro de corrimiento en el decodicador303.1 Deteccin y correccin de erroresUn cdigo (n, k) se dice que es un cdigo cclico, si cumple la propiedad:Si u-upla u = (u0, u1, u2, ..., un1) es un vector del cdigo en el subespacio S, entoncesu(1) = (un1, u0, u1, u2, ..., un2) obteniendo mediante un desplazamiento; tambines un vector del cdigo en el subespacioS.Los componentes del vector del cdigou = (u0, u1, u2, ..., un1) pueden ser tratadoscomo los coecientes de un polinomio u(X) = u0+u1X+u2X2+...+un1Xn1dondela presencia o ausencia de cada termino en el polinomio indica la presencia de un 1 0 en la correspondiente localizacin de la n-upla. En este caso un desplazamientoi es indicado comou(i)(X) y es obtenido mediante la operacin:u(i)(X) = Xiu(X)mod(Xn+ 1)mod es la operacin mdulo. En un cdigo cclico (n, k), cada polinomio de la palabrade cdigou(X) en l subespacioS, y puede ser expresado como:u(X) = m(x) g(X)siendom(x) l polinomio del mensaje, l cual queda escrito en el registro de corri-miento en el decodicador como:m(X) = m0 +m1X +m2X2+... +mk1Xk1y g(X) es el polinomio generador, l cual tiene la forma: g(X) = g0 +g1X +g2X2+... +gnkXnkdondeg0 ygnk deben ser igual a 1.Acontinuacinsedescribeunaformasistemticaparaobtenerapartirdel vec-tordemensaje m(X) =m0 +m1 +m2 +... +mk1el vectordel cdigou=(r0, r1, ..., rnk1, m0, m1, ..., mk1) donde al principio del vector se encuentran los(n k) bits de paridad y al nal losk bits del mensaje. Al vectoru le correspondeel polinomio de cdigou(X) que entonces puede ser escrito como:u(X) = r0 +r1X +... +rnkXnk1+m0Xnk+m1Xmk+1+... +mk1Xn1sta puede ser representada;u(X) = r(X) +Xnkm(X)De las ecuaciones anteriores podemos lograr una forma sistemtica a partir de c-digos cclicos colocando los dgitos del mensaje en las k etapas ms hacia la derechadel registro de palabra de cdigo y ubicando los dgitos de paridad en las (n k)etapas ms hacia la izquierda, donde se tiene el polinomio generadorr(X) denidopor la operacin:r(X) = Xnkm(X)mod(g(X)).El clculo de los bits de paridad es el resultado de obtener Xnkm(X)mod(g(X)), enotras palabras, es la divisin del polinomio de mensaje desplazado hacia la derechapor el polinomio generadorg(X). La codicacin comienza inicializando con ceroslos registros r0a rnk1, cerrando el sistema de realimentacin y colocando la llave de313.1 Deteccin y correccin de errores Teora de codicacin y algoritmossalida en la posicin que permite que los bits del mensaje m(X)pasen a la salida. Losk bits del mensaje son desplazados dentro del registro r y simultneamente liberadoshacia la salida. Luego de desplazark veces, los registrosr0 arnk1 contienen losbits de paridad. Entonces se abre la llave de realimentacin, y la llave de salida secoloca en la posicin que permite que los bits de paridad lleguen a la salida.El vector de cdigo transmitido, puede estar perturbado por ruido, por lo tanto, elvector recibido puede no coincidir con el transmitido. Si se supone que se transmitela palabra de cdigo u(X) representada por:u(X) =m(X)g(X) El polinomioz(X)recibido estar formado por:z(X) = u(X) +e(X) donde;e(X) es el polinomio errorl sndrome s(X) es el resto de dividir z(X) entre g(X) , quedando estos expresadosde la siguiente forma:z(X) = q(X)g(X) +s(X), donde por tanto obtenemos:e(X) = [m(X) +q(X)]g(X) +s(X)De observar que al dividirz(X) entreg(X) obtenemos como el resto al sndrome,de igual forma que dividiendo e(X) entre g(X). As de la palabra de cdigo recibidaz(X) contiene la informacin necesaria para la correccin de los errores producidos.El clculo del sndrome se realiza mediante circuitos similares a los usados en elcodicador.[Sklar]Figura 3.5.: Esquema de cdigo cclico [Leon W. Couch]En general podemos resumir de los cdigos cclicos:Fcilidad de implementacin en base a registros de desplazamientoLa operacin de multiplicacin en base a un cierto operador genera undesplazamientos cclico en el cdigo transmitido.Gran capacidad de deteccin y correccin de errores323.1 Deteccin y correccin de erroresLinealidad; la suma en modulo 2 de 2 palabras del cdigo resulta otra palabradel cdigo.De acuerdo a su principio de operacin: el mensaje de informacin de k bits esmultiplicado por un operador adecuado en el extremo transmisor, generando elcdigo de n bits (> k). En el extremo receptor el cdigo recibido, con posibleserrores, se divide por el operador para obtener el mensaje, si el resto es cerose valida, segn el resto se corrige (FEC) o se rechaza y pide retransmisin(ARQ).3.1.6. Cdigos cclicos sistemticosSea la polinomio de la palabra cdigo c(x) correspondiente al polinomio de datosd(x)donde;c(x) = xnkd(x) +p(x)d(x) = xnkd(x) +p(x)si;p(x) = Residuoxnkd(x)g(x)dondexnkd(x)g(x)= q(x) +p(x)g(x) bienq(x)g(x) = xnkd(x) +p(x)q(x) es del ordenk 1o menor,q(x)g(x), es una palabra de cdigo.por tanto observamos xnkd(x) representad(x) desplazada hacia la izquierdan-k dgitos, por tanto los primeros dgitos sern precisamente d, y los ltimos sernlos correspondientes a p(x) , los cuales son los dgitos de control de paridad .[Lathi]Ejemplicando Sea el cdigo cclico (7,4) utilizando el polinomio generador; g(x) =x3+x2+ 1y el vector de datosd(x) = (1010) = x3+xPor tantoxnk= x3xnkd(x) = x6+x4Se realiza la division polinomica, para obtenerp(x) y/ o q(x)333.1 Deteccin y correccin de errores Teora de codicacin y algoritmosFigura 3.6.: Divisin polinmicaPor tantoc(x) = q(x)g(x) = xnkd(x) +p(x)c(x) = (x3+x2+ 1)(x3+x2+ 1) = x3(x3+x) + 1c(x) = x6+x4+ 1Por tantoc(x) = (1010001)de esta misma forma obtenemos los dems elementos pertenecientes al cdigod c1111 11111111110 11100101101 11010001100 11001011011 10111001010 10100011001 10010111000 10001100111 01110010110 01101000101 01011100100 01000110011 00110100010 00101110001 00011010000 00000003.1.6.1. Algoritmo para codicacinObtener n-k, del ejemplo anterior (7,4)343.1 Deteccin y correccin de erroresn-k=3realizarxnkd(x) = x3(x3+x) = x6+x4Dividir para obtener q(x) y/o p(x), para poder aplicarPor tantoc(x) = q(x)g(x) = xnkd(x) +p(x)La forma que presentaremos la divisin, es mediante desplazamientos y el uso deor exclusiva (XOR), debido a que sta es la forma en que se suele implementar ladivisin polinmica, en hardware.sea:d(x) = x3+x = (1010)g(x) = x3+x2+ 1 = (1101)xnkd(x) = x6+x4= (1010000)Dividir xnkd(x) g(x) = (x6+x4) (x3+x2+ 1) = (1010000) (1101)Lamultiplicacinserealizaconunregistrodecorrimientoden-k, dederechaaizquierda, colocando 0s a las nuevas posiciones agregadas.d(x) = x3+x = (1010) palabra originaln k = 3 bits a agregarxnkd(x) = x6+x4= (1010000) resultantepara la divisin, se sigue el mtodo;1. Cuando el primer bit de la palabra a dividir es 1 se realiza la OR-exclusiva,pero si el primer digito es 0 no se afecta la palabra.2. Se rota la palabra que sta siendo dividida, de izquierda a derecha3. Repetir punto 1, hasta que el nmero de rotaciones sea igual a n-k4. Rotar inversamente n-k.As, sea xnkd(x) dividido entre g(x);XOR1 0 1 0 0 0 01 1 0 1 g(x)0 1 1 1 0 0 0 1er resultadorotando0 1 1 1 0 0 01 1 1 0 0 0 0Se repite el procedimiento hasta n-k.353.1 Deteccin y correccin de errores Teora de codicacin y algoritmos1 0 1 0 0 0 0XOR1 1 0 10 1 1 1 0 0 0Rotar1 1 1 0 0 0 01 1 1 0 0 0 0XOR1 1 0 10 0 1 1 0 0 0Rotar0 1 1 0 0 0 00 1 1 0 0 0 0XOR1 1 0 10 1 1 0 0 0 0Rotar1 1 0 0 0 0 01 1 0 0 0 0 0XOR1 1 0 10 0 0 1 0 0 0 Residuo0 0 0 0 0 0 1 Rotacion inversa n-kPor tanto el residuo esp(x) = (0000001)Modo simplicado, haciendo corrimiento del polinomio generador, en lugar de lapalabra;1 0 1 0 0 0 01 1 0 10 1 1 1 0 0 01 1 0 10 0 0 1 1 0 01 1 0 10 0 0 1 1 0 01 1 0 10 0 0 0 0 0 1vemos que el residuo es el mismop(x) = (0000001)obtenemos la palabra codicada mediante;c(x) = q(x)g(x) = xnkd(x) +p(x)por tanto;c(x) = x6+x4+ 1lo que es igual ac(x) = (1010001)Comprobamos por tanto la validez del mtodo comparndolo con la ejemplicacinanterior.363.1 Deteccin y correccin de errores3.1.6.2. Cdigos de redundancia cclica (CRC)Cdigos de redundancia cclica son ecientes para la deteccin de errores, se encuen-tran estandarizados y son muy usados en la prctica. El extenso uso de estos cdigoses debido a su facilidad de implementacin en hardware.Estos cdigos se basan en el uso de un polinomio generador G(X) de grador, y en elprincipio de quen bits de datos binarios se pueden considerar como los coecientesde un polinomio de ordenn 1.CRC-12 g(x) = x24+x11+x3+x2+x + 1CRC-16 g(x) = x16+x15+x5+ 1CRC-ITU CRC-CCITT g(x) = x16+x12+x5+ 1UMTS 3Gg(x) = x24+x23+x6+x5+x + 1g(x) = x16+x12+x5+ 1g(x) = x12+x11+x3+x2+x + 1g(x) = x8+x7+x4+x2+x + 1Cuadro 3.1.: Estandarizacin, cdigos cclicosUno de los polinomios generadores que ms se suelen utilizar es el estndar CCITT:x16+x12+x5+ 1.Este polinomio permite la deteccin de:100 % de errores simples.100 % de errores dobles.100 % de errores de un nmero impar de bits.100 % de errores en rfagas (en una serie sucesiva de bits) de 16 o menos bits.99.99 % de errores en rfagas de 18 o ms bits.Cdigos Cclicos de mxima longitud Los Cdigo del tipo (n, k) = (2m+ 1, m)tasa de cdigo relativa bajaR =m(2n1)dondem es el largo del registro de despla-zamiento que son los bits de mensaje, cargados secuencialmente en el registro. paraesto, se carga el registro con los m bits, y se hace circularn = 2m 1 desplaza-mientos para generar los n bits de cdigo de salida, excluyendo la palabra de m 0s.Consiguiendo con sto;dmn = 2m1detecta 2m2 errorescorriget = [(dmn 1)/2] = 2m11 errores373.1 Deteccin y correccin de errores Teora de codicacin y algoritmos3.1.7. Codicacin a bloquesCb(n, k)Funciona mediante un mapeo de smbolos binarios de entradak (bits de mensaje,que en conjunto constituyen 2kposibles mensajes) a smbolos binarios de salidan.Por consiguiente, el codicador de bloque es un dispositivo sin memoria, debido aque n > k , el cdigo puede seleccionarse para proveer redundancia, tal como los bitsde paridad, los cules son utilizados por el decodicador para proporcionar algunadeteccin y correccin de errores, operando estos bits en el proceso de redundanciasobre la informacin del mensaje, de forma que aplicando la operacin inversa enel receptor sea posible recuperar el mensaje original. Por tanto durante el procesodedecodicacin, losbitsderedundanciasondescartados, yaquenocontieneninformacin de mensaje. Estos cdigos, su tasa de cdigo est dada por R=kn.Los valores prcticos paraR varan en el rango de14y78y los valores dek varanenel rango de3avarioscientos[Clark y Cain]. Esteconceptotienerelacinconel ancho de banda empleado en la transmisin cuando se utiliza codicacin. Porejemplo si se empleara una tasank=23entonces se debe tener en cuenta que enel mismo tiempo T en que originalmente y sin codicar se alojan dos seales querepresentan a los dos bits, se tiene ahora que poder alojar a tres seales con la mismaocupacin temporal, de manera que el tiempo de duracin de cada seal pasaa aserde T/2aT/3, ylaocupacinespectral esenconsecuenciamayor. tambienpodemos ver que en el caso de alamacenamiento de datos digitales la informacincodicada requerir de mayor espacio fsico para ser almacenada. Por estas razonesser entonces conveniente mantener la tasa del cdigo en niveles razonables, a pesarde que este objetivo compromete la capacidad de correcin del cdigo.Dado que los 2kmensajes son transformados en palabras de n bits, se puede interpre-tar este procedimiento como la aplicacin de una expansin del espacio vectorial dedimensin 2ka otro de dimensin mayor 2n, del cual se eligen de forma convenientesolo 2kvectores.[Arnone Ing.]stecodicadortieneunacapacidadmsampliadedeteccindeerroresquelacorreccin de estos, dado que para esto se necesita conocer la posicin y la magnituddel error.3.1.7.1. Cdigos lineales de bloqueEsunaclasedecdigosdechequeodeparidadquepuedesercaracterizadopor(n, k), el cdicadorunbloque kdigitosdemensajedentrodeunbloquede npalabra cdigo, construido desde un alfabeto dado de elementos, donde el alfabetoconsiste en dos elementos (0 & 1 ), el cdigo es un cdigo binario.Sea una secuencia binaria, segmentada en bloques deu con una longitud ja dek-bits, esta es codicada en bloquesv den-bits, donden>k. Por tanto tenemosque:Existen 2kdistintas palabras cdigo validas a enviar, ste es el cdigo bloque383.1 Deteccin y correccin de erroresExisten 2ndistintas palabras cdigo posibles a recibirCaracteristicas de un cdigo linealCumple con la suma mdulo 2.En un cdigo lineal (n,k) es posible encontrar k palabras de cdigo linealmenteindependientes,g0, g1, .....gk1 tal que cada palabra cdigov es una combina-cin lineal de esask palabras cdigo:V= u0g0 +u1g1 +.... +uk1gk1conui = 0 1i0 ei < kV=u GDonde tenemos a la matriz Generadora G binaria de (k, n), denida comoG =g0g1..gk1=g00g01. . . g0,n1g10g11. . . g1,n1. . . . . .. . . . . .. . . . . .gk0. . . . gk,n1Si u = (u0, u1, ...uk1) es el mensaje a codicar, entonces podemos generar el corres-pondiente cdigo de la siguiente forma:v = uG = u g0g1..gk1= u0g0 +u1g1 +... +uk1gk1De manera ms general se puede considerar a sta codicacin como una asignacinbiyectiva entre los 2kvectores del espacio vectorial de mensaje y 2nvectores delespacio vectorial codicado. Cuando los valores de k y n son pequeos, la asignacinpuede realizarse a travz de una tabla, pero cuando la magnitud de stas cantidadeses grande, es necesario encontrar un mtodo o mecanismo de generacin de cdigo.En este sentido la linealidad de las operaciones de este mecanismo simplica gran-demente el proceso de codicacin. Se dice que un cdigo de bloques de longitudny 2kpalabras de mensaje es un cdigo de bloques lineal Cb(n, k), si las 2kplabras decdigo forman un subespacio vectorial de dimensink, del espacio vectorial Vn detodos los vectores y componentes de longitudn.La eleccin de los vectores de n bits debe hacerse empleando la menor redundancia,y maximizando la distancia o separacin entre las palabras. En un cdigo de bloqueslineal, el conjunto de 2kpalabras constituye un subespacio vectorial del conjunto devectores den palabras, y por tanto se pude asegurar que la suma de dos palabrascuales quiera del cdigo ser tambin otra palabra o vector del cdigo.393.1 Deteccin y correccin de errores Teora de codicacin y algoritmos3.1.7.2. Matriz GeneradoraSi k es grande, la tabla de implementacin del codicador llega a ser contraproducen-te, para un cdigo (127,92) habran 292o aproximadamente 5x1027vectores cdigo locual requeriria una cantidad de memoria enorme para contener tales palabas cdigo.Afortunadamente es posible reducir la complejidad generando las palabras cdigoconforme son necesarias, en lugar de almacenarlas.De un conjunto de palabras cdigo que forman el bloque lineal de cdigo de dimen-sin k, en el sub espacio del vector binario dimension n, de modo (k