phased.MonopulseFeed

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

Описание

Поэтапное. Система MonopulseFeed 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 только выводить каналы различия и сумма.

Типы данных: логический

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

Описание

[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 с комплексным знаком-by-1 вектор-столбец, где M является количеством строк X.

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

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

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

Сигнал канала различия вертикального изменения, возвращенный как M с комплексным знаком-by-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. Анализ и проектирование радиолокационной системы Используя MATLAB. Бока-Ратон: Чепмен и Холл/CRC, 2000.

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

Введенный в R2018b