Contexto:
(Descargo de responsabilidad: esto NO es un problema de comunicación).
Estoy tratando de estimar la frecuencia fundamental de una señal periódica real. Esta señal, se construyó mediante el filtrado de una señal sin procesar, a la de un pulso. (el filtro combinado). La señal resultante tiene las siguientes características:
Es periódica. (Fundamental es 1 / período), y esto es lo que estoy tratando de estimar.
No es estacionario en el tiempo. Específicamente, las amplitudes de los pulsos periódicos pueden variar en amplitud. (por ejemplo, un pulso puede ser bajo, mientras que otro es alto, y el siguiente bajo nuevamente, y uno después de ese medio, etc.).
Creo que es estacionaria en frecuencia (en la medida en que acepte amplitudes cambiantes, pero no bandas cambiantes).
Tiene distorsión armónica. Lo que quiero decir aquí es que (y corrígeme si estoy equivocado), pero que los pulsos individuales dentro de la señal no son sinusoides, sino formas 'funky' como una gaussiana, un triángulo ish, una media parábola, etc. .
Estoy tratando de estimar la frecuencia fundamental de esta señal.
Por supuesto, a veces la señal sin procesar no es más que ruido, pero de todos modos atraviesa el camino y se filtra de la misma manera. (Más sobre eso más adelante).
Lo que he intentado:
Ahora, conozco una multitud de estimadores de frecuencia fundamentales, como
- El método de autocorrelación
- YIN y todas sus dependencias
- Método FFT.
etc.
YIN: Todavía no lo he probado.
Método FFT: El método FFT le dará todos los armónicos y lo fundamental, pero he notado que puede ser complicado especialmente con este negocio no estacionario, ya que lo fundamental no siempre es el pico más alto. Muy rápidamente, te encuentras tratando de determinar cuál de los muchos picos es el fundamental, y se convierte en un problema difícil.
Autocorrelación: el método de autocorrelación parece funcionar mejor que el método FFT, pero sigue siendo sensible a las irregularidades de amplitud de la señal en el dominio del tiempo. El método de autocorrelación mide la distancia entre el lóbulo central y el siguiente lóbulo más alto. Esa distancia corresponde a lo fundamental. Sin embargo, en casos no estacionarios, este lóbulo secundario puede ser demasiado bajo, y podría pasarlo por alto en algún esquema de umbral.
Entonces se me ocurrió que tal vez pueda usar un método de subespacio como MUSIC para estimar lo fundamental. Al probar esto, descubrí que realmente da algunos resultados muy agradables: alcanza su punto máximo, de manera robusta, e incluso en casos no estacionarios, en frecuencias correspondientes al fundamental de su señal. (Establezca el número de señales que está buscando en 2, y recuperará el fundamental, es decir, escoja los 2 vectores propios más altos (correspondientes a los valores más altos de los valores propios) de la matriz de covarianza de las señales, deséchelos y construya el ruido del subespacio del resto, proyecte su sinusoides complejos de hipótesis contra ellos, tome el recíproco y listo, un bonito pseudo espectro).
Preguntas y problemas:
- Dicho esto, todavía me gustaría entender por qué esto funciona mejor.
- En MUSIC descartamos el subespacio de señal y usamos el subespacio de ruido. Me parece que los vectores propios del subespacio de señal en realidad son una especie de "mejor ajuste": de hecho, son filtros compatibles óptimos. Entonces: ¿por qué no simplemente usar los vectores propios del subespacio de señal directamente? (Sé que ya no es MÚSICA, pero ¿por qué es mejor usar el subespacio de ruido entonces?)
- Por último, el problema final es que, aunque este método parece funcionar de manera mucho más robusta para las señales no estacionarias (como se definió anteriormente), el problema es que ahora SIEMPRE obtengo una respuesta, ¡incluso cuando no hay nada más que ruido en el sistema! (Mencioné anteriormente que la señal filtrada cruda previamente emparejada puede ser solo ruido blanco a veces, cuando no tiene una señal periódica presente).
¿Qué formas podrían existir para contrarrestar esto? He intentado mirar los valores propios y hay algo más de "curvatura" en su decadencia en los casos en que solo hay ruido VS casos en los que hay una señal, pero me temo que podría no ser lo suficientemente robusta.
Prima:
- ¿Cuándo son los vectores propios de una matriz de covarianza senoidal VS algo más? ¿Qué determina si son o no sinusoides o no? ¿Por qué no son ondas cuadradas? ¿O insertar señales de otra forma aquí?
Respuestas:
La matriz de autocorrelación está diagonalizada por sinusoides cuando el proceso es estacionario, esto se deduce del hecho de que el operador de covarianza es una convolución para un proceso estacionario. Una prueba más rigurosa es que que en particular significa que que también es una función seimidefinita positiva de , por lo tanto, según el teorema de Bochner tenemos que prueba el reclamo.
La intuición es que una matriz de autocorrelación estimada para un conjunto finito de observaciones en una señal se comporta asintóticamente como una matriz circulante porque la correlación depende solo de las diferencias de tiempo, no las posiciones absolutas y las matrices circulantes tienen sinusoides discretos como vectores propios (ya que son convolución operadores). Hay muchas pruebas de esto y esta es una intuición incompleta.
El conjunto de funciones de autocorrelación diagonalizadas por sinusoides son exactamente las que corresponden a los procesos estacionarios, pero las funciones de autocorrelación de muchos otros procesos serán diagonalizadas aproximadamente por los sinusoides en algún intervalo. Estos procesos corresponden a aquellos que pueden aproximarse por procesos estacionarios durante un intervalo. Más detalles están aquí .
Los procesos generales no estacionarios pueden tener funciones de autocorrelación que no necesitan ser diagonalizadas por sinusoides.
Los procesos estacionarios locales tendrán un espectro que cambia lentamente y / o una pequeña cantidad de cambios abruptos bien espaciados en el espectro. El habla, los ruidos de los animales, la música y muchos otros sonidos naturales se ajustan a esta descripción. La razón por la cual funcionan los algoritmos de identificación del subespacio, según tengo entendido, es que algunas formas de estacionariedad local (no rigurosa) generalmente se aplican a los tipos de señales que analizamos.
fuente