¿Qué técnicas se podrían usar para estimar el tiempo de inicio de una explosión de tono sinusoidal en una señal ruidosa?
Suponga que la ráfaga de tonos tiene una frecuencia fija conocida (pero una fase desconocida) y un tiempo de subida muy agudo, y que el objetivo es estimar el tiempo de inicio en un tiempo superior a la mitad del tiempo de subida y / o un período de la frecuencia del tono. , si es posible. ¿Cómo podrían cambiar las técnicas de estimación si la relación S / N es muy baja (mucho menos de 1)?
Agregado: Suponga que la ráfaga de tonos es de duración desconocida, pero más larga que un pequeño múltiplo del tiempo de subida y el período de frecuencia.
Agregado: un DFT / FFT muestra la existencia muy probable de un tono. El problema es averiguar exactamente con precisión dónde en la ventana FFT el tono (o quizás múltiples ráfagas de tonos de la misma frecuencia) puede haber comenzado dentro de la ventana FFT, o determinar si el tono actual comenzó fuera de esa ventana DFT, siempre que tenga todo eso Datos de dominio de tiempo adicional.
La precisión de detección de pulso de radar está más cerca de la resolución que necesito, excepto que solo tengo un borde, ya que el tono es de longitud desconocida y, aparte de un tiempo de aumento conocido, no modulado. Los filtros de paso de banda estrecha distorsionan el tiempo de subida y, por lo tanto, matan la resolución de estimación de llegada de borde.
fuente
Respuestas:
Como hemos estado discutiendo en los comentarios, el algoritmo de Goertzel es la forma habitual de detectar un tono en el ruido. Después de la discusión, no estoy seguro de que sea lo que buscas (quieres el tiempo de inicio ), pero parecía haber confusión sobre cómo el algoritmo de Goertzel podría aplicarse a tu problema, así que pensé en escribirlo. aquí.
Algoritmo de Goertzel
El algoritmo de Goertzel es bueno para usar si conoce la frecuencia del tono que está buscando (llámelo ) y si tiene una idea razonable del nivel de ruido para poder seleccionar un umbral de detección adecuado.Fsol
Se puede pensar que el algoritmo de Goertzel siempre calcula la salida de ONE FFT bin:
donde es la frecuencia que estás buscando.Fsol
La página de Wikipedia tiene una mejor manera de calcular esto.
Aquí hay un intento (débil) de Scilab para implementarlo:
En este ejemplo, el tono comienza un tercio del camino hacia la señal en el índice 1001.
Los cuatro rastros son:
Como puede ver, el caso en que el tono que nos interesa está presente alcanza su punto máximo en aproximadamente 250. Si establecemos el umbral de detección en aproximadamente la mitad de este valor (125), entonces se produce la detección (el valor de raíz cuadrada es mayor que 125 ) a aproximadamente el índice 1450 --- 450 muestras después de que comenzó el tono.
Este umbral (125) no causará una detección en el otro caso (para esta ejecución, de todos modos), pero el valor máximo de esa salida es 115.24, no podemos reducir demasiado el umbral sin obtener una detección falsa.
Reducir el umbral a 116 causará la detección en el caso verdadero (para esta ejecución) en el índice 1401 ... pero corremos el riesgo de más falsas alarmas.
fuente