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

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

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

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.

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

| | | | |

Похожие темы