Мгновенная частота комплексного щебета

Этот пример показывает, как вычислить мгновенную частоту сигнала с помощью 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')

Figure contains an axes. The axes with title Fourier Synchrosqueezed Transform contains an object of type image.

Найдите мгновенную частоту сигнала путем извлечения максимально-энергетического частотно-временного гребня Synchrosqueezed преобразования Фурье.

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

fridge = tfridge(sst,f);

Наложите гребень на график преобразования. Преобразуйте время в миллисекунды и частоту в кГц.

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

Figure contains an axes. The axes with title Fourier Synchrosqueezed Transform contains 2 objects of type image, line.

Для реального сигнала можно легче найти мгновенную частоту, используя instfreq функция. Для примера отобразите мгновенную частоту действительной части комплексного щебета путем вычисления аналитического сигнала и дифференцирования его фазы.

ax = real(x);

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

Figure contains an axes. The axes with title Instantaneous Frequency Estimate contains an object of type line.

См. также

| | | | |

Похожие темы

Для просмотра документации необходимо авторизоваться на сайте