Práctica 2: Sistemas, filtros, ruido y canales de comunicaciones

Anuncio
Fı́sica de las Comunicaciones – 2006/2007 – Práctica 2
1
Práctica 2: Sistemas, filtros, ruido y canales de
comunicaciones
1.
Objetivo y contenido
El objetivo de esta práctica es doble: por una parte, repasar y consolidar las nociones
de matlab dadas en la práctica anterior; por otra parte, utilizar algunas de las funciones
que matlab ofrece para modelar sistemas, filtros y canales de comunicaciones.
En primer lugar, se utilizará matlab para analizar sistemas lineales invariantes en el
tiempo (LTI) y filtros en particular. Después, definiremos modelos de ruido y desvanecimiento para modelado de canales de comunicaciones. Para ello, utilizaremos funciones
incluidas en los “Toolboxes” de procesamiento de señales, comunicaciones y diseño de
filtros.
Finalmente, usaremos Simulink, una interfaz gráfica complementaria a matlab, para
simular el comportamiento de un canal de comunicaciones con diferentes modelos de
filtrado, retardo, ruido y desvanecimiento.
2.
2.1.
Sistemas lineales invariantes con el tiempo y filtros
Filtros ideales
Un sistema LTI viene definido por su respuesta impulsiva, h(t) (siendo la salida y(t) =
Y (s)
h(t) ∗ x(t)), y su función de transferencia correspondiente, H(s) = X(s)
. En matlab, la
función tf define la función de transferencia de un sistema LTI a partir de dos vectores.
El primero especifica el numerador de la función de transferencia y el segundo especifica
el denominador de la función de transferencia1 .
En el ejemplo 1, se define un LTI ideal de ganancia 1/3 que no altera la fase, y se
estudia su respuesta a un escalon, su respuesta impulsiva y su respuesta en frecuencia.
El ejemplo 2 compara, mediante cálculo simbólico, el resultado de aplicar a dos sinusoides un filtro de paso de baja ideal de ganancia 1 y frecuencia de corte 1001 Hz.
1
El orden en que se escriben los coeficientes de los polinomios ası́ como otros posibles parámetros,
como de costumbre, se puede consultar con help tf y doc tf
Dpto. Electrónica y Electromagnetismo
Facultad de Fı́sica, Universidad de Sevilla
2
Fı́sica de las Comunicaciones – 2006/2007 – Práctica 2
Ejemplo 1 ficom pr2 0001 filtro ganancia.m
% Ejemplo de definición de un LTI (Amplificador ideal de ganancia 1/3)
X = 3
Y = 1
lti1 = tf(Y,X)
% tf define un sistema LTI
step(lti1)
% representar respuesta a escalón
pause
% esperar tecla
impulse(lti1)
% representar respuesta impulsiva
pause
freqresp(lti1,1)
% respuesta en frecuencia = 1 rad.
pause
bode(lti1)
Ejemplo 2 ficom pr2 0002 filtro ideal simbolico.m
% Filtro paso de baja ideal mediante cálculo simbólico
syms t
% Dos se~
nales sinusoides de entrada
w1 = 1000;
x1 = cos(2*pi*w1*t)
w2 = 1100;
x2 = cos(2*pi*w2*t)
% Función de transferencia del filtro (escalon en frecuencia)
syms w
w_corte = 1001*2*pi;
H_pb = Heaviside(w+w_corte)-Heaviside(w-w_corte)
% Calcular las salidas en frecuencia como producto de transformadas
X1 = fourier(x1);
X2 = fourier(x2);
Y1 = X1*H_pb;
Y2 = X2*H_pb;
% Calcular salidas en el dominio del tiempo
y1 = ifourier(Y1)
y2 = yfourier(Y2)
% Representación de las salidas respecto al tiempo
subplot(211)
ezplot(y1)
subplot(212)
ezplot(y2)
Dpto. Electrónica y Electromagnetismo
Facultad de Fı́sica, Universidad de Sevilla
Fı́sica de las Comunicaciones – 2006/2007 – Práctica 2
3
Cualquier otra configuración de filtros paso de baja, alta o banda, se puede obtener
mediante cálculo simbólico modificando la frecuencia de corte y restando escalones en
frecuencia.
2.2.
Filtros reales
El ejemplo 3 define un filtro paso de baja realizable de primer orden (filtro RC con
1
H(s) = 1+sRC
).
Ejemplo 3 ficom pr2 0003 filtro rc 1er orden.m
% filtro RC 1er orden
R = 10e3;
C = 10e-12;
Y = 1;
X = [R*C 1]
filtroRC = tf(Y,X)
step(filtroRC)
% respuesta a escalón
impulse(filtroRC)
% respuesta impulsiva
ltiview(filtroRC)
% Ventana especial de representación gráfica de sistemas LTI
La orden ltiview abre una ventana con una interfaz diseñada para representar gráficamente sistemas LTI. Esta ventana especial permite visualizar de manera cómoda las
gráficas normalmente empleadas en el estudio de sistemas LTI y filtros.
Definir un ejemplo de filtro RLC de paso de banda de segundo orden
((H(s) = s2 +s ks
) y otro de filtro RLC de paso de baja de segundo orden
w0
+w2
Q
(H(s) =
0
1
1
).
LC s2 +s(R/L)+1/(LC)
Para definir un filtro Butterworth, contamos con las funciones predefinidas butter y
buttord. En el ejemplo 4, definimos un filtro de paso de baja Butterworth de orden 3 y
frecuencia de corte2 de 1KHz.
Ejemplo 4 ficom pr2 0004 filtro butterworth1.m
% Filtro Butterworth de orden 3
orden = 3;
w_corte = 1000;
[Y, X] = butter(orden,w_corte,’s’)
b = tf(Y,X)
ltiview(b)
% ¿’s’? ver help butter
En el ejemplo 5, definimos un filtro Butterworth de paso de baja con frecuencia de
paso 5 KHz, frecuencia de rechazo 10 KHz, con atenuación menor de 2 dB en la banda
de paso y mayor de 30 dB en las bandas rechazo:
Comparar las señales de entrada y salida del filtro.
2
Para la cual la respuesta en magnitud es
Dpto. Electrónica y Electromagnetismo
p
1/2.
Facultad de Fı́sica, Universidad de Sevilla
4
Fı́sica de las Comunicaciones – 2006/2007 – Práctica 2
Ejemplo 5 ficom pr2 0005 filtro butterworth2.m
% Filtro Butterworth con ’buttord’ y ’butter’
w_paso = 5*pi*1000;
w_rechazo = 25*pi*1000;
aten_paso = 2;
aten_rechazo = 30;
[n,w_corte] = buttord(w_paso,w_rechazo,aten_paso,aten_rechazo,’s’)
% ¿’s’? ver help buttord
[Y,X] = butter(n,w_corte,’s’);
b = tf(Y,X);
ltiview(b)
3.
Ruido
Las funciones rand y randn, predefinidas en matlab, generan números pseudoaleatorios de distribucion uniforme y normal, respectivamente. Por tanto, podemos añadir
ruido aleatorio de distribución normal a cualquier señal siguiendo el procedimiento que se
muestra en el ejemplo 6.
Ejemplo 6 ficom pr2 0006 ruido randn.m
% A~
nadir ruido a una sinusoide usando numeros aleatorios (randn - distrib. normal)
randn(’state’,0);
t = 0:0.001:pi;
g = sin(2*pi*2*t);
g_ruido = g + 0.25*randn(1,size(t));
% sumar vector aleatorio
subplot(211)
plot(t,g)
subplot(212)
plot(t,g_ruido)
Una manera más cómoda de añadir ruido blanco gaussiano a una señal es utilizar las
funciones predefinidas wgn y awgn. Si queremos generar simplemente un vector señal con
ruido gaussiano blanco, podemos utilizar la función wgn (ver ejemplo 7). Mediante wgn,
también es posible generar ruido especificando la impedancia de carga (ver ejemplo 8).
Ejemplo 7 ficom pr2 0007 ruido wgn.m
% ‘‘Vector ruido’’ de 1000 elementos y 2 dBm de potencia
ruido = wgn(1000,1,2,’dBm’);
La función awgn genera ruido para un determinado valor de SNR. De este modo,
podemos simular el paso de la señal por un canal con ciertas caracterı́sticas de ruido. En
el ejemplo 9, definimos una señal cuadrada y añadimos ruido con SN R = 15 dB:
En el ejemplo 10, definimos una señal sinusoide de frecuencia 2 Hz y SN R = 20 dB.
Dpto. Electrónica y Electromagnetismo
Facultad de Fı́sica, Universidad de Sevilla
Fı́sica de las Comunicaciones – 2006/2007 – Práctica 2
5
Ejemplo 8 ficom pr2 0008 ruido wgn impedancia carga.m
% ‘‘Vector ruido’’ de 1000 elementos, 0.5W de potencia sobre una carga de 100 Ohmios
ruido = wgn(1000,1,0.5,100);
Ejemplo 9 ficom pr2 0009 ruido awgn.m
% A~
nadir ruido WGN a una se~
nal cuadrada con SNR=15dB
t=0:0.01:10;
g = square(t);
% se~
nal cuadrada
g_ruido = awgn(g,15);
% a~
nadir ruido, SNR = 15dB
plot(t,g_ruido)
% Representar se~
nal con ruido
% Representar las densidades espectrales de potencia
psd(g)
hold on
psd(g_ruido)
Ejemplo 10 ficom pr2 0010 ruido awgn sinusoide.m
g=sin(2*pi*2*t);
g_ruido = awgn(g,20);
subplot(311)
% Comparar se~
nal limpia y se~
nal con ruido
plot(t,g);
subplot(312)
plot(t,g_ruido);
subplot(313)
plot(g,g_ruido)
% Representar las densidades espectrales de potencia
psd(g)
hold on
psd(g_ruido)
Dpto. Electrónica y Electromagnetismo
Facultad de Fı́sica, Universidad de Sevilla
6
Fı́sica de las Comunicaciones – 2006/2007 – Práctica 2
De los siguientes tipos de ruidos, ¿cuales se pueden generar fácilmente en
matlab?
blanco
rosa
azul
4.
Canales de comunicación
Con lo visto hasta ahora, ¿cómo se podrı́an definir en matlab modelos de
canales de los siguientes tipos?
Canal de ruido aditivo gaussiano.
Canal de filtro lineal invariante con el tiempo.
Canal de filtro lineal variante con el tiempo.
¿Cómo se pueden simular en matlab los efectos de atenuación de un canal?
En cuanto al desvanecimiento, los modelos de canales de Rayleigh y Rician se pueden
definir en matlab utilizando las funciones rayleighchan y ricianchan, respectivamente,
incluidas en el “Toolbox” de comunicaciones. Ambas funciones crean un objeto canal. Para
simular el paso de una señal por el canal representado por el objeto, se puede utilizar la
función filter, como en el ejemplo 11.
Ejemplo 11 ficom pr2 0011 canal rayleigh.m
% Paso de una se~
nal por un canal con modelo de fading de Rayleigh
t = 0:0.001:10;
x = square(t);
% Crear un objeto canal que sigue un modelo de Rayleigh
% frec. de muestreo: 1KHz, Máximo desplazamiento Doppler: 20Hz
c = rayleighchan(1/1000,20);
% ver las propiedades del canal
c
% la se~
nal x atraviesa el canal c
y = filter(c,x);
% y es complejo!
plot(abs(y))
plot(unwrap(angle(y)))
Comparar las señales de entrada y salida del canal.
Dpto. Electrónica y Electromagnetismo
Facultad de Fı́sica, Universidad de Sevilla
Fı́sica de las Comunicaciones – 2006/2007 – Práctica 2
5.
7
Modelado de un canal mediante Simulink
Simulink es una herramienta complementaria a matlab que permite definir modelos de
manera visual. Se puede arrancar de varias maneras, entre otras, dando la orden simulink
en la ventana de órdenes de matlab, o con el botón “Simulink” de la barra de herramientas.
Del mismo modo que cuando definimos secuencias de órdenes con matlab contamos
con una librerı́a de funciones predefinidas, Simulink proporciona librerı́as de bloques funcionales. Los bloques de las librerı́as aparecen representados como iconos. Para usarlos,
creamos un nuevo modelo, y los copiamos arrastrándolos con el ratón. En nuestro caso,
nos pueden interesar, entre otros muchos, los siguientes componentes:
Sources, Sine Wave.
Continuous, Transfer Fcn.
Blocksets & Toolboxes, Control System Toolbox, LTI.
Comm Blockset, Comm Sources.
Las propiedades y parámetros de los componentes que se vayan incorporando en los
modelos se pueden editar pinchando dos veces sobre los componentes.
En el ejemplo de la figura 1, archivo f icom_2apr_ejemplo_canal_simulinkr14.mdl3 ,
podemos ver el efecto que sobre diversas señales de origen tienen los siguientes elementos:
filtro LTI, retardo y ruido (gaussiano, normal o de otras distribuciones).
Probar diferentes señales y modificar los parámetros de los componentes
(se pueden editar pinchando dos veces en ellos).
Para tener una idea del aspecto del modelo completo de un sistema complejo en Simulink, se pueden abrir y analizar las siguientes demos, ambas pertenecientes al bloque
de comunicaciones (Botón “Blocksets & Toolboxes”, y después botón “Comm Blockset”):
Rayleigh Fading Channel
RF Satellite Link
6.
Notas
1. En matlab existen muchas funciones que generan señales (funciones) de uso frecuente. Por ejemplo: rectpuls, que genera un pulso rectangular; tripuls, que genera
un pulso triangular; square, que genera una señal cuadrada; sawtooth, que genera
una señal en diente de sierra; y otras (gauspuls, pulstran, diric, chirp, etc. En
3
Se proporcionan varios archivos con nombres diferentes (r12,r13,r14) para diferentes versiones de
Simulink
Dpto. Electrónica y Electromagnetismo
Facultad de Fı́sica, Universidad de Sevilla
8
Fı́sica de las Comunicaciones – 2006/2007 – Práctica 2
Figura 1: Ejemplo de modelo de canal en Simulink
general, estas funciones admiten parámetros que modifican la forma de la señal a
generar. Véase la información que proporciona la orden doc para cualquiera de estas
funciones.
2. La orden ltidemo presenta una guı́a práctica sobre definición y manipulación con
matlab de sistemas lineales e invariantes en el tiempo.
3. Además de la función tf, existen otras funciones para definir sistemas LTI, como
zpk (especificando los ceros, los polos y la ganancia) o ss (modelo estado-espacio).
Además, existen funciones para transformar modelos entre diferentes tipos, véase
zp2tf, ss2tf, etc.
4. Se dispone de una gran variedad de funciones para obtener representaciones gráficas
de filtros: step, impulse, bode, nichols, freqresp y un largo etcétera que queda
resumido en la interfaz de ltiview.
5. El “Toolbox” de procesamiento de señales de matlab incluye la demo filtdemo, que
representa la transformada de una señal antes y después de pasar por un filtro.
¿Qué se puede deducir sobre el filtro a partir de la gráfica? Otra demo, filtdem,
compara gráficamente la respuesta en frecuencia de filtros de tres tipos: YuleWalk,
Butterworth y Chebychev. Por último, filtdemo permite comparar variantes de
filtros paso de baja, tanto de tipo FIR como de tipo IIR.
6. El Toolbox para diseño de filtros, “Filter Design Toolbox”, ofrece muchas posibilidades que aquı́ apenas hemos utilizado.
Dpto. Electrónica y Electromagnetismo
Facultad de Fı́sica, Universidad de Sevilla
Fı́sica de las Comunicaciones – 2006/2007 – Práctica 2
9
7. Para el tratamiento estadı́stico de señales y errores, matlab dispone de un amplio
conjunto de funciones para cálculo estadı́stico en general (véase, por ejemplo, la
documentación sobre las funciones mean, std, median). Asimismo, se cuenta con un
“Toolbox” especı́fico para cálculo estadı́stico.
8. Para más información sobre canales en matlab, ver el apartado “Channels” de la
documentación del “Toolbox” de comunicaciones. En particular, el apartado “Fading
Channels” describe el uso de los modelos de Rayleigh y Rician.
9. Los archivos de Simulink, ’.mdl’, no son más que archivos de texto. Se pueden abrir
con cualquier editor de textos y comprobar la información que se almacena para
representar el modelo visual correspondiente. Para encontrar las descripciones de
los bloques, buscar la palabra ’Block’.
7.
Referencias
[1] Documentation for MathWorks Products, Release 14.
http://www.mathworks.com/access/helpdesk/help/helpdesk.shtml
[2] GNU Octave Repository Categorical Index.
http://octave.sourceforge.net/index/index.html
[3] http://www.gts.tsc.uvigo.es/ssd/. Prácticas de la asignatura Señales y Sistemas
Discretos, impartida por el Departamento de Teorı́a de la Señal y Comunicaciones de la
Universidad de Vigo.
[4] Fundamentals of Signals and Systems Using the Web and MATLAB: Online Demos.
http://users.ece.gatech.edu/˜bonnie/book/applets.html
[5] MathWorks, Inc. Manual de Simulink.
http://www.mathworks.com/access/helpdesk/help/toolbox/simulink/
[6] V.K. Ingle y J.G. Proakis. Digital Signal Processing Using MATLAB V.4. PWS
Publishing Company. 1997. ISBN: 0-534–93805-1.
Dpto. Electrónica y Electromagnetismo
Facultad de Fı́sica, Universidad de Sevilla
Descargar