sos =
den =
1 1 1 1 0 -1
1.0000 0.1000 -0.1200 -2 3 1 1 10 1
>> [b,a]=sos2tf(sos)
roots
El polinomio s3 − 6s2 − 72s − 27 está representado en el a =
MATLAB como:
1 10 0 -10 -1
p = [ 1 -6 -72 -27 ]
% Las ra\’ices de este polinomio
% se devuelven residuez
% en un vector columna Trabaja de dos maneras, (b, a) = RESIDU EZ(r, p, k) y
(r, p, k) = RESIDU EZ(num, den), que son:
r = roots (p) num: los coeficientes del numerador y de del denominador,
obtendremos las fracciones parciales donde r es cada uno de
r = los numeradores, p es cada uno de los zeros de cada fracción
12.1229 parcial y k es el valor de las constantes.
-5,7345
-0,3884 Ejemplo:
Descomponer la función en fracciones parciales:
poly 1 − z −1
H(z) =
MATLAB muestra polinomios como vectores fila que contiene 1 − 5z −1 + 6z −2
los coeficientes ordenados por potencias descendentes. La
>> [r, p,k] = residuez([1 -1],[1 -5 6]) encuentra una matriz sos en forma de segundo orden sección
equivalente al sistema de polos - ganancia cero representada
r = por argumentos de entrada z , p, y k. Vectores z y p contienen
los ceros y polos del sistema H(z) , no necesariamente en
2.0000 cualquier orden:
-1.0000
>> z=[1 1 j -j];
>> p=[0.9 0.8 0.7 0.6];
>> sos=zp2sos(z,p)
p =
sos =
3.0000
2.0000
1 -2 1 1 -1 0.42
1 0 1 1 -1 0.72
k = [1]
sos2zp
cplxpair
B = cplxpair(A) Es el procedimiento inverso, pero se debe tener presente que
la matriz ingresada debe estar en la forma
Ordena los elementos a lo largo de diferentes dimensiones
de una matriz compleja, que agrupan juntos pares conjugados | b01 b02 b03 1 a02 a03 |
complejos. sos= | b11 b12 b13 1 a12 a13 |
Los pares conjugados están clasificadas por el aumento de la | .. .. .. 1 .. .. |
parte real. Dentro de un par, el elemento con parte imaginaria | bl1 bl2 bl3 1 al2 al3 |
negativa que ocurra primero. Los valores puramente reales se
devuelven después de todos los pares de complejos. Entonces para obtener los polos y ceros, se utiliza el comando:
zp2sos
Ejemplo:
Convierte una representación polos - ganancia cero de un
sistema dado a una representación sección de segundo orden >> z=[-0.8 0.2];
equivalente. >> p=[-0.4 -0.3];
>> k=1;
SOS = zp2sos(z, p, k) >> [A,B,C,D]=zp2ss(z,p,k)
A =
A =
-10 0 10 1
-0.70 -0.35 1 0 0 0
0.35 0 0 1 0 0
0 0 1 0
B =
B =
1
0 1
0
0
C = 0
-0.1 -0.81
C =
D = 21 2 -16 -1
1
D =
-2
ss2zp
Convierte la forma espacio de estado en la forma de polos-
ceros ganancia, invirtiendo el funcionamiento de zp2ss.
ss2sos
>> A=[-0.7 -0.12; 1 0];
>> b=[1 0]’; Es el codigo opuesto a sos2ss, tenemos la forma
>> c=[-0.1 -0.28];
H(z) = C(z −1 I − A)−1 B + D
>> d=1;
>> Y deseamos la forma
[z,p,k]=ss2zp(A,b,c,d)
b0k + b1k z −1 + b2k z −2
H(z) = ΠL
n=0
z = 1 + a1k z −1 + a2k z −2
>> A=[-0.7 -0.12; 1 0];
-0.8000 >> b=[1 0]’;
0.2000 >> c=[-0.1 -0.28];
>> d=1;
>> sos=ss2sos(A,b,c,d)
p =
sos =
-0.4000
-0.3000 1 0.6 -0.16 1 0.7 0.12
k = filter
Realiza el filtrado de la señal utilizando el tipo 2 de forma
1 directa canónica para los filtros IIR.
sos2ss
Parámetros de entrada: un vector b de los coeficientes del
convierte la forma de cascada en la forma espacio de estado, numerador, un vector de coeficientes de un denominador, un
invirtiendo el funcionamiento de ss2sos. vector x que sostiene la señal a filtrar, y un vector Zi.
>> sos=[1 1 1 1 10 1; -2 3 1 1 0 -1];
>> [A,B,C,D]=sos2ss(sos) Parámetros de salida: un vector y sostienen la señal filtrada
y un vector Zf .
V. E JERCICIOS A DICIONALES La realización en paralelo esta dado por la función determi-
nada con el comando residuo obtenemos la suma de H(z).
Descripción espacio de estado Considerando la forma
directa de la función de transferencia: r1 r2 rN
6 5 4 3 2
H(z) = + + ... + +k
z +z +z +z +z +z+1 z − p1 z − p2 z − pN
H(z) =
121 4 41 2 1 1 Usando el comando de Matlab:
z 6 + 3z 5 + z + z + z+
30 30 3 30
>> [rp,pp,kp]=residue(num,den)
Se puede determinar facilmente usando los comandos que se
muestran en lo siguiente.
rp =
>> num=[1 1 1 1 1 1 1];
>> den=[1 3 121/30 92/30 41/30 1/3 1/30]; -35.8020 + 0.0000i
>> [zc,pc,kc]=tf2zp(num,den) 5.0000 -12.5000i
5.0000 +12.5000i
zc = -10.0000 +49.0748i
-10.0000 -49.0748i
0.6235 + 0.7818i 43.8020 + 0.0000i
0.6235 - 0.7818i
-0.9010 + 0.4339i
-0.9010 - 0.4339i pp =
-0.2225 + 0.9749i
-0.2225 - 0.9749i -0.7236 + 0.0000i
-0.5000 + 0.5000i
-0.5000 - 0.5000i
pc = -0.5000 + 0.2887i
-0.5000 - 0.2887i
-0.5000 + 0.5000i -0.2764 + 0.0000i
-0.5000 - 0.5000i
-0.7236 + 0.0000i
-0.5000 + 0.2887i kp =
-0.5000 - 0.2887i
-0.2764 + 0.0000i 1
Con lo que obtenemos la función de transferencia de forma Como podemos observar es la matriz resultante del
paralela teniendo kp = 1. arreglo complejo de la función de transferencia que se
10z + 17,5 20z + 38,33 8z + 21,8 obtuvo en la anterior sección.
H(z) = 2 + + +1
z + z + 0,5 z 2 + z + 0,33 z 2 + z + 0,2
Usando el comando tf 2ss aplicando el numerador como en
2. Implementar la ecuación
el denominador obtenemos:
>> [A,B,C,D]=tf2ss(num,den) d, n= 1
(1)
C T An−1 B
A = En Matlab determinar la respuesta al impulso del state-
space basado en la matriz A, B, C y el escalar. Además
-3 -4.03 -3.06 -1.37 -0.33 -0.03 comparar el resultado con la respuesta al impulso obte-
1 0 0 0 0 0 nido con el comando filtro.
0 1 0 0 0 0
0 0 1 0 0 0
[num den]= ss2tf (A, B, C, D)
0 0 0 1 0 0
figure(1)
0 0 0 0 1 0
grid on
d= tf (num, den, 0.1) ;
step(d)
B =
y=filter(num, 1, den) ;
figure(2)
1
grid on
0
y1= tf(y, den, 0.1) ;
0
step(y1)
0
0
num =
0
1 1 1 1 1 1 1
C =
den =
-2 -3.03 -2.07 -0.37 0.67 0.97
1 3 4.03 3.07 1.37 0.33 0
D =
Se puede observar claramente la diferencia entre estas
1 las gráficas. El transitorio es absorbido al comienzo
en segundos de la respuesta al escalón utilizando la
función filter que después de todo es un filtro digital.
VI. E JERCICIOS A DICIONALES Lo que no sucede, es con la respuesta al escalón de la
1. Usar el comando eig en Matlab para determinar los función de transferencia sin usar filtro en la figura2, lo
eigenvalues del sistema de la matriz teniendo en cuenta cual se debe a que en un transitorio existen muchas
VIII. R ECOMENDACIONES
Se recomienda usar el comando tf para calcular la
función de transferencia de las funciones que se necesite
encontrar.
Se recomienda usar la función tf 2ss para encontrar los
espacios entre los estados.
R EFERENCIAS
[1] Paulo Diniz, Eduardo da Silva, and Sergio Netto. Digital Signal Proces-
sing: System Analysis and Design, 2nd Edition. Cambridge University
Press, ISBN 978-0-521-88775-5, 2010.
[2] Monson H. Hayes. Schaums. Outline of Theory and Problems of Digital
Signal Processing, 2nd Edition. McGraw Hill, ISBN 0-07- 027389-8,
2011
VII. C ONCLUSIONES