Free space environment
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:
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
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
objects. It is more accurate to use a single two-way
phased.FreeSpace System object.
This option is set by the
Starting in R2016b, instead of using the
to perform the operation defined by the System object, you can
call the object with arguments, as if it were a function. For example,
= step(obj,x) and
y = obj(x) perform
H = phased.FreeSpace creates a free space
environment System object,
H = phased.FreeSpace( 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 (
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
Signal carrier frequency
A scalar containing the carrier frequency of the narrowband signal. Units are hertz.
Perform two-way propagation
Set this property to
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.
Source of maximum distance value
Source of maximum distance value, specified as
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
Source of maximum number of samples.
The source of the maximum number of samples in the input signal, specified as
This property applies when you set the
To use this object with variable-size input signals in a MATLAB® Function Block in Simulink®, set the
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
This property applies when you set the
|reset||Reset internal states of propagation channel|
|step||Propagate signal from one location to another|
|Common to All System Objects|
Allow System object property value changes
Signal Propagation from Stationary Radar to Stationary Target
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
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.
Signal Propagation from Moving Radar to Moving Target
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.
Freespace Time Delay and Path Loss
When the origin and destination are stationary relative to each other, you can write the output signal of a free-space channel as Y(t) = x(t-τ)/Lfsp. The quantity τ is the signal delay and Lfsp is the free-space path loss. The delay τ is given by R/c, where R is the propagation distance and c is the propagation speed. The free-space path loss is given by
where λ is the signal wavelength.
This formula assumes that the target is in the far field of the transmitting element or array. In the near field, the free-space path loss formula is not valid and can result in a loss smaller than one, equivalent to a signal gain. Therefore, the loss is set to unity for range values, R ≤ λ/4π.
When the origin and destination have relative motion, the processing also introduces a Doppler frequency shift. The frequency shift is v/λ for one-way propagation and 2v/λ for two-way propagation. The quantity v is the relative speed of the destination with respect to the origin.
For more details on free space channel propagation, see .
 Proakis, J. Digital Communications. New York: McGraw-Hill, 2001.
 Skolnik, M. Introduction to Radar Systems, 3rd Ed. New York: McGraw-Hill, 2001.
C/C++ Code Generation
Generate C and C++ code using MATLAB® Coder™.
Usage notes and limitations:
Requires dynamic memory allocation. See Limitations for System Objects that Require Dynamic Memory Allocation.
See System Objects in MATLAB Code Generation (MATLAB Coder).
Introduced in R2011a