Пример. Быстрое преобразование Фурье
Функция stft используется для расчета оконного преобразования Фурье (STFT) сигнала, спектральные характеристики которого изменяются со временем.
Функция возвращает матрицу, столбцы которой содержат преобразование Фурье входного сигнала в моменты, разделенные выборками s. Для сигнала x(t) STFT определяется в непрерывном времени как:
Щелкните для копирования этого выражения
где w(t) — скользящее вещественнозначное сужение окна, которое используется для локализации влияния преобразования поблизости от заданного времени.
Сигнал с двумя тонами
Следующий сигнал состоит из двух синусоид разных частот, возникающих в разное время.
1. Задайте компоненты сигнала.
Щелкните для копирования этого выражения
Щелкните для копирования этого выражения
Щелкните для копирования этого выражения
Щелкните для копирования этого выражения
Щелкните для копирования этого выражения
Щелкните для копирования этого выражения
Щелкните для копирования этого выражения
Щелкните для копирования этого выражения
Щелкните для копирования этого выражения
Щелкните для копирования этого выражения
Щелкните для копирования этого выражения
Щелкните для копирования этого выражения
2. Постройте график составного сигнала.
Щелкните для копирования этого выражения
В STFT содержится информация о частотном спектре сигнала и времени, в котором частота присутствует.
3. Рассчитайте STFT со 100 частотными выборками, временным шагом 30 и окном Хэннинга.
Щелкните для копирования этого выражения
Щелкните для копирования этого выражения
Это матрица 100 x 56 (всего имеется 56 временных шагов размером 30 в сигнале длины L)
4. Рассчитайте квадрат величины.
Щелкните для копирования этого выражения
Щелкните для копирования этого выражения
5. Сохраните полученный контур в виде изображения в формате BMP.
Щелкните для копирования этого выражения
(v_spec_rotated.bmp)
На данном изображении показаны не только две частоты, но также и время их возникновения. Однако данная спектрограмма страдает так называемым компромиссом локализации. Для получения временной локализации (когда STFT отмечает время активности синусоид) требуется короткое окно в интервале времени. Напротив, для хорошей частотной локализации необходимо долговременное окно. На этот компромисс также оказывает влияние тип используемого окна, рассматриваемый сигнал, время и частота.
6. В качестве иллюстрации рассчитайте STFT и спектрограмму того же вышеописанного сигнала, но используя длину частотного окна 300 вместо 100.
Щелкните для копирования этого выражения
Щелкните для копирования этого выражения
Щелкните для копирования этого выражения
7. Сохраните полученный контур в виде изображения в формате BMP.
Щелкните для копирования этого выражения
(v_nbspec_rotated.bmp)
STFT, рассчитанное с длинным окном, имеет лучшее частотное разрешение, но временное разрешение при этом ухудшилось. Данный компромисс время-частота можно обойти, используя другие функции времени-частоты, например timefreq и timecorr.
Пользовательское кадрирование
В данном примере частотное окно дополняется нулями до длины преобразования Фурье.
1. Задайте длину окна и процентную часть, занимаемую растущей косинусоидой.
Щелкните для копирования этого выражения
Щелкните для копирования этого выражения
Щелкните для копирования этого выражения
Длина окна не может превышать длину преобразования Фурье.
2. Измените масштаб коэффициентов окна так, чтобы окно имело единицы измерения энергии.
Щелкните для копирования этого выражения
Щелкните для копирования этого выражения
3. Рассчитайте STFT и спектрограмму.
Щелкните для копирования этого выражения
Щелкните для копирования этого выражения
Щелкните для копирования этого выражения
4. Сохраните полученный контур в виде изображения в формате BMP.
Щелкните для копирования этого выражения
(v_spec2_rotated.bmp)
Попробуйте изменить параметры функции stft или частоты синусоид входного сигнала и наблюдайте за изменением графиков.
Было ли это полезно?