phased.MonopulseEstimator

Определение направления моноимпульса амплитуды

Описание

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

Чтобы создать оценку моноимпульса:

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

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

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

Создание

Описание

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

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

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

Примечание

Можно также создать phased.MonopulseEstimator объект из phased.MonopulseFeed использование объекта getMonopulseEstimator функция объекта.

Свойства

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

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

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

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

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

Пример: phased.URA

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

Пример: 3e8

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

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

Пример: 1e9

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

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

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

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

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

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

Формат выхода направления, заданный как 'Angle' или 'Angle offset'. Когда вы устанавливаете это свойство на 'Angle'углы выхода расположены в направлении цели. Когда вы устанавливаете это свойство на 'Angle offset'выходные выходы - смещение угла относительно направления рулевого управления массива.

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

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

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

Описание

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

пример

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

[angest,dratio] = estimator(___) также возвращает сумму и коэффициент различия, dratio. Чтобы использовать этот синтаксис, установите SumDifferenceRatioOutputPort свойство к true.

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

 [angest,dratio] = estimator(X,steervec)

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

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

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

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

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

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

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

Зависимости

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

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

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

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

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

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

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

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

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

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

Предполагаемое направление цели, возвращаемое как действительный вектор 1- N или вещественная матрица 2- N. N - количество снимков в сигнале. Модули указаны в степенях.

  • Когда вы устанавливаете Coverage свойство к 'Azimuth', angest является действительным вектором 1-by- N. Элементы содержат расчетный угол азимута целевого направления на каждом моментальном снимке сигнала.

  • Когда вы устанавливаете Coverage свойство к '3D', angest является вещественной 2-бай- N матрицей. Каждый столбец содержит предполагаемое целевое направление в форме [azimuthAngle;elevationAngle], где azimuthAngle - расчетный угол азимута, и elevationAngle - расчетный угол возвышения.

Если вы задаете OutputFormat свойство к 'Angle offset'каждый элемент вектора или матрицы представляет смещение от направления вектора управления.

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

Отношение суммы и разностных каналов, возвращаемое как действительный вектор 1- N или вещественная матрица 2- N. N - количество снимков в сигнале. Модули указаны в степенях.

  • Когда вы устанавливаете Coverage свойство к 'Azimuth', dratio является действительным вектором 1-by- N. Элементы содержат отношение суммы к азимутальному разностному каналу при каждом моментальном снимке сигнала.

  • Когда вы устанавливаете Coverage свойство к '3D', dratio является вещественной 2-бай- N матрицей. Элементы первой строки содержат отношение суммы к азимутальному различию каналу при каждом моментальном снимке сигнала. Элементы второй строки содержат отношение суммы к повышению различия каналу при каждом моментальном снимке сигнала.

Зависимости

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

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

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

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

release(obj)

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

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

Определите направление цели с помощью моноимпульсной обработки сигналов, поступающих на URA. Целевой эхо-сигнал сначала обнаруживается перед применением монопульсной обработки.

array = phased.URA('Size',4);
collect = phased.Collector('Sensor',array);
feed = phased.MonopulseFeed('SensorArray',array,'Coverage','3D');
estimator = phased.MonopulseEstimator('SensorArray',array,'Coverage','3D');

% Create a 100-sample random source signal with a single spike to simulate
% an echo.
x = sqrt(0.01/2)*(randn(100,1)+1i*randn(100,1));
x(20) = 1;
targetangle = [31;9];
rx = collect(x,targetangle);

Наведите моноимпульс в другом направлении от цели. Затем создайте сумму и различие углы.

steerangle = [30;10];
[sumch,azch,elch] = feed(rx,steerangle);

% Detect the target by finding the peak of the sum channel.
[~,idx] = max(abs(sumch));

% Estimate the arrival angle using a monopulse estimator.
est_dir = estimator(sumch(idx),azch(idx),elch(idx),steerangle)
est_dir = 2×1

   31.1307
    9.0132

Ссылки

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

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

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