• Presentacion en prezzi

    Presentacion de las tecnicas de modulacion en PREZZI

  • Modulación ASK y B-ASK

    La modulacion ASK se obtiene de modificar la amplitud de la señal sinusoidal según la información que se quiera transmitir. En general podemos utilizar más de dos amplitudes diferentes, hablamos de ASK-2, ASK-4,etc. Para identificar el número de niveles de la moduladora ASK.

  • Tipos de receptores

    En este método se utiliza en el receptor una replica de la portadora para detectar las señales. La señal modulada en AM es utilizar el mismo tipo de demodulación que se usa en las otras modulaciones lineales. Se trata del demodulador coherente. Para ello, es necesario conocer la frecuencia de la portadora wp y, en ocasiones, también la fase, lo que requiere la utilización de un PLL (Phase Lock Loop). En este otro supuesto, no es necesario que el índice de modulación sea menor que la unidad, o lo que es lo mismo, no es necesario que la envolvente [1 + m·x(t)] sea siempre positiva.

  • Ancho de Banda

    El ancho de banda digital mide la cantidad de información que puede fluir desde un punto hacia otro en un período de tiempo determinado. La unidad de medida fundamental para el ancho de banda digital es bits por segundo (bps). Como las LAN son capaces de velocidades de miles o millones de bits por segundo, la medida se expresa en kbps o Mbps. Los medios físicos, las tecnologías actuales y las leyes de la física limitan el ancho de banda.

  • MODULACION BINARIA POR DESPLAZAMIENTO DE FASE (B-PSK)

    En la modulación por desplazamiento de fase, la fase de la portadora es variada de acuerdo con la señal de la fuente o señal de información. Para transmisión binaria la fase de la portadora es rotada en saltos de 180º para representar el “1” y “0”.

  • Modulación QAM

    Es una modulación lineal que consiste en modular en doble banda lateral dos portadoras de la misma frecuencia desfasadas 90º. Cada portadora es modulada por una de las dos señales a transmitir. Finalmente las dos modulaciones se suman y la señal resultante es transmitida.

jueves, 21 de julio de 2011

Codigos de linea en MatLab


INTRODUCCIÓN

La transmisión de datos en forma digital implica una cierta codificación. A la forma 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 para este tipo de transmisión. Existen varios tipos de códigos, entre ellos Unipolar NRZ, Polar NRZ, Unipolar RZ, Bipolar RZ (AMI), Manchester, CMI, etc. Algunos de estos códigos se muestran en la figura 1.

Fig.1. Códigos de línea usuales.


Algunas de las características deseables de los códigos de línea son:

Autosincronización: contenido suficiente de señal de temporización (reloj) que permita identificar el tiempo correspondiente a un bit.

Capacidad de detección de errores: la definición del código incluye el poder de detectar un error.
Inmunidad al ruido: capacidad de detectar adecuadamente el valor de la señal ante la presencia de ruido (baja probabilidad de error).

Densidad espectral de potencia: igualación entre el espectro de frecuencia de la señal y la respuesta en frecuencia del canal de transmisión.

Ancho de banda: contenido suficiente de señal de temporización que permita identificar el tiempo correspondiente a un bit.

Transparencia: independencia de las características del código en relación a la secuencia de unos y ceros que transmita.

FUNCIÓN UNRZ(h)

El código Unipolar sin retorno a cero representa un 1 lógico (1L) con un nivel de +V durante todo el periodo de bit y un cero lógico (0L) con un nivel de 0 V durante todo el periodo de bit. La función siguiente simula esta codificación:

function UNRZ(h)
clf;
n=1;
l=length(h);
h(l+1)=1;
while n<=length(h)-1;
t=n-1:0.001:n;
if h(n) == 0
if h(n+1)==0
y=(t>n);
else
y=(t==n);
end
d=plot(t,y);grid on;
title('Line code UNIPOLAR NRZ');
set(d,'LineWidth',2.5);
hold on;
axis([0 length(h)-1 -1.5 1.5]);
disp('zero');
else
if h(n+1)==0
y=(t
else
y=(t
end
d=plot(t,y);grid on;
title('Line code UNIPOLAR NRZ');
set(d,'LineWidth',2.5);
hold on;
axis([0 length(h)-1 -1.5 1.5]);
disp('one');
end
n=n+1;
%pause;
end


Fig. 2. Función UNRZ(h).

FUNCIÓN URZ(h)

El código Unipolar con retorno a cero representa un 1 lógico (1L) con un nivel de +V durante la mitad del periodo de bit y un cero lógico (0L) con un nivel de 0 V durante todo el periodo de bit. La función siguiente simula esta codificación:


function URZ(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;
while n<=length(h)-1;
t=n-1:0.001:n;
%Graficación de los CEROS (0)
if h(n) == 0
if h(n+1)==0
y=(t>n);
else
y=(t==n);
end
d=plot(t,y);grid on
title('Line code UNIPOLAR RZ');
set(d,'LineWidth',2.5);
hold on;
axis([0 length(h)-1 -1.5 1.5]);
disp('zero');
%Graficación de los UNOS (1)
else
if h(n+1)==0
y=(t
else
y=(t
end
d=plot(t,y);grid on;
title('Line code UNIPOLAR RZ');
set(d,'LineWidth',2.5);
hold on;
axis([0 length(h)-1 -1.5 1.5]);
disp('one');
end
n=n+1;
%pause;
end
end

Fig. 3. Función URZ(h).

FUNCIÓN PNRZ(h)

El código Polar sin retorno a cero representa un 1 lógico (1L) con un nivel de +V durante todo el periodo de bit y un cero lógico (0L) con un nivel de - V durante todo el periodo de bit. La función siguiente simula esta codificación:

function PNRZ(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;
while n<=length(h)-1;
t=n-1:0.001:n;
if h(n) == 0
if h(n+1)==0
y=-(t
else
y=-(t
end
d=plot(t,y);grid on;
title('Line code POLAR NRZ');
set(d,'LineWidth',2.5);
hold on;
axis([0 length(h)-1 -1.5 1.5]);
disp('zero');
else
if h(n+1)==0
y=(t
else
y=(t
end
d=plot(t,y);grid on;
title('Line code POLAR NRZ');
set(d,'LineWidth',2.5);
hold on;
axis([0 length(h)-1 -1.5 1.5]);
disp('one');
end
n=n+1;
%pause;
end

Fig. 4. Función PNRZ(h).

FUNCIÓN BRZ(h)

El código Bipolar con retorno a cero representa un 1 lógico (1L) con un nivel de +V durante la mitad del periodo de bit y un cero lógico (0L) con un nivel de - V durante la mitad del periodo de bit. La función siguiente simula esta codificación:

function BRZ(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;
while n<=length(h)-1;
t=n-1:0.001:n;
if h(n) == 0
if h(n+1)==0
y=-(t
else
y=-(t
end
d=plot(t,y);grid on;
title('Line code BIPOLAR RZ');
set(d,'LineWidth',2.5);
hold on;
axis([0 length(h)-1 -1.5 1.5]);
disp('zero');
else
if h(n+1)==0
y=(t
else
y=(t
end
d=plot(t,y);grid on;
title('Line code BIPOLAR RZ');
set(d,'LineWidth',2.5);
hold on;
axis([0 length(h)-1 -1.5 1.5]);
disp('one');
end
n=n+1;
%pause;
end

Fig. 5. Función BRZ(h).

FUNCIÓN AMINRZ(h)

El código AMI representa los unos lógico por medio de valores alternadamente positivos (+V) y negativos (-V). Un cero lógico (0L) se representa con un nivel de 0 V. La función siguiente simula esta codificación:

function AMINRZ(h)
%Example:
%h=[1 0 0 1 1 0 1 0 1 0];
%AMINRZ(h)
clf;
n=1;
l=length(h);
h(l+1)=1;
ami=-1;
while n<=length(h)-1;
t=n-1:0.001:n;
if h(n) == 0
if h(n+1)==0
y=(t>n);
else
if ami==1
y=-(t==n);
else
y=(t==n);
end
end
d=plot(t,y);grid on;
title('Line code AMI NRZ');
set(d,'LineWidth',2.5);
hold on;
axis([0 length(h)-1 -1.5 1.5]);
disp('zero');
else
ami=ami*-1;
if h(n+1)==0
if ami==1
y=(t
else
y=-(t
end
else
if ami==1
y=(t
else
y=-(t
end

end
d=plot(t,y);grid on;
title('Line code AMI NRZ');
set(d,'LineWidth',2.5);
hold on;
axis([0 length(h)-1 -1.5 1.5]);
disp('one');
end
n=n+1;
%pause;
end

Fig. 6. Función AMINRZ(h).

FUNCIÓN AMIRZ(h)

El código AMI con retorno a cero representa los unos lógico por medio de valores alternadamente positivos (+V) y negativos (-V) y un retorno a cero en la mitad del periodo del bit. Un cero lógico (0L) se representa con un nivel de 0 V. La función siguiente simula esta codificación:

function AMIRZ(h)
%Example:
%h=[1 0 0 1 1 0 1 0 1 0];
%AMIRZ(h)

clf;
n=1;
l=length(h);
h(l+1)=1;
ami=-1;
while n<=length(h)-1;
t=n-1:0.001:n;
if h(n) == 0
if h(n+1)==0
y=(t>n);
else
if ami==1
y=-(t==n);
else
y=(t==n);
end
end
d=plot(t,y);grid on;
title('Line code AMI RZ');
set(d,'LineWidth',2.5);
hold on;
axis([0 length(h)-1 -1.5 1.5]);
disp('zero');
else
ami=ami*-1;
if h(n+1)==0
if ami==1
y=(t
else
y=-(t
end
else
if ami==1
y=(t
else
y=-(t
end

end
d=plot(t,y);grid on;
title('Line code AMI RZ');
set(d,'LineWidth',2.5);
hold on;
axis([0 length(h)-1 -1.5 1.5]);
disp('one');
end
n=n+1;
%pause;
end
Fig. 7. Función AMINRZ(h).

FUNCIÓN MANCHESTER(h)

El código Manchester representa un 1 lógico (1L) con un nivel de +V durante la mitad del periodo de bit y un nivel de -V durante la otra mitad. Un cero lógico (0L) se representa con un nivel de - V durante la primera mitad del periodo de bit y con +V durante la segunda mitad. La función siguiente simula esta codificación:


function MANCHESTER(h)
%Example:
%h=[1 0 0 1 1 0 1 0 1 0];
%MANCHESTER(h)
clf;
n=1;
h=~h;
l=length(h);
h(l+1)=1;
while n<=length(h)-1;
t=n-1:0.001:n;
if h(n) == 0
if h(n+1)==0
y=-(t

Fig. 8. Función MANCHESTER(h).

INTERFAZ GRÁFICA DE USUARIO

La figura 9 muestra el entorno de la interfaz gráfica de usuario que simula varios códigos de línea.


Fig. 9. Programa line_code.

Esta interfaz trabaja de dos maneras. La primera es generando secuencias de bits aleatorios al presionar el botón Random y la segunda es ingresando el propio usuario los bits a codificar.
Asimismo, la interfaz permite ver el espectro de algunos códigos de línea al presiona el botón Ver Espectros.

Fig. 10. Espectro de códigos de línea.

FUENTE

Fuente Bibliográfica:

http://www.matpic.com


f

0 comentarios:

Publicar un comentario