fsc_p2.pdf
DESCRIPTION
FSC_P2.pdfTRANSCRIPT
Práctica 2
Fundamentos de Sistemas de Comunicación
Hernández Leal, Misael Alejandro
Alejos Jiménez, Jesús Ricardo
Ingeniería Electrónica
Tlaquepaque, Jalisco.
Noviembre de 2011
Hernández Leal, Misael Alejandro; Alejos Jiménez, Jesús Ricardo
Práctica 2
Contenidos
Contenidos .................................................................................................................................................... 1
Objetivo ........................................................................................................................................................ 1
Introducción .................................................................................................................................................. 1
Parte 1 ........................................................................................................................................................... 1
Prueba del equipo para la práctica ............................................................................................................ 1
Análisis del canal (Dominio de la frecuencia) .......................................................................................... 2
Técnica 1 ............................................................................................................................................... 2
Técnica 2 ............................................................................................................................................... 4
Técnica 3 ............................................................................................................................................... 5
Parte 2 ........................................................................................................................................................... 6
Parte 3 ........................................................................................................................................................... 9
Experimento 1 ........................................................................................................................................... 9
Experimento 2 ......................................................................................................................................... 12
Preguntas ..................................................................................................................................................... 14
Bibliografía ................................................................................................................................................. 15
Hernández Leal, Misael Alejandro; Alejos Jiménez, Jesús Ricardo
Práctica 2
1
Objetivo El objetivo de esta práctica es evaluar la calidad
del canal de audio de las computadoras, para
identificar las bandas de frecuencia donde es
posible transmitir sin distorsión. Para evaluar la
calidad del canal utilizaremos los diagramas de
ojo.
Introducción Para realizar la evaluación del canal de audio
realizaremos varios experimentos de transmisión
de diferentes tipos de señales y analizando las
señales recibidas mediante diagramas de ojo.
Los diagramas de ojo nos permiten visualizar
que tan “limpia” está una señal o si ha ocurrido
algún error de símbolo en la transmisión. Estos
diagramas consisten en la superposición de sec-
ciones de una señal que duran el mismo tiempo
y que corresponden a cierta cantidad de símbo-
los por captura1. El diagrama de ojo de una señal
“sana” se debe mostrar muy abierto, mientras
que el diagrama de ojo de una señal “mala” es
muy cerrado o en casos extremos quizá no tenga
forma alguna.
Los experimentos básicamente consisten en
generar una señal específica y guardarla en un
archivo de audio, para después reproducirla (sin
ningún tipo de ecualización) a través del canal
de audífonos y capturarla en el canal de micró-
fono (interconectando ambos puertos con un
cable de audio).
Se realizará un análisis tanto de la señal a trans-
mitir como de la señal recibida, para así poder
hacer comparaciones y poder evaluar la calidad
del canal fácilmente. El software utilizado tanto
para la generación como para la captura de las
señales será el MatLab, y todos los códigos están
disponibles junto con las explicaciones de la
práctica en este documento.
1 (Johnson & Sethares, 2003)
Para dichos experimentos, utilizaremos la entra-
da y la salida de audio (los puertos de micrófono
y audífonos respectivamente) de una compu-
tadora HP DV5 1135LA.
Parte 1 La primera parte de la práctica consiste en en-
contrar la respuesta en frecuencia del canal de
comunicación, formado por una tarjeta de sonido
para transmitir, un cable, y otra tarjeta de sonido
para recibir.
Prueba del equipo para la práctica 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 estarán conectadas mediante un cable de
audio para realizar los experimentos que se
mencionan a continuación.
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 distorsión, haremos uso de
un programa en MatLab que genere una señal
sinusoidal de que dure un segundo, la
transmitiremos por la salida a audífonos y la
recibiremos en la entrada de micrófono.
Tabla 1. Código para generar una señal de audio sinu-
soidal 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 señal
sinusoidal
signal=sin(2*pi*f*t); %Vector con
las muestras de la sinusoide
wavplay(signal,fs, 'sync'); %Repro-
ducir el audio
reportPlot(t,0,1*10^-3,'Tiempo
Hernández Leal, Misael Alejandro; Alejos Jiménez, Jesús Ricardo
Práctica 2
2
(seg)',...
signal,-1.1,1.1,'Amplitud'...
,'Señal transmitida');
wavwrite(signal,fs,16,'sin5k.wav');
%Guardar el archivo WAV
Para recibir la señal, utilizaremos un script de
MatLab que nos permita grabar durante tres
segundos la señal de audio que entre por el puer-
to del micrófono y nos grafique la señal recibida.
Tabla 2. Código de MatLab para recibir por el canal de
audífonos la señal sinusoidal.
clear all;
close all;
fs=44100; %Definimos frecuencia
de muestreo (Hz)
dt=1/fs; %Tiempo entre cada
muestra
d=3; %Determinar duración
del audio (Seg)
t=(0:dt:d-dt); %Vector de tiempo
para muestrear
r=wavrecord(d*fs,fs,'double');
%Hacemos la grabación
rstart=find((r>0.5),1); %Capturamos
el momento en que inicia la señal
re-
portPlot(t,t(rstart),t(rstart)+1*10
^-3,'Tiempo (seg)',...
r,[],[],'Amplitud',...
'Señal Recibida'); %Grafica-
mos la señal recibida
spec-
trum(r,1/fs,2^nextpow2(length(r)),0
,2,1,0,0); %Obtenemos su espectro
Una vez hecho el experimento, podemos compa-
rar la calidad de la señal enviada y la de la señal
recibida mediante las gráficas mostradas en la
Figura 1 y la Figura 2.
Figura 1. Señal a transmitir: sinusoide con una frecuen-
cia de 5 kHz.
Figura 2. Señal recibida: la misma sinusoide pero lige-
ramente atenuada.
Note que la frecuencia no se ha alterado, aunque
la amplitud un poco por las pérdidas en el canal
y los valores de las ganancias de los amplifica-
dores de audio. Este experimento fue realizado
con el reproductor Windows Media con un vo-
lumen al 100% mientras que el volumen del
equipo está al 11%.
Análisis del canal (Dominio de la
frecuencia)
Técnica 1
Transmitiremos un impulso a través del cable de
audio y al recibirlo en el puerto de micrófono
haremos un análisis en frecuencia de la respuesta
al impulso, obteniendo así la caracterización del
canal en el dominio de la frecuencia.
0 0.2 0.4 0.6 0.8 1
x 10-3
-1
-0.5
0
0.5
1
Señal Transmitida
Tiempo (seg)
Am
pli
tud
1.0948 1.095 1.0952 1.0954 1.0956
-0.5
0
0.5
Señal Recibida
Tiempo (seg)
Am
pli
tud
Hernández Leal, Misael Alejandro; Alejos Jiménez, Jesús Ricardo
Práctica 2
3
Tabla 3. Código 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
pul-
se=[zeros(1,44100),1,zeros(1,44099)
]; %Crear impulso
d=length(pulse)*1/fs; %Duración
del pulso
t=(0:dt:d-dt); %Vector de tiempo
wavplay(pulse,fs, 'sync'); %Repro-
ducir el audio
reportPlot(t,[],[],'Tiempo
(seg)',...
pulse,[],[],'Amplitud'...
,'Señal transmitida');
wavwri-
te(pulse,fs,16,'impulso.wav');
%Guardar el archivo WAV
Del lado del receptor, utilizaremos un código
como el que se muestra en la siguiente tabla.
Note que se parece mucho al receptor anterior,
salvo que ahora contiene un análisis en el domi-
nio de la frecuencia con la función spectrum.
Tabla 4. Código de MatLab para recibir una señal y
graficar su espectro.
clear all;
close all;
fs=44100; %Definimos frecuencia
de muestreo (Hz)
dt=1/fs; %Tiempo entre cada
muestra
d=3; %Determinar duración
del audio (Seg)
t=(0:dt:d-dt); %Vector de tiempo
para muestrear
r=wavrecord(d*fs,fs,'double');
%Hacemos la grabación
tmin=find(r==max(r))-100;
tmax=find(r==max(r))+100;
re-
portPlot(t,t(tmin),t(tmax),'Tiempo
(seg)',...
r,[],[],'Amplitud',...
'Señal Recibida'); %Grafica-
mos la señal recibida
spec-
trum(r(tmin:tmax),1/fs,2^nextpow2(l
ength(r)),0,2,1,0,0); %Obtenemos su
espectro
Podemos apreciar los resultados de los experi-
mentos en la Figura 3, la Figura 4 y Figura 5
Figura 3. Señal transmitida: un impulso muy al estilo
Delta de Dirac.
Figura 4. Señal recibida: respuesta al impulso del canal
de audio.
Figura 5. Espectro de frecuencia de la respuesta al
impulso del canal de audio. Curva característica de la
respuesta en frecuencia del canal.
0 0.5 1 1.50
0.5
1Señal transmitida
Tiempo (seg)
Am
pli
tud
0.86 0.861 0.862 0.863
0
0.2
0.4
0.6
Señal Recibida
Tiempo (seg)
Am
pli
tud
0 0.5 1 1.5 2
x 104
1
2
3
4x 10
-6 Espectro de Magnitud
Frecuencia (Hz)
Am
pli
tud
Hernández Leal, Misael Alejandro; Alejos Jiménez, Jesús Ricardo
Práctica 2
4
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 (máxima frecuencia
audible).
Técnica 2
Una segunda técnica para corroborar el resultado
anterior es la de generar ruido gaussiano, man-
darlo y recibirlo por la tarjeta de audio y volver
a revisar el espectro de la señal 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 limita-
do hasta una frecuencia aproximada a los 22
kHz.
Tabla 5. Código de MatLab para generar el ruido gaus-
siano por 5 segundos.
clear all;
close all;
fs=44100; %Definimos frecuencia
de muestreo
d=5; %Duración 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
spec-
trum(noise,1/44100,2^nextpow2(lengt
h(noise)),...
0,2,1,0,0); %Análisis en fre-
cuencia del ruido
wavplay(noise,fs, 'sync'); %Repro-
ducir el audio
reportPlot(t,[],[],'Tiempo
(seg)',...
noise,[],[],'Amplitud'...
,'Señal transmitida');
wavwrite(noise,fs,16,'ruido.wav');
%Guardar el archivo WAV
Para capturar el ruido por la entrada de micró-
fono utilizaremos el siguiente programa:
Tabla 6. Código de MatLab para recibir el ruido.
clear all;
close all;
fs=44100; %Definimos frecuencia
de muestreo (Hz)
dt=1/fs; %Tiempo entre cada
muestra
d=6; %Determinar duración
del audio (Seg)
t=(0:dt:d-dt); %Vector de tiempo
para muestrear
r=wavrecord(d*fs,fs,'double');
%Hacemos la grabación
reportPlot(t,[],[],'Tiempo
(seg)',...
r,[],[],'Amplitud',...
'Señal Recibida'); %Grafica-
mos la señal recibida
spec-
trum(r,1/fs,2^nextpow2(length(r)),0
,2,1,0,0); %Obtenemos su espectro
La señal transmitida luce como la que aparece
en la gráfica de la Figura 6, mientras que su
espectro luce como en la Figura 7.
Figura 6. Señal transmitida: ruido gaussiano aditivo.
Figura 7. Espectro de magnitud de la señal transmitida.
Note que está distribuida uniformemente en todas las
frecuencias.
0 1 2 3 4
-0.5
0
0.5
1Señal transmitida
Tiempo (seg)
Am
pli
tud
0 0.5 1 1.5 2
x 104
2
4
6
8
10
12
14x 10
-4 Espectro de Magnitud
Frecuencia (Hz)
Am
pli
tud
Hernández Leal, Misael Alejandro; Alejos Jiménez, Jesús Ricardo
Práctica 2
5
Figura 8. Señal recibida: ruido ligeramente atenuado.
Figura 9. Espectro de magnitud de la señal recibida.
Note que se ha limitado en banda de acuerdo al ancho
de banda del canal.
Note en la Figura 9 que efectivamente obtene-
mos un espectro que tiende a ser plano en el
rango de frecuencias esperado (la respuesta se
muestra similar a la obtenida con la técnica ante-
rior).
Técnica 3
La última de nuestras técnicas para hacer medi-
ciones en el canal será la de superponer 40 seña-
les sinusoidales con frecuencias en el rango de
500 Hz a 20 kHz (con pasos uniformes de 500
Hz). Para generar esta señal utilizaremos el có-
digo contenido en la siguiente tabla.
Tabla 7. Código de MatLab utilizado para generar la
superposición de las 40 sinusoidales.
clear all; close all; fs=44100; %Definimos frecuencia
de muestreo
dt=1/fs; %Tiempo entre cada
muestra d=3; %Duración de la señal t=(0:dt:d-dt); %Vector de tiempo signal1=0; %Inicialización de la
señal for f=(500:500:20000) %Vector de
frecuencias signal1=signal1+sin(2*pi*f*t);
%Crear señal end wavplay(signal1,fs, 'sync'); %Re-
producir el audio reportPlot(t,[],[],'Tiempo
(seg)',... signal1,[],[],'Amplitud'... ,'Señal transmitida'); signal2=(65536/2)*signal1; %Nor-
malizar para convertir a WAV wavwri-
te(signal2,fs,16,'40sines.wav');
%Guardar el archivo WAV spec-
trum(signal2,1/fs,2^nextpow2(length
(signal2)),0,2,1,0,0); %Obtenemos
su espectro
Y para recibir la señal de las 40 sinusoides, utili-
zaremos el código MatLab de la Tabla 8.
Tabla 8. Código MatLab para recibir la señal de super-
posición de señales sinusoidales y analizarla.
clear all; close all; fs=44100; %Definimos frecuencia
de muestreo (Hz) dt=1/fs; %Tiempo entre cada
muestra d=4; %Determinar duración
del audio (Seg) t=(0:dt:d-dt); %Vector de tiempo
para muestrear r=wavrecord(d*fs,fs,'double');
%Hacemos la grabación rstart=find((r>0.5),1); %Capturamos
el momento en que inicia la señal re-
portPlot(t,t(rstart)+1,t(rstart)+1+
10*10^-3,'Tiempo (seg)',... r,[],[],'Amplitud',... 'Señal Recibida'); %Grafica-
mos la señal recibida spec-
trum(r,1/fs,2^nextpow2(length(r)),0
,2,1,0,0); %Obtenemos su espectro
0 1 2 3 4 5
-0.5
0
0.5
Señal Recibida
Tiempo (seg)
Am
pli
tud
0 0.5 1 1.5 2
x 104
5
10
15
x 10-4 Espectro de Magnitud
Frecuencia (Hz)
Am
pli
tud
Hernández Leal, Misael Alejandro; Alejos Jiménez, Jesús Ricardo
Práctica 2
6
Figura 10. Señal transmitida: Superposición de 40 sinu-
soides de distintas frecuencias.
Figura 11. Contenido espectral de la señal transmitida.
Figura 12. Señal recibida. La señal se muestra casi
intacta salvo por la amplitud, como en otros casos ante-
riores.
Figura 13. Contenido espectral de la señal recibida.
Note que sólo las componentes en frecuencia más altas
se han atenuado.
Note que nuevamente hemos obtenido un espec-
tro dentro de los límites esperados (ahora limita-
do hasta 20 kHz, pues fue la componente de
frecuencia con frecuencia más grande que man-
damos en este caso).
Parte 2 En esta parte de la práctica realizaremos trans-
misión en banda base. Utilizaremos los diagra-
mas de ojo para evaluar el funcionamiento del
sistema. Recordando utilizar los niveles de vo-
lumen y sensibilidad encontrados en la Parte 1.
Utilizaremos un pulso base de coseno alzado con
y con una frecuencia máxima
. Generaremos suficientes bits al azar
para tener una transmisión de dos segundos y a
partir de ellos, generaremos una señal bipolar
utilizando el pulso base. Añadiremos al inicio un
segundo de silencio.
Recordemos que para un pulso de coseno alzado
se cumple que:
Dónde es el ancho de banda y es la taza de
bits a mandar. En este caso y por lo
tanto es:
0 0.002 0.004 0.006 0.008 0.01
-0.5
0
0.5
Señal transmitida
Tiempo (seg)
Am
pli
tud
0 0.5 1 1.5 2
x 104
2000
4000
6000
8000
Espectro de Magnitud
Frecuencia (Hz)
Am
pli
tud
1.758 1.76 1.762 1.764 1.766
-0.5
0
0.5
Señal Recibida
Tiempo (seg)
Am
pli
tud
0 0.5 1 1.5 2
x 104
1
2
3
4
5
x 10-3 Espectro de Magnitud
Frecuencia (Hz)
Am
pli
tud
Hernández Leal, Misael Alejandro; Alejos Jiménez, Jesús Ricardo
Práctica 2
7
( )
Habiendo calculado este último dato ya pode-
mos caracterizar por completo el pulso de co-
seno alzado que utilizaremos en esta parte de la
práctica.
A continuación crearemos un vector de datos
aleatorios que mandaremos codificados con el
coseno alzado de modo bipolar para así mandar-
los por el canal de audio, de manera similar a
como hicimos en la parte 1.
Tabla 9. Código MatLab para generar y enviar la señal
de datos aleatorios.
%% Limpiar variables y cerrar ven-
tanas clear all; close all;
%% Generación 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; %Múlti-
plo más cercano de Ts Ts=1/fs; %Periodo de mues-
treo [prc t] = rcpul-
se(0.5,10,Tp,Ts,'rc',1); %Construc-
ción del pulso RC reportPlot(t,[],[],'Tiempo
(seg)',... prc,[],[],'Amplitud',... 'Pulso Coseno Alzado (PRC)');
%Graficamos el pulso
%% Generación de datos aleatorios ndata=160; %Número de datos data=round(rand(1,ndata)); %Gen-
erar vector aleatorio de 1's y 0's data2=zeros(1,ndata*Tp/Ts); da-
ta2(1:Tp/Ts:length(data2))=(data*2)
-1; data=data2; %% Generar la señal a enviar y ana-
lizarla signal=conv(data,prc); %Cons-
truimos la señal a transmitir signal=signal/max(signal); %Norma-
lizar la señal eyed(signal(floor((length(prc)/2)):
... length(signal)-
floor((length(prc)/2))),Tp/Ts,3,1,n
data); %Obtenemos su diagrama
de ojo spec-
trum(signal,1/fs,2^nextpow2(length(
signal)),0,2,1,0,0); %Obtenemos su
espectro
%% Guardar un WAV con los datos x=signal; signal=[zeros(1,1*fs),signal];
%Añadimos un segundo de silencio. wavwri-
te(signal,fs,16,'parte2.wav');
%Guardar el archivo WAV
Una vez ejecutado este programa, obtenemos las
siguientes gráficas del coseno alzado (Figura
14), el diagrama de ojo de la señal a transmitir
(Figura 15) y el espectro de magnitud de esta
última señal (Figura 16).
Figura 14. Pulso de tipo coseno alzado con
utilizado como filtro formador.
0 0.005 0.01
0
10
20
Pulso Coseno Alzado (PRC)
Tiempo (seg)
Am
pli
tud
Hernández Leal, Misael Alejandro; Alejos Jiménez, Jesús Ricardo
Práctica 2
8
Figura 15. Diagrama de ojo de la señal a transmitir
(suprimiendo los transientes).
Figura 16. Contenido espectral de la señal a transmitir.
Note que el espectro está limitado en una banda de 500
Hz aproximadamente.
Ahora recibiremos estos datos en la entrada de
micrófono, al igual que los experimentos en la
parte 1. Pero ahora añadiremos un filtro con
frecuencia de corte y un análisis por
diagrama de ojo de la señal recibida.
Tabla 10. Código MatLab para recibir y analizar la
señal codificada con el pulso de coseno alzado bipolar.
%% Limpiar variables y cerrar ven-
tanas clear all; close all; %% Captura por el canal de audio ndata=160; %Número de datos a re-
cibir fs=44100; %Definimos frecuencia
de muestreo (Hz) dt=1/fs; %Tiempo entre cada
muestra d=3; %Determinar duración
del audio (Seg)
Rb=2000/3; %Taza de bits Tp=round((Rb/fs)^-1)/fs; %Múlti-
plo más cercano de Ts Ts=1/fs; %Periodo de mues-
treo t=(0:dt:d-dt); %Vector de tiempo
para muestrear signal=wavrecord(d*fs,fs,'double');
%Hacemos la grabación %% Análisis de señal recibida start=find(abs(signal)>0.05,1,'firs
t'); fi-
nal=find(abs(signal)>0.05,1,'last')
; reportPlot(t,t(start-
100),t(final+100),'Tiempo
(seg)',... signal,[],[],'Amplitud',... 'Señal Recibida'); %Grafica-
mos la señal recibida spec-
trum(signal(start:final),1/fs,...
2^nextpow2(length(signal(start:fina
l))),... 0,2,1,0,0); %Obtenemos su es-
pectro eyed(signal(start:final),Tp/Ts,3,1,
ndata-10); %Graficamos diagrama de
ojo %% Filtrar y volver a analizar se-
ñal recibida order=100; lpfilter=fir1(order,0.5,'low'); signal2=conv(signal,lpfilter); start2=find(abs(signal2)>0.05,1,'fi
rst'); fi-
nal2=find(abs(signal2)>0.05,1,'last
'); reportPlot(t,t(start2-
100),t(final2+100),'Tiempo
(seg)',... sig-
nal2(order/2+1:length(signal2)-
order/2),... [],[],'Amplitud','Señal Filtra-
da'); %Graficamos la señal reci-
bida spec-
trum(signal2(start2:final2),1/fs,..
.
2^nextpow2(length(signal2(start2:fi
nal2))),... 0,2,1,0,0); %Obtenemos su es-
pectro
0 50 100 150 200-1
-0.5
0
0.5
1Diagrama de ojo
Índices de muestras
Am
pli
tud
0 0.5 1 1.5 2
x 104
0.02
0.04
0.06
0.08Espectro de Magnitud
Frecuencia (Hz)
Am
pli
tud
Hernández Leal, Misael Alejandro; Alejos Jiménez, Jesús Ricardo
Práctica 2
9
eyed(signal2(start2:end),Tp/Ts,3,1,
ndata); %Graficamos diagrama de ojo
Para visualizar el resultado del experimento,
mostramos el diagrama de ojo y el espectro de
magnitud de la señal recibida:
Figura 17. Contenido espectral de la señal recibida.
Figura 18. Diagrama de ojo de la señal recibida. Note
que está ligeramente más cerrado que el de la señal a
transmitir por efectos del canal (suprimiendo transien-
tes).
Observando Figura 18, notando que el ojo está
razonablemente abierto, podemos decir que
nuestro canal es bueno para este tipo de transmi-
siones (limitadas en banda).
Parte 3
Experimento 1 En esta parte utilizaremos modulación en ampli-
tud para transmitir en una banda de frecuencias
específica. El tipo de modulación del que nos
valdremos para hacer nuestros experimentos es
la llamada AM (Amplitud Modulada) de tipo
DSB-SC (Double-Sideband Supressed-Carrier
Transmission, Transmisión de Banda Bilateral
con Portadora Suprimida) a una frecuencia
, la cual consiste en multiplicar la
señal a transmitir por un coseno.
Tabla 11. Código de MatLab para formar una señal
modulada en AM DSB-SC.
%% Limpiar variables y cerrar ven-
tanas clear all; close all; %% Generación 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; %Múlti-
plo más cercano de Ts Ts=1/fs; %Periodo de mues-
treo [prc tprc] = rcpul-
se(0.5,10,Tp,Ts,'rc',1); %Construc-
ción del pulso RC reportPlot(tprc,[],[],'Tiempo
(seg)',... prc,[],[],'Amplitud',... 'Pulso Coseno Alzado (PRC)');
%Graficamos el pulso %% Generación de datos aleatorios ndata=160; %Número de datos data=round(rand(1,ndata)); %Gen-
erar vector aleatorio de 1's y 0's data2=zeros(1,ndata*Tp/Ts); da-
ta2(1:Tp/Ts:length(data2))=(data*2)
-1; data=data2; %% Generar la señal a enviar y ana-
lizarla signal=conv(data,prc); %Cons-
truimos la señal a transmitir sig-
nal=signal(length(prc)/2:length(sig
nal)-length(prc)/2)/max(signal);
%Normalizar la señal eyed(signal,Tp/Ts,3,1,ndata);
%Obtenemos su diagrama de ojo spec-
trum(signal,1/fs,2^nextpow2(length(
0 0.5 1 1.5 2
x 104
0.02
0.04
0.06
Espectro de Magnitud
Frecuencia (Hz)
Am
pli
tud
0 50 100 150 200-1
-0.5
0
0.5
1Diagrama de ojo
Índices de muestras
Am
pli
tud
Hernández Leal, Misael Alejandro; Alejos Jiménez, Jesús Ricardo
Práctica 2
10
signal)),0,2,1,0,0); %Obtenemos su
espectro %% Modulación y análisis de señal
modulada dt=1/fs; %Definir
diferencial de tiempo d=length(signal)*dt; %Duración
de la señal t=(0:dt:d-dt); %Vector con
tiempo de la señal fc=6000; %Frecuencia pa-
ra modular signal=signal.*cos(2*pi*fc*t);
%Modulación spec-
trum(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];
%Añadimos un segundo de silencio. wavwri-
te(signal,fs,16,'parte3.wav');
%Guardar el archivo WAV
Las gráficas que caracterizan la señal que aca-
bamos de generar con el script anterior se mues-
tran a continuación: El pulso coseno alzado, el
espectro de magnitud antes de la modulación, y
el espectro de magnitud después de la modula-
ción.
Figura 19. Pulso coseno alzado que corresponde ahora a
un ancho banda de 5 kHz.
Figura 20. Contenido espectral de la señal a transmitir.
Note que efectivamente está limitado en una banda de 5
kHz.
Figura 21. Señal a transmitir ya modulada a
Figura 22. Diagrama de ojo de la señal a transmitir
(suprimiendo transientes).
Note que, como era de esperar, después de mo-
dular la señal el espectro de magnitud sólo se ha
centrado en la frecuencia de la señal portadora.
0 0.5 1 1.5
x 10-3
0
20
40
60
80
Pulso Coseno Alzado (PRC)
Tiempo (seg)
Am
pli
tud
0 0.5 1 1.5 2
x 104
0.02
0.04
0.06
Espectro de Magnitud
Frecuencia (Hz)
Am
pli
tud
0 0.5 1 1.5 2
x 104
0.01
0.02
0.03
Espectro de Magnitud
Frecuencia (Hz)
Am
pli
tud
5 10 15 20-1
-0.5
0
0.5
Diagrama de ojo
Índices de muestras
Am
pli
tud
Hernández Leal, Misael Alejandro; Alejos Jiménez, Jesús Ricardo
Práctica 2
11
Tabla 12. Código para recibir y analizar la señal modu-
lada en AM DSB-SC.
%% Limpiar variables y cerrar ven-
tanas clear all; close all; %% Captura por el canal de audio ndata=160; %Número de datos a re-
cibir fs=44100; %Definimos frecuencia
de muestreo (Hz) dt=1/fs; %Tiempo entre cada
muestra d=3; %Determinar duración
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; %Múlti-
plo más cercano de Ts Ts=1/fs; %Periodo de mues-
treo signal=wavrecord(d*fs,fs,'double');
%Hacemos la grabación %% Análisis de señal recibida start=find(abs(signal)>0.05,1,'firs
t'); fi-
nal=find(abs(signal)>0.05,1,'last')
; reportPlot(t,t(start-
100),t(final+100),'Tiempo
(seg)',... signal,[],[],'Amplitud',... 'Señal Recibida'); %Grafica-
mos la señal recibida spec-
trum(signal(start:final),1/fs,...
2^nextpow2(length(signal(start:fina
l))),... 0,2,1,0,0); %Obtenemos su es-
pectro %% Demodular, Filtrar y volver a
analizar señal recibida signal=signal(start:end); %Recortar
silencios dt=1/fs; %Definir
diferencial de tiempo d=length(signal)*dt; %Duración
de la señal t=(0:dt:d-dt); %Vector con
tiempo de la señal 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)',... sig-
nal2(order/2+1:length(signal2)-
order/2),... [],[],'Amplitud','Señal Filtra-
da'); %Graficamos la señal reci-
bida [ssf afxs
pfxs]=spectrum(signal2,1/fs,... 2^nextpow2(length(signal2)),... 0,2,1,0,0); %Obtenemos su es-
pectro eyed(signal2(order/2+1:length(signa
l2)-order/2),Tp/Ts,3,1,ndata-10);
%Graficamos diagrama de ojo
Al de-modular la señal (multiplicando nueva-
mente esta señal por un coseno de la misma
frecuencia que se utilizó para modularla) y fil-
trarla con un filtro pasa-bajas con
obtenemos una señal cuyo espectro
de magnitud se muestra en la siguiente gráfica.
Figura 23. Contenido espectral de la señal recibida, ya
después de ser de-modulada y filtrada.
0 0.5 1 1.5 2
x 104
0.5
1
1.5
2x 10
-3 Espectro de Magnitud
Frecuencia (Hz)
Am
pli
tud
Hernández Leal, Misael Alejandro; Alejos Jiménez, Jesús Ricardo
Práctica 2
12
Figura 24. Diagrama de ojo de la señal recibida, de-
modulada y filtrada (suprimiendo transientes).
Experimento 2
Nuestro último experimento consiste en hacer
una prueba ahora con una frecuencia máxima de
y ver las afectaciones que trae esta
modificación sobre los resultados.
El código para generar el vector de datos y la
señal se muestra en la Tabla 13.
Tabla 13. Código MatLab para generar la señal ahora
limitada en una banda de 500 Hz y modulada a 6 kHz.
%% Limpiar variables y cerrar ven-
tanas clear all; close all;
%% Generación 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; %Múlti-
plo más cercano de Ts Ts=1/fs; %Periodo de mues-
treo [prc tprc] = rcpul-
se(0.5,10,Tp,Ts,'rc',1); %Construc-
ción del pulso RC reportPlot(tprc,[],[],'Tiempo
(seg)',... prc,[],[],'Amplitud',... 'Pulso Coseno Alzado (PRC)');
%Graficamos el pulso
%% Generación de datos aleatorios ndata=160; %Número de datos data=round(rand(1,ndata)); %Gen-
erar vector aleatorio de 1's y 0's data2=zeros(1,ndata*Tp/Ts); da-
ta2(1:Tp/Ts:length(data2))=(data*2)
-1; data=data2; %% Generar la señal a enviar y ana-
lizarla signal=conv(data,prc); %Cons-
truimos la señal a transmitir sig-
nal=signal(length(prc)/2:length(sig
nal)-length(prc)/2)/max(signal);
%Normalizar la señal eyed(signal,Tp/Ts,3,1,ndata);
%Obtenemos su diagrama de ojo spec-
trum(signal,1/fs,2^nextpow2(length(
signal)),0,2,1,0,0); %Obtenemos su
espectro
%% Modulación y análisis de señal
modulada dt=1/fs; %Definir
diferencial de tiempo d=length(signal)*dt; %Duración
de la señal t=(0:dt:d-dt); %Vector con
tiempo de la señal fc=6000; %Frecuencia pa-
ra modular signal=signal.*cos(2*pi*fc*t);
%Modulación signal=signal/max(abs(signal)); spec-
trum(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];
%Añadimos un segundo de silencio. wavwri-
te(signal,fs,16,'parte3_2.wav');
%Guardar el archivo WAV
Las gráficas que caracterizan la señal a transmi-
tir son
5 10 15 20
-0.5
0
0.5
Diagrama de ojo
Índices de muestras
Am
pli
tud
Hernández Leal, Misael Alejandro; Alejos Jiménez, Jesús Ricardo
Práctica 2
13
Figura 25. Pulso coseno alzado con componentes de
frecuencia concentradas en un ancho de banda de 500
Hz y con .
Figura 26. Contenido espectral de la señal a transmitir
antes de ser modulada.
Figura 27. Espectro de la señal modulada a kHz,
note que se trata del mismo espectro anterior pero
recorrido, como se espera de una señal modulada.
Figura 28. Diagrama de ojo de la señal a transmitir
(suprimiendo transientes).
%% Limpiar variables y cerrar ven-
tanas clear all; close all; %% Captura por el canal de audio ndata=160; %Número de datos a re-
cibir fs=44100; %Definimos frecuencia
de muestreo (Hz) dt=1/fs; %Tiempo entre cada
muestra d=3; %Determinar duración
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; %Múlti-
plo más cercano de Ts Ts=1/fs; %Periodo de mues-
treo signal=wavrecord(d*fs,fs,'double');
%Hacemos la grabación %% Análisis de señal recibida start=find(abs(signal)>0.05,1,'firs
t'); fi-
nal=find(abs(signal)>0.05,1,'last')
; reportPlot(t,t(start-
100),t(final+100),'Tiempo
(seg)',... signal,[],[],'Amplitud',... 'Señal Recibida'); %Grafica-
mos la señal recibida spec-
trum(signal(start:final),1/fs,...
0 0.005 0.01
0
10
20
Pulso Coseno Alsado (PRC)
Tiempo (seg)
Am
pli
tud
0 0.5 1 1.5 2
x 104
0.02
0.04
0.06
Espectro de Magnitud
Frecuencia (Hz)
Am
pli
tud
0 0.5 1 1.5 2
x 104
0.01
0.02
0.03
Espectro de Magnitud
Frecuencia (Hz)
Am
pli
tud
50 100 150-1
-0.5
0
0.5
1Diagrama de ojo
Índices de muestras
Am
pli
tud
Hernández Leal, Misael Alejandro; Alejos Jiménez, Jesús Ricardo
Práctica 2
14
2^nextpow2(length(signal(start:fina
l))),... 0,2,1,0,0); %Obtenemos su es-
pectro %% Demodular, Filtrar y volver a
analizar señal recibida signal=signal(start:end); %Recortar
silencios dt=1/fs; %Definir
diferencial de tiempo d=length(signal)*dt; %Duración
de la señal t=(0:dt:d-dt); %Vector con
tiempo de la señal 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)',... sig-
nal2(order/2+1:length(signal2)-
order/2),... [],[],'Amplitud','Señal Filtra-
da'); %Graficamos la señal reci-
bida [ssf afxs
pfxs]=spectrum(signal2,1/fs,... 2^nextpow2(length(signal2)),... 0,2,1,0,0); %Obtenemos su es-
pectro eyed(signal2(order/2+1:length(signa
l2)-order/2),Tp/Ts,3,1,ndata-10);
%Graficamos diagrama de ojo
Los resultados de este experimento se muestran
en las gráficas siguientes.
Figura 29. Contenido espectral de la señal recibida.
Figura 30. Contenido espectral de la señal recibida tras
ser de-modulada y filtrada.
Figura 31. Diagrama de ojo de la señal 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 suficien-
temente bueno como para transmitir en bandas
angostas centradas en frecuencias distintas a la
frecuencia cero.
Preguntas ¿Cuáles son las características de la señal
recibida que pueden ser evaluadas con el dia-
grama de ojo?
En general, los diagramas de ojo suministran la
siguiente información:
El error de sincronización ocasionado
por el muestreo del lado del receptor.
Este se mide por el ancho del ojo, nor-
malmente referido como “apertura del
ojo”.
0 0.5 1 1.5 2
x 104
0.01
0.02
0.03Espectro de Magnitud
Frecuencia (Hz)
Am
pli
tud
0 0.5 1 1.5 2
x 104
2
4
6
x 10-3 Espectro de Magnitud
Frecuencia (Hz)
Am
pli
tud
0 50 100 150 200-0.4
-0.2
0
0.2
0.4Diagrama de ojo
Índices de muestras
Am
pli
tud
Hernández Leal, Misael Alejandro; Alejos Jiménez, Jesús Ricardo
Práctica 2
15
La sensibilidad al error de sincroniza-
ción, dada por la pendiente del ojo
abierto y se evalúa en el cruce por cero o
en algún punto cercano.
El margen de error del sistema, dado
por la altura de la apertura del ojo2.
A partir de los diagramas de ojo obtenidos,
¿es posible transmitir en este canal utilizando
una señal pasabajas (sin modular)? En caso
negativo, ¿cuál es la razón?
Sí es posible. Podemos recurrir a los resultados
de los experimentos realizados en la parte 2 de
esta práctica. Comparando los diagramas de ojo
de la señal transmitida y recibida (Figura 15 y
Figura 18), podemos notar que la señal llega con
una calidad muy aceptable a su destino.
A partir de los diagramas de ojo obtenidos,
¿es posible transmitir en este canal en pasa-
banda, con un ancho de banda de 10 kHz? En
caso negativo, ¿cuál es la razón?
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 cali-
dad de la transmisión es buena con este ancho de
banda pues el diagrama de ojo de la señal recibi-
da está bastante abierto y muy parecido al de la
señal transmitida.
A partir de los diagramas de ojo obtenidos,
¿es posible transmitir en este canal en pasa-
banda, con un ancho de banda de 500Hz? En
caso negativo, ¿cuál es la razón?
Si es posible. De acuerdo a los resultados del
segundo experimento de la parte 3 de esta prác-
tica. Comparando los diagramas de ojo de la
señal transmitida y la señal recibida (respecti-
vamente la Figura 28 y la Figura 31) podemos
2 (Couch, II, 2008)
notar que la señal llega con muy buena calidad
al receptor.
En base a las respuestas anteriores, y exami-
nando la respuesta en frecuencia de su canal,
¿cuál cree que es la mejor banda para trans-
mitir? ¿Qué tasa de bit máxima se puede lo-
grar en este canal? Justifique sus respuestas.
De acuerdo a los resultados de todos los experi-
mentos (pues en todos se ha logrado una trans-
misión 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.
Aunque quizá el mejor rendimiento lo obtenga-
mos transmitiendo en una banda angosta, pues
además que es la transmisión cuyos resultados
fueron los más “saludables”, es posible dividir el
canal en diferentes bandas para hacer varias
transmisiones de manera simultánea y de una
forma mucho más eficiente.
Bibliografía Couch, II, L. W. (2008). Sistemas de
Comunicación Digitales y Analógicos.
Florida: Pearson Educación.
Johnson, R., & Sethares, W. A. (2003).
Telecommunications Breakdown. Nueva
Jersey: Prentice Hall.