Filtros IIR ¿Qué significa infinito?

Tengo dificultades para entender qué significa "infinito" en IIR en la práctica. En teoría, la respuesta de impulso se usa para la retroalimentación. Si esta retroalimentación nunca termina, ¿cómo se genera la salida?

Respuestas (5)

Para responder a esa pregunta tienes que saber qué significan "Impulso" y "Respuesta"...

Un "Impulso" es un pulso simple. Digitalmente sería una muestra con un valor máximo, mientras que todas las demás muestras antes y después serían cero. Si escucharas esto, escucharías algo como un estallido o un petardo.

La "Respuesta" es la salida de un filtro (o algo más) se le da el impulso.

Por ejemplo, puede escuchar la "respuesta de impulso de una habitación" entrando en la habitación, haciendo un simple aplauso y escuchando el eco. Tomaría un poco de práctica lograr que el aplauso sea lo más "afilado" posible. Obtener la respuesta de impulso de un filtro es de la misma manera, pero en lugar de un aplauso, usa un pulso simple y en lugar de una habitación, tiene un filtro.

Si observa la respuesta de impulso de un filtro o una habitación, verá que la salida se mueve durante un tiempo después del impulso (y, a veces, también se mueve antes). En la habitación escuchaste este meneo como el eco. En un filtro, esta oscilación está directamente relacionada con la respuesta de frecuencia y fase del filtro. En una habitación, la cantidad de tiempo que escucha el eco se denomina "tiempo de reverberación"; no existe un término correspondiente para un filtro, pero es parte de la respuesta de impulso.

Ahora, un filtro FIR (respuesta de impulso finito) es finito porque el tiempo de respuesta de impulso está limitado por las matemáticas. Es matemáticamente imposible que el tiempo de respuesta al impulso se extienda más allá del número de toques en el filtro; por lo tanto, es finito .

Un filtro IIR, por otro lado, no tiene esta limitación matemática en el tiempo de respuesta al impulso. Si se le da una precisión matemática infinita, un filtro IIR puede mover las salidas para siempre. Por supuesto, en un sentido práctico, nunca continúa para siempre, ya que en algún momento el movimiento se vuelve más pequeño que la precisión de las matemáticas utilizadas y, por lo tanto, desaparece.

gracias por la linda explicacion! ¿Dónde tiene lugar la retroalimentación en IIR?
@Parhs: la retroalimentación se produce porque la salida actual se deriva de los valores de entrada y salida anteriores , mientras que para el filtro FIR, la salida se deriva solo de los valores de entrada anteriores.
@Parha Feedback es un efecto secundario de la topología. Y por topología, me refiero a algo así como un diagrama de flujo o una vista "esquemática" del filtro. Básicamente, los resultados de una operación matemática en una etapa alimentan otra operación en una etapa anterior. Eso es lo que es la retroalimentación. La mayoría de las personas encuentran que los FIR son más fáciles de usar porque no tienen esa retroalimentación. Esa retroalimentación es difícil de hacer funcionar correctamente, pero tiene una gran cantidad de eficiencia.
Un sistema IIR tiene un estado interno que "recuerda" la entrada anterior para todo el tiempo. La forma en que modela esto es alimentar las salidas anteriores a la salida actual, como este biquad de forma directa 1 , o de manera equivalente un bucle de retroalimentación en la entrada, como este biquad canónico de forma directa 2 .

La respuesta de impulso es la firma del filtro. En el caso de un filtro FIR, la respuesta de impulso le brinda una imagen directa de los coeficientes del filtro. El impulso es una sola muestra con amplitud máxima, todas las muestras antes y después son cero. (Este es el equivalente digital de un pulso de Dirac).
En el momento del pulso, su valor se multiplica por b 0 (ver diagrama inferior). Las otras muestras son cero, por lo que la salida y es igual b 0 (Supongo un valor máximo para el pulso de 1). Una muestra más tarde, el pulso se ha movido una z 1 bloque y se multiplica por b 1 . Nuevamente, todos los demás valores son cero, por lo que la salida es b 1 . Y así. Mientras el pulso cambia a través del filtro, obtiene los valores sucesivos para b i en la salida Después de N muestras, el pulso se desplaza fuera del filtro y la salida vuelve a ser cero.
Para un filtro IIR no es tan obvio derivar los coeficientes del filtro de la respuesta al impulso.

IIR
En un filtro IIR (parte de) la señal procesada se retroalimenta a la entrada. Eso significa que siempre habrá algún residuo de la señal dando vueltas. Sin embargo, la mayoría de las veces esta parte de la señal será cada vez más pequeña y terminará siendo cero, pero en teoría nunca desaparece por completo. El siguiente diagrama de bloques muestra un filtro bicuadrático, una implementación de un filtro IIR que se usa con frecuencia. La rama izquierda toma valores de entrada (retrasados), la rama derecha trabaja con valores de salida (retrasados). (A z 1 bloque representa un retraso de 1 muestra. Los biquads a menudo se conectan en cascada.

ingrese la descripción de la imagen aquí

Los filtros FIR
FIR, por otro lado, tienen una ruta lineal desde la entrada hasta la salida. Después de N muestras, la señal de entrada (como un pulso de Dirac) se habrá desplazado y eso es todo.
Los filtros FIR son intrínsecamente estables, mientras que los filtros IIR no lo son necesariamente.

ingrese la descripción de la imagen aquí

¿Que looping singal no puede ser inseguro dando resultados no deseados en algunos casos?
Definitivamente puede. Use las rutas de retroalimentación o ganancias incorrectas y puede crear un filtro inestable o uno que emita una onda sinusoidal de algo para siempre. Por lo general, eso no es lo que desea que haga un "filtro", por lo que existen técnicas para analizar la estabilidad y evitar la inestabilidad.
¿La suma de todos los términos de retroalimentación tiene que retroalimentar al comienzo de la cadena de retroalimentación, o se puede sumar la salida de términos posteriores en la entrada de términos posteriores? Si bien esperaría que cualquier filtro que pudiera realizarse de la última manera pudiera transformarse en la forma que ha ilustrado, diría que hay una subclase útil de filtros IIR que pueden formarse a partir de filtros de primer orden en cascada (donde cada uno de los la salida de cada término del lado derecho puede alimentarse a sí mismo pero ninguno de sus predecesores)
@supercat: es suficiente tener algún tipo de retroalimentación para tener un filtro IIR. No tienes que ir de la salida ni a la entrada, ya que el a 1 y a 2 rutas en el programa de filtro biquad.
@stevenvh: Como señalé en mi respuesta, hay un subconjunto útil de filtros IIR donde una etapa puede retroalimentarse a sí misma pero a ninguna etapa anterior; No sé si he leído un término para describir dichos filtros, pero son mucho más fáciles de caracterizar que los filtros IIR generalizados. Aunque podrían representarse con los coeficientes correctos en la forma anterior, sería más difícil reconocer dicho filtro (¿hay un término para ellos?) en esa forma.
@supercat - "puede retroalimentarse a sí mismo pero a ninguna etapa anterior". No estoy seguro de entender esto correctamente, pero ¿eso no conduciría a un bucle infinito? El cálculo de una muestra nunca terminaría.
@stevenvh: No, porque cada etapa se retroalimenta después de un retraso. Un ejemplo típico de una sola etapa sería "new_output = new_input * 0.1 + prev_output * 0.9".
Creo que el primer diagrama está mal, y debería ser 1 / a 0 , no a 0

Hay dos amplias clases de filtros digitales, respuesta de impulso infinito (IIR) y respuesta de impulso finito (FIR). Nuevamente, en términos generales, los filtros IIR se basan en ecuaciones y los filtros FIR se basan en tablas.

Los filtros IIR se parecen más a los filtros analógicos del mundo real. Por ejemplo, considere una caída exponencial simple como la que obtendría de un filtro de paso bajo analógico RC. La respuesta de salida a una entrada escalonada es una exponencial que se acerca cada vez más a la entrada. Tenga en cuenta que este exponencial en realidad nunca llega a la salida, solo lo suficientemente cerca como para que no nos importe o no podamos medir el error. En ese sentido, dicho filtro es infinito. Un filtro IIR tiene las mismas características.

El filtro IIR de paso bajo de un solo polo muy común se puede expresar como:

FILTRO <-- FILTRO + FF(NUEVO - FILTRO)

Esto significa que cada iteración de la salida se mueve una fracción fija (FF, la "fracción de filtro") de la distancia a la entrada. Esto es fácil de visualizar cuando FF = 1/2. Si todo es 0 y la entrada de repente pasa a 1 y permanece ahí (un paso unitario), entonces la salida será 1/2, 3/4, 7/8, 15/16, etc. Esta es una serie infinita. Eventualmente, el valor se acercará tanto a 1 que se expresará como 1 ya que los valores digitales en la computadora no tienen una precisión infinita.

Los filtros FIR funcionan con un principio totalmente diferente. Se guarda un fragmento reciente finito de la señal de entrada, y cada uno de los valores guardados se multiplica por un coeficiente diferente, luego se suman todos los resultados para hacer que la salida del filtro para esa iteración. En la siguiente iteración, el valor guardado más antiguo se descarta, los demás se desplazan una ranura más antigua y la nueva entrada se coloca en la ranura vacante. El nuevo fragmento guardado se multiplica luego por los coeficientes, etc. Este proceso se conoce como "convolución", y la tabla de coeficientes a menudo se denomina kernel de filtro. Se pueden hacer algunas cosas interesantes y útiles con este tipo de filtro siendo creativo con los coeficientes. Ese es un tema completo en sí mismo en el que no entraré ahora. Sin embargo, dado que un fragmento finito de la entrada se almacena en la memoria, cualquier parte de la señal de entrada solo puede afectar la salida por un tiempo finito. Una vez que una muestra de entrada se desplaza al final del fragmento almacenado, desaparece y ya no tiene ningún efecto en la salida.

Hay libros completos escritos sobre este tema y puedes pasar varios semestres de cursos universitarios profundizando en esto. Espero que mi descripción general de 30 segundos desmitifique esto lo suficiente como para responder a su pregunta.

Un punto que aún no se menciona es que los filtros IIR se pueden subdividir en dos estilos: aquellos en los que las etapas se pueden clasificar, de modo que cada etapa dependa completamente de su propio valor anterior y de las etapas anteriores, y aquellos en los que el las etapas no se pueden clasificar (porque dos o más etapas dependen unas de otras). Es posible que las etapas en un filtro FIR hagan referencia a las salidas anteriores de otras etapas, siempre que se puedan clasificar como en el estilo anterior de IIR, y ninguna etapa se refiera a su propia salida anterior.

Si las etapas en un filtro IIR se pueden clasificar y si la magnitud total de los coeficientes de auto-retroalimentación para una etapa determinada es menor que uno, se garantiza que el filtro IIR será estable. Si, por ejemplo, una etapa incluye cierta cantidad de señal de etapas anteriores, más la mitad del valor anterior de esa etapa y 1/4 del valor anterior, menos 1/8 del valor anterior, la magnitud total de la auto- la retroalimentación será 7/8, por lo que, en ausencia de más aportes de las etapas inferiores, la magnitud de la contribución de la autoretroalimentación disminuiría en un 12,5 % en cada iteración.

Un FIR, hace sus cálculos en un número finito de elementos, digamos 32 o 12 o algún número, pero eso es lo que hacen los cálculos, toma un número finito de elementos y realiza el filtro solo en esos.

Un IIR hace sus cálculos con todas las muestras que le das. Si lo alimenta con 10 muestras y lo detiene, entonces funcionó con 10 muestras, si lo alimenta con 1,000,000,000 de muestras, entonces las matemáticas operaron con 1,000,000,000 de muestras. Y si dejas la cosa funcionando indefinidamente, acercándose al infinito (deja que funcione para siempre), entonces el número de elementos es igualmente indefinido y acercándose al infinito. Debido a que la palabra finito claramente se aplica al otro modelo, y el modelo IIR está destinado a no tener un número finito de muestras, la palabra infinito como lo opuesto a finito simplemente suena mejor que indefinido o alguna otra palabra similar.

"operado en 1.000.000.000 de muestras". Bueno, no directamente. Debido a que parte de la salida se usa en el cálculo de la siguiente muestra, siempre habrá rastros de muestras anteriores. El filtro siempre tendrá un número muy limitado de muestras. Y no es "indefinido"; es determinista, incluso si puede ser inestable.
eso es lo que estaba dando a entender que cada muestra tiene algunos pero pequeños efectos de todas las muestras que la precedieron, para IIR.
El número infinito vs finito de elementos en el cálculo no es la diferencia entre IIR y FIR. El IIR más simple funciona con solo 2 elementos de datos: 1 de la entrada, 1 de la salida.
El infinito no proviene de la cantidad de entradas sino de la cantidad de ciclos acumulados, finito solo toma N cantidad de muestras para una sola entrada en las matemáticas, infinito opera efectivamente en cada ciclo. Número finito de ciclos frente a número infinito de ciclos para una sola entrada.