IIR filtra lo que significa infinito?

11

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

GorilaApe
fuente

Respuestas:

18

Para responder a esa pregunta, debe saber qué significa "Impulso" y "Respuesta" ...

Un "impulso" es un simple pulso. Digitalmente sería una muestra con un valor máximo, mientras que todas las otras muestras anteriores y posteriores serían cero. Si escucharas esto, oirías algo así como un pop o un petardo.

La "Respuesta" es la salida de un filtro (u otra cosa) que recibe el impulso.

Por ejemplo, puede escuchar la "respuesta de impulso de una habitación" entrando en la habitación, dando un simple aplauso y escuchando el eco. Se necesitaría algo de práctica para que el aplauso sea lo más "agudo" 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 al impulso de un filtro o una habitación, verá que la salida se mueve por un tiempo después del impulso (y a veces también se mueve antes). En la sala escuchaste este meneo como el eco. En un filtro, este movimiento está directamente relacionado con la frecuencia y la respuesta de fase del filtro. En una habitación, la cantidad de tiempo que escucha el eco se llama "tiempo de reverberación"; no existe un término correspondiente para un filtro, pero es parte de la respuesta al impulso.

Ahora, un filtro FIR (Finite Impulse Response) es finito porque el tiempo de respuesta al 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 tomas 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 dura para siempre, ya que en algún momento el movimiento se hace más pequeño que la precisión de las matemáticas utilizadas y desaparece.


fuente
¡Gracias por la buena explicación! ¿Dónde se realiza la retroalimentación en IIR?
GorillaApe
2
@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 .
Paul R
1
@Parha Feedback es un efecto secundario de la topología. Y por topología, me refiero a algo 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 alimenta otra operación en una etapa anterior. De eso se trata la retroalimentación. La mayoría de las personas encuentran que FIR es más fácil 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 de todos los tiempos. La forma en que modela esto es retroalimentando las salidas anteriores a la salida actual, como este biquad de forma directa 1 , o equivalentemente un bucle de retroalimentación en la entrada, como este biquad canónico de forma directa 2 .
Eryk dom
11


b0yb0z1b1b1bi


z1

ingrese la descripción de la imagen aquí

Los
filtros FIR FIR, por otro lado, tienen una ruta lineal de entrada a salida. Después de N muestras, la señal de entrada (como un pulso Dirac) habrá sido desplazada y ese es el final.
Los filtros FIR son inherentemente estables, mientras que los filtros IIR no son necesariamente.

ingrese la descripción de la imagen aquí

stevenvh
fuente
1
¿Esa canción en bucle no puede ser insegura dando resultados no deseados en algunos casos?
GorillaApe
2
Definitivamente puede. Use las rutas o ganancias de retroalimentación incorrectas y puede hacer un filtro inestable o uno que ponga una onda sinusoidal de algo para siempre. En 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.
Olin Lathrop
¿La suma de todos los términos de retroalimentación tiene que retroalimentar al comienzo de la cadena de retroalimentación, o puede resumirse la salida de los términos posteriores en la entrada a los términos posteriores? Si bien esperaría que cualquier filtro que pudiera realizarse de esta manera se transformara en la forma que ha ilustrado, afirmaría que existe una subclase útil de filtros IIR que se puede formar a partir de filtros de primer orden en cascada (donde cada uno la salida de cada término del lado derecho puede alimentarse solo, pero ninguno de sus predecesores)
supercat
1
a1a2
@stevenvh: Como señalé en mi respuesta, hay un subconjunto útil de filtros IIR donde una etapa puede retroalimentarse a sí misma pero no a una etapa previa; No sé si he leído un término para describir tales filtros, pero son mucho más fáciles de caracterizar que los filtros IIR generalizados. Aunque con los coeficientes correctos podrían representarse en la forma anterior, sería más difícil reconocer dicho filtro (¿hay un término para ellos?) En esa forma.
supercat
4

Hay dos clases amplias de filtros digitales, respuesta implícita infinita (IIR) y respuesta de impulso finito (FIR). 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 disminución 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 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 unipolar muy común se puede expresar como:

FILT <- FILT + FF (NUEVO - FILT)

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 va a 1 y permanece allí (un paso de unidad), entonces la salida será 1/2, 3/4, 7/8, 15/16, etc. Esta es una serie infinita. Finalmente, el valor se acercará tanto a 1 que se expresa como 1 ya que los valores digitales en la computadora no tienen una precisión infinita.

Los filtros FIR funcionan según un principio totalmente diferente. Se guarda un fragmento finito reciente de la señal de entrada, y cada uno de los valores guardados se multiplica por un coeficiente diferente, luego se agregan todos los resultados para hacer que el filtro salga para esa iteración. La siguiente iteración, el valor guardado más antiguo es descartar, los otros se desplazan una ranura más antigua y la nueva entrada se coloca en la ranura desocupada. El nuevo fragmento guardado se multiplica por los coeficientes, etc. Este proceso se conoce como "convolución", y la tabla de coeficientes a menudo se denomina núcleo de filtro. Se pueden hacer algunas cosas elegantes y útiles con este tipo de filtro volviéndose creativo con los coeficientes. Ese es un tema en sí mismo en el que no voy a 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 durante 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 enteros escritos sobre estas cosas y puedes pasar varios semestres de cursos universitarios dedicados a esto. Espero que mi resumen de 30 segundos desmitifique esto lo suficiente como para responder a su pregunta.

Olin Lathrop
fuente
1

Un punto que aún no se menciona es que los filtros IIR pueden subdividirse en dos estilos: aquellos en los que se pueden clasificar las etapas, de modo que cada etapa depende por completo de sus propios valores anteriores y aquellos de etapas anteriores, y aquellos en los que Las etapas no se pueden clasificar (porque dos o más etapas dependen una de la otra). Es posible que las etapas en un filtro FIR hagan referencia a las salidas anteriores de otras etapas, siempre que puedan clasificarse como en el estilo anterior de IIR, y ninguna etapa se refiere a su propia salida anterior.

Si las etapas en un filtro IIR se pueden clasificar, y si la magnitud total de los coeficientes de autorrealimentación para una etapa dada es menor que uno, se garantiza que el filtro IIR será estable. Si, por ejemplo, una etapa incluye una cierta cantidad de señal de las 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 del auto- la retroalimentación será de 7/8, por lo que si no se reciben más datos de las etapas inferiores, la magnitud de la contribución de la retroalimentación disminuirá en un 12.5% ​​cada iteración.

Super gato
fuente
0

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 hace el cálculo, toma un número finito de elementos y realiza el filtro solo en esos.

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

viejo contador de tiempo
fuente
"operado con 1,000,000,000 de muestras". Bueno, no directamente. Debido a que parte del resultado se usa en el cálculo para 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.
stevenvh
eso es lo que estaba implicando que cada muestra tiene algunos pero pequeños efectos de todas las muestras que la precedieron, para IIR.
old_timer
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 solo con 2 elementos de datos: 1 de la entrada, 1 de la salida.
radagast
El infinito no proviene del número de entradas, sino del número de ciclos acumulados, el finito solo toma N número de muestras para una sola entrada en las matemáticas, el infinito opera efectivamente en cada ciclo. Número finito de ciclos vs número infinito de ciclos para una sola entrada.
old_timer