fsc_p2.pdf

17
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

Upload: marisolgomez90

Post on 09-Dec-2015

10 views

Category:

Documents


0 download

DESCRIPTION

FSC_P2.pdf

TRANSCRIPT

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.