This is machine translation

Translated by Microsoft
Mouseover text to see original. Click the button below to return to the English version of the page.

Note: This page has been translated by MathWorks. Click here to see
To view all translated materials including this page, select Country from the country navigator on the bottom of this page.

Instantaneous Frequency of Complex Chirp

This example shows how to compute the instantaneous frequency of a signal using the Fourier synchrosqueezed transform.

Generate a chirp with sinusoidally varying frequency content. The signal is embedded in white Gaussian noise and sampled at 3 kHz for 1 second.

fs = 3000;
t = 0:1/fs:1-1/fs;

x = exp(2j*pi*100*cos(2*pi*2*t)) + randn(size(t))/100;

Compute and plot the Fourier synchrosqueezed transform of the signal. Display the time on the x-axis and the frequency on the y-axis.

fsst(x,fs,'yaxis')

Find the instantaneous frequency of the signal by extracting the maximum-energy time-frequency ridge of the Fourier Synchrosqueezed transform.

[sst,f,tfs] = fsst(x,fs);

fridge = tfridge(sst,f);

Overlay the ridge on the transform plot. Convert time to milliseconds and frequency to kHz.

hold on
plot(t*1000,fridge/1000,'r')
hold off

For a real signal, you can find the instantaneous frequency more easily using the instfreq function. For example, display the instantaneous frequency of the real part of the complex chirp by computing the analytic signal and differentiating its phase.

ax = real(x);

instfreq(ax,fs,'Method','hilbert')

See Also

| | | | |

Related Topics