exponenta event banner

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

Сборщик узкополосных сигналов

Описание

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

Элемент датчика или массив датчиков, указанный как объект System, принадлежащий панели инструментов системы с фазированным массивом. Матрица датчиков может содержать подрешетки.

Пример: phased.URA

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

Пример: 3e8

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

Рабочая частота, заданная как положительный скаляр. Единицы измерения в Гц.

Пример: 1e9

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

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

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

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

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

Измерение коэффициента усиления датчика, указанное как 'dB' или 'dBi'.

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

  • При установке для этого свойства значения '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 в качестве весов элементов массива или субчипов. Чтобы использовать этот синтаксис, задайте для свойства WearingInputPort значение 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 - 1-by-L клеточный массив структур. Каждая ячейка соответствует отдельному поступающему сигналу. Каждый struct содержит три вектора столбцов, содержащих компоненты X, Y и Z поляризованных полей, определенных относительно глобальной системы координат.

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

Зависимости

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

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

Направления поступления сигналов, определяемые как вещественно-значная матрица 2-by-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 - количество элементов массива (или подмассив, если массив поддерживает подмагистрали).

Зависимости

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

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

Типы данных: 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
Поддержка комплексного номера: Да

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

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

release(obj)

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

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

Примеры

свернуть все

Используйте 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. Оптимальная обработка массива. Нью-Йорк: Wiley-Interscience, 2002.

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

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