Обнаружьте близко расположенные синусоиды

Рассмотрите синусоиду, f(x)=ej2πνx, оконный с окном Gaussian, g(t)=e-πt2. Кратковременное преобразование

Vgf(t,η)=ej2πνt-e-π(x-t)2e-j2π(x-t)(η-ν)dx=e-π(η-ν)2ej2πνt.

Когда просматривается в зависимости от частоты, преобразование комбинирует константу (вовремя) колебание в ν с Гауссовым затуханием далеко от него. synchrosqueezing оценка мгновенной частоты,

Ωgf(t,η)=1j2πe-π(η-ν)2tej2πνte-π(η-ν)2ej2πνt=ν,

равняется значению, полученному при помощи стандартного определения, (2π)-1dargf(x)/dx. Для суперпозиции синусоид,

f(x)=k=1KAkej2πνkx,

кратковременное преобразование становится

Vgf(t,η)=k=1KAke-π(η-νk)2ej2πνkt.

Создайте 1 024 выборки сигнала, состоящего из двух синусоид. Одна синусоида имеет нормированную частоту ω0=π/5 рад/отсчет. Другая синусоида имеет три раза частоту и три раза амплитуду.

N = 1024;
n = 0:N-1;

w0 = pi/5;
x = exp(1j*w0*n)+3*exp(1j*3*w0*n);

Вычислите кратковременное преобразование Фурье сигнала. Используйте окно Gaussian с 256 выборками с α=20, 255 выборок перекрытия между смежными разделами и точки ДПФ 10:24. Постройте абсолютное значение преобразования.

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)')

Figure contains an axes object. The axes object contains an object of type surface.

Synchrosqueezed преобразование Фурье приводит к более резкой, лучшей локализованной оценке спектра.

[ss,sw,st] = fsst(x,[],gausswin(Nw,alpha));

fsst(x,'yaxis')

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

Синусоиды отображаются как постоянные колебания в ожидаемых значениях частоты. Чтобы видеть, что затухание далеко от гребней является Гауссовым, постройте мгновенное значение преобразования и наложите два экземпляра Гауссова. Опишите Гауссово амплитудное и стандартное отклонение в терминах α и длина окна. Вспомните, что стандартное отклонение окна частотного диапазона является обратной величиной стандартного отклонения окна временного интервала.

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';

Figure contains an axes object. The axes object contains 3 objects of type line. These objects represent Transform, First sinusoid, Second sinusoid.

Synchrosqueezed преобразование Фурье концентрирует энергетическое содержимое сигнала на предполагаемых мгновенных частотах.

stem(sw/pi,abs(ss(:,128)))
xlabel('Normalized Frequency (\times\pi rad/sample)')
title('Synchrosqueezed Transform')

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

synchrosqueezed оценки мгновенной частоты допустимы, только если синусоиды разделяются больше, чем 2Δ, где

Δ=1σ2log2

для окна Gaussian и σ стандартное отклонение.

Повторите предыдущее вычисление, но теперь укажите, что вторая синусоида имеет нормированную частоту ω0+1.9Δ рад/отсчет.

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';

Figure contains an axes object. The axes object contains 3 objects of type line. These objects represent Transform, First sinusoid, Second sinusoid.

Synchrosqueezed преобразование Фурье не может разрешить синусоиды хорошо потому что |ω1-ω0|<2Δ. Спектральные оценки значительно уменьшаются в значении.

[ss,sw,st] = fsst(x,[],gausswin(Nw,alpha));

stem(sw/pi,abs(ss(:,128)))
xlabel('Normalized Frequency (\times\pi rad/sample)')
title('Synchrosqueezed Transform')

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

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

| | |

Похожие темы