Глубокое обучение кратковременному преобразованию Фурье
[ указывает дополнительные параметры с помощью аргументов «имя-значение». Опции включают спектральное окно и длину БПФ. Эти аргументы можно добавить к любому из предыдущих входных синтаксисов. Например, 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')

В этом примере используются:
Создайте массив 3 × 160 (× 1), содержащий одну партию трехканального 160-образного синусоидального сигнала. Нормализованные синусоидальные частоты δ/4 рад/образецλ/2 рад/образец 3λ/4 рад/образец. Сохранение сигнала в виде 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' формат. '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 (инструментарий глубокого обучения), отформатированный 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 эквивалентно установке частоты выборки fs = 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 (по умолчанию) | положительное целое числоЧисло точек DFT, указанное как положительное целое число. Значение должно быть больше или равно длине окна. Если длина входного сигнала меньше длины DFT, данные заполняются нулями.
Типы данных: double | single
yr, yi - Кратковременное преобразование Фурьеdlarray объекты | неформатированные dlarray объектыКратковременное преобразование Фурье, возвращаемое как два форматированных dlarray(Панель инструментов глубокого обучения). yr содержит действительную часть преобразования. yi содержит мнимую часть преобразования.
Если x является отформатированным dlarray, yr и yi являются 'SCBT' отформатированный dlarray объекты. 'S' размерность соответствует частоте в кратковременном преобразовании Фурье.
Если x является неформатированным dlarray или числовой массив, yr и yi являются неформатированными dlarray объекты. Порядок измерения в yr и yi является 'SCBT'.
Если информация о времени не указана, то STFT вычисляется по диапазону Найквиста [0, δ], если 'FFTLength' является четным и выше [0, δ), если 'FFTLength' нечетно. Если указать временную информацию, то интервалы будут [0, fs/2] и [0, fs/2) соответственно, где fs - эффективная частота выборки.
f - Частотыdlarray объектЧастоты, на которых вычисляется STFT глубокого обучения, возвращаемые как dlarray объект.
Если входной массив не содержит временной информации, то частоты находятся в нормированных единицах рад/выборки.
Если входной массив содержит информацию о времени, то f содержит частоты, выраженные в Гц.
t - Времяdlarray объект | duration множествоВремя, в которое вычисляется STFT глубокого обучения, возвращаемое как dlarray объект или duration массив.
Если информация о времени не указана, то t содержит номера образцов.
Если вы указываете частоту выборки, то t содержит значения времени в секундах.
Если указать время выборки, то t является duration массив с тем же форматом времени, что и x.
Эта функция полностью поддерживает массивы графических процессоров. Дополнительные сведения см. в разделе Запуск функций MATLAB на графическом процессоре (панель инструментов параллельных вычислений).
istft | stft | stftmag2sig | dlarray (инструментарий для глубокого обучения)
Имеется измененная версия этого примера. Открыть этот пример с помощью изменений?
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.