phased.SteeringVector

Руководящий вектор сенсорной матрицы

Описание

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

Вычислить держащийся вектор для массива для заданных направлений и частоты

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

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

Чтобы узнать больше, как Системные объекты работают, смотрите то, Что Системные объекты? MATLAB.

Создание

Описание

steervec = phased.SteeringVector создает держащуюся векторную Систему 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 Используя Системные объекты (MATLAB).

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

Пример: phased.URA

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

Пример: 3e8

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

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

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

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

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

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

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

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

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

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

Описание

пример

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 2 M матрицей, каждый столбец матрицы задает направление на пробеле в форме [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 N массивом ячеек, где N является количеством подмассивов. Эти веса применяются к отдельным элементам в подмассиве.

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

Сенсорная матрицаВеса подмассива
phased.ReplicatedSubarray

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

phased.PartitionedArray

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

  • матрица SE-by-N 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 установлен в trueSV struct MATLAB содержа два поля, 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

Вычислите держащийся вектор для универсальной линейной матрицы (ULA) с 4 элементами в направлении 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')

Вычислите держащийся вектор для универсальной линейной матрицы в направлении азимута на 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-межнаука, 2002.

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

Представленный в R2012a