fsst

synchrosqueezed Фурье преобразовывают

Синтаксис

s = fsst(x)
[s,w,n] = fsst(x)
[s,f,t] = fsst(x,fs)
[s,f,t] = fsst(x,ts)
[___] = fsst(___,window)
fsst(___)
fsst(___,freqloc)

Описание

s = fsst(x) возвращает synchrosqueezed преобразование Фурье входного сигнала, x. Каждый столбец s содержит synchrosqueezed спектр оконного сегмента 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(___) без графиков выходных аргументов synchrosqueezed преобразовывают в окно текущей фигуры.

пример

fsst(___,freqloc) задает ось, на которой можно построить частоту.

Примеры

свернуть все

Сгенерируйте 1 024 выборки сигнала, который состоит из суммы синусоид, встроенных в белый Гауссов шум. Нормированные частоты синусоид 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

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

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

axis tight
view(2)
colorbar

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

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

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

  • Окно Kaiser с 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)

Вычислите и отобразите 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')

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

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

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

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

title('Linear Chirp')

Вычислите и отобразите synchrosqueezed преобразование Фурье логарифмического щебета. Щебет выбирается на уровне 1 кГц, запускается на уровне 20 Гц и пересекает 60 Гц в t = 1 с. Используйте окно Kaiser с 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)

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

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

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

load mtlb

% To hear, type sound(mtlb,Fs)

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

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

Используйте 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')

% 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 и окна каждый сегмент с окном Kaiser той длины и β = 10. Перекрытием между смежными сегментами является window – 1.

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

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

Для списка доступных окон смотрите Windows.

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

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

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

  • 'xaxis' — Частота отображений на оси X и время на оси Y.

  • 'yaxis' — Частота отображений на оси Y и время на оси X.

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

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

свернуть все

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

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

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

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

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

Больше о

свернуть все

Фурье Синкроскеезед Трансформ

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

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

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

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

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

В отличие от обычного определения, это определение имеет дополнительный фактор e j 2πηt. Значения преобразования затем “сжаты” так, чтобы они сконцентрировались вокруг кривых мгновенной частоты в плоскости частоты времени. Получившиеся synchrosqueezed преобразовывают, имеет форму

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 включает фактор в шаг реконструкции режима.

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

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

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

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

Чтобы найти режимы, объединяйтесь, synchrosqueezed преобразовывают на маленьком интервале частоты вокруг Ωgf (t, η):

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

где ɛ является небольшим числом.

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

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

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

Для рисунка относитесь, чтобы Обнаружить Близко расположенные Синусоиды.

Ссылки

[1] Thakur, Горэв и Хау-Тен У. “Находящееся в Synchrosqueezing Восстановление Мгновенной Частоты от Неоднородных Выборок”. SIAM Journal Математического анализа. Издание 43, 2011, стр 2078–2095.

[2] Оберлин, Томас, Сильвен Меинан и Валери Перрье. “Основанное на Фурье Преобразование Synchrosqueezing”. Продолжения Международной конференции 2014 IEEE® по вопросам Акустики, Речи и Обработки сигналов (ICASSP), стр 315–319.

[3] Сверлите, Франсуа, Патрик Фландрен, Yu-звон Лин, Стивен Мак-Лафлин, Сильвен Меинан, Томас Оберлин и Хау-Тен У. “Частота времени Reassignment и Synchrosqueezing: Обзор”. Журнал Обработки сигналов IEEE. Издание 30, ноябрь 2013, стр 32–41.

Введенный в R2017b

Для просмотра документации необходимо авторизоваться на сайте