Sei sulla pagina 1di 17

Prctica 2

Fundamentos de Sistemas de Comunicacin

Hernndez Leal, Misael Alejandro


Alejos Jimnez, Jess Ricardo
Ingeniera Electrnica
Tlaquepaque, Jalisco.
Noviembre de 2011

Hernndez Leal, Misael Alejandro; Alejos Jimnez, Jess Ricardo


Prctica 2

Contenidos
Contenidos .................................................................................................................................................... 1
Objetivo ........................................................................................................................................................ 1
Introduccin .................................................................................................................................................. 1
Parte 1 ........................................................................................................................................................... 1
Prueba del equipo para la prctica ............................................................................................................ 1
Anlisis del canal (Dominio de la frecuencia) .......................................................................................... 2
Tcnica 1 ............................................................................................................................................... 2
Tcnica 2 ............................................................................................................................................... 4
Tcnica 3 ............................................................................................................................................... 5
Parte 2 ........................................................................................................................................................... 6
Parte 3 ........................................................................................................................................................... 9
Experimento 1 ........................................................................................................................................... 9
Experimento 2 ......................................................................................................................................... 12
Preguntas ..................................................................................................................................................... 14
Bibliografa ................................................................................................................................................. 15

Hernndez Leal, Misael Alejandro; Alejos Jimnez, Jess Ricardo


Prctica 2
Para dichos experimentos, utilizaremos la entrada y la salida de audio (los puertos de micrfono
y audfonos respectivamente) de una computadora HP DV5 1135LA.

Objetivo
El objetivo de esta prctica es evaluar la calidad
del canal de audio de las computadoras, para
identificar las bandas de frecuencia donde es
posible transmitir sin distorsin. Para evaluar la
calidad del canal utilizaremos los diagramas de
ojo.

Parte 1
La primera parte de la prctica consiste en encontrar la respuesta en frecuencia del canal de
comunicacin, formado por una tarjeta de sonido
para transmitir, un cable, y otra tarjeta de sonido
para recibir.

Introduccin
Para realizar la evaluacin del canal de audio
realizaremos varios experimentos de transmisin
de diferentes tipos de seales y analizando las
seales recibidas mediante diagramas de ojo.

Prueba del equipo para la prctica


Utilizaremos la entrada y la salida de audio de
una computadora HP DV5 1135LA con una
tarjeta de sonido Altec Lasing. Dichas entrada y
salida estarn conectadas mediante un cable de
audio para realizar los experimentos que se
mencionan a continuacin.

Los diagramas de ojo nos permiten visualizar


que tan limpia est una seal o si ha ocurrido
algn error de smbolo en la transmisin. Estos
diagramas consisten en la superposicin de secciones de una seal que duran el mismo tiempo
y que corresponden a cierta cantidad de smbolos por captura1. El diagrama de ojo de una seal
sana se debe mostrar muy abierto, mientras
que el diagrama de ojo de una seal mala es
muy cerrado o en casos extremos quiz no tenga
forma alguna.

En todo lo que sigue, utilizar una frecuencia de


muestreo
y
bits por muestra.
Vamos a utilizar un solo canal de audio (mono).
Para medir los niveles de sonido de entrada y
salida que no tengan distorsin, haremos uso de
un programa en MatLab que genere una seal
sinusoidal de
que dure un segundo, la
transmitiremos por la salida a audfonos y la
recibiremos en la entrada de micrfono.

Los experimentos bsicamente consisten en


generar una seal especfica y guardarla en un
archivo de audio, para despus reproducirla (sin
ningn tipo de ecualizacin) a travs del canal
de audfonos y capturarla en el canal de micrfono (interconectando ambos puertos con un
cable de audio).

Tabla 1. Cdigo para generar una seal de audio sinusoidal a 5,000 Hz.

clear all;
close all;
fs=44100;
%Definimos frecuencia
de muestreo
dt=1/fs;
%Tiempo entre cada
muestra
t=(0:dt:1-dt); %Vector de tiempo
para muestrear
f=5000;
%Frecuencia de la seal
sinusoidal
signal=sin(2*pi*f*t);
%Vector con
las muestras de la sinusoide
wavplay(signal,fs, 'sync'); %Reproducir el audio
reportPlot(t,0,1*10^-3,'Tiempo

Se realizar un anlisis tanto de la seal a transmitir como de la seal recibida, para as poder
hacer comparaciones y poder evaluar la calidad
del canal fcilmente. El software utilizado tanto
para la generacin como para la captura de las
seales ser el MatLab, y todos los cdigos estn
disponibles junto con las explicaciones de la
prctica en este documento.

(Johnson & Sethares, 2003)

Hernndez Leal, Misael Alejandro; Alejos Jimnez, Jess Ricardo


Prctica 2
(seg)',...
signal,-1.1,1.1,'Amplitud'...
,'Seal transmitida');
wavwrite(signal,fs,16,'sin5k.wav');
%Guardar el archivo WAV

Seal Transmitida

Amplitud

Para recibir la seal, utilizaremos un script de


MatLab que nos permita grabar durante tres
segundos la seal de audio que entre por el puerto del micrfono y nos grafique la seal recibida.

0.5
0
-0.5
-1
0

Tabla 2. Cdigo de MatLab para recibir por el canal de


audfonos la seal sinusoidal.

0.2

0.4
0.6
Tiempo (seg)

0.8

1
-3

x 10

Figura 1. Seal a transmitir: sinusoide con una frecuencia de 5 kHz.

clear all;
close all;
fs=44100;
%Definimos frecuencia
de muestreo (Hz)
dt=1/fs;
%Tiempo entre cada
muestra
d=3;
%Determinar duracin
del audio (Seg)
t=(0:dt:d-dt); %Vector de tiempo
para muestrear
r=wavrecord(d*fs,fs,'double');
%Hacemos la grabacin
rstart=find((r>0.5),1); %Capturamos
el momento en que inicia la seal
reportPlot(t,t(rstart),t(rstart)+1*10
^-3,'Tiempo (seg)',...
r,[],[],'Amplitud',...
'Seal Recibida');
%Graficamos la seal recibida
spectrum(r,1/fs,2^nextpow2(length(r)),0
,2,1,0,0); %Obtenemos su espectro

Seal Recibida

Amplitud

0.5
0
-0.5
1.0948 1.095 1.0952 1.0954 1.0956
Tiempo (seg)
Figura 2. Seal recibida: la misma sinusoide pero ligeramente atenuada.

Note que la frecuencia no se ha alterado, aunque


la amplitud un poco por las prdidas en el canal
y los valores de las ganancias de los amplificadores de audio. Este experimento fue realizado
con el reproductor Windows Media con un volumen al 100% mientras que el volumen del
equipo est al 11%.

Una vez hecho el experimento, podemos comparar la calidad de la seal enviada y la de la seal
recibida mediante las grficas mostradas en la
Figura 1 y la Figura 2.

Anlisis del canal (Dominio de la


frecuencia)
Tcnica 1
Transmitiremos un impulso a travs del cable de
audio y al recibirlo en el puerto de micrfono
haremos un anlisis en frecuencia de la respuesta
al impulso, obteniendo as la caracterizacin del
canal en el dominio de la frecuencia.

Hernndez Leal, Misael Alejandro; Alejos Jimnez, Jess Ricardo


Prctica 2
ength(r)),0,2,1,0,0); %Obtenemos su
espectro

Tabla 3. Cdigo de MatLab para formar y mandar un


impulso por el canal de audio.

clear all;
close all;
fs=44100;
%Definimos frecuencia
de muestreo
dt=1/fs;
%Tiempo entre cada
muestra
pulse=[zeros(1,44100),1,zeros(1,44099)
]; %Crear impulso
d=length(pulse)*1/fs;
%Duracin
del pulso
t=(0:dt:d-dt); %Vector de tiempo
wavplay(pulse,fs, 'sync'); %Reproducir el audio
reportPlot(t,[],[],'Tiempo
(seg)',...
pulse,[],[],'Amplitud'...
,'Seal transmitida');
wavwrite(pulse,fs,16,'impulso.wav');
%Guardar el archivo WAV

Podemos apreciar los resultados de los experimentos en la Figura 3, la Figura 4 y Figura 5


Seal transmitida

Amplitud

0.5

0.5

1
1.5
Tiempo (seg)

Figura 3. Seal transmitida: un impulso muy al estilo


Delta de Dirac.

Seal Recibida

Del lado del receptor, utilizaremos un cdigo


como el que se muestra en la siguiente tabla.
Note que se parece mucho al receptor anterior,
salvo que ahora contiene un anlisis en el dominio de la frecuencia con la funcin spectrum.

Amplitud

0.6
0.4
0.2
0

Tabla 4. Cdigo de MatLab para recibir una seal y


graficar su espectro.

0.86

clear all;
close all;
fs=44100;
%Definimos frecuencia
de muestreo (Hz)
dt=1/fs;
%Tiempo entre cada
muestra
d=3;
%Determinar duracin
del audio (Seg)
t=(0:dt:d-dt); %Vector de tiempo
para muestrear
r=wavrecord(d*fs,fs,'double');
%Hacemos la grabacin
tmin=find(r==max(r))-100;
tmax=find(r==max(r))+100;
reportPlot(t,t(tmin),t(tmax),'Tiempo
(seg)',...
r,[],[],'Amplitud',...
'Seal Recibida');
%Graficamos la seal recibida
spectrum(r(tmin:tmax),1/fs,2^nextpow2(l

0.861 0.862
Tiempo (seg)

0.863

Figura 4. Seal recibida: respuesta al impulso del canal


de audio.
-6

x 10

Espectro de Magnitud

0.5

Amplitud

4
3
2
1
1

1.5

Frecuencia (Hz)

2
4

x 10

Figura 5. Espectro de frecuencia de la respuesta al


impulso del canal de audio. Curva caracterstica de la
respuesta en frecuencia del canal.

Hernndez Leal, Misael Alejandro; Alejos Jimnez, Jess Ricardo


Prctica 2
close all;
fs=44100;
%Definimos frecuencia
de muestreo (Hz)
dt=1/fs;
%Tiempo entre cada
muestra
d=6;
%Determinar duracin
del audio (Seg)
t=(0:dt:d-dt); %Vector de tiempo
para muestrear
r=wavrecord(d*fs,fs,'double');
%Hacemos la grabacin
reportPlot(t,[],[],'Tiempo
(seg)',...
r,[],[],'Amplitud',...
'Seal Recibida');
%Graficamos la seal recibida
spectrum(r,1/fs,2^nextpow2(length(r)),0
,2,1,0,0); %Obtenemos su espectro

Note que este resultado es muy congruente con


lo que se espera de una tarjeta de audio: se trata
de un canal pasa-bandas desde frecuencias bajas
hasta alrededor de 22 kHz (mxima frecuencia
audible).
Tcnica 2
Una segunda tcnica para corroborar el resultado
anterior es la de generar ruido gaussiano, mandarlo y recibirlo por la tarjeta de audio y volver
a revisar el espectro de la seal recibida.
Recordemos que el ruido gaussiano tiene un
espectro uniforme en todo rango de frecuencias.
Lo anterior de tal forma que al pasar por el canal
esperamos ver un espectro uniforme pero limitado hasta una frecuencia aproximada a los 22
kHz.

La seal transmitida luce como la que aparece


en la grfica de la Figura 6, mientras que su
espectro luce como en la Figura 7.

Tabla 5. Cdigo de MatLab para generar el ruido gaussiano por 5 segundos.

Seal transmitida

clear all;
close all;
fs=44100;
%Definimos frecuencia
de muestreo
d=5;
%Duracin del ruido
dt=1/fs;
%Tiempo entre cada
muestra
t=(0:dt:d-dt); %Vector de tiempo
noise= sqrt(1)*randn(1,fs*d);
%Ruido gaussiano de 5seg
spectrum(noise,1/44100,2^nextpow2(lengt
h(noise)),...
0,2,1,0,0); %Anlisis en frecuencia del ruido
wavplay(noise,fs, 'sync'); %Reproducir el audio
reportPlot(t,[],[],'Tiempo
(seg)',...
noise,[],[],'Amplitud'...
,'Seal transmitida');
wavwrite(noise,fs,16,'ruido.wav');
%Guardar el archivo WAV

Amplitud

1
0.5
0
-0.5
0

2
3
Tiempo (seg)

Figura 6. Seal transmitida: ruido gaussiano aditivo.

Amplitud

-4

Para capturar el ruido por la entrada de micrfono utilizaremos el siguiente programa:


Tabla 6. Cdigo de MatLab para recibir el ruido.

x 10

Espectro de Magnitud

0.5

14
12
10
8
6
4
2

1
1.5
Frecuencia (Hz)

2
4

x 10

Figura 7. Espectro de magnitud de la seal transmitida.


Note que est distribuida uniformemente en todas las
frecuencias.

clear all;

Hernndez Leal, Misael Alejandro; Alejos Jimnez, Jess Ricardo


Prctica 2
dt=1/fs;
%Tiempo entre cada
muestra
d=3;
%Duracin de la seal
t=(0:dt:d-dt); %Vector de tiempo
signal1=0; %Inicializacin de la
seal
for f=(500:500:20000) %Vector de
frecuencias
signal1=signal1+sin(2*pi*f*t);
%Crear seal
end
wavplay(signal1,fs, 'sync'); %Reproducir el audio
reportPlot(t,[],[],'Tiempo
(seg)',...
signal1,[],[],'Amplitud'...
,'Seal transmitida');
signal2=(65536/2)*signal1;
%Normalizar para convertir a WAV
wavwrite(signal2,fs,16,'40sines.wav');
%Guardar el archivo WAV
spectrum(signal2,1/fs,2^nextpow2(length
(signal2)),0,2,1,0,0); %Obtenemos
su espectro

Seal Recibida

Amplitud

0.5
0
-0.5
0

2
3
4
Tiempo (seg)

Figura 8. Seal recibida: ruido ligeramente atenuado.


-4

x 10

Espectro de Magnitud

0.5

Amplitud

15
10
5

1.5

Frecuencia (Hz)

2
4

Y para recibir la seal de las 40 sinusoides, utilizaremos el cdigo MatLab de la Tabla 8.

x 10

Figura 9. Espectro de magnitud de la seal recibida.


Note que se ha limitado en banda de acuerdo al ancho
de banda del canal.

Tabla 8. Cdigo MatLab para recibir la seal de superposicin de seales sinusoidales y analizarla.

Note en la Figura 9 que efectivamente obtenemos un espectro que tiende a ser plano en el
rango de frecuencias esperado (la respuesta se
muestra similar a la obtenida con la tcnica anterior).

clear all;
close all;
fs=44100;
%Definimos frecuencia
de muestreo (Hz)
dt=1/fs;
%Tiempo entre cada
muestra
d=4;
%Determinar duracin
del audio (Seg)
t=(0:dt:d-dt); %Vector de tiempo
para muestrear
r=wavrecord(d*fs,fs,'double');
%Hacemos la grabacin
rstart=find((r>0.5),1); %Capturamos
el momento en que inicia la seal
reportPlot(t,t(rstart)+1,t(rstart)+1+
10*10^-3,'Tiempo (seg)',...
r,[],[],'Amplitud',...
'Seal Recibida');
%Graficamos la seal recibida
spectrum(r,1/fs,2^nextpow2(length(r)),0
,2,1,0,0); %Obtenemos su espectro

Tcnica 3
La ltima de nuestras tcnicas para hacer mediciones en el canal ser la de superponer 40 seales sinusoidales con frecuencias en el rango de
500 Hz a 20 kHz (con pasos uniformes de 500
Hz). Para generar esta seal utilizaremos el cdigo contenido en la siguiente tabla.
Tabla 7. Cdigo de MatLab utilizado para generar la
superposicin de las 40 sinusoidales.

clear all;
close all;
fs=44100;
%Definimos frecuencia
de muestreo

Hernndez Leal, Misael Alejandro; Alejos Jimnez, Jess Ricardo


Prctica 2
-3

Seal transmitida

Espectro de Magnitud

0.5

Amplitud

Amplitud

0.5

x 10

4
3
2
1

-0.5
0

0.002 0.004 0.006 0.008


Tiempo (seg)

0.01

1.5

Frecuencia (Hz)

Figura 10. Seal transmitida: Superposicin de 40 sinusoides de distintas frecuencias.

2
4

x 10

Figura 13. Contenido espectral de la seal recibida.


Note que slo las componentes en frecuencia ms altas
se han atenuado.

Espectro de Magnitud

Note que nuevamente hemos obtenido un espectro dentro de los lmites esperados (ahora limitado hasta 20 kHz, pues fue la componente de
frecuencia con frecuencia ms grande que mandamos en este caso).

Amplitud

8000
6000
4000
2000

Parte 2
0

0.5
1
1.5
Frecuencia (Hz)

En esta parte de la prctica realizaremos transmisin en banda base. Utilizaremos los diagramas de ojo para evaluar el funcionamiento del
sistema. Recordando utilizar los niveles de volumen y sensibilidad encontrados en la Parte 1.

2
4

x 10

Figura 11. Contenido espectral de la seal transmitida.

Seal Recibida

Utilizaremos un pulso base de coseno alzado con


y con una frecuencia mxima
. Generaremos suficientes bits al azar
para tener una transmisin de dos segundos y a
partir de ellos, generaremos una seal bipolar
utilizando el pulso base. Aadiremos al inicio un
segundo de silencio.

Amplitud

0.5

-0.5
1.758 1.76 1.762 1.764 1.766
Tiempo (seg)

Recordemos que para un pulso de coseno alzado


se cumple que:

Figura 12. Seal recibida. La seal se muestra casi


intacta salvo por la amplitud, como en otros casos anteriores.

Dnde es el ancho de banda y


bits a mandar. En este caso
tanto
es:

es la taza de
y por lo

Hernndez Leal, Misael Alejandro; Alejos Jimnez, Jess Ricardo


Prctica 2

ta2(1:Tp/Ts:length(data2))=(data*2)
-1;
data=data2;
%% Generar la seal a enviar y analizarla
signal=conv(data,prc);
%Construimos la seal a transmitir
signal=signal/max(signal); %Normalizar la seal
eyed(signal(floor((length(prc)/2)):
...
length(signal)floor((length(prc)/2))),Tp/Ts,3,1,n
data);
%Obtenemos su diagrama
de ojo
spectrum(signal,1/fs,2^nextpow2(length(
signal)),0,2,1,0,0); %Obtenemos su
espectro

Habiendo calculado este ltimo dato ya podemos caracterizar por completo el pulso de coseno alzado que utilizaremos en esta parte de la
prctica.
A continuacin crearemos un vector de datos
aleatorios que mandaremos codificados con el
coseno alzado de modo bipolar para as mandarlos por el canal de audio, de manera similar a
como hicimos en la parte 1.

%% Guardar un WAV con los datos


x=signal;
signal=[zeros(1,1*fs),signal];
%Aadimos un segundo de silencio.
wavwrite(signal,fs,16,'parte2.wav');
%Guardar el archivo WAV

Tabla 9. Cdigo MatLab para generar y enviar la seal


de datos aleatorios.

%% Limpiar variables y cerrar ventanas


clear all;
close all;

Una vez ejecutado este programa, obtenemos las


siguientes grficas del coseno alzado (Figura
14), el diagrama de ojo de la seal a transmitir
(Figura 15) y el espectro de magnitud de esta
ltima seal (Figura 16).

%% Generacin del pulso RC


beta=0.5;
%Valor de beta
B=500;
%Ancho de banda
(f_max)
fs=44100;
%Frecuencia de
muestreo
Rb=2000/3;
%Taza de bits
Tp=round((Rb/fs)^-1)/fs;
%Mltiplo ms cercano de Ts
Ts=1/fs;
%Periodo de muestreo
[prc t] = rcpulse(0.5,10,Tp,Ts,'rc',1); %Construccin del pulso RC
reportPlot(t,[],[],'Tiempo
(seg)',...
prc,[],[],'Amplitud',...
'Pulso Coseno Alzado (PRC)');
%Graficamos el pulso

Amplitud

Pulso Coseno Alzado (PRC)


20
10
0
0

0.005
0.01
Tiempo (seg)

Figura 14. Pulso de tipo coseno alzado con


utilizado como filtro formador.

%% Generacin de datos aleatorios


ndata=160; %Nmero de datos
data=round(rand(1,ndata));
%Generar vector aleatorio de 1's y 0's
data2=zeros(1,ndata*Tp/Ts);
da-

Hernndez Leal, Misael Alejandro; Alejos Jimnez, Jess Ricardo


Prctica 2
Rb=2000/3;
%Taza de bits
Tp=round((Rb/fs)^-1)/fs;
%Mltiplo ms cercano de Ts
Ts=1/fs;
%Periodo de muestreo
t=(0:dt:d-dt); %Vector de tiempo
para muestrear
signal=wavrecord(d*fs,fs,'double');
%Hacemos la grabacin
%% Anlisis de seal recibida
start=find(abs(signal)>0.05,1,'firs
t');
final=find(abs(signal)>0.05,1,'last')
;
reportPlot(t,t(start100),t(final+100),'Tiempo
(seg)',...
signal,[],[],'Amplitud',...
'Seal Recibida');
%Graficamos la seal recibida
spectrum(signal(start:final),1/fs,...

Diagrama de ojo

Amplitud

1
0.5
0
-0.5
-1

50
100
150
ndices de muestras

200

Figura 15. Diagrama de ojo de la seal a transmitir


(suprimiendo los transientes).

Espectro de Magnitud

Amplitud

0.08
0.06
0.04
0.02
0

0.5

1
1.5
Frecuencia (Hz)

2^nextpow2(length(signal(start:fina
l))),...
0,2,1,0,0); %Obtenemos su espectro
eyed(signal(start:final),Tp/Ts,3,1,
ndata-10); %Graficamos diagrama de
ojo
%% Filtrar y volver a analizar seal recibida
order=100;
lpfilter=fir1(order,0.5,'low');
signal2=conv(signal,lpfilter);
start2=find(abs(signal2)>0.05,1,'fi
rst');
final2=find(abs(signal2)>0.05,1,'last
');
reportPlot(t,t(start2100),t(final2+100),'Tiempo
(seg)',...
signal2(order/2+1:length(signal2)order/2),...
[],[],'Amplitud','Seal Filtrada');
%Graficamos la seal recibida
spectrum(signal2(start2:final2),1/fs,..
.
2^nextpow2(length(signal2(start2:fi
nal2))),...
0,2,1,0,0); %Obtenemos su espectro

2
4

x 10

Figura 16. Contenido espectral de la seal a transmitir.


Note que el espectro est limitado en una banda de 500
Hz aproximadamente.

Ahora recibiremos estos datos en la entrada de


micrfono, al igual que los experimentos en la
parte 1. Pero ahora aadiremos un filtro con
frecuencia de corte
y un anlisis por
diagrama de ojo de la seal recibida.
Tabla 10. Cdigo MatLab para recibir y analizar la
seal codificada con el pulso de coseno alzado bipolar.

%% Limpiar variables y cerrar ventanas


clear all;
close all;
%% Captura por el canal de audio
ndata=160; %Nmero de datos a recibir
fs=44100;
%Definimos frecuencia
de muestreo (Hz)
dt=1/fs;
%Tiempo entre cada
muestra
d=3;
%Determinar duracin
del audio (Seg)

Hernndez Leal, Misael Alejandro; Alejos Jimnez, Jess Ricardo


Prctica 2
eyed(signal2(start2:end),Tp/Ts,3,1,
ndata); %Graficamos diagrama de ojo

la llamada AM (Amplitud Modulada) de tipo


DSB-SC (Double-Sideband Supressed-Carrier
Transmission, Transmisin de Banda Bilateral
con Portadora Suprimida) a una frecuencia
, la cual consiste en multiplicar la
seal a transmitir por un coseno.

Para visualizar el resultado del experimento,


mostramos el diagrama de ojo y el espectro de
magnitud de la seal recibida:
Espectro de Magnitud

Tabla 11. Cdigo de MatLab para formar una seal


modulada en AM DSB-SC.

Amplitud

0.06

%% Limpiar variables y cerrar ventanas


clear all;
close all;
%% Generacin del pulso RC
beta=0.5;
%Valor de beta
B=5000;
%Ancho de banda
(f_max)
fs=44100;
%Frecuencia de
muestreo
Rb=(2*B)/(beta+1);
%Taza de
bits
Tp=round((Rb/fs)^-1)/fs;
%Mltiplo ms cercano de Ts
Ts=1/fs;
%Periodo de muestreo
[prc tprc] = rcpulse(0.5,10,Tp,Ts,'rc',1); %Construccin del pulso RC
reportPlot(tprc,[],[],'Tiempo
(seg)',...
prc,[],[],'Amplitud',...
'Pulso Coseno Alzado (PRC)');
%Graficamos el pulso
%% Generacin de datos aleatorios
ndata=160; %Nmero de datos
data=round(rand(1,ndata));
%Generar vector aleatorio de 1's y 0's
data2=zeros(1,ndata*Tp/Ts);
data2(1:Tp/Ts:length(data2))=(data*2)
-1;
data=data2;
%% Generar la seal a enviar y analizarla
signal=conv(data,prc);
%Construimos la seal a transmitir
signal=signal(length(prc)/2:length(sig
nal)-length(prc)/2)/max(signal);
%Normalizar la seal
eyed(signal,Tp/Ts,3,1,ndata);
%Obtenemos su diagrama de ojo
spectrum(signal,1/fs,2^nextpow2(length(

0.04
0.02

0.5

1
1.5
Frecuencia (Hz)

2
4

x 10

Figura 17. Contenido espectral de la seal recibida.

Diagrama de ojo

Amplitud

1
0.5
0
-0.5
-1

50
100
150
ndices de muestras

200

Figura 18. Diagrama de ojo de la seal recibida. Note


que est ligeramente ms cerrado que el de la seal a
transmitir por efectos del canal (suprimiendo transientes).

Observando Figura 18, notando que el ojo est


razonablemente abierto, podemos decir que
nuestro canal es bueno para este tipo de transmisiones (limitadas en banda).

Parte 3
Experimento 1
En esta parte utilizaremos modulacin en amplitud para transmitir en una banda de frecuencias
especfica. El tipo de modulacin del que nos
valdremos para hacer nuestros experimentos es
9

Hernndez Leal, Misael Alejandro; Alejos Jimnez, Jess Ricardo


Prctica 2
signal)),0,2,1,0,0); %Obtenemos su
espectro
%% Modulacin y anlisis de seal
modulada
dt=1/fs;
%Definir
diferencial de tiempo
d=length(signal)*dt;
%Duracin
de la seal
t=(0:dt:d-dt);
%Vector con
tiempo de la seal
fc=6000;
%Frecuencia para modular
signal=signal.*cos(2*pi*fc*t);
%Modulacin
spectrum(signal,1/fs,2^nextpow2(length(
signal)),0,2,1,0,0); %Obtenemos su
espectro
%% Guardar un WAV con los datos
signal=[zeros(1,1*fs),signal];
%Aadimos un segundo de silencio.
wavwrite(signal,fs,16,'parte3.wav');
%Guardar el archivo WAV

Amplitud

Espectro de Magnitud
0.06
0.04
0.02
0

0.5

1
1.5
Frecuencia (Hz)

2
4

x 10

Figura 20. Contenido espectral de la seal a transmitir.


Note que efectivamente est limitado en una banda de 5
kHz.

Amplitud

Espectro de Magnitud

Las grficas que caracterizan la seal que acabamos de generar con el script anterior se muestran a continuacin: El pulso coseno alzado, el
espectro de magnitud antes de la modulacin, y
el espectro de magnitud despus de la modulacin.

0.03
0.02
0.01
0

0.5

1
1.5
Frecuencia (Hz)

2
4

x 10

Figura 21. Seal a transmitir ya modulada a

Pulso Coseno Alzado (PRC)

Diagrama de ojo

60

Amplitud

Amplitud

80

40
20

0.5
0
-0.5

0
0

0.5
1
Tiempo (seg)

-1

1.5

-3

x 10

Figura 19. Pulso coseno alzado que corresponde ahora a


un ancho banda de 5 kHz.

10
15
ndices de muestras

20

Figura 22. Diagrama de ojo de la seal a transmitir


(suprimiendo transientes).

Note que, como era de esperar, despus de modular la seal el espectro de magnitud slo se ha
centrado en la frecuencia de la seal portadora.

10

Hernndez Leal, Misael Alejandro; Alejos Jimnez, Jess Ricardo


Prctica 2
tiempo de la seal
fc=6000;
%Frecuencia
para modular
signal=signal'.*cos(2*pi*fc*t);
order=100;
lpfilter=2*fir1(order,0.3);
signal2=conv(signal,lpfilter);
reportPlot(t,[],[],'Tiempo
(seg)',...
signal2(order/2+1:length(signal2)order/2),...
[],[],'Amplitud','Seal Filtrada');
%Graficamos la seal recibida
[ssf afxs
pfxs]=spectrum(signal2,1/fs,...
2^nextpow2(length(signal2)),...
0,2,1,0,0); %Obtenemos su espectro
eyed(signal2(order/2+1:length(signa
l2)-order/2),Tp/Ts,3,1,ndata-10);
%Graficamos diagrama de ojo

Tabla 12. Cdigo para recibir y analizar la seal modulada en AM DSB-SC.

%% Limpiar variables y cerrar ventanas


clear all;
close all;
%% Captura por el canal de audio
ndata=160; %Nmero de datos a recibir
fs=44100;
%Definimos frecuencia
de muestreo (Hz)
dt=1/fs;
%Tiempo entre cada
muestra
d=3;
%Determinar duracin
del audio (Seg)
t=(0:dt:d-dt); %Vector de tiempo
para muestrear
B=5000;
%Ancho de banda
(f_max)
beta=0.5;
%Valor de beta
Rb=(2*B)/(beta+1);
%Taza de
bits
Tp=round((Rb/fs)^-1)/fs;
%Mltiplo ms cercano de Ts
Ts=1/fs;
%Periodo de muestreo
signal=wavrecord(d*fs,fs,'double');
%Hacemos la grabacin
%% Anlisis de seal recibida
start=find(abs(signal)>0.05,1,'firs
t');
final=find(abs(signal)>0.05,1,'last')
;
reportPlot(t,t(start100),t(final+100),'Tiempo
(seg)',...
signal,[],[],'Amplitud',...
'Seal Recibida');
%Graficamos la seal recibida
spectrum(signal(start:final),1/fs,...

Al de-modular la seal (multiplicando nuevamente esta seal por un coseno de la misma


frecuencia que se utiliz para modularla) y filtrarla con un filtro pasa-bajas con
obtenemos una seal cuyo espectro
de magnitud se muestra en la siguiente grfica.

Amplitud

-3
x 10 Espectro de Magnitud

1.5
1
0.5
0

2^nextpow2(length(signal(start:fina
l))),...
0,2,1,0,0); %Obtenemos su espectro
%% Demodular, Filtrar y volver a
analizar seal recibida
signal=signal(start:end); %Recortar
silencios
dt=1/fs;
%Definir
diferencial de tiempo
d=length(signal)*dt;
%Duracin
de la seal
t=(0:dt:d-dt);
%Vector con

0.5

1
1.5
Frecuencia (Hz)

2
4

x 10

Figura 23. Contenido espectral de la seal recibida, ya


despus de ser de-modulada y filtrada.

11

Hernndez Leal, Misael Alejandro; Alejos Jimnez, Jess Ricardo


Prctica 2
%% Generacin de datos aleatorios
ndata=160; %Nmero de datos
data=round(rand(1,ndata));
%Generar vector aleatorio de 1's y 0's
data2=zeros(1,ndata*Tp/Ts);
data2(1:Tp/Ts:length(data2))=(data*2)
-1;
data=data2;
%% Generar la seal a enviar y analizarla
signal=conv(data,prc);
%Construimos la seal a transmitir
signal=signal(length(prc)/2:length(sig
nal)-length(prc)/2)/max(signal);
%Normalizar la seal
eyed(signal,Tp/Ts,3,1,ndata);
%Obtenemos su diagrama de ojo
spectrum(signal,1/fs,2^nextpow2(length(
signal)),0,2,1,0,0); %Obtenemos su
espectro

Diagrama de ojo

Amplitud

0.5
0
-0.5
5
10
15
ndices de muestras

20

Figura 24. Diagrama de ojo de la seal recibida, demodulada y filtrada (suprimiendo transientes).

Experimento 2
Nuestro ltimo experimento consiste en hacer
una prueba ahora con una frecuencia mxima de
y ver las afectaciones que trae esta
modificacin sobre los resultados.
El cdigo para generar el vector de datos y la
seal se muestra en la Tabla 13.

%% Modulacin y anlisis de seal


modulada
dt=1/fs;
%Definir
diferencial de tiempo
d=length(signal)*dt;
%Duracin
de la seal
t=(0:dt:d-dt);
%Vector con
tiempo de la seal
fc=6000;
%Frecuencia para modular
signal=signal.*cos(2*pi*fc*t);
%Modulacin
signal=signal/max(abs(signal));
spectrum(signal,1/fs,2^nextpow2(length(
signal)),0,2,1,0,0); %Obtenemos su
espectro

Tabla 13. Cdigo MatLab para generar la seal ahora


limitada en una banda de 500 Hz y modulada a 6 kHz.

%% Limpiar variables y cerrar ventanas


clear all;
close all;
%% Generacin del pulso RC
beta=0.5;
%Valor de beta
B=500;
%Ancho de banda
(f_max)
fs=44100;
%Frecuencia de
muestreo
Rb=(2*B)/(beta+1);
%Taza de
bits
Tp=round((Rb/fs)^-1)/fs;
%Mltiplo ms cercano de Ts
Ts=1/fs;
%Periodo de muestreo
[prc tprc] = rcpulse(0.5,10,Tp,Ts,'rc',1); %Construccin del pulso RC
reportPlot(tprc,[],[],'Tiempo
(seg)',...
prc,[],[],'Amplitud',...
'Pulso Coseno Alzado (PRC)');
%Graficamos el pulso

%% Guardar un WAV con los datos


signal=[zeros(1,1*fs),signal];
%Aadimos un segundo de silencio.
wavwrite(signal,fs,16,'parte3_2.wav');
%Guardar el archivo WAV

Las grficas que caracterizan la seal a transmitir son

12

Hernndez Leal, Misael Alejandro; Alejos Jimnez, Jess Ricardo


Prctica 2
Diagrama de ojo

Pulso Coseno Alsado (PRC)


20

Amplitud

Amplitud

10

0.5
0
-0.5

0
-1

50
100
150
ndices de muestras

0.005
0.01
Tiempo (seg)

Figura 28. Diagrama de ojo de la seal a transmitir


(suprimiendo transientes).

Figura 25. Pulso coseno alzado con componentes de


frecuencia concentradas en un ancho de banda de 500
Hz y con
.

%% Limpiar variables y cerrar ventanas


clear all;
close all;
%% Captura por el canal de audio
ndata=160; %Nmero de datos a recibir
fs=44100;
%Definimos frecuencia
de muestreo (Hz)
dt=1/fs;
%Tiempo entre cada
muestra
d=3;
%Determinar duracin
del audio (Seg)
t=(0:dt:d-dt); %Vector de tiempo
para muestrear
B=500;
%Ancho de banda
(f_max)
beta=0.5;
%Valor de beta
Rb=(2*B)/(beta+1);
%Taza de
bits
Tp=round((Rb/fs)^-1)/fs;
%Mltiplo ms cercano de Ts
Ts=1/fs;
%Periodo de muestreo
signal=wavrecord(d*fs,fs,'double');
%Hacemos la grabacin
%% Anlisis de seal recibida
start=find(abs(signal)>0.05,1,'firs
t');
final=find(abs(signal)>0.05,1,'last')
;
reportPlot(t,t(start100),t(final+100),'Tiempo
(seg)',...
signal,[],[],'Amplitud',...
'Seal Recibida');
%Graficamos la seal recibida
spectrum(signal(start:final),1/fs,...

Espectro de Magnitud

Amplitud

0.06
0.04
0.02

0.5

1
1.5
Frecuencia (Hz)

2
4

x 10

Figura 26. Contenido espectral de la seal a transmitir


antes de ser modulada.

Espectro de Magnitud

Amplitud

0.03
0.02
0.01
0

0.5
1
1.5
Frecuencia (Hz)

2
4

x 10

Figura 27. Espectro de la seal modulada a


kHz,
note que se trata del mismo espectro anterior pero
recorrido, como se espera de una seal modulada.

13

Hernndez Leal, Misael Alejandro; Alejos Jimnez, Jess Ricardo


Prctica 2
-3

2^nextpow2(length(signal(start:fina
l))),...
0,2,1,0,0); %Obtenemos su espectro
%% Demodular, Filtrar y volver a
analizar seal recibida
signal=signal(start:end); %Recortar
silencios
dt=1/fs;
%Definir
diferencial de tiempo
d=length(signal)*dt;
%Duracin
de la seal
t=(0:dt:d-dt);
%Vector con
tiempo de la seal
fc=6000;
%Frecuencia
para modular
signal=signal'.*cos(2*pi*fc*t);
order=100;
lpfilter=2*fir1(order,0.3);
signal2=conv(signal,lpfilter);
reportPlot(t,[],[],'Tiempo
(seg)',...
signal2(order/2+1:length(signal2)order/2),...
[],[],'Amplitud','Seal Filtrada');
%Graficamos la seal recibida
[ssf afxs
pfxs]=spectrum(signal2,1/fs,...
2^nextpow2(length(signal2)),...
0,2,1,0,0); %Obtenemos su espectro
eyed(signal2(order/2+1:length(signa
l2)-order/2),Tp/Ts,3,1,ndata-10);
%Graficamos diagrama de ojo

Espectro de Magnitud

0.5

Amplitud

6
4
2
1
1.5
Frecuencia (Hz)

2
4

x 10

Figura 30. Contenido espectral de la seal recibida tras


ser de-modulada y filtrada.

Diagrama de ojo

Amplitud

0.4
0.2
0
-0.2
-0.4

50
100
150
ndices de muestras

200

Figura 31. Diagrama de ojo de la seal recibida tras ser


de-modulada y filtrada (con los transientes suprimidos).

Note que el diagrama de ojo de la Figura 31 nos


demuestra que este canal de audio es lo suficientemente bueno como para transmitir en bandas
angostas centradas en frecuencias distintas a la
frecuencia cero.

Los resultados de este experimento se muestran


en las grficas siguientes.

Preguntas

Espectro de Magnitud

Cules son las caractersticas de la seal


recibida que pueden ser evaluadas con el diagrama de ojo?

0.03

Amplitud

x 10

0.02

En general, los diagramas de ojo suministran la


siguiente informacin:

0.01

0.5
1
1.5
Frecuencia (Hz)

2
4

x 10

Figura 29. Contenido espectral de la seal recibida.

14

El error de sincronizacin ocasionado


por el muestreo del lado del receptor.
Este se mide por el ancho del ojo, normalmente referido como apertura del
ojo.

Hernndez Leal, Misael Alejandro; Alejos Jimnez, Jess Ricardo


Prctica 2

notar que la seal llega con muy buena calidad


al receptor.

La sensibilidad al error de sincronizacin, dada por la pendiente del ojo


abierto y se evala en el cruce por cero o
en algn punto cercano.
El margen de error del sistema, dado
por la altura de la apertura del ojo2.

En base a las respuestas anteriores, y examinando la respuesta en frecuencia de su canal,


cul cree que es la mejor banda para transmitir? Qu tasa de bit mxima se puede lograr en este canal? Justifique sus respuestas.

A partir de los diagramas de ojo obtenidos,


es posible transmitir en este canal utilizando
una seal pasabajas (sin modular)? En caso
negativo, cul es la razn?

De acuerdo a los resultados de todos los experimentos (pues en todos se ha logrado una transmisin de datos exitosa y de calidad), es posible
hacer buenas transmisiones a lo largo de toda la
banda de frecuencias desde aproximadamente
10Hz hasta los 22kHz. Esto ya sea en bandas
angostas, anchas, moduladas o no moduladas.

S es posible. Podemos recurrir a los resultados


de los experimentos realizados en la parte 2 de
esta prctica. Comparando los diagramas de ojo
de la seal transmitida y recibida (Figura 15 y
Figura 18), podemos notar que la seal llega con
una calidad muy aceptable a su destino.

Aunque quiz el mejor rendimiento lo obtengamos transmitiendo en una banda angosta, pues
adems que es la transmisin cuyos resultados
fueron los ms saludables, es posible dividir el
canal en diferentes bandas para hacer varias
transmisiones de manera simultnea y de una
forma mucho ms eficiente.

A partir de los diagramas de ojo obtenidos,


es posible transmitir en este canal en pasabanda, con un ancho de banda de 10 kHz? En
caso negativo, cul es la razn?
Si es posible. Recurriendo a los resultados del
primer experimento de la parte 3, especialmente
en los diagramas de ojo mostrados en la Figura
22 y en la Figura 24, podemos decir que la calidad de la transmisin es buena con este ancho de
banda pues el diagrama de ojo de la seal recibida est bastante abierto y muy parecido al de la
seal transmitida.

Bibliografa
Couch,

Johnson, R., & Sethares, W. A. (2003).


Telecommunications Breakdown. Nueva
Jersey: Prentice Hall.

A partir de los diagramas de ojo obtenidos,


es posible transmitir en este canal en pasabanda, con un ancho de banda de 500Hz? En
caso negativo, cul es la razn?
Si es posible. De acuerdo a los resultados del
segundo experimento de la parte 3 de esta prctica. Comparando los diagramas de ojo de la
seal transmitida y la seal recibida (respectivamente la Figura 28 y la Figura 31) podemos

II, L. W. (2008). Sistemas de


Comunicacin Digitales y Analgicos.
Florida: Pearson Educacin.

(Couch, II, 2008)

15