Документация Engee

EngeePhased.Collector

Страница в процессе разработки.

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

Библиотека

EngeePhased

Описание

Системный объект EngeePhased.Collector моделирует сборщик узкополосных сигналов.

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

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

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

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

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

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

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

Чтобы собрать приходящие на элементы или решетки сигналы, выполните следующие действия:

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

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

Чтобы узнать подробнее о том, как работать с системными объектами, см. Системные объекты Engee.

Синтаксис

Создание

  • collector = EngeePhased.Collector() — создает сборщик узкополосных сигналов со значениями свойств по умолчанию.

  • collector = EngeePhased.Collector(Name=Value) — создает сборщик узкополосных сигналов с заданными свойствами в виде пары Name=Value, где Name — имя свойства, а Value — соответствующее значение. Можно указать несколько пар «имя-значение», порядок пар не имеет значения. Неуказанные свойства сохраняют свои значения по умолчанию.

    Пример:

    collector = EngeePhased.Collector(Wavefront="Unspecified", OperatingFrequency=400)

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

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

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

  • YH,YV = collector(X,ANG,LAXES) — возвращает компонент поля с горизонтальной поляризацией YH, и компонент поля с вертикальной поляризацией YV. Чтобы использовать этот синтаксис, установите для свойства Polarization значение "Dual".

  • ___ = collector(___,W) — использует аргумент W в качестве весовых коэффициентов элементов антенной решетки или подрешетки. Чтобы использовать этот синтаксис, установите для свойства WeightsInputPort значение true.

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

  • ___ = collector(___,WS) — использует аргумент WS в качестве весовых коэффициентов, применяемых к каждому элементу внутри каждой подрешетки. ЧЧтобы использовать этот синтаксис, установите для свойства Sensor значение решетки, которая поддерживает подрешетки, и установите для свойства SubarraySteering решетки значение "Custom".

Аргументы

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

X — входной сигнал
комплексная матрица M на L | комплексный кортеж длиной L

Details

Входные сигналы, заданные как комплексная матрица на или комплексный кортеж длинной , где — это количество отсчетов сигнала, а — количество углов падения. Этот аргумент представляет приходящие поля.

  • Если для свойства Polarization установлено значение "None", X — это матрица на .

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

Зависимости

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

Типы данных

Float64

Поддержка комплексных чисел

Да

ANG — направления прихода сигналов
вещественная матрица 2 на L

Details

Направления прихода сигналов, заданные как вещественная матрица на . Каждый столбец задает направление прихода в виде [AzimuthAngle;ElevationAngle].

Азимутальный угол должен лежать между −180° и 180°, включительно. Угол места должен лежать в диапазоне от −90° до 90°, включительно.

Единицы измерения — градусы.

Типы данных

Float64

LAXES — локальная система координат
вещественная ортогональная матрица 3 на 3

Details

Локальная система координат, заданная как вещественная ортогональная матрица на .

Столбцы матрицы определяют ортонормированные оси , и локальной системы координат относительно глобальной системы координат.

Зависимости

Чтобы использовать этот аргумент, установите для свойства Polarization значение "Combined" или "Dual".

Типы данных

Float64

W — весовые коэффициенты элементов или подрешеток
вектор-столбец N на 1

Details

Весовые коэффициенты элементов или подрешеток, заданные как комплексный вектор-столбец на , где — количество элементов антенных решеток (или подрешеток, если они поддерживаются).

Зависимости

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

Типы данных

Float64

Поддержка комплексных чисел

Да

WS — весовые коэффициенты элементов антенных подрешеток
комплексная матрица NSE на N | массив ячеек 1 на N

Details

Весовые коэффициенты элементов антенных подрешеток, заданные как комплексная матрица на или кортеж из элементов, где — количество подрешеток. Эти весовые коэффициенты применяются к отдельным элементам внутри подрешетки.

Весовые коэффициенты элементов подрешетки
Подрешетка Весовые коэффициенты подрешетки

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

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

  • Матрицы на , где — это количество элементов в самой большой подрешетке. Первые записей в каждом столбце — это весовые коэффициенты элементов для подрешетки, где — количество элементов в подрешетке.

  • Кортежа из элементов. Каждый элемент содержит вектор-столбец весовых коэффициентов для соответствующей подрешетки. Векторы-столбцы имеют длину, равную количеству элементов в соответствующей подрешетке.

Зависимости

Чтобы использовать этот аргумент, установите для свойства Sensor значение антенной решетки, содержащей подрешетки, и установите для свойства SubarraySteering решетки значение "Custom".

Типы данных

Float64

Поддержка комплексных чисел

Да

STEERANG — угол поворота подрешетки
вещественный вектор 2 на 1

Details

Угол поворота подрешетки, заданный как вектор-столбец длиной .

Вектор имеет вид [azimuthAngle;elevationAngle]. Азимутальный угол должен находиться в диапазоне от −180° до 180°, включительно. Угол места должен быть от −90° до 90°, включительно.

Единицы измерения — градусы.

Зависимости

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

Типы данных

Float64

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

Y — собранный сигнал
комплексная матрица M на N

Details

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

Зависимости

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

Типы данных

Float64

Поддержка комплексных чисел

Да

YH — собранный сигнал горизонтальной H-поляризации
комплексная матрица M на N

Details

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

Зависимости

Чтобы использовать этот аргумент, установите для свойства Polarization значение "Dual".

Типы данных

Float64

Поддержка комплексных чисел

Да

YV — собранный сигнал вертикальной V-поляризации
комплексная матрица M на N

Details

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

Зависимости

Чтобы использовать этот аргумент, установите для свойства Polarization значение "Dual".

Типы данных

Float64

Поддержка комплексных чисел

Да

Свойства

# Sensor — антенная решетка
URA | системный объект антенной решетки

Details

Объект антенной решетки, антенны из подрешеток или элемент антенной решетки. Антенная решетка может содержать подрешетки.

Например:

using EngeePhased

ura = EngeePhased.URA()
detector = EngeePhased.Collector(Sensor=ura)
Collector:
    Sensor=URA:
    Element=IsotropicAntennaElement:
    FrequencyRange=[0.0 1.0e20]
    BackBaffled=false
    UseThreads=true
    Size=[2 2]
    ElementSpacing=[0.5 0.5]
    Lattice=Rectangular
    ArrayNormal=x
    Taper=1
    UseThreads=true
    PropagationSpeed=299792458
    OperatingFrequency=3.0e8
    Wavefront=Plane
    SensorGainMeasure=dB
    WeightsInputPort=false

# PropagationSpeed — скорость распространения сигнала
299792458 (по умолчанию) | положительный скаляр

Details

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

Единицы измерения — м/с.

# OperatingFrequency — рабочая частота
3.0e8 (по умолчанию) | положительный скаляр

Details

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

Единицы измерения — Гц.

# Wavefront — тип входящего волнового фронта
"Plane" (по умолчанию) | "Unspecified"

Details

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

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

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

# SensorGainMeasure — коэффициент усиления антенной антенны
"dB" (по умолчанию) | "dBi"

Details

Коэффициент усиления антенны, заданный одним из следующих значений: "dB" или "dBi":

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

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

Зависимости

Чтобы использовать это свойство, установите для свойства Wavefront значение "Plane".

# Polarization — конфигурация поляризации
None (по умолчанию) | "Combined" | "Dual"

Details

Конфигурация поляризации, заданная как "None", "Combined" или "Dual":

  • "None" — падающие поля считаются скалярными.

  • "Combined" — падающие поля поляризованы и представляют собой один приходящий сигнал, поляризация соответствует поляризации антенны.

  • "Dual" — компоненты поляризации и представляют собой независимые сигналы.

# WeightsInputPort — использование весовых коэффициентов
false (по умолчанию) | true

Details

Использование весовых коэффициентов, заданное как false или true.

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

Методы

Общие для всех системных объектов

step!

Запуск алгоритма работы системного объекта

release!

Разрешение изменение значения свойства системного объекта

reset!

Сброс внутренних состояний системного объекта

Примеры

Прием сигнала на равномерной линейной антенной решетке

Details

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

using EngeePhased

antenna = EngeePhased.ULA(NumElements=3);
collector = EngeePhased.Collector(Sensor=antenna, OperatingFrequency=1e9);
x = [1;0;-1];
incidentAngle = [10 30]';
y = collector(x,incidentAngle)
3×3 Matrix{ComplexF64}:
 -0.00510864-0.999987im   1.0+0.0im  -0.00510864+0.999987im
         0.0+0.0im        0.0+0.0im          0.0+0.0im
  0.00510864+0.999987im  -1.0+0.0im   0.00510864-0.999987im