¿Qué es un espectrogtwig y cómo configuro sus parámetros?

Estoy tratando de trazar el espectrogtwig de mi señal de dominio del tiempo dado:

N=5000; phi = (rand(1,N)-0.5)*pi; a = tan((0.5.*phi)); i = 2.*a./(1-a.^2); plot(i); spectrogram(i,100,1,100,1e3); 

El problema es que no entiendo los parámetros y qué valores se deben dar. Estos valores que estoy usando, me referí a la documentación en línea de MATLAB de spectrogram . Soy nuevo en MATLAB, y simplemente no entiendo la idea. ¡Cualquier ayuda será apreciada!

    Antes de entrar realmente en lo que hace ese comando de MATLAB, probablemente desee saber qué es un espectrogtwig. De esta forma obtendrás más significado sobre cómo funciona cada parámetro.

    Un espectrogtwig es una representación visual de la Transformada de Fourier de Corto Tiempo . Piense en esto como tomar fragmentos de una señal de entrada y aplicar una Transformada de Fourier local en cada fragmento. Cada fragmento tiene un ancho especificado y aplica una Transformada de Fourier a este fragmento. Debe tener en cuenta que cada fragmento tiene una distribución de frecuencia asociada. Para cada fragmento que se centra en un punto de tiempo específico en su señal de tiempo, obtiene un conjunto de componentes de frecuencia. La recostackción de todos estos componentes de frecuencia en cada fragmento y graficados todos juntos es lo que es esencialmente un espectrogtwig.

    El espectrogtwig es un mapa de calor visual 2D donde el eje horizontal representa el tiempo de la señal y el eje vertical representa el eje de la frecuencia. Lo que se visualiza es una imagen donde los colores más oscuros significan que para un punto de tiempo particular y una frecuencia particular, cuanto menor es la magnitud del componente de frecuencia, más oscuro es el color. De manera similar, cuanto mayor es la magnitud del componente de frecuencia, más claro es el color.

    Aquí hay un ejemplo perfecto de un espectrogtwig:

    Fuente: Wikipedia

    Por lo tanto, para cada punto de tiempo, vemos una distribución de componentes de frecuencia. Piense en cada columna como la descomposición de frecuencia de un trozo centrado en este punto de tiempo. Para cada columna, vemos un espectro de colores variable. Cuanto más oscuro es el color, menor es el componente de magnitud en esa frecuencia y viceversa.


    ¡Entonces! … ahora estás armado con eso, veamos cómo funciona MATLAB en términos de la función y sus parámetros. La forma en que llama al spectrogram cumple con esta versión de la función:

     spectrogram(x,window,noverlap,nfft,fs) 

    Repasemos cada parámetro uno por uno para que pueda obtener una mayor comprensión de lo que hace cada uno:

    • x – Esta es la señal de entrada del dominio del tiempo en la que desea encontrar el espectrogtwig de. No puede ser mucho más simple que eso. En su caso, la señal de la que desea encontrar el espectrogtwig se define en el siguiente código:

       N=5000; phi = (rand(1,N)-0.5)*pi; a = tan((0.5.*phi)); i = 2.*a./(1-a.^2); 

      Aquí, i soy la señal de la que quiere encontrar el espectrogtwig de.

    • window – Si recuerda, descomponemos la imagen en fragmentos, y cada fragmento tiene un ancho especificado. window define el ancho de cada fragmento en términos de muestras . Como esta es una señal de tiempo discreto, usted sabe que esta señal fue muestreada con una frecuencia de muestreo y un período de muestreo particulares. Puede determinar qué tan grande es la ventana en términos de muestras por:

      window_samples = window_time/Ts

      Ts es el tiempo de muestreo de su señal. Configurar el tamaño de la ventana es en realidad muy empírico y requiere mucha experimentación. Básicamente, cuanto mayor sea el tamaño de la ventana, mejor será la resolución de frecuencia que obtendrás al capturar más frecuencias, pero la localización del tiempo es pobre. Del mismo modo, cuanto menor es el tamaño de la ventana, mejor es la localización que tienes a tiempo, pero no obtienes una gran descomposición de frecuencia. No tengo ninguna sugerencia aquí sobre cuál es el tamaño más óptimo … razón por la cual se prefieren las ondículas cuando se trata de la descomposición de tiempo y frecuencia. Para cada “porción”, los trozos se descomponen en trozos más pequeños de un ancho dynamic para que pueda obtener una mezcla de buena localización de tiempo y frecuencia.

    • noverlap : Otra forma de garantizar una buena localización de frecuencia es que los fragmentos se superponen . Un espectrogtwig adecuado garantiza que cada fragmento tenga un cierto número de muestras que se superponen para cada fragmento y noverlap define cuántas muestras se superponen en cada ventana. El valor predeterminado es 50% del ancho de cada fragmento.

    • nfft : esencialmente estás tomando la FFT de cada fragmento. nfft te dice cuántos puntos FFT se desean calcular por segmento. El número predeterminado de puntos es el más grande de 256, o el floor(log2(N)) donde N es la longitud de la señal. nfft también da una medida de qué tan fina será la resolución de frecuencia. Un mayor número de puntos FFT daría una mayor resolución de frecuencia y, por lo tanto, mostraría detalles de grano fino a lo largo del eje de frecuencia del espectrogtwig si se visualizara.

    • fs – La frecuencia de muestreo de su señal. El valor predeterminado es 1 Hz, pero puede anular esto a cualquiera que sea la frecuencia de muestreo en que se encuentre su señal.


    Por lo tanto, lo que probablemente debería sacar de esto es que realmente no puedo decirle cómo establecer los parámetros. Todo depende de qué señal tenga, pero con suerte la explicación anterior le dará una mejor idea de cómo establecer los parámetros.


    ¡Buena suerte!