Tcnicas Digitales III Trabajo prctico N: 1 Mtodos de Codificacin, Control de errores, Introduccin a Matlab, Codificacin CM !lu"no: M#N!$!, Sergio rofesor: Ing. %!$C#, Gustavo &ec'a de resentacin: 15 de Abril de !11 FA"U#TA$ R%GI&NA# TP1''()todos de "odi*icacin+ "ontrol de errores+ "odi*icacin P"( PARAN, Tcnicas Digitales III 1. (-T&$&S $% "&$IFI"A"I.N 1.1 Codificacin: #a codi*icacin re/resenta la conversin de datos de la se0al original a otro siste1a e2uivalente+ donde cada bits de la 1is1a se corres/onde a la se0al resultante. #a ra3n de la codi*icacin de/ende de lo 2ue se necesite reali3ar con /osterioridad. Por lo 2ue resulta conveniente codi*icar datos /ara reducir la tasa de error /or bit /ara tener 1a4or o 1enor in1unidad al ruido+ tener la /osibilidad de detectar errores+ no /erder el sincronis1o de la se0al cuando se trans1ite 4 eli1inar el nivel de continua no deseado /or las inter*erencias 2ue se /roducen en una l5nea directa. #os 1)todos de codi*icacin 1s conocidos son6 NR7'# 8No retorno a 3ero9 NR7'I 8No retorno a 3ero Invertido9 :i/olar'A(I Pseudoternario (anc;ester (anc;ester $i*erencial :<7S =$:> A continuacin se ;ar una breve descri/cin de los 1)todos utili3ados en el /rctico. (NRZ-L No Retorno a "ero 8?Nonreturn to 7ero?9+ es el ti/o de codi*icacin 1as si1/le el cual re/resenta un cero lgico co1o una tensin /ositiva 4 un uno lgico co1o una tensin negativa. %l inconveniente de este 1)todo de codi*icacin es 2ue tiene /roble1as de sincroni3acin+ asi1is1o co1o la /resencia de una co1/onente continua 2ue desvirtuar el resultado real. @NRZ-I No retorno a cero invertido 8?Nonreturn to 7ero Invert on ones?9 estas se0ales de dos niveles tienen una transicin si el bit 2ue se est trans*iriendo es un uno lgico 4 no lo tienen si lo 2ue se trans1ite es un cero. #os datos se codi*ican 1ediante la /resencia o ausencia de una transicin de la se0al al /rinci/io del intervalo de duracin del bit 8;a4 2ue decidir un valor de arran2ue9. *Bipolar-AMI %l cdigo A(I 8Alternate (arA Inversion ' Inversin de 1arcas alternadas9 se /uede de*inir co1o un cdigo bi/olar con retorno a cero. %n este cdigo+ cuando se asigna un i1/ulso /ositivo al /ri1er B1C+ al siguiente ?1? se le asigna un i1/ulso negativo+ 4 as5 sucesiva1ente. Un ! binario se re/resenta /or ausencia de se0al. %n consecuencia+ este es un cdigo de tres niveles. MENARA Sergio Daniel 1 FA"U#TA$ R%GI&NA# TP1''()todos de "odi*icacin+ "ontrol de errores+ "odi*icacin P"( PARAN, Tcnicas Digitales III @Manchester Ta1bi)n se suele lla1ar codi*icacin bi*ase'#+ es un 1)todo de codi*icacin en el 2ue en cada tie1/o de bit ;a4 una transicin entre dos niveles de se0al. %s una codi*icacin auto sincroni3ada+ 4a 2ue en cada bit se /uede obtener la se0al de reloD+ lo 2ue ;ace /osible una sincroni3acin /recisa del *luDo de datos. Provee una *or1a si1/le de codi*icar secuencias de bits+ incluso cuando ;a4 largas secuencias de /eriodos sin transiciones de nivel 2ue /uedan signi*icar la /)rdida de sincroni3acin+ o incluso errores en las secuencias de bits. %sta codi*icacin ta1bi)n nos asegura 2ue la co1/onente continua de las se0ales es cero si se e1/lean valores /ositivos 4 negativos /ara re/resentar los niveles de la se0al+ ;aciendo 1s *cil la regeneracin de la se0al+ 4 evitando las /)rdidas de energ5a de las se0ales. Una transicin en la 1itad del intervalo de duracin del bit de baDo a alto re/resenta un 1+ 4 una transicin de alto a baDo re/resenta un !. *Manchester diferencial Ta1bi)n conocida co1o "$P8"onditional $eP;ase encoding9 es un 1)todo de codi*icacin de datos en los 2ue los datos 4 la se0al reloD estn co1binados /ara *or1ar un Enico *luDo de datos auto'sincroni3able. %s una codi*icacin di*erencial 2ue usa la /resencia o ausencia de transiciones /ara indicar un valor lgico.
Un bit F1F se indica ;aciendo en la /ri1era 1itad de la se0al igual a la Elti1a 1itad del bit anterior+ es decir+ sin transicin al /rinci/io del bit. Un bit F!F se indica ;aciendo la /ri1era 1itad de la se0al contraria a la Elti1a 1itad del Elti1o bit+ es decir+ con una transicin al /rinci/io del bit. %n la 1itad del bit ;a4 sie1/re una transicin+ 4a sea de alto a baDo o viceversa. %s /osible ta1bi)n reali3ar una con*iguracin inversa sin inconvenientes. 1. #jercicio 1: Secuencia de bits6 0 1 0 1 0 0 0 0 0 0 0 0 0 1 0 1 1 MENARA Sergio Daniel 2 FA"U#TA$ R%GI&NA# TP1''()todos de "odi*icacin+ "ontrol de errores+ "odi*icacin P"( PARAN, Tcnicas Digitales III 1.> #jercicio ): La siguiente secuencia est codifcada en cdigo Manchester: #5neas de re*erencia La secuencia de datos original es: 11110010100 . "&NTR&# $% %RR&R%S .1 ' C$C "4clic Redundanc4 "ode 8"R"9 o cdigos de redundancia c5clica tiene una re/resentacin /olin1ica 4 /or ello ta1bi)n es lla1ado cdigo /olino1ial. Se tiene entonces un 1ensaDe de in*or1acin de A bits con un grado de A'1 a trans1itir 2ue se le su1ar deter1inado nE1ero de bits de redundancia. Para generar el "R" se e1/lea un /olino1io generador P8G9 o G8G9 de grado r con los bits de 1a4or 4 1enor /eso a 1. G8G9 tiene rH1 bits+ siendo r el nE1ero de bits de "R" a generar+ es decir+ el /olino1io generador tiene un bit de 1s 2ue el nE1ero de bits del ca1/o de "R" 2ue 2uere1os obtener. #os datos a tener en cuenta /ara la co1unicacin con "R" son6 I"antidad de bits de redundancia6 r I"antidad de bits de in*or1acin6 A IP8G9 o G8G96 Polino1io generador. Grado r+ longitud 8r H 19 bits II 8G96 Polino1io in*or1acin. Grado 8A'19+ longitud A bits I(8G96 Polino1io 1ensaDe+ in*or1acin 4 redundancia I%8G96 Polino1io error 8introducido /or el canal9 I(J8G96 Polino1io 1ensaDe+ recibido /or el rece/tor %l algorit1o /ara calcular la redundancia es el siguiente6 ' En el Emisor6 (8G9 K I8G9 @ G r ' Resto LI8G9 @ G r M G8G9N ' En la lnea6 (J8G9 K (8G9 H %8G9 ' Receptor6 R8G9 K Resto L(J8G9 M G8G9N %n el rece/tor+ si el resto es igual a cero+ se su/one sin error. . #jercicio *: Usando un /olino1io "R"'""ITT+ obtener el cdigo "R" de 1O bits /ara un 1ensaDe *or1ado /or un 1 seguido de 15 ceros. Polino1io in*or1acin6 I8G9KG 1O K1!!!!!!!!!!!!!!! Polino1io generador6 G8G9KG 1O HG 1 HG 5 H1K1!!!1!!!!!!1!!!!1 donde rK1O+ /or lo 2ue el clculo del "R" ser6 G r K!!!!!!!!!!!!!!!! cantidad de ceros a agregar al 1ensaDe R8G9K Resto LI8G9 @ G r M G8G9N+ "R" 2ue se agrega en los r bits de 1enor /eso al 1ensaDe a trans1itir. MENARA Sergio Daniel 3 FA"U#TA$ R%GI&NA# TP1''()todos de "odi*icacin+ "ontrol de errores+ "odi*icacin P"( PARAN, Tcnicas Digitales III 1!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! P1!!!1!!!!!!1!!!!1 1!!!1!!!!!!1!!!!1 1!!!1!!!1!!11!!! !!!!1!!!!!!1!!!!1!!!! 1!!!1!!!!!!1!!!!1 !!!!1!!1!!!11!!!1!!!! 1!!!1!!!!!!1!!!!1 !!!11!!11!!11!!!1!!! 1!!!1!!!!!!1!!!!1 !1!!!1!!11!1!1!!1! 1!!!1!!!!!!1!!!!1 F"SM"R" !!!!!!!11!111!!11!!! .> #jercicio +: Un "R" se constru4e /ara generar F"S 8Fra1e ";ecA Su19 de Q bits /ara 1ensaDes de 11 bits. %l /olino1io generador es G8G9 K GQ H G> H 1. "odi*icar la secuencia de bits 1!!11!111!!. Siendo el #S: el situado a la i32uierda. $atos6 Polino1io in*or1acin6 I8G9K!!111!11!!1 Polino1io generador6 G8G9K11!!1 con rKQ I8G9@G r K G 1 HG 11 HG 1! HG < HG R H G Q K 111!11!!1!!!! !!111!11!!1!!!!P11!!1 !!!!! !!1!111!1 !!111! !!!!! !111!1 11!!1 !!1!!1 !!!!! !1!!1! 11!!1 !1!11! 11!!1 !11111 11!!1 !!11!! !!!!! !11!!! 11!!1 !!!!1! !!!!! !!!1!!
(8G9 K I8G9 @ G r ' Resto LI8G9 @ G r M G8G9N (8G9 K !!111!11!!1!!!!H!1!! M,-. K !!111!11!!1!1!! K - 1) /- 11 /- 10 /- 1 /- 2 /- + /- ) MENARA Sergio Daniel 4 FA"U#TA$ R%GI&NA# TP1''()todos de "odi*icacin+ "ontrol de errores+ "odi*icacin P"( PARAN, Tcnicas Digitales III .Q #jercicio 3: Se desea enviar un 1ensaDe utili3ando el /olino1io generador es G8G9 K G5 H GQ H 1. &btener el 1ensaDe co1/leto /ara el siguiente cdigo6 11!!!!!111 $atos6 Polino1io in*or1acin6 I8G9K 11!!!!!111 Polino1io generador6 G8G9K11!!!1 con rK5 I8G9@G r K G 1Q HG 1> HG R HG O HG 5 K 11!!!!!111!!!!! 11!!!!!111!!!!! P11!!!1 11!!!1 1!!!!11!1! !!!!!1! !!!!!! !!!!1!1 !!!!!! !!!1!11 !!!!!! !!1!111 !!!!!! !1!111! 11!!!1 !11111! 11!!!1 !!1111! !!!!!! !1111!! 11!!!1 !!11!1! !!!!!! !11!1! (8G9 K 11!!!!!111!!!!! H 11!1! (8G9 K 11!!!!!11111!1! M,-. 4 - 1+ /- 1* /- 2 /- 5 /- 3 /- + /- * /- 1 MENARA Sergio Daniel 5 FA"U#TA$ R%GI&NA# TP1''()todos de "odi*icacin+ "ontrol de errores+ "odi*icacin P"( PARAN, Tcnicas Digitales III >. INTR&$U""I.N A (AT#A: >.1 #jercicio 5: Realice un /rogra1a en (atlab 2ue /er1ita su1ar dos se0ales senoidales+ donde se /odr ingresar las *recuencias de cada se0al+ a1/litud 4 tie1/o de duracin. (ostrar las se0ales originales 4 la su1a en una sola *igura en tres i1genes se/aradas. Progra1a6 clcS clearS closeS aKin/ut8FIngrese la a1/litud de la se0al A6F9S *aKin/ut8FIngrese la *recuencia de la se0al A6F9S bKin/ut8FTnIngrese la a1/litud de la se0al :6F9S *bKin/ut8FIngrese la *recuencia de la se0al :6F9S /Kin/ut8FTnIngrese el tie1/o de duracin de las se0ales8/aso96F9S tK!61M/61S U:ase de tie1/o de 1s con intervalos de 1M/ SaKa@sin8@/i@*a@t9S U"argo los /ar1etros de cada se0al SbKb@sin8@/i@*b@t9S SKSaHSbS USu1o a1bas se0ales sub/lot8>+1+19 U#as visuali3o en una sola /antalla /lot8t+Sa+FrF9+grid on+title8FFuncin AF9 sub/lot8>+1+9 /lot8t+Sb+FgF9+grid on+title8FFuncin :F9 sub/lot8>+1+>9 /lot8t+S9+grid+title8FFuncin su1a AH:F9 >. #jercicio 2: Realice en (atlab una *uncin /ara reali3ar el /roducto de dos se0ales senoidales+ donde las *recuencias de estas se0ales se ingresarn /or el usuario. (ostrar todas las se0ales en una *igura 4 en una sola i1agen+ con colores distintos. #a se0al resultante ser guardada en un arc;ivo de teGto. Progra1a6 clcS clearS closeS *aKin/ut8FIngrese la *recuencia de la se0al A6F9S *bKin/ut8FTnIngrese la *recuencia de la se0al :6F9S /Kin/ut8FTnIngrese el /aso6F9S tK!61M/61S SaKsin8@/i@*a@t9S U"argo los /ar1etros de cada se0al SbKsin8@/i@*b@t9S PKFProducto8Sa+Sb9S U(ulti/lico a1bas se0ales /lot8t+Sa+FrF9 USe0al A en roDo ;old on /lot8t+Sb+F''gF9 USe0al : en verde con l5nea a tra3os ;old on /lot8t+P+F6bF9+title8FFuncin /roducto A G :F9 USe0al /roducto en a3ul con l5nea de /untos *idK*o/en8FeDercicioR.tGtF+FVF9S U"reo el arc;ivo /ara guardar los datos MENARA Sergio Daniel 6 FA"U#TA$ R%GI&NA# TP1''()todos de "odi*icacin+ "ontrol de errores+ "odi*icacin P"( PARAN, Tcnicas Digitales III */rint*8*id+FUdTrF+P9S UAsigno el *or1ato con el 2ue se guardarn *close8*id9 U#o cierro Funcin /roducto6 *unction /roducto K FProducto8G+49UIngreso co1o argu1ento los valores de A 4 : /roducto K G.@4S U#a variable /roducto retorna el /roducto de se0al A 4 : >.> #jercicio 1: :asado en el /roble1a anterior leer el arc;ivo de teGto generado. Se /ide reali3ar una *uncin /ara calcular6 %l valor 1Gi1o %l valor 15ni1o %l valor 1edio (ostrar la gr*ica de esta se0al. $e acuerdo a los siguientes valores de *recuencia 4 /aso utili3ados en el eDercicio R co1o eDe1/lo se obtuvo lo siguiente6 Frecuencia de A6> Frecuencia de :6O Paso61!! Por lo 2ue la se0al obtenida co1o /roducto de a1bas se0ales A 4 : se 1uestra a continuacin. *igura 1 (Gi1o6 !.ROWQ+ (5ni1o6 '!.ROWQ+ (edio6 ! Progra1a6 clcS MENARA Sergio Daniel 7 FA"U#TA$ R%GI&NA# TP1''()todos de "odi*icacin+ "ontrol de errores+ "odi*icacin P"( PARAN, Tcnicas Digitales III clearS closeS VKload8FeDercicioR.tGtF9 U"argo el arc;ivo creado en el eDercicio anterior save V UGuardo su valor /or cual2uier ca1bio 2ue ocurra en el /roceso (aGK(aGi1o8V9 U:usco el 1Gi1o valor de la *uncin guardada (inK(ini1o8V9 U:usco el 15ni1o (edK(edio8V9 U"alculo su valor 1edio /lot8V+FgF9+ grid UGra*ico la se0al obtenida en el eDeIR Funcin (Gi1o6 *unction 1aGIv K (aGi1o8A9 1aGIvK1aG8A9S URetorno el valor 1Gi1o de la se0al obtenida Funcin (5ni1o6 *unction 1inIv K (ini1o819 1inIvK1in819S URetorno el valor 15ni1o de la se0al guardada Funcin Xalor (edio6 *unction 1edIv K (edio8;9 1edIvK81in8;9H1aG8;99M.!S U"alculo el valor 1edio de la se0al Q. "&$IFI"A"I.N P"( Q.1 CM: #a 1odulacin /or i1/ulsos codi*icados o P"(8Pulse "ode (odulation9 es un /rocedi1iento de 1odulacin utili3ado /ara trans*or1ar una se0al analgica en una secuencia de bits 8se0al digital9. Una tra1a P"( es una re/resentacin digital de una se0al analgica en donde la 1agnitud de la onda analgica es to1ada en intervalos uni*or1es 81uestras9+ cada 1uestra /uede to1ar un conDunto *inito de valores+ los cuales se encuentra codi*icados. "o1o se /uede a/reciar la 1odulacin /or i1/ulsos /osee tres eta/as i1/ortantes6 (uestreo6 "onsiste en to1ar 1uestras 81edidas9 del valor de la se0al n veces /or segundo+ con lo 2ue tendrn n niveles de tensin en un segundo. "uanti*icacin6 #a cuanti*icacin lo 2ue ;ace es convertir una sucesin de 1uestras de a1/litud continua en una sucesin de valores discretos /reestablecidos segEn el cdigo utili3ado. $urante el /roceso de cuanti*icacin se 1ide el nivel de tensin de cada una de las 1uestras+ obtenidas en el /roceso de 1uestreo+ 4 se les atribu4e un valor *inito 8discreto9 de a1/litud+ seleccionado /or a/roGi1acin dentro de un 1argen de niveles /revia1ente *iDado. "odi*icacin6 MENARA Sergio Daniel 8 FA"U#TA$ R%GI&NA# TP1''()todos de "odi*icacin+ "ontrol de errores+ "odi*icacin P"( PARAN, Tcnicas Digitales III %n la codi*icacin+ a cada nivel de cuanti*icacin se le asigna un cdigo binario distinto+ con lo cual 4a tene1os la se0al codi*icada 4 lista /ara ser trans1itida. "onversin digital analgica6 %n la recu/eracin se reali3a un /roceso inverso+ con lo 2ue la se0al 2ue se reco1/one se /arecer 1uc;o a la original+ si bien durante el /roceso de cuanti*icacin+ debido al redondeo de las 1uestras a los valores cunticos+ se /roduce una distorsin conocida co1o ruido de cuanti*icacin. %sto se soluciona eligiendo intervalos de cuanti*icacin /ti1os /ara 1ini1i3ar al 1Gi1o los errores. Q. #jercicio 6: Se /ide generar el cdigo P"( corres/ondiente a una se0al 1uestreada+ utili3ando el /rogra1a (AT#A:. "aracter5sticas6 Se0alK se /ide 2ue la se0al de entrada sea la /roveniente de un 1icr*ono conectado a la P". Frecuencia de 1uestreoK a deter1inar $uracin de la se0alK a deter1inar Niveles de cuanti*icacinK a deter1inar Se re2uiere6 Generar la se0al &btener el cdigo P"( Guardar el cdigo P"( en un arc;ivo de teGto. Funciones de (atlab reco1endadas /ara el trabaDo6 Vavrecord sound 2uanti3 decbin strnu1. Progra1a6 clcS clearS closeS U@@@@@@@@@@@@@@Grabacin 4 1uestreo de la se0al desde el 1icr*ono@@@@@ TI K in/ut 8FIngrese el tie1/o en LsegN 2ue desea grabar6F9S *s K in/ut8FTnIngrese la *recuencia de 1uestreo en L=3N6F9S 4IVav K Vavrecord8TI@*s+ *s+19S U (uestrea la se0al del 1icr*ono a *s L;3N durante TI LsegN. UnK nY de bits /or 1uestras a deter1inada *s U*sK *recuencia de 1uestreo. U"=K nE1ero de canal de donde se obtiene la se0al tK!61M*s6TI'1M*sS UXector t con la 1is1a cantidad de valores 2ue 4IVav VavVrite84IVav+*s+F1icro*ono.VavF9 U"reo un .Vav a /artir de la 1uestra reali3ada o/cionKin/ut8FTn$esea re/roducir la se0al guardadaZ6Tn 1'Si Tn 'NoTnF9S i* o/cionKK1 sound84IVav+*s9S URe/rodu3co la se0al obtenida end MENARA Sergio Daniel 9 FA"U#TA$ R%GI&NA# TP1''()todos de "odi*icacin+ "ontrol de errores+ "odi*icacin P"( PARAN, Tcnicas Digitales III U@@@@@@@@@@@@@@"uanti*icacin de la se0al obtenida@@@@@@@@@@@@@@@ N"Kin/ut8FTnIngrese los niveles de cuanti*icacin6F9S (ini1o K 1in 84IVav9S U&btengo el 15ni1o valor de la se0al (aGi1o K 1aG 84IVav9S U#o 1is1o /ara su 1Gi1o (inIabs K abs8(ini1o9S U&btengo el 15ni1o valor absoluto de la se0al (aGIabs K abs8(aGi1o9S U#o 1is1o /ara su 1Gi1o i* (aGIabs[(inIabs U"o1/aro encontrando el 1a4or de los 1dulos 1aG1odK(aGIabsS else 1aG1odK(inIabsS end Paso K @ 1aG1od M \N"S U"alculo el /aso necesario /ara su cuanti*icacin Particion K (ini1o 6 Paso 6 (aGi1oS V2K 2uanti3 8 4IVav + Particion 9S U"uanti*icacin de la se0al U@@@@@@@@@@@@@@@@@@@"odi*icacin de la se0al obtenida@@@@@@@@@@@@ codec]^ K decbin8V29S U"onvierto valores deci1ales a string binarios string]^ K strnu18codec]^9S U"onvierto a nE1ero ese string *id K *o/en 8FP"(I1icro.tGtF+FVF9S UGuardo en un arc;ivo la codi*icacin reali3ada */rint*8*id+FU!<dTnF +string]^9S *close 8*id9 U@@@@@@@@@@@@@@@Gr*icas de la codi*icacin P"(@@@@@@@@@@@@@@@@@ sub/lot8+1+19 /lot8t+4IVav9+title8FSe0al originalF9+Glabel8FTie1/oF9+4label8FA1/litudF9S sub/lot8+1+9 /lot8t+V2+FAF9+title8FSe0al cuanti*icadaF9+Glabel8FTie1/oF9+4label8FNivelesF9S MENARA Sergio Daniel 10