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

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

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

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

fridge = tfridge(sst,f);

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

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

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

ax = real(x);

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

Смотрите также

| | | | |

Похожие темы