Engee documentation

EngeePhased.WidebandFreeSpace

Page in progress.

Broadband distribution channel in free space.

Library

EngeePhased

Block

Wideband Free Space

Description

System object EngeePhased.WidebandFreeSpace simulates the propagation of a broadband signal from one point to another in free space. The object applies distance-dependent time delay, gain control, and phase shift to the input signal. The object takes into account the Doppler shift when the source or destination is moving. Free space is an environment without borders, in which the speed of signal propagation does not depend on position and direction. The signal travels in a straight line from the source to the destination. For example, you can use this object to simulate the two-way propagation of a signal from a radar to a target.

For unpolarized signals, a system object EngeePhased.WidebandFreeSpace allows you to distribute signals from one point to several points or from several points to one point. Propagation from multiple points to multiple points is not supported.

When a signal is propagated in free space, one object can be used. EngeePhased.WidebandFreeSpace to calculate the two-way propagation delay. Alternatively, you can use two separate objects. EngeePhased.WidebandFreeSpace to calculate the delays of one-way propagation in each direction. Due to the distortion of the filter, the total delay in both directions when using two-way propagation may differ from the delay when using two objects. EngeePhased.WidebandFreeSpace with unilateral distribution. Using a single object would be more accurate. EngeePhased.WidebandFreeSpace with two-way distribution, use the [Property for this.:TwoWayPropagation].

To calculate the propagated signal in free space, follow these steps:

  1. Create an object EngeePhased.WidebandFreeSpace 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

  • widebandFreeSpace = EngeePhased.WidebandFreeSpace() — creates a broadband distribution channel in free space with default property values.

  • widebandFreeSpace = phased.WidebandFreeSpace(Name=Value) — creates a broadband distribution channel in free space 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.

Using

  • propSig = widebandFreeSpace(sig,sigOrig,sigDest,origVel,destVel) — returns the resulting propSig signal after propagation of the broadband sig signal over the free space channel from the sigOrig position to the sigDest position. You can specify more than one point in the sigOrig and sigDest arguments, but you cannot specify more than one point in both arguments at the same time.

Arguments

Input arguments

sig — broadband signal

+ the matrix | the tuple

Details

A broadband signal defined as:

  • Broadband unpolarized signal defined as a complex matrix on . Each column contains a signal propagating through one of the channels of free space.

  • A broadband polarized signal specified as a tuple of complex elements. Each element contains an electromagnetic field component (sig.X, sig.Y, sig.Z) in the form of a column vector on representing a polarized signal propagating through one of the channels of free space.

— the number of signal samples, and — the number of channels of free space. Each channel corresponds to a source-receiver pair.

The size of the first dimension of the input matrix can be changed to simulate a change in the length of the signal. A change in size can occur, for example, in the case of a pulse signal with a variable pulse repetition rate.

For polarized fields, each element of the tuple contains three complex vector columns of the size on : sig.X, sig.Y and sig.Z. These vectors represent the Cartesian components of the polarized signal in coordinates , and .

The size of the first dimension of the vectors inside the tuple can be changed to simulate a changing signal length, for example, in the case of a pulse signal with a variable pulse repetition rate.

Типы данных

Float64

Support for complex numbers

Yes

sigOrig — position of the signal source

+ The real vector is a 3-by-1 column | the real matrix is 3 by N

Details

The position of the signal source, set as a column vector on or matrices of size on , where — the number of channels of free space. If sigOrig is a column vector, it has the form [x;y;z]. If sigOrig is a matrix, each column specifies the position of the signal source and looks like [x;y;z].

The units of position measurement are meters.

You cannot specify sigOrig and sigDest as matrices at the same time. At least one of them must be a column vector. on .

Типы данных

Float64

sigDest — position of the signal receiver

+ The real vector is a 3-by-1 column | the real matrix is 3 by N

Details

The position of the signal receiver, set as a column vector on or matrices of size on , where — the number of channels of free space. If sigDest is a column vector, it has the form [x;y;z]. If sigDest is a matrix, each column specifies the position of the signal receiver and looks like [x;y;z].

The units of position measurement are meters.

You cannot specify sigOrig and sigDest as matrices at the same time. At least one of them must be a column vector. on .

Типы данных

Float64

origVel — speed of the signal source

+ The real vector is a 3-by-1 column | the real matrix is 3 by N

Details

The speed of the signal source, set as a column vector on or matrices of size on , where — the number of channels of free space. If origVel is a column vector, it looks like [Vx;Vy;Vz]. If origVel is a matrix, each column specifies the speed of the signal source and looks like [Vx;Vy;Vz].

The speed measurement units are m/s.

Типы данных

Float64

destVel — signal receiver speed

+ The real vector is a 3-by-1 column | the real matrix is 3 by N

Details

The speed of the signal receiver, set as a column vector on or matrices of size on , where — the number of channels of free space. If destVel is a column vector, it looks like [Vx;Vy;Vz]. If destVel is a matrix, each column specifies the speed of the signal receiver and looks like [Vx;Vy;Vz].

The speed measurement units are m/s.

Типы данных

Float64

Output arguments

propSig — propagated broadband signal

+ the matrix | the tuple

Details

The propagated broadband signal returned as:

  • If sig is a complex matrix on , propSig is a broadband unpolarized signal of the same size, also with complex values. Each column contains a signal propagating through one of the channels in free space.

  • If sig is a tuple of of complex elements, propSig is a broadband polarized signal returned as a tuple from complex elements. Each element contains an electromagnetic field component (sig.X, sig.Y, sig.Z) in the form of a column vector on representing a polarized signal propagating through one of the channels of free space.

The output argument propSig contains samples of the signal propagating from the destination during the current time interval. If the propagation of the signal from the source to the destination takes longer than the current time interval, the output argument may not contain all the input input. The next call to the object will return another part of the propagated signal.

Типы данных

Float64

Support for complex numbers

Yes

Features

# MaximumDistance — maximum propagation distance in one direction
Real number

Details

The maximum distance in meters between the signal transmitter and receiver, set as a positive real scalar.

The object ignores any signal propagating over a distance exceeding the maximum propagation distance in one direction. The maximum distance must be greater than or equal to the largest distance between the points.

Default value — 10000.0.

Dependencies

To use this property, set the MaximumDistanceSource value Property.

# PropagationSpeed — signal propagation speed
Real number

Details

The propagation velocity in m/s, set as a positive scalar.

The default value is the speed of light. 299792458.

# OperatingFrequency — Operating frequency
Real number

Details

The operating frequency, set as a positive scalar.

The units of measurement are Hz.

Default value — 3e8.

# SampleRate — sampling rate
Real number

Details

The sampling frequency of the signal, set as a positive scalar.

The ratio of the sampling rate to the pulse repetition rate (PRF) must be a positive integer.

The unit of measurement is Hz.

Default value — 1.0e6.

# TwoWayPropagation — enabling two-way distribution
Logical

Details

Enabling two-way distribution, set as false (by default) or true.

Set this property to true to perform two-way propagation between the transmitter and receiver of the signal. Otherwise, the system object performs one-way propagation from the transmitter to the receiver of the signal.

# NumSubbands — number of sub-ranges
Real number

Details

The number of processed sub-ranges, set as a positive integer.

Default value — 64.

# MaximumDistanceSource — the source of the maximum one-way propagation distance
String

Details

The maximum number of samples of the input signal, set as a positive integer. The input signal is the first argument of the object call. The size of the input signal is equal to the number of rows in the input matrix. The object cuts off any input signal exceeding this number. For full signal processing, make sure that the value of this property is greater than any maximum input length.

The system objects that generate the signals determine the maximum size of the signal:

For any signal, if you set the OutputFormat property of the waveform to "Samples", the maximum length of the signal will be equal to the value specified in the numSamples property.

For pulse signals, if you set the OutputFormat to "Pulses", the length of the signal will be equal to the product of the lowest pulse repetition rate, the number of pulses, and the sampling frequency.

For continuous signals, if you set the OutputFormat to "Sweeps", the length of the signal will be equal to the product of the sweep time, the number of sweeps, and the sampling rate.

# MaximumNumInputSamples — maximum number of input samples
Real number

Details

The maximum number of samples of the input signal, set as a positive integer. The input signal is the first argument of the object call. The size of the input signal is equal to the number of rows in the input matrix. The object cuts off any input signal exceeding this number. For full signal processing, make sure that the value of this property is greater than any maximum input length.

System objects generating signals determine the maximum size of the signal:

  • For any signal, if you set the OutputFormat property to "Samples", the maximum signal length will be equal to the value specified in the numSamples property.

  • For pulse signals, if you set OutputFormat to "Pulses", the length of the signal will be equal to the product of the lowest pulse repetition rate, the number of pulses, and the sampling frequency.

  • For continuous signals, if you set OutputFormat to "Sweeps", the length of the signal will be equal to the product of the deviation time, the number of deviations, and the sampling frequency.

Dependencies

To use this property, set the MaximumNumInputSamplesSource value "Property".

# MaximumNumInputSamplesSource — the source of the maximum number of signal samples
String

Details

The source of the maximum number of samples of the input signal, set as "Auto" (by default) or "Property".

  • If you set the value for this property "Auto" the propagation model will automatically allocate enough memory to buffer the input signal.

  • If you set the value for this property "Property", you need to specify the maximum number of samples in the input signal using the MaximumNumInputSamples. Any input signal that exceeds this value will be truncated.

Dependencies

To use this property, set the MaximumDistanceSource value "Property".

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

Additional Info

Propagation delay, Doppler shift, and free space loss

Details

When the signal source and receiver are stationary relative to each other, it is possible to write the channel output signal in free space as , where — signal delay, and — losses during propagation in free space. The signal delay is calculated as , where is the propagation distance, and — the speed of propagation. Channel losses in free space are determined by the expression

where — the wavelength of the signal.

This formula assumes that the target is in the far zone of the transmitting element or array. In the near-field, the formula for losses in the propagation channel in free space is invalid and can lead to loss values less than one, which is equivalent to signal amplification. For this reason, for the values losses are set at one.

If the source and receiver are moving relative to each other, the Doppler frequency shift is taken into account. The frequency shift is for unilateral distribution and for two-way distribution. Value — this is the relative speed of the receiver relative to the source.

Processing of sub-bands of frequencies

Details

Subband processing divides the broadband signal into several subbands and applies narrowband processing to the signal in each subband. The signals of all sub-bands are combined to form an output signal.

When using broadband system objects or blocks, you need to specify the number of sub-ranges. , into which the broadband signal should be decomposed. The center frequencies and subband widths are automatically calculated from the total bandwidth and the number of subbands. The total frequency band is centered on the carrier or operating frequency . The total bandwidth is determined by the sampling rate . The width of the frequency sub-bands is . The central frequencies of the sub-bands are defined as:

четноенечетное

Some system objects allow you to get the central frequencies of the sub-bands as output data when starting the object. The returned subband frequencies are ordered according to the order of the discrete Fourier transform. The frequencies above the carrier are displayed first, then the frequencies below the carrier.

Literature

  1. Proakis, J. Digital Communications. New York: McGraw-Hill, 2001.

  2. Skolnik, M. Introduction to Radar Systems, 3rd Ed. New York: McGraw-Hill, 2001.