phased.Collector

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

Описание

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

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

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

Вы можете использовать этот объект для

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

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

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

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

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

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

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

Создание

Описание

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 Использование Системных объектов.

Элемент датчика или массив, заданная как системный объект, принадлежащий 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 для задания весов. Веса применяются к отдельным элементам массива (или на уровне подрешетки, когда поддерживаются подрешеток).

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

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

Описание

пример

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

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

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

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

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

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

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

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

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

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

  • Если на Polarization значение свойства установлено в 'Combined' или 'Dual', X представляет собой массив структур ячеек L размером 1 байт. Каждая камера соответствует отдельному поступающему сигналу. Каждый 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-на-1, где N - количество элементов массива (или подрешеток, когда массив поддерживает подрешетки).

Зависимости

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

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

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

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

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

Создайте 4-элементный равномерный линейный массив (ULA). Рабочая частота массива составляет 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. Optimum Array Processing. Нью-Йорк: Wiley-Interscience, 2002.

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

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