Рассмотрим синусоиду, , оконный Гауссовым окном, . Кратковременное преобразование
При рассмотрении как функции частоты преобразование комбинирует постоянное (во времени) колебание на с Гауссовым распадом от него. Оценка синхронизации мгновенной частоты,
равен значению, полученному при помощи стандартного определения, . Для наложения синусоидов,
краткосрочное преобразование становится
Создать 1024 выборки сигнала, состоящего из двух синусоидов. Одна синусоида имеет нормированную частоту рад/образец. Другая синусоида имеет втрое большую частоту и втрое большую амплитуду.
N = 1024; n = 0:N-1; w0 = pi/5; x = exp(1j*w0*n)+3*exp(1j*3*w0*n);
Вычислите кратковременное преобразование Фурье сигнала. Используйте 256-образное Гауссово окно с , 255 выборки перекрытия между смежными секциями и 1024 точки ДПФ. Постройте график абсолютного значения преобразования.
Nw = 256; nfft = 1024; alpha = 20; [s,w,t] = spectrogram(x,gausswin(Nw,alpha),Nw-1,nfft,'centered'); surf(t,w/pi,abs(s),'EdgeColor','none') view(2) axis tight xlabel('Samples') ylabel('Normalized Frequency (\times\pi rad/sample)')
Synchrosqueezed преобразование Фурье результатов в более резкой, лучше локализованной оценке спектра.
[ss,sw,st] = fsst(x,[],gausswin(Nw,alpha));
fsst(x,'yaxis')
Синусоиды видны как постоянные колебания при ожидаемых значениях частоты. Чтобы увидеть, что распад от гребней Гауссов, постройте график мгновенного значения преобразования и наложите два образцов Гауссова. Выразите Гауссову амплитуду и стандартное отклонение в терминах и длина окна. Напомним, что стандартное отклонение окна частотного диапазона является обратным стандартному отклонению окна временной области.
rstdev = (Nw-1)/(2*alpha); amp = rstdev*sqrt(2*pi); instransf = abs(s(:,128)); plot(w/pi,instransf) hold on plot(w/pi,[1 3]*amp.*exp(-rstdev^2/2*(w-[1 3]*w0).^2),'--') hold off xlabel('Normalized Frequency (\times\pi rad/sample)') lg = legend('Transform','First sinusoid','Second sinusoid'); lg.Location = 'best';
Synchrosqueezed преобразование Фурье концентрирует энергетическое содержимое сигнала на оцененных мгновенных частотах.
stem(sw/pi,abs(ss(:,128))) xlabel('Normalized Frequency (\times\pi rad/sample)') title('Synchrosqueezed Transform')
Синхронизированные оценки мгновенной частоты действительны только, если синусоиды разделены более чем , где
для Гауссова окна и - стандартное отклонение.
Повторите предыдущее вычисление, но теперь задайте, что вторая синусоида имеет нормированную частоту рад/образец.
D = sqrt(2*log(2))/rstdev; w1 = w0+1.9*D; x = exp(1j*w0*n)+3*exp(1j*w1*n); [s,w,t] = spectrogram(x,gausswin(Nw,alpha),Nw-1,nfft,'centered'); instransf = abs(s(:,20)); plot(w/pi,instransf) hold on plot(w/pi,[1 3]*amp.*exp(-rstdev^2/2*(w-[w0 w1]).^2),'--') hold off xlabel('Normalized Frequency (\times\pi rad/sample)') lg = legend('Transform','First sinusoid','Second sinusoid'); lg.Location = 'best';
Synchrosqueezed преобразование Фурье не может хорошо разрешить синусоиды, потому что . Спектральные оценки значительно уменьшаются в значении.
[ss,sw,st] = fsst(x,[],gausswin(Nw,alpha)); stem(sw/pi,abs(ss(:,128))) xlabel('Normalized Frequency (\times\pi rad/sample)') title('Synchrosqueezed Transform')
fsst
| gausswin
| ifsst
| spectrogram