la entrada x[n] es del tipo δ[n] con todas las condiciones iniciales cero.
Q(E)h[n]=P(E)δ[n]
sujeta a h[-1] = h[-2] = … = h[-N] = 0
Solución de forma cerrada
Con entrada un impulso, solo los modos característicos se mantienen en el sistema, por lo que h[n] se compone de los modos característicos para n>0.
Con n=0, pueden tener valores no cero A0, por lo que la forma general de h[n] se puede expresar como:
h[n]=A0δ[n]+yc[n]μ[n]
donde yc[n] es una combinación de los modos característicos, se debe encontrar Q[E] yc[n] u[n] = 0, con lo que se tiene,
A0Q[E]δ[n]=P[E]δ[n]
haciendo n=0 y usando el hecho que δ[m] = 0 para todo m ≠ 0 y δ[0] = 1, (pues se ha asumido que es un sistema invariante en el tiempo LTI y la respuesta a δ[n-m] se puede expresar como h[n-m]), se tiene,
A0aN=bNA0=aNbN
quedando la ecuación de respuesta a impulso como,
h[n]=aNbNδ[n]+yc[n]μ[n]
Los N coeficientes desconocidos en yc[n], del lado derecho de la ecuación se pueden determinar conociendo los N valores h[n]
La ecuacion muestra que es una combinación lineal de y0[n] y un avance de y0[n] también es cero, siempre y cuando ambas expresiones tengan la misma forma. La función exponencial γn es la que tiene ésta propiedad,
Ekγn=γk+n=γkγn
Raices reales no repetidas
Indica que γn avanzado por k unidades es varias veces una constante (γk). Por lo que la solución es de la forma y0[n] = cγn, de donde se deben encontrar los valores para c y γ.
Se reescribe la ecuación de diferencias con operadores E como y se busca una solución:
que se resuelve con las condiciones iniciales del problema, teniendo asi la ecuación característica, con valores característicos.
Raíces reales repetidas
Si no todas las raíces son diferentes, es decir algunas se repiten, la forma de los modos característicos se modifican. Por sustitución directa, siendo r el número de raíces repetidas, se tiene:
El ejercicio planteado en Sistema Discreto – Solución iterativa, se desarrolla con el simulador XCOS de Scilab.
Ejercicio 1
Referencia: Lathi ejemplo 3.11 p266
Un sistema LTID tiene la siguiente expresión:
y[n]−0.5y[n−1]=x[n]
con condiciones iniciales y[-1]=16 y entrada causal x[n] = n2 ,para n>=0.
El simulador requiere establecer una señal de tiempo para coordinar lo que sucede en cada bloque que depende del tiempo para generar una salida.
El contador requiere una señal de reloj para actualizar el valor de salida. El bloque de gráfica también se sincroniza con el reloj y el bloque de atraso también usa el reloj para determinar si usa los valores iniciales.
Las operaciones matemáticas como ganancia, suma y base a un exponente no usan reloj.
El parámetro de condición inicial se configura en el bloque de retraso (1/z)
La señal de entrada requiere dos bloques: el contador y el bloque de base elevado a potencia.
El bloque del contador se configura considerando los tiempos de observación:
El bloque de potencia se configura el exponente,
Control de muestreo se realiza en el reloj, con periodo 1 e inicio en cero
El intervalo de muestreo se establece en las propiedades del osciloscopio de salida,
La gráfica de salida se obtiene con el botón de «PLAY» y se ajusta en el menu de «Edit/Axes properties» para presentar muestras con puntos de tamaño 6 y color rojo, sin lineas, con estilo de barra.
los datos de la gráfica se pueden observar en la viñeta «data»,
Se presenta el procedimiento en pasos básicos, luego se pueden añadir mas detalles.
Las condiciones iniciales se ingresan como un vector con valores de posición ascendente. También es necesario indicar el número de muestras a observar. esto permite construir el vector de salida yi.
Las fórmulas de entrada y salida se muestran en la sección «calcula los siguientes valores»
# Sistema LTID. Solución iterativa# Ejercicio Lathi ejemplo 3.11 p266import numpy as np
import matplotlib.pyplot as plt
# INGRESO
muestras = 10
# condiciones iniciales ascendente ...,y[-2],y[-1]
y0 = [16.]
# PROCEDIMIENTO
m0 = len(y0)
m = muestras + m0
# vectores
n = np.arange(-m0,muestras,1)
xi = np.zeros(m, dtype=float)
yi = np.zeros(m, dtype=float)
# añade condiciones iniciales
xi[0:m0] = 0
yi[0:m0] = y0
# calcula los siguientes valoresfor k inrange(m0,m,1):
xi[k] = n[k]**2
yi[k] = 0.5*yi[k-1]+xi[k]
# tabla de valores
tabla = np.concatenate([[n],[xi],[yi]], axis=0)
tabla = np.transpose(tabla)
# SALIDA
np.set_printoptions(precision=2)
print('muestras: ', muestras)
print('[[ n, xi, yi]]')
print(tabla)
# Gráfica
plt.subplot(211)
plt.stem(n,xi,label='x[n]=n**2')
plt.xlabel('n')
plt.ylabel('x[n]')
plt.axvline(0,color='gray')
plt.legend()
plt.grid()
plt.subplot(212)
plt.stem(n,yi,label='y[n]=0.5y[n-1]+x[n]',
markerfmt='go',
linefmt='green')
plt.xlabel('n')
plt.ylabel('y[n]')
plt.axvline(0,color='gray')
plt.legend()
plt.grid()
plt.show()
Ejercicio 2
Se aplica el mismo algoritmo a otro ejercicio para comparar resultados con lo realizado en forma analítica.
Referencia: Lathi ejemplo 3.12 p267
Resolver de forma iterativa,
y[n+2]−y[n+1]+0.24y[n]=x[n+2]−2x[n+1]
con las condiciones iniciales de y[-1] = 2, y[-2] =1 y entrada causal x[n]=n que inicia en n=0
Para usar la ecuación en el algoritmo, se desplaza dos posiciones en ambos lados de la ecuacion para despejar y[n]
El diagrama realizado para la ecuación tiene dos partes, el generador de señal en azul y la parte del sistema en color gris para el retrazo y naranja para el coeficiente de retrazo:
Ejercicio 2
Referencia: Lathi ejemplo 3.12 p267
Resolver de forma iterativa,
y[n+2]−y[n+1]+0.24y[n]=x[n+2]−2x[n+1]
con las condiciones iniciales de y[-1] = 2, y[-2] =1 y entrada causal x[n]=n que inicia en n=0
Desarrollo
Se deja como tarea realizar la solución analítica con lapiz y papel, se continua con el uso del algoritmo para la solución.
Si la ecuación se reescribe de la forma:
y[n+2]=y[n+1]−0.24y[n]+x[n+2]−2x[n+1]
y se desplaza en el tiempo con retrasos, para adaptarla al algoritmo presentado en el ejemplo anterior.
y[n]=y[n−1]−0.24y[n−2]+x[n]−2x[n−1]
Las condiciones iniciales ordenadas son inicial= [1,2]
se emplea el mismo algoritmo, adaptando la fórmula par x[n] y y[n],teniendo los resultados siguientes:
Los sistemas discretos LTID (linear time-invariant, discrete time systems) se analizan de forma semejante a los de tipo continuo, con algunas variantes.
Ecuaciones de Diferencias
Las ecuaciones de diferencia se pueden escribir de dos formas:
La primera usa términos con atrasos como y[n-1], y[n-2], x[n-1]…
La segunda con terminos de avance como son y[n+1], y[n+2], x[n+1]…
La forma con atrasos es mas natural, mientras que ser prefieren las forma de avances por motivos de uniformidad con las operaciones de ecuaciones de diferencias.
Una ecuación de diferencias con operador de avances tiene la forma:
que es una ecuación de diferencias con orden de magnitud max(N,M). Se asume que el coeficiente de y[n+N] es 1, es decir a0=1, sin perder la generalidad, caso contrario se normaliza.
Notación de operadores E
Para simplificar la escritura en sistemas discretos, las ecuaciones de diferencias usan la notación E para mostrar una operación de avance de una unidad. La notación de operadores es semejante a la usada en ecuaciones diferenciales que era D.
Ex[n]=x[n+1]E2x[n]=x[n+2]ENx[n]=x[n+N]
por lo que una ecuación de diferencias de primer orden se puede escribir como:
Referencia: Lathi ejemplo 3.6 p253, Oppenheim ejemplo 1.10 p40. Acumuladores en Fundamentos de programación
Una persona ahorradora realiza depósitos regularmente en el banco a un intervalo T mensual. El banco paga intereses registrados en el estado de cuenta en el periodo T y lo envía al depositante.
Siendo:
x[n]
depósito realizado en el instante n-ésimo
y[n]
saldo de la cuenta al n-ésimo instante inmediato luego de recibir el n-ésimo depósito x[n]
r
tasa de interés del periodo T
El saldo y[n] es la suma [i] del saldo anterior y[n-1], los intereses r sobre y[n-1] durante el periodo T y el depósito x[n]. El evento se puede registrar mediante la ecuación:
y[n]=y[n−1]+ry[n−1]+x[n]
reordenando la ecuación:
y[n]=(1+r)y[n−1]+x[n]y[n]−(1+r)y[n−1]=x[n]
por facilidad se simplifica, a = 1+r
la ecuación general se escribe como:
y[n]−ay[n−1]=x[n]
Para el caso presentado, la expresión podría escribirse también para manejar retiros de la cuenta si se cambia de signo al valor de x[n]. También debe considerar condiciones iniciales, por ejemplo al abrir la cuenta y[0] = M si es un depósito, o en otro caso Y[0] = -M por si lo que representa es un préstamo.
El índice de tiempo n es una variable arbitraria, se puede sustituir en la referencia por n+1
y[n+1]−ay[n]=x[n+1]
La expresión con n-1 usa un operación de retardo o retraso, mientras que n+1 usa una operación de avance o adelanto.
El operador de retraso n-1 es más natural, pues la operación es causal, realizable en el tiempo. La operación de adelanto n+1 es no causal, no realizable en tiempo. Por facilidad de operación matemática se usa el operador de adelanto.
Diagrama de bloques
Referencia: Oppenheim 2.4.3 p124.
Semejante a lo presentado en sistemas contínuos se tiene,
y[n]=ay[n−1]+x[n]
Aunque los primeros ejemplos dados son de claramente señales discretas en tiempo, las señales contínuas en tiempo pueden también ser procesadas por sistemas discretos usando muestreo. Los diagramas de bloques se elaboran usando Xcos de Scilab que es software abierto.
Un vendedor de una editora de libros en un n-ésimo semestre con x[n] estudiantes registrados en un curso vende y[n] copias de un libro.
En promedio, la cuarta parte de los estudiantes al final del semestre revende el libro usado, el libro se mantiene en buenas condiciones por tres semestres.
Escriba la ecuación que relaciona los libros vendidos por la editora y[n], considerando el número de estudiantes registrados x[n] en el n-ésimo semestre, bajo el supuesto que todos los estudiantes compran el libro.
Durante el n-ésimo semestre, los x[n] estudiantes tienen libros compuestos por libros nuevos vendidos y[n] mas los libros de segunda mano de los dos semestres anteriores.
Del semestre inmediato anterior, la cuarta parte de los libros nuevos se revendieron, (1/4) y[n-1].
Lo mismo sucedió hace dos semestres (1/4) y[n-2] que se vendieron en el semestre anterior (n-1).
También 1/4 de los revendidos el semestre anterior, se vuelven a vender, llegando al ciclo final de vida del libro, es decir (1/4)(1/4 y[n-2]) = (1/16) y[n-2].
Siendo así, los x[n] estudiantes tienen libros provenientes de los libros nuevos y revendidos, expresados mediante:
y[n]+41y[n−1]+161y[n−2]=x[n]
por facilidad de operaciones matemáticas, se desplaza los índices a positivos,
y[n+2]+41y[n+1]+161y[n]=x[n+2].
Para diagramar el sistema, se reordena la ecuación original como entrada-salida: