stft
Оконное преобразование Фурье.
| Библиотека |
|
Синтаксис
Вызов функции
-
s = stft(x)— возвращает Оконное преобразование Фурье (ОПФ) входного сигналаx.
-
s = stft(___,Name,Value)— задает дополнительные параметры с использованием аргументов типа «имя-значение». Значения таких аргументов включают окно и длину БПФ. Эти аргументы можно добавить к любому из предыдущих входных синтаксисов.
-
stft(___)— без выходных аргументов строит график квадрата амплитуды ОПФ в децибелах в текущем окне графиков.
Аргументы
Входные аргументы
#
x —
входной сигнал
вектор | матрица
Details
Входной сигнал, заданный как вектор или матрица.
Если требуется, чтобы x и s имели одинаковую длину, значение (length(x)-noverlap)/(length(window)-noverlap) должно быть целым числом. Используйте аргумент Window, чтобы задать длину window и аргумент OverlapLength, чтобы задать noverlap.
|
-
Если входные данные содержат несколько каналов, задайте
xкак матрицу, где каждый столбец соответствует каналу.
Каждый канал сигнала x должен иметь длину, большую или равную длине окна.
| Типы данных |
|
| Поддержка комплексных чисел |
Да |
#
fs —
частота дискретизации
2π (по умолчанию) | положительный скаляр
Details
Частота дискретизации, заданная как положительный скаляр.
| Типы данных |
|
#
ts —
период дискретизации
скаляр
Details
Период дискретизации, заданный как скаляр.
Входные аргументы «имя-значение»
Укажите необязательные пары аргументов в виде Name,Value, где Name — имя аргумента, а Value — соответствующее значение. Аргументы типа «имя-значение» должны располагаться после других аргументов, но порядок пар не имеет значения.
Используйте запятые для разделения имени и значения, а Name заключите в кавычки.
#
Window —
спектральное окно
hann(128,"periodic") (по умолчанию) | вектор
Details
Спектральное окно, заданное как вектор. Если аргумент Window не задан или задан как пустой, функция использует окно Ханна длиной 128. Длина аргумента Window должна быть больше или равна 2.
Список доступных окон см. в разделе Windows — функции окон.
| Типы данных |
|
#
OverlapLength —
количество перекрывающихся отсчетов
75% от длины окна (по умолчанию) | неотрицательное целое число
Details
Количество перекрывающихся отсчетов, заданное как положительное целое число, меньшее длины аргумента Window. Если аргумент OverlapLength не задан или пуст, функция использует наибольшее целое число, меньшее 75% от длины окна, что составляет 96 отсчетов для окна Ханна по умолчанию.
| Типы данных |
|
#
FFTLength —
количество точек ДПФ
128 (по умолчанию) | положительное целое число
Details
Количество точек ДПФ, заданное как положительное целое число. Значение должно быть больше или равно длине окна. Если длина входного сигнала меньше длины ДПФ, данные дополняются нулями.
| Типы данных |
|
#
FrequencyRange —
диапазон частот ОПФ
"centered" (по умолчанию) | "twosided" | "onesided"
Details
Диапазон частот ОПФ, заданный как "centered", "twosided" или "onesided".
-
"centered"— вычислить двустороннее центрированное ОПФ. Если значение аргументаFFTLengthчетное, тоsвычисляется в интервале рад/отсчет. Если значение аргументаFFTLengthнечетное, тоsвычисляется в интервале рад/отсчет. Если указана информация о времени, то интервалы составляют циклов в единицу времени и циклов в единицу времени соответственно, где — эффективная частота дискретизации. -
"twosided"— вычислить двустороннее ОПФ в интервале рад/отсчет. Если указана информация о времени, то интервал составляет циклов в единицу времени. -
"onesided"— вычислить одностороннее ОПФ. Если значение аргументаFFTLengthчетное, тоsвычисляется в интервале рад/отсчет. Если значение аргументаFFTLengthнечетное, тоsвычисляется в интервале рад/отсчет. Если указана информация о времени, то интервалы составляют циклов в единицу времени и циклов в единицу времени соответственно, где — эффективная частота дискретизации. Этот вариант действителен только для вещественных сигналов.
Если для данного аргумента установлено значение "onesided", функция stft выводит значения в положительной полосе Найквиста и не сохраняет общую мощность.
|
| Типы данных |
|
#
OutputTimeDimension —
временное измерение вывода
"acrosscolumns" (по умолчанию) | "downrows"
Details
Временное измерение вывода, заданное как "acrosscolumns" или "downrows". Установите значение "downrows", если требуется, чтобы временное измерение s выводилось по строкам, а частотное — по столбцам. Установите значение "acrosscolumns", если требуется, чтобы временное измерение s выводилось по столбцам, а частотное — по строкам. Этот входной аргумент игнорируется, если функция вызывается без выходных аргументов.
#
out —
тип выходных данных
:data (по умолчанию) | :plot
Details
Тип выходных данных:
-
:data— функция возвращает данные; -
:plot— функция возвращает график.
Выходные аргументы
#
s —
оконное преобразование Фурье
матрица | трехмерный массив
Details
Оконное преобразование Фурье, возвращаемое в виде матрицы или трехмерного массива. Время увеличивается по столбцам s, а частота — по строкам. Третье измерение, если оно присутствует, соответствует входным каналам.
-
Если сигнал
xимеет временных отсчетов, тоsимеет столбцов, где , — длина аргументаWindow, — длина аргументаOverlapLength, а символы обозначают функцию округления до ближайшего целого в меньшую сторону ( ). -
Количество строк в
sравно значению, заданному в аргументеFFTLength.
| Типы данных |
|
#
f —
частоты
вектор
Details
Частоты, на которых вычисляется ОПФ, возвращаемые в виде вектора.
| Типы данных |
|
#
t —
моменты времени
вектор
Details
Моменты времени, возвращаемые в виде вектора. Аргумент t содержит значения времени, соответствующие центрам сегментов данных, используемых для вычисления оценок оконного спектра мощности.
| Типы данных |
|
Дополнительно
Оконное преобразование Фурье
Details
Оконное преобразование Фурье (ОПФ) используется для анализа изменения частотного спектра нестационарного сигнала во времени. Квадрат амплитуды ОПФ называется представлением сигнала спектрограммы в частотно-временной области.
ОПФ сигнала вычисляется путем перемещения окна анализа длиной по сигналу и вычисления дискретного преобразования Фурье (ДПФ) каждого сегмента оконных данных. Окно смещается по исходному сигналу с интервалом в отсчетов, что эквивалентно отсчетов перекрытия между соседними сегментами. Большинство оконных функций сужаются к краям, чтобы избежать эффекта Гиббса. ДПФ каждого оконного сегмента добавляется к комплексной матрице, содержащей амплитуду и фазу для каждой точки времени и частоты. Матрица ОПФ имеет
столбцов, где — длина сигнала , а символы обозначают функцию . Количество строк в матрице равно , т.е. количеству точек ДПФ, для центрированных и двусторонних преобразований и нечетному числу, близкому к , для односторонних преобразований вещественных сигналов.
В матрице ОПФ -й столбец
содержит ДПФ оконных данных, центрированных относительно времени :
Литература
-
Mitra, Sanjit K. Digital Signal Processing: A Computer-Based Approach. 2nd Ed. New York: McGraw-Hill, 2001.
-
Sharpe, Bruce. Invertibility of Overlap-Add Processing. https://gauss256.github.io/blog/cola.html, accessed July 2019.
-
Smith, Julius Orion. Spectral Audio Signal Processing. https://ccrma.stanford.edu/~jos/sasp/, online book, 2011 edition, accessed Nov 2018.