Main Content

phased.WidebandLOSChannel

Wideband LOS propagation channel

Description

The phased.WidebandLOSChannel System object™ models the propagation of wideband electromagnetic signals through a line-of-sight (LOS) channel from a source to a destination. In an LOS channel, propagation paths are straight lines from point to point. The propagation model in the LOS channel includes free-space attenuation in addition to attenuation due to atmospheric gases, rain, fog, and clouds. You can use phased.WidebandLOSChannel to model the propagation of signals between multiple points simultaneously. The System object works for all frequencies.

While the attenuation models for atmospheric gases and rain are valid for electromagnetic signals in the frequency range 1–1000 GHz only, the attenuation model for fog and clouds is valid for 10–1000 GHz. Outside these frequency ranges, the System object uses the nearest valid value.

The phased.WidebandLOSChannel System object applies range-dependent time delays to the signals, as well as gains or losses. When either the source or destination is moving, the System object applies Doppler shifts.

Like the phased.WidebandFreeSpace System object, the phased.WidebandLOSChannel System object supports two-way propagation.

To create and use a wideband LOS channel:

  1. Create the phased.WidebandLOSChannel object and set its properties.

  2. Call the object with arguments, as if it were a function.

To learn more about how System objects work, see What Are System Objects?

Creation

Description

channel = phased.WidebandLOSChannel creates a Wideband LOS attenuating propagation channel System object, channel.

example

channel = phased.WidebandLOSChannel(Name=Value) creates a System object, channel, with each specified property Name set to the specified Value. You can specify additional name and value pair arguments in any order as (Name1=Value1,...,Name=ValueN).

Properties

expand all

Unless otherwise indicated, properties are nontunable, which means you cannot change their values after calling the object. Objects lock when you call them, and the release function unlocks them.

If a property is tunable, you can change its value at any time.

For more information on changing property values, see System Design in MATLAB Using System Objects.

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

Option to enable the atmospheric attenuation model, specified as a false or true. Set this property to true to add signal attenuation caused by atmospheric gases, rain, fog, or clouds. Set this property to false to ignore atmospheric effects in propagation.

Setting SpecifyAtmosphere to true, enables the Temperature, DryAirPressure, WaterVapourDensity, LiquidWaterDensity, and RainRate properties.

Data Types: logical

Ambient temperature, specified as a real-valued scalar. Units are in degrees Celsius.

Example: 20.0

Dependencies

To enable this property, set SpecifyAtmosphere to true.

Data Types: double

Atmospheric dry air pressure, specified as a positive real-valued scalar. Units are in pascals (Pa). The default value of this property corresponds to one standard atmosphere.

Example: 101.0e3

Dependencies

To enable this property, set SpecifyAtmosphere to true.

Data Types: double

Atmospheric water vapor density, specified as a positive real-valued scalar. Units are in g/m3.

Example: 7.4

Dependencies

To enable this property, set SpecifyAtmosphere to true.

Data Types: double

Liquid water density of fog or clouds, specified as a nonnegative real-valued scalar. Units are in g/m3. Typical values for liquid water density are 0.05 for medium fog and 0.5 for thick fog.

Example: 0.1

Dependencies

To enable this property, set SpecifyAtmosphere to true.

Data Types: double

Rainfall rate, specified as a nonnegative real-valued scalar. Units are in mm/hr. This property applies only when you set SpecifyAtmosphere to true.

Example: 10.0

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 the destination. 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

Dependencies

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'

Dependencies

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 object call. 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

Dependencies

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

Data Types: double

Usage

Description

prop_sig = channel(sig,origin_pos,dest_pos,origin_vel,dest_vel) returns the resulting signal, prop_sig, when a wideband signal, sig, propagates through a line-of-sight (LOS) channel from a source located at the origin_pos position to a destination at the dest_pos position. Only one of the origin_pos or dest_pos arguments can specify multiple positions. The other must contain a single position. The velocity of the signal origin is specified in origin_vel and the velocity of the signal destination is specified in dest_vel. The dimensions of origin_vel and dest_vel must match the dimensions of origin_pos and dest_pos, respectively.

Electromagnetic fields propagating through an LOS channel can be polarized or nonpolarized. For nonpolarized fields, the propagating signal field, sig, is a vector or matrix. For polarized fields, sig is an array of structures. The structure elements represent an electric field vector in Cartesian form.

example

Input Arguments

expand all

Wideband signal, specified as a matrix or struct array, depending on whether is signal or polarized or nonpolarized. The quantity M is the number of samples in the signal, and N is the number of wideband LOS channels. Each channel corresponds to a source-destination pair.

  • Wideband nonpolarized scalar signal. Specify sig as an M-by-N complex-valued matrix. Each column contains one signal propagated along the line-of-sight path.

  • Wideband polarized signal. Specify sig as a 1-by-N struct array containing complex-valued fields. Each struct represents a polarized signal propagated along the line-of-sight path. Each struct element contains three M-by-1 complex-valued column vectors, sig.X, sig.Y, and sig.Z. These vectors represent the x, y, and z Cartesian components of the polarized signal.

Example: [1,1;j,1;0.5,0]

Data Types: double
Complex Number Support: Yes

Origin of signals, specified as a 3-by-1 real-valued column vector or 3-by-N real-valued matrix. The quantity N is the number of LOS channels. If origin_pos is a column vector, it takes the form [x;y;z]. If origin_pos is a matrix, each column specifies a different signal origin and has the form [x;y;z]. Units are in meters.

You cannot specify both origin_pos and dest_pos as matrices. At least one must be a 3-by-1 column vector.

Example: [1000;100;500]

Data Types: double

Destination position of the signal or signals, specified as a 3-by-1 real-valued column vector or 3-by-N real-valued matrix. The quantity N is the number of LOS channels propagating from or to N signal origins. If dest_pos is a 3-by-1 column vector, it takes the form [x;y;z]. If dest_pos is a matrix, each column specifies a different signal destination and takes the form [x;y;z] Position units are in meters.

You cannot specify both origin_pos and dest_pos as matrices. At least one must be a 3-by-1 column vector.

Example: [0;0;0]

Data Types: double

Velocity of signal origin, specified as a 3-by-1 real-valued column vector or 3-by-N real-valued matrix. The dimensions of origin_vel must match the dimensions of origin_pos. If origin_vel is a column vector, it takes the form [Vx;Vy;Vz]. If origin_vel is a 3-by-N matrix, each column specifies a different origin velocity and has the form [Vx;Vy;Vz]. Velocity units are in meters per second.

Example: [10;0;5]

Data Types: double

Velocity of signal destinations, specified as a 3-by-1 real-valued column vector or 3-by-N real-valued matrix. The dimensions of dest_vel must match the dimensions of dest_pos. If dest_vel is a column vector, it takes the form [Vx;Vy;Vz]. If dest_vel is a 3-by-N matrix, each column specifies a different destination velocity and has the form [Vx;Vy;Vz] Velocity units are in meters per second.

Example: [0;0;0]

Data Types: double

Output Arguments

expand all

Wideband signal, returned as a matrix or struct array, depending on whether the signal is polarized or nonpolarized. The quantity M is the number of samples in the signal and N is the number of wideband LOS channels. Each channel corresponds to a source-destination pair.

  • Wideband nonpolarized scalar signal. prop_sig is an M-by-N complex-valued matrix.

    The size of the first dimension of the input matrix can vary to simulate a changing signal length. A size change can occur, for example, in the case of a pulse waveform with variable pulse repetition frequency.

  • Wideband polarized scalar signal. prop_sig is a 1-by-N struct array containing complex-valued fields. Each struct element contains three M-by-1 complex-valued column vectors, sig.X, sig.Y, and sig.Z. These vectors represent the x, y, and z Cartesian components of the polarized signal.

    The size of the first dimension of the matrix fields within the struct can vary to simulate a changing signal length such as a pulse waveform with variable pulse repetition frequency.

The prop_sig output contains signal samples arriving at the signal destination within the current time frame. The current time frame is the time frame of the input signals to the object. Whenever it takes longer than the current time frame for the signal to propagate from the origin to the destination, the output might not contain all contributions from the input of the current time frame. The remaining output appears in the next call to the object.

Object Functions

To use an object function, specify the System object as the first input argument. For example, to release system resources of a System object named obj, use this syntax:

release(obj)

expand all

stepRun System object algorithm
releaseRelease resources and allow changes to System object property values and input characteristics
resetReset internal states of System object

Examples

collapse all

Propagate a wideband signal in a line-of-sight (LOS) channel from a radar at (0,0,0) meters to a target at (60,0,0) meters in medium fog. Set the fog liquid water density to 0.05 g/m3. Assume rain is falling at 5 mm/hr. The signal carrier frequency is 20 GHz. The signal is a sum of four cw tones at 19.75, 19.875, 20.125, and 20.25 GHz. Set the signal duration to 0.5 microsecond and the sample rate to 2.0 GHz. Assume the radar is stationary and the target approaches the radar at 40 m/s. The atmospheric temperature is 12°C and the dry air pressure is 101.300 kPa.

Set the signal parameters and create the transmitted signal.

c = physconst('LightSpeed');
fs = 2e9;
freq = [-0.25,-.125,0.0,0.125,0.25]*1e9;
fc = 20.0e9;
dt = 1/fs;
t = [0:dt:.5e-6];
sig = sum(exp(1i*2*pi*t.'*freq),2);

Specify the atmosphere parameters and create the phased.WidebandChannel System object™.

lwd = 0.05;
rainrate = 5.0;
dap = 101300.0;
temp = 12.0;
channel = phased.WidebandLOSChannel('SampleRate',fs,'PropagationSpeed',c,...
    'SpecifyAtmosphere',true,'OperatingFrequency',fc,'RainRate',rainrate,...
    'LiquidWaterDensity',lwd,'Temperature',temp,'DryAirPressure',dap);

Specify the radar and target positions and velocities.

xradar = [0,0,0].';
vradar = [0,0,0].';
xtgt = [60,0,0].';
vtgt = [-40,0,0].';

Propagate the signal.

prop_sig = channel(sig,xradar,xtgt,vradar,vtgt);

Plot the propagated signal. For a target range of 60 m, the propagation delay is 0.20 μs as shown in the plot.

plot(t*1e6,real(prop_sig))
grid
xlabel('Time (\mu sec)')
ylabel('Amplitude')

Figure contains an axes object. The axes object with xlabel Time ( mu blank sec), ylabel Amplitude contains an object of type line.

Propagate a wideband signal in a line-of-sight (LOS) channel from a radar at (0,0,0) meters to a target at (35,0,0) meters in medium fog. Set the fog liquid water density to 0.05 gm/m3. Assume rain is falling at 5 mm/hr. The signal carrier frequency is 20 GHz. The signal is a sum of four cw tones at 19.75, 19.875, 20.125, and 20.25 GHz. Set the signal duration to 0.5 μs and the sample rate to 2.0 GHz. Assume the radar is stationary and the target approaches the radar at 40 m/s. The atmospheric temperature is 12°C.

Set the signal parameters and create the transmitted signal.

c = physconst('LightSpeed');
fs = 2e9;
freq = [-0.25,-.125,0.125,0.25]*1e9;
fc = 20.0e9;
dt = 1/fs;
t = [0:dt:.5e-6];
sig = sum(exp(1i*2*pi*t.'*freq),2);

Specify the atmosphere parameters and create the phased.WidebandChannel System object™.

lwd = 0.05;
rainrate = 5.0;
temp = 12.0;
channel = phased.WidebandLOSChannel('SampleRate',fs,'PropagationSpeed',c,...
    'SpecifyAtmosphere',true,'OperatingFrequency',fc,'RainRate',rainrate,...
    'LiquidWaterDensity',lwd,'Temperature',temp);

Specify the radar and target positions and velocities.

xradar = [0,0,0].';
vradar = [0,0,0].';
xtgt = [35,0,0].';
vtgt = [-40,0,0].';

Propagate the signal.

prop_sig = channel(sig,xradar,xtgt,vradar,vtgt);

Plot the propagated signal. For a target range of 35 m, the propagation delay is 0.11 μs as seen in the plot.

plot(t*1e6,real(prop_sig))
grid
xlabel('Time ({\mu}s)')
ylabel('Amplitude')

Figure contains an axes object. The axes object with xlabel Time ( mu s), ylabel Amplitude contains an object of type line.

Using the periodogram function with a Taylor window, plot the spectra of the original and propagated signals.

nfft = 1024;
nsamp = size(sig,1);
periodogram([sig prop_sig],taylorwin(nsamp),nfft,fs,'centered')
ylim([-200 0])
legend('transmitted','propagated')

Figure contains an axes object. The axes object with title Power Spectral Density, xlabel Frequency (GHz), ylabel Power/frequency (dB/Hz) contains 2 objects of type line. These objects represent transmitted, propagated.

More About

expand all

References

[1] Radiocommunication Sector of the International Telecommunication Union. Recommendation ITU-R P.676-10: Attenuation by atmospheric gases. 2013.

[2] Radiocommunication Sector of the International Telecommunication Union. Recommendation ITU-R P.840-6: Attenuation due to clouds and fog. 2013.

[3] Radiocommunication Sector of the International Telecommunication Union. Recommendation ITU-R P.838-3: Specific attenuation model for rain for use in prediction methods. 2005.

[4] Seybold, J. Introduction to RF Propagation. New York: Wiley & Sons, 2005.

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

Extended Capabilities

Version History

Introduced in R2016a