Академический Документы
Профессиональный Документы
Культура Документы
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
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.
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.
Seal Transmitida
Amplitud
0.5
0
-0.5
-1
0
0.2
0.4
0.6
Tiempo (seg)
0.8
1
-3
x 10
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.
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.
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
Amplitud
0.5
0.5
1
1.5
Tiempo (seg)
Seal Recibida
Amplitud
0.6
0.4
0.2
0
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
x 10
Espectro de Magnitud
0.5
Amplitud
4
3
2
1
1
1.5
Frecuencia (Hz)
2
4
x 10
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)
Amplitud
-4
x 10
Espectro de Magnitud
0.5
14
12
10
8
6
4
2
1
1.5
Frecuencia (Hz)
2
4
x 10
clear all;
Seal Recibida
Amplitud
0.5
0
-0.5
0
2
3
4
Tiempo (seg)
x 10
Espectro de Magnitud
0.5
Amplitud
15
10
5
1.5
Frecuencia (Hz)
2
4
x 10
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
Seal transmitida
Espectro de Magnitud
0.5
Amplitud
Amplitud
0.5
x 10
4
3
2
1
-0.5
0
0.01
1.5
Frecuencia (Hz)
2
4
x 10
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
Seal Recibida
Amplitud
0.5
-0.5
1.758 1.76 1.762 1.764 1.766
Tiempo (seg)
es la taza de
y por lo
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.
Amplitud
0.005
0.01
Tiempo (seg)
Diagrama de ojo
Amplitud
1
0.5
0
-0.5
-1
50
100
150
ndices de muestras
200
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
Amplitud
0.06
0.04
0.02
0.5
1
1.5
Frecuencia (Hz)
2
4
x 10
Diagrama de ojo
Amplitud
1
0.5
0
-0.5
-1
50
100
150
ndices de muestras
200
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
Amplitud
Espectro de Magnitud
0.06
0.04
0.02
0
0.5
1
1.5
Frecuencia (Hz)
2
4
x 10
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
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
10
15
ndices de muestras
20
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
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
11
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.
12
Amplitud
Amplitud
10
0.5
0
-0.5
0
-1
50
100
150
ndices de muestras
0.005
0.01
Tiempo (seg)
Espectro de Magnitud
Amplitud
0.06
0.04
0.02
0.5
1
1.5
Frecuencia (Hz)
2
4
x 10
Espectro de Magnitud
Amplitud
0.03
0.02
0.01
0
0.5
1
1.5
Frecuencia (Hz)
2
4
x 10
13
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
Diagrama de ojo
Amplitud
0.4
0.2
0
-0.2
-0.4
50
100
150
ndices de muestras
200
Preguntas
Espectro de Magnitud
0.03
Amplitud
x 10
0.02
0.01
0.5
1
1.5
Frecuencia (Hz)
2
4
x 10
14
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.
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.
Bibliografa
Couch,
15