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.

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

Введенный в R2011a