fsst

Synchrosqueezed преобразование Фурье

Описание

s = fsst(x) возвращает Synchrosqueezed преобразование Фурье входного сигнала, x. Каждый столбец s содержит синхронизированный спектр оконного сегмента x.

пример

[s,w,n] = fsst(x) возвращает вектор нормированных частот, w, и вектор выборочных чисел, n, при котором вычисляется synchrosqueezed преобразование Фурье. w соответствует столбцам s и n соответствует строкам s.

пример

[s,f,t] = fsst(x,fs) возвращает вектор циклических частот, fи вектор моментов времени, t, выраженная в терминах частоты дискретизации, fs.

пример

[s,f,t] = fsst(x,ts) задает шаг расчета, ts, как duration скаляр. t находится в тех же модулях, что и ts. Область модулей f являются взаимными по отношению к модулям ts.

[___] = fsst(___,window) использует window разделить сигнал на сегменты и выполнить оконцевание. Можно использовать любую комбинацию входных параметров из предыдущих синтаксисов, чтобы получить соответствующие выходные аргументы.

fsst(___) без выходных аргументов строит график синхронизирующего преобразования в текущую фигуру окне.

пример

fsst(___,freqloc) задает ось, на которой будет строиться график частоты.

Примеры

свернуть все

Сгенерируйте 1024 выборки сигнала, который состоит из суммы синусоидов, встроенных в белый Гауссов шум. Нормированные частоты синусоидов 2π/5 рад/образец и 4π/5 рад/образец. Синусоида более высокой частоты имеет в 3 раза большую амплитуду другой синусоиды.

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

w0 = 2*pi/5;
x = sin(w0*n)+3*sin(2*w0*n);

Вычислите Synchrosqueezed преобразование Фурье сигнала. Постройте график результата.

[s,w,n] = fsst(x);

mesh(n,w/pi,abs(s))

axis tight
view(2)
colorbar

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

Вычислите обычное краткосрочное преобразование Фурье сигнала для сравнения. Используйте значения по умолчанию spectrogram. Постройте график результата.

[s,w,n] = spectrogram(x);
 
surf(n,w/pi,abs(s),'EdgeColor','none')

axis tight
view(2)
colorbar

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

Сгенерируйте сигнал, который состоит из двух щебетаний. Дискретизация сигнала производится на частоте 3 кГц в течение одной секунды. Первый щебет имеет начальную частоту 400 Гц и достигает 800 Гц в конце дискретизации. Второй щебет начинается с 500 Гц и достигает 1000 Гц в конце. Второй щебет имеет удвоенную амплитуду первого щебета.

fs = 3000;
t = 0:1/fs:1-1/fs;

x1 = chirp(t,400,t(end),800);
x2 = 2*chirp(t,500,t(end),1000);

Вычислите и постройте график synchrosqueezed преобразования Фурье сигнала.

fsst(x1+x2,fs,'yaxis')

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

Сравните синхронизированное преобразование с коротким преобразованием Фурье (STFT). Вычислите STFT с помощью spectrogram функция. Задайте параметры по умолчанию, используемые fsst:

  • Окно Кайзера с 256 точками с β = 10 для окна сигнала

  • Перекрытие 255 выборок между смежными оконными сегментами

  • Длина БПФ 256

[stft,f,t] = spectrogram(x1+x2,kaiser(256,10),255,256,fs);

Постройте график абсолютного значения STFT.

mesh(t,f,abs(stft))

xlabel('Time (s)') 
ylabel('Frequency (Hz)')
title('Short-Time Fourier Transform')
axis tight
view(2)

Figure contains an axes. The axes with title Short-Time Fourier Transform contains an object of type surface.

Вычислите и отобразите synchrosqueezed преобразование Фурье квадратичного щебета, который начинается с 100 Гц и пересекает 200 Гц при t = 1 с. Укажите частоту дискретизации 1 кГц. Выразите шаг расчета как duration скаляр.

fs = 1000;
t = 0:1/fs:2;
ts = duration(0,0,1/fs);

x = chirp(t,100,1,200,'quadratic');

fsst(x,ts,'yaxis')

title('Quadratic Chirp')

Figure contains an axes. The axes with title Quadratic Chirp contains an object of type surface.

Алгоритм синхронизации работает при предположении, что частота сигнала изменяется медленно. Таким образом, спектр лучше сконцентрирован в ранние моменты времени, где скорость изменения частоты меньше.

Вычислите и отобразите synchrosqueezed преобразование Фурье линейного щебета, который начинается с постоянного тока и пересекает 150 Гц с t = 1 с. Используйте 256-образцевое окно Хэмминга.

x = chirp(t,0,1,150);

fsst(x,ts,hamming(256),'yaxis')

title('Linear Chirp')

Figure contains an axes. The axes with title Linear Chirp contains an object of type surface.

Вычислите и отобразите synchrosqueezed преобразование Фурье логарифмического щебета. Щебет отбирается с частотой дискретизации 1 кГц, начинается с частотой 20 Гц и пересекает частоту 60 Гц при t = 1 с. Используйте 256-выборочное окно Кайзера с β = 20.

x = chirp(t,20,1,60,'logarithmic');

[s,f,t] = fsst(x,fs,kaiser(256,20));

clf
mesh(t,f,(abs(s)))

title('Logarithmic Chirp') 
xlabel('Time (s)')
ylabel('Frequency (Hz)')
view(2)

Figure contains an axes. The axes with title Logarithmic Chirp contains an object of type surface.

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

ax = gca;
ax.YScale = 'log';
axis tight

Figure contains an axes. The axes with title Logarithmic Chirp contains an object of type surface.

Загрузите речевой сигнал, дискретизированный Fs=7418Hz. Файл содержит запись женского голоса, говорящего слово «MATLAB ®».

load mtlb

% To hear, type sound(mtlb,Fs)

Вычислите синхронизированное преобразование сигнала. Используйте окно Ханна длиной 256. Отображение времени на оси X и частоты на оси Y.

fsst(mtlb,Fs,hann(256),'yaxis')

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

Использование ifsst для инвертирования преобразования. Сравните исходные и восстановленные сигналы.

sst = fsst(mtlb,Fs,hann(256));

xrc = ifsst(sst,hann(256));

plot((0:length(mtlb)-1)/Fs,[mtlb xrc xrc-mtlb])
legend('Original','Reconstructed','Difference')

Figure contains an axes. The axes contains 3 objects of type line. These objects represent Original, Reconstructed, Difference.

% To hear, type sound(xrc-mtlb,Fs)

Входные параметры

свернуть все

Входной сигнал, заданный как вектор.

Пример: cos(pi/4*(0:159))+randn(1,160) задает синусоиду, встроенную в белый Гауссов шум.

Типы данных: single | double
Поддержка комплексного числа: Да

Частота дискретизации, заданная как положительная скалярная величина. Частота дискретизации является количеством выборок в единицу времени. Если модулем времени является секунды, то частота дискретизации находится в Гц.

Типы данных: double | single

Шаг расчета, заданный как duration скаляр. Это шаг расчета время, прошедшее между последовательными выборками x.

Типы данных: duration

Окно, используемое для деления сигнала на сегменты, заданные в виде целого числа или строки или вектора-столбца.

  • Если window является целым числом, тогда fsst делит x в сегменты длины window и окна каждого сегмента с окном Кайзера этой длины и β = 10. Перекрытие между смежными сегментами window  – 1.

  • Если window является вектором, тогда fsst делит x в сегменты той же длины, что и вектор, и окна каждый сегмент используя window. Перекрытие между смежными сегментами length(window)  – 1.

  • Если window не задан, тогда fsst делит x в сегменты длины 256 и окна каждого сегмента с 256-образцовым окном Кайзера с β = 10. Перекрытие между соседними сегментами составляет 255. Если x имеет менее 256 выборок, тогда функция использует одно окно Кайзера с той же длиной, что и x и β = 10.

Список доступных окон см. в разделе Windows.

Пример: hann(N+1) и (1-cos(2*pi*(0:N)'/N))/2 оба задают окно Ханна длины N  + 1.

Типы данных: double | single

Ось отображения частоты, заданная как 'xaxis' или 'yaxis'.

  • 'xaxis' - отображения частоты на оси X и времени на оси Y.

  • 'yaxis' - отображения частоты на оси Y и времени на оси X.

Этот аргумент игнорируется, если вы вызываете fsst с выходными аргументами.

Выходные аргументы

свернуть все

Synchrosqueezed преобразование Фурье, возвращенное как матрица. Время увеличивается по столбцам s и частота увеличивается вниз по строкам s, начиная с нуля. Если x реально, тогда его синхроскеезированный спектр является односторонним. Если x является комплексным, затем его синхроскеезируемый спектр является двусторонним и центрированным.

Нормированные частоты, возвращенные как вектор. Длина w равен количеству строк в s.

Выборка чисел, возвращенная как вектор. Длина n равен количеству столбцов в s. Каждый номер образца в n - середина оконного сегмента x.

Циклические частоты, возвращенные как вектор. Длина f равен количеству строк в s.

Момент времени, возвращенный как вектор. Длина t равен количеству столбцов в s. Каждое временное значение в t - середина оконного сегмента x.

Подробнее о

свернуть все

Synchrosqueezed преобразование Фурье

Многие реальные сигналы, такие как формы речевых сигналов, вибрации машины и физиологические сигналы, могут быть выражены как суперпозиция амплитудно-модулированных и частотно-модулированных режимов. Для частотно-временного анализа удобно выражать такие сигналы как суммы аналитических сигналов посредством

f(t)=k=1Kfk(t)=k=1KAk(t)ej2πϕk(t).

Фазы ϕk (t) имеют производные по времени dϕk (t )/ dt, которые соответствуют мгновенным частотам. Когда точные фазы неизвестны, можно использовать synchrosqueezed преобразование Фурье, чтобы оценить их.

Это Synchrosqueezed преобразование Фурье основано на краткосрочном преобразовании Фурье, реализованном в spectrogram функция. Для некоторых видов нестационарных сигналов синхронизированное преобразование напоминает переназначенную спектрограмму, потому что оно генерирует более резкие оценки частоты по времени, чем обычное преобразование. fsst функция определяет кратковременное преобразование Фурье функции, f, с помощью спектрального окна, g и вычислений

Vgf(t,η)=f(x)g(xt)ej2πη(xt)dx.

В отличие от обычного определения, это определение имеет дополнительный коэффициент ej2πηt. Значения преобразования затем «сжимаются» так, что они концентрируются вокруг кривых мгновенной частоты в частотно-временной плоскости. Получившееся синхронизированное преобразование имеет вид

Tgf(t,ω)=Vgf(t,η)δ(ωΩgf(t,η))dη,

где мгновенные частоты оцениваются с помощью «фазового преобразования»

Ωgf(t,η)=1j2πtVgf(t,η)Vgf(t,η)=η1j2πVg/tf(t,η)Vgf(t,η).

Преобразование в знаменателе уменьшает влияние окна. Чтобы увидеть простой пример, обратитесь к разделу «Обнаружение тесно расположенных синусоидов». Определение Tgf (t, ω) отличается в 1/ g (0) от других выражений, найденных в литературе.fsst включает фактор на шаге восстановления режима.

В отличие от переназначенной спектрограммы, синхронизированное преобразование является обратимым и, таким образом, может восстановить отдельные режимы, которые составляют сигнал. Обратимость накладывает некоторые ограничения на расчет краткосрочного преобразования Фурье:

  • Количество точек ДПФ равно длине заданного окна.

  • Перекрытие между смежными оконными сегментами на один меньше длины окна.

  • Переназначение выполняется только по частоте.

Чтобы найти режимы, интегрируйте синхросканированное преобразование на небольшом частотном интервале вокруг В gf (t, η):

fk(t)1g(0)|ωΩk(t)|<εTgf(t,ω)dω,

где ɛ - маленькое число.

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

  1. Для каждого режима частота должна быть строго больше скорости изменения амплитуды: dϕk(t)dt>dAk(t)dt для всех k.

  2. Отдельные режимы должны быть разделены, по крайней мере, полосой частот окна. Если поддержкой окна является интервал [- |dϕk(t)dtdϕm(t)dt|>2Δ для k ≠ m.

Для рисунка см. раздел «Обнаружение тесно расположенных синусоидов».

Ссылки

[1] Оже, Франсуа, Патрик Фландрин, Ю-Тин Лин, Стивен Маклафлин, Сильвен Майнен, Томас Оберлин и Хау-Тиенг У. «Переназначение частоты по времени и синхронизация: обзор». IEEE® Журнал обработки сигналов. Vol. 30, November 2013, pp. 32-41.

[2] Оберлин, Томас, Сильвен Майнен и Валери Перье. «Преобразование синхронизации на основе Фурье». Материалы Международной конференции IEEE по акустике, речи и обработке сигналов (ICASSP) 2014 года, стр. 315-319.

[3] Thakur, Gaurav, and Hau-Tieng Wu. «Основанное на синхронизации восстановление мгновенной частоты из неоднородных выборок». SIAM Journal of Mathematical Analysis. Том 43, 2011, с. 2078-2095.

Расширенные возможности

..
Введенный в R2016b