clc close all; clear all; flag = 0; n = 0:25; a = 0.5; k = 0.5; r = (1/2).^n; x(1) = 0; y(1) = 0; for i = 2:length(n) y(i) = x(i-1) + y(i-1); e(i) = r(i) - y(i-1); x(i) = k.*(e(i)); end figure subplot(2,1,1) stem(n,x) hold on stem(n,r) legend("x","r") xlabel("n") title("Entrada x[n] y Referencia r[n] del sistema") subplot(2,1,2) % stem(n,e,'r') % hold on stem(n,y,'r') legend("y") title("Salida del sistema y[n]") xlabel("n") warning('off') k=1.5; % definimos el sistema ceros = [0]; polos = roots([1, -1, k]); sistema = zpk(ceros, polos, k, 0.1,'Variable','z^-1'); % graficamos diagrama de polos y ceros %flag = 0 if flag == 0 leg = strcat("k=",num2str(k)); flag = 1; else leg = vertcat(leg, strcat("k=",num2str(k))); end figure(10) hold on pzmap(sistema) xlim([-1.5 1.5]), ylim([-1.5 1.5]) legend(leg) title("Polos y ceros de H(z).") xlabel("Re(z)"), ylabel("Im(z)") figure(11) impulse(sistema) % definimos la referencia a = 1/2; r = (a).^n; % fijamos k k = 0.5; % respuesta de estado cero ceros = [0 0]; polos_ci_nula = [1/2 roots([1 -1 k])']; respuesta_estado_cero = zpk(ceros, polos_ci_nula, k, 0.1,'Variable','z^-1') % respuesta de entrada cero y0 = 1; ceros_in_nula = [0 k]; polos_in_nula = roots([1 -1 k])'; respuesta_entrada_cero = zpk(ceros_in_nula, polos_in_nula, y0, 0.1,'Variable','z^-1') figure subplot(1,2,1) pzmap(respuesta_estado_cero) xlim([-1.5 1.5]), ylim([-1.5 1.5]) title("Respuesta estado cero") xlabel("Re(z)"), ylabel("Im(z)") subplot(1,2,2) pzmap(respuesta_entrada_cero,'r') xlim([-1.5 1.5]), ylim([-1.5 1.5]) title("Respuesta entrada cero") xlabel("Re(z)"), ylabel("Im(z)") % descomposición en fracciones parciales respuesta de estado cero p = polos_ci_nula; X = [p(2)*p(3) p(1)*p(3) p(1)*p(2) 0; p(2)+p(3) p(1)+p(3) p(1)+p(2) -k; 1 1 1 0]; F = rref(X); y_ci_nula = F(1,4)*(p(1)).^n + F(2,4)*(p(2)).^n + F(3,4)*(p(3)).^n; % descomposicion en fracciones parciales respuesta de entrada cero p = polos_in_nula; X = [1 1 y0; -p(2) -p(1) -y0*k;]; F = rref(X); y_in_nula = F(1,3)*(p(1)).^n + F(2,3)*(p(2)).^n; figure subplot(3,1,1) stem(n,y_ci_nula + y_in_nula,'k') xlabel('n') legend("respuesta c/ condiciones iniciales") subplot(3,1,2) stem(n,y_ci_nula) xlabel('n') legend("respuesta de estado cero") ylim([0 2]) subplot(3,1,3) stem(n,y_in_nula,'r') xlabel('n') legend("respuesta de entrada cero")