Manual de referencia para Matlab y la asignatura de Transmision de Datos

Juan Jim´nez e 20 de abril de 2007

´ Indice
1. Introducci´n o 2. Operaciones b´sicas a 3. Estad´ ıstica descriptiva 4. Convoluci´n o 5. Varios 6. Transformada z 1 2 5 10 14 15

1.

Introducci´n o

Estas p´ginas no son un manual completo de Matlab. Est´n pensadas a a para describir las funciones que se emplean en las pr´cticas de transmisi´n a o de datos. Si alguien necesita una introducci´n a Matlab que pruebe a leer o el documento: ’Aprenda Matlab como si estuviera en primero’ (o algo as´ ı) que se encuentra tambien en el campus virtual al lado de este. Durante todo el manual se seguir´ la siguiente convenci´n tipogr´fica, los comandos y en a o a general todo lo que sea c´digo en matlab se escribir´ con el siguiente tipo: o a x=conv(a,b) Los comandos aqu´ incluidos pertenecen a distintas “toolboxes”. Para una ı vision completa, se aconseja ver a fondo el help de matlab

1

2.

Operaciones b´sicas a

cumprod: Producto acumulado. sintaxis: b=cumprod(a) b=cumprod(a,dim) descripci´n: Calcula el producto acumulado de los elementos de un mao triz, seguiendo una de sus dimensiones. Si a es un vector, cumprod(a) devuelve un vector que contiene los productos acumulados de los elementos de a. Si a es una matriz, cumprod(a) devuelve una matriz de las mismas dimensiones de a que contiene los productos acumulados por columnas de los elementos de a. cumprod(a,dim) devuelve el producto acumulado de los elementos de a, a lo largo de la dimension ,(fila o columna) indicada por dim. ejemplos: cumprod(1:5) ans= 1 2 6 24 120 cumsum: Suma Acumulada. sintaxis: b=cumsum(a) b=cumsum(a,dim) descripci´n: Calcula la suma acumulada de los elementos de una matriz, o siguiendo una de sus dimensiones. Si a es un vector, cumsum(a) devuelve un vector que contiene las sumas acumuladas de los elementos de a. Si a es una matriz, cumsum(a) devuelve una matriz de las mismas dimemnsiones de a que contiene las sumas acumuladass por columnas de los elementos de a. cumsum(a,dim) devuelve la suma acumulada de los elementos de a, a lo largo de la dimension ,(fila o columna) indicada por dim. ejemplos: cumsum(1:5) ans= 1 3 6 10 15 a=[1 2 3;4 5 6]; cumsum(a) ans= 1 2 3 5 7 9

2

. a lo largo de la dimension..) ademas. se ordenan por el valor de su m´dulo.dim) devuelve el producto de los elementos de a...... ejemplos: m=[8 1 6 3 5 7 4 9 2] El producto de los elementos de las columnas es: prod(m)= 96 45 84 El producto de las filas puede obtenerse como: prod(m.modo) ordena los o valores en orden ascendente ’ascend’ (valor por defecto) o en orden descendente ’descend’ .IX]=sort(a. sintaxis: b=prod(a) b=prod(a.. siguiendo o una de sus dimensiones.dim) b=sort(. [b. b=sort(a. sintaxis: b=sort(a) b=sort(a. se ordenan por fase donde la fase se considera: −π ≤ o α ≤ π. b=sort(. Si los elementos de a son complejos. de devolver 3 .dim) descripci´n: Calcula el producto de los elementos de una matriz.2)= 48 105 72 sort: ordena los elementos de una matriz en orden ascendente o descendente.) descripci´n: Si a es un vector. sort(a) ordena los elementos de a en orden o ascendente.. Si a es una matriz.. sort(a) ordena las columnas de a .dim) ordena los valores de la matriz a a lo largo de la dimensi´n de a especificada por dim.IX]=sort(a. prod(a) devuelve un vector con los productos de las columnas de a.modo) [b.prod: Producto de los elementos de una matriz. Para aquellos elementos de a que tengan igual valor sort(a. Si a es una matriz..(fila o columna) indicada por dim. Si a es un vector...) preserva el orden de dichos elementos.. para aquellos n´meros que tengan o u igual m´dulo. prod(a) devuelve el producto de los elementos de a. prod(a..

ejemplos: a= [3 7 5 0 4 2] sort(a. sum(a.’descent’) ans= 6 8 5 3 7 3 0 4 2 sum: Suma de los elementos de una matriz.IX] = sort(a. sum(a) suma las columnas de a. devuelve otra que contiene los ´ ındices donde se encontraban los valores de a.dim) devuelve la suma de los elementos de a.(fila o columna) indicada por dim.la matriz ordenada.2) ans= 3 5 7 0 2 4 [b.1) ans= 0 4 2 3 7 5 sort(a. ejemplos: a= [8 1 6 3 5 7 4 . sort(a.dim) descripci´n: Si a es un vector.2) b= 3 5 7 0 2 4 IX= 1 3 2 1 3 2 a= [ 3 7 5 6 8 3 0 4 2]. antes de ser ordenados. sum(a) devuelve la suma de sus elementos. o Si a es una matriz. a lo largo de la dimension . sintaxis: b=sum(a) b=sum(a.

p]=corrcoef(.) devuelve adem´s las matrices rlo a y rvp. la matriz r=corrcoef(x) est´ relacionada con la matriz de covarianza c=cov(x) por: a R(i.. o sintaxis: r=corrcoef(x) r=corrcoef(x. el valor para retardo cero de xcov(x.y) es equivalente a r=corrcoef([x y]).1) ans= 15 15 15 sum(a.) devuelve adem´s a de la correlaci´n una matriz p para comprobar la hip´tesis de que no o o exista correlaci´n.rvp]=corrcoef(. entonces la correlaci´n r(i.. esto es. j) c(ii)c(jj) (1) r=corrcoef(x) es la covarianza normalizada sin retardo. de modo que no u esperamos correlaci´n entre las columnas o 5 ..p.05. que contienen los l´ n ımites inferior y superior del intervalo de confianza del 95 % para cada coeficiente. digan mos que menor que 0. [r.p]=corrcoef(.’coeff’). [r.4 9 2] sum(a. Si p(i. j) = c(i.2) ans= 15 15 15 3.rlo.) descripci´n: r=corrcoef(x) devuelve la matriz r de coeficientes de correo laci´n calculados a partir de una matriz x cuyas filas son observaciones o (valores) y cuyas columnas son variables.j) es peque˜a..y) [r.. r=corrcoef(x. ejemplos: Generamos una matriz de n´meros aleatorios.j) es significatio va. cada valor de p representa la probabilidad de opo tener una correlaci´n igual de grande que la obtenida con los valores o observados. Estad´ ıstica descriptiva corrcoef: coeficientes de correlaci´n. empleando valores aleatorios. del mismo tama˜o que r..

1786 0. ans = 4 1 4 2 1 4 2 4 cov: matriz de covarianza.6412 0.x=randn(30.1030 -0. % Introducimos correlaci´n entre la columna o cuarta y es resto [r.0531 0.0135 0.4).05). Si empleamos cov(x. x(:.6403 0.0613 0. la matriz r=cov(x) es la matriz de covarianza.p]=corrcoef(x) % calculamos la correlaci´n o r = 1.4511 1.0531 1. La funcion de covarianza se define como: cov(x1 . Si x es una o matriz cuyas filas son observaciones (valores) y cuyas columnas son variables.0033 1.6403 0.0000 [i.j]=find(p<0.2).3072 0.6412 -0.4511 0.1030 0.0000 0.0000 0.4)=sum(x.0000 p = 1.y) donde x e y tienen el mismo n´mero de elementos.3072 0. % buscamos las correlaciones significativas [i j] % las mostramos.0000 0.0000 0.3006 -0.0135 0. sintaxis: r=cov(x) descripci´n: cov(x) si x es un vector devuelve la varianza. x2 ) = E[(x1 − µ1 )(x2 − µ2 )] donde E es la expectaci´n matem´tica y µi = Ex1 o a 6 (2) .0000 0. es equivalente a cov([x u y]).3006 1. cov(x) normaliza el resultado por N − 1 donde N representa el n´mero de muestras.2719 0.0000 -0. u notas: cov elimina la media de cada columna de datos ante de calcular el resultado.0033 0. (diag(cov(x)) es un vector de varianzas para cada columna de x y sqrt(diag(cov(x)) es un vector de desviaciones standard.0613 0.1786 1.2719 1.

devuelve el valor m´s grande de a.j) representan las varianzas de las columnas de x.c) devuelve una o matriz de igual dimensiones que a y c. -2 3 1.1667 3. y devuelve otro vector que 7 .0000 Los elementos de la diagonal c(i.ejemplos: x=[ -1 1 2.j) representan las covarianzas de las columnas i y j max: M´ximo elemento de una matriz. sintaxis: b=mean(a) b=mean(a. b=max(a. Si es una matriz. o devuelve el valor medio de los elementos de a. notas: Para matrices de n´meros complejos. y devuelve un vector que contiene los valores m´ximos de cada columna de a. v=diag(cov(x))’ v= 10.c]=max(a) descripci´n: b=max(a) calcula los valores m´ximos de la matriz a. el c´lculo del m´ximo se realiza u a a empleando exclusivamente el m´dulo de los numeros complejos. a sintaxis: b=max(a) b=max(a. b=max(a.c) b=max(a.0000 cov(x) ans = 10.1667 2.dim) descripci´n: Calcula los valores medios de una matriz.5000 1.[]. considera a cada columna de a como un vector.0000 -4. cuyos elementos son el mayor elemento tomado en cada caso de a) o c. mean: Promedio o valor medio de una matriz. Si a es un vector.3333 -1.5000 3.3333 1. El resto de los elementos c(i. considera cada columna de a como un vector.0000 -1.dim) funciona a igual que la anterior pero en ´ste caso. Si a es o a un vector.[]. Sin o tener en cuenta la fase. 4 0 3] para obtener un vector de varianzas para cada columna de x .3333 -4. Si es una matriz. el c´mputo de m´ximos se realiza e o a a lo largo de la dimensi´n indicada por dim.dim) [b.3333 2.

c) b=min(a.3 4 6 6. y devuelve un vector que contiene los valores medios de cada columna de a.5 6.[]. b=mean(a.dim) [b.75 6.2) ans= 3 4 7 7 min: m´ ınimo elemento de una matriz.5 6. el c´mputo de medianas e o se realiza a lo largo de la dimensi´n indicada por dim. mean(a) ans= 3.5 mean(a.75 median: mediana para los valores de una matriz. o ejemplos: a=[1 2 4 4.75 4.5 4. o ejemplos: a=[1 2 4 4.dim) funciona igual que la anterior pero en ´ste caso. 5 6 8 8. mean(a) ans= 4 5 7 7 mean(a.dim) descripci´n: Calcula las medianas de los elementos de una matriz. 5 6 8 8. devuelve la mediana de los elementos de a. 5 6 8 8]. Si es una matriz. sintaxis: b=median(a) b=median(a.dim) funciona igual que la anterior pero en ´ste caso. considera cada columna de a como un vector. sintaxis: b=min(a) b=min(a.c]=min(a) 8 .contiene los valores medios de cada columna de a.75 6.2) ans= 2. 5 6 8 8]. b=median(a. Si a es o un vector.3 4 6 6. el c´mputo de valores e o medios se realiza a lo largo de la dimensi´n indicada por dim.

. u ejemplos: x=[3 3 4 1.. Es improbable que aplicar o la funci´n moda a un muestreo obtenido a partir de la distribuci´n o o obtenga una buena estima del pico. 0 1 2 4] x = 9 .. m es a un vector que contiene la moda de cada columna.dim) funciona igual que la anterior pero en ´ste caso. es mejor obtener un histograma de densidades estimadas y calcular el pico de dicha estimaci´n. u [x.dim) [m.f]=mode(x... Si a es un vector.) descripci´n: m=mode(x) si x es un vector devuelve la muestra de moda. u notas: La funci´n moda funciona mejor con variable discreta o valores redono deados.c]=min(a) devuelve los ´ ındices de los valores m´ ınimos de a en el vector c.. notas: Para matrices de n´meros complejos. el c´mputo de vae o lores m´ ınimo se realiza a lo largo de la dimensi´n indicada por dim. un vector de tipo ’cell’ cada a elemento contiene un vector con los elementos de la matriz original x. mode: moda (valores m´s frecuentes en una matriz).. 0 0 1 4. mode devuelve el menor de ellos. Si es una matriz. Si existen m´ltiu ples valores con la misma moda. devuelve el valor m´ ınimo de los elementos de a..) devuelve junto a la moda o el n´mero de veces que se repiten los valores de moda en el vector f. y devuelve un vector que contiene los valores m´ ınimos de cada columna de a. Sin o tener en cuenta la fase. m=mode(x.) [m.f..descripci´n: Calcula los valores m´ o ınimos de una matriz.. La moda para una funci´n de probabilidad continua se describe o como el pico de su funci´n de intensidad. devuelve el ´ ındice del primero encontrado. Si x es una matriz. considera cada columna de a como un vector.f]=mode(x. b=mean(a.. que aparecen el mismo n´mero de veces que m.c]=mode(x.) devuelve adem´s. Del o mismo modo la funci´n mode no es adecuada para obtener picos de o distribuciones que tengan m´ltiples modas.dim) devuelve la moda calculada a lo largo de la dimensi´n indicada por dim. a sintaxis: m=mode(x) m=mode(x. es o decir el valor que m´s se repite en el vector. o [b. [m..c]=moda(x. el c´lculo del m´ u a ınimo se realiza empleando exclusivamente el m´dulo de los numeros complejos. Si hay varios valores m´ ınimos identicos.m.

s=std(x).dim) descripci´n: Hay dos definiciones comunes de la desviaci´n standard s de o o vector de datos x s= n 1 (xi − x)2 n − 1 i=1 1 2 (3) s= donde 1 n (xi − x)2 n i=1 x= 1 n xi n i=1 1 2 (4) (5) s=std(x). o o sintaxis: c=conv(a. Si la longitud de a es m y la longitud de 10 . Si x es una matriz devuelve un vector que contieo ne la desviaci´n standard calculada por columnas. si consideramos que los coeficientes de estos son los elementos de a y b.b) descripci´n: c=conv(a. o o 4. si o flag vale cero es igual que s=std(x) y si flag vale uno.b) calcula la convoluci´n de dos vectores a y b. o sintaxis: s=std(x) s=std(x. Convoluci´n o conv: Convoluci´n y multiplicaci´n de polinomios. o o Desde un punto de vista algebraico.flag s=std(x. si x es un vector devuelve la desviaci´n standard calculada o con la ecuaci´n (3). devuelde la desviaci´n standard calculada con la ecuaci´n (4).3 3 4 1 0 0 1 4 0 1 2 4 mode(x) ans = 0 0 1 4 std: desviaci´n standard.flag. la convoluci´n es equivalente al o producto de polinomios.flag.

q)+r. entonces c es un vector de longitud m + n − 1 cuyo elemento k-´simo es: e c(k) = a(j)b(k + 1 − j) (6) j La suma se extiende a todos los valores de j que den un ´ ındice v´lido a para c. siempre–. deconv: Deconvoluci´n y divisi´n de polinomios. es decir. su convoluci´n obtiene los coeficiente del polinomio proo o ducto. La deconvoluci´n se puede considerar como divisi´n de polinoo o mios: El resultado de dividir a entre b que dar´ un polinomio cociente ıa q y un polinomio resto r.b) q = 1 2 3 4 r = 0 0 0 0 0 0 detrend: eliminaci´n de tendencias lineales. y se cumpla la relaci´n anterior entre convolucion y o producto.r]=deconv(a.b) o ıa: c = 10 40 100 160 170 120 Podemos usar la deconvoluci´n para recuperar texttta: o [q. notas: La transformada de Fourier de la convoluci´n de dos se˜ales. coincio n de con el producto de las transformadas de Fourier de dichas se˜ales. ejemplos Si a=[1 2 3 4] b=[ 12 20 30 ] La convoluci´n ser´ c=conv(a.’linear’. definida de tal forma que o o a=conv(b. o sintaxis: y=detrend(x) y=detrend(x. Si consideramos a los vectores a y b como coeficientes de polin´mios.’constant’) y=detrend(x. para que las n aproximaciones que se obtienen al calcular la transformada de Fourier sean correctas.bp) 11 . n Cuando se manejas se˜ales finitas –Es decir.b) descripci´n: Calcula la deconvoluci´n del vector b del vector a. o o sintaxis: [q.b es n. es preciso pron longar con ceros las secuencias que definen las se˜ales.r]=deconv(c. o o es la operaci´n inversa a la convoluci´n.

’constant’) 4 3 2 1 0 −1 −2 −3 0 1 2 3 4 5 n 6 7 8 9 10 Figura 1: Eliminaci´n de la tendencia lineal o filter: Filtro digital sintaxis: y=filter(b.dim) 12 .5n)+0. y guarda el resultado en y.5n y=detrend(x) y2=detrend(x. elimina la media de cada columna de la matriz.x.x. detrend elimina la tendencia lineal de cada columna.x) y=filter(b.5.y) plot(n.*n. plot(n.y2) Se obtiene el resultado de la figura 1 5 x=sen(2π0. y=detrend(x).a.[].zi. x=sin(2*pi*0. y=detrend(x.a.’constant’).x.x) hold on plot(n.dim) y=filter(b. se emplea para preparar los datos antes de calcular la transformada de Fourier.descripci´n: detrend Elimina el valor medio o la tendencia lineal de un o vector o matriz de datos. Si x es una matriz.’costant’) elimina la media del vector x. si se trata de una matriz. y=detrend(x) elimina la linea recta que mejor ajusta a los valores de x.a. habitualmente.zi) y=filter(b.a.2*n)+0. y2=detrend(x. ejemplos Si n=[0:10].

o o ejemplo Dada la ecuaci´n en diferencias o y(n) = 2y(n − 1) + 3y(n − 2) + x(n) − x(n − 3) Obtener la respuesta a la entrada x = {1 4 5 6} a=[1 -2 -3] b=[1 0 0 -3] x=[1 4 5 6] y=filter(a. normaliza los coeficientes. x(−3).x..y) descripci´n: z=filtic(b..a. acepta un vector zi de estados iniciales.x) obtiene las condiciones iniciales zi para o los estados. Funciona tanto para entradas reales como complejas.} 13 (9) (10) (8) . filter da un error.. y(−m). y(−2). .descripci´n: La funci´n filter filtra una secuencia de datos contenida en o o el vector x empleando un filtro digital. de las ecuaciones en diferencias implementadas mediante la funci´n filter. y=filter(b. para obtener zi a partir de las condiciones iniciales y despu´s emplear y=filter(b.. x(−2). .y. Si x es una matriz en lugar de un vector. . Para introducir condiciones iniciales es preciso emplear primero el comando filtic.a. dividiendo todo por a1 .y.} y = {y(−1).x) z=filter(b.a.. N´tese que NO son condicioo nes iniciales..zi). N M y(n) = − k=1 ak y(n − k) + bk k=0 (7) Si a1 es distinto de 1. y(−3).zi) para obtener la e soluci´n de la ecuaci´n en diferencias. filter opera sobre las columnas de x..a.x) y = 1 6 16 31 filtic: Obtenci´n de los estados iniciales para la funcion filter o sintaxis: z=filter(b.b.x.. Los vectores x e y contienen las condiciones iniciales o de la entrada y la salida ordenadas de m´s reciente a m´s antigua: a a x = {x(−1). x(−n).a. filter. El filtro se implementa a partir de la ecuaci´n o en diferencias que lo define.. Si a1 = 0.

la correlaci´n n o 14 . o o de dos secuencias.x) c=xcorr(x) nota: xcorr posee varias opciones de normalizaci´n. que no se incluyen o aqu´ (ver el help de matlab para una descripci´n completa) ı. es un vector columna de longitud igual al mayor de m o n.zi) y = 1 3 22 31 5. asume que la se˜al de entrada empieza en la muestra n = 0. desprecia los valores que excedan el n´mero de retardos.y) obtiene la correlaci´n cruzada.b. Varios xcorr: Obtenci´n de la correlaci´n cruzada de dos secuencias o o sintaxis: c=xcorr(y.a.x.y). u La salida z.Donde n coincide con el n´mero de retardos de la entrada y m con el u n´mero de retardos de la salida presentes en la ecuaci´n en diferencias. u filtic completa autom´ticamente los vectores con ceros hasta que a alcancen la longitud necesaria y si es mayor. Si las se˜ales x e y son de longitud n. z=filter(b. n ejemplo Dada la ecuaci´n en diferencias o y(n) = 2y(n − 1) + 3y(n − 2) + x(n) − x(n − 3) (11) Obtener la respuesta a la entrada x = {1 4 5 6}. y(−2) = −1 a=[1 2 3] b=[1 0 0 -3] y=[2 -1] zi=filtic(a. si las condiciones iniciales son y(−1) = 2. que contiene los valores iniciales de los estados del sistema debidos a los valores iniciales de las entradas y salidas.y) zi = 0 -3 6 x=[1 4 5 6] y=filter(a. u o Si la longitud de los vectores x e y es menor que el n´mero de retardos. no normalizada. o descripci´n: c=xcorr(x. etc.b.

0.^) n 6. a˜adiendo a cada muestra o n una barra vertical. Resulta muy adecuado para representar se˜ales disn cretas ejemplo: n=[1:10] stem(n.den. c=xcorr(x).8. o ejemplo: x=[1 2 3 4 5] y=fliplr(x) y=[5 4 3 2 1] stem: gr´ficos discretos a sintaxis: stem(n.f(n)) descripci´n: Dibuja muestras frente a tiempo. Si las dos se˜ales no tienen la misma longitud. Transformada z filt: Funci´n de transferencia discreta. Calcula la autocorrelaci´n a o sinc: funci´n sinc o sintaxis: x=sinc(t) descripci´n: sinc calcula el valor de la funci´n sinc: o o sinc(t) = 1 sin(πt) πt t=0 t=0 (12) fliplr: Voltea un vector de izquierda a derecha sintaxis: y=fliplr(x) descripci´n: invierte el orden de los elementos de un vector.cruzada obtenida tendr´ de longitud 2n+1 (corresponde a desplazar las a se˜ales desde −n a +n).den) sys=filt(num.Ts) descripci´n: En tratamiento digital de se˜ales (DSP) –Digital Signal Processing– o n se suele representar siempre la funci´n de transferencia de un sistema o 15 . expresada en formato de tratamieno to digital de se˜ales n sintaxis: sys=filt(num. n n la se˜al m´s corta se completa con ceros hasta alcanzar la longitud de n a la m´s larga.

den) crea una funci´n de transferencia en tiempo diso creto sys con numerador num y denominador den.5 0.4z −1 + 2z −2 .4z −1 + 2z −2 (13) filt permite especificar funciones de transferencia en formato DSP.dem. den=[1 0.4 2] representa el polinomio 1 + 0. sys=filt(num.Ts). ejemplo: y=filt([1 2].4 0. nota: filt se comporta igual.2 0. sys=filt(num.1 0 1 2 3 4 5 6 7 8 9 10 Figura 2: resultado de gr´fico con stem a LTI como un cociente de polinomios ordenados en pontencias crecientes de z −1 por ejemplo: H(z −1 ) = 2 + z −1 1 + 0. El tiempo de muestreo se deja sin especificar y sys es un objeto de tipo ’funci´n de transo ferencia’ TF.8 0.7 0. por ejemplo.3 0. (ver m´s adelante la entrada correspondiente a a tf). argumentos: num y dem son vectores fila que contiene los coeficientes del numerador y el denominador ordenados en potencias crecientes de z −1 . y por tanto se puede se puede operar sobre su resultado igual que co tf. especifica un tiempo de muestreo de Ts segundos.[1 2 3]) Transfer function: 1 + 2z^-1 ------------------16 .6 0.0.

fsys=tf(sys) permite obtener la o funci´n de transferencia de un sistema LTI a partir de su representaci´n o o en variables de estado o empleando un modelo polo-cero-ganancia. crea la funcion de trasferencia de un sistema en tiempo discreto con tiempo de muetreo Ts (en segundos). Esta descripci´n solo cubre el caso de los sistemas discretos. de no hacerlo as´ se obtiene un sistema continuo en lugar de uno discreı.dem. to).[1 2 3]. en la cual los cocientes de polinomios que representan las funciones de transferencia se expresan en potencias decrecientes de la variable z.den.Ts) sys=tf(’z’.Ts Permite definir una funci´n de transferencia.Ts) tfsys=tf(sys) descripci´n: tf se emplea para crear funciones de transferencia (objetos o TF en matlab) o para obtene la funci´n de transferencia a partir sisteo mas LTI expresados como variables de estado o en formato cero-pologanancia. o o sintaxis: sys=tf(num. o ejemplos: y=tf([1 2]. mediante tf. nota: tf NO emplea la convenci´n habitual de DSP. ’z’. escribiendo o expl´ ıcitamente su expresi´n racional. sys=tf(num. Para dejar el tiempo de muestreo sin especificar se hace Ts=-1 o Ts=[]. sino la de control de o sistemas.Ts). (N´tese que para definir la funci´n de transferencia de un sistema diso o creto. tf se emplea tanto para sistemas continuos (expresando la funci´n de o transferencia mediante la transformada de Laplace) como para sistemas discretos (expresando la funcion de transferencia mediante la transformada z).[]) Transfer function: z + 2 ------------------z^2 + 2z + 3 Sampling time: unspecified N´tese que la funci´n de transferencia es completamente distinta a la o o 17 . exo presado en otra notaci´n a una funci´n de transferencia.1 + 2z^-1 + 3z^-2 Sampling time: unspecified tf: Especifica una funci´n de transferencia o convierte un modelo LTI. es preciso asignar siempre un valor a Ts.

5z . aunque los coeficiente del numerador y el denominador sean los mismos.5.k.p.75z ------------------------z^3 . expresado en otra notaci´n a una modelo zpk. z=tf(’z’.obtenida con filt.5) ------------------(z-0.Ts) sys=zpk(’z’.5) (z-2) (z-3) Sampling time: unspecified tfsys=tf(sys) Transfer function: z^3 + 2z^2 + 0.5)(z+1.5z^2 + 8.3 Sampling time: unspecified zpk: Especifica sistemas LTI mediante modelos zero-polo-ganancia o convierte un modelo LTI. o sintaxis: sys=zpk(z.-1) Transfer function: z Sampling time: unspecified sys=(z^2+2*z+1)/(3*z^3+z^2+5*z+1) Transfer function: z^2 + 2z + 1 --------------------3z^3 + z^2 + 5z + 1 Sampling time: unspecified Dado un sistema en representaci´n zpk (cero-polo-gananancia) –ver la o entrada correspondiente a zpk–: sys Zero/pole/gain: z(z+0.Ts) zsys=zpk(sys) 18 .

5)*(z+1)) Zero/pole/gain: 2(z-1)(z-2) ------------------(z-3) (z+1) (z-0.2.Ts).-1) Zero/pole/gain: z Sampling time: unspecified sys=2*(z-1)*(z-2)/((z-3)*(z-0. crea el modelo zpk en variable discreta. El resultado. en la que la variable empleada es o z zsys=zpk(sys) permite convertir un sistema LTI expresado en variables de estado o mediante su funci´n de transferencia.k. sys=zpk(z.[]) Zero/pole/gain: 2(z-1)(z-2) ----------------(z-1)(z-2)(z-3) Sampling time: unspecified z=zpk(’z’.descripci´n: zpk se emplea para crear modelos cero-polo-ganancia (objetos o zpk en matlab) o para obtener un modelo cero-polo-ganancia a partir de sistemas LTI expresados como variables de estado o mediante su funci´n o de transferencia. polos localizados en los valores del vector p y ganancia global k.p. con tiempo de muestreo Ts.Ts) permite ıa. ejemplos: y=zpk([1 2]. z=zpk(’z’.[1 2 3]. ceros localizados en los valores del vector z.5) 19 . en un modelo o ZPK. que se obtine es una funci´n de transferencia en o la que ceros y polos aparecen de forma expl´ ıcita: h(z) = k (z − z(1))(z − z(2) · · · (s − z(m)) (s − p(1))(s − p(2)) · · · (s − p(n)) (14) si el sistema carece de ceros o de polos se sustituye el vector correspondiente por la matriz vac´ z=0 o p=0. especificar un modelo ZPK con tiempo de muestreo Ts usando directamente una funci´n racional.

sysN representa el mapa de polos y ceros de varios modelos LTI en una sola figura.ys2. devuelve los valores de los polos en un vector columna p y los de los ceros en un vector columna z. y no. dej´ndolos expresados a como un polinomio en z de segundo grado.[1 0.. (z + 1 − 2j)(z + 1 + 2j) pzmap: Calcula los polos y ceros de un sistema LTI sintaxis: pzmap(sys) pzmap(sys1. por ejemplo z 2 + 2z + 3 se √ √ representa tal cual..2 0.z]=pzmap(sys). Cuando se emplea con argumentos de salida: [p.Sampling time: unspecified Dado un sistema expresado mediante su funci´n de transferencia tf: o sys Transfer function: z + 2 ------------z^2 -2z + 1 Sampling time: unspecified zsys=zpk(sys) Zero/pole/gain: (z+2) -----------(z-1)^2 Sampling time: unspecified Es importante hacer notar que para el caso de polos o ceros complejos conjugados.sysN) [p. Los polos se representan mediante ’X’ y los ceros mediante ’O’.. a ejemplos: A partir de la funci´n de transferencia: o sys=tf([=tf([1 2]. pzmap(sys1...8]. y no los representa gr´ficamente.z]=pzmap(sys) descripci´n: pzmap(sys) dibuja el mapa de polos y ceros del sistema LTI o representado por sys.[]) 20 ..4 0... los modelos ZPK no los factorizan.sys2.

4 −0.2 −0.8457 z = -2 Se obtiene el valor num´rico de los polos y los ceros.6 −0.9175i -0. e minreal: Cancelaci´n de polos y ceros o sintaxis: sysr=minreal(sys) descripci´n: sysr=minreal(sys) cancela pares de polo-cero para sistemas o LTI represntados mediante su funci´n de transferencia o mediante un o modelo ZPK.Transfer function: z + 2 --------------------------z^3 + 0.5 −1 −0.2z^2 + 0. 21 .0.4 Imaginary Axis 0.8 Sampling time: unspecified pzmap(sys) Se obtiene el resultado de la figura 3 Pole−Zero Map 1 0.5 Real Axis 0 0.3228 + 0.6 0.4z + 0.2 0 −0.9175i 0.3228 .8 0.z]=pzmap(sys) p = 0.5 1 Figura 3: diagrama de polos y ceros Si por el contrario se emplea [p.8 −1 −2 −1. El sistema sysr obtenido tiene orden m´ ınimo y las mismas caracter´ ısticas en respuesta que el sistema original.

2590 -0.0.0.5573i 0.0972 s=sort(p) s = -0.2410 .2z + 2) Sampling time: unspecified sysr=minreal(sys) Zero/pole/gain: z --------------(z^2 .1503 -0. ejemplo: p = -0.2590 22 .ejemplo: ys=zpk([0 1].5573i -0.5573i -0.2z + 2) Sampling time: unspecified dsort: Ordena un conjunto de polos de acuerdo con su magnitud sintaxis: s=dsort(p) descripci´n: dsort(p) ordena el conjunto de polos contedidos en el vector p o en orden descendente de acuerdo con su magnitud.[1 1-j 1+j].2410 + 0.Los polos inestables aparecen los primeros.2410 .5573i -0.2410 + 0.1.-1) Zero/pole/gain: z (z-1) --------------------(z-1) (z^2 .

0972 Limitaciones: Los polos en el vector p deben aparacer en pares de complejos conjugados.sys2) descripci´n: series conecta dos modelos LTI en serie. Esta funci´n acepta o o cualquier tipo de modelo LTI.1503 -0.2z + 2) Sampling time: unspecified sys2= Transfer function: z + 3 23 . La conexi´n se realiza como muestra la figura: 4 o o Sys x Sys1 Sys2 y Figura 4: resultado de la operaci´n serie o ejemplo: sys1= Zero/pole/gain: z --------------(z^2 . series: Conexi´n en serie de dos modelos LTI o sintaxis: sys=series(sys1.0. Los dos modelos deben tener el mismo periodo de muestreo. Este comando es equivalente a la multiplicaci´n o directa de los dos sistemas: sys=sys2*sys1 N´tese el orden de la mulo tiplicaci´n.

5z + 2) Sampling time: unspecified Como se puede ver. Los dos modelos deben tener el mismo periodo de muestreo. parallel: Conexi´n en paralelo de dos modelos LTI o sintaxis: sys=parallel(sys1.------------2 z^2 .0.5 z (z+3) --------------------------------(z^2 . Este comando es equivalente a la adici´n o directa de los dos sistemas: sys=sys1+sys2 La conexi´n se realiza como o muestra la figura: 6 ejemplo: sys1= Zero/pole/gain: z --------------(z^2 . Esta funci´n o o acepta cualquier tipo de modelo LTI.sys2) Zero/pole/gain: 0.5z + 2) Sampling time: unspecified sysi=sys2*sys1 Zero/pole/gain: 0.0.2z + 2) (z^2 .5 z (z+3) --------------------------------(z^2 .2z + 2) 24 .z + 4 Sampling time: unspecified sys=series(sys1. el resultado es el mismo por cualquiera de los dos caminos.2z + 2) (z^2 .sys2) descripci´n: parallel conecta dos modelos TLI en paralelo.

5 (z+1.26z + 1.26) (z^2 .z + 4 Sampling time: unspecified sys=parallel(sys1.Sys Sys1 x Sys2 + + y Figura 5: resultado de la operaci´n parallel o Sampling time: unspecified sys2= Transfer function: z + 3 ------------2 z^2 .587) ----------------------------------(z^2 .1.0.26) (z^2 .5 (z+1.5z + 2) Sampling time: unspecified sysi=sys1+sys2 Zero/pole/gain: 1.sys2) Zero/pole/gain: 1.2z + 2) (z^2 .587) ----------------------------------- 25 .1.26z + 1.

ejemplo: sys= Transfer function: z^2 + 5 --------------------------(z^3 + 0..2 Sampling time: unspecified impulse(sys) 26 ..t) impulse(sys1. en este caso. La duraci´n de la respuesta se determina autom´ticamente o a para que cubra completamente la parte correspondiente al transitorio. Se o puede especificar tanto el tiempo final t=Tfinal como un vector de instantes de muestreo equiespaciados.’y’.sys2..t) [y. impulse dibuja la se˜al de respuesta a n al impulso..(z^2 . Es posible imvocar la funci´n como impulse(sys1.0.5 z^2 + 0.sys2.sysN) impulse(sys1.sys2.. en la misma figura. Si se imvoca la funci´n con variables de salida. impulse(sys1. la funci´n devuelve la se˜al de salida y y los o n correspondientes instates de tiempo t..t) establece el tiempo de simulaci´n explicitamente..’g--’) para cono seguir que represente la respuesta de cada sistema con un color y tipo de l´ ınea espec´ ıfico..3 z + 0.sys2. o [y.. el espaciado temporal entre muestras dt debe coincidir con el periodo de muestreo.t]=impulse(sys) descripci´n: impulse Calcula la respuesta al impulso de un sistema lio neal.2z + 2) (z^2 .t]=impulse(sys).5z + 2) Sampling time: unspecified impulse: Calcula la respuesta temporal al impulso de un modelo LTI sintaxis: impulse(sys) impulse(sys. impulse(sys. la respuesta al impulso es la respuesta a un impulso unitario para el instante de tiempo (muestra ) t = 0 Si se invoca sin par´metros de salida.sysN) se emplea para representar la respuesta de varios sistemas LTI.sysN. Para un sistema discreto.. t=0:dt:Tfinal.

. step: Calcula la respuesta temporal al escal´n unitario de un modelo LTI o sintaxis: step(sys) step(sys.5000 4. step(sys1.sys2. en la misma figura..sys2..t) [y.5250 .9500 -2. step(sys. t=0:dt:Tfinal.sysN) se emplea para representar la respuesta de varios sistemas LTI.sysN...0000 -0... La duraci´n de la respuesta se determina autom´tio o a camente para que cubra completamente la parte correspondiente al transitorio. en este caso.. el espaciado temporal entre muestras dt debe coincidir con el periodo de muestreo.sysN) step(sys1... 27 .t) establece el tiempo de simulaci´n explicitao mente.sys2. step dibuja la se˜al de respuesta al a n escal´n unitarario.t) step(sys1.Impulse Response 5 4 3 2 1 0 −1 −2 −3 Amplitude 0 5 10 Time (sec) 15 20 25 Figura 6: ejemplo de respuesta al impulso obtenida con impulse y=impulse(sys) y = 0 1. Se puede especificar tanto el tiempo final t=Tfinal como un vector de instantes de muestreo equiespaciados..t]=step(sys) descripci´n: step Calcula la respuesta al escal´n unitario de un sistema o o lineal. Sin par´metros de salida..

0000 0. la funci´n devuelve la se˜al de salida y y los o n correspondientes instates de tiempo t. ejemplo: sys= Transfer function: z^2 + 5 --------------------------(z^3 + 0.Es posible imvocar la funci´n como step(sys1. 28 .sys2.5000 4.’y’... [y. Si se invoca la funci´n con variables de sao lida.3 z + 0.4500 .5 z^2 + 0.’g--’) pao ra conseguir que represente la respuesta de cada sistema con un color y tipo de l´ ınea espec´ ıfico.9500 5.t]=step(sys).2 Sampling time: unspecified step(sys) Step Response 6 5 4 Amplitude 3 2 1 0 0 5 10 Time (sec) 15 20 25 Figura 7: ejemplo de respuesta al escal´n unitario obtenida con step o y=step(sys) y = 0 1. lsim: Calcula la respuesta de un modelo LTI para entradas arbitrarias.

3 z + 0.sintaxis: lsim(sys.t]=lsim(sys. basta con crear el vector u con el n´mero de u muestras deseado. Para sistemas discretos no es necesario especificar el tiempo. si se invoca sin variables de salida.2 Sampling time: unspecified u=cos(pi*[0:100]/3) lsim(sys.t) [y.u.5 z^2 + 0. lsim dibuja la respuesta en la pantalla.u) Linear Simulation Results 5 4 3 2 1 Amplitude 0 −1 −2 −3 −4 −5 0 10 20 30 40 50 Time (sec) 60 70 80 90 100 Figura 8: ejemplo de respuesta entrada arbitraria con lsim 29 . la salida del sistema tendr´ l´gicamente la misma a o longitud.u. ejemplo: Transfer function: z^2 + 5 --------------------------(z^3 + 0.t) descripci´n: lsim Calcula la respuesta temporal de un sistema LTI para o entradas arbitrarias.