Sobre el uso de vectores propios para estimar la frecuencia fundamental de una señal, a través de MUSIC


14

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

  1. El método de autocorrelación
  2. YIN y todas sus dependencias
  3. 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:

  1. Dicho esto, todavía me gustaría entender por qué esto funciona mejor.
  2. 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?)
  3. 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:

  1. ¿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í?

Mohammad: ¿Puedes hacer algunas ediciones / aclaraciones? Puedo ser riguroso con la terminología, pero es importante para los futuros visitantes. Además de 'agradable y limpio', se puede decir distorsión armónica. En lugar de repetitivo, ¿puedes decir periódico? Estacionario puede referirse a estadísticas que varían en el tiempo o al espectro que varía en el tiempo. ¿Puedes aclarar? El método de autocorrelación es un alias para el método Yule-Walker. Cuando dices 'número de señales', ¿son estos sinusoides reales o exponenciales complejos? ¿Se puede usar el valor propio de mayor valor? El rango tiene otros significados en álgebra lineal. Lo mismo con la 'mayor varianza' ...
Bryan

1
... (cont.) Una cosa importante (y lo notaré en mi respuesta cuando aclare), es que el método MUSIC es un método de subespacio de ruido. Entonces, idealmente, no se usan los vectores propios del subespacio de señal, los que tienen los valores propios de mayor valor. Además, su señal es una suma de sinusoides si es periódica. Si es periódico, puede definirse mediante una serie de Fourier, que es una suma de sinusoides discretos.
Bryan

@Bryan Perdón por la demora en volver (fin de semana largo), pronto renovaré toda la pregunta y te lo haré saber. ¡Gracias!
Spacey

@Bryan Finalmente, actualicé toda la publicación, agregué tus sugerencias y también clarifiqué mucho el contexto / problema. Por favor mira. Por supuesto, avíseme si puedo aclarar algo más.
Spacey

@Mohammad ¿Puedes discernir si una señal está presente o no por la "fuerza" de los vectores propios, es decir, los valores propios?
Jim Clay

Respuestas:


8

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.

F(t,s)=Cov(X(t),X(s))=Cov(X(t-tu),X(s-tu))=F(t-tu,s-tu)
F(t,s)=F(t-s,0 0)t-s
Cov(X(s),X(t))=-miyo(s-t)Xreμ(X)

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.


Las respuestas son para el beneficio de todos. No vale nada que el teorema de Bochner sea una generalización del más familiar Wiener-Khinchin . es la densidad espectral. μ
Emre

@MarkS Muchas gracias. Tengo algunos seguimientos: 1) Con base en esto, ¿podemos decir que un proceso es estacionario en la medida en que los vectores propios de su matriz de covarianza son sinusoidales? ¿Puede ser esto una especie de medida de estacionariedad? 2) Usted menciona "... y las matrices circulantes tienen sinusoides discretos como vectores propios (ya que son operadores de convolución) ..." No tengo claro qué significa esto, ¿qué operadores? Puedes por favor aclarar. 3) Cuando dice "El conjunto de funciones de autocorrelación", ¿se refiere a las filas de la matriz de covarianza? Gracias de nuevo.
Spacey

@Mohammad Cheers: 1) Sí, esto puede considerarse libremente como una medida de estacionariedad. 2) Una matriz circulante se forma a partir de todas las permutaciones cíclicas de un vector, por lo que multiplicar una matriz circulante por otro vector es una convolución entre esos dos vectores. 3) Una función de autocorrelación Corr (s, t) es la autocorrelación entre X (s) y X (t) para algún proceso aleatorio X. Lo llamo una función porque quiero manejar simultáneamente el caso continuo y discreto. La muestra de matriz de autocorrelación puede verse como una aproximación discreta a esta función.
Mark S

@Emre gracias por señalar el teorema de Wiener-Khinchin, aprendí mi análisis de Fourier primero en grupos y nunca me presentaron formalmente en una clase de procesamiento de señales.
Mark S
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.