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?
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.
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
(ver diagrama inferior). Las otras muestras son cero, por lo que la salida
es igual
(Supongo un valor máximo para el pulso de 1). Una muestra más tarde, el pulso se ha movido una
bloque y se multiplica por
. Nuevamente, todos los demás valores son cero, por lo que la salida es
. Y así. Mientras el pulso cambia a través del filtro, obtiene los valores sucesivos para
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
bloque representa un retraso de 1 muestra. Los biquads a menudo se conectan en cascada.
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.
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.
gorilamono
pablo r
usuario3624
Sol Eryk