Sé que esto depende de la señal, pero cuando se enfrenta a una nueva señal ruidosa, ¿cuál es su bolsa de trucos para tratar de reemplazar una señal mientras mantiene transiciones bruscas (por ejemplo, cualquier tipo de promedio simple, es decir, convolucionarse con un gaussiano, está fuera)? A menudo me encuentro enfrentando esta pregunta y no siento que sé lo que debería intentar (además de las splines, pero también pueden derribar seriamente el tipo correcto de transición aguda).
PD Como nota al margen, si conoces algunos buenos métodos usando wavelets, avísame de qué se trata. Parece que tienen mucho potencial en esta área, pero si bien hay algunos documentos en los años 90 con suficientes citas para sugerir que el método del documento resultó bien, no puedo encontrar nada sobre qué métodos terminaron ganando como los mejores candidatos en los años intermedios Seguramente algunos métodos resultaron ser generalmente "lo primero que hay que probar" desde entonces.
Puede considerar la difusión anisotrópica. Existen muchos métodos basados en esta técnica. En general, es para imágenes. Es un método de eliminación de ruido adaptativo que tiene como objetivo suavizar las partes sin borde de una imagen y preservar los bordes.
Además, para minimizar la variación total, puede usar este tutorial . Los autores también proporcionan el código MATLAB. Reconocen el problema como un problema previo de análisis, de alguna manera es similar a usar un mapeo lineal (como las representaciones de frecuencia de tiempo). Pero, usan una matriz de diferencia en lugar de una transformación.
fuente
Chaohuang tiene una buena respuesta, pero también agregaré que otro método que puede usar sería a través de la Transformación Wavelet de Haar, seguido por la contracción del coeficiente wavelet y una Transformación Haar inversa de regreso al dominio del tiempo.
La transformada wavelet de Haar descompone su señal en coeficientes de funciones cuadradas y diferenciales, aunque a diferentes escalas. La idea aquí es que 'fuerce' la nueva representación de señal cuadrada para que coincida mejor con su señal original y, por lo tanto, una que represente mejor dónde se encuentran sus bordes.
Cuando realiza una contracción coeficiente, todo lo que significa es que está configurando coeficientes específicos de la función transformada de Haar a cero. (Hay otros métodos más involucrados, pero ese es el más simple). Los coeficientes de wavelet transformados por Haar son puntajes asociados con diferentes funciones de cuadrado / diferencia en diferentes escalas. El RHS de la señal transformada de Haar representa bases cuadradas / diferenciales en la escala más baja y, por lo tanto, puede interpretarse en la 'frecuencia más alta'. Por lo tanto, la mayor parte de la energía del ruido estará aquí, VS la mayor parte de la energía de la señal que estaría en el LHS. Se trata de los coeficientes de las bases que se anulan y el resultado luego se transforma inversamente en el dominio del tiempo.
Se adjunta un ejemplo de una sinusoide corrompida por un fuerte ruido AWGN. El objetivo es descubrir dónde se encuentran el 'inicio' y 'parada' del pulso. El filtrado tradicional manchará los bordes de alta frecuencia (y altamente localizados en el tiempo), ya que en esencia, el filtrado es una técnica L-2. Por el contrario, el siguiente proceso iterativo anulará y preservará los bordes:
(Pensé que uno podía adjuntar películas aquí, pero no puedo hacerlo. Puede descargar la película que hice del proceso aquí ). (Haga clic derecho y 'guardar enlace como').
Escribí el proceso 'a mano' en MATLAB, y es así:
Puede ver claramente cómo se reducen los coeficientes y la Transformación de Haar Inversa resultante resultante de ello.
Sin embargo, un inconveniente de este método es que los bordes deben estar en o alrededor de las bases cuadradas / diferenciadas en una escala dada. De lo contrario, la transformación se ve obligada a saltar al siguiente nivel más alto y, por lo tanto, uno pierde una ubicación exacta para el borde. Hay métodos de resolución múltiple utilizados para contrarrestar esto, pero están más involucrados.
fuente
Un método simple que a menudo funciona es aplicar un filtro mediano.
fuente