Filtro Promedio De Desplazamiento Matlab Código
Utilizando MATLAB, ¿cómo puedo encontrar el promedio móvil de 3 días de una columna específica de una matriz y añadir el promedio móvil a esa matriz? Estoy tratando de calcular el promedio móvil de 3 días de abajo hacia arriba de la matriz. He proporcionado mi código: Dada la siguiente matriz a y máscara: He intentado implementar el comando conv pero estoy recibiendo un error. Aquí está el comando conv que he estado tratando de usar en la segunda columna de la matriz a: La salida que deseo se da en la siguiente matriz: Si usted tiene alguna sugerencia, lo agradecería mucho. Gracias Por la columna 2 de la matriz a, estoy calculando el promedio móvil de 3 días de la siguiente manera y colocando el resultado en la columna 4 de la matriz a (I renombrado matriz a como 39desiredOutput39 sólo por ilustración). El promedio de 3 días de 17, 14, 11 es 14 el promedio de 3 días de 14, 11, 8 es 11 el promedio de 3 días de 11, 8, 5 es 8 y el promedio de 3 días de 8, 5, 2 es 5. No hay valor en las 2 filas inferiores para la cuarta columna porque el cálculo para la media móvil de 3 días comienza en la parte inferior. La salida 39valid39 no se mostrará hasta al menos 17, 14 y 11. Esperamos que esto tiene sentido ndash Aaron Jun 12 13 at 1:28 1 Respuesta En general, sería de ayuda si se muestra el error. En este caso usted está haciendo dos cosas mal: Primero su convolución necesita ser dividido por tres (o la longitud de la media móvil) Segundo, observe el tamaño de c. Usted no puede apenas caber c en a. La forma típica de obtener un promedio móvil sería usar lo mismo: pero eso no se parece a lo que quieres. La respuesta de frecuencia de un sistema LTI es la DTFT de la respuesta de impulso. La respuesta de impulso de una media móvil de L-muestra es. Dado que el filtro de media móvil es FIR, la respuesta de frecuencia se reduce a la suma finita Podemos usar la identidad muy útil para escribir la respuesta de frecuencia como donde hemos dejado ae menos jomega. N 0 y M L menos 1. Podemos estar interesados en la magnitud de esta función para determinar qué frecuencias pasan a través del filtro sin atenuación y cuáles son atenuadas. A continuación se muestra un gráfico de la magnitud de esta función para L 4 (rojo), 8 (verde) y 16 (azul). El eje horizontal varía de cero a pi radianes por muestra. Observe que en los tres casos, la respuesta de frecuencia tiene una característica de paso bajo. Un componente constante (frecuencia cero) en la entrada pasa a través del filtro sin atenuación. Ciertas frecuencias más altas, como pi / 2, son completamente eliminadas por el filtro. Sin embargo, si la intención era diseñar un filtro de paso bajo, entonces no lo hemos hecho muy bien. Algunas de las frecuencias más altas se atenúan sólo por un factor de 1/10 (para la media móvil de 16 puntos) o 1/3 (para la media móvil de cuatro puntos). Podemos hacer mucho mejor que eso. La gráfica anterior se creó mediante el siguiente código Matlab: omega 0: pi / 400: pi H4 (1/4) (1-exp (-iomega4)) ./ (1-exp (-iomega)) H8 (1/8 (1-exp (-iomega8)) ./ (1-exp (-iomega)) trama (omega , Abs (H4) abs (H8) abs (H16)) (0, pi, 0, 1) Copia de copyright 2000 - Universidad de California, BerkeleyCreated el miércoles, 08 de octubre de 2008 20:04 Actualizado el Jueves, 14 de marzo 2013 01:29 Escrito por Batuhan Osmanoglu Hits: 40477 Media móvil En Matlab A menudo me encuentro 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
Comments
Post a Comment