Esta página aún no se ha traducido para esta versión. Puede ver la versión más reciente de esta página en inglés.

fsst

Transformación sincronizada de Fourier

Descripción

s = fsst(x) devuelve la transformación sincronaexprimida de Fourier de la señal de entrada, .x Cada columna de contiene el espectro sincronizado de un segmento de ventana de .sx

ejemplo

[s,w,n] = fsst(x) devuelve un vector de frecuencias normalizadas, y un vector de números de muestra, , en el que se calcula la transformación sincronanada de Fourier. corresponde a las columnas de y corresponde a las filas de .wnwsns

ejemplo

[s,f,t] = fsst(x,fs) devuelve un vector de frecuencias cíclicas, , y un vector de instantes de tiempo, , expresado en términos de la frecuencia de muestreo, .ftfs

ejemplo

[s,f,t] = fsst(x,ts) especifica el tiempo de muestra, como escalar. está en las mismas unidades que .tsdurationtts Las unidades de son recíprocas a las unidades de .fts

[___] = fsst(___,window) utiliza para dividir la señal en segmentos y realizar ventanas.window Puede utilizar cualquier combinación de argumentos de entrada de sintaxis anteriores para obtener los argumentos de salida correspondientes.

fsst(___) sin argumentos de salida traza la transformación sincronizada en la ventana de figura actual.

ejemplo

fsst(___,freqloc) especifica el eje en el que se trazará la frecuencia.

Ejemplos

contraer todo

Generar 1024 muestras de una señal que consiste en una suma de sinusoides incrustados en el ruido gaussiano blanco. Las frecuencias normalizadas de los sinusoides son

<math display="block">
<mrow>
<mn>2</mn>
<mi>π</mi>
<mo>/</mo>
<mn>5</mn>
</mrow>
</math>
rad/muestra y
<math display="block">
<mrow>
<mn>4</mn>
<mi>π</mi>
<mo>/</mo>
<mn>5</mn>
</mrow>
</math>
rad/muestra. La mayor frecuencia sinusoides tiene 3 veces la amplitud del otro sinusoides.

N = 1024; n = 0:N-1;  w0 = 2*pi/5; x = sin(w0*n)+3*sin(2*w0*n);

Calcula la transformación sincronaexprimida de Fourier de la señal. Trazar el resultado.

[s,w,n] = fsst(x);  mesh(n,w/pi,abs(s))  axis tight view(2) colorbar

Calcular la transformación convencional de corto plazo de Fourier de la señal para la comparación. Utilice los valores predeterminados de .spectrogram Trazar el resultado.

[s,w,n] = spectrogram(x);   surf(n,w/pi,abs(s),'EdgeColor','none')  axis tight view(2) colorbar

Genere una señal que consta de dos chirridos. La señal se muestrea a 3 kHz durante un segundo. El primer chirrido tiene una frecuencia inicial de 400 Hz y alcanza los 800 Hz al final del muestreo. El segundo chirp comienza en 500 Hz y alcanza 1000 Hz al final. El segundo chirrido tiene el doble de amplitud del primer chirrido.

fs = 3000; t = 0:1/fs:1-1/fs;  x1 = chirp(t,400,t(end),800); x2 = 2*chirp(t,500,t(end),1000);

Calcular y trazar la transformación sincronaexprimida de Fourier de la señal.

fsst(x1+x2,fs,'yaxis')

Compare la transformación sincronizada con la transformación de Fourier (STFT) de corta distancia. Calcular el STFT utilizando la función.spectrogram Especifique los parámetros predeterminados utilizados por:fsst

  • Una ventana Kaiser de 256 puntos con 10 o 10 para anotear la señalβ

  • Una superposición de 255 muestras entre segmentos con ventanas adyacentes

  • Una longitud FFT de 256

[stft,f,t] = spectrogram(x1+x2,kaiser(256,10),255,256,fs);

Trazar el valor absoluto del STFT.

mesh(t,f,abs(stft))  xlabel('Time (s)')  ylabel('Frequency (Hz)') title('Short-Time Fourier Transform') axis tight view(2)

Calcular y mostrar la transformación sincronaexprimida de Fourier de un chirrido cuadrático que comienza en 100 Hz y cruza 200 Hz a 1 s.t Especifique una frecuencia de muestreo de 1 kHz. Exprese el tiempo de muestra como escalar.duration

fs = 1000; t = 0:1/fs:2; ts = duration(0,0,1/fs);  x = chirp(t,100,1,200,'quadratic');  fsst(x,ts,'yaxis')  title('Quadratic Chirp')

El algoritmo de sincronización funciona bajo la suposición de que la frecuencia de la señal varía lentamente. Por lo tanto, el espectro se concentra mejor en los primeros tiempos, donde la tasa de cambio de frecuencia es menor.

Calcular y mostrar la transformación sincronaexprimida de Fourier de un chirrido lineal que comienza en DC y cruza 150 Hz a 1 s.t Utilice una ventana Hamming de 256 muestras.

x = chirp(t,0,1,150);  fsst(x,ts,hamming(256),'yaxis')  title('Linear Chirp')

Calcula y muestra la transformación sincronaexprimida de Fourier de un chirrido logarítmico. El chirrido se muestrea a 1 kHz, comienza a 20 Hz y cruza 60 Hz a 1 s.t Utilice una ventana Kaiser de 256 muestras con 20.β

x = chirp(t,20,1,60,'logarithmic');  [s,f,t] = fsst(x,fs,kaiser(256,20));  clf mesh(t,f,(abs(s)))  title('Logarithmic Chirp')  xlabel('Time (s)') ylabel('Frequency (Hz)') view(2)

Utilice una escala logarítmica para el eje de frecuencia. La transformación se convierte en una línea recta.

ax = gca; ax.YScale = 'log'; axis tight

Cargue una señal de voz muestreada en

<math display="block">
<mrow>
<msub>
<mrow>
<mi>F</mi>
</mrow>
<mrow>
<mi>s</mi>
</mrow>
</msub>
<mo>=</mo>
<mn>7</mn>
<mn>4</mn>
<mn>1</mn>
<mn>8</mn>
<mspace width="0.2777777777777778em"></mspace>
<mstyle mathvariant="normal">
<mrow>
<mi>H</mi>
<mi>z</mi>
</mrow>
</mstyle>
</mrow>
</math>
. El archivo contiene una grabación de una voz femenina que dice la palabra "MATLAB®."

load mtlb  % To hear, type sound(mtlb,Fs)

Calcular la transformación sincronizada de la señal. Utilice una ventana Hann de longitud 256. Visualice la hora en el eje y la frecuencia en el eje - .xy

fsst(mtlb,Fs,hann(256),'yaxis')

Se utiliza para invertir la transformación.ifsst Compare las señales originales y reconstruidas.

sst = fsst(mtlb,Fs,hann(256));  xrc = ifsst(sst,hann(256));  plot((0:length(mtlb)-1)/Fs,[mtlb xrc xrc-mtlb]) legend('Original','Reconstructed','Difference')

 % To hear, type sound(xrc-mtlb,Fs)

Argumentos de entrada

contraer todo

Señal de entrada, especificada como vector.

Ejemplo: especifica un sinusoides incrustado en el ruido gaussiano blanco.cos(pi/4*(0:159))+randn(1,160)

Tipos de datos: single | double
Soporte de números complejos:

Frecuencia de muestreo, especificada como escalar positiva. La frecuencia de muestreo es el número de muestras por unidad de tiempo. Si la unidad de tiempo es segundos, entonces la frecuencia de muestreo está en Hz.

Tipos de datos: double | single

Tiempo de muestra, especificado como escalar.duration El tiempo de muestra es el tiempo transcurrido entre muestras consecutivas de .x

Tipos de datos: duration

Ventana utilizada para dividir la señal en segmentos, especificados como un entero o como un vector de fila o columna.

  • Si es un entero, entonces divide en segmentos de longitud y ventanas cada segmento con una ventana Kaiser de esa longitud ywindowfsstxwindow β = 10. La superposición entre segmentos adyacentes es – 1.window

  • Si es un vector, se divide en segmentos de la misma longitud que el vector y windows cada segmento utilizando .windowfsstxwindow La superposición entre segmentos adyacentes es – 1.length(window)

  • Si no se especifica, se divide en segmentos de longitud 256 y ventanas de cada segmento con una ventana Kaiser de 256 muestras conwindowfsstx β = 10. La superposición entre segmentos adyacentes es 255. Si tiene menos de 256 muestras, la función utiliza una sola ventana Kaiser con la misma longitudxx β = 10.

Para obtener una lista de las ventanas disponibles, consulte .Windows

Ejemplo: y ambos especifican una ventana De Naden de longitud + 1.hann(N+1)(1-cos(2*pi*(0:N)'/N))/2N

Tipos de datos: double | single

Eje de visualización de frecuencia, especificado como o .'xaxis''yaxis'

  • — Muestra la frecuencia en el eje y el tiempo en el eje - .'xaxis'xy

  • — Muestra la frecuencia en el eje y el tiempo en el eje - .'yaxis'yx

Este argumento se omite si se llama con argumentos de salida.fsst

Argumentos de salida

contraer todo

Transformación sincronizada de Fourier, devuelta como una matriz. El tiempo aumenta a través de las columnas y la frecuencia aumenta las filas de , a partir de cero.ss Si es real, entonces su espectro sincroprimido es unilateral.x Si es complejo, entonces su espectro sincroprimido es de dos lados y centrado.x

Frecuencias normalizadas, devueltas como vector. La longitud de es igual al número de filas en .ws

Números de muestra, devueltos como vector. La longitud de es igual al número de columnas en .ns Cada número de muestra es el punto medio de un segmento con ventanas de .nx

Frecuencias cíclicas, devueltas como vector. La longitud de es igual al número de filas en .fs

Instantáneas de tiempo, devueltas como vector. La longitud de es igual al número de columnas en .ts Cada valor de tiempo en es el punto medio de un segmento con ventanas de .tx

Más acerca de

contraer todo

Transformación sincronaexprimida de Fourier

Muchas señales del mundo real, como formas de onda de voz, vibraciones de la máquina y señales fisiológicas, se pueden expresar como una superposición de modos modulados por amplitud y modulados por frecuencia. Para el análisis de frecuencia de tiempo, es conveniente expresar señales tales como sumas de señales analíticas a través de

f(t)=k=1Kfk(t)=k=1KAk(t)ej2πϕk(t).

Las fases ϕk(t) tienen derivados de tiempo k(t)/dt que corresponden a frecuencias instantáneas. Cuando se desconocen las fases exactas, puede utilizar la transformación sincronizada de Fourier para estimarlas.

La transformación sincronaexprimida de Fourier se basa en la transformación de Fourier de corto tiempo implementada en la función.spectrogram Para ciertos tipos de señales no estacionarias, la transformación sincronanada se asemeja al espectrograma reasignado porque genera estimaciones de frecuencia de tiempo más nítidas que la transformación convencional. La función determina la transformación de Fourier de corta distancia de una función, utilizando una ventana espectral, y la computaciónfsstfg

Vgf(t,η)=f(x)g(xt)ej2πη(xt)dx.

A diferencia de la definición convencional, esta definición tiene un factor adicional de ej2πηt. A continuación, los valores de transformación se "aprietan" para que se concentren alrededor de curvas de frecuencia instantánea en el plano de frecuencia de tiempo. La transformación sincronaexprimida resultante es de la forma

Tgf(t,ω)=Vgf(t,η)δ(ωΩgf(t,η))dη,

donde las frecuencias instantáneas se estiman con la "transformación de fase"

Ωgf(t,η)=1j2πtVgf(t,η)Vgf(t,η)=η1j2πVg/tf(t,η)Vgf(t,η).

La transformación en el denominador disminuye la influencia de la ventana. Para ver un ejemplo sencillo, consulte .Detectar sinusoides estrechamente espaciados La definición de Tgf( , ) difiere por un factor detω 1/g(0) de otras expresiones encontradas en la literatura. incorpora el factor en el paso de reconstrucción de modo.fsst

A diferencia del espectrograma reasignado, la transformación sincronaexada es invertible y, por lo tanto, puede reconstruir los modos individuales que componen la señal. La invertibilidad impone algunas restricciones en el cálculo de la transformación de Fourier de corta generación:

  • El número de puntos DFT es igual a la longitud de la ventana especificada.

  • La superposición entre los segmentos con ventanas adyacentes es una menos que la longitud de la ventana.

  • La reasignación se realiza sólo con frecuencia.

Para encontrar los modos, integre la transformación sincronamida en un pequeño intervalo de frecuencia alrededor Ωgf( , ):tη

fk(t)1g(0)|ωΩk(t)|<εTgf(t,ω)dω,

donde hay un pequeño número.ɛ

La transformación sincronanada produce crestas estrechas en comparación con la transformación Fourier de corto plazo con ventanas. Sin embargo, el ancho de la transformación de corto plazo todavía afecta a la capacidad de la transformación sincronaexada a modos separados. Para ser resoluible, los modos deben obedecer estas condiciones:

  1. Para cada modo, la frecuencia debe ser estrictamente mayor que la velocidad de cambio de la amplitud: dϕk(t)dt>dAk(t)dt para todos k.

  2. Los modos distintos deben estar separados por al menos el ancho de banda de frecuencia de la ventana. Si el soporte de la ventana es el intervalo [–Δ,Δ]Entonces |dϕk(t)dtdϕm(t)dt|>2Δ Para k ≠ m.

Para obtener una ilustración, consulte .Detectar sinusoides estrechamente espaciados

Referencias

[1] Thakur, Gaurav, and Hau-Tieng Wu. “Synchrosqueezing-based Recovery of Instantaneous Frequency from Nonuniform Samples.” SIAM Journal of Mathematical Analysis. Vol. 43, 2011, pp. 2078–2095.

[2] Oberlin, Thomas, Sylvain Meignen, and Valérie Perrier. “The Fourier-based Synchrosqueezing Transform.” Proceedings of the 2014 IEEE® International Conference on Acoustics, Speech, and Signal Processing (ICASSP), pp. 315–319.

[3] Auger, François, Patrick Flandrin, Yu-Ting Lin, Stephen McLaughlin, Sylvain Meignen, Thomas Oberlin, and Hau-Tieng Wu. “Time-Frequency Reassignment and Synchrosqueezing: An Overview.” IEEE Signal Processing Magazine. Vol. 30, November 2013, pp. 32–41.

Capacidades ampliadas

Introducido en R2016b