Saturday 17 December 2016

Filtro De Media Móvil Centrado Matlab

Cuando se calcula una media móvil en ejecución, colocar el promedio en el período de tiempo medio tiene sentido En el ejemplo anterior se calculó el promedio de los primeros 3 períodos de tiempo y lo colocó al lado del período 3. Podríamos haber colocado el promedio en el medio de la Intervalo de tiempo de tres períodos, es decir, al lado del período 2. Esto funciona bien con períodos de tiempo impares, pero no tan bueno para incluso períodos de tiempo. Entonces, ¿dónde colocaríamos el primer promedio móvil cuando M 4 Técnicamente, el promedio móvil caería en t 2,5, 3,5. Para evitar este problema, suavizar las MA utilizando M 2. Así, suavizar los valores suavizados Si la media de un número par de términos, tenemos que suavizar los valores suavizados La siguiente tabla muestra los resultados utilizando M 4puting una media corriente de un simple 1 - D vector de datos parece bastante simple. De hecho, la documentación de MATLAB para FILTER alegra algo como: Puede usar filtro para encontrar un promedio de ejecución sin usar un bucle for. Este ejemplo encuentra el promedio de ejecución de un vector de 16 elementos, usando un tamaño de ventana de 3: Para mis propósitos, hay dos cosas molestas sobre este resultado: el punto de salida n es el promedio de los puntos de entrada n - (windowSize-1)..n (es decir, no centrado, como lo demuestra el desplazamiento horizontal) y los puntos a la izquierda de los datos disponibles se tratan como ceros. FILTFILT trata ambos temas, pero tiene otros inconvenientes. Su parte de la caja de herramientas de procesamiento de señales, y no se ocupa bien con NaNs (que Id como excluido de la media). Algunas personas en FEX, obviamente, tenía las mismas frustraciones, pero me parece extraño que algo tan simple requiere código personalizado. Cualquier cosa que estoy faltando aquí pidió 10 de agosto 10 a las 21:39 Hmm. Hay incluso una manera de hacer el relleno y obtener el promedio es parece que si dicen que 3 contenedores están cayendo del borde en comparación con 1, tendría que pad con diferentes valores con el fin de obtener el promedio correcto para el primer contenedor. Específicamente, es necesario pad con el promedio de los contenedores válidos, que depende del punto bajo consideración. Por lo tanto, no estoy seguro de que esto sea posible con el padding ndash Matt Mizumi Aug 11 10 at 4: 06Moving Average La función resultmovingmean (data, window, dim, option) calcula un promedio móvil centrado de los datos de la matriz de datos usando el tamaño de ventana especificado en window in Dim dimensión, utilizando el algoritmo especificado en la opción. Dim y la opción son las entradas opcionales y por defecto a 1. Dim y la opción de entradas opcionales se pueden omitir por completo o se puede reemplazar con a. Por ejemplo movingmean (data, window) dará los mismos resultados que movingmean (data, window, 1,1) o movingmean (data, window ,, 1). El tamaño y la dimensión de la matriz de datos de entrada sólo están limitados por el tamaño máximo de la matriz para la plataforma. La ventana debe ser un entero y debe ser impar. Si la ventana es uniforme entonces se redondea abajo al siguiente número impar más bajo. La función calcula el promedio móvil que incorpora un punto central y (ventana-1) / 2 elementos antes y después en la dimensión especificada. En los bordes de la matriz se reduce el número de elementos antes o después de modo que el tamaño real de la ventana sea menor que la ventana especificada. La función se divide en dos partes, un algoritmo 1d-2d y un algoritmo 3D. Esto se hizo para optimizar la velocidad de la solución, especialmente en matrices más pequeñas (es decir, 1000 x 1). Además, se proporcionan varios algoritmos diferentes para el problema 1d-2d y 3d, ya que en ciertos casos el algoritmo por defecto no es el más rápido. Esto ocurre típicamente cuando la matriz es muy ancha (es decir 100 x 100000 o 10 x 1000 x 1000) y el promedio móvil se calcula en la dimensión más corta. El tamaño en el que el algoritmo predeterminado es más lento dependerá de la computadora. MATLAB 7.8 (R2009a) Etiquetas para este archivo Por favor, inicie sesión para etiquetar archivos. Inicia sesión para añadir un comentario o calificación. Comentarios y Calificaciones (8) La función se ocupa de los extremos cortando la parte trasera o delantera de la ventana y pasando a una media móvil principal o descendente en lugar de una media centrada. Para ir con el ejemplo que dio en su comentario si el tamaño de la ventana es 3 entonces en un centro de 1 la media de la función de datos de los puntos 1 y 2 en un centro de 2 puntos 1, 2 y 3 se promedian en un centro de 9 Los puntos 8, 9 y 10 se promedian y en un centro de 10 (se supone que el vector tiene 10 entradas) los puntos 9 y 10 se promedian. ¿Cómo se mueve con los extremos Se empieza con un tamaño de ventana que abarca sólo el punto 1 en 1, luego 3 puntos en el punto 2, luego aumentando en el tamaño de la ventana hasta que el tamaño de la ventana sea el especificado en la entrada de la función Gracias. Bonito y simple. Gracias. Buen trabajo Muy útil como dijo Stephan Wolf. Justo lo que estaba buscando. Media móvil centrada que es capaz de trabajar en una trama en todo el ancho, sin tener que buscar el tamaño de ventana del filtro y mover el principio. Great MathWorks Acelerar el ritmo de la ingeniería y la ciencia MathWorks es el desarrollador líder de software de computación matemática para ingenieros y científicos.


No comments:

Post a Comment