Main Content

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.

Detectar sinusoides estrechamente espaciados

Considere un sinusoides,

<math display="block">
<mrow>
<mi>f</mi>
<mo stretchy="false">(</mo>
<mi>x</mi>
<mo stretchy="false">)</mo>
<mo>=</mo>
<msup>
<mrow>
<mi>e</mi>
</mrow>
<mrow>
<mi>j</mi>
<mn>2</mn>
<mi>π</mi>
<mi>ν</mi>
<mi>x</mi>
</mrow>
</msup>
</mrow>
</math>
, ventanas con una ventana gaussiana,
<math display="block">
<mrow>
<mi>g</mi>
<mo stretchy="false">(</mo>
<mi>t</mi>
<mo stretchy="false">)</mo>
<mo>=</mo>
<msup>
<mrow>
<mi>e</mi>
</mrow>
<mrow>
<mo>-</mo>
<mi>π</mi>
<msup>
<mrow>
<mi>t</mi>
</mrow>
<mrow>
<mn>2</mn>
</mrow>
</msup>
</mrow>
</msup>
</mrow>
</math>
. La transformación de corto plazo es

<math display="block">
<mrow>
<msub>
<mrow>
<mi>V</mi>
</mrow>
<mrow>
<mi>g</mi>
</mrow>
</msub>
<mi>f</mi>
<mo stretchy="false">(</mo>
<mi>t</mi>
<mo>,</mo>
<mi>η</mi>
<mo stretchy="false">)</mo>
<mo>=</mo>
<msup>
<mrow>
<mi>e</mi>
</mrow>
<mrow>
<mi>j</mi>
<mn>2</mn>
<mi>π</mi>
<mi>ν</mi>
<mi>t</mi>
</mrow>
</msup>
<msubsup>
<mrow>
<mo></mo>
</mrow>
<mrow>
<mo>-</mo>
<mo></mo>
</mrow>
<mrow>
<mo></mo>
</mrow>
</msubsup>
<msup>
<mrow>
<mi>e</mi>
</mrow>
<mrow>
<mo>-</mo>
<mi>π</mi>
<mo stretchy="false">(</mo>
<mi>x</mi>
<mo>-</mo>
<mi>t</mi>
<msup>
<mrow>
<mo stretchy="false">)</mo>
</mrow>
<mrow>
<mn>2</mn>
</mrow>
</msup>
</mrow>
</msup>
<msup>
<mrow>
<mi>e</mi>
</mrow>
<mrow>
<mo>-</mo>
<mi>j</mi>
<mn>2</mn>
<mi>π</mi>
<mo stretchy="false">(</mo>
<mi>x</mi>
<mo>-</mo>
<mi>t</mi>
<mo stretchy="false">)</mo>
<mo stretchy="false">(</mo>
<mi>η</mi>
<mo>-</mo>
<mi>ν</mi>
<mo stretchy="false">)</mo>
</mrow>
</msup>
<mspace width="0.16666666666666666em"></mspace>
<mi>d</mi>
<mi>x</mi>
<mo>=</mo>
<msup>
<mrow>
<mi>e</mi>
</mrow>
<mrow>
<mo>-</mo>
<mi>π</mi>
<mo stretchy="false">(</mo>
<mi>η</mi>
<mo>-</mo>
<mi>ν</mi>
<msup>
<mrow>
<mo stretchy="false">)</mo>
</mrow>
<mrow>
<mn>2</mn>
</mrow>
</msup>
</mrow>
</msup>
<msup>
<mrow>
<mi>e</mi>
</mrow>
<mrow>
<mi>j</mi>
<mn>2</mn>
<mi>π</mi>
<mi>ν</mi>
<mi>t</mi>
</mrow>
</msup>
<mo>.</mo>
</mrow>
</math>

Cuando se ve como una función de frecuencia, la transformación combina una oscilación constante (en el tiempo)

<math display="block">
<mrow>
<mi>ν</mi>
</mrow>
</math>
con la decadencia gaussiana lejos de ella. La estimación sinfiosa de la frecuencia instantánea,

<math display="block">
<mrow>
<msub>
<mrow>
<mi>Ω</mi>
</mrow>
<mrow>
<mi>g</mi>
</mrow>
</msub>
<mi>f</mi>
<mo stretchy="false">(</mo>
<mi>t</mi>
<mo>,</mo>
<mi>η</mi>
<mo stretchy="false">)</mo>
<mo>=</mo>
<mrow>
<mfrac>
<mrow>
<mn>1</mn>
</mrow>
<mrow>
<mrow>
<mi>j</mi>
<mn>2</mn>
<mi>π</mi>
</mrow>
</mrow>
</mfrac>
</mrow>
<mrow>
<mfrac>
<mrow>
<mrow>
<msup>
<mrow>
<mi>e</mi>
</mrow>
<mrow>
<mo>-</mo>
<mi>π</mi>
<mo stretchy="false">(</mo>
<mi>η</mi>
<mo>-</mo>
<mi>ν</mi>
<msup>
<mrow>
<mo stretchy="false">)</mo>
</mrow>
<mrow>
<mn>2</mn>
</mrow>
</msup>
</mrow>
</msup>
<mrow>
<mstyle displaystyle="true" scriptlevel="0">
<mrow>
<mfrac>
<mrow>
<mrow>
<mo></mo>
</mrow>
</mrow>
<mrow>
<mrow>
<mstyle displaystyle="true" scriptlevel="0">
<mrow>
<mo></mo>
<mi>t</mi>
</mrow>
</mstyle>
</mrow>
</mrow>
</mfrac>
</mrow>
</mstyle>
</mrow>
<msup>
<mrow>
<mi>e</mi>
</mrow>
<mrow>
<mi>j</mi>
<mn>2</mn>
<mi>π</mi>
<mi>ν</mi>
<mi>t</mi>
</mrow>
</msup>
</mrow>
</mrow>
<mrow>
<mrow>
<msup>
<mrow>
<mi>e</mi>
</mrow>
<mrow>
<mo>-</mo>
<mi>π</mi>
<mo stretchy="false">(</mo>
<mi>η</mi>
<mo>-</mo>
<mi>ν</mi>
<msup>
<mrow>
<mo stretchy="false">)</mo>
</mrow>
<mrow>
<mn>2</mn>
</mrow>
</msup>
</mrow>
</msup>
<msup>
<mrow>
<mi>e</mi>
</mrow>
<mrow>
<mi>j</mi>
<mn>2</mn>
<mi>π</mi>
<mi>ν</mi>
<mi>t</mi>
</mrow>
</msup>
</mrow>
</mrow>
</mfrac>
</mrow>
<mo>=</mo>
<mi>ν</mi>
<mo>,</mo>
</mrow>
</math>

es igual al valor obtenido utilizando la definición estándar,

<math display="block">
<mrow>
<mo stretchy="false">(</mo>
<mn>2</mn>
<mi>π</mi>
<msup>
<mrow>
<mo stretchy="false">)</mo>
</mrow>
<mrow>
<mo>-</mo>
<mn>1</mn>
</mrow>
</msup>
<mi>d</mi>
<mi mathvariant="normal">arg</mi>
<mi>f</mi>
<mo stretchy="false">(</mo>
<mi>x</mi>
<mo stretchy="false">)</mo>
<mo>/</mo>
<mi>d</mi>
<mi>x</mi>
</mrow>
</math>
. Para una superposición de sinusoides,

<math display="block">
<mrow>
<mi>f</mi>
<mo stretchy="false">(</mo>
<mi>x</mi>
<mo stretchy="false">)</mo>
<mo>=</mo>
<munderover>
<mrow>
<mo></mo>
</mrow>
<mrow>
<mi>k</mi>
<mo>=</mo>
<mn>1</mn>
</mrow>
<mrow>
<mi>K</mi>
</mrow>
</munderover>
<msub>
<mrow>
<mi>A</mi>
</mrow>
<mrow>
<mi>k</mi>
</mrow>
</msub>
<msup>
<mrow>
<mi>e</mi>
</mrow>
<mrow>
<mi>j</mi>
<mn>2</mn>
<mi>π</mi>
<msub>
<mrow>
<mi>ν</mi>
</mrow>
<mrow>
<mi>k</mi>
</mrow>
</msub>
<mi>x</mi>
</mrow>
</msup>
<mo>,</mo>
</mrow>
</math>

la transformación de corto plazo se convierte en

<math display="block">
<mrow>
<msub>
<mrow>
<mi>V</mi>
</mrow>
<mrow>
<mi>g</mi>
</mrow>
</msub>
<mi>f</mi>
<mo stretchy="false">(</mo>
<mi>t</mi>
<mo>,</mo>
<mi>η</mi>
<mo stretchy="false">)</mo>
<mo>=</mo>
<munderover>
<mrow>
<mo></mo>
</mrow>
<mrow>
<mi>k</mi>
<mo>=</mo>
<mn>1</mn>
</mrow>
<mrow>
<mi>K</mi>
</mrow>
</munderover>
<msub>
<mrow>
<mi>A</mi>
</mrow>
<mrow>
<mi>k</mi>
</mrow>
</msub>
<msup>
<mrow>
<mi>e</mi>
</mrow>
<mrow>
<mo>-</mo>
<mi>π</mi>
<mo stretchy="false">(</mo>
<mi>η</mi>
<mo>-</mo>
<msub>
<mrow>
<mi>ν</mi>
</mrow>
<mrow>
<mi>k</mi>
</mrow>
</msub>
<msup>
<mrow>
<mo stretchy="false">)</mo>
</mrow>
<mrow>
<mn>2</mn>
</mrow>
</msup>
</mrow>
</msup>
<msup>
<mrow>
<mi>e</mi>
</mrow>
<mrow>
<mi>j</mi>
<mn>2</mn>
<mi>π</mi>
<msub>
<mrow>
<mi>ν</mi>
</mrow>
<mrow>
<mi>k</mi>
</mrow>
</msub>
<mi>t</mi>
</mrow>
</msup>
<mo>.</mo>
</mrow>
</math>

Crear 1024 muestras de una señal que consiste en dos sinusoides. Un sinusoides tiene una frecuencia normalizada de

<math display="block">
<mrow>
<msub>
<mrow>
<mi>ω</mi>
</mrow>
<mrow>
<mn>0</mn>
</mrow>
</msub>
<mo>=</mo>
<mi>π</mi>
<mo>/</mo>
<mn>5</mn>
</mrow>
</math>
rad/muestra. El otro sinusoides tiene tres veces la frecuencia y tres veces la amplitud.

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

Calcula la transformación de Fourier de la señal de poco tiempo. Utilice una ventana gaussiana de 256 muestras con

<math display="block">
<mrow>
<mi>α</mi>
<mo>=</mo>
<mn>2</mn>
<mn>0</mn>
</mrow>
</math>
, 255 muestras de solapamiento entre secciones adyacentes y 1024 puntos DFT. Trazar el valor absoluto de la transformación.

Nw = 256; nfft = 1024; alpha = 20;  [s,w,t] = spectrogram(x,gausswin(Nw,alpha),Nw-1,nfft,'centered');  surf(t,w/pi,abs(s),'EdgeColor','none') view(2) axis tight xlabel('Samples') ylabel('Normalized Frequency (\times\pi rad/sample)')

La transformación sincronizada de Fourier da como resultado una estimación más nítida y mejor localizada del espectro.

[ss,sw,st] = fsst(x,[],gausswin(Nw,alpha));  fsst(x,'yaxis')

Los sinusoides son visibles como oscilaciones constantes en los valores de frecuencia esperados. Para ver que la decadencia lejos de las crestas es gaussiana, traza un valor instantáneo de la transformación y superpone dos instancias de un gaussiano. Expresar la amplitud gaussiana y la desviación estándar en términos de

<math display="block">
<mrow>
<mi>α</mi>
</mrow>
</math>
y la longitud de la ventana. Recuerde que la desviación estándar de la ventana de dominio de frecuencia es la recíproca de la desviación estándar de la ventana de dominio de tiempo.

rstdev = (Nw-1)/(2*alpha); amp = rstdev*sqrt(2*pi);  instransf = abs(s(:,128));  plot(w/pi,instransf) hold on plot(w/pi,[1 3]*amp.*exp(-rstdev^2/2*(w-[1 3]*w0).^2),'--') hold off xlabel('Normalized Frequency (\times\pi rad/sample)') lg = legend('Transform','First sinusoid','Second sinusoid'); lg.Location = 'best';

La transformación sincroprimida de Fourier concentra el contenido de energía de la señal en las frecuencias instantáneas estimadas.

stem(sw/pi,abs(ss(:,128))) xlabel('Normalized Frequency (\times\pi rad/sample)') title('Synchrosqueezed Transform')

Las estimaciones sinprimidas de frecuencia instantánea sólo son válidas si los sinusoidos están separados por más de

<math display="block">
<mrow>
<mn>2</mn>
<mi>Δ</mi>
</mrow>
</math>
Dónde

<math display="block">
<mrow>
<mi>Δ</mi>
<mo>=</mo>
<mrow>
<mstyle displaystyle="true" scriptlevel="0">
<mrow>
<mfrac>
<mrow>
<mn>1</mn>
</mrow>
<mrow>
<mstyle displaystyle="true" scriptlevel="0">
<mrow>
<mi>σ</mi>
</mrow>
</mstyle>
</mrow>
</mfrac>
</mrow>
</mstyle>
</mrow>
<msqrt>
<mrow>
<mn>2</mn>
<mi mathvariant="normal">log</mi>
<mn>2</mn>
</mrow>
</msqrt>
</mrow>
</math>

para una ventana gaussiana y

<math display="block">
<mrow>
<mi>σ</mi>
</mrow>
</math>
es la desviación estándar.

Repita el cálculo anterior, pero ahora especifique que el segundo sinusoides tiene una frecuencia normalizada de

<math display="block">
<mrow>
<msub>
<mrow>
<mi>ω</mi>
</mrow>
<mrow>
<mn>0</mn>
</mrow>
</msub>
<mo>+</mo>
<mn>1</mn>
<mo>.</mo>
<mn>9</mn>
<mi>Δ</mi>
</mrow>
</math>
rad/muestra.

D = sqrt(2*log(2))/rstdev;  w1 = w0+1.9*D;  x = exp(1j*w0*n)+3*exp(1j*w1*n);  [s,w,t] = spectrogram(x,gausswin(Nw,alpha),Nw-1,nfft,'centered'); instransf = abs(s(:,20));  plot(w/pi,instransf) hold on plot(w/pi,[1 3]*amp.*exp(-rstdev^2/2*(w-[w0 w1]).^2),'--') hold off xlabel('Normalized Frequency (\times\pi rad/sample)') lg = legend('Transform','First sinusoid','Second sinusoid'); lg.Location = 'best';

La transformación sinprimida de Fourier no puede resolver bien los sinusoides porque

<math display="block">
<mrow>
<mrow>
<mo>|</mo>
<msub>
<mrow>
<mi>ω</mi>
</mrow>
<mrow>
<mn>1</mn>
</mrow>
</msub>
<mo>-</mo>
<msub>
<mrow>
<mi>ω</mi>
</mrow>
<mrow>
<mn>0</mn>
</mrow>
</msub>
<mo>|</mo>
</mrow>
<mo><</mo>
<mn>2</mn>
<mi>Δ</mi>
</mrow>
</math>
. Las estimaciones espectrales disminuyen significativamente en valor.

[ss,sw,st] = fsst(x,[],gausswin(Nw,alpha));  stem(sw/pi,abs(ss(:,128))) xlabel('Normalized Frequency (\times\pi rad/sample)') title('Synchrosqueezed Transform')

Consulte también

| | |

Temas relacionados