Filtro es un nombre genérico que se le da a un sistema lineal invariante en el tiempo (LTI por sus siglas en inglés) diseñado para un trabajo específico de selección de frecuencia o discriminación de frecuencia. Por lo tanto, los sistemas LTI de tiempo discreto también se denominan filtros digitales. Hay dos tipos de filtros digitales: filtros FIR y filtros IIR.
Introducción
Un sistema discreto LTI también se puede describir mediante una ecuación en diferencias de coeficientes constantes lineales de la forma:

Esta ecuación describe un enfoque recursivo para calcular la salida para la muestra n (o n muestras) dados los valores de entrada y los valores de salida calculados previamente. En la práctica, esta ecuación se calcula hacia adelante en el tiempo, desde n=-∞ a n=+∞. Por tanto, otra forma de escribir la ecuación (1) es:

Filtro FIR
Si la respuesta al impulso unitario de un sistema LTI es de duración finita, el sistema se denomina filtro de respuesta de impulso de duración finita (o FIR: finite-duration impulse response). Por tanto, para un filtro FIR h[n]=0 para n<n1 y para n>n2. La siguiente parte de la ecuación de diferencia (2) describe un filtro FIR causal:

Además, h[0]=bo , h[1]=b1 ,… h[M]=bM. mientras que todos los demás h[n]’s valen 0. Los filtros FIR también se denominan filtros no recursivos o de promedio móvil (MA: non-recursive or moving average). En Matlab, los filtros FIR se representan como valores de respuesta de impulso {h[n]} o como coeficientes de ecuación de diferencia {bm} y {a0 =1}. Por lo tanto, para implementar filtros FIR en Matlab, podemos usar la función conv(x,h) o la función filter(b,1,x). Vea el siguiente ejemplo:
Ejemplo 1.
Let the following rectangular pulse x[n] be an input to an LTI system with impulse response h[n]:


Determine the output y[n] of the system.
Solution:
In Elementary sequences we have implemented the function stepseq for plotting the unit step function in discrete time, or any combination as example 1. Next Script allows plotting x[n].
n=[0:40];
x=stepseq(0,0,40)-stepseq(10,0,40);
stem(n,x)
xlabel(‘n’); ylabel(‘x[n]’)

Next Script allows plotting h[n].
n=[0:40];
h=(0.9).^n;
stem(n,h)
xlabel(‘n’); ylabel(‘h[n]’)

Now, we use conv Matlab function to determine y[n]:

y=conv(x,h);
n=[0:80];
stem(n,y);
xlabel(‘n’); ylabel(‘y[n]’)

Another approach is by using the filter function:
n=[0:40];
x=stepseq(0,0,40)-stepseq(10,0,40);
h=(0.9).^n;
y=filter(h,1,x);
stem(n,y)
xlabel(‘n’); ylabel(‘y[n]’)
grid
What yields:

Hay una diferencia en los resultados de estas dos implementaciones que debe tenerse en cuenta. Como puede ver en la Figura 3, la secuencia de salida de la función conv(x,h) tiene una longitud mayor que las secuencias x[n] y h[n]. Por otro lado, la secuencia de salida de la función de filter(h,1,x) en la Figura 4 tiene exactamente la misma longitud que la secuencia de entrada x[n]. En la práctica, para la convolución de señales digitales se recomienda el uso de la función filter.
Cuidado: la función filter se puede utilizar para calcular la convolución indirectamente. Eso fue posible debido a que la respuesta al impulso en el ejemplo 1 era una secuencia exponencial infinita orientada a un lado para la cual podríamos determinar una representación de ecuación de diferencia. No todas las respuestas impulsionales de longitud infinita se pueden convertir en ecuaciones en diferencias.
IIR Filter
If the impulse response of an LTI system is of infinite duration, then the system is called an infinite-duration impulse response (or IIR) filter. The following part of the difference equation (2):
Si la respuesta al impulso de un sistema LTI es de duración infinita, entonces el sistema se denomina filtro de respuesta al impulso de duración infinita (o IIR: infinite-duration impulse response). Considere la siguiente parte de la ecuación en diferencias (2):

La ecuación previa describe un filtro recursivo en el que la salida y[n] se calcula de forma recursiva a partir de sus valores calculados previamente y se denomina filtro autorregresivo (AR: autoregressive). La respuesta al impulso de dicho filtro es de duración infinita y, por lo tanto, representa un filtro IIR. La ecuación general (2) también describe un filtro IIR. Tiene dos partes: una parte AR y una parte MA. Dicho filtro IIR se denomina promedio móvil autorregresivo o filtro ARMA. En Matlab, los filtros IIR se describen mediante los coeficientes de ecuación de diferencia {bm} y {ak} y se implementan mediante la función de filter(b,a,x). Vea el siguiente ejemplo:
Example 2
Given the following difference equation:

- Calculate and plot the impulse response h[n] at n=-20,…,100
- Calculate and plot the unit step response s[n] at n=-20,…,100
- Is the system specified by h[n] stable?
Solution:
- To determine h[n] we use the following script:
n=[-20:120];
a=[1,-1,0.9];
b=[1];
h=impz(b,a,n);
stem(n,h)
grid
xlabel(‘n’); ylabel(‘h[n]’)
The script yields:

- 2. To determine s[n] we use the following script:
n=[-20:120];
a=[1,-1,0.9];
b=[1];
x=stepseq(0,-20,120);
s=filter(b,a,x);
stem(n,s)
xlabel(‘n’); ylabel(‘s[n]’);
The script yields:

- Is the system specified by h[n] stable?
From Figure 1 we see that h[n] is practically zero n>120. Hence the sum:

Can be determined with the following script:
sum(abs(h))
This yields:
ans = 14.8785
That is to say:

This result implies that the system is stable. An alternate approach is to use the stability condition of the roots:
z=roots(a);
magz=abs(z)
magz =
0.9487 0.9487
Dado que la magnitud de ambas raíces es menor que uno, el sistema es estable.
En realidad, hay dos formas de resolver una ecuación en diferencias con coeficientes constantes lineales: encontrar la solución particular y la homogénea; encontrar las respuestas de entrada cero y de estado cero (the zero-input and the zero-state responses). Es mediante el uso de la transformada z que podemos derivar un método para obtener ambos.
Relacionado: Resolver ecuaciones diferenciales en tiempo discreto con Matlab
Fuentes:
- Digital Signal Processing Using Matlab, 3erd ed
- Fundamentos_de_Señales_y_Sistemas_usando la Web y Matlab
- Oppenheim – Señales y Sistemas
- Análisis de Sistemas Lineales Asistido con Scilab – Un Enfoque desde la Ingeniería Eléctrica.
Revisión literaria hecha por:
Prof. Larry Francis Obando – Technical Specialist – Educational Content Writer
Se hacen trabajos, se resuelven ejercicios!!
WhatsApp: +34633129287 Atención Inmediata!!
Copywriting, Content Marketing, Tesis, Monografías, Paper Académicos, White Papers (Español – Inglés)
Escuela de Ingeniería Electrónica de la Universidad Simón Bolívar, USB Valle de Sartenejas.
Escuela de Ingeniería Eléctrica de la Universidad Central de Venezuela, UCV Caracas.
Escuela de Turismo de la Universidad Simón Bolívar, Núcleo Litoral.
Contacto: España. +34633129287
Caracas, Quito, Guayaquil, Jaén.
WhatsApp: +34633129287
FACEBOOK: DademuchConnection
email: dademuchconnection@gmail.com
9 comentarios sobre “Filtros Digitales – Filtros FIR, IIR, AR, MA, ARMA – Procesamiento de señales”