Tuesday 14 November 2017

Media Móvil Exponencial


El promedio móvil exponencial es un tipo de filtro IIR que es fácil de implementar en C y utiliza recursos mínimos. A diferencia de un promedio móvil simple, no requiere un buffer RAM para almacenar muestras anteriores. Sólo tiene que almacenar un valor (el promedio anterior). Una media móvil exponencial se expresa como la siguiente ecuación: avgn (en alfa) avgn-1 (1-alfa). Implementar esta ecuación utilizando matemáticas en coma flotante es sencillo, pero el uso de variables de punto fijo es un poco complicado. El fragmento de código aquí utiliza enteros con signo de 32 bits para el promedio y los valores de entrada. Los valores intermedios necesitan utilizar matemáticas de 64 bits para evitar errores de desbordamiento. Los valores alfa cercanos a cero representan promedios pesados ​​mientras que el valor alfa de uno no tiene promedios. Comentarios: En la línea donde temp0 se calcula, creo que el final de la línea debe leer (65535 - alfa) De lo contrario un alfa de 1 incorrectamente incluiría el promedio anterior, así como el nuevo valor. Asumir el primer filtro de IIR orden: yn Alpha xn (1 - alpha) yn - 1 ¿Cómo puedo elegir el parámetro alpha st La IIR se aproxima lo mejor posible a la FIR que es la media aritmética de las últimas k muestras: Donde n en k, infty), lo que significa que la entrada para la IIR podría ser más larga que k, y sin embargo Id quisiera tener la mejor aproximación de la Media de las últimas entradas k. Sé que la IIR tiene respuesta de impulso infinita, por lo tanto estoy buscando la mejor aproximación. Id ser feliz para la solución analítica si es para o. ¿Cómo se pueden solucionar estos problemas de optimización dados sólo IIR de primer orden. ¿Se tiene que seguir yn alfa xn (1 - alpha) yn - 1 precisamente ndash Phonon Oct 6 11 at 13:32 Esto está destinado a convertirse en una muy mala aproximación. No puedes permitirte nada más que un ndash IIR de primer orden hacia la izquierda alrededor del 6 de octubre a las 13:42. Tal vez quieras editar tu pregunta para que no uses yn para significar dos cosas diferentes, p. La segunda ecuación mostrada podría leer zn frac xn cdots frac xn-k1, y tal vez quiera decir cuál es exactamente su criterio de cuotas tan bueno como sea posible, por ejemplo. ¿Quiere que vert yn - znvert sea lo más pequeño posible para todo n, o que vert yn - znvert2 sea lo más pequeño posible para todo n. Ndash Dilip Sarwate 6 de octubre a las 13:45 niaren Sé que este es un viejo post por lo que si usted puede recordar: ¿cómo es su función 39f39 derivados I39ve codificado una cosa similar, pero utilizando las complejas funciones de transferencia para FIR (H1) e IIR (H2 ) Y luego haciendo la suma (abs (H1 - H2) 2). He comparado esto con su suma (fj), pero obtengo resultados resultantes diferentes. Pensé que pediría antes de arar a través de las matemáticas. Ndash Dom Jun 7 13 at 13:47 OK, vamos a tratar de obtener lo mejor: begin yn ampamp alpha xn (1 - alpha) yn - 1 ampamp alfa xn (1 - alfa) alfa xn - 1 (1 - alfa) 2 yn - 2 extremo alfa xn (1-alfa) alfa xn-1 (1-alfa) 2 alfa xn-2 (1-alfa) 3 yn-3 de manera que el coeficiente de xn-m sea alfa (1-alfa) m . El siguiente paso es tomar derivados e igualar a cero. Al mirar un diagrama del derivado J para K 1000 y alfa de 0 a 1, parece que el problema (como Ive configurarlo) está mal planteado, porque la mejor respuesta es alfa 0. Creo que hay un error aquí. La forma en que debe ser de acuerdo a mis cálculos es: El uso del siguiente código en MATLAB produce algo equivalente, aunque diferente: De todas formas, esas funciones tienen mínimo. Así que vamos a suponer que realmente sólo se preocupan por la aproximación sobre el soporte (longitud) del filtro FIR. En este caso, el problema de optimización es sólo: J2 (alfa) suma (alpha (1-alfa) m-frac) 2 Trazar J2 (alfa) para varios valores de K versus alfa resulta en la fecha en las parcelas y la tabla a continuación. Para K 8. alfa 0,1533333 Para K 16. alfa 0,08 Para K 24 alfa 0,0533333 Para K 32. alfa 0,04 Para K 40. alfa 0,0333333 Para K 48. alfa 0,0266667 Para K 56. alfa 0,0233333 Para K 64. alfa 0,02 Para K 72. alfa 0.0166667 Las líneas de puntos rojos son 1 / K y las líneas verdes son alfa, el valor de alfa que minimiza J2 (alfa) (elegido de tt alfa 0: .01: 1/3). Theres una discusión agradable de este problema en el procesamiento de señal incorporado con la arquitectura micro de la señal. Aproximadamente entre las páginas 63 y 69. En la página 63, incluye una derivación del filtro de media móvil recursiva exacta (que niaren dio en su respuesta). Por conveniencia con respecto a la siguiente discusión, corresponde a la siguiente ecuación de diferencia: La aproximación Que pone el filtro en la forma que ha especificado requiere asumir que x aproximadamente y, porque (y cito de la página 68) y es el promedio de xn muestras. Esta aproximación nos permite simplificar la ecuación de diferencia precedente de la siguiente manera: Al establecer alfa, llegamos a su forma original, y alfa xn (1-alfa) y, que muestra que el coeficiente que desea (con respecto a esta aproximación) es exactamente 1over (Donde N es el número de muestras). Es esta aproximación el mejor en cierto sentido su ciertamente elegante. Así, como la respuesta de Peters sugiere, la aproximación de un filtro FIR con un filtro recursivo puede ser problemática bajo una norma de mínimos cuadrados. Una extensa discusión sobre cómo resolver este problema en general se puede encontrar en la tesis de JOS, Técnicas para el diseño de filtros digitales y la identificación del sistema con aplicación al violín. Defiende el uso de la Norma de Hankel, pero en los casos en que la respuesta de fase no importa, también cubre el Método Kopecs, que podría funcionar bien en este caso (y utiliza una norma L2). Se puede encontrar una amplia visión general de las técnicas de la tesis. Pueden producir otras aproximaciones interesantes. Un Filtro IIR Exponencial de Media Móvil El filtrado de las variables medidas de circuitos integrados basados ​​en microcontroladores es necesario para rastrear el valor promedio de las señales y para reducir su variabilidad. Como las señales varían en su valor promedio a lo largo del tiempo, el filtro necesita tener un medio para descartar mediciones antiguas mientras incorpora nuevas muestras. El filtro de respuesta de impulso infinito (IIR) de media móvil exponencial ha sido bien comprendido durante muchas décadas y se utiliza ampliamente en el análisis estadístico. Proporciona un medio computacionalmente simple para determinar el valor medio de una variable cuando el modelo subyacente de la variable es desconocido. Si v n es la variable que se filtra, entonces un n-ésimo estimador para el valor medio es: donde a es el coeficiente de peso cuyo valor determina la cantidad de suavizado. Cuanto más cercano a es a 0, mayor es la cantidad de suavizado. En algunos casos el algoritmo en esta forma produce resultados intermedios que pueden llegar a ser grandes. Para implementar esto utilizando una aritmética de enteros de precisión finita, se vuelve a crear en una forma ligeramente diferente en la que los resultados intermedios están limitados por un valor conocido. El coeficiente de peso se representa como un 1-1 / c. Donde c es una potencia de 2. La potencia k puede aumentarse para aumentar la cantidad de suavizado, mientras que la restricción a una potencia de 2 permitirá que las multiplicaciones y divisiones sean implementadas usando operaciones de desplazamiento a la derecha e izquierda muy rápidas en un microprocesador. La cantidad cv av (n) se rastrea para mantener la precisión: Si, por ejemplo, las muestras son cantidades de 8 bits (como se usan en muchos de los algoritmos descritos para los circuitos SMPS descritos aquí), y k se elige 8, entonces la cantidad Cv av (n) se puede representar como un valor de 16 bits sin pérdida de información (precisamente: 8k bits, ver más abajo). Una vez que esto se ha determinado, la cantidad vv (n) se obtiene mediante un simple desplazamiento a la derecha por k lugares. En este punto hay una pérdida de información de menos de 1 lsb magnitud que se puede absorber en las incertidumbres de v n (nota sin embargo que puede haber correlaciones en esta información perdida que puede causar errores sistemáticos). Suponiendo que las variables v i son estadísticamente independientes, el análisis de varianza muestra que se reduce por un factor 1 / (2c). Para los cambios de paso en v n la constante de tiempo es c intervalos de cálculo. El seguimiento del valor medio se vuelve menos preciso a medida que la constante de tiempo aumenta hasta convertirse en comparable a la frecuencia más baja en el modelo de señal subyacente. Límite superior para el valor medio El filtro comienza con vv (0) 0. Todas las mediciones vn están entre 0 y menos que B (donde B es normalmente 256 en nuestros ejemplos). Por lo tanto, el valor máximo de la media amplificada cv av (n) es cB que está dentro de un número de 16 bits en el ejemplo anterior. Ponderación En el caso de que las muestras tengan diferente importancia estadística, es decir, algunas tienen una mayor probabilidad de error que otras, se pueden aplicar pesos para crear una forma más general del filtro. Estos pesos se elegirían para tener una relación inversa a la probabilidad de error. Si w n son los pesos a aplicar, se puede utilizar el siguiente filtro: La segunda ecuación produce una estimación IIR del promedio de los pesos, que se utiliza en la primera ecuación. Esto puede demostrarse que produce una estimación no compartida del promedio de v n con un factor de olvido de (1-a). Como antes, los promedios modificados cw av (n) y cw av (n) v av (n) dados en el lado izquierdo serían rastreados, y las cantidades deseadas extraídas por división simple.

No comments:

Post a Comment