Duración del pulso rectangular desconocido con aditivo ruido blanco gaussiano


8

Problema.

Hay una señal discreta F[yo](ejemplo a continuación).
Ejemplo de señal
Se sabe queF[yo] tienen una forma de pulso rectangular con ruido gaussiano blanco aditivo.

F[yo]=s[yo]+norte[yo],
s[yo]=α(θ[yo-yo1]-θ[yo-yo2])+C,
yo2>yo1,
yo1>norte

Dónde
θ[yo] es una función de paso Heaviside,
norte[yo] es un ruido gaussiano blanco aditivo,
α es una altura de pulso rectangular,
yo1 es un índice de la primera muestra de pulso rectangular,
yo2 es un índice de la última muestra de pulso rectangular,
C es un nivel constante de señal,
norte Es un parámetro ajustable.

Todos los parámetros pueden tener un amplio rango de valores.
Se requiere encontrar el valor de(yo2-yo1) (duración del pulso rectangular en muestras).

Soluciones posibles.

Por el momento, he intentado dos formas de resolver este problema.

Filtro de paso bajo con umbral.

Como primer intento, he usado un esquema simple con filtro de paso bajo y umbral.
1. Aplique el filtro de paso bajo FIR con una frecuencia de corte igual a0,05Fsunametropagslyonortesol.
2. Estimación mediametro y dispersión σ2 de ruido filtrado desde el principio norteMuestras de la señal.
3. Establecer umbralt=metro+3σ.
4. Estimaciónyo1=minyo(F[yo]>t).
5. Estime .yo2=maxyo(F[yo]>t)

ingrese la descripción de la imagen aquí

Pros:
1. Este algoritmo es simple.
2. Es fácil escribir una implementación rápida.

Contras:
1. Es difícil estimar el valor eficiente de la frecuencia de corte del filtro. Por un lado, un valor bajo puede corromper la forma de pulsos cortos. Por otro lado, un gran valor disminuye el efecto de la filtración.
2. El algoritmo no usa toda la información, tenemos acerca de la señal.

Análisis de regresión

Como segundo intento, he intentado aproximar la secuencia de entrada de muestras con la función .s[yo]

s[yo]=α(θ[yo-yo1]-θ[yo-yo2])+C , , donde es un parámetro pequeño.
θ[yo]=11+mi-yoββ

Para la aproximación, he usado el método de mínimos cuadrados con pendiente de gradiente para minimizar la función de costo.
1. Establezca los valores iniciales para , , , . 2. Realizar descenso de gradiente. 3. Establezca el umbral . 4. Estime . 5. Estime .αCyo1yo2

t=C+0,5α
yo1=minyo(F[yo]>t)
yo2=maxyo(F[yo]>t)

ingrese la descripción de la imagen aquí

Pros:
1. Este algoritmo da resultados con buena precisión.
2. Funciona para una amplia gama de duraciones.

Contras:
1. Es muy lento.

Pregunta.

Después de todo, no estoy satisfecho con la precisión del primer algoritmo y con la velocidad del segundo. Como resolverías este problema?
¿Hay alguna solución clásica que no pude encontrar?
Ideas, enlaces, cualquier comentario será muy apreciado.
Gracias.


¿También necesita saber la probabilidad de que solo el ruido gaussiano aleatorio haga que su algoritmo produzca una "duración" de pulso, especialmente cerca del ancho mínimo del pulso y la altura mínima permitida? ¿O se sabe que el pulso a priori está presente y dentro de los parámetros permitidos?
hotpaw2

@ hotpaw2 Se sabe que el pulso está presente a priori y dentro de los parámetros permitidos. Si la señal no contiene el pulso, entonces el comportamiento del algoritmo puede ser indefinido.
Nikolai Popov

Respuestas:


5

Desea un método que elimine el ruido mientras conserva los bordes. Esto no se puede lograr bien mediante el filtrado lineal, como te has dado cuenta. Sé de dos enfoques que podrían funcionar bien para su problema. El primero es el filtrado medio , donde las muestras dentro de una ventana se reemplazan por su mediana. La siguiente gráfica muestra el resultado del filtrado medio con una longitud de ventana de 25 muestras (en rojo):

ingrese la descripción de la imagen aquí

El otro enfoque, más complejo, es la eliminación de ruido de variación total , que funciona muy bien para señales constantes por partes. Hay una muy buena descripción de la variación total de ruido que incluye el código Matlab disponible: enlace .


Fue muy útil Y me lo he pasado muy bien leyendo el artículo y jugando con la televisión. Gracias.
Nikolai Popov

1

Sé que esto es muy antiguo , y @Matt L. hace mucho tiempo dio una respuesta excelente e informativa. No tenía idea de que existía el cambio de variación total, así que aprendí algo bastante útil. En consecuencia, voté por la pregunta y la respuesta y quiero dar algo, tal como es, de vuelta al sitio. La idea básica es utilizar una versión digital simple del antiguo RC LPF y reducir en gran medida la "constante de tiempo" cuando se produce un paso. Luego, después del paso, aumente considerablemente la 'constante de tiempo'. NB La 'constante de tiempo' realmente no será constante, como se verá a continuación.

La figura a continuación muestra mi intento de replicar el ejemplo de pulso rectangular ruidoso genérico del OP y cómo funciona un filtro de paso bajo 'derivado recíproco' (en lo sucesivo denominado RD-LPF):

Derivado recíproco LPF

El RD-LPF es simplemente , donde y Usé . El pulso rectangular limpio tenía amplitud de unidad, comenzó en t = 3 y el ancho del pulso era 3. El ruido blanco gaussiano aditivo tenía y .y[yo]=UNAy[yo-1]+(1-UNA)X[yo]UNA=miXpags(-KEl |y[yo-1]-X[yo]El |)K=0.2 0.2μ=0 0σ=0,3

La siguiente figura compara la salida RD-LPF (trazo rojo) con (según la respuesta de Matt L.) una salida de filtro mediano móvil de 25 puntos (trazo azul):

RD-LPF vs. Mov Med 25 pt

No estoy diciendo que alguna vez usaría el RD-LPF para algo serio, pero tenía curiosidad por ver si se destruiría en esta pequeña comparación. Evidentemente, ese no es el caso.

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.