phased.MonopulseFeed

Создает суммарные и разностные каналы

Описание

Поэтапный. MonopulseFeed System object™ реализует систему моноимпульсного питания для амплитудной суммы и разностного моноимпульсного трекера. Этот объект объединяет принятые сигналы от произвольного массива, чтобы сформировать сумму и разностные каналы. Можно использовать этот объект как канал для phased.MonopulseEstimator Системный объект.

Для создания моноимпульсной системы питания:

  1. Создайте phased.MonopulseFeed Объекту и установите его свойства.

  2. Вызывайте объект с аргументами, как будто это функция.

Дополнительные сведения о работе системных объектов см. в разделе «Что такое системные объекты?».

Создание

Описание

feed = phased.MonopulseFeed создает монопульсионный Системный объект питания, feed, со значениями свойств по умолчанию.

feed = phased.MonopulseFeed(Name,Value) создает систему каналов с каждым свойством Name установить на заданное Value. Можно задать дополнительные аргументы пары "имя-значение" в любом порядке как (Name1, Value1..., NameN, ValueN). Заключайте каждое имя свойства в одинарные кавычки.

Пример: feed = phased.MonopulseFeed('SensorArray',phased.URA,'OperatingFrequency',300e6,'Coverage','Azimuth') устанавливает массив датчиков в равномерный прямоугольный массив (URA) с значениями свойств URA по умолчанию. Питание образует только суммарный канал и азимутальный разностный канал. Система подачи работает на частоте 300 МГц.

Свойства

расширить все

Если не указано иное, свойства являются нетронутыми, что означает, что вы не можете изменить их значения после вызова объекта. Объекты блокируются, когда вы вызываете их, и release функция разблокирует их.

Если свойство настраивается, можно изменить его значение в любой момент.

Для получения дополнительной информации об изменении значений свойств смотрите Разработку системы в MATLAB Использование Системных объектов.

Массив датчиков, заданный как массив Системный объект, принадлежащий Phased Array System Toolbox. Сенсорный массив может содержать подрешетки.

Пример: phased.URA

Скорость распространения сигнала, заданная как положительная скалярная величина. Модули указаны в метрах в секунду. Скорость распространения по умолчанию является значением, возвращаемым physconst('LightSpeed'). Посмотрите physconst для получения дополнительной информации.

Пример: 3e8

Типы данных: double

Рабочая частота, заданная как положительная скалярная величина. Модули указаны в Гц.

Пример: 1e9

Типы данных: double

Направления покрытия моноимпульсной подачи, указанные как '3D' или 'Azimuth'. Когда вы устанавливаете это свойство на '3D'моноимпульсное сырье образует суммарный канал и как азимутальный, так и различие по повышению. Когда вы устанавливаете это свойство на 'Azimuth'моноимпульсное сырье образует суммарный канал и азимутальный разностный канал.

Пример: 'Azimuth'

Угол косоглазия, заданный как скаляр или реальный вектор 2 на 1. Угол косоглазия является углом разделения или углами между суммарной балкой и балками в направлении азимута и повышения.

  • Когда вы устанавливаете Coverage свойство к 'Azimuth', установите SquintAngle свойство скаляру.

  • Когда вы устанавливаете Coverage свойство к '3D', можно задать угол косоглазия как скаляр или вектор. Если вы задаете SquintAngle свойство скаляру, тогда угол косоглазия одинаковый как по азимуту, так и по повышению направлениям. Если вы задаете SquintAngle свойство вектору 2 на 1, его элементы задают угол косоглазия вдоль направления азимута и повышения.

Пример: [20;5]

Включите выход оценки угла, заданный как false или true. Установите это свойство на true для вывода оценки угла в дополнение к сумме и разностным каналам. Установите это свойство на false для вывода только суммарных и разностных каналов.

Типы данных: logical

Использование

Описание

[sumchan,diffazchan] = feed(X,steervec) возвращает сигнал суммарного канала, sumchanи сигнал разностного канала азимута, diffazchan, вычисленный из входного сигнала, X. steervec задает направление рулевого управления массива. Чтобы использовать этот синтаксис, установите Coverage свойство к 'Azimuth'.

[sumchan,diffazchan,diffelchan] = feed(X,steervec) также возвращает сигнал различия повышений, diffelchan. Чтобы использовать этот синтаксис, установите Coverage свойство к '3D'.

пример

[___,angest] = feed(X,steervec) также возвращает расчетный угол направления, angest. Чтобы использовать этот синтаксис, установите AngleOutputPort свойство к true.

Входные параметры

расширить все

Входной сигнал, заданный как комплексная матрица M -by N, где M - количество выборок или моментальных снимков данных, а N - количество элементов массива. Если массив содержит подрешеток, то N количество подрешеток.

Размер первой размерности матрицы входа может варьироваться, чтобы симулировать изменяющуюся длину сигнала. Изменение размера может произойти, например, в случае импульсного сигнала с переменной частотой повторения импульса.

Типы данных: double
Поддержка комплексного числа: Да

Направление управления массивом, заданное как скалярный или действительный вектор-столбец 2 на 1.

  • Когда вы устанавливаете Coverage свойство к 'Azimuth'направление рулевого управления является скаляром и представляет угол азимутального рулевого управления.

  • Когда вы устанавливаете Coverage свойство к '3D', вектор управления имеет вид [azimuthAngle; elevationAngle], где azimuthAngle - азимутальный угол рулевого управления и elevationAngle - угол поворота руля по повышению.

Модули указаны в степенях. Азимутальные углы лежат между -180 ° и 180 °, включительно, а вертикальные - между -90 ° и 90 ° включительно.

Пример: [40;10]

Типы данных: double

Можно объединить необязательные входные параметры, если заданы их разрешающие свойства. Необязательные входы должны быть перечислены в том же порядке, как и порядок разрешающих свойств. Для примера,

array = phased.URA('Size',[5 5]);
feed = phased.MonopulseFeed('SensorArray',array,'Coverage','3D', ...
       'AngleOutputPort',true);
[sumch,dazch,delch,angest] = feed(X,steervec);

Выходные аргументы

расширить все

Суммарный сигнал, возвращаемый как комплексный вектор- M-на-1 столбец, где M - количество строк X.

Типы данных: double
Поддержка комплексного числа: Да

Сигнал разностного канала Азимута, возвращаемый как комплексный вектор- M-на-1 столбец, где M - количество строк X.

Типы данных: double
Поддержка комплексного числа: Да

Сигнал разности каналов по повышению, возвращаемый как комплексный вектор- M-на-1 столбец, где M - количество строк X.

Зависимости

Чтобы включить этот выходной аргумент, установите Coverage свойство к '3D'.

Типы данных: double
Поддержка комплексного числа: Да

Предполагаемое направление цели, возвращаемое как действительный вектор 2 на 1 в форме [azimuth,elevation]. Модули указаны в степенях.

Зависимости

Чтобы включить этот выходной аргумент, установите AngleOutputPort свойство к true.

Типы данных: double

Функции объекта

Чтобы использовать функцию объекта, задайте системный объект в качестве первого входного параметра. Например, чтобы освободить системные ресурсы системного объекта с именем obj, используйте следующий синтаксис:

release(obj)

расширить все

getMonopulseEstimatorСоздайте оценку моноимпульса из моноимпульсного сырья
stepЗапуск алгоритма системного объекта
releaseОтпустите ресурсы и допустите изменения в значениях свойств системного объекта и входных характеристиках
resetСброс внутренних состояний Системного объекта

Примеры

свернуть все

После создания суммарных и разностных каналов определите направление цели приблизительно в 24 степенях азимута и 40 степенях повышения относительно равномерного прямоугольного массива 5 на 5.

Создайте моноимпульсную систему питания на основе URA.

fc = 200e6;
c = physconst('LightSpeed');
lambda = c/fc;
array = phased.URA('Size',[5 5],'ElementSpacing',lambda/2);
feed = phased.MonopulseFeed('SensorArray',array,'OperatingFrequency', ...
    fc,'Coverage','3D','AngleOutputPort',true);

Создайте сигнал с помощью вектора управления.

steervector = phased.SteeringVector('SensorArray',array);
x = steervector(feed.OperatingFrequency,[24;40]).';

Получите сумму и разностные каналы и расчетный целевой угол.

[sumch,azch,elch,est_dir] = feed(x,[30;35]);
disp(est_dir)
   24.3705
   41.1997

Используйте производное phased.MonopulseEstimator объект, чтобы также получить целевой угол.

estimator = getMonopulseEstimator(feed);
est_dir = estimator(sumch,azch,elch,[30;35])
est_dir = 2×1

   24.3705
   41.1997

Ссылки

[1] Mahafza, B.R. Радиолокационная система Analysis And Design Using Matlab. Бока Ратон: Чапман и Холл/CRC, 2000.

Расширенные возможности

.
Введенный в R2018b