s1Eva2009TII_T5 LTI DT bloques H[z] en serie

Referencia: 1Eva2009TII_T5 LTI DT bloques H[z] en serie

1. Las respuestas impulso de cada subsistema

1E2009TII T5 LTID
H_1[z] = \frac{z}{z-(0.7)} = \frac{z}{z-0.7}

usando la tabla de transformadas z

h_1[n] = (0.7)^n \mu[n]

Continuando con el subsistema de la derecha

H_2[z] = \frac{z}{z-(-0.5)} = \frac{z}{z+0.5} h_2[n] = (-0.5)^n \mu[n]

El sistema total:

H[z] = H_1[z] H_2[z] = \frac{z}{(z-0.7)} \frac{z}{(z+0.5)} = \frac{z^2}{(z-0.7)(z+0.5)}

fracciones parciales modificadas, multiplica ambos lados por 1/z

\frac{H[z]}{z} = \Big( \frac{1}{z} \Big) \frac{z^2}{(z-0.7)(z+0.5)}= \frac{z}{(z-0.7)(z+0.5)} \frac{H[z]}{z} = \frac{z}{(z-0.7)(z+0.5)} = \frac{k_1}{z-0.7} +\frac{k_2}{z+0.5} k_1 = \frac{z}{\cancel{(z-0.7)}(z+0.5)} \Big|_{z=0.7} = \frac{0.7}{(0.7+0.5)} = 0.5833 k_2 = \frac{z}{(z-0.7)\cancel{(z+0.5)}} \Big|_{z=-0.5} = \frac{-0.5}{(-0.5-0.7)} = 0.4166 \frac{H[z]}{z} = \frac{0.5833}{z-0.7} +\frac{0.4166}{z+0.5}

Restaura fracciones parciales, multiplica ambos lados por z

H[z] = \frac{0.5833 z}{z-0.7} +\frac{0.4166z}{z+0.5}

usando la tabla de transformadas z

h[n] = 0.5833 \Big(0.7 \Big)^n \mu[n] +0.4166 \Big(-0.5\Big)^n \mu[n]

factor común μ[n]

h[n] = \Bigg( 0.5833 \Big(0.7 \Big)^n +0.4166 \Big(-0.5\Big)^n \Bigg) \mu[n]

Revisando el resultado con el algoritmo en Python

1E2009TII_T5 LTID ROC 03 gráfica

1E2009TII T5 LTID hn 04
 Hz:
          2        
         z         
───────────────────
(z - 0.7)⋅(z + 0.5)

fracciones parciales z:
0.416666666666667⋅z   0.583333333333333⋅z
─────────────────── + ───────────────────
      z + 0.5               z - 0.7      

polos: {0.700000000000000: 1, -0.500000000000000: 1}
ceros: {0: 2}
h[n]:
⎛                      n                        n⎞     
⎝0.416666666666667⋅-0.5  + 0.583333333333333⋅0.7 ⎠⋅θ(n)

Tarea: 2. Su respuesta y[n]=s]n], expresada a la mínima expresión frente a la siguiente excitación x[n]=μ[n], esquematizar.

Algoritmo en Python

Algoritmos desarrollados en H[z] Fracciones parciales modificadas con Python

y la parte gráfica de Transformada z con Sympy-Python

# Transformada z- Fracciones parciales
# Polos únicos, repetidos y complejos
# Lathi Ejercicio 5.3a pdf495
# https://blog.espol.edu.ec/algoritmos101/senales/ss-unidades/ss-unidad-7/
import numpy as np
import sympy as sym
import telg1001 as fcnm
 
# INGRESO
z = sym.Symbol('z')

Pz = z**2
Qz = (z-0.7)*(z+0.5)

# Pz = z**2
# Qz = (z-0.7)*(z+0.5)


#Pz = 8*z-19
#Qz = (z-2)*(z-3)

#Pz = z*(2*z**2-11*z+12)
#Qz = (z-1)*(z-2)**3

#Pz = 2*z*(3*z+17)
#Qz = (z-1)*(z**2-6*z+25)

Hz = Pz/Qz

muestras = 10 #para la gráfica
 
# PROCEDIMIENTO 
Fz  = fcnm.apart_z(Hz)
Qs2 = fcnm.Q_cuad_z_parametros(Fz)

[Q_polos,P_ceros] = fcnm.busca_polosceros_z(Fz)

n = sym.Symbol('n')
hn = fcnm.inverse_z_transform(Fz,z,n)


# SALIDA
print('\n Hz:')
sym.pprint(Hz)
print('\nfracciones parciales z:')
sym.pprint(Fz)
print('\npolos:',Q_polos)
print('ceros:',P_ceros)
if len(Qs2)>0:
    print('\nparametros cuadraticos: ')
    for unterm in Qs2:
        print(unterm,':')
        for unparam in Qs2[unterm]:
            print(unparam,':',Qs2[unterm][unparam])
print('h[n]:')
sym.pprint(hn)

# GRAFICAR polos y ceros en z
import matplotlib.pyplot as plt
# para graficar polos y ceros
f_nombre = 'H'    # nombre de función[z]: H,X,Y, etc
# grafica de polos y zeros
fig_ROC = fcnm.graficar_Fz_polos(Hz,Q_polos,P_ceros,
                      muestras=101,f_nombre=f_nombre)
#plt.show()

# h[n] usando tabla de transformadas
fn = sym.lambdify(n,hn)
ki = np.arange(0,muestras,1)
fi = fn(ki)
 
# grafica h[n]
fig_fn, graf_fn = plt.subplots()
plt.stem(ki,fi)
plt.xlabel('ki')
plt.ylabel(f_nombre.lower()+'[n]')
untitulo = r''+f_nombre.lower()+'[n]=$'
untitulo = untitulo+str(sym.latex(hn))+'$'
plt.title(untitulo)
plt.show()