Problema.
Hay una señal discreta (ejemplo a continuación).
Se sabe que tienen una forma de pulso rectangular con ruido gaussiano blanco aditivo.
,
,
,
Dónde
es una función de paso Heaviside,
es un ruido gaussiano blanco aditivo,
es una altura de pulso rectangular,
es un índice de la primera muestra de pulso rectangular,
es un índice de la última muestra de pulso rectangular,
es un nivel constante de señal,
Es un parámetro ajustable.
Todos los parámetros pueden tener un amplio rango de valores.
Se requiere encontrar el valor de (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 a.
2. Estimación media y dispersión de ruido filtrado desde el principio Muestras de la señal.
3. Establecer umbral.
4. Estimación.
5. Estime .
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 .
, , donde es un parámetro pequeño.
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 .
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.