Main Content


Wideband free-space propagation


The System object™ models wideband signal propagation from one point to another in a free-space environment. The System object applies range-dependent time delay, gain adjustment, 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 boundary-free 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 two-way propagation of a signal from a radar to a target.

For nonpolarized signals, the 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 wideband free space environment as shown in the Construction section.

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

When propagating a round trip signal in free space, you can use one WidebandFreeSpace System object to compute the two-way propagation delay. Alternatively, you can use two separate WidebandFreeSpace 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.WidebandFreeSpace System objects. It is more accurate to use a single two-way phased.WidebandFreeSpace System object. To set this option, use the TwoWayPropagation property.


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.


sWBFS = phased.WidebandFreeSpace creates a wideband free space System object, sWBFS.

sWBFS = phased.WidebandFreeSpace(Name,Value) creates a wideband free space System object, sWBFS, 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.


expand all

Signal propagation speed, specified as a positive scalar. Units are in meters per second. The default propagation speed is the value returned by physconst('LightSpeed'). See physconst for more information.

Example: 3e8

Data Types: double

Operating frequency, specified as a positive scalar. Units are in Hz.

Example: 1e9

Data Types: double

Enable two-way propagation, specified as a false or true. Set this property to true to perform round-trip propagation between the signal origin and destination specified in step. Set this property to false to perform only one-way propagation from the origin to the destination.

Example: true

Data Types: logical

Sample rate of signal, specified as a positive scalar. Units are in Hz. The System object uses this quantity to calculate the propagation delay in units of samples.

Example: 1e6

Data Types: double

Number of processing subbands, specified as a positive integer.

Example: 128

Data Types: double

Source of maximum one-way propagation distance, specified as 'Auto' or 'Property'. The maximum one-way propagation distance is used to allocate sufficient memory for signal 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.

Data Types: char

Maximum one-way propagation distance, specified as a positive real-valued scalar. Units are in meters. Any signal that propagates more than the maximum one-way distance is ignored. The maximum distance must be greater than or equal to the largest position-to-position distance.

Example: 5000


To enable this property, set the MaximumDistanceSource property to 'Property'.

Data Types: double

The source of the maximum number of samples of 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 input signal. When you set this property to 'Property', you specify the maximum number of samples in the input signal using the MaximumNumInputSamples property. Any input signal longer than that value is truncated.

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

Example: 'Property'


To enable this property, set MaximumDistanceSource to 'Property'.

Data Types: char

Maximum number of input signal samples, specified as a positive integer. The input signal is the first argument of the step method, after the System object itself. The size of the input signal is the number of rows in the input matrix. Any input signal longer than this number is truncated. To process signals completely, ensure that this property value is greater than any maximum input signal length.

The waveform-generating System objects determine the maximum signal size:

  • For any waveform, if the waveform OutputFormat property is set to 'Samples', the maximum signal length is the value specified in the NumSamples property.

  • For pulse waveforms, if the OutputFormat is set to 'Pulses', the signal length is the product of the smallest pulse repetition frequency, the number of pulses, and the sample rate.

  • For continuous waveforms, if the OutputFormat is set to 'Sweeps', the signal length is the product of the sweep time, the number of sweeps, and the sample rate.

Example: 2048


To enable this property, set MaximumNumInputSamplesSource to 'Property'.

Data Types: double


resetReset states of phased.WidebandFreeSpace System object
stepPropagate wideband signal from point to point using free-space channel model
Common to All System Objects

Allow System object property value changes


collapse all

Propagate a wideband signal with three tones in an underwater acoustic with constant speed of propagation. You can model this environment as free space. The center frequency is 100 kHz and the frequencies of the three tones are 75 kHz, 100 kHz, and 125 kHz, respectively. Plot the spectrum of the original signal and the propagated signal to observe the Doppler effect. The sampling frequency is 100 kHz.

c = 1500;
fc = 100e3;
fs = 100e3;
relfreqs = [-25000,0,25000];

Set up a stationary radar and moving target and compute the expected Doppler.

rpos = [0;0;0];
rvel = [0;0;0];
tpos = [30/fs*c; 0;0];
tvel = [45;0;0];
dop = -tvel(1)./(c./(relfreqs + fc));

Create a signal and propagate the signal to the moving target.

t = (0:199)/fs;
x = sum(exp(1i*2*pi*t.'*relfreqs),2);
channel = phased.WidebandFreeSpace(...
y = channel(x,rpos,tpos,rvel,tvel);

Plot the spectra of the original signal and the Doppler-shifted signal.

periodogram([x y],rectwin(size(x,1)),1024,fs,'centered')
ylim([-150 0])

For this wideband signal, you can see that the magnitude of the Doppler shift increases with frequency. In contrast, for narrowband signals, the Doppler shift is assumed constant over the band.

More About

expand all


[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 R2015b