Глубокое обучение кратковременное преобразование Фурье
[
задает дополнительные опции, используя аргументы имя-значение. Опции включают спектральное окно и длину БПФ. Эти аргументы могут быть добавлены к любому из предыдущих входных синтаксисов. Для примера, yr
,yi
] = dlstft(___,Name,Value
)'DataFormat','CBT'
задает формат данных x
как CBT
.
Сгенерируйте сигнал, дискретизированный на частоте 600 Гц в течение 2 секунд. Сигнал состоит из щебета с синусоидально изменяющимся содержимым частоты.
fs = 6e2; t = 0:1/fs:2; x = vco(sin(2*pi*t),[0.1 0.4]*fs,fs);
Сохраните сигнал в неформатированном глубоком обучении массиве. Вычислите кратковременное преобразование Фурье сигнала. Введите шаг расчета как duration
скаляр. (В качестве альтернативы введите частоту дискретизации как числовой скаляр.) Задайте, что входной массив в 'CTB'
формат.
dlx = dlarray(x); [yr,yi,f,t] = dlstft(dlx,seconds(1/fs),'DataFormat','CTB');
Преобразуйте выходы в числовые массивы. Вычислите величину кратковременного преобразования Фурье и отобразите его как график водопада.
yr = extractdata(yr); yi = extractdata(yi); f = extractdata(f); t = seconds(t); ax = newplot; waterfall(ax,f,t,squeeze(hypot(yr,yi))') ax.XDir = 'reverse'; view(30,45) ylabel('Time (s)') xlabel('Frequency (Hz)') zlabel('Magnitude')
Сгенерируйте a массив, содержащий одну партию трехканального синусоидального сигнала с 160 дискретизацией. Нормированные синусоидальные частоты рад/образец, рад/образец, и рад/образец. Сохраните сигнал как dlarray
, указание размерностей по порядку. dlarray
транспозиция измерений массива в 'CBT'
форма, ожидаемая нейронной сетью для глубокого обучения. Отобразите размеры измерения массива.
x = dlarray(cos(pi.*(1:3)'/4*(0:159)),'CTB');
[nchan,nbtch,nsamp] = size(x)
nchan = 3
nbtch = 1
nsamp = 160
Вычислите глубокое обучение кратковременного преобразования Фурье сигнала. Задайте прямоугольное окно с 64 образцами и длину БПФ 1024.
[re,im,f,t] = dlstft(x,'Window',rectwin(64),'FFTLength',1024);
dlstft
вычисляет преобразование вдоль 'T'
размерность. Массивы выхода находятся в 'SCBT'
формат. The 'S'
размерность соответствует частоте в кратковременном преобразовании Фурье.
Извлеките данные из глубокого обучения массивов.
re = squeeze(extractdata(re)); im = squeeze(extractdata(im)); f = extractdata(f); t = extractdata(t);
Вычислите величину кратковременного преобразования Фурье. Постройте график величины отдельно для каждого канала на графике водопада.
z = abs(re + 1j*im); for kj = 1:nchan subplot(nchan,1,kj) waterfall(f/pi,t,squeeze(z(:,kj,:))') view(30,45) end xlabel('Frequency (\times\pi rad/sample)') ylabel('Samples')
x
- Входной массивdlarray
объект | числовой массивВходной массив, заданный как неформатированный dlarray
(Deep Learning Toolbox), форматированный dlarray
в 'CBT'
формат или числовой массив. Если x
является неформатированным dlarray
или числовой массив, необходимо задать 'DataFormat'
как некоторое сочетание 'CBT'
.
Пример: dlarray(cos(pi./[4;2]*(0:159)),'CTB')
и dlarray(cos(pi./[4;2]*(0:159))','TCB')
оба задают одно пакетное наблюдение двухканальной синусоиды в 'CBT'
формат.
fs
- Частота дискретизацииЧастота дискретизации, заданная как положительный числовой скаляр.
ts
- Шаг расчетаduration
скалярШаг расчета, заданный как duration
скаляр. Определение ts
эквивалентно установке частоты дискретизации f s = 1/ ts
.
Пример: seconds(1)
является duration
скаляр, представляющий 1-секундное временное различие между последовательными выборками сигнала.
Задайте необязательные разделенные разделенными запятой парами Name,Value
аргументы. Name
- имя аргумента и Value
- соответствующее значение. Name
должны находиться внутри кавычек. Можно задать несколько аргументов в виде пар имен и значений в любом порядке Name1,Value1,...,NameN,ValueN
.
'Window',hamming(100),'OverlapLength',50,'FFTLength',128
окрашивает данные с помощью 100-выборочного окна Хэмминга с 50 выборками перекрытия между смежными сегментами и БПФ с 128 точками.'DataFormat'
- Формат данных входаФормат данных входов, заданный как вектор символов или строковый скаляр. Этот аргумент действителен только в том случае, если x
не форматирован.
Каждый символ в этом аргументе должен быть одной из следующих меток:
C
- Канал
B
- Пакетные наблюдения
T
- Время
dlstft
функция принимает любое сочетание 'CBT'
. Можно задать самое большее одно из каждого из C
, B
, и T
метки.
Каждый элемент аргумента помечает соответствующий размерность x
. Если аргумент не находится в перечисленном порядке ('C'
далее следуют 'B'
и так далее), затем dlstft
неявно транспозиция аргумента и данных в соответствии с порядком, но без изменения способа хранения данных.
Пример: 'CBT'
'Window'
- Спектральное окноhann(128,'periodic')
(по умолчанию) | векторСпектральное окно, заданное как вектор. Если вы не задаете окно или не задаете его как пустое, функция использует окно Ханна длины 128. Длина 'Window'
должно быть больше или равно 2.
Список доступных окон см. в разделе Windows.
Пример: hann(N+1)
и (1-cos(2*pi*(0:N)'/N))/2
оба задают окно Ханна длины N
+ 1.
Типы данных: double
| single
'OverlapLength'
- Количество перекрываемых выборок75%
длины окна (по умолчанию) | неотрицательным целым числомКоличество перекрывающихся выборок, заданное в виде неотрицательного целого числа, меньшего длины 'Window'
. Если вы опускаете 'OverlapLength'
или укажите его как пустой, оно устанавливается на самое большое целое число менее 75% длины окна, что составляет 96 выборок для окна Ханна по умолчанию.
Типы данных: double
| single
'FFTLength'
- Количество дискретных точек преобразования Фурье (DFT)128
(по умолчанию) | положительное целое числоКоличество точек ДПФ, заданное как положительное целое число. Значение должно быть больше или равно длине окна. Если длина входного сигнала меньше длины ДПФ, данные заполняются нулями.
Типы данных: double
| single
yr
, yi
- Короткое преобразование Фурьеdlarray
объекты | неформатированными dlarray
объектыКратковременное преобразование Фурье, возвращенное как два форматированных dlarray
(Deep Learning Toolbox) объекты. yr
содержит вещественную часть преобразования. yi
содержит мнимую часть преобразования.
Если x
является форматированным dlarray
, yr
и yi
являются 'SCBT'
форматированные dlarray
объекты. The 'S'
размерность соответствует частоте в кратковременном преобразовании Фурье.
Если x
является неформатированным dlarray
или числовой массив, yr
и yi
неформатированные dlarray
объекты. Порядок размерности в yr
и yi
является 'SCBT'
.
Если информация о времени не задана, STFT вычисляется в области значений Nyquist [0, π] если 'FFTLength'
четный и более [0, π), если 'FFTLength'
нечетно. Если вы задаете информацию о времени, то интервалы являются [0, f s/2] и [0, f s/2), соответственно, где f s - эффективная частота дискретизации.
f
- Частотыdlarray
объектЧастоты, на которых вычисляется STFT глубокого обучения, возвращаются как dlarray
объект.
Если массив входа не содержит информацию о времени, то частоты находятся в нормализованных модулях рад/отсчета.
Если массив входа содержит информацию о времени, то f
содержит частоты, выраженные в Гц.
t
- Времяdlarray
| объекта duration
массивВремена, в которые вычисляется глубокое обучение STFT, возвращаются как dlarray
объект или duration
массив.
Если вы не задаете информацию о времени, то t
содержит номера образцов.
Если вы задаете частоту дискретизации, то t
содержит значения времени в секундах.
Если вы задаете шаг расчета, то t
является duration
массив с тем же форматом времени, что и x
.
Эта функция полностью поддерживает массивы GPU. Для получения дополнительной информации смотрите Запуск функций MATLAB на графическом процессоре (Parallel Computing Toolbox).
istft
| stft
| stftmag2sig
| dlarray
(Deep Learning Toolbox)
У вас есть измененная версия этого примера. Вы хотите открыть этот пример с вашими правками?
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.