Академический Документы
Профессиональный Документы
Культура Документы
1.
Objetivo y contenido
El objetivo de esta prctica es doble: por una parte, repasar y consolidar las nociones a de matlab dadas en la prctica anterior; por otra parte, utilizar algunas de las funciones a que matlab ofrece para modelar sistemas, ltros y canales de comunicaciones. En primer lugar, se utilizar matlab para analizar sistemas lineales invariantes en el a tiempo (LTI) y ltros en particular. Despus, deniremos modelos de ruido y desvanee cimiento para modelado de canales de comunicaciones. Para ello, utilizaremos funciones incluidas en los Toolboxes de procesamiento de seales, comunicaciones y diseo de n n ltros. Finalmente, usaremos Simulink, una interfaz grca complementaria a matlab, para a simular el comportamiento de un canal de comunicaciones con diferentes modelos de ltrado, retardo, ruido y desvanecimiento.
2.
2.1.
Un sistema LTI viene denido por su respuesta impulsiva, h(t) (siendo la salida y(t) = Y (s) h(t) x(t)), y su funcin de transferencia correspondiente, H(s) = X(s) . En matlab, la o funcin tf dene la funcin de transferencia de un sistema LTI a partir de dos vectores. o o El primero especica el numerador de la funcin de transferencia y el segundo especica o 1 el denominador de la funcin de transferencia . o En el ejemplo 1, se dene 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 clculo simblico, el resultado de aplicar a dos sinua o soides un ltro de paso de baja ideal de ganancia 1 y frecuencia de corte 1001 Hz.
El orden en que se escriben los coecientes de los polinomios as como otros posibles parmetros, a como de costumbre, se puede consultar con help tf y doc tf
1
Cualquier otra conguracin de ltros paso de baja, alta o banda, se puede obtener o mediante clculo simblico modicando la frecuencia de corte y restando escalones en a o frecuencia.
2.2.
Filtros reales
El ejemplo 3 dene un ltro paso de baja realizable de primer orden (ltro RC con 1 H(s) = 1+sRC ). Ejemplo 3 com pr2 0003 ltro 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 escaln o impulse(filtroRC) % respuesta impulsiva ltiview(filtroRC) % Ventana especial de representacin grfica de sistemas LTI o a
La orden ltiview abre una ventana con una interfaz diseada para representar grn a camente sistemas LTI. Esta ventana especial permite visualizar de manera cmoda las o grcas normalmente empleadas en el estudio de sistemas LTI y ltros. a Denir un ejemplo de ltro RLC de paso de banda de segundo orden ((H(s) = s2 +s ks +w2 ) y otro de ltro RLC de paso de baja de segundo orden w0
Q 0
(H(s) =
1 1 ). LC s2 +s(R/L)+1/(LC)
Para denir un ltro Butterworth, contamos con las funciones predenidas butter y buttord. En el ejemplo 4, denimos un ltro de paso de baja Butterworth de orden 3 y frecuencia de corte2 de 1KHz. Ejemplo 4 com pr2 0004 ltro 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)
En el ejemplo 5, denimos un ltro Butterworth de paso de baja con frecuencia de paso 5 KHz, frecuencia de rechazo 10 KHz, con atenuacin menor de 2 dB en la banda o de paso y mayor de 30 dB en las bandas rechazo: Comparar las se ales de entrada y salida del ltro. n
2
1/2.
3.
Ruido
Las funciones rand y randn, predenidas en matlab, generan nmeros pseudoaleau torios de distribucion uniforme y normal, respectivamente. Por tanto, podemos aadir n ruido aleatorio de distribucin normal a cualquier seal siguiendo el procedimiento que se o n muestra en el ejemplo 6. Ejemplo 6 com pr2 0006 ruido randn.m
% A~adir ruido a una sinusoide usando numeros aleatorios (randn - distrib. normal) n 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 ms cmoda de aadir ruido blanco gaussiano a una seal es utilizar las a o n n funciones predenidas wgn y awgn. Si queremos generar simplemente un vector seal con n ruido gaussiano blanco, podemos utilizar la funcin wgn (ver ejemplo 7). Mediante wgn, o tambin es posible generar ruido especicando la impedancia de carga (ver ejemplo 8). e Ejemplo 7 com pr2 0007 ruido wgn.m
% Vector ruido de 1000 elementos y 2 dBm de potencia ruido = wgn(1000,1,2,dBm);
La funcin awgn genera ruido para un determinado valor de SNR. De este modo, o podemos simular el paso de la seal por un canal con ciertas caracter n sticas de ruido. En el ejemplo 9, denimos una seal cuadrada y aadimos ruido con SN R = 15 dB: n n En el ejemplo 10, denimos una seal sinusoide de frecuencia 2 Hz y SN R = 20 dB. n
Dpto. Electrnica y Electromagnetismo o Facultad de F sica, Universidad de Sevilla
De los siguientes tipos de ruidos, cuales se pueden generar fcilmente en a matlab? blanco rosa azul
4.
Canales de comunicacin o
Con lo visto hasta ahora, cmo se podr denir en matlab modelos de o an canales de los siguientes tipos? Canal de ruido aditivo gaussiano. Canal de ltro lineal invariante con el tiempo. Canal de ltro lineal variante con el tiempo. Cmo se pueden simular en matlab los efectos de atenuacin de un canal? o o En cuanto al desvanecimiento, los modelos de canales de Rayleigh y Rician se pueden denir 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 seal por el canal representado por el objeto, se puede utilizar la n funcin filter, como en el ejemplo 11. o Ejemplo 11 com pr2 0011 canal rayleigh.m
% Paso de una se~al por un canal con modelo de fading de Rayleigh n t = 0:0.001:10; x = square(t); % Crear un objeto canal que sigue un modelo de Rayleigh % frec. de muestreo: 1KHz, Mximo desplazamiento Doppler: 20Hz a c = rayleighchan(1/1000,20); % ver las propiedades del canal c % la se~al x atraviesa el canal c n y = filter(c,x); % y es complejo! plot(abs(y)) plot(unwrap(angle(y)))
5.
Simulink es una herramienta complementaria a matlab que permite denir 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 botn Simulink de la barra de herramientas. o o Del mismo modo que cuando denimos secuencias de rdenes con matlab contamos o con una librer de funciones predenidas, Simulink proporciona librer de bloques funa as cionales. Los bloques de las librer aparecen representados como iconos. Para usarlos, as creamos un nuevo modelo, y los copiamos arrastrndolos con el ratn. En nuestro caso, a o 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 parmetros de los componentes que se vayan incorporando en los a modelos se pueden editar pinchando dos veces sobre los componentes. En el ejemplo de la gura 1, archivo f icom_2apr_ejemplo_canal_simulinkr14.mdl3 , podemos ver el efecto que sobre diversas seales de origen tienen los siguientes elementos: n ltro LTI, retardo y ruido (gaussiano, normal o de otras distribuciones). Probar diferentes se ales y modicar los parmetros de los componentes n a (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 (Botn Blocksets & Toolboxes, y despus botn Comm Blockset): o e o Rayleigh Fading Channel RF Satellite Link
6.
Notas
1. En matlab existen muchas funciones que generan seales (funciones) de uso frecuenn te. Por ejemplo: rectpuls, que genera un pulso rectangular; tripuls, que genera un pulso triangular; square, que genera una seal cuadrada; sawtooth, que genera n una seal en diente de sierra; y otras (gauspuls, pulstran, diric, chirp, etc. En n
Se proporcionan varios archivos con nombres diferentes (r12,r13,r14) para diferentes versiones de Simulink
3
Figura 1: Ejemplo de modelo de canal en Simulink general, estas funciones admiten parmetros que modican la forma de la seal a a n generar. Vase la informacin que proporciona la orden doc para cualquiera de estas e o funciones. 2. La orden ltidemo presenta una gu prctica sobre denicin y manipulacin con a a o o matlab de sistemas lineales e invariantes en el tiempo. 3. Adems de la funcin tf, existen otras funciones para denir sistemas LTI, como a o zpk (especicando los ceros, los polos y la ganancia) o ss (modelo estado-espacio). Adems, existen funciones para transformar modelos entre diferentes tipos, vase a e zp2tf, ss2tf, etc. 4. Se dispone de una gran variedad de funciones para obtener representaciones grcas a de ltros: step, impulse, bode, nichols, freqresp y un largo etctera que queda e resumido en la interfaz de ltiview. 5. El Toolbox de procesamiento de seales de matlab incluye la demo filtdemo, que n representa la transformada de una seal antes y despus de pasar por un ltro. n e Qu se puede deducir sobre el ltro a partir de la grca? Otra demo, filtdem, e a compara grcamente la respuesta en frecuencia de ltros de tres tipos: YuleWalk, a Butterworth y Chebychev. Por ultimo, filtdemo permite comparar variantes de ltros paso de baja, tanto de tipo FIR como de tipo IIR. 6. El Toolbox para diseo de ltros, Filter Design Toolbox, ofrece muchas posibilin dades que aqu apenas hemos utilizado.
Dpto. Electrnica y Electromagnetismo o Facultad de F sica, Universidad de Sevilla
7. Para el tratamiento estad stico de seales y errores, matlab dispone de un amplio n conjunto de funciones para clculo estad a stico en general (vase, por ejemplo, la e documentacin sobre las funciones mean, std, median). Asimismo, se cuenta con un o Toolbox espec co para clculo estad a stico. 8. Para ms informacin sobre canales en matlab, ver el apartado Channels de la a o documentacin del Toolbox de comunicaciones. En particular, el apartado Fading o Channels describe el uso de los modelos de Rayleigh y Rician. 9. Los archivos de Simulink, .mdl, no son ms que archivos de texto. Se pueden abrir a con cualquier editor de textos y comprobar la informacin que se almacena para o 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/. Prcticas de la asignatura Seales y Sistemas a n Discretos, impartida por el Departamento de Teor de la Seal y Comunicaciones de la a n 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-53493805-1.