Этот пример показывает, как вычислить мгновенную частоту сигнала с помощью synchrosqueezed преобразования Фурье.
Сгенерируйте щебет с синусоидально изменяющимся содержимым частоты. Сигнал встроен в белый Гауссов шум и дискретизируется со скоростью 3 кГц в течение 1 секунды.
fs = 3000; t = 0:1/fs:1-1/fs; x = exp(2j*pi*100*cos(2*pi*2*t)) + randn(size(t))/100;
Вычислите и постройте график synchrosqueezed преобразования Фурье сигнала. Отображение времени на оси X и частоты на оси Y.
fsst(x,fs,'yaxis')
Найдите мгновенную частоту сигнала путем извлечения максимально-энергетического частотно-временного гребня Synchrosqueezed преобразования Фурье.
[sst,f,tfs] = fsst(x,fs); fridge = tfridge(sst,f);
Наложите гребень на график преобразования. Преобразуйте время в миллисекунды и частоту в кГц.
hold on plot(t*1000,fridge/1000,'r') hold off
Для реального сигнала можно легче найти мгновенную частоту, используя instfreq
функция. Для примера отобразите мгновенную частоту действительной части комплексного щебета путем вычисления аналитического сигнала и дифференцирования его фазы.
ax = real(x); instfreq(ax,fs,'Method','hilbert')
fsst
| ifsst
| instfreq
| pspectrum
| spectrogram
| tfridge