Monday, 9 October 2017

Ejemplo De Matlab Medio Móvil


29 de septiembre de 2013 Media móvil por convolución ¿Qué es la media móvil y para qué sirve? ¿Cómo se realiza el promedio móvil mediante la convolución? La media móvil es una operación sencilla que suele usarse para suprimir el ruido de una señal: ajustamos el valor de cada punto a la Promedio de los valores en su vecindario. Por una fórmula: Aquí x es la entrada yy es la señal de salida, mientras que el tamaño de la ventana es w, se supone que es impar. La fórmula anterior describe una operación simétrica: las muestras se toman de ambos lados del punto real. A continuación se muestra un ejemplo de la vida real. El punto en el que se coloca la ventana es en realidad rojo. Valores fuera de x se supone que son ceros: Para jugar y ver los efectos de la media móvil, echar un vistazo a esta demostración interactiva. Cómo hacerlo por convolución Como puede haber reconocido, calcular el promedio móvil simple es similar a la convolución: en ambos casos se desliza una ventana a lo largo de la señal y se resumen los elementos de la ventana. Por lo tanto, darle un intento de hacer lo mismo mediante la convolución. Utilice los siguientes parámetros: La salida deseada es: Como primera aproximación, intentemos lo que obtenemos convolucionando la señal x con el k kernel siguiente: La salida es exactamente tres veces mayor que la esperada. También puede verse que los valores de salida son el resumen de los tres elementos de la ventana. Es porque durante la convolución la ventana se desliza a lo largo, todos los elementos en él se multiplican por uno y luego se resumen: yk 1 cdot x 1 cdot x 1 cdot x Para obtener los valores deseados de y. La salida será dividida por 3: Por una fórmula que incluye la división: Pero no sería óptimo hacer la división durante la convolución Aquí viene la idea reorganizando la ecuación: Así que usaremos el k kernel siguiente: De esta manera vamos a Obtener la salida deseada: En general: si queremos hacer el promedio móvil por convolución teniendo un tamaño de ventana de w. Vamos a utilizar el k kernel siguiente: Una función simple que hace el promedio móvil es: Un ejemplo de uso es: Estoy tratando de completar un proyecto de asignación matlab con la siguiente pregunta: Escribir una función llamada movingaverage que toma un escalar llamado x como una entrada Argumento y devuelve un escalar. La función utiliza un búfer para contener entradas previas, y el búfer puede contener un máximo de 25 entradas. Específicamente, la función debe guardar las más recientes 25 entradas en un vector (el búfer). Cada vez que se llama a la función, copia el argumento de entrada en un elemento del búfer. Si ya hay 25 entradas almacenadas en el búfer, descarta el elemento más antiguo y guarda el actual en el búfer. Después de haber almacenado la entrada en el búfer, devuelve la media de todos los elementos del búfer. La solución que ofrezco es la siguiente: Según el nivelador automático mi función funciona correctamente cuando los valores 1-50 pasan consecutivamente, pero falla cuando los valores de una onda senoidal ruidosa pasan consecutivamente (lo que me ha sido informado que podría ser debido a algunos Tipo de un error de redondeo). Estaría agradecido si alguno de ustedes pudiera proporcionarme algunos consejos sobre los posibles pasos de error en mi código (adjunto anteriormente). Gracias de antemanoCreated el miércoles, 08 de octubre de 2008 20:04 Actualizado por última vez el Jueves, 14 de Marzo de 2013 01:29 Escrito por Batuhan Osmanoglu Hits: 40521 Media móvil En Matlab A menudo me veo en necesidad de promediar los datos que tengo para reducir el Ruido un poco. Escribí funciones de pareja para hacer exactamente lo que quiero, pero matlabs construido en función de filtro funciona bastante bien también. Aquí Ill escribir sobre 1D y 2D promedio de los datos. El filtro 1D se puede realizar usando la función de filtro. La función de filtro requiere al menos tres parámetros de entrada: el coeficiente de numerador para el filtro (b), el coeficiente de denominador para el filtro (a) y los datos (X), por supuesto. Un filtro de promedio en funcionamiento puede definirse simplemente por: Para datos 2D podemos utilizar la función Matlabs filter2. Para obtener más información sobre cómo funciona el filtro, puede escribir: Aquí hay una implementación rápida y sucia de un filtro de 16 por 16 de promedio móvil. Primero tenemos que definir el filtro. Puesto que todo lo que queremos es la contribución igual de todos los vecinos, podemos usar la función unos. Dividimos todo con 256 (1616) ya que no queremos cambiar el nivel general (amplitud) de la señal. Para aplicar el filtro simplemente podemos decir lo siguiente A continuación se presentan los resultados de la fase de un interferograma SAR. En este caso, Range está en el eje Y y Azimuth está asignado en el eje X. El filtro tenía 4 píxeles de ancho en Rango y 16 píxeles de ancho en Azimut. Ingresar Buscar

No comments:

Post a Comment