Suavizar la señal muestreada de forma dispersa

0

Estoy buscando un método para suavizar una señal muestreada muy escasamente, que se muestra a continuación. Los filtros digitales no funcionaron muy bien, porque para lograr una suavidad aceptable de la compensación, el pico (que es muy importante) también se suaviza significativamente. He probado diferentes métodos: ajuste con exponenciales estirados, ajuste con polinomios, wavelets. La aplicación de un ajuste con dos exponenciales estiradas ha dado los mejores resultados, sin embargo, todavía no he llegado al punto. ¿Alguien puede señalar otros métodos? ¡Gracias!

    
pregunta luis

2 respuestas

1

Me parece que el ajuste de curvas sería el método más prometedor para su problema, pero en lugar de probar algunas funciones de modelos aleatorios (polinomios, wavelets, ...) que probablemente no tengan nada que ver con la realidad física de lo que está midiendo, debe usar una función de modelo que puede esperar que le vaya bien, es decir, elija una que esté respaldada por un modelo teórico que describa su configuración.

Mientras no le digas a qué realmente estás midiendo, no puedes esperar mucha más ayuda aquí.

    
respondido por el Curd
1

Depende del resultado que desee, hay varias formas de "suavizar" estos datos. En primer lugar, suavizar no es un buen término para usar. Suavizar significa que desea reducir el ruido y encontrar un valor promedio, por la forma en que está redactada su pregunta, parece que quiere hacer otras cosas, así que le daré una cobertura básica de todo.

1) Interpolación
Si desea aumentar la resolución de sus datos, interpolar la señal para un muestreo uniforme. La mayoría de los paquetes matemáticos tienen una función de interp que le permite remuestrear los datos para crear un muestreo uniforme o aumentar la resolución de sus datos. La interpolación realmente no hace nada por el ruido, solo le da más datos para jugar o puede volver a muestrear con muestras uniformes para el filtrado (el filtrado supone una tasa de muestreo uniforme)

2) Ajuste de curvas
Digamos que tiene datos exponenciales, puede ajustar un modelo \ $ y = e ^ {xc_1 + c_2} \ $ a él y luego los datos son tan "suaves" como quiera. Se puede describir como 'dibujar una línea' a través de los datos.

Elproblemaconestoesquenecesitaunmodeloqueseajusteasusdatos.Losdatosquesemuestransoncomounaespeciedeexponencial,pareceunafuncióngaussianaconunaconstante.

$$f(x)=e^{\frac{(x-c_1)^2}{c_2}}$$

Puedescambiarlaformadelmodeloagregandoparámetros

$$f(x)=e^{\frac{(x-c_1)^2+c_3}{c_2}}+c_4$$

Otracosaquepodríaayudaresquesitomaelregistrodelosdatospuedeayudarloaencontrarla"forma" de los datos si no fuera un exponencial. Por ejemplo:

\ $ log (y) = log (e ^ {xc_1 + c_2}) = x * c_1 + c_2 \ $

que es sólo una línea. Una función exponencial es solo una línea, si se aplica la misma transformación a sus datos, es posible que vea un polinomio. Estas son solo sugerencias. Algunos otros modelos que podrían funcionar son modelos exponenciales integrados, pero son más difíciles de ajustar. Dependiendo de cuáles sean sus datos, ya puede haber un artículo o artículo con un modelo. La mayoría de los paquetes tienen funciones de ajuste de curvas como mínimos cuadrados no lineales que, en esencia, ajustan los parámetros para minimizar el error entre las dos funciones. Con algunos modelos puede ser difícil encontrar el mínimo correcto, que también depende de las condiciones iniciales dadas a la función.

Si no existe ninguna función que pueda ajustarse a sus datos, puede hacerlo por partes. Los datos después de la 'colina' son una exponencial invertida con un desplazamiento

$$ y = e ^ {- x * c_1} + c_2 $$

La 'colina' podría encajar con una gaussiana, un polinomio u otras formas.

3) filtrando
Hay algunos filtros que también pueden ser interesantes para probar: Los filtros Savitzky Golay pueden ser excelentes para suavizar los datos, solo obtenga el tamaño de la ventana y el orden de filtro correcto ( 3 debería funcionar). Los filtros medianos también suavizan los datos en ciertos casos. También hay otros filtros de suavizado estadísticos dependiendo del paquete que tenga.

Otra cosa con los filtros es que a veces los bordes se rellenan, para superar esto, puede rellenar los datos de cada lado y luego truncarlos después del filtrado.

    
respondido por el laptop2d

Lea otras preguntas en las etiquetas