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. En su lugar, se ve obligado a utilizar un par de líneas: Promedios móviles Si esta información se representa en un gráfico, se ve así: Esto muestra que hay una amplia variación en el número de visitantes en función de la temporada. Hay mucho menos en el otoño y el invierno que la primavera y el verano. Sin embargo, si queríamos ver una tendencia en el número de visitantes, podríamos calcular una media móvil de 4 puntos. Hacemos esto encontrando el número promedio de visitantes en los cuatro trimestres de 2005: Entonces encontramos el número promedio de visitantes en los últimos tres trimestres de 2005 y primer trimestre de 2006: Luego los dos últimos trimestres de 2005 y los dos primeros trimestres De 2006: Tenga en cuenta que el último promedio que podemos encontrar es para los dos últimos trimestres de 2006 y los dos primeros trimestres de 2007. Trazamos las medias móviles en un gráfico, asegurándose de que cada promedio se representa en el centro de los cuatro trimestres En muchos experimentos en ciencia, las amplitudes verdaderas de la señal (valores del eje de y) cambian bastante suavemente en función de los valores del eje de x, mientras que muchos Los tipos de ruido se ven como cambios rápidos y aleatorios en la amplitud de punto a punto dentro de la señal. En esta última situación, puede ser útil en algunos casos intentar reducir el ruido mediante un proceso llamado suavizado. En el suavizado, los puntos de datos de una señal se modifican de manera que se reducen los puntos individuales que son más altos que los puntos inmediatamente adyacentes (presumiblemente debido al ruido) y los puntos que son más bajos que los puntos adyacentes se incrementan. Esto conduce naturalmente a una señal más lisa (y una respuesta más lenta del paso a los cambios de la señal). Mientras la verdadera señal subyacente sea realmente suave, entonces la señal verdadera no será muy distorsionada por suavizado, pero el ruido de alta frecuencia se reducirá. En términos de los componentes de frecuencia de una señal, una operación de suavizado actúa como un filtro de paso bajo. Reduciendo los componentes de alta frecuencia y pasando los componentes de baja frecuencia con pocos cambios. Algoritmos de suavizado. La mayoría de los algoritmos de suavizado se basan en la técnica de cambio y multiplicación, en la que un grupo de puntos adyacentes en los datos originales se multiplican punto por punto por un conjunto de números (coeficientes) que definen la forma suave, los productos se suman y Dividido por la suma de los coeficientes, que se convierte en un punto de datos suavizados, entonces el conjunto de coeficientes se desplaza un punto por debajo de los datos originales y se repite el proceso. El algoritmo de suavizado más simple es el carrocería rectangular o la media deslizante no ponderada suave que simplemente reemplaza cada punto de la señal con la media de m puntos adyacentes, donde m es un entero positivo llamado el ancho liso. Por ejemplo, para un punto liso de 3 puntos (m 3): para j 2 a n-1, donde S j el j-ésimo punto en la señal suavizada, Y j el j-ésimo punto en la señal original, yn es el total Número de puntos en la señal. Pueden construirse operaciones lisas similares para cualquier anchura suave deseada, m. Usualmente m es un número impar. Si el ruido en los datos es ruido blanco (es decir, distribuido uniformemente en todas las frecuencias) y su desviación estándar es D. Entonces la desviación estándar del ruido que queda en la señal después de la primera pasada de una media lisa no ponderada será aproximadamente s sobre la raíz cuadrada de m (D / sqrt (m)), donde m es la anchura lisa. A pesar de su simplicidad, este suave es realmente óptimo para el problema común de reducir el ruido blanco, manteniendo la respuesta de paso más nítida. La respuesta a un cambio de escalón es de hecho lineal. Por lo que este filtro tiene la ventaja de responder completamente sin efecto residual con su tiempo de respuesta. Que es igual al ancho liso dividido por la tasa de muestreo. La lisa triangular es como la lisa rectangular, arriba, excepto que implementa una función de suavizado ponderada. Para un 5-punto liso (m 5): para j 3 a n-2, y similarmente para otras anchuras suaves (vea la hoja de cálculo UnitGainSmooths. xls). En ambos casos, el entero en el denominador es la suma de los coeficientes en el numerador, lo que da como resultado una unidad de ganancia lisa que no tiene efecto sobre la señal cuando es una línea recta y que preserva el área bajo picos. A menudo es útil aplicar una operación de suavizado más de una vez, es decir, suavizar una señal ya suavizada, para construir láminas más largas y complicadas. Por ejemplo, el triangular de 5 puntos lisos arriba es equivalente a dos pasadas de un liso rectangular de 3 puntos. Tres pasadas de un resultado liso rectangular de 3 puntos en un pseudo-gaussiano de 7 puntos o un pajar liso, para el cual los coeficientes están en la proporción 1: 3: 6: 7: 6: 3: 1. La regla general es que n pasos de un w-smooth de ancho da lugar a un ancho liso combinado de n w - n 1. Por ejemplo, 3 pasos de un 17-punto liso da lugar a un 49-punto liso. Estos lisos de múltiples pasadas son más eficaces para reducir el ruido de alta frecuencia en la señal que un liso rectangular pero presentan una respuesta de paso más lenta. En todas estas suavidades, se elige la anchura del m liso para que sea un entero impar, de modo que los coeficientes lisos están equilibrados simétricamente alrededor del punto central, lo cual es importante porque preserva la posición del eje x de los picos y otras características en el señal. (Esto es especialmente crítico para aplicaciones analíticas y espectroscópicas porque las posiciones de pico son a menudo objetivos de medición importantes). Obsérvese que suponemos aquí que los intervalos del eje x de la señal son uniformes, es decir, que la diferencia entre los valores del eje x de los puntos adyacentes es la misma a lo largo de la señal. Esto también se asume en muchas de las otras técnicas de procesamiento de señal descritas en este ensayo, y es una característica muy común (pero no necesaria) de señales que son adquiridas por equipos automatizados y computarizados. El Savitzky-Golay liso se basa en el ajuste de cuadrados mínimos de polinomios a segmentos de los datos. El algoritmo se discute en wire. tu-bs. de/OLDWEB/mameyer/cmr/savgol. pdf. Comparado con las suavidades de media deslizante, el Savitzky-Golay liso es menos eficaz en la reducción del ruido, pero más eficaz en retener la forma de la señal original. Es capaz de diferenciación, así como suavizado. El algoritmo es más complejo y los tiempos computacionales son mayores que los tipos suaves discutidos anteriormente, pero con computadoras modernas la diferencia no es significativa y el código en varios idiomas está ampliamente disponible en línea. Consulte SmoothingComparison. html. La forma de cualquier algoritmo de suavizado se puede determinar aplicando esa función suave a delta. Una señal que consiste en todos los ceros a excepción de un punto, como lo demuestra el simple script de Matlab / Octava DeltaTest. m. Reducción de ruido . Suavizado por lo general reduce el ruido en una señal. Si el ruido es blanco (es decir, uniformemente distribuido en todas las frecuencias) y su desviación estándar es D. Entonces la desviación estándar del ruido que queda en la señal después de un paso de una lisa rectangular será aproximadamente D / sqrt (m), donde m es el ancho liso. Si se utiliza una lisa triangular, el ruido será ligeramente menor, alrededor de D 0,8 / sqrt (m). Las operaciones de suavizado se pueden aplicar más de una vez: es decir, una señal previamente suavizada se puede suavizar de nuevo. En algunos casos esto puede ser útil si hay una gran cantidad de ruido de alta frecuencia en la señal. Sin embargo, la reducción de ruido para el ruido blanco es menor en cada sucesivo suave. Por ejemplo, tres pasadas de un liso rectangular reducen el ruido blanco por un factor de aproximadamente D 0,7 / sqrt (m), sólo una ligera mejoría en dos pasadas. La distribución de frecuencia del ruido, designada por el color de ruido. Afecta sustancialmente la capacidad de suavizado para reducir el ruido. La función Matlab / Octave NoiseColorTest. m compara el efecto de un vehículo frigorífico de 100 puntos (promedio deslizante no ponderado) sobre la desviación estándar del ruido blanco, rosa y azul, todos los cuales tienen una desviación estándar sin pulir original de 1,0. Debido a que el suavizado es un proceso de filtro de paso bajo, produce menos ruido de baja frecuencia (rosa y rojo) y ruido de alta frecuencia (azul) más que el ruido blanco. Tenga en cuenta que el cálculo de la desviación estándar es independiente del orden de los datos y por lo tanto de su clasificación de distribución de frecuencia un conjunto de datos no cambia su desviación estándar. La desviación estándar de una onda sinusoidal es independiente de su frecuencia. El suavizado, sin embargo, cambia tanto la distribución de frecuencia como la desviación estándar de un conjunto de datos. Efectos finales y el problema de los puntos perdidos. Obsérvese en las ecuaciones anteriores que el punto 3 rectangular liso está definido sólo para j 2 a n-1. No hay suficientes datos en la señal para definir un liso completo de 3 puntos para el primer punto de la señal (j 1) o para el último punto (j n). Porque no hay puntos de datos antes del primer punto o después del último punto. (Del mismo modo, un 5-punto suave se define sólo para j 3 a n-2, y por lo tanto un suave no se puede calcular para los dos primeros puntos o para los dos últimos puntos). En general, para una m-anchura lisa, habrá (m -1) / 2 puntos al principio de la señal y (m -1) / 2 puntos al final de la señal para los cuales una m completa - width smooth No se puede calcular. Qué hacer Hay dos enfoques. Una es aceptar la pérdida de puntos y recortar esos puntos o reemplazarlos con ceros en la señal suave. (Ese es el enfoque adoptado en la mayoría de las figuras en este documento). El otro enfoque consiste en utilizar lisos progresivamente más pequeños en los extremos de la señal, por ejemplo para usar 2, 3, 5, 7. puntos lisos para los puntos de señal 1, 2, 3 y 4. y para los puntos n, n-1 , N - 2, n - 3. respectivamente. La aproximación posterior puede ser preferible si los bordes de la señal contienen información crítica, pero aumenta el tiempo de ejecución. La función fastsmooth descrita a continuación puede utilizar cualquiera de estos dos métodos. Ejemplos de suavizado. Un ejemplo simple de suavizado se muestra en la Figura 4. La mitad izquierda de esta señal es un pico ruidoso. La mitad derecha es el mismo pico después de someterse a un algoritmo de suavizado triangular. El ruido se reduce considerablemente mientras que el pico en sí mismo apenas cambia. El suavizado aumenta la relación señal-ruido y permite que las características de la señal (posición de pico, altura, anchura, área, etc.) se midan con mayor precisión mediante inspección visual. Figura 4. La mitad izquierda de esta señal es un pico ruidoso. La mitad derecha es el mismo pico después de someterse a un algoritmo de suavizado. El ruido se reduce considerablemente, mientras que el pico en sí mismo apenas cambia, lo que facilita la medición de la posición del pico, la altura y el ancho directamente por estimación gráfica o visual (pero no mejora las mediciones hechas por los métodos de mínimos cuadrados ver más abajo). Cuanto mayor sea el ancho liso, mayor será la reducción del ruido, pero también mayor será la posibilidad de que la señal sea distorsionada por la operación de suavizado. La elección óptima del ancho liso depende de la anchura y forma de la señal y del intervalo de digitalización. Para señales de tipo pico, el factor crítico es la relación de suavizado. La relación entre la anchura l suave y el número de puntos en la media anchura del pico. En general, el aumento de la relación de suavizado mejora la relación señal-ruido, pero provoca una reducción de la amplitud y un aumento en el ancho de banda del pico. Las figuras anteriores muestran ejemplos del efecto de tres anchos lisos diferentes sobre picos ruidosos de forma gaussiana. En la figura de la izquierda, el pico tiene una (verdadera) altura de 2,0 y hay 80 puntos en la media anchura del pico. La línea roja es el pico sin arrugas original. Las tres líneas verdes superpuestas son el resultado de suavizar este pico con una anchura triangular (de arriba a abajo) de 7, 25 y 51 puntos. Debido a que la anchura del pico es de 80 puntos, las relaciones lisas de estos tres lisos son 7/80 0,09, 25/80 0,31 y 51/80 0,64, respectivamente. A medida que aumenta la anchura suave, el ruido se reduce progresivamente, pero la altura del pico también se reduce ligeramente. Para el mayor liso, el ancho del pico se incrementa ligeramente. En la figura de la derecha, el pico original (en rojo) tiene una altura real de 1,0 y un ancho medio de 33 puntos. (También es menos ruidoso que el ejemplo de la izquierda.) Las tres líneas verdes superpuestas son los resultados de las mismas tres lisas triangulares de ancho (de arriba a abajo) 7, 25 y 51 puntos. Pero como el ancho de pico en este caso es de sólo 33 puntos, las relaciones lisas de estos tres lisos son mayores -0,21, 0,76 y 1,55, respectivamente. Se puede ver que el efecto de distorsión de pico (reducción de la altura del pico y aumento del ancho del pico) es mayor para el pico más estrecho porque las relaciones lisas son más altas. Razones suaves de más de 1,0 se utilizan raramente debido a la distorsión de pico excesiva. Obsérvese que incluso en el peor de los casos, las posiciones de los picos no se efectúan (suponiendo que los picos originales eran simétricos y no superpuestos por otros picos). Si conservar la forma del pico es más importante que optimizar la relación señal-ruido, el Savitzky-Golay tiene la ventaja sobre las superficies lisas de deslizamiento. En todos los casos, el área total bajo el pico permanece sin cambios. Si las anchuras de pico varían sustancialmente, una lisa adaptable. Que permite que la anchura suave varíe a través de la señal, puede ser usada. El problema con el suavizado es que a menudo es menos beneficioso de lo que podría pensar. Es muy importante señalar que los resultados de alisado como se ilustra en la figura anterior pueden ser engañosamente impresionantes porque emplean una sola muestra de una señal ruidosa que se suaviza a diferentes grados. Esto hace que el espectador subestime la contribución del ruido de baja frecuencia, que es difícil de estimar visualmente porque hay tan pocos ciclos de baja frecuencia en el registro de señal. Este problema se puede visualizar registrando un número de muestras independientes de una señal ruidosa consistente en un único pico, como se ilustra en las dos figuras siguientes. Estas figuras muestran diez parcelas superpuestas con el mismo pico pero con ruido blanco independiente, cada una trazada con un color de línea diferente, sin pulir a la izquierda y alisada a la derecha. La inspección de las señales suavizadas a la derecha muestra claramente la variación en la posición de pico, altura y anchura entre las 10 muestras causadas por el ruido de baja frecuencia que queda en las señales suavizadas. Sin el ruido, cada pico tendría una altura de pico de 2, centro de pico a 500 y ancho de 150. Sólo porque una señal parece suave no significa que no hay ruido. El ruido de baja frecuencia que permanece en las señales después de suavizar aún interferirá con la medición precisa de la posición, altura y ancho del pico. (Los scripts de generación debajo de cada figura requieren que las funciones gaussian. m, whitenoise. m y fastsmooth. m se descarguen de tinyurl / cey8rwh.) Debe quedar claro que el suavizado puede rara vez eliminar completamente el ruido, ya que la mayoría del ruido se extiende sobre Una amplia gama de frecuencias y suavizado simplemente reduce el ruido en parte de su rango de frecuencia. Sólo para algunos tipos muy específicos de ruido (por ejemplo, el ruido de frecuencia discreta o picos de un solo punto) hay esperanza de algo cercano a la eliminación completa del ruido. La figura a la derecha de abajo es otro ejemplo de señal que ilustra algunos de estos principios. La señal consiste en dos picos gaussianos, uno localizado en x50 y el segundo en x150. Ambos picos tienen una altura de pico de 1,0 y una media ancho de pico de 10, y un ruido blanco aleatorio normalmente distribuido con una desviación estándar de 0,1 se ha añadido a toda la señal. El intervalo de muestreo del eje x, sin embargo, es diferente para los dos picos su 0.1 para el primer pico (de x0 a 100) y 1.0 para el segundo pico (de x100 a 200). Esto significa que el primer pico se caracteriza por diez veces más puntos que el segundo pico. Puede parecer que el primer pico es más ruidoso que el segundo, pero eso es sólo una ilusión de la relación señal-ruido para ambos picos es de 10. El segundo pico parece menos ruidoso sólo porque hay menos muestras de ruido allí y tendemos a subestimar La dispersión de muestras pequeñas. El resultado de esto es que cuando la señal se suaviza, el segundo pico es mucho más probable que sea distorsionado por el suave (se hace más corto y más ancho) que el primer pico. El primer pico puede tolerar una anchura lisa mucho más ancha, dando por resultado un mayor grado de reducción del ruido. (De manera similar, si ambos picos se miden con el método de ajuste de la curva de mínimos cuadrados, el ajuste del primer pico es más estable con el ruido y los parámetros medidos de ese pico serán aproximadamente 3 veces más precisos que el segundo pico, Son 10 veces más puntos de datos en ese pico, y la precisión de medición mejora aproximadamente con la raíz cuadrada del número de puntos de datos si el ruido es blanco). Puede descargar el archivo de datos udx en formato TXT o en formato Matlab MAT. Optimización del alisado. A medida que aumenta la relación de suavizado, el ruido se reduce rápidamente al principio, luego más lentamente, y la altura del pico también se reduce, lentamente al principio, luego más rápidamente. El resultado es que la señal a ruido aumenta rápidamente al principio, luego alcanza un máximo. Esto se ilustra en la figura de la izquierda para un pico gaussiano con ruido blanco (producido por este script Matlab / Octave). Esto también muestra que la mayor parte de la reducción de ruido se debe a componentes de alta frecuencia del ruido, mientras que gran parte del ruido de baja frecuencia permanece en la señal incluso cuando se suaviza. Cuál es la mejor relación suave Depende del propósito de la medición del pico. Si el objetivo final de la medición es medir la altura o ancho real del pico, entonces se deben utilizar relaciones suaves por debajo de 0,2 y se prefiere la lisa Savitzky-Golay. Medir la altura de los picos ruidosos se hace mejor mediante la curva de ajuste de los datos sin pulir en lugar de tomar el máximo de los datos suavizados (véase CurveFittingC. htmlSmoothing). Pero si el objetivo de los medidores es medir la posición del pico (valor del eje x del pico), se pueden emplear relaciones lisas mucho más grandes si se desea, porque el suavizado tiene poco efecto sobre la posición del pico (a menos que el pico sea asimétrico o el Aumento en el ancho de pico es tanto que hace que los picos adyacentes se solapen). En aplicaciones de análisis cuantitativo basadas en la calibración por muestras estándar, la reducción de altura de pico causada por el alisamiento no es tan importante. Si se aplican las mismas operaciones de tratamiento de señales a las muestras y a las normas, la reducción de la altura de pico de las señales estándar será exactamente la misma que la de las señales de muestra y el efecto se cancelará exactamente. En estos casos se pueden utilizar anchos lisos de 0,5 a 1,0, si es necesario, para mejorar aún más la relación señal-ruido, como se muestra en la figura de la izquierda (para un simple liso rectangular medio deslizante). En la práctica química analítica, las mediciones absolutas de la altura del pico son raramente requeridas, la calibración contra soluciones estándar es la regla. (Recuerde: el objetivo del análisis cuantitativo no es medir una señal, sino medir la concentración del analito). Sin embargo, es muy importante aplicar exactamente los mismos pasos de procesamiento de señal a las señales estándar que a las señales de muestra, De lo contrario podría producirse un error sistemático de gran magnitud. Para una comparación más detallada de los cuatro tipos de suavizado considerados anteriormente, consulte SmoothingComparison. html. (A) por razones estéticas, preparar un gráfico más atractivo o más dramático de una señal para inspección visual o publicaciones, específicamente para enfatizar el comportamiento a largo plazo a corto plazo. O b) si la señal se analizará posteriormente mediante un método que se degradaría por la presencia de demasiado ruido de alta frecuencia en la señal, por ejemplo si las alturas de los picos deben determinarse visualmente o gráficamente o utilizando la señal MAX, o si la localización de máximos, mínimos o puntos de inflexión en la señal se determinará automáticamente mediante la detección de cruces de cero en las derivadas de la señal. La optimización de la cantidad y el tipo de suavizado es muy importante en estos casos (véase Differentiation. htmlSmoothing). Pero en general, si una computadora está disponible para realizar mediciones cuantitativas, es mejor usar métodos de mínimos cuadrados en los datos no suavizados, en lugar de estimaciones gráficas sobre datos suavizados. Si un instrumento comercial tiene la opción de suavizar los datos para usted, su mejor para desactivar el suavizado que y grabar los datos sin pulir siempre se puede suavizar más tarde para la presentación visual y será mejor utilizar los datos sin pulir para un mínimo de cuadrados Instalación u otro tipo de procesamiento que desee realizar posteriormente. El suavizado puede usarse para localizar picos, pero no debe usarse para medir picos. Se debe tener cuidado en el diseño de algoritmos que empleen el suavizado. Por ejemplo, en una técnica popular para el pico de hallazgo y medición. Los picos se localizan mediante la detección de cruces descendentes de cero en la primera derivada suavizada. Pero la posición, la altura y el ancho de cada pico se determinan mediante el ajuste de curvas por mínimos cuadrados de un segmento de datos sin pulir originales en la proximidad del cruce por cero. De esta manera, incluso si se requiere un suavizado intenso para proporcionar una discriminación fiable contra los picos de ruido, los parámetros de pico extraídos por el ajuste de curva no se distorsionan por el suavizado. (A) el alisamiento no mejorará significativamente la precisión de la medición de parámetros mediante mediciones de mínimos cuadrados entre muestras de señales independientes independientes, (b) todos los algoritmos de suavizado son al menos ligeramente con pérdidas, implicando al menos algún cambio en la forma y amplitud de la señal, Es más difícil evaluar el ajuste inspeccionando los residuos si los datos son suavizados, ya que el ruido suavizado puede confundirse con una señal real. Y (d) suavizar la señal subestima seriamente los errores de los parámetros predichos por los cálculos de propagación del error y el método bootstrap. Tratar con picos y outliers. A veces las señales están contaminadas con picos muy altos o estrechos que ocurren a intervalos aleatorios y con amplitudes aleatorias, pero con anchuras de sólo uno o algunos puntos. No sólo se ve feo, sino que también altera los supuestos de los mínimos cuadrados de los cálculos, ya que no es normalmente distribuidos por el ruido aleatorio. Este tipo de interferencia es difícil de eliminar utilizando los métodos de suavizado anteriores sin distorsionar la señal. Sin embargo, un filtro mediano, que reemplaza cada punto en la señal con la mediana (en vez de la media) de m puntos adyacentes, puede eliminar completamente los picos estrechos con poco cambio en la señal, si el ancho de los picos es sólo uno o un Pocos puntos e igual o menor que m. Ver en. wikipedia. org/wiki/Medianfilter. La función killspikes. m es otra función de eliminación de picos que utiliza un enfoque diferente, que localiza y elimina los picos y parches sobre ellos mediante interpolación lineal de la señal antes y después. A diferencia de las lisas convencionales, estas funciones pueden aplicarse de manera rentable antes de las funciones de ajuste de los mínimos cuadrados. (Por otro lado, si son los picos que son en realidad la señal de interés, y otros componentes de la señal están interfiriendo con su medición, véase CaseStudies. htmlG). Una alternativa al alisado para reducir el ruido en el conjunto anterior de señales sin pulir es el promedio del conjunto. Que se puede realizar en este caso muy simplemente por el diagrama de código de Matlab / Octave (x, media (y)) el resultado muestra una reducción en el ruido blanco alrededor de sqrt (10) 3.2. Esto es suficiente para juzgar que hay un solo pico de forma gaussiana, que puede medirse mejor por ajuste de curvas (cubierto en una sección posterior) usando el código de Matlab / Octava peakfit (xmean (y), 0,0,1) Con el resultado que muestra un excelente acuerdo con la posición, altura y ancho del pico gaussiano creado en la tercera línea del guión generador (arriba a la izquierda). Condensación de señales sobremuestreadas. A veces las señales se registran más densamente (es decir, con intervalos de eje X más pequeños) de lo realmente necesario para capturar todas las características importantes de la señal. Esto da como resultado tamaños de datos mayores que los necesarios, lo que ralentiza los procedimientos de procesamiento de señal y puede gravar la capacidad de almacenamiento. Para corregir esto, las señales sobremuestreadas se pueden reducir en tamaño eliminando puntos de datos (por ejemplo, dejando caer cada punto o cada tercer punto) o reemplazando grupos de puntos adyacentes por sus promedios. El enfoque posterior tiene la ventaja de usar en lugar de descartar puntos de datos extraños, y actúa como suavizado para proporcionar alguna medida de reducción de ruido. (Si el ruido de la señal original es blanco, y la señal se condensa promediando cada n puntos, el ruido se reduce en la señal condensada por la raíz cuadrada de n, pero sin cambio en la distribución de frecuencia del ruido). Demostración de vídeo. Este video de 18 segundos de 3 MBytes (Smooth3.wmv) demuestra el efecto de suavizado triangular en un único pico gaussiano con una altura de pico de 1,0 y un ancho de pico de 200. La amplitud de ruido blanco inicial es 0,3, dando una señal inicial - proporción de ruido de alrededor de 3,3. Un intento de medir la amplitud de pico y la anchura de pico de la señal ruidosa, mostrada en la parte inferior del video, es inicialmente seriamente imprecisa debido al ruido. Sin embargo, a medida que aumenta el ancho liso, mejora la relación señal-ruido y se mejoran la precisión de las mediciones de amplitud de pico y anchura de pico. Sin embargo, por encima de una anchura lisa de aproximadamente 40 (relación suave 0,2), el suavizado hace que el pico sea más corto que 1,0 y más amplio que 200, aunque la relación señal-ruido continúa mejorando a medida que aumenta el ancho liso. (Esta demostración se creó en Matlab 6.5 SPECTRUM, la aplicación de procesamiento de señales de Macintosh gratuita, incluye funciones de suavizado rectangular y triangular para cualquier número de puntos. Hojas de cálculo. La suavización se puede hacer en hojas de cálculo utilizando la técnica de desplazamiento y multiplicación descrita anteriormente. El conjunto de coeficientes de multiplicación está contenido en las fórmulas que calculan los valores de cada celda de los datos suavizados en las columnas C y E. La columna C realiza un 7-punto rectangular liso (1 1 1 1 1 1 1) y la columna E hace un 7-punto triangular liso (1 2 3 4 3 2 1), aplicado a los datos en la columna A. Usted puede mecanografiar adentro (o copiar y pegar) cualesquiera datos usted tiene gusto en la columna A, y Puede extender la hoja de cálculo a columnas de datos más largas arrastrando la última fila de columnas A, C y E hacia abajo según sea necesario. Sin embargo, para cambiar el ancho liso, tendría que cambiar las ecuaciones en las columnas C o E y copiar los cambios Su práctica común es dividir los resultados por la suma de los coeficientes para que la ganancia neta sea unidad y el área bajo la curva de la señal suavizada sea preservada. Las hojas de cálculo UnitGainSmooths. xls y UnitGainSmooths. ods contienen una colección de coeficientes de convolución de ganancia unitaria para superficies rectangulares, triangulares y gaussianas de anchura 3 a 29 en formato vertical (columna) y horizontal (fila). Puede copiarlos y pegarlos en sus propias hojas de cálculo. Las hojas de cálculo MultipleSmoothing. xls y MultipleSmoothing. ods demuestran un método más flexible en el que los coeficientes están contenidos en un grupo de 17 celdas adyacentes (en la fila 5, columnas I a Y), facilitando el cambio de la forma y el ancho (arriba A un máximo de 17). En esta hoja de cálculo, el suave se aplica tres veces en sucesión, resultando en un ancho suave efectivo de 49 puntos aplicado a la columna G. Comparado con Matlab / Octave, las hojas de cálculo son mucho más lentas, menos flexibles y menos fáciles de automatizar. Por ejemplo, en estas hojas de cálculo, para cambiar la señal o el número de puntos en la señal, o para cambiar el ancho o tipo suave, tiene que modificar la hoja de cálculo en varios espacios, mientras que para hacer lo mismo con el Matlab / Octave fastsmooth Función (abajo), sólo necesita cambiar en argumentos de entrada de una sola línea de código. Y combinar varias técnicas diferentes en una hoja de cálculo es más complicado que escribir un script Matlab / Octave que hace lo mismo. Suavizado en Matlab y Octave. La función personalizada fastsmooth implementa el cambio y multiplica el tipo de suavizado usando un algoritmo recursivo. (Haga clic en este enlace para inspeccionar el código o haga clic con el botón derecho del ratón para descargarlo para utilizarlo en Matlab). Fastsmooth es una función Matlab de la forma sfastsmooth (a, w, tipo, borde). El argumento a es el vector de señal de entrada w es el tipo de ancho liso (un número entero positivo) determina el tipo liso: type1 da un tipo liso rectangular (sliding-average o boxcar) 2 da un triangular liso, equivalente a dos pasadas de un promedio deslizante Type3 da un pseudo-Gaussian liso, equivalente a tres pasos de un promedio deslizante estas formas se comparan en la figura de la izquierda. (Consulte SmoothingComparison. html para una comparación de estos modos de suavizado). El borde del argumento controla cómo se manejan los bordes de la señal (el primero w / 2 puntos y el último w / 2 puntos). Si edge0, los bordes son cero. (En este modo, el tiempo transcurrido es independiente del ancho liso, lo que da el tiempo de ejecución más rápido). Si el borde 1, los bordes se suavizan con progresivamente más pequeños suaves más cerca del extremo. (En este modo, el tiempo de ejecución aumenta con el aumento de anchos lisos). La señal suavizada se devuelve como el vector s. (Puede dejar fuera los dos últimos argumentos de entrada: liso (Y, w, tipo) suaviza con borde0 y liso (Y, w) suaviza con tipo1 y borde0). En comparación con los algoritmos lisos basados en convolución, fastsmooth utiliza un algoritmo recursivo simple que típicamente da tiempos de ejecución mucho más rápidos, especialmente para grandes anchos lisos que puede suavizar una señal de 1.000.000 puntos con un promedio deslizante de 1,000 puntos en menos de 0,1 segundos. Heres un ejemplo simple de fastsmooth que demuestra el efecto en el ruido blanco (gráfico). SegmentedSmooth. m. Ilustrada a la derecha, es una función de suavizado segmentado de anchura múltiple, basada en el algoritmo fastsmoo, que puede ser útil si las anchuras de los picos o el nivel de ruido varían sustancialmente a través de la señal. La sintaxis es igual a fastsmooth. m, excepto que el segundo argumento de entrada smoothwidths puede ser un vector. SmoothY SegmentedSmooth (Y, smoothwidths, tipo, extremos). The function divides Y into a number of equal-length regions defined by the length of the vector smoothwidths, then smooths each region with a smooth of type type and width defined by the elements of vector smoothwidths. In the graphic example in the figure on the right, smoothwidths31 52 91 . which divides up the signal into three regions and smooths the first region with smoothwidth 31, the second with smoothwidth 51, and the last with smoothwidth 91. Any number of smooth widths and sequence of smooth widths can be used. Type help SegmentedSmooth for other examples examples. DemoSegmentedSmooth. m demonstrates the operation with different signals consisting of noisy variable-width peaks that get progressively wider, like the figure on the right. SmoothWidthTest. m is a simple script that uses the fastsmooth function to demonstrate the effect of smoothing on peak height, noise, and signal-to-noise ratio of a peak. You can change the peak shape in line 7, the smooth type in line 8, and the noise in line 9. A typical result for a Gaussian peak with white noise smoothed with a pseudo-Gaussian smooth is shown on the left. Here, as it is for most peak shapes, the optimal signal-to-noise ratio occurs at a smooth ratio of about 0.8. However, that optimum corresponds to a significant reduction in the peak height . which could be a serious problem. A smooth width about half the width of the original unsmoothed peak produces less distortion of the peak but still achieves a reasonable noise reduction. SmoothVsCurvefit. m is a similar script, but is also compares curve fitting as an alternative method to measure the peak height without smoothing . This effect is explored more completely by the text below, which shows an experiment in Matlab or Octave that creates a Gaussian peak, smooths it, compares the smoothed and unsmoothed version, then uses the peakfit. m function (version 3.4 or later) to show that smoothing reduces the peak height (from 1 to 0.786) and increases the peak width (from 1.66 to 2.12), but has no effect on the total peak area (as long as you measure the total area under the broadened peak). Smoothing is useful if the signal is contaminated by non-normal noise such as sharp spikes or if the peak height, position, or width are measured by simple methods, but there is no need to smooth the data if the noise is white and the peak parameters are measured by least-squares methods, because the results obtained on the unsmoothed data will be more accurate (see CurveFittingC. htmlSmoothing ). gtgt FitResults, FitErrorpeakfit(x y) FitResults Peak Position Height Width Area 1 5 1 1.6651 1.7725 FitError 3.817e-005 gtgt FitResults, FitErrorpeakfit(x ysmoothed) FitResults 1 5 0.78608 2.1224 1.7759 FitError 0.13409 The Matlab/Octave user-defined function condense. m. condense(y, n). returns a condensed version of y in which each group of n points is replaced by its average, reducing the length of y by the factor n. (For x, y data sets, use this function on both independent variable x and dependent variable y so that the features of y will appear at the same x values). The Matlab/Octave user-defined function medianfilter. m. medianfilter(y, w). performs a median-based filter operation that replaces each value of y with the median of w adjacent points (which must be a positive integer). ProcessSignal is a Matlab/Octave command-line function that performs smoothing and differentiation on the time-series data set x, y (column or row vectors). It can employ all the types of smoothing described above. Type help ProcessSignal. Returns the processed signal as a vector that has the same shape as x, regardless of the shape of y. The syntax is ProcessedProcessSignal(x, y, DerivativeMode, w, type, ends, Sharpen, factor1, factor2, SlewRate, MedianWidth) iSignal is an interactive function for Matlab that performs smoothing for time-series signals using all the algorithms discussed above . including the Savitzky-Golay smooth, a median filter, and a condense function, with keystrokes that allow you to adjust the smoothing parameters continuously while observing the effect on your signal instantly, making it easy to observe how different types and amounts of smoothing effect noise and signal, such as the height, width, and areas of peaks. (Other functions include differentiation, peak sharpening, interpolation, least-squares peak measurement, and a frequency spectrum mode that shows how smoothing and other functions can change the frequency spectrum of your signals). The simple script iSignalDeltaTest demonstrates the frequency response of iSignals smoothing functions by applying them to a single-point spike. allowing you to change the smooth type and the smooth width to see how the the frequency response changes. View the code here or download the ZIP file with sample data for testing. Use the A and Z keys to increase and decrease the smooth width, and the S key to cycle through the available smooth types. Hint: use the Gaussian smooth and keep increasing the smooth width until the peak shows. Note: you can right-click on any of the m-file links on this site and select Save Link As. to download them to your computer for use within Matlab. Unfortunately, iSignal does not currently work in Octave.
No comments:
Post a Comment