Engee documentation

EngeePhased.Radiator

A narrowband signal emitter.

Library

EngeePhased

Description

System object EngeePhased.Radiator simulates a narrowband signal emitter.

The emitter converts the signals into radiated wave fields transmitted from antenna arrays and individual sensor elements such as antennas and microphones.

The output signal of the emitter is fields at a reference distance of one meter from the phase center of the element or antenna array.

The system object emits fields in one of two ways, controlled by the CombineRadiatedSignals property:

  • If the property CombineRadiatedSignals is set to true, then the radiated field in the indicated direction is the coherent sum of the delayed radiated fields from all antenna elements (or antenna sublattices, if sublattices are supported). The facility uses a phase-shift approximation of time delays for narrowband signals.

  • If the property CombineRadiatedSignals is set to false each element can radiate in an independent direction.

You can use this system object to:

  • Modeling the emission of electromagnetic signals in the form of polarized or unpolarized fields, depending on whether the element or antenna array supports polarization and what is the value of the property Polarization. Using polarization, you can transmit a signal in the form of a polarized electromagnetic field or transmit two independent signals using double polarization.

  • Simulating the emission of acoustic fields using microphones that do not support polarization. To do this, set the Polarization property to "None", and for the property PropagationSpeed the value corresponding to the environment.

  • Field emissions from antenna sublattices created by objects EngeePhased.ReplicatedSubarray and EngeePhased.PartitionedArray. You can control the orientation of all the sublattices in one direction using the STEERANG scan angle argument, or control each sublattice in its own direction using the WS element weighting argument. The emitter distributes the signal power equally between the elements of each sublattice. The CombineRadiatedSignals property cannot be set to false for sublattices.

To emit narrowband signals, follow these steps:

  1. Create an object EngeePhased.Radiator and set its properties.

  2. Call the object with arguments as if it were a function.

To learn more about how to work with system objects, see Engee System Objects.

Syntax

Creation

  • radiator = EngeePhased.Radiator() — creates a narrowband signal emitter with default property values.

  • radiator = EngeePhased.Radiator(Name=Value) — creates a narrowband signal emitter with specified properties in the form of a pair Name=Value, where Name — the name of the property, and Value — the appropriate value. You can specify multiple pairs «name-value» the order of the pairs does not matter. Unspecified properties retain their default values.

    Example:

    radiator = EngeePhased.Radiator(SpecifyPolarizationPattern=true,Polarization="Dual")

Using

  • Y = radiator(X,ANG) — emits the Y fields received from the X signals in the directions specified in the ANG argument.

  • Y = radiator(X,ANG,LAXES) — uses the LAXES argument as the direction of the axes of the local coordinate system. To use this syntax, set the Polarization property to "Combined".

  • Y = radiator(XH,XV,ANG,LAXES) — uses a field component with horizontal polarization XH and a field component with vertical polarization XV. To use this syntax, set the Polarization property to "Dual".

  • Y = radiator(___,W) — uses the W argument as the weighting coefficients of the antenna array or sublattice elements. To use this syntax, set the WeightsInputPort value true.

  • Y = radiator(___,STEERANG) — uses the STEERANG argument as the angle of rotation of the sublattice. To use this syntax, set the Sensor the value of the grid that supports sublattices, and set the SubarraySteering grid property to "Phase" or "Time".

  • Y = radiator(___,WS) — uses the WS argument as the weights applied to each element inside each sublattice. To use this syntax, set the Sensor the value of the grid that supports sublattices, and set the SubarraySteering grid property to "Custom".

Arguments

Input arguments

X — input signal

+ the complex vector M by 1 | the complex matrix M by N

Details

The input signal for radiation, defined as a complex vector on or a complex matrix on , — this is the number of samples of the signal, and — the number of antenna array elements (or sublattices, if supported).

Signal dimensions X
Size The signal

Vector on

The same signal is emitted from all elements of the antenna array (or from all sublattices, if they are supported).

The matrix on

Each column corresponds to the signal emitted by the corresponding element of the antenna array (or the corresponding sublattice, if supported).

Dependencies

To use this argument, set the Polarization property to "None" or "Combined".

Типы данных

Float64

Support for complex numbers

Yes

ANG — directions of signal emission

+ the real matrix 2 on L

Details

The directions of signal emission, defined as a real matrix on . Each column specifies the direction of arrival in the form [AzimuthAngle;ElevationAngle].

The azimuthal angle should lie between −180° and 180°, inclusive. The angle of the seat should be in the range of −90° before 90°, inclusive.

The units of measurement are degrees.

If the property CombineRadiatedSignals is set to false, the number of angles should be equal to the number of antenna array elements .

Типы данных

Float64

LAXES — local coordinate system

+ a real 3-by-3 orthogonal matrix

Details

A local coordinate system defined as a real orthogonal matrix on .

The columns of the matrix define the orthonormal axes , and the local coordinate system is relative to the global coordinate system.

Dependencies

To use this argument, set the Polarization property to "Combined" or "Dual".

Типы данных

Float64

XH — H is the polarized radiated signal

+ the complex vector M by 1 | the complex matrix M by N

Details

H is a polarized radiated signal defined as a complex vector on or a complex matrix on , where — this is the length of the signal, and — the number of antenna array elements (or sublattices, if supported).

Signal dimensions XH
Size The signal

Vector on

The same signal is emitted from all elements of the antenna array (or from all sublattices, if they are supported).

The matrix on

Each column corresponds to the signal emitted by the corresponding element of the antenna array (or the corresponding sublattices, if they are supported).

The sizes of the XH and XV signals must be the same.

Dependencies

To use this argument, set the Polarization property to "Dual".

Типы данных

Float64

Support for complex numbers

Yes

XV — V is the polarized radiated signal

+ the complex vector M by 1 | the complex matrix M by N

Details

V is a polarized radiated signal defined as a complex vector on or a complex matrix on . — this is the length of the signal, and — the number of antenna array elements (or sublattices, if supported).

Signal dimensions XV
Size The signal

Vector on

The same signal is emitted from all elements of the antenna array (or from all sublattices, if they are supported).

The matrix on

Each column corresponds to the signal emitted by the corresponding element of the antenna array (or the corresponding sublattices, if they are supported).

The sizes of the XH and XV signals must be the same.

Dependencies

To use this argument, set the Polarization property to "Dual".

Типы данных

Float64

Support for complex numbers

Yes

W — weight coefficients of elements or sublattices

+ column vector N by 1

Details

Weighting coefficients of elements or sublattices specified as a complex column vector on , where — the number of antenna array elements (or sublattices, if supported).

Dependencies

To use this argument, set the property to WeightsInputPort value true.

Типы данных

Float64

Support for complex numbers

Yes

WS — weight coefficients of antenna sublattices

+ the complex matrix NSE on N | array of cells 1 by N

Details

The weighting coefficients of antenna sublattices, defined as a complex matrix on or a tuple of elements where — the number of sublattices. These weights are applied to the individual elements within the sublattice.

Weight coefficients of sublattice elements
Sublattice Sublattice weights

All sublattices have the same dimensions. Then the weights of the sublattices form a matrix on , where is the number of elements in each sublattice, and — the number of sublattices. Each WS column defines the weights for the corresponding sublattice.

The sublattices may not have the same size. In this case, you can set the weights of the sublattices as:

  • Matrices on , where is the number of elements in the largest sublattice. First the entries in each column are the weights of the elements for the sublattice, where — the number of elements in the sublattice.

  • Tuples of elements. Each element contains a column vector of weights for the corresponding sublattice. Column vectors have a length equal to the number of elements in the corresponding sublattice.

Dependencies

To use this argument, set the property to Sensor the value of the antenna array containing the sublattices, and set the SubarraySteering property of the array to "Custom".

Типы данных

Float64

Support for complex numbers

Yes

STEERANG — angle of rotation of the sublattice

+ the real vector is 2 by 1

Details

The angle of rotation of the sublattice, set as a column vector of length .

The vector has the form [azimuthAngle;elevationAngle]. The azimuthal angle should be in the range of −180° before 180°, inclusive. The angle of the seat should be from −90° before 90°, inclusive.

The units of measurement are degrees.

Dependencies

To use this argument, set the property to Sensor the value of the grid supporting the sublattices, and set the SubarraySteering grid property to "Phase" or "Time".

Типы данных

Float64

Output arguments

Y — radiated signals

+ the complex matrix M on L | a complex tuple of L elements

Details

Radiated signals returned as a complex matrix on or an array of cells on , where — number of radiation angles ANG, — input signal length X.

If the property Polarization is set to "None", then the output argument Y will be a matrix on .

If the property Polarization is set to "Combined" or "Dual", Y is a tuple of elements. Each element corresponds to a separate radiated signal. Each tuple contains three column vectors containing the components , and polarized fields defined relative to the global coordinate system.

Типы данных

Float64

Support for complex numbers

Yes

Features

# Sensor — antenna array

+ URA | antenna array system object

Details

Antenna array object, sublattice antennas, or antenna array element. The antenna array of the sensors may contain sublattices.

For example:

using EngeePhased

ura = EngeePhased.URA()
radiator = EngeePhased.Radiator(Sensor=ura)
Radiator:
    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 — signal propagation speed

+ 299792458 (by default) | positive scalar

Details

The propagation velocity of the signal, set as a positive scalar. The default value is the speed of light. 299792458.

The units of measurement are m/s.

# OperatingFrequency — operating frequency

+ 3.0e8 (by default) | positive scalar

Details

The operating frequency, set as a positive scalar.

The units of measurement are Hz.

# CombineRadiatedSignals — combining radiated signals

+ true (by default) | false

Details

The combination of the emitted signals, defined as true or false.

This property makes it possible to coherently summarize the emitted signals from all elements of the antenna array to obtain plane waves.

If the CombineRadiatedSignals property is set to false each emitting element has an individual radiated signal. In this case, each element can emit in an independent direction.

If the CombineRadiatedSignals property is set to true, then the radiated field in a given direction is the coherent sum of the delayed radiated fields from all elements (or sublattices, if they are supported). The facility uses a phase-shift approximation of time delays for narrowband signals.

Dependencies

If the property is Sensor is an antenna array containing sublattices, then the CombineRadiatedSignals property cannot be set to false.

# Sensorgainmasure — Antenna gain

+ "dB" (by default) | "dBi"

Details

Antenna gain, set to one of the following values: "dB" or "dBi":

  • "dB" — The input signal power is scaled according to the antenna power diagram (in dB) in the appropriate direction, and then combined.

  • "dBi" — The input signal power is scaled according to the radiation pattern (in dBi) in the appropriate direction, and then combined. This option is useful when you want to compare the results with the values predicted by the basic radar equation, which uses dBi to determine the antenna gain. Calculations using the option "dBi" They are time-consuming, since integration in all directions is required to calculate the total radiated antenna power.

Dependencies

To use this property, set the CombineRadiatedSignals property to true.

# Polarization — polarization configuration

+ None (default) | "Combined" | "Dual"

Details

The polarization configuration, defined as "None", "Combined" or "Dual":

  • "None" — the radiated field is considered scalar.

  • "Combined" — the radiated fields are polarized and represent a single radiated signal, the polarization corresponds to the polarization of the antenna.

  • "Dual" — components of polarization and They are independent signals.

# WeightsInputPort — using weights

+ false (by default) | true

Details

The use of weighting factors is indicated as false or true.

If this property is set to true, then the input argument W is used to set the weighting coefficients. The weights are applied to the individual elements of the antenna array (or to the sublattices, if they are supported).

Methods

Common to all system objects

step!

Run the system object operation algorithm

release!

Allow changing the value of a system object property

reset!

Resetting the internal states of a system object

Examples

Radiation from a 5-element linear antenna array

Details

We will spread and combine the radiation from the five isotropic elements of the antenna. Let’s create a uniform linear antenna array (ULA) consisting of isotropic radiating elements.

using EngeePhased

array = EngeePhased.ULA(NumElements=5);
radiator = EngeePhased.Radiator(Sensor=array,OperatingFrequency=300e6,CombineRadiatedSignals=true);
x = [1;-1;1;-1;1;-1];
radiatingAngle = [30;10];
y = radiator(x,radiatingAngle)
6×1 Matrix{ComplexF64}:
 -0.9523402087708812 + 2.0816681711721685e-17im
  0.9523402087708812 - 2.0816681711721685e-17im
 -0.9523402087708812 + 2.0816681711721685e-17im
  0.9523402087708812 - 2.0816681711721685e-17im
 -0.9523402087708812 + 2.0816681711721685e-17im
  0.9523402087708812 - 2.0816681711721685e-17im

Literature

  1. Van Trees, H. Optimum Array Processing. New York: Wiley-Interscience, 2002.