Sunday 26 November 2017

Filtro Promedio Móvil Fase Lineal


Filtros FIR 1.1 ¿Qué son los filtros quotFIR? Los filtros FIR son uno de los dos tipos principales de filtros digitales utilizados en las aplicaciones DSP (Digital Signal Processing), siendo el otro tipo IIR. 1.2 ¿Qué significa quotFIR significa quotFIR significa quotFinite Impulse Response? Si se introduce un impulso, es decir, una muestra única de 1 quot seguido de muchas muestras de quot0quot, los ceros saldrán después de que la muestra quot1quot haya hecho su camino a través de la línea de retardo del filtro. 1.3 ¿Por qué la respuesta de impulso es quotfinita? En el caso común, la respuesta de impulso es finita porque no hay retroalimentación en la FIR. La falta de retroalimentación garantiza que la respuesta al impulso será finita. Por lo tanto, el término respuesta de impulso quotfinito es casi sinónimo de "retroalimentación". Sin embargo, si se emplea retroalimentación pero la respuesta de impulso es finita, el filtro sigue siendo un FIR. Un ejemplo es el filtro de media móvil, en el que la N-ésima muestra anterior es sustraída (retroalimentada) cada vez que entra una nueva muestra. Este filtro tiene una respuesta de impulso finito aunque usa retroalimentación: después de N muestras de un impulso, la salida Siempre será cero. 1.4 Cómo se pronuncia quotFIRquot Algunas personas dicen que las letras F-I-R otras personas se pronuncian como si fuera un tipo de árbol. Nosotros preferimos el árbol. (La diferencia es si hablas de un filtro F-I-R o de un filtro FIR). 1.5 ¿Cuál es la alternativa a los filtros FIR? Los filtros DSP también pueden ser QuotResponse de Impulso Inferior (IIR). (Vea las preguntas frecuentes de dspGurus IIR.) Los filtros IIR utilizan retroalimentación, por lo que al introducir un impulso la salida teóricamente suena indefinidamente. 1.6 ¿Cómo comparan los filtros FIR con los filtros IIR Cada uno tiene sus ventajas y desventajas. En general, sin embargo, las ventajas de los filtros FIR superan las desventajas, por lo que se utilizan mucho más que IIRs. 1.6.1 ¿Cuáles son las ventajas de los filtros FIR (en comparación con los filtros IIR) En comparación con los filtros IIR, los filtros FIR ofrecen las siguientes ventajas: Pueden diseñarse fácilmente para ser fase quotlinear (y normalmente son). En pocas palabras, los filtros de fase lineal demoran la señal de entrada pero no alteran su fase. Son fáciles de implementar. En la mayoría de los microprocesadores DSP, el cálculo FIR puede realizarse mediante un bucle de una sola instrucción. Son adecuados para aplicaciones de múltiples velocidades. Por multi-tasa, queremos decir quotdecimationquot (reducir la tasa de muestreo), quotinterpolationquot (aumentar la tasa de muestreo), o ambos. Ya sea diezmando o interpolando, el uso de filtros FIR permite que algunos de los cálculos sean omitidos, proporcionando así una importante eficiencia computacional. Por el contrario, si se utilizan filtros IIR, cada salida se debe calcular individualmente, incluso si se descarta la salida (por lo que la retroalimentación se incorporará al filtro). Tienen propiedades numéricas deseables. En la práctica, todos los filtros DSP deben ser implementados usando aritmética de precisión finita, es decir, un número limitado de bits. El uso de aritmética de precisión finita en filtros IIR puede causar problemas significativos debido al uso de retroalimentación, pero los filtros FIR sin retroalimentación pueden ser implementados usando menos bits, y el diseñador tiene menos problemas prácticos que resolver relacionados con la aritmética no ideal. Pueden implementarse utilizando aritmética fraccional. A diferencia de los filtros IIR, siempre es posible implementar un filtro FIR usando coeficientes con magnitud inferior a 1,0. (La ganancia total del filtro FIR puede ajustarse en su salida, si se desea). Esta es una consideración importante al usar DSP de punto fijo, ya que hace la implementación mucho más simple. 1.6.2 ¿Cuáles son los inconvenientes de los filtros FIR (comparados con los filtros IIR) En comparación con los filtros IIR, los filtros FIR a veces tienen la desventaja de que requieren más memoria y / o cálculo para obtener una característica de respuesta de filtro dada. Además, ciertas respuestas no son prácticas para implementar con filtros FIR. 1.7 ¿Qué términos se usan para describir los filtros FIR? Respuesta de Impulso - La respuesta de respuesta de un filtro FIR es en realidad sólo el conjunto de coeficientes FIR. (Si se pone un quotimplusequot en un filtro FIR que consta de una quot1quot muestra seguida de muchas quot0quot muestras, la salida del filtro será el conjunto de coeficientes, ya que la muestra 1 pasa de cada coeficiente a su vez para formar la salida). Tap - Una FIR quottapquot es simplemente un par de coeficientes / delay. El número de taps FIR (a menudo designado como quotNquot) es una indicación de 1) la cantidad de memoria requerida para implementar el filtro, 2) el número de cálculos requeridos, y 3) la cantidad de quotfilteringquot el filtro puede hacer en efecto, Multiplicar-Acumular (MAC) - En un contexto de FIR, una quotMACquot es la operación de multiplicar un coeficiente por la correspondiente muestra de datos retardada y acumular el resultado. Las FIRs usualmente requieren un MAC por toque. La mayoría de los microprocesadores DSP implementan la operación MAC en un solo ciclo de instrucción. Banda de transición - La banda de frecuencias entre los bordes de banda de paso y de banda de parada. Cuanto más estrecha es la banda de transición, más taps son necesarios para implementar el filtro. (Una banda de transición quotsmallquot da como resultado un filtro quotsharpquot.) Línea de retardo - Conjunto de elementos de memoria que implementan los elementos de retardo de quotZ-1quot del cálculo FIR. Buffer circular - Un buffer especial que es quotcircular porque incrementar en el extremo hace que se envuelva al principio, o porque decrementar desde el principio hace que se envuelva hasta el final. Los microprocesadores DSP proporcionan frecuentemente amortiguadores circulares para implementar el quotmotimaje de las muestras a través de la línea de retardo FIR sin tener que mover literalmente los datos en la memoria. Cuando una nueva muestra se agrega a la memoria intermedia, reemplaza automáticamente la más antigua. La Guía de Científicos e Ingenieros para el Procesamiento de Señales Digitales Por Steven W. Smith, Ph. D. Capítulo 19: Filtros recursivos Hay tres tipos de respuesta de fase que un filtro puede tener: fase cero. Fase lineal. Y fase no lineal. Un ejemplo de cada uno de estos se muestra en la Figura 19-7. Como se muestra en (a), el filtro de fase cero se caracteriza por una respuesta de impulso que es simétrica alrededor de la muestra cero. La forma real no importa, sólo que las muestras numeradas negativas son una imagen especular de las muestras numeradas positivas. Cuando se toma la transformada de Fourier de esta forma de onda simétrica, la fase será enteramente cero, como se muestra en (b). La desventaja del filtro de fase cero es que requiere el uso de índices negativos, que pueden ser inconvenientes para trabajar con. El filtro de fase lineal es una forma de evitar esto. La respuesta de impulso en (d) es idéntica a la mostrada en (a), excepto que se ha desplazado para utilizar sólo muestras positivas numeradas. La respuesta de impulso sigue siendo simétrica entre la izquierda y la derecha sin embargo, la ubicación de la simetría se ha desplazado de cero. Este cambio da lugar a que la fase, (e), sea una línea recta. Explicando el nombre: fase lineal. La pendiente de esta recta es directamente proporcional a la cantidad del desplazamiento. Puesto que el cambio en la respuesta de impulso no produce más que un cambio idéntico en la señal de salida, el filtro de fase lineal es equivalente al filtro de fase cero para la mayoría de los propósitos. La figura (g) muestra una respuesta de impulso que no es simétrica entre la izquierda y la derecha. Correspondientemente, la fase, (h), no es una recta. En otras palabras, tiene una fase no lineal. No confunda los términos: fase no lineal y lineal con el concepto de linealidad del sistema discutido en el capítulo 5. Aunque ambos usan la palabra lineal. No están relacionados. ¿Por qué alguien se preocupa si la fase es lineal o no? Las figuras (c), (f) e (i) muestran la respuesta. Éstas son las respuestas de pulso de cada uno de los tres filtros. La respuesta de impulsos no es más que una respuesta de paso positivo, seguida de una respuesta de paso negativo. La respuesta de impulsos se utiliza aquí porque muestra lo que sucede a ambos bordes ascendentes y descendentes en una señal. Aquí está la parte importante: los filtros de fase cero y lineal tienen bordes izquierdo y derecho que parecen iguales. Mientras que los filtros de fase no lineales tienen bordes izquierdo y derecho que parecen diferentes. Muchas aplicaciones no pueden tolerar que los bordes izquierdo y derecho parezcan diferentes. Un ejemplo es la visualización de un osciloscopio, donde esta diferencia podría ser malinterpretada como una característica de la señal que se está midiendo. Otro ejemplo es el procesamiento de video. ¿Se puede imaginar encender su televisor para encontrar el oído izquierdo de su actor favorito mirando diferente de su oído derecho Es fácil hacer un filtro FIR (respuesta de impulso finito) tienen una fase lineal. Esto se debe a que la respuesta de impulso (núcleo del filtro) se especifica directamente en el proceso de diseño. Hacer que el núcleo del filtro tenga una simetría izquierda-derecha es todo lo que se requiere. Este no es el caso con los filtros IIR (recursivos), ya que los coeficientes de recursión son lo que se especifica, no la respuesta al impulso. La respuesta de impulso de un filtro recursivo no es simétrica entre la izquierda y la derecha, y por lo tanto tiene una fase no lineal. Los circuitos electrónicos analógicos tienen este mismo problema con la respuesta de fase. Imagine un circuito compuesto de resistencias y condensadores sentados en su escritorio. Si la entrada siempre ha sido cero, la salida también siempre será cero. Cuando se aplica un impulso a la entrada, los condensadores se cargan rápidamente a algún valor y luego comienzan a decaer exponencialmente a través de las resistencias. La respuesta de impulso (es decir, la señal de salida) es una combinación de estos diversos exponenciales en descomposición. La respuesta de impulso no puede ser simétrica, porque la salida era cero antes del impulso, y el decaimiento exponencial nunca alcanza nunca un valor de cero nuevamente. Los diseñadores de filtros analógicos atacan este problema con el filtro Bessel. Presentado en el capítulo 3. El filtro de Bessel está diseñado para tener la fase lineal posible, sin embargo, está muy por debajo del rendimiento de los filtros digitales. La capacidad de proporcionar una fase lineal exacta es una clara ventaja de los filtros digitales. Afortunadamente, existe una manera sencilla de modificar los filtros recursivos para obtener una fase cero. La figura 19-8 muestra un ejemplo de cómo funciona. La señal de entrada a filtrar se muestra en (a). La figura (b) muestra la señal después de haber sido filtrada por un filtro de paso bajo de un solo polo. Como este es un filtro de fase no lineal, los bordes izquierdo y derecho no parecen iguales, son versiones invertidas entre sí. Como se ha descrito anteriormente, este filtro recursivo se implementa partiendo de la muestra 0 y trabajando hacia la muestra 150, calculando cada muestra a lo largo del camino. Ahora, supongamos que en lugar de moverse de la muestra 0 hacia la muestra 150, comenzamos en la muestra 150 y nos movemos hacia la muestra 0. En otras palabras, cada muestra en la señal de salida se calcula a partir de muestras de entrada y salida a la derecha de la muestra que se está trabajando en. Esto significa que la ecuación de recursión, Eq. 19-1, se cambia a: La figura (c) muestra el resultado de este filtrado inverso. Esto es análogo a pasar una señal análoga a través de un circuito RC electrónico mientras que funciona el tiempo al revés. Filtrado en la dirección inversa no produce ningún beneficio en sí mismo la señal filtrada todavía tiene bordes izquierdo y derecho que no se parecen. La magia ocurre cuando se combinan filtrado directo y retroceso. La figura (d) resulta de filtrar la señal en la dirección hacia delante y luego filtrar de nuevo en la dirección inversa. Voila Produce un filtro recursivo de fase cero. De hecho, cualquier filtro recursivo se puede convertir en fase cero con esta técnica de filtrado bidireccional. La única penalización por este rendimiento mejorado es un factor de dos en tiempo de ejecución y complejidad del programa. ¿Cómo se encuentran las respuestas de impulso y frecuencia del filtro general? La magnitud de la respuesta de frecuencia es la misma para cada dirección, mientras que las fases son opuestas en signo. Cuando las dos direcciones se combinan, la magnitud se convierte en cuadrado. Mientras que la fase se cancela a cero. En el dominio del tiempo, esto corresponde a convolar la respuesta de impulso original con una versión invertida de izquierda a derecha de sí misma. Por ejemplo, la respuesta de impulso de un filtro de paso bajo de un solo polo es una exponencial unilateral. La respuesta de impulso del filtro bidireccional correspondiente es una exponencial unilateral que decae a la derecha, convolucionada con una exponencial unilateral que se descompone a la izquierda. Pasando por las matemáticas, esto resulta ser un exponencial de doble cara que se descompone tanto a la izquierda como a la derecha, con la misma constante de decaimiento que el filtro original. Algunas aplicaciones sólo tienen una parte de la señal en el ordenador en un momento determinado, tales como sistemas que alternativamente introducen y emiten datos de forma continua. En estos casos, se puede utilizar el filtrado bidireccional combinándolo con el método de superposición-adición descrito en el último capítulo. Cuando se llega a la pregunta de cuánto tiempo la respuesta al impulso es, no decir infinito. Si lo hace, tendrá que pad cada segmento de señal con un número infinito de ceros. Recuerde, la respuesta de impulso puede ser truncada cuando se ha decaído por debajo del nivel de ruido de redondeo, es decir aproximadamente 15 a 20 constantes de tiempo. Cada segmento tendrá que ser rellenado con ceros tanto a la izquierda como a la derecha para permitir la expansión durante el filtrado bidireccional. Filtros FIR, filtros IIR y la ecuación de diferencia de coeficientes constantes lineales Filtros de Promedio Movente Causal (FIR) Que cada muestra de la salida es una suma ponderada de (cierta de las) muestras de la entrada. Tomemos un sistema de suma ponderada causal, donde causal significa que una muestra de salida dada depende solamente de la muestra de entrada actual y de otros insumos más temprano en la secuencia. Ni los sistemas lineales en general, ni los sistemas finitos de respuesta al impulso en particular, necesitan ser causales. Sin embargo, la causalidad es conveniente para una especie de análisis que se va a explorar en breve. Si simbolizamos las entradas como valores de un vector x. Y las salidas como valores correspondientes de un vector y. Entonces tal sistema se puede escribir como cuando los valores de b son pesos aplicados a las muestras de entrada actuales y anteriores para obtener la muestra de salida actual. Podemos pensar en la expresión como una ecuación, con el signo de igual signo que es igual, o como una instrucción de procedimiento, con el signo de igual signo de asignación. Permite escribir la expresión para cada muestra de salida como un bucle MATLAB de sentencias de asignación, donde x es un vector N-length de muestras de entrada, yb es un vector M-length de pesos. Para tratar el caso especial al principio, incorporaremos x en un vector más largo xhat cuyas primeras muestras M-1 son cero. Escribiremos la suma ponderada para cada y (n) como un producto interno, y haremos algunas manipulaciones de las entradas (como invertir b) para este fin. Este tipo de sistema es a menudo llamado un filtro de media móvil, por razones obvias. De nuestras discusiones anteriores, debe ser obvio que tal sistema es lineal y invariable del turno. Por supuesto, sería mucho más rápido usar la función de convolución de MATLAB conv () en lugar de nuestro mafilt (). En lugar de considerar las primeras muestras M-1 de la entrada como cero, podríamos considerarlas como las mismas que las muestras M-1 pasadas. Esto es lo mismo que tratar la entrada como periódica. Utilice bien cmafilt () como el nombre de la función, una pequeña modificación de la función mafilt () anterior. En la determinación de la respuesta de impulso de un sistema, normalmente no hay diferencia entre estos dos, ya que todas las muestras no iniciales de la entrada son cero: Dado que un sistema de este tipo es lineal y invariable al desplazamiento, sabemos que su efecto en cualquier Sinusoid será sólo a escala y cambiarlo. Aquí es importante que utilicemos la versión circular. La versión circularmente convoluida se desplaza y se escala un poco, mientras que la versión con convolución ordinaria se distorsiona al inicio. Vamos a ver cuál es el escalado y desplazamiento exactos usando fft: Tanto la entrada como la salida tienen amplitud sólo en las frecuencias 1 y -1, que es como debería ser, dado que la entrada era una sinusoide y el sistema era lineal. Los valores de salida son mayores en una relación de 10.6251 / 8 1.3281. Esta es la ganancia del sistema. ¿Qué pasa con la fase? Sólo necesitamos mirar donde la amplitud es distinta de cero: La entrada tiene una fase de pi / 2, como pedimos. La fase de salida se desplaza por 1,0594 adicionales (con signo opuesto para la frecuencia negativa), o alrededor de 1/6 de un ciclo a la derecha, como podemos ver en el gráfico. Ahora vamos a intentar una sinusoide con la misma frecuencia (1), pero en lugar de la amplitud 1 y fase pi / 2, vamos a intentar la amplitud 1,5 y la fase 0. Sabemos que sólo la frecuencia 1 y -1 tendrá una amplitud no nula, Basta con mirarlos: de nuevo la relación de amplitud (15.9377 / 12.0000) es 1.3281 - y en cuanto a la fase se desplaza nuevamente hacia 1.0594. Si estos ejemplos son típicos, podemos predecir el efecto de nuestro sistema (respuesta al impulso .1.2 .3 .4 .5) en cualquier sinusoide con frecuencia 1 - la amplitud se incrementará en un factor de 1,3281 y la fase (frecuencia positiva) se desplazará en 1,0594. Podríamos pasar a calcular el efecto de este sistema sobre sinusoides de otras frecuencias por los mismos métodos. Pero hay una manera mucho más simple, y una que establece el punto general. Dado que la convolución (circular) en el dominio del tiempo significa la multiplicación en el dominio de la frecuencia, de ello se deduce que, en otras palabras, la DFT de la respuesta de impulso es la relación de la DFT de la salida a la DFT de la entrada. En esta relación, los coeficientes DFT son números complejos. Desde abs (c1 / c2) abs (c1) / abs (c2) para todos los números complejos c1, c2, esta ecuación nos dice que el espectro de amplitud de la respuesta de impulso siempre será la relación del espectro de amplitud de la salida a la Del input. En el caso del espectro de fase, ángulo (c1 / c2) ángulo (c1) - ángulo (c2) para todos c1, c2 (con la condición de que las fases que difieren por n2pi se consideran iguales). Por lo tanto, el espectro de fase de la respuesta de impulso siempre será la diferencia entre los espectros de fase de la salida y la entrada (con las correcciones de 2pi que sean necesarias para mantener el resultado entre - pi y pi). Podemos ver los efectos de fase más claramente si desempolvamos la representación de fase, es decir, si añadimos varios múltiplos de 2pi como sea necesario para minimizar los saltos que son producidos por la naturaleza periódica de la función angle (). Aunque la amplitud y la fase se usan generalmente para la presentación gráfica e incluso tabular, ya que son una manera intuitiva de pensar sobre los efectos de un sistema en los diversos componentes de frecuencia de su entrada, los complejos coeficientes de Fourier son más útiles algebraicamente, ya que permiten La expresión simple de la relación El enfoque general que acabamos de ver funcionará con filtros arbitrarios del tipo esbozado, en los que cada muestra de salida es una suma ponderada de algún conjunto de muestras de entrada. Como se mencionó anteriormente, a menudo se les llama filtros de Respuesta de Impulso Finito, ya que la respuesta de impulso es de tamaño finito, oa veces filtros de Promedio Móvil. Podemos determinar las características de respuesta de frecuencia de dicho filtro a partir de la FFT de su respuesta de impulso, y también podemos diseñar nuevos filtros con características deseadas por IFFT a partir de una especificación de la respuesta de frecuencia. Filtros Autoregresivos (IIR) No tendría mucho sentido tener nombres para los filtros FIR a menos que hubiera algún otro tipo de distinción, por lo que aquellos que han estudiado la pragmática no se sorprenderán al saber que hay de hecho otro tipo principal Del filtro lineal tiempo-invariante. Estos filtros a veces se llaman recursivos porque el valor de salidas anteriores (así como entradas anteriores) importa, aunque los algoritmos generalmente se escriben usando construcciones iterativas. También se les llama Filtros de Respuesta a Impulsos Infinitos (IIR), porque en general su respuesta a un impulso permanece para siempre. También a veces se les llama filtros auto-regresivos, porque los coeficientes pueden considerarse como el resultado de hacer una regresión lineal para expresar valores de señal en función de valores de señal anteriores. La relación de los filtros FIR y IIR se puede ver claramente en una ecuación de diferencia de coeficiente constante lineal, es decir, establecer una suma ponderada de salidas igual a una suma ponderada de entradas. Esto es como la ecuación que dimos anteriormente para el filtro FIR causal, excepto que además de la suma ponderada de entradas, también tenemos una suma ponderada de salidas. Si queremos pensar en esto como un procedimiento para generar muestras de salida, necesitamos reorganizar la ecuación para obtener una expresión para la muestra de salida actual y (n), Adoptando la convención de que a (1) 1 (por ejemplo, escalando otra como Y bs), podemos deshacernos del término 1 / a (1): y (n) b (1) x (n) b (2) x (n-1). B (Nb _ {1}) _ {x} (n - nb) - a (2) y (n - 1) -. - a (Na1) y (n-na) Si todos los a (n) distintos de a (1) son cero, esto reduce a nuestro viejo amigo el filtro FIR causal. Este es el caso general de un filtro (causal) LTI, y es implementado por el filtro de función MATLAB. Veamos el caso en que los coeficientes b distintos de b (1) son cero (en lugar del caso FIR, donde a (n) son cero): En este caso, la muestra de salida corriente y (n) se calcula como (N-1), y (n-2), etc. Para tener una idea de lo que sucede con estos filtros, comencemos con el caso en el que: Es decir, la muestra de salida actual es la suma de la muestra de entrada actual y la mitad de la muestra de salida anterior. Bueno, tome un impulso de entrada a través de unos pasos de tiempo, uno a la vez. Debe quedar claro en este punto que podemos escribir fácilmente una expresión para el valor de la muestra n-ésima salida: es justo (si MATLAB contado desde 0, esto sería simplemente .5n). Puesto que lo que estamos calculando es la respuesta de impulso del sistema, hemos demostrado por ejemplo que la respuesta de impulso puede de hecho tener infinitas muestras no cero. Para implementar este filtro trivial de primer orden en MATLAB, podríamos usar filtro. La llamada se verá así: y el resultado es: ¿Es este negocio realmente todavía lineal? Podemos ver esto empíricamente: Para un enfoque más general, considere el valor de una muestra de salida y (n). Por sustitución sucesiva podríamos escribir esto como Esto es como nuestro viejo amigo la forma convolución-suma de un filtro FIR, con la respuesta impulsiva proporcionada por la expresión .5k. Y la longitud de la respuesta de impulso es infinita. Así, los mismos argumentos que utilizamos para demostrar que los filtros FIR eran lineales ahora se aplicarán aquí. Hasta ahora esto puede parecer un montón de alboroto sobre no mucho. ¿Qué es toda esta línea de investigación para bien responder a esta pregunta en etapas, a partir de un ejemplo. No es una gran sorpresa que podamos calcular un exponencial muestreado por multiplicación recursiva. Veamos un filtro recursivo que hace algo menos obvio. Esta vez también lo convierten en un filtro de segundo orden, de modo que la llamada al filtro será de la forma. Permite establecer el segundo coeficiente de salida a2 a -2cos (2pi / 40) y el tercer coeficiente de salida a3 a 1, y mirar La respuesta al impulso. No muy útil como filtro, en realidad, pero genera una onda sinusoidal muestreada (de un impulso) con tres multiplicaciones por muestra. Para entender cómo y por qué lo hace, y cómo se pueden diseñar y analizar los filtros recursivos en El caso más general, tenemos que dar un paso atrás y echar un vistazo a algunas otras propiedades de los números complejos, en el camino a la comprensión de la transformación z.

No comments:

Post a Comment