В этом примере показано, как маркировать основные временные и частотные характеристики импульсных радиолокационных сигналов. Этот шаг облегчает процесс создания полных и точных наборов данных для обучения моделей искусственного интеллекта (ИИ). Signal Labeler облегчает эту задачу двумя способами. В ручном режиме синхронизированные временные и частотные ракурсы помогают пользователям идентифицировать частотные характеристики, такие как тип формы сигнала, которые могут быть либо Rectangular, LinearFM, или SteppedFM в этом примере. В автоматизированном режиме пользователи могут регистрировать функции, измеряющие частоту повторения импульсов (PRF), длительность импульса, рабочий цикл и ширину полосы пропускания импульса, и только исправлять ошибки вместо маркировки всех сигналов с нуля. Встроенная панель мониторинга помогает отслеживать ход выполнения маркировки и оценивать качество меток.
Радиолокационные сигналы, которые должны быть помечены в этом примере, хранятся в отдельных MAT-файлах. Каждый файл содержит переменную данных x и соответствующая переменная частоты выборки Fs.

Открыть маркировщик сигналов. На вкладке «Маркировщик» нажмите кнопку «Импорт» и выберите From Folders в списке Участники. В диалоговом окне выберите каталог с файлами радиолокационных сигналов. Чтобы указать переменные сигнала, которые требуется прочитать, нажмите «Указать» и введите x. Добавить информацию о времени: Выберите Working in и выберите Time из раскрывающегося списка. Выбрать Sample Rate Variable From Files в списке и введите Fs. Щелкните Импорт (Import). Импортированные файлы отображаются в браузере набора маркированных сигналов. Постройте график сигналов, установив флажки рядом с их именами.

Определение меток
Создайте определение метки для типа сигнала.
Создайте метку строкового атрибута для маркировки типа формы сигнала. Нажмите кнопку Add на вкладке Labeler и выберите Add Label Definition.
В диалоговом окне укажите имя метки как WaveFormType, выберите тип метки атрибута, введите тип данных как string.
Нажмите кнопку ОК.
Повторите действия 1-3 для создания определений меток атрибутов для PRF, рабочего цикла и полосы пропускания. Измените имя метки для каждой и задайте тип данных как numeric.
Создайте метку области интереса (ROI) для ширины пульса, которая соответствует областям, показывающим начальные и конечные пересечения, используемые для вычисления каждой ширины пульса. Укажите имя метки как PulseWidth, тип метки как ROI и тип данных как numeric. Определения меток отображаются в браузере «Определения меток».

Создание пользовательских функций автоматической маркировки
Создание четырех пользовательских функций маркировки для маркировки PRF, полосы пропускания, рабочего цикла и ширины пульса. (Далее в примере приводится код для функций compurePRF, compureBandWidth, compureTaxingCycle и compurePulseWidth.) Чтобы создать каждую функцию, на вкладке Маркировщик щелкните Автоматизировать значение (Automate Value) и выберите Добавить пользовательскую функцию (Add Custom Function). Signal Labeler отображает диалоговое окно с запросом имени, описания и типа метки функции.
Для функции, вычисляющей PRF, введите computePRF в поле Наименование (Name) и выберите Атрибут (Attribute) в качестве типа метки. Поле Описание можно оставить пустым или ввести собственное описание.
Для функции, вычисляющей полосу пропускания, введите computeBandWidth в поле Наименование (Name) и выберите Атрибут (Attribute) в качестве типа метки. Поле Описание можно оставить пустым или ввести собственное описание.
Для функции, вычисляющей рабочий цикл, введите computeDutyCycle в поле Наименование (Name) и выберите Атрибут (Attribute) в качестве типа метки. Поле Описание можно оставить пустым или ввести собственное описание.
Для функции, вычисляющей ширину пульса, введите computePulseWidth в поле Name и выберите ROI в качестве типа метки. Поле Описание можно оставить пустым или ввести собственное описание.
Если функции уже записаны, а функции находятся в текущей папке или в пути MATLAB ®, Signal Labeler добавляет функции в галерею. Если функции не были написаны, Signal Labeler открывает пустые шаблоны в редакторе для ввода или вставки кода. Сохраните файлы. После сохранения файлов функции отображаются в галерее.

Тип сигнала метки, PRF, полоса пропускания, рабочий цикл и ширина пульса
Установите тип сигнала для каждого сигнала:
В браузере набора маркированных сигналов установите флажок рядом с пунктом radarData1.
Перейдите на вкладку «Отображение» и выберите «Спектрограмма» в разделе «Виды». Приложение отображает набор осей с сигнальной спектрограммой и вкладку «Спектрограмма» с опциями для управления представлением.
Щелкните вкладку Спектрограмма (Spectrogram) и задайте процент перекрытия равным 99.
Спектрограмма показывает, что сигнал имеет прямоугольную форму. В таблице атрибутов средства просмотра меток дважды щелкните по ячейке под WaveFormType и введите Rectangular.
Повторите этот шаг ручной маркировки для всех сигналов в наборе данных.
Это пример Rectangular форма сигнала:

Это пример LinearFM форма сигнала:

Это пример SteppedFM форма сигнала:

Вычислите и промаркируйте PRF входных сигналов.
Выберите PRF в браузере «Определения меток».
В галерее «Автоматизировать значение» выберите computePRF.
Щелкните Автомаркировка (Auto-Label) и выберите Auto-Label All Signals. В появившемся диалоговом окне нажмите кнопку ОК.
Повторите описанные выше шаги для полосы пропускания, рабочего цикла и ширины пульса, выбрав соответствующее определение метки и функцию автоматической маркировки.
Signal Labeler вычисляет и маркирует все сигналы, но отображает метки только для сигналов, для которых установлены флажки.

Проверка маркированных сигналов
Просмотрите ход создания меток и проверьте правильность вычисленных значений меток. Выбрать WaveFormType в браузере Определения меток (Label Definitions) и щелкните Панель мониторинга (Dashboard) на вкладке Маркировщик (Labeler).
График слева показывает ход маркировки, который составляет 100%, так как все сигналы помечены WaveFormType этикетка. На графике справа показано количество сигналов с метками для каждого значения метки. Круговую диаграмму распределения меток можно использовать для оценки точности маркировки и подтверждения правильности результатов.

Затем проверьте, что все значения метки ширины пульса распределены вокруг 5e-5. Чтобы просмотреть распределение по времени значений метки ширины пульса, щелкните Выбор определения (Definition Selection) на вкладке Панель мониторинга (Dashboard) и выберите значение Ширина пульса (Pulse Width). Щелкните график распределения времени и на вкладке «Панель мониторинга» задайте для параметра «Ячейки» значение 3, X Min to 4e-5 и X Max to 6e-5. Все сигналы имеют ширину пульса, распределенную вокруг 5e-5.

Закройте панель мониторинга.
Экспорт маркированных сигналов
Экспортируйте маркированные сигналы в обучающие модели ИИ. На вкладке «Маркировщик» нажмите кнопку «Экспорт» и выберите Labeled Signal Set To File. В появившемся диалоговом окне введите имя radarDataLss.mat в набор маркированных сигналов и добавить дополнительное краткое описание. Щелкните Экспорт (Export).
Вернитесь в командное окно MATLAB ®. Загрузите набор маркированных сигналов и создайте хранилища данных сигналов и меток из набора маркированных сигналов. Создание объединенного хранилища данных с хранилищами данных сигналов и меток. Использоватьread или readall для получения пар сигнал-метка, которые можно использовать для обучения моделей ИИ.
load radarDataLss.mat [signalDS,labelDs] = ls.createDatastores('WaveFormType'); combineDs = combine(signalDS,labelDs);
В этом примере показано, как маркировать основные временные и частотные характеристики шумных импульсных радиолокационных сигналов. Было показано, как использовать синхронизированные ракурсы времени и частоты для идентификации частотных характеристик, таких как тип формы сигнала. Вы видели, как регистрировать пользовательские функции автомаркировки для маркировки PRF, длительности импульса, рабочего цикла и полосы пропускания импульса. Вы видели, как использовать встроенную панель мониторинга для отслеживания хода маркировки и оценки качества меток.
computePRF Функция: расчет частоты повторения импульсов
computePRF функция вычисляет и маркирует PRF входного сигнала. Он использует pulseperiod функция.
function [labelVal,labelLoc] = computePRF(x,t,parentLabelVal,parentLabelLoc,varargin) % Function to calculate pulse repetition frequency of a radar pulse if~isreal(x) x = abs(x); end pri = pulseperiod(x,t); labelVal = 1/pri(1); labelLoc = []; end
computeBandWidth Функция: Расчет полосы пропускания импульсов
computeBandWidth функция вычисляет и маркирует полосу пропускания входного сигнала. Он использует obw функция.
function [labelVal,labelLoc] = computeBandWidth(x,t,parentLabelVal,~,varargin) % Function to calculate occupied bandwidth of a radar pulse if~isreal(x) x = abs(x); end fs = 1/mean(diff(t)); labelVal = obw(x,fs); labelLoc = []; end
computeDutyCycle Функция: Расчет скважности импульса
computeDutyCycle функция вычисляет и маркирует рабочий цикл входного сигнала. Он использует dutycycle функция.
function [labelVal,labelLoc] = computeDutyCycle(x,t,parentLabelVal,parentLabelLoc,varargin) % Function to calculate duty cycle of a radar pulse if~isreal(x) x = abs(x); end labelVal = dutycycle(x,t); labelLoc = []; end
computePulseWidth Функция: Расчет длительности импульса
computePulseWidth функция вычисляет и маркирует ширину пульса входного сигнала. Он использует pulsewidth функция.
function [labelVal,labelLoc] = computePulseWidth(x,t,parentLabelVal,parentLabelLoc,varargin) % Function to calculate pulse width of a radar pulse if~isreal(x) x = abs(x); end [pw,ic,fc] = pulsewidth(x,t); labelVal = pw(1); labelLoc = [ic(1) fc(1)]; end