exponenta event banner

поэтапный. SteeringVector

Вектор управления матрицей датчиков

Описание

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.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 зависит от свойства IncludeElityResponse следующим образом:

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

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

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

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

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

развернуть все

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

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

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

Рабочие частоты, определяемые как 1-by-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

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

Веса элементов субчипов

Массив датчиковВеса субчипов
phased.ReplicatedSubarray

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

phased.PartitionedArray

Субчипы могут иметь разные размеры и размеры. В этом случае можно указать веса субчипов как

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

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

Зависимости

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

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

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

развернуть все

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

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

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

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

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

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

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

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

release(obj)

развернуть все

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

Примеры

свернуть все

Вычислите и отобразите вектор управления для 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

Вычислите вектор управления для четырехэлементного однородного линейного массива (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. Оптимальная обработка массива. Нью-Йорк: Wiley-Interscience, 2002.

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

.
Представлен в R2011a