Main Content

phased.FreeSpace

Free space environment

Description

The phased.FreeSpace System object™ models narrowband signal propagation from one point to another in a free-space environment. The object applies range-dependent time delay, gain and phase shift to the input signal. The object accounts for Doppler shift when either the source or destination is moving. A free-space environment is a boundaryless medium with a speed of signal propagation independent of position and direction. The signal propagates along a straight line from source to destination. For example, you can use this object to model the propagation of a signal from a radar to a target and back to the radar.

For non-polarized signals, the FreeSpace System object lets you propagate signals from a single point to multiple points or from multiple points to a single point. Multiple-point to multiple-point propagation is not supported.

To compute the propagated signal in free space:

  1. Define and set up your free space environment. See Construction.

  2. Call step to propagate the signal through a free space environment according to the properties of phased.FreeSpace. The behavior of step is specific to each object in the toolbox.

When propagating a round trip signal in free-space, you can either use one FreeSpace System object to compute the two-way propagation delay or two separate FreeSpace System objects to compute one-way propagation delays in each direction. Due to filter distortion, the total round trip delay when you employ two-way propagation can differ from the delay when you use two one-way phased.FreeSpace System objects. It is more accurate to use a single two-way phased.FreeSpace System object. This option is set by the TwoWayPropagation property.

Note

Starting in R2016b, instead of using the step method to perform the operation defined by the System object, you can call the object with arguments, as if it were a function. For example, y = step(obj,x) and y = obj(x) perform equivalent operations.

Construction

H = phased.FreeSpace creates a free space environment System object, H.

H = phased.FreeSpace(Name,Value) creates a free space environment object, H, with each specified property Name set to the specified Value. You can specify additional name-value pair arguments in any order as (Name1,Value1,...,NameN,ValueN).

Properties

PropagationSpeed

Signal propagation speed

Specify signal wave propagation speed in free space as a real positive scalar. Units are meters per second.

Default: Speed of light

OperatingFrequency

Signal carrier frequency

A scalar containing the carrier frequency of the narrowband signal. Units are hertz.

Default: 3e8

TwoWayPropagation

Perform two-way propagation

Set this property to true to perform round-trip propagation between the origin and destination that you specify in the step command. Set this property to false to perform one-way propagation from the origin to the destination.

Default: false

SampleRate

Sample rate

A scalar containing the sample rate. Units of sample rate are hertz. The algorithm uses this value to determine the propagation delay in number of samples.

Default: 1e6

MaximumDistanceSource

Source of maximum distance value

Source of maximum distance value, specified as 'Auto' or 'Property'. This choice selects how the maximum one-way propagation distance is determined. The maximum one-way propagation distance is used to allocate sufficient memory for delay computation. When you set this property to 'Auto, the System object automatically allocates memory. When you set this property to 'Property', you specify the maximum one-way propagation distance using the value of the MaximumDistance property.

Default: 'Auto'

MaximumDistance

Maximum one-way propagation distance

Maximum one-way propagation distance, specified as a real-valued positive scalar. Units are meters. This property applies when you set the MaximumDistanceSource property to 'Property'. Any signal that propagates more than the maximum one-way distance is ignored. The maximum distance should be greater than or equal to the largest position-to-position distance.

Default: 10000

MaximumNumInputSamplesSource

Source of maximum number of samples.

The source of the maximum number of samples in the input signal, specified as 'Auto' or 'Property'. When you set this property to 'Auto', the propagation model automatically allocates enough memory to buffer the first input signal. When you set this property to 'Property', specify the maximum number of samples in the input signal using the MaximumNumInputSamples property. Any input signal longer than that value is truncated.

This property applies when you set the MaximumDistanceSource property to 'Property'.

To use this object with variable-size input signals in a MATLAB® Function Block in Simulink®, set the MaximumNumInputSamplesSource property to 'Property' and set a value for the MaximumNumInputSamples property.

Default: 'Auto'

MaximumNumInputSamples

Maximum number of input signal samples.

Maximum number of samples in the input signal, specified as a positive integer. This property limits the size of the input signal. Any input signal longer than this value is truncated. The input signal is the first argument to the step method. The number of samples is the number of rows in the input.

This property applies when you set the MaximumNumInputSamplesSource property to 'Property'.

Default: 100

Methods

resetReset internal states of propagation channel
stepPropagate signal from one location to another
Common to All System Objects
release

Allow System object property value changes

Examples

collapse all

Calculate the amplitude of a signal propagating in free-space from a radar at (40000,0,0) to a target at (300,200,50). Assume both the radar and the target are stationary. The sample rate is 8000 Hz while the operating frequency of the radar is 300 MHz. Transmit five samples of a unit amplitude signal. The signal propagation speed takes the default value of the speed of light. Examine the amplitude of the signal at the target.

fs = 8e3;
fop = 3e8;
freesp = phased.FreeSpace(SampleRate=fs, ...
    OperatingFrequency=fop);
pos1 = [40000;0;0];
pos2 = [300;200;50];
vel1 = [0;0;0];
vel2 = [0;0;0];

Create the transmitted signal.

x = ones(5,1);

Find the received signal at the target.

y = freesp(x,pos1,pos2,vel1,vel2);
disp(y)
   1.0e-05 *

   0.0000 + 0.0000i
   0.1870 - 0.0229i
   0.1988 - 0.0243i
   0.1988 - 0.0243i
   0.1988 - 0.0243i

The first sample is zero because the signal has not yet reached the target.

Manually compute the loss using the formula

L=(4πR/λ)2

R = sqrt((pos1-pos2)'*(pos1-pos2));
lambda = physconst('Lightspeed')/fop;
L = (4*pi*R/lambda)^2
L = 2.4924e+11

Because the transmitted amplitude is unity, the magnitude-squared value of the signal at the target for the third sample equals the inverse of the loss.

disp(1/abs(y(3))^2)
   2.4924e+11

Calculate the result of propagating a signal in free space from a radar at (1000,0,0) to a target at (300,200,50). Assume the radar moves at 10 m/s along the x-axis, while the target moves at 15 m/s along the y-axis. The sample rate is 8000 Hz while the operating frequency of the radar is 300 MHz. The signal propagation speed takes the default value of the speed of light. Transmit five samples of a unit amplitude signal and examine the amplitude of the signal at the target.

fs = 8000;
fop = 3e8;
freesp = phased.FreeSpace(SampleRate=fs, ...
    OperatingFrequency=fop);
pos1 = [1000;0;0];
pos2 = [300;200;50];
vel1 = [10;0;0];
vel2 = [0;15;0];
y = freesp(ones(5,1),pos1,pos2,vel1,vel2);
disp(y)
   1.0e-03 *

   0.0126 - 0.1061i
   0.0117 - 0.1083i
   0.0105 - 0.1085i
   0.0094 - 0.1086i
   0.0082 - 0.1087i

Because the transmitted amplitude is unity, the square of the signal at the target equals the inverse of the loss.

disp(1/abs(y(2))^2)
   8.4206e+07

More About

expand all

References

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

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

Extended Capabilities

Version History

Introduced in R2011a