Wideband free-space propagation
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
To compute the propagated signal in free space:
Define and set up your wideband free space environment as shown in the Construction section.
stepto propagate the signal through free space according to the properties of the
System object. The behavior of
stepis specific to each object in the toolbox.
When propagating a round trip signal in free space, you can use one
System object to compute the two-way propagation delay. Alternatively, you can use two
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
phased.WidebandFreeSpace System objects.
It is more accurate to use a single two-way
System object. To set this option, use the
Starting in R2016b, instead of using the
method to perform the operation defined by the System object, you can call the object with arguments, as if it were a function. For
y = step(obj,x) and
y = obj(x)
perform equivalent operations.
wideband free space System object,
sWBFS = phased.WidebandFreeSpace
creates a wideband free space System object,
sWBFS = phased.WidebandFreeSpace(
sWBFS, with each specified property
Name set to the specified
Value. You can
specify additional name-value pair arguments in any order as
|reset||Reset states of phased.WidebandFreeSpace System object|
|step||Propagate wideband signal from point to point using free-space channel model|
|Common to All System Objects|
Allow System object property value changes
Free-Space Propagation of Wideband Signals
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.
Note: This example runs only in R2016b or later. If you are using an earlier release, replace each call to the function with the equivalent
step syntax. For example, replace
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(... 'PropagationSpeed',c,... 'OperatingFrequency',fc,... 'SampleRate',fs); 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]) legend('original','propagated');
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.
Free-space 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 .
Subband Frequency Processing
Subband processing decomposes a wideband signal into multiple subbands and applies narrowband processing to the signal in each subband. The signals for all subbands are summed to form the output signal.
When using wideband frequency System objects or blocks, you specify the number of subbands, NB, in which to decompose the wideband signal. Subband center frequencies and widths are automatically computed from the total bandwidth and number of subbands. The total frequency band is centered on the carrier or operating frequency, fc. The overall bandwidth is given by the sample rate, fs. Frequency subband widths are Δf = f s/NB. The center frequencies of the subbands are
Some System objects let you obtain the subband center frequencies as output when you run the object. The returned subband frequencies are ordered consistently with the ordering of the discrete Fourier transform. Frequencies above the carrier appear first, followed by frequencies below the carrier.
System object uses narrowband time delay and loss algorithms for each
 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:
See System Objects in MATLAB Code Generation (MATLAB Coder).
Introduced in R2015b