поэтапный. Коллектор

Узкополосный коллектор сигнала

Описание

Система phased.Collector object™ реализует узкополосный коллектор сигнала. Коллектор преобразовывает инцидентные узкополосные поля волны, прибывающие от заданных направлений в сигналы, которые будут далее обработаны. Поля волны являются инцидентом на антенне и элементах микрофона, сенсорных матрицах или подмассивах. Объект собирает сигналы одним из двух способов, которыми управляет свойство Wavefront.

  • Если свойство Wavefront установлено в 'Plane', собранные сигналы в каждом элементе или подмассиве формируются из когерентной суммы всех инцидентных полей плоской волны, выбранных в каждом элементе массива или подмассиве.

  • Если свойство Wavefront установлено в 'Unspecified', собранные сигналы формируются из независимого полевого инцидента на каждом отдельном элементе датчика.

Можно использовать этот объект для

  • модель, прибывающая сигналы, как поляризовано или не поляризовано поля, в зависимости от ли элемент или поляризация поддержки массивов и значение свойства Polarization. Используя поляризацию, можно получить сигнал как поляризованное электромагнитное поле или получить два независимых сигнала, использующие двойной (т.е. ортогональный) направления поляризации.

  • модель, поступающая акустические поля при помощи неполяризованного микрофона и элементов массива преобразователя гидролокатора и путем установки Поляризации на 'None'. Необходимо также установить PropagationSpeed на значение, подходящее для носителя.

  • соберите поля в подмассивах, созданных объектами phased.PartitionedArray и phased.ReplicatedSubarray. Можно регулировать все подмассивы в том же направлении с помощью держащегося углового аргумента, STEERANG, или регулировать каждый подмассив в различном направлении с помощью аргумента весов элемента подмассива, WS. Вы не можете установить свойство Wavefront на 'Unspecified' для подмассивов.

Собрать прибывающие сигналы в элементах или массивах:

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

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

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

Создание

Синтаксис

collector = phased.Collector
collector = phased.Collector(Name,Value)

Описание

collector = phased.Collector создает узкополосный объект коллектора сигнала, collector, со значениями свойств по умолчанию.

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

Пример: collector = phased.collector('Sensor',phased.URA,'OperatingFrequency',300e6) устанавливает сенсорную матрицу на универсальный прямоугольный массив (URA) со значениями свойств URA по умолчанию. Формирователь луча имеет рабочую частоту 300 МГц.

Свойства

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

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

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

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

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

Пример: phased.URA

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

Пример: 3e8

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

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

Пример: 1e9

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

Тип входящего фронта импульса, заданного как 'Plane' или 'Unspecified':

  • 'Plane' — входные сигналы являются несколькими плоскими волнами, посягающими на целый массив. Каждая плоская волна получена всеми элементами сбора.

  • 'Unspecified' — собранные сигналы являются независимым полевым инцидентом на отдельных элементах датчика. Если свойство Sensor является массивом, который содержит подмассивы, вы не можете установить свойство Wavefront на 'Unspecified'.

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

Мера по усилению датчика, заданная как 'dB' или 'dBi'.

  • Когда вы устанавливаете это свойство на 'dB', степень входного сигнала масштабируется шаблоном степени датчика (в дБ) в соответствующем направлении и затем объединяется.

  • Когда вы устанавливаете это свойство на 'dBi', степень входного сигнала масштабируется шаблоном направленности (в dBi) в соответствующем направлении и затем объединяется. Эта опция полезна когда это необходимо, чтобы сравнить результаты со значениями, предсказанными основным уравнением радиолокации, которое использует dBi, чтобы задать усиление антенны. Вычисление с помощью опции 'dBi' является дорогим, когда это требует, чтобы интегрирование по всем направлениям вычислило общую излученную степень датчика.

Зависимости

Чтобы включить это свойство, установите свойство Wavefront на 'Plane'.

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

Настройка поляризации, заданная как 'None', 'Combined' или 'Dual'. Когда вы устанавливаете это свойство на 'None', инцидентные поля рассматриваются скалярными полями. Когда вы устанавливаете это свойство на 'Combined', инцидентные поля поляризованы и представляют один прибывающий сигнал, поляризация которого отражает свойственную поляризацию датчика. Когда вы устанавливаете это свойство на 'Dual', H и компоненты поляризации V полей являются независимыми сигналами.

Пример: 'Dual'

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

Включите вход весов, заданный как false или true. Когда true, используйте объектный входной параметр W, чтобы задать веса. Веса применяются к отдельным элементам массива (или на уровне подмассива, когда подмассивы поддерживаются).

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

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

Для версий ранее, чем R2016b, используйте функцию step, чтобы запустить алгоритм Системного объекта. Аргументы к step являются объектом, который вы создали, сопровождаемый аргументами, показанными в этом разделе.

Например, y = step(obj,x) и y = obj(x) выполняют эквивалентные операции.

Синтаксис

Y = collector(X,ANG)
Y = collector(X,ANG,LAXES)
[YH,YV] = collector(X,ANG,LAXES)
[___] = collector(___,W)
[___] = collector(___,STEERANG)
[___] = collector(___,WS)

Описание

пример

Y = collector(X,ANG) собирает сигналы, X, прибывающий от направлений, заданных ANG. Y содержит собранные сигналы.

Y = collector(X,ANG,LAXES) также задает LAXES как системные направления осей локальной координаты. Чтобы использовать этот синтаксис, установите свойство Polarization на 'Combined'.

[YH,YV] = collector(X,ANG,LAXES) возвращает компонент H-поляризации поля, YH, и компонента V-поляризации, YV. Чтобы использовать этот синтаксис, установите свойство Polarization на 'Dual'.

[___] = collector(___,W) также задает W как веса подмассива или элемент массива. Чтобы использовать этот синтаксис, установите свойство WeightsInputPort на true.

[___] = collector(___,STEERANG) также задает STEERANG как руководящий угол подмассива. Чтобы использовать этот синтаксис, установите свойство Sensor на массив, который поддерживает подмассивы и устанавливает свойство SubarraySteering того массива или к 'Phase' или к 'Time'.

[___] = collector(___,WS) также задает WS, когда веса применились к каждому элементу в каждом подмассиве. Чтобы использовать этот синтаксис, установите свойство Sensor на массив, который поддерживает подмассивы и устанавливает SubarraySteering того массива к 'Custom'.

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

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

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

  • Если значение свойства Polarization установлено в 'None', X является M-by-L матрица.

  • Если значение свойства Polarization установлено в 'Combined' или 'Dual', X является 1 L массивом ячеек структур. Каждая ячейка соответствует отдельному прибывающему сигналу. Каждый struct содержит три вектор-столбца, содержащие X, Y и компоненты Z поляризованных полей, заданных относительно глобальной системы координат.

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

Зависимости

Чтобы включить этот аргумент, установите свойство Polarization на 'None' или 'Combined'.

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

Направления прибытия сигналов, заданных как 2 с действительным знаком L матрицей. Каждый столбец задает направление прибытия в форме [AzimuthAngle;ElevationAngle]. Угол азимута должен находиться между-180 ° и 180 °, включительно. Угол повышения должен находиться между-90 ° и 90 °, включительно. Когда свойством Wavefront является false, количество углов должно равняться количеству элементов массива, N. Модули в градусах.

Пример: [30,20;45,0]

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

Система локальной координаты, заданная как 3х3 ортогональная матрица с действительным знаком. Столбцы матрицы задают ортонормированный x системы локальной координаты, y и оси z относительно глобальной системы координат.

Пример: rotx(30)

Зависимости

Чтобы включить этот аргумент, установите свойство Polarization на 'Combined' или 'Dual'.

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

Элемент или веса подмассива, заданные как N с комплексным знаком-by-1 вектор-столбец, где N является количеством элементов массива (или подмассивы когда подмассивы поддержки массивов).

Зависимости

Чтобы включить этот аргумент, установите свойство WeightsInputPort на true.

Типы данных: 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'.

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

Руководящий угол подмассива, заданный как длина 2 вектор-столбца. Вектор имеет форму [azimuthAngle;elevationAngle]. Угол азимута должен быть между-180 ° и 180 °, включительно. Угол повышения должен быть между-90 ° и 90 °, включительно. Модули в градусах.

Пример: [20;15]

Зависимости

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

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

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

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

Собранный сигнал, возвращенный как M с комплексным знаком-by-N матрица. M является длиной входного сигнала. N является количеством элементов массива (или подмассивы, когда подмассивы поддерживаются). Каждый столбец соответствует сигналу, собранному соответствующим элементом массива (или соответствующие подмассивы, когда подмассивы поддерживаются).

Зависимости

Чтобы включить этот аргумент, установите свойство Polarization на 'None' или 'Combined'.

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

Собранный горизонтальный сигнал поляризации, возвращенный как M с комплексным знаком-by-N матрица. M является длиной входного сигнала. N является количеством элементов массива (или подмассивы, когда подмассивы поддерживаются). Каждый столбец соответствует сигналу, собранному соответствующим элементом массива (или соответствующие подмассивы, когда подмассивы поддерживаются).

Зависимости

Чтобы включить этот аргумент, установите свойство Polarization на 'Dual'.

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

Собранный горизонтальный сигнал поляризации, возвращенный как M с комплексным знаком-by-N матрица. M является длиной входного сигнала. N является количеством элементов массива (или подмассивы, когда подмассивы поддерживаются). Каждый столбец соответствует сигналу, собранному соответствующим элементом массива (или соответствующие подмассивы, когда подмассивы поддерживаются).

Зависимости

Чтобы включить этот аргумент, установите свойство Polarization на 'Dual'.

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

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

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

release(obj)

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

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

Примеры

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

Используйте Систему phased.Collector object™, чтобы создать сигнал, прибывающий в одну изотропную антенну от азимута на 10 ° и повышения на 30 °.

antenna = phased.IsotropicAntennaElement;
collector = phased.Collector('Sensor',antenna);
x = [1;0;-1];
incidentAngle = [10;30];
y = collector(x,incidentAngle)
y = 3×1

     1
     0
    -1

Соберите сигнал далекого поля, достигающий универсальной линейной матрицы (ULA) с 3 элементами изотропных элементов антенны.

antenna = phased.ULA('NumElements',3);
collector = phased.Collector('Sensor',antenna,'OperatingFrequency',1e9);
x = [1;0;-1];
incidentAngle = [10 30]';
y = collector(x,incidentAngle)
y = 3×3 complex

  -0.0051 - 1.0000i   1.0000 + 0.0000i  -0.0051 + 1.0000i
   0.0000 + 0.0000i   0.0000 + 0.0000i   0.0000 + 0.0000i
   0.0051 + 1.0000i  -1.0000 + 0.0000i   0.0051 - 1.0000i

Соберите различные сигналы в трехэлементном массиве. Каждый входной сигнал прибывает из различного направления.

array = phased.ULA('NumElements',3);
collector = phased.Collector('Sensor',array,'OperatingFrequency',1e9,...
    'Wavefront','Unspecified');

Каждый столбец является сигналом для одного элемента

x = rand(10,3)
x = 10×3

    0.8147    0.1576    0.6557
    0.9058    0.9706    0.0357
    0.1270    0.9572    0.8491
    0.9134    0.4854    0.9340
    0.6324    0.8003    0.6787
    0.0975    0.1419    0.7577
    0.2785    0.4218    0.7431
    0.5469    0.9157    0.3922
    0.9575    0.7922    0.6555
    0.9649    0.9595    0.1712

Задайте три инцидентных угла.

incidentAngles = [10 0; 20 5; 45 2]';
y = collector(x,incidentAngles)
y = 10×3

    0.8147    0.1576    0.6557
    0.9058    0.9706    0.0357
    0.1270    0.9572    0.8491
    0.9134    0.4854    0.9340
    0.6324    0.8003    0.6787
    0.0975    0.1419    0.7577
    0.2785    0.4218    0.7431
    0.5469    0.9157    0.3922
    0.9575    0.7922    0.6555
    0.9649    0.9595    0.1712

Создайте универсальную линейную матрицу (ULA) с 4 элементами. Массив рабочая частота составляет 1 ГГц. Интервал элемента массива является одной половиной соответствующей длины волны. Смоделируйте набор синусоиды на 200 Гц от далекого полевого инцидента на массиве в азимуте на 45 ° и повышении на 10 °.

Создайте массив.

fc = 1e9;
lambda = physconst('LightSpeed')/fc;
array = phased.ULA('NumElements',4,'ElementSpacing',lambda/2);

Создайте сигнал синусоиды.

t = linspace(0,1,1e3);
x = cos(2*pi*200*t)';

Создайте коллектор, возражают и получают полученный сигнал.

collector = phased.Collector('Sensor',array, ...
    'PropagationSpeed',physconst('LightSpeed'),'Wavefront','Plane', ...
    'OperatingFrequency',fc);
incidentangle = [45;10];
receivedsig = collector(x,incidentangle);

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

scmat = [0 1i; 1i 2];
radiator = phased.Radiator('Sensor', ...
    phased.CustomAntennaElement('SpecifyPolarizationPattern',true), ...
    'Polarization','Dual');
target = phased.RadarTarget('EnablePolarization',true,'ScatteringMatrix', ...
    scmat);
collector = phased.Collector('Sensor', ...
    phased.CustomAntennaElement('SpecifyPolarizationPattern',true), ...
    'Polarization','Dual');
xh = 1;
xv = 1;

Передайте горизонтальную составляющую и отобразите отраженные компоненты поляризации Shh и Svh.

x = radiator(xh,0,[0;0],eye(3));
xrefl = target(x,[0;0],eye(3));
[Shh,Svh] = collector(xrefl,[0;0],eye(3))
Shh = 0
Svh = 0.0000 + 3.5474i

Передайте вертикальную составляющую и отобразите отраженные компоненты поляризации Shv и Svv.

x = radiator(0,xv,[0;0],eye(3));
xrefl = target(x,[0;0],eye(3));
[Shv,Svv] = collector(xrefl,[0;0],eye(3))
Shv = 0.0000 + 3.5474i
Svv = 7.0947

Алгоритмы

Если значением свойства Wavefront является 'Plane', phased.Collector собирает каждый сигнал плоской волны использование приближения фазы задержек через собирающиеся элементы в далеком поле.

Если значением свойства Wavefront является 'Unspecified', phased.Collector собирает каждый канал независимо.

Для получения дальнейшей информации см. [1].

Ссылки

[1] Деревья фургона, H. Оптимальная обработка матриц. Нью-Йорк: Wiley-межнаука, 2002.

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

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