phased.SteeringVector

Сенсорный массив рулевого вектора

Описание

The SteeringVector Системный объект создает векторы управления для массива для нескольких направлений и частот.

Чтобы вычислить вектор управления для массива для заданных направлений и частоты

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

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

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

Создание

Описание

steervec = phased.SteeringVector создает вектор управления System object™, steervec, со значениями свойств по умолчанию.

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

Пример: steervec = phased.SteeringVector('SensorArray',phased.URA,'PropagationSpeed',physconst('LightSpeed')) создает объект вектора управления для равномерного прямоугольного массива (URA) со значениями свойств URA по умолчанию и устанавливает скорость распространения на скорость света.

Свойства

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

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

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

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

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

Пример: phased.URA

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

Пример: 3e8

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

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

Когда массив, заданный в свойстве SensorArray, содержит подрешетки, вектор управления применяется к подрешеткам. Если SensorArray не содержит подрешеток, вектор управления применяется к элементам массива.

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

Количество бит квантования сдвигателя фазы, заданное в виде неотрицательного целого числа. Это количество бит используется для квантования компонента сдвига фазы блока формирования луча или весов вектора управления. Значение нуля указывает, что квантование не выполняется.

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

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

Если вы задаете это свойство равным false для массива, который фактически поддерживает поляризацию, тогда вся информация поляризации отбрасывается. Комбинированный шаблон из H и V компонентов поляризации используется в каждом элементе, чтобы вычислить вектор управления.

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

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

Описание

пример

SV = steervec(FREQ,ANG) возвращает вектор управления, SV, указывая в направлениях, заданных ANG и для рабочих частот, указанных в FREQ. Смысл SV зависит от свойства IncludeElementResponse следующим образом:

  • Если IncludeElementResponse true, компоненты SV включать отдельные отклики элемента.

  • Если IncludeElementResponse false, расчет принимает, что элементы изотропны и SV не включает отдельные отклики элемента. Если массив содержит подрешетки, SV - коэффициент массива среди подрешеток. Центр фазы каждой подрешетки находится в его геометрическом центре. Если SensorArray не содержит подрешеток, SV - коэффициент массива среди элементов.

SV = steervec(FREQ,ANG,STEERANG) также задает угол поворота подрешетки, STEERANG. Чтобы использовать этот синтаксис, задайте для свойства SensorArray тип массива, который содержит подрешетки, и установите для IncludeElementResponse значение true. Массивы, которые содержат подрешетки, являются phased.PartitionedArray и phased.ReplicatedSubarray. В этом случае установите SubarraySteering свойство этих массивов любому из 'Phase' или 'Time'.

SV = steervec(FREQ,ANG,STEERANG,WS) также задает WS как веса, примененные к каждому элементу в каждой подрешетке. Чтобы использовать этот синтаксис, установите свойство SensorArray в массив, который поддерживает подрешетки, и установите SubarraySteering свойство массива, которое нужно 'Custom'.

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

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

Направления векторов управления, заданные как действительный вектор с M длиной или как действительная матрица с 2 M. M - количество направлений рулевого управления. Когда ANG является матрицей M 2 байта, каждый столбец матрицы задает направление в пространстве в форме [azimuth; elevation]. Угол азимута должен быть между -180 ° и 180 °, а угол возвышения должен быть между -90 ° и 90 °. Когда ANG является вектором M длины, его значения соответствуют азимутальным углам направления вектора рулевого управления с углами возвышения, установленными на нуль. Угловые модули находятся в степенях.

Пример: [50.0,17.0,-24.5;0.4,4.0,23.9]

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

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

Пример: [4100.0,4200.0]

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

Направление управления подрешетки, заданное как скаляр или действительный вектор 2 на 1. Когда STEERANG вектор 2 на 1, он задает направление рулевого управления подрешетки в форме [azimuth;elevation]. Угол азимута должен быть между -180 ° и 180 °, а угол возвышения должен быть между -90 ° и 90 °. Когда STEERANG является скаляром, его значение соответствует углу азимута направления рулевого управления подрешетки с углами возвышения, установленными на нуль. Угловые модули находятся в степенях.

Пример: [50.0;10.0]

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

Веса элементов подрешетки, заданные как комплексные N SE-by N матрица или 1-by- N массив ячеек, где N - количество подрешеток. Эти веса применяются к отдельным элементам в подрешетку.

Веса элементов подрешетки

Датчик МассиваПодрешетки
phased.ReplicatedSubarray

Все подрешетки имеют одинаковые размерности и размеры. Затем веса подрешетки образуют N матрицу SE-by- N. N SE - это количество элементов в каждой подрешетке, а N - это количество подрешеток. Каждый столбец WS задает веса для соответствующей подрешетки.

phased.PartitionedArray

Подрешетки могут не иметь одинаковых размерностей и размеров. В этом случае можно задать веса подрешетки как

  • N матрица SE-by- N, где N SE теперь является количеством элементов в самой большой подрешетке. Первые Q значения в каждом столбце являются весами элементов для подрешетки, где Q - количество элементов в подрешетке.

  • массив ячеек 1 N байта. Каждая камера содержит вектор-столбец весов для соответствующих подрешеток. Длины векторов-столбцов равны количеству элементов в соответствующих подрешетках.

Зависимости

Чтобы включить этот аргумент, установите Sensor свойство для массива, который содержит подрешетки и устанавливает SubarraySteering свойство массива, которое нужно 'Custom'.

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

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

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

Вектор управления, возвращенный как комплексный N массив -by M -by L или как структура, содержащая массивы.

Форма вектора управления зависит от того, задано ли свойство EnablePolarization true или false.

  • Если для EnablePolarization задано значение false, вектор управления, SV, является N -by- M -by- L массивом. Длина первой размерности, N, является количеством элементов фазированной решетки. Если SensorArray содержит подрешеток, N количество подрешеток. Длина второго измерения, M, соответствует количеству направлений рулевого управления, заданных в ANG аргумент. Длина третьей размерности, L, является количеством частот, заданным в FREQ аргумент.

  • Если для EnablePolarization задано значение true, SV является MATLAB struct содержащие два поля, SV.H и SV.V. Эти два поля представляют горизонтальную (H) и вертикальную (V) поляризационные компоненты вектора управления. Каждое поле является N -by M -by L массивом. Длина первой размерности, N, является количеством элементов фазированной решетки. Если SensorArray содержит подрешеток, N количество подрешеток. Длина второго измерения, M, соответствует количеству направлений рулевого управления, заданных в ANG аргумент. Длина третьей размерности, L, является количеством частот, заданным в FREQ аргумент.

    Симуляция поляризации также требует, чтобы массив датчика, заданный в свойстве SensorArray, мог симулировать поляризацию, и чтобы свойство IncludeElementResponse было установлено на true.

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

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

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

release(obj)

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

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

Примеры

свернуть все

Вычислите и отобразите вектор управления для однородного линейного массива с 4 элементами в направлении 30 степеней азимута и 20 степеней повышения. Предположим, что рабочая частота массива составляет 300 МГц.

array = phased.ULA('NumElements',4);
steervec = phased.SteeringVector('SensorArray',array);
fc = 3e8;
ang = [30; 20];
sv = steervec(fc,ang)
sv = 4×1 complex

  -0.6011 - 0.7992i
   0.7394 - 0.6732i
   0.7394 + 0.6732i
  -0.6011 + 0.7992i

Вычислите вектор управления для однородного линейного массива с 4 элементами (ULA) в направлении 30 степеней азимута и 20 степеней повышения. Предположим, что рабочая частота массива составляет 300 МГц.

fc = 300e6;
c = physconst('LightSpeed');
array = phased.ULA('NumElements',4);
steervec = phased.SteeringVector('SensorArray',array);
sv = steervec(fc,[30;20]);

Постройте диаграммы направленности для равномерного линейного массива, когда вектор управления не применяется (рулевая широкая сторона) и когда применяется вектор управления.

subplot(211)
pattern(array,fc,-180:180,0,'CoordinateSystem','rectangular', ...
    'PropagationSpeed',c,'Type','powerdb')
title('Without steering')
subplot(212)
pattern(array,fc,-180:180,0,'CoordinateSystem','rectangular', ...
    'PropagationSpeed',c,'Type','powerdb','Weights',sv)
title('With steering')

Figure contains 2 axes. Axes 1 with title Without steering contains an object of type line. This object represents 300 MHz. Axes 2 with title With steering contains an object of type line. This object represents 300 MHz.

Вычислите вектор управления для равномерного линейного массива в направлении 30 ° азимута и 20 ° повышения. Предположим, что массив "работает на частоте 300 МГц.

Примечание.Этот пример выполняется только в R2016b или более поздней версии. Если вы используете более ранний релиз, замените каждый вызов функции на эквивалентный step синтаксис. Для примера замените myObject(x) с step(myObject,x).

array = phased.ULA('NumElements',2);
steeringvector = phased.SteeringVector('SensorArray',array);
fc = 300.0e6;
ang = [30;20];
sv = steeringvector(fc,ang);

Ссылки

[1] Деревья фургонов, H. Optimum Array Processing. Нью-Йорк: Wiley-Interscience, 2002.

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

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