Está en la página 1de 10

TTRS. Curso 2012/2013.

Universidad de Vigo Practica 1


1 Procesado basico de se nal para
comunicaciones
El objetivo de esta practica es ayudar al alumno a refrescar las tecnicas fundamentales del pro-
cesado de se nal utilizadas extensivamente en el analisis y dise no de sistemas de comunicaciones.
Utilizaremos el entorno MATLAB para ilustrar dichas tecnicas y los conceptos subyacentes.
1.1. Muestreo de se nales analogicas
En todo sistema de comunicaciones digitales existe una parte analogica, ya que la se nal que ha
de viajar por el medio de transmision (bien sea este un cable, un par trenzado, bra optica, o el
espacio libre) es de naturaleza analogica. Pero tambien existe una parte digital en el transmisor y
en el receptor, y por tanto es necesario trasladar las se nales analogicas (o en tiempo continuo)
a digitales (o en tiempo discreto) y viceversa.
La conversion D/A se realiza mediante muestreo. El muestreo de una se nal analogica x(t)
puede entenderse conceptualmente como la multiplicacion de x(t) por un tren de impulsos de
amplitud 1 y periodo T
s
. La se nal resultante es
x
s
(t) = x(t)

n=
(t nT
s
) =

n=
x(nT
s
)(t nT
s
). (1.1)
T
s
es el periodo de muestreo y su inversa f
s
= 1/T
s
es la tasa de muestreo. Vemos en (1.1)
que cada impulso en t = nT
s
es escalado por el valor de x(t) en dicho instante. La representacion
digital x[n] se obtiene simplemente almacenando dichos valores:
x[n] = x(nT
s
) = x(t)|
t=nT
s
. (1.2)
La pregunta ahora es: Hay perdida de informacion al pasar de x(t) a x[n] (o equivalentemente,
de x(t) a x
s
(t))?
Para responderla, observemos el efecto del muestreo (1.1) en el dominio de la frecuencia. Sea
X(f) la Transformada de Fourier (TF) de x(t), de modo que
X(f) =

x(t)e
j2ft
dt, x(t) =

X(f)e
j2ft
df. (1.3)
X(f) proporciona una descripcion de las frecuencias presentes en x(t), ya que x(t) puede es-
cribirse como una suma (integral, para ser exactos) de exponenciales complejas de diferentes
1
TTRS. Curso 2012/2013. Universidad de Vigo Practica 1
frecuencias f, cada una de las cuales es ponderada por X(f). Se dice que x(t) esta limitada en
banda a B Hz si X(f) = 0 para |f| > B.
Si se muestrea x(t) con tasa f
s
= 1/T
s
para obtener la se nal x
s
(t) dada en (1.1), el espectro
correspondiente X
s
(f) esta dado por
X
s
(f) = f
s

k=
X(f kf
s
). (1.4)
Cuestion 1
A partir de la expresion (1.1), demuestra la relacion (1.4). Para ello ten en cuenta que la TF de
un tren de impulsos equiespaciados T
s
es otro tren de impulsos equiespaciados en el dominio
de la frecuencia (con que separacion entre ellos?), y que el producto en el dominio del tiempo
se traduce en una convolucion en frecuencia.
As, vemos que para cada k entero, X
s
(f) contiene una copia de X(f) centrada en kf
s
. Luego
si x(t) esta limitada en banda a B Hz y es muestreada a una tasa f
s
> 2B, las diferentes replicas
no se solaparan, y sera posible recuperar la replica centrada en 0 Hz usando un ltro analogico
paso bajo. Es decir, en ese caso x(t) puede ser recuperada a partir de x
s
(t). Hemos demostrado
el teorema del muestreo; la tasa mnima necesaria de 2B Hz se denomina tasa de Nyquist
de la se nal en cuestion. Esta situacion se ilustra en la parte superior de la Figura 1.1.
Sin embargo, si la tasa de muestreo esta por debajo de la tasa de Nyquist, las replicas en
X
s
(f) se solaparan y sera imposible recuperar el espectro original X(f) sin distorsion. Este
solapamiento y la distorsion resultante en la se nal reconstruida (ltrando x
s
(t) paso bajo con
frecuencia de corte B Hz) se denomina aliasing. En presencia de aliasing, la representacion
discreta de la se nal analogica original presenta ambig uedades. Deberemos ser siempre cuidadosos
y tratar de evitar este aliasing al realizar el muestreo, pues de lo contrario sufriremos una perdida
de informacion irreversible. Esta situacion se ilustra en la parte inferior de la Figura 1.1.
Cuestion 2
El sistema auditivo humano es capaz de apreciar frecuencias de hasta unos 20 kHz. Cual
es la mnima tasa de muestreo necesaria para digitalizar un concierto musical? Comparese la
respuesta con la tasa de 44.1 kHz empleada en sistemas CD de audio.
Algunos animales (p. ej. delnes y murcielagos) producen sonidos con contenido en frecuencia
de hasta 50 kHz. Que consecuencias tiene esto para un zoologo interesado en grabar los
sonidos de estos animales en CD?
A la hora de utilizar una herramienta informatica como es MATLAB para simular nuestros
sistemas de comunicaciones, es imposible capturar todas las sutilezas de la conversion D/A ya
que las se nales presentes en el entorno de simulacion ya han sido muestreadas. En otras palabras,
2
TTRS. Curso 2012/2013. Universidad de Vigo Practica 1
0 B fs/2

2fs fs B 0 B fs 2fs
0 fs/2 B
2fs fs B 0 B fs 2fs
|X(f)|
|X
s
(f)|
|X
s
(f)|
|X(f)|
Figura 1.1: El espectro de una se nal muestreada es periodico con periodo f
s
. En la parte superior,
el espectro X(f) esta limitado en banda a menos de f
s
/2 y las replicas no se solapan.
El caso contrario ocurre en la parte inferior, y se produce aliasing.
MATLAB no puede trabajar con se nales analogicas. Sin embargo, el proceso de muestreo puede
simularse si representamos las formas de onda analogicas utilizando un n umero sucientemente
elevado de muestras, y despues reducimos dicho n umero de muestras.
Por ejemplo, para representar una se nal sinusoidal de frecuencia 800 Hz, basta con muestrearla
a su tasa de Nyquist, que es 1600 muestras/s. Pero para visualizar la forma de onda con claridad,
es conveniente utilizar un muestreo a una tasa mucho mayor. El siguiente codigo MATLAB
calcula y dibuja la se nal sinusoidal de 800 Hz desde t = 0 hasta t = 0.03 s, con una tasa de
muestreo de f
s
= 80000 muestras/s.
3
TTRS. Curso 2012/2013. Universidad de Vigo Practica 1
sine800hz.m
f=800; % frecuencia de la sinusoide, en Hz
time=0.03; % tiempo total, en segundos
Tu=1/80000; % intervalo de muestreo, en segundos
t=Tu:Tu:time; % define una base de tiempos
w=sin(2*pi*f*t+0.3); % define la se~nal sinusoidal con una fase inicial
plot(t,w,.); % dibuja la sinusoide frente al tiempo
xlabel(segundos); % etiqueta eje x
ylabel(amplitud); % etiqueta eje y
Ejecuta sine800hz.m y observaras varios periodos de la sinusoide. Verica la duracion de cada
periodo y el n umero de puntos en cada periodo.
Cuestion 3
Cual ha de ser la tasa de muestreo para que cada periodo de la onda contenga 60 muestras?
Comprueba el resultado modicando el codigo anterior.
Reduce el periodo de muestreo a Tu=1/20000 y observa la representacion de la sinusoide.
Que aspecto tiene? Crees que se esta produciendo aliasing?
Repite el punto anterior con Tu=1/760.
Cuando f
s
2B, la representacion muestreada aparece (y se comporta) como una se nal
analogica, aunque en realidad sigue siendo una secuencia discreta. Se suele decir que dicha se nal
se halla sobremuestreada. A continuacion simularemos el proceso de muestrear la sinusoide
sobremuestreada, proceso denominado submuestreo.
sine800hzsamp.m
f=800; time=0.007; Tu=1/80000; t=Tu:Tu:time; % frecuencia y base de tiempos
w=sin(2*pi*f*t+0.3); % sinusoide con una fase inicial
M=10; % toma 1 de cada M muestras
wk=w(1:M:end); % muestras de la sinusoide
ws=zeros(size(w)); ws(1:M:end)=wk; % sinusoide submuestreada ws(t)
subplot(211), plot(t,w); % sinusoide sobremuestreada
hold on; plot(t,ws, r); hold off; % sinusoide submuestreada
xlabel(segundos); ylabel(amplitud); % etiquetas ejes
subplot(212), plot(t(1:M:end),wk, ro); % muestras
xlabel(segundos); ylabel(amplitud); % etiquetas ejes
Ejecuta sine800hzsamp.m y obtendras la representacion graca de submuestrear la se nal
sinusoidal continua w por un factor M=10, lo cual quiere decir que solo se conserva una de cada
M muestras y el resto se elimina. As:
4
TTRS. Curso 2012/2013. Universidad de Vigo Practica 1
El vector w representa la se nal analogica w(t);
El vector ws representa la se nal submuestreada w
s
(t) dada por
w
s
(t) = w(t)

n=
(t nT
s
) =

n=
w(nT
s
)(t nT
s
), (1.5)
donde T
s
= M T
u
;
El vector wk contiene las muestras w(nT
s
).
Cuestion 4
Considera la se nal x(t) = sinc(t/T
0
), con T
0
= 5 10
3
s, en el intervalo 0.05 t 0.05
s. Modica el codigo en sine800hzsamp.m para crear una version sobremuestreada (usa T
u
=
10
4
s) de x(t) y realiza un submuestreo con M = 10.
Repite para M = 30 y M = 50, y comenta los resultados. (Es util determinar el periodo de
muestreo efectivo en cada caso y considerar el espectro de x(t)).
1.2. Calculo de espectros en MATLAB
Es frecuente que no exista una expresion analtica para una se nal dada (por ejemplo si dicha
se nal es el resultado de una medida), lo cual impide el calculo de su espectro mediante la
aplicacion directa de la transformada de Fourier (1.3). En tal caso, es posible hallar el espectro
de la se nal usando la transformada discreta de Fourier (DFT).
El comando fft de MATLAB calcula la DFT de una se nal usando un algoritmo eciente deno-
minado Fast Fourier Transform, en cuyos detalles no vamos a entrar. Naturalmente, MATLAB
solo puede trabajar con se nales discretas, lo cual no es un problema pues en la practica el
resultado de cualquier medida de una se nal analogica sera una version muestreada de esta.
Una funcion MATLAB muy util (y que utiliza el comando fft) es plotspec.m. Ejecutando
plotspec(x,Ts) obtendremos una representacion graca de la se nal temporal cuyas muestras
estan contenidas en x y de la magnitud de su espectro. El argumento Ts corresponde al intervalo
temporal (en s) entre muestras consecutivas de x.
Para un correcto uso de plotspec.m es importante notar que el n
o
de puntos de la FFT que
plotspec.m utiliza a la hora de calcular el espectro es igual a la longitud de la se nal. Por tanto,
si el n umero de muestras del que disponemos es peque no, la aproximacion del espectro obtenida
no sera muy buena.
5
TTRS. Curso 2012/2013. Universidad de Vigo Practica 1
Cuestion 5
Genera muestras de una sinusoide de amplitud 1 y frecuencia 20 Hz, muestreada a 1/T
s
= 10
3
muestras/s, entre t = 0 y t = 2 s. Utiliza plotspec.m para visualizar su espectro. Se
corresponde con lo que esperaras?
Vara la frecuencia de la sinusoide a 100, 200 y 600 Hz y comenta el resultado.
Para una frecuencia de 20 Hz, vara la tasa de muestreo a 100 y 10
4
muestras/s. Como cambia
el espectro en cada caso? Cual es el rango frecuencial de la representacion?
Cuestion 6
Escribe una peque na rutina para generar muestras de una onda cuadrada con amplitud variando
entre 1 y 1, con frecuencia fundamental 20 Hz y muestreada a 1/T
s
= 10
3
muestras/s, entre
t = 0 y t = 2 s. (Es muy facil utilizando las funciones cos y sign de MATLAB). Utiliza
plotspec.m para visualizar su espectro.
Calcula analticamente el espectro de una onda cuadrada mediante su representacion en serie
de Fourier. Compara el resultado con la version discreta obtenida en MATLAB. Podemos decir
que esta se nal esta limitada en banda?
1.3. Dise no de ltros digitales
Los ltros lineales constituyen herramientas fundamentales en todo sistema de comunicaciones
digitales. Su objetivo principal es conformar el espectro de la se nal a su salida. Aunque en
practicas venideras profundizaremos en el area de dise no de ltros, a continuacion repasaremos
su funcionamiento. Recordemos que la operacion de un ltro digital se puede expresar en el
dominio temporal mediante una ecuacion en diferencias:
y[n] =
N

i=0
b
i
x[n i]
M

j=1
a
i
y[n j], (1.6)
donde x[n] es la se nal de entrada e y[n] la de salida. Dados los coecientes del ltro, es
facil realizar esta operacion en MATLAB mediante el comando filter. As, la instruccion
y=filter(b,a,x) devuelve en el vector y las muestras de la se nal de salida. El vector x contiene
las de la se nal de entrada, mientras que b y a contienen los coecientes del ltro {b
0
, b
1
, . . . ,
b
N
} y {1, a
1
, a
2
, . . . , a
M
} respectivamente.
Como sabemos, la accion de un ltro puede visualizarse facilmente en el dominio de la frecuen-
cia: el ltro aten ua o amplica ciertas componentes en frecuencia de la se nal. Cuanto amplica
o aten ua, y sobre que frecuencias, viene determinado por la funcion de transferencia del ltro.
6
TTRS. Curso 2012/2013. Universidad de Vigo Practica 1
Por tanto, aun cuando la operacion de ltrado se realice en el dominio temporal (convolucion),
es mas natural especicar y dise nar los ltros en el dominio de la frecuencia.
Por ejemplo, si se sabe que la se nal de interes ocupa cierta banda de frecuencias, mientras que
el ruido o la interferencia reside en otra banda diferente, es logico dise nar un ltro que aten ua
la banda ruidosa y deja pasar las frecuencias de la se nal. Este hecho se traslada directamente
en las especicaciones de la funcion de transferencia del ltro.
Por fortuna, MATLAB dispone de una serie de rutinas para el dise no de ltros que pode-
mos utilizar directamente. De todas formas, aunque estas rutinas son bastante exibles, no son
100 % seguras, por lo que siempre es recomendable vericar que el ltro obtenido cumple las
especicaciones originales.
Existen varias clases de ltros: paso bajo, paso alto, paso banda, de banda eliminada o de
ranura. Su objetivo es dejar pasar sin distorsion (aunque un escalado y un retardo son tolera-
bles) unas ciertas componentes en frecuencia (la banda de paso), atenuando lo mas posible las
componentes en la banda eliminada.
En la banda de paso, la magnitud de la funcion de transferencia del ltro ha de ser lo mas
plana posible; pero tambien es importante que la fase sea lineal en esta banda, lo que se
corresponde a un retardo constante en el dominio del tiempo. Si no es as, cada frecuencia
en la banda de paso sufrira un retardo distinto, y se producira distorsion en la salida.
En la banda eliminada, la magnitud de la funcion de transferencia debera ser lo mas
peque na posible, y el valor de la fase no es importante.
La banda de transicion comprende las frecuencias entre la banda de paso y la banda
eliminada. Esta banda de transicion debera ser lo mas estrecha posible, pero hemos de
tener claro que un ltro practico nunca podra tener una banda de transicion de anchura
nula.
El comando que utilizaremos habitualmente para dise nar ltros FIR en MATLAB es firpm.
Esta funcion proporciona una respuesta al impulso con coecientes reales y simetricos, con la
mejor aproximacion a la respuesta en frecuencia especicada (mejor en el sentido de mantener
un rizado constante en la banda de paso), que ha de ser plana por tramos:
b = firpm(orden, bordes, amps)
devuelve en b la respuesta impulsional. Los argumentos de esta funcion son:
orden es el orden del ltro (n umero de coecientes del ltro, menos uno). Notese que
aumentando el orden mejoraremos la calidad del ltro (estaremos mas cercanos a las
especicaciones), pero el ltro resultante requerira mas recursos en su implementacion.
Ademas, el retardo (en muestras) introducido por este tipo de ltros es aproximadamente
la mitad de su orden, por lo que a mayor orden, mayor retardo.
bordes es un vector especicando los bordes de las bandas, en orden ascendente entre 0 y
1, con 1 correspondiendo a la mitad de la tasa de muestreo.
7
TTRS. Curso 2012/2013. Universidad de Vigo Practica 1
amps es un vector especicando las amplitudes requeridas en cada borde de banda. Ha de
tener la misma longitud que bordes.
Por ejemplo, supongamos que queremos dise nar un ltro pasobanda de 33 coecientes que elimine
las frecuencias fuera de [f
s
/8, 3f
s
/8]:
b = firpm(32, [0 .24 .26 .74 .76 1], [0 0 1 1 0 0]);
Cuestion 7
Ejecuta plot([0 .24 .26 .74 .76 1],[0 0 1 1 0 0]) para ver la mascara que repre-
senta la accion del ltro paso banda utilizado, en el rango de frecuencias positivas. Si la tasa
de muestreo es de 5000 Hz, que frecuencias dejara pasar este ltro?
Para validar el dise no, podemos usar la funcion freqz:
freqz(b);
Cuestion 8
Cual es la mnima atenuacion (en dB) introducida por el ltro en la banda eliminada?
Cual es el valor pico a pico (en dB) del rizado en la banda de paso?
Cual es el retardo introducido por el ltro a una se nal cuyo espectro se halle connado a la
banda de paso?
Haz mas estrechas las bandas de transicion, por ejemplo usando [0 .249 .251 .749 .751
1], y responde a las tres preguntas anteriores.
Repite el dise no original pero usando 129 coecientes en la respuesta al impulso. Que puedes
decir con respecto a la planicidad en la banda de paso, la atenuacion mnima en la banda
eliminada y el retardo introducido?
Cuestion 9
Supongamos que nuestro procesador trabaja sobre una tasa de 3.210
6
muestras/s. Especica
y dise na un ltro con dos bandas de paso, una en [160, 240] kHz y otra en [400, 560] kHz.
Nota importante: como habras podido ver, disponemos de dos comandos diferentes (plotspec
y freqz) para la visualizacion de datos en el dominio frecuencial. Es aconsejable utilizar plotspec
para visualizar el espectro de se nales, mientras que freqz es mas adecuado para visualizar la
funcion de transferencia de ltros.
8
TTRS. Curso 2012/2013. Universidad de Vigo Practica 1
1.4. Variables aleatorias
Existen dos comandos en MATLAB para generar n umeros (pseudo)aleatorios: rand y randn.
El primero genera n umeros uniformemente distribuidos entre 0 y 1, mientras que el segundo
genera n umeros con una distribucion normal (gaussiana) estandar, esto es, de media cero y
varianza 1. A partir de una coleccion de realizaciones (muestras) de una variable aleatoria, su
funcion de densidad de probabilidad se puede estimar mediante el histograma (funcion hist en
MATLAB).
Cuestion 10
Mediante rand, genera 10000 muestras uniformemente distribuidas entre 1 y 1. Verica esta
distribucion mediante el comando hist.
Repite el proceso anterior para una distribucion normal de media 0 y varianza 3, y para otra
de media 5 y varianza 1. Cambia el n umero de bins del histograma (10 por defecto) a 20 y 50.
Repite el proceso anterior para una variable aleatoria que toma los valores 1 y 1 con igual
probabilidad.
1.5. Procesos estocasticos
Recordemos que un proceso estocastico X(t) no es mas que una coleccion de variables
aleatorias, una para cada valor de t. Cada una de estas v.a.s tendra su funcion de distribucion
f
X
(x; t). As, podemos pensar en una realizacion x(t) del proceso estocastico X(t) como una
se nal cuyo valor en cada instante t ha tomado un valor aleatorio.
Tengamos en cuenta la denicion de media y autocorrelacion de un proceso aleatorio:

X
(t) = E{X(t)} =

xf
X
(x; t)dx, R
X
(t
1
, t
2
) = E{X(t
1
)X(t
2
)}. (1.7)
Un proceso es estacionario si sus caractersticas estadsticas no varan a lo largo del tiempo. En
particular, decimos que un proceso es estacionario en sentido amplio si
X
(t) =
X
(constante,
es decir, la media del proceso es la misma en todo instante de tiempo) y R
X
(t
1
t
2
) solo depende
de la diferencia t
2
t
1
(lo que signica que la correlacion, o grado de similitud, entre las v.a.s
X(t
1
) y X(t
2
) solo depende de la separacion temporal entre ambas, no de su posicion absoluta).
Cuestion 11
Genera una realizacion x = pa3(1,1000) y calcula su autocorrelacion temporal mediante la
convolucion de x(t) con x(t), normalizada por la longitud de la se nal. Representa el resultado.
Observas alguna simetra? Cuanto vale el maximo de la autocorrelacion? Comparalo con la
potencia de la se nal, estimada mediante var.
9
TTRS. Curso 2012/2013. Universidad de Vigo Practica 1
Dado que no podemos utilizar realizaciones de longitud innita, la autocorrelacion calcula-
da anteriormente es solo una aproximacion a la verdadera. Para mejorar la calidad de esta
aproximacion podemos promediar las autocorrelaciones correspondientes a M realizaciones:
x = pa3(M,N);
for j=1:M, rx(j,:) = conv ( x(j,:), fliplr(x(j,:)) )/N; end;
r = mean(rx);
Ejecuta el codigo anterior con M = 50 realizaciones de longitud N = 500. Asumiendo una tasa
de muestreo de 5 kHz, utiliza luego plotacf.m (es muy similar a plotspec.m) para visualizar
la autocorrelacion y su Transformada de Fourier. Cual es el signicado fsico de esta ultima?
Que puedes decir acerca del color de este proceso?
Veamos ahora el efecto de un ltrado en la autocorrelacion. Considera el ltro dise nado en la
Cuestion 8. Utiliza el metodo del punto anterior para estimar la autocorrelacion de la salida
de dicho ltro cuando su entrada es el proceso generado por pa3.m. Representa el resultado
mediante plotacf.m y comenta lo que observas.
10

También podría gustarte