• Embed Doc
  • Readcast
  • Collections
  • CommentGo Back
Download
 
www.matpic.com www.youtube.com/diegokillemall 
13
SIMULACIÓN DE CÓDIGOS DE LÍNEA EN MATLAB
Diego Orlando Barragán GuerreroLoja - Ecuador diegokillemall@yahoo.com 
RESUMEN
El presente artículo tiene como finsimular algunos códigos de línea en Matlab.Asimismo, programar una interfaz gráfica quegenere bits aleatorios para su posterior codificación.
INTRODUCCIÓN
La transmisión de datos en formadigital implica una cierta codificación. A laforma de transmisión donde no se usa una portadora se la conoce como transmisión en banda base.Los códigos de línea son usados paraeste tipo de transmisión. Existen varios tiposde códigos, entre ellos Unipolar NRZ, Polar  NRZ, Unipolar RZ, Bipolar RZ (AMI),Manchester, CMI, etc. Algunos de estoscódigos se muestran en la figura 1.
 Fig.1. Códigos de línea usuales.
Algunas de las característicasdeseables de los códigos de línea son:
Autosincronización:
contenidosuficiente de señal de temporización(reloj) que permita identificar el tiempocorrespondiente a un bit.
Capacidad de detección de errores:
ladefinición del código incluye el poder dedetectar un error.
Inmunidad al ruido:
capacidad dedetectar adecuadamente el valor de laseñal ante la presencia de ruido (baja probabilidad de error).
Densidad espectral de potencia:
 igualación entre el espectro de frecuenciade la señal y la respuesta en frecuenciadel canal de transmisión.
Ancho de banda:
contenido suficientede señal de temporización que permitaidentificar el tiempo correspondiente aun bit.
Transparencia:
independencia de lascaracterísticas del código en relación a lasecuencia de unos y ceros que transmita.
FUNCIÓN UNRZ(h)
El código Unipolar sin retorno a cerorepresenta un 1 lógico (
1L
) con un nivel de+V durante todo el periodo de bit y un cerológico (
0L
) con un nivel de 0 V durante todoel periodo de bit. La función siguiente simulaesta codificación:
functionUNRZ(h)clf;n=1;l=length(h);h(l+1)=1;whilen<=length(h)-1;t=n-1:0.001:n;ifh(n) == 0ifh(n+1)==0y=(t>n);else y=(t==n);end d=plot(t,y);gridon;title('Line code UNIPOLAR NRZ');set(d,'LineWidth',2.5);holdon;axis([0 length(h)-1 -1.5 1.5]);disp('zero');else 
 
www.matpic.com www.youtube.com/diegokillemall 
14
 ifh(n+1)==0y=(t<n)-0*(t==n);else y=(t<n)+1*(t==n);end d=plot(t,y);gridon;title('Line code UNIPOLAR NRZ');set(d,'LineWidth',2.5);holdon;axis([0 length(h)-1 -1.5 1.5]);disp('one');end n=n+1;%pause;end 
Como ejemplo, ejecutamos lo quemuestra la figura 2:
 Fig. 2. Función UNRZ(h).
 
FUNCIÓN URZ(h)
El código Unipolar con retorno a cerorepresenta un 1 lógico (
1L
) con un nivel de+V durante la mitad del periodo de bit y uncero lógico (
0L
) con un nivel de 0 V durantetodo el periodo de bit. La función siguientesimula esta codificación:
functionURZ(h)%Example: %h=[1 0 0 1 1 0 1 0 1 0]; %URZ(h) clf;n=1;l=length(h);h(l+1)=1;whilen<=length(h)-1;t=n-1:0.001:n;%Graficación de los CEROS (0) ifh(n) == 0ifh(n+1)==0y=(t>n);else y=(t==n);end d=plot(t,y);gridon title('Line code UNIPOLAR RZ');set(d,'LineWidth',2.5);holdon;axis([0 length(h)-1 -1.5 1.5]);disp('zero');%Graficación de los UNOS (1) else ifh(n+1)==0y=(t<n-0.5);else y=(t<n-0.5)+1*(t==n);end d=plot(t,y);gridon;title('Line code UNIPOLAR RZ');set(d,'LineWidth',2.5);holdon;axis([0 length(h)-1 -1.5 1.5]);disp('one');end n=n+1;%pause;end end 
Como ejemplo, ejecutamos lo quemuestra la figura 3:
 Fig. 3. Función URZ(h).
 
FUNCIÓN PNRZ(h)
 El código Polar sin retorno a cerorepresenta un 1 lógico (
1L
) con un nivel de+V durante todo el periodo de bit y un cerológico (
0L
) con un nivel de - V durante todoel periodo de bit. La función siguiente simulaesta codificación:
 
www.matpic.com www.youtube.com/diegokillemall 
15 
functionPNRZ(h)%Example: %h=[1 0 0 1 1 0 1 0 1 0]; %PNRZ(h) clf;n=1;l=length(h);h(l+1)=1;whilen<=length(h)-1;t=n-1:0.001:n;ifh(n) == 0ifh(n+1)==0y=-(t<n)-(t==n);else y=-(t<n)+(t==n);end d=plot(t,y);gridon;title('Line code POLAR NRZ');set(d,'LineWidth',2.5);holdon;axis([0 length(h)-1 -1.5 1.5]);disp('zero');else ifh(n+1)==0y=(t<n)-1*(t==n);else y=(t<n)+1*(t==n);end d=plot(t,y);gridon;title('Line code POLAR NRZ');set(d,'LineWidth',2.5);holdon;axis([0 length(h)-1 -1.5 1.5]);disp('one');end n=n+1;%pause;End
Como ejemplo, ejecutamos lo quemuestra la figura 4:
 Fig. 4. Función PNRZ(h).
 
FUNCIÓN BRZ(h)
El código Bipolar con retorno a cerorepresenta un 1 lógico (
1L
) con un nivel de+V durante la mitad del periodo de bit y uncero lógico (
0L
) con un nivel de - V durantela mitad del periodo de bit. La funciónsiguiente simula esta codificación:
functionBRZ(h)%Example: %h=[1 0 0 1 1 0 1 0 1 0]; %BRZ(h) clf;n=1;l=length(h);h(l+1)=1;whilen<=length(h)-1;t=n-1:0.001:n;ifh(n) == 0ifh(n+1)==0y=-(t<n-0.5)-(t==n);else y=-(t<n-0.5)+(t==n);end d=plot(t,y);gridon;title('Line code BIPOLAR RZ');set(d,'LineWidth',2.5);holdon;axis([0 length(h)-1 -1.5 1.5]);disp('zero');else ifh(n+1)==0y=(t<n-0.5)-1*(t==n);else y=(t<n-0.5)+1*(t==n);end d=plot(t,y);gridon;title('Line code BIPOLAR RZ');set(d,'LineWidth',2.5);holdon;axis([0 length(h)-1 -1.5 1.5]);disp('one');end n=n+1;%pause;end 
Como ejemplo, ejecutamos lo quemuestra la figura 5:
of 00

Leave a Comment

You must be to leave a comment.
Submit
Characters: ...
You must be to leave a comment.
Submit
Characters: ...