Вы находитесь на странице: 1из 29

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

Juan Jimnez e 20 de abril de 2007

Indice
1. Introduccin o 2. Operaciones bsicas a 3. Estad stica descriptiva 4. Convolucin o 5. Varios 6. Transformada z 1 2 5 10 14 15

1.

Introduccin o

Estas pginas no son un manual completo de Matlab. Estn pensadas a a para describir las funciones que se emplean en las prcticas de transmisin a o de datos. Si alguien necesita una introduccin 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 convencin tipogrca, los comandos y en a o a general todo lo que sea cdigo 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

2.

Operaciones bsicas a

cumprod: Producto acumulado. sintaxis: b=cumprod(a) b=cumprod(a,dim) descripcin: 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 ,(la 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) descripcin: 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 ,(la 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

prod: Producto de los elementos de una matriz. sintaxis: b=prod(a) b=prod(a,dim) descripcin: Calcula el producto de los elementos de una matriz, siguiendo o una de sus dimensiones. Si a es un vector, prod(a) devuelve el producto de los elementos de a. Si a es una matriz, prod(a) devuelve un vector con los productos de las columnas de a. prod(a,dim) devuelve el producto de los elementos de a, a lo largo de la dimension,(la o columna) indicada por dim. 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 las puede obtenerse como: prod(m,2)= 48 105 72

sort: ordena los elementos de una matriz en orden ascendente o descendente. sintaxis: b=sort(a) b=sort(a,dim) b=sort(...,modo) [b,IX]=sort(a,...) descripcin: 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 . Para aquellos elementos de a que tengan igual valor sort(a....) preserva el orden de dichos elementos. Si los elementos de a son complejos, se ordenan por el valor de su mdulo, para aquellos nmeros que tengan o u igual mdulo, se ordenan por fase donde la fase se considera: o . b=sort(a,dim) ordena los valores de la matriz a a lo largo de la dimensin de a especicada por dim. b=sort(...,modo) ordena los o valores en orden ascendente ascend (valor por defecto) o en orden descendente descend . [b,IX]=sort(a,...) ademas, de devolver 3

la matriz ordenada, devuelve otra que contiene los ndices donde se encontraban los valores de a, antes de ser ordenados. ejemplos: a= [3 7 5 0 4 2] sort(a,1) ans= 0 4 2 3 7 5 sort(a,2) ans= 3 5 7 0 2 4 [b,IX] = sort(a,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]; sort(a,descent) ans= 6 8 5 3 7 3 0 4 2

sum: Suma de los elementos de una matriz. sintaxis: b=sum(a) b=sum(a,dim) descripcin: Si a es un vector, sum(a) devuelve la suma de sus elementos. o Si a es una matriz, sum(a) suma las columnas de a. sum(a,dim) devuelve la suma de los elementos de a, a lo largo de la dimension ,(la o columna) indicada por dim. ejemplos: a= [8 1 6 3 5 7 4

4 9 2] sum(a,1) ans= 15 15 15 sum(a,2) ans= 15 15 15

3.

Estad stica descriptiva

corrcoef: coecientes de correlacin. o sintaxis: r=corrcoef(x) r=corrcoef(x,y) [r,p]=corrcoef(...) descripcin: r=corrcoef(x) devuelve la matriz r de coecientes de correo lacin calculados a partir de una matriz x cuyas las son observaciones o (valores) y cuyas columnas son variables. la matriz r=corrcoef(x) est relacionada con la matriz de covarianza c=cov(x) por: a R(i, j) = c(i, j) c(ii)c(jj) (1)

r=corrcoef(x) es la covarianza normalizada sin retardo, esto es, el valor para retardo cero de xcov(x,coeff). r=corrcoef(x,y) es equivalente a r=corrcoef([x y]). [r,p]=corrcoef(...) devuelve adems a de la correlacin una matriz p para comprobar la hiptesis de que no o o exista correlacin. cada valor de p representa la probabilidad de opo tener una correlacin igual de grande que la obtenida con los valores o observados, empleando valores aleatorios. Si p(i,j) es pequea, digan mos que menor que 0.05, entonces la correlacin r(i,j) es signicatio va. [r,p,rlo,rvp]=corrcoef(...) devuelve adems las matrices rlo a y rvp, del mismo tamao que r, que contienen los l n mites inferior y superior del intervalo de conanza del 95 % para cada coeciente. ejemplos: Generamos una matriz de nmeros aleatorios, de modo que no u esperamos correlacin entre las columnas o 5

x=randn(30,4); x(:,4)=sum(x,2); % Introducimos correlacin entre la columna o cuarta y es resto [r,p]=corrcoef(x) % calculamos la correlacin o r = 1.0000 0.3006 -0.1030 0.6403 0.3006 1.0000 -0.1786 0.6412 -0.1030 -0.1786 1.0000 0.2719 0.6403 0.6412 0.2719 1.0000 p = 1.0000 0.0531 0.3072 0.0613 0.0531 1.0000 0.4511 0.0135 0.3072 0.4511 1.0000 0.0033 0.0613 0.0135 0.0033 1.0000 [i,j]=find(p<0.05); % buscamos las correlaciones significativas [i j] % las mostramos. ans = 4 1 4 2 1 4 2 4

cov: matriz de covarianza. sintaxis: r=cov(x) descripcin: cov(x) si x es un vector devuelve la varianza. Si x es una o matriz cuyas las son observaciones (valores) y cuyas columnas son variables. la matriz r=cov(x) es la matriz de covarianza. (diag(cov(x)) es un vector de varianzas para cada columna de x y sqrt(diag(cov(x)) es un vector de desviaciones standard. Si empleamos cov(x,y) donde x e y tienen el mismo nmero de elementos, es equivalente a cov([x u y]). cov(x) normaliza el resultado por N 1 donde N representa el nmero de muestras. u notas: cov elimina la media de cada columna de datos ante de calcular el resultado. La funcion de covarianza se dene como: cov(x1 , x2 ) = E[(x1 1 )(x2 2 )] donde E es la expectacin matemtica y i = Ex1 o a 6 (2)

ejemplos: x=[ -1 1 2; -2 3 1; 4 0 3] para obtener un vector de varianzas para cada columna de x . v=diag(cov(x)) v= 10.3333 2.3333 1.0000 cov(x) ans = 10.3333 -4.1667 3.0000 -4.1667 2.3333 -1.5000 3.0000 -1.5000 1.0000 Los elementos de la diagonal c(i,j) representan las varianzas de las columnas de x. El resto de los elementos c(i,j) representan las covarianzas de las columnas i y j max: Mximo elemento de una matriz. a sintaxis: b=max(a) b=max(a,c) b=max(a,[],dim) [b,c]=max(a) descripcin: b=max(a) calcula los valores mximos de la matriz a. Si a es o a un vector, devuelve el valor ms grande de a. Si es una matriz, considera a cada columna de a como un vector, y devuelve un vector que contiene los valores mximos de cada columna de a. b=max(a,[],dim) funciona a igual que la anterior pero en ste caso, el cmputo de mximos se realiza e o a a lo largo de la dimensin indicada por dim. b=max(a,c) devuelve una o matriz de igual dimensiones que a y c, cuyos elementos son el mayor elemento tomado en cada caso de a) o c. notas: Para matrices de nmeros complejos, el clculo del mximo se realiza u a a empleando exclusivamente el mdulo de los numeros complejos. Sin o tener en cuenta la fase. mean: Promedio o valor medio de una matriz. sintaxis: b=mean(a) b=mean(a,dim) descripcin: Calcula los valores medios de una matriz. Si a es un vector, o devuelve el valor medio de los elementos de a. Si es una matriz, considera cada columna de a como un vector, y devuelve otro vector que 7

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

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

3 3 4 1 0 0 1 4 0 1 2 4 mode(x) ans = 0 0 1 4 std: desviacin standard. o sintaxis: s=std(x) s=std(x,flag s=std(x,flag,dim) descripcin: Hay dos deniciones comunes de la desviacin 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), si x es un vector devuelve la desviacin standard calculada o con la ecuacin (3). Si x es una matriz devuelve un vector que contieo ne la desviacin standard calculada por columnas. s=std(x),flag, si o ag vale cero es igual que s=std(x) y si flag vale uno, devuelde la desviacin standard calculada con la ecuacin (4). o o

4.

Convolucin o

conv: Convolucin y multiplicacin de polinomios. o o sintaxis: c=conv(a,b) descripcin: c=conv(a,b) calcula la convolucin de dos vectores a y b. o o Desde un punto de vista algebraico, la convolucin es equivalente al o producto de polinomios, si consideramos que los coecientes de estos son los elementos de a y b. Si la longitud de a es m y la longitud de 10

b es n, 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 vlido a para c. notas: La transformada de Fourier de la convolucin de dos seales, coincio n de con el producto de las transformadas de Fourier de dichas seales. n Cuando se manejas seales nitas Es decir, siempre, es preciso pron longar con ceros las secuencias que denen las seales, para que las n aproximaciones que se obtienen al calcular la transformada de Fourier sean correctas. y se cumpla la relacin anterior entre convolucion y o producto. deconv: Deconvolucin y divisin de polinomios. o o sintaxis: [q,r]=deconv(a,b) descripcin: Calcula la deconvolucin del vector b del vector a, es decir, o o es la operacin inversa a la convolucin, denida de tal forma que o o a=conv(b,q)+r. Si consideramos a los vectores a y b como coecientes de polinmios, su convolucin obtiene los coeciente del polinomio proo o ducto. La deconvolucin se puede considerar como divisin de polinoo o mios: El resultado de dividir a entre b que dar un polinomio cociente a q y un polinomio resto r. ejemplos Si a=[1 2 3 4] b=[ 12 20 30 ] La convolucin ser c=conv(a,b) o a: c = 10 40 100 160 170 120 Podemos usar la deconvolucin para recuperar texttta: o [q,r]=deconv(c,b) q = 1 2 3 4 r = 0 0 0 0 0 0 detrend: eliminacin de tendencias lineales. o sintaxis: y=detrend(x) y=detrend(x,constant) y=detrend(x,linear,bp) 11

descripcin: detrend Elimina el valor medio o la tendencia lineal de un o vector o matriz de datos, habitualmente, se emplea para preparar los datos antes de calcular la transformada de Fourier. y=detrend(x) elimina la linea recta que mejor ajusta a los valores de x, y guarda el resultado en y. Si x es una matriz, detrend elimina la tendencia lineal de cada columna. y=detrend(x,costant) elimina la media del vector x, si se trata de una matriz, elimina la media de cada columna de la matriz. ejemplos Si n=[0:10]; x=sin(2*pi*0.2*n)+0.5.*n; y=detrend(x); y2=detrend(x,constant); plot(n,x) hold on plot(n,y) plot(n,y2) Se obtiene el resultado de la gura 1
5 x=sen(20.5n)+0.5n y=detrend(x) y2=detrend(x,constant)

5 n

10

Figura 1: Eliminacin de la tendencia lineal o filter: Filtro digital sintaxis: y=filter(b,a,x) y=filter(b,a,x,zi) y=filter(b,a,x,zi,dim) y=filter(b,a,x,[],dim)

12

descripcin: La funcin filter ltra una secuencia de datos contenida en o o el vector x empleando un ltro digital. Funciona tanto para entradas reales como complejas. El ltro se implementa a partir de la ecuacin o en diferencias que lo dene.
N M

y(n) =

k=1

ak y(n k) +

bk
k=0

(7)

Si a1 es distinto de 1, filter, normaliza los coecientes, dividiendo todo por a1 . Si a1 = 0, filter da un error. Si x es una matriz en lugar de un vector, filter opera sobre las columnas de x. y=filter(b,a,x,zi), acepta un vector zi de estados iniciales. Ntese que NO son condicioo nes iniciales. Para introducir condiciones iniciales es preciso emplear primero el comando filtic, para obtener zi a partir de las condiciones iniciales y despus emplear y=filter(b,a,x,zi) para obtener la e solucin de la ecuacin en diferencias. o o ejemplo Dada la ecuacin 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,b,x) y = 1 6 16 31 filtic: Obtencin de los estados iniciales para la funcion filter o sintaxis: z=filter(b,a,y,x) z=filter(b,a,y) descripcin: z=filtic(b,a,y,x) obtiene las condiciones iniciales zi para o los estados, de las ecuaciones en diferencias implementadas mediante la funcin filter. Los vectores x e y contienen las condiciones iniciales o de la entrada y la salida ordenadas de ms reciente a ms antigua: a a x = {x(1), x(2), x(3), ..., x(n), ...} y = {y(1), y(2), y(3), ..., y(m)..} 13 (9) (10) (8)

Donde n coincide con el nmero de retardos de la entrada y m con el u nmero de retardos de la salida presentes en la ecuacin en diferencias. u o Si la longitud de los vectores x e y es menor que el nmero de retardos, u filtic completa automticamente los vectores con ceros hasta que a alcancen la longitud necesaria y si es mayor, desprecia los valores que excedan el nmero de retardos. u La salida z, es un vector columna de longitud igual al mayor de m o n, que contiene los valores iniciales de los estados del sistema debidos a los valores iniciales de las entradas y salidas. z=filter(b,a,y), asume que la seal de entrada empieza en la muestra n = 0. n ejemplo Dada la ecuacin 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}, si las condiciones iniciales son y(1) = 2, y(2) = 1 a=[1 2 3] b=[1 0 0 -3] y=[2 -1] zi=filtic(a,b,y) zi = 0 -3 6 x=[1 4 5 6] y=filter(a,b,x,zi) y = 1 3 22 31

5.

Varios

xcorr: Obtencin de la correlacin cruzada de dos secuencias o o sintaxis: c=xcorr(y,x) c=xcorr(x) nota: xcorr posee varias opciones de normalizacin, etc. que no se incluyen o aqu (ver el help de matlab para una descripcin completa) , o descripcin: c=xcorr(x,y) obtiene la correlacin cruzada, no normalizada, o o de dos secuencias. Si las seales x e y son de longitud n, la correlacin n o 14

cruzada obtenida tendr de longitud 2n+1 (corresponde a desplazar las a seales desde n a +n). Si las dos seales no tienen la misma longitud, n n la seal ms corta se completa con ceros hasta alcanzar la longitud de n a la ms larga. c=xcorr(x). Calcula la autocorrelacin a o sinc: funcin sinc o sintaxis: x=sinc(t) descripcin: sinc calcula el valor de la funcin 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) descripcin: invierte el orden de los elementos de un vector. o ejemplo: x=[1 2 3 4 5] y=fliplr(x) y=[5 4 3 2 1] stem: grcos discretos a sintaxis: stem(n,f(n)) descripcin: Dibuja muestras frente a tiempo, aadiendo a cada muestra o n una barra vertical. Resulta muy adecuado para representar seales disn cretas ejemplo: n=[1:10] stem(n,0.8.^) n

6.

Transformada z

filt: Funcin de transferencia discreta, expresada en formato de tratamieno to digital de seales n sintaxis: sys=filt(num,den) sys=filt(num,den,Ts) descripcin: En tratamiento digital de seales (DSP) Digital Signal Processing o n se suele representar siempre la funcin de transferencia de un sistema o

15

0.8

0.7

0.6

0.5

0.4

0.3

0.2

0.1

10

Figura 2: resultado de grco 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,4z 1 + 2z 2 (13)

filt permite especicar funciones de transferencia en formato DSP. sys=filt(num,den) crea una funcin de transferencia en tiempo diso creto sys con numerador num y denominador den. El tiempo de muestreo se deja sin especicar y sys es un objeto de tipo funcin de transo ferencia TF. sys=filt(num,dem,Ts), especica un tiempo de muestreo de Ts segundos. argumentos: num y dem son vectores la que contiene los coecientes del numerador y el denominador ordenados en potencias crecientes de z 1 , por ejemplo, den=[1 0.4 2] representa el polinomio 1 + 0,4z 1 + 2z 2 . nota: filt se comporta igual, y por tanto se puede se puede operar sobre su resultado igual que co tf, (ver ms adelante la entrada correspondiente a a tf). ejemplo: y=filt([1 2],[1 2 3]) Transfer function: 1 + 2z^-1 ------------------16

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

obtenida con filt, aunque los coeciente del numerador y el denominador sean los mismos. z=tf(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 representacin zpk (cero-polo-gananancia) ver la o entrada correspondiente a zpk: sys Zero/pole/gain: z(z+0.5)(z+1.5) ------------------(z-0.5) (z-2) (z-3) Sampling time: unspecified tfsys=tf(sys) Transfer function: z^3 + 2z^2 + 0.75z ------------------------z^3 - 5.5z^2 + 8.5z - 3 Sampling time: unspecified zpk: Especica sistemas LTI mediante modelos zero-polo-ganancia o convierte un modelo LTI, expresado en otra notacin a una modelo zpk. o sintaxis: sys=zpk(z,p,k,Ts) sys=zpk(z,Ts) zsys=zpk(sys)

18

descripcin: 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 funcin o de transferencia. sys=zpk(z,p,k,Ts), crea el modelo zpk en variable discreta, con tiempo de muestreo Ts, ceros localizados en los valores del vector z, polos localizados en los valores del vector p y ganancia global k. El resultado, que se obtine es una funcin 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. z=zpk(z,Ts) permite a; especicar un modelo ZPK con tiempo de muestreo Ts usando directamente una funcin racional, 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 funcin de transferencia, en un modelo o ZPK. ejemplos: y=zpk([1 2],[1 2 3],2,[]) Zero/pole/gain: 2(z-1)(z-2) ----------------(z-1)(z-2)(z-3) Sampling time: unspecified z=zpk(z,-1) Zero/pole/gain: z Sampling time: unspecified sys=2*(z-1)*(z-2)/((z-3)*(z-0.5)*(z+1)) Zero/pole/gain: 2(z-1)(z-2) ------------------(z-3) (z+1) (z-0.5) 19

Sampling time: unspecified Dado un sistema expresado mediante su funcin 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, los modelos ZPK no los factorizan, dejndolos expresados a como un polinomio en z de segundo grado, por ejemplo z 2 + 2z + 3 se representa tal cual, y no; (z + 1 2j)(z + 1 + 2j) pzmap: Calcula los polos y ceros de un sistema LTI sintaxis: pzmap(sys) pzmap(sys1,sys2,...,sysN) [p,z]=pzmap(sys) descripcin: pzmap(sys) dibuja el mapa de polos y ceros del sistema LTI o representado por sys. Los polos se representan mediante X y los ceros mediante O. pzmap(sys1,ys2,...,sysN representa el mapa de polos y ceros de varios modelos LTI en una sola gura. Cuando se emplea con argumentos de salida: [p,z]=pzmap(sys), devuelve los valores de los polos en un vector columna p y los de los ceros en un vector columna z, y no los representa grcamente. a ejemplos: A partir de la funcin de transferencia: o sys=tf([=tf([1 2],[1 0.2 0.4 0.8],[])

20

Transfer function: z + 2 --------------------------z^3 + 0.2z^2 + 0.4z + 0.8 Sampling time: unspecified pzmap(sys) Se obtiene el resultado de la gura 3
PoleZero Map

0.8

0.6

0.4

Imaginary Axis

0.2

0.2

0.4

0.6

0.8

1.5

0.5 Real Axis

0.5

Figura 3: diagrama de polos y ceros Si por el contrario se emplea [p,z]=pzmap(sys) p = 0.3228 + 0.9175i 0.3228 - 0.9175i -0.8457 z = -2 Se obtiene el valor numrico de los polos y los ceros. e minreal: Cancelacin de polos y ceros o sintaxis: sysr=minreal(sys) descripcin: sysr=minreal(sys) cancela pares de polo-cero para sistemas o LTI represntados mediante su funcin de transferencia o mediante un o modelo ZPK. El sistema sysr obtenido tiene orden m nimo y las mismas caracter sticas en respuesta que el sistema original. 21

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

0.1503 -0.0972 Limitaciones: Los polos en el vector p deben aparacer en pares de complejos conjugados. series: Conexin en serie de dos modelos LTI o sintaxis: sys=series(sys1,sys2) descripcin: series conecta dos modelos LTI en serie. Esta funcin acepta o o cualquier tipo de modelo LTI. Los dos modelos deben tener el mismo periodo de muestreo. Este comando es equivalente a la multiplicacin o directa de los dos sistemas: sys=sys2*sys1 Ntese el orden de la mulo tiplicacin. La conexin se realiza como muestra la gura: 4 o o

Sys

Sys1

Sys2

Figura 4: resultado de la operacin serie o ejemplo: sys1= Zero/pole/gain: z --------------(z^2 - 2z + 2) Sampling time: unspecified sys2= Transfer function: z + 3 23

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

24

Sys

Sys1

x
Sys2

Figura 5: resultado de la operacin parallel o Sampling time: unspecified sys2= Transfer function: z + 3 ------------2 z^2 - z + 4 Sampling time: unspecified sys=parallel(sys1,sys2) Zero/pole/gain: 1.5 (z+1.26) (z^2 - 1.26z + 1.587) ----------------------------------(z^2 - 2z + 2) (z^2 - 0.5z + 2) Sampling time: unspecified sysi=sys1+sys2 Zero/pole/gain: 1.5 (z+1.26) (z^2 - 1.26z + 1.587) -----------------------------------

25

(z^2 - 2z + 2) (z^2 - 0.5z + 2) Sampling time: unspecified

impulse: Calcula la respuesta temporal al impulso de un modelo LTI sintaxis: impulse(sys) impulse(sys,t) impulse(sys1,sys2,...sysN) impulse(sys1,sys2,...sysN,t) [y,t]=impulse(sys) descripcin: impulse Calcula la respuesta al impulso de un sistema lio neal. Para un sistema discreto, la respuesta al impulso es la respuesta a un impulso unitario para el instante de tiempo (muestra ) t = 0 Si se invoca sin parmetros de salida, impulse dibuja la seal de respuesta a n al impulso. La duracin de la respuesta se determina automticamente o a para que cubra completamente la parte correspondiente al transitorio. impulse(sys,t) establece el tiempo de simulacin explicitamente. Se o puede especicar tanto el tiempo nal t=Tfinal como un vector de instantes de muestreo equiespaciados; t=0:dt:Tfinal, en este caso, el espaciado temporal entre muestras dt debe coincidir con el periodo de muestreo. impulse(sys1,sys2,...,sysN) se emplea para representar la respuesta de varios sistemas LTI, en la misma gura. Es posible imvocar la funcin como impulse(sys1,y,sys2,g--) para cono seguir que represente la respuesta de cada sistema con un color y tipo de l nea espec co. Si se imvoca la funcin con variables de salida, o [y,t]=impulse(sys), la funcin devuelve la seal de salida y y los o n correspondientes instates de tiempo t. ejemplo: sys= Transfer function: z^2 + 5 --------------------------(z^3 + 0.5 z^2 + 0.3 z + 0.2 Sampling time: unspecified impulse(sys)

26

Impulse Response 5 4 3 2 1 0 1 2 3

Amplitude

10 Time (sec)

15

20

25

Figura 6: ejemplo de respuesta al impulso obtenida con impulse y=impulse(sys) y = 0 1.0000 -0.5000 4.9500 -2.5250 ... step: Calcula la respuesta temporal al escaln unitario de un modelo LTI o sintaxis: step(sys) step(sys,t) step(sys1,sys2,...sysN) step(sys1,sys2,...sysN,t) [y,t]=step(sys) descripcin: step Calcula la respuesta al escaln unitario de un sistema o o lineal. Sin parmetros de salida, step dibuja la seal de respuesta al a n escaln unitarario. La duracin de la respuesta se determina automtio o a camente para que cubra completamente la parte correspondiente al transitorio. step(sys,t) establece el tiempo de simulacin explicitao mente. Se puede especicar tanto el tiempo nal t=Tfinal como un vector de instantes de muestreo equiespaciados; t=0:dt:Tfinal, en este caso, el espaciado temporal entre muestras dt debe coincidir con el periodo de muestreo. step(sys1,sys2,...,sysN) se emplea para representar la respuesta de varios sistemas LTI, en la misma gura. 27

Es posible imvocar la funcin como step(sys1,y,sys2,g--) pao ra conseguir que represente la respuesta de cada sistema con un color y tipo de l nea espec co. Si se invoca la funcin con variables de sao lida, [y,t]=step(sys), la funcin devuelve la seal de salida y y los o n correspondientes instates de tiempo t. ejemplo: sys= Transfer function: z^2 + 5 --------------------------(z^3 + 0.5 z^2 + 0.3 z + 0.2 Sampling time: unspecified step(sys)

Step Response 6

4 Amplitude

10 Time (sec)

15

20

25

Figura 7: ejemplo de respuesta al escaln unitario obtenida con step o y=step(sys) y = 0 1.0000 0.5000 4.9500 5.4500 ... lsim: Calcula la respuesta de un modelo LTI para entradas arbitrarias. 28

sintaxis: lsim(sys,u,t) [y,t]=lsim(sys,u,t) descripcin: lsim Calcula la respuesta temporal de un sistema LTI para o entradas arbitrarias. si se invoca sin variables de salida, lsim dibuja la respuesta en la pantalla. Para sistemas discretos no es necesario especicar el tiempo, basta con crear el vector u con el nmero de u muestras deseado, la salida del sistema tendr lgicamente la misma a o longitud. ejemplo: Transfer function: z^2 + 5 --------------------------(z^3 + 0.5 z^2 + 0.3 z + 0.2 Sampling time: unspecified u=cos(pi*[0:100]/3) lsim(sys,u)
Linear Simulation Results 5

1 Amplitude

10

20

30

40

50 Time (sec)

60

70

80

90

100

Figura 8: ejemplo de respuesta entrada arbitraria con lsim

29

Вам также может понравиться