Tengo dificultades para entender lo que significa "infinito" en IIR en la práctica. En teoría, la respuesta al impulso se usa para la retroalimentación. Si esta retroalimentación nunca termina, ¿cómo se genera la salida?
Tengo dificultades para entender lo que significa "infinito" en IIR en la práctica. En teoría, la respuesta al impulso se usa para la retroalimentación. Si esta retroalimentación nunca termina, ¿cómo se genera la salida?
Para responder a esa pregunta, debe saber qué significa "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 escuchara esto, escucharía algo como un estallido o un petardo.
La "Respuesta" es la salida de un filtro (o algo más) recibe el impulso.
Por ejemplo, puedes escuchar la "respuesta de impulso de una habitación" entrando en la habitación, haciendo una simple palmada y escuchando el eco. Se necesitaría algo de práctica para que el aplauso de la mano sea lo más "agudo" posible. Obtener la respuesta de impulso de un filtro es de la misma manera, pero en lugar de una palmada, se usa un pulso simple y en lugar de una habitación, se tiene un filtro.
Si observas la respuesta al impulso de un filtro o una habitación, verás que la salida se mueve durante 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 se escucha el eco se denomina "tiempo de reverberación", no hay 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 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 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 se hace 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.
La respuesta al impulso es la firma del filtro. En el caso de un filtro FIR, la respuesta al impulso le brinda una imagen directa de los coeficientes del filtro. El impulso es una muestra única 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 impulso, su valor se multiplica por \ $ b_0 \ $ (vea el diagrama inferior). Las otras muestras son cero, por lo que la salida \ $ y \ $ es igual a \ $ b_0 \ $ (presumo un valor máximo para el pulso de 1). Una muestra más tarde, el pulso ha movido un bloque \ $ z ^ {- 1} \ $ 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 se desplaza 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 a partir 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 en bucle. La mayoría de las veces, sin embargo, esta parte de la señal será cada vez más pequeña y terminará siendo cero, pero en teoría nunca desaparecerá por completo. El siguiente diagrama de bloques muestra un filtro biquad, una implementación de uso frecuente de un filtro IIR. La rama izquierda toma valores de entrada (retrasados), la rama derecha trabaja con valores de salida (retrasados). (Un bloque \ $ z ^ {- 1} \ $ representa un retraso de 1 muestra. Los biquads a menudo están en cascada.
FIR
LosfiltrosFIR,porotrolado,tienenunarutalinealdeentradaasalida.DespuésdeNmuestras,laseñaldeentrada(comounpulsodeDirac)sehabrádesviadoyeseeselfinaldelamisma.
LosfiltrosFIRsoninherentementeestables,mientrasquelosfiltrosIIRnosonnecesariamente.
Hay dos clases amplias de filtros digitales, respuesta implícita infinita (IIR) y respuesta de impulso finito (FIR). De nuevo, en términos generales, los filtros IIR están basados en ecuaciones y los filtros FIR están basados 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 R-C. La respuesta de salida a una entrada de paso es una exponencial que se acerca cada vez más a la entrada. Tenga en cuenta que esta exponencial nunca llega a la salida, solo lo suficientemente cerca para que no nos importe o no podamos medir el error. En ese sentido, dicho filtro es inifinito. 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:
FILT < - FILT + FF (NUEVO - FILT)
Esto significa que cada iteración de la salida si 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 pasa repentinamente 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. Eventualmente, 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 reciente finito 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 produzca 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, 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. Algunas cosas elegantes y útiles se pueden hacer con este tipo de filtro al ser creativos con los coeficientes. Ese es un tema en sí mismo en el que no voy a entrar ahora. Sin embargo, como un fragmento finito de la entrada se almacena en la memoria, cualquier parte de la señal de entrada solo puede afectar a 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 completos escritos sobre estas cosas y puedes pasar varios semestres de cursos universitarios profundizando en esto. Con suerte, mi resumen de 30 segundos lo desmitifica lo suficiente como para responder a su pregunta.
Un punto que aún no se ha mencionado 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 completamente de sus propios valores anteriores y los de las etapas anteriores, y aquellas en las 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 auto-realimentación para una etapa dada es menor que uno, se garantiza que el filtro IIR sea estable. Si, por ejemplo, una etapa incluye 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 de la autoevaluación. la retroalimentación será de 7/8, por lo que si no se recibe más información de las etapas más bajas, la magnitud de la contribución de la autoalimentación disminuirá en un 12.5% cada iteración.
Un FIR, hace su cálculo matemático 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 matemático, 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 lo alimenta. 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 la matemática funcionó con 1,000,000,000 de muestras. Y si deja que la cosa se ejecute indefinidamente, acercándose al infinito (déjelo funcionar para siempre), entonces el número de elementos también es infinito que se aproxima indefinidamente. Debido a que la palabra finito se aplica claramente al otro modelo, y el modelo IIR no debe tener un número finito de muestras, la palabra infinito como opuesto a finito suena mejor que indefinido o alguna otra palabra similar.