## Description

The phased.BackscatterRadarTarget System object™ models the backscatter of a signal from a target. Backscattering is a special case of radar target scattering when the incident and reflected angles are the same. This type of scattering applies to monostatic radar configurations. The radar cross-section determines the backscattering response of a target to an incident signal. This System object lets you specify an angle-dependent radar cross-section model that covers a range of incident angles.

The phased.BackscatterRadarTarget System object creates a backscattered signal for polarized and nonpolarized signals. While electromagnetic radar signals are polarized, you can often ignore polarization in your simulation and process the signals as scalar signals. To ignore polarization, specify the EnablePolarization property as false. To employ polarization, specify the EnablePolarization property as true.

For nonpolarized signals, you specify the radar cross section as an array of radar cross-section (RCS) values at discrete azimuth and elevation points. The System object interpolates values for incident angles between array points. For polarized signals, you specify the radar scattering matrix using three arrays defined at discrete azimuth and elevation points. These three arrays correspond to the HH, HV, and VV polarization components. The VH component is computed using the conjugate symmetry property of the HV component.

For both nonpolarized and polarized signal cases, you can employ one of four Swerling models to generate random fluctuations in the RCS or radar scattering matrix. Choose the model using the Model property. Then, use the SeedSource and Seed properties to control the fluctuations.

EnablePolarizationUse these properties
false

RCSPattern

trueShhPattern, SvvPattern, and ShvPattern

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

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

## Creation

### Syntax

target = phased.BackscatterRadarTarget
target = phased.BackscatterRadarTarget(Name,Value)

### Description

example

target = phased.BackscatterRadarTarget creates a backscatter radar target System object, target.
target = phased.BackscatterRadarTarget(Name,Value) creates a backscatter radar target System object, target, 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,...,NameN,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.

Option to enable processing of polarized signals, specified as false or true. Set this property to true to allow the target to simulate the reflection of polarized radiation. Set this property to false to ignore polarization.

Example: true

Data Types: logical

Azimuth angles used to define the angular coordinates of each column of the matrices specified by the RCSPattern, ShhPattern, ShvPattern, or SvvPattern properties. Specify the azimuth angles as a length P vector. P must be greater than two. Angle units are in degrees.

Example: [-45:0.1:45]

Data Types: double

Elevation angles used to define the angular coordinates of each row of the matrices specified by the RCSPattern, ShhPattern, ShvPattern, or SvvPattern properties. Specify the elevation angles as a length Q vector. Q must be greater than two. Angle units are in degrees.

Example: [-30:0.1:30]

Data Types: double

Radar cross-section (RCS) pattern, specified as a Q-by-P real-valued matrix or a Q-by-P-by-M real-valued array. Q is the length of the vector in the ElevationAngles property. P is the length of the vector in the AzimuthAngles property. M is the number of RCS patterns. The number of patterns corresponds to the number of signals sig passed into the function. You can, however, use a single pattern to model multiple signals reflecting from a single target. Pattern units are square-meters.

You can also specify the pattern as a function only of azimuth for a single elevation. In this case, specify the pattern as either a 1-by-P vector or an M-by-P matrix. Each row is a separate pattern.

This property applies when the EnablePolarization property is false.

Example: [1,.5;.5,1]

Data Types: double

Radar scattering matrix HH polarization component, specified as a Q-by-P complex-valued matrix or a Q-by-P-by-M complex-valued array. Q is the length of the vector in the ElevationAngles property. P is the length of the vector in the AzimuthAngles property. M is the number of target patterns. The number of patterns corresponds to the number of signals sig passed into the function. You can, however, use a single pattern to model multiple signals reflecting from a single target. Scattering matrix units are meters.

You can also specify the pattern as a function only of azimuth for a single elevation. Then, specify the pattern as either a 1-by-P vector or an M-by-P matrix. Each row is a separate pattern.

This property applies when the EnablePolarization property is true.

Example: [1,1;1i,1i]

Data Types: double
Complex Number Support: Yes

Radar scattering matrix VV polarization component, specified as a Q-by-P complex-valued matrix or a Q-by-P-by-M complex-valued array. Q is the length of the vector in the ElevationAngles property. P is the length of the vector in the AzimuthAngles property. M is the number of target patterns. The number of patterns corresponds to the number of signals sig passed into the function. You can, however, use a single pattern to model multiple signals reflecting from a single target. Scattering matrix units are meters.

You can also specify the pattern as a function only of azimuth for a single elevation. In this case, specify the pattern as either a 1-by-P vector or an M-by-P matrix. Each row is a separate pattern.

This property applies when the EnablePolarization property is true.

Example: [1,1;1i,1i]

Data Types: double
Complex Number Support: Yes

Radar scattering matrix HV polarization component, specified as a Q-by-P complex-valued matrix or a Q-by-P-by-M complex-valued array. Q is the length of the vector in the ElevationAngles property. P is the length of the vector in the AzimuthAngles property. M is the number of target patterns. The number of patterns corresponds to the number of signals aig passed into the function. You can, however, use a single pattern to model multiple signals reflecting from a single target. Scattering matrix units are meters.

You can also specify the pattern as a function only of azimuth for a single elevation. In this case, specify the pattern as either a 1-by-P vector or an M-by-P matrix. Each row is a separate pattern.

This property applies when the EnablePolarization property is true.

Example: [1,1;1i,1i]

Data Types: double
Complex Number Support: Yes

Target fluctuation model, specified as 'Nonfluctuating', 'Swerling1', 'Swerling2', 'Swerling3', or 'Swerling4'. If you set this property to a value other than 'Nonfluctuating', use the update input argument when calling the function.

Example: 'Swerling3'

Data Types: char

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

Seed source of random number generator for RCS fluctuation model, specified as 'Auto' or 'Property'. When you set this property to 'Auto', the System object generates random numbers using the default MATLAB® random number generator. When you set this property to 'Property', you specify the random number generator seed using the Seed property. This property applies when you set the Model property to'Swerling1', 'Swerling2', 'Swerling3', or 'Swerling4'. When you use this object with Parallel Computing Toolbox™ software, you set this property to 'Auto'.

Example: 'Property'

Data Types: char

Random number generator seed, specified as a nonnegative integer less than 232. This property applies when the SeedSource property is set to 'Property'.

Example: 32301

Data Types: double

## Usage

### Syntax

refl_sig = target(sig,ang)
refl_sig = target(sig,ang,update)
refl_sig = target(sig,ang,laxes)
refl_sig = target(sig,ang,laxes,update)

### Description

example

refl_sig = target(sig,ang) returns the reflected signal, refl_sig, of an incident nonpolarized signal, sig, arriving at the target from the angle, ang. This syntax applies when you set the EnablePolarization property to false and the Model property to 'Nonfluctuating'. In this case, the values specified in the RCSPattern property are used to compute the RCS values for the incident and reflected directions, ang.
refl_sig = target(sig,ang,update) uses update to control whether to update the RCS values. This syntax applies when you set the EnablePolarization property to false and the Model property to one of the fluctuating RCS models: 'Swerling1', 'Swerling2', 'Swerling3', or 'Swerling4'. If update is true, a new RCS value is generated. If update is false, the previous RCS value is used.
 refl_sig = target(sig,ang,laxes) returns the reflected signal, refl_sig, of an incident polarized signal, sig. The matrix, laxes, specifies the local target coordinate system. This syntax applies when you set EnablePolarization to true and the Model property to 'Nonfluctuating'. The values specified in the ShhPattern, SvvPattern, and ShvPattern properties are used to compute the scattering matrices for the incident and reflected directions, ang.

example

 refl_sig = target(sig,ang,laxes,update) uses the update argument to control whether to update the scattering matrix values. This syntax applies when you set the EnablePolarization property to true and the Model property to one of the fluctuating RCS models: 'Swerling1', 'Swerling2', 'Swerling3', or 'Swerling4'. If update is true, a new RCS value is generated. If update is false, the previous RCS value is used.

### Input Arguments

expand all

• Narrowband nonpolarized signal, specified as an N-by-M complex-valued matrix. The quantity N is the number of signal samples and M is the number of signals reflecting off the target. Each column corresponds to an independent signal incident at a different reflecting angle.

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.

• Narrowband polarized signal, specified as a 1-by-M struct array containing complex-valued fields. Each struct element contains three N-by-1 column vectors of electromagnetic field components (sig.X,sig.Y,sig.Z) representing the polarized signal that reflects from the target.

For polarized fields, the struct element contains three N-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 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.

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

Data Types: double
Complex Number Support: Yes

Incident signal direction, specified as a 2-by-1 positive real-valued column vector or a 2-by-M positive real-valued column matrix. Each column of ang specifies the incident direction of the corresponding signal in the form of an [AzimuthAngle;ElevationAngle] pair. Units are degrees. The number of columns in ang must match the number of independent signals in sig.

Example: [30;45]

Data Types: double

Allow the RCS values for fluctuation models to update, specified as false or true. When update is true, a new RCS value is generated with each call to the function. If update is false, the RCS remains unchanged with each call to function.

Example: true

Data Types: logical

Local coordinate system matrix, specified as a 3-by-3 real-valued orthonormal matrix or a 3-by-3-by-M real-valued array. The matrix columns specify the local coordinate system orthonormal x-axis, y-axis, and z-axis, respectively. Each axis is a vector of the form (x;y;z) with respect to the global coordinate system. When sig has only one signal, laxes is a 3-by-3 matrix. When sig has multiple signals, you can use a single 3-by-3 matrix for multiple signals in sig. In this case, all targets have the same local coordinate systems. When you specify laxes as a 3-by-3-by-M MATLAB array, each page (third index) defines a 3-by-3 local coordinate matrix for the corresponding target.

Example: [1,0,0;0,0.7071,-0.7071;0,0.7071,0.7071]

Data Types: double

### Output Arguments

expand all

• Narrowband nonpolarized signal, specified as an N-by-M complex-valued matrix. Each column contains an independent signal reflected from the target.

The quantity N is the number of signal samples and M is the number of signals reflecting off the target. Each column corresponds to a reflecting angle.

• Narrowband polarized signal, specified as a 1-by-M struct array containing complex-valued fields. Each struct element contains three N-by-1 column vectors of electromagnetic field components (sig.X,sig.Y,sig.Z) representing the polarized signal that reflects from the target.

For polarized fields, the struct element contains three N-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 output refl_sig contains signal samples arriving at the signal destination within the current input time frame. When the propagation time from source to destination exceeds the current time frame duration, the output does not contain all contributions from the input of the current time frame. The remaining output appears in the next call to function.

## 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

 step Run System object algorithm release Release resources and allow changes to System object property values and input characteristics reset Reset internal states of System object

## Examples

collapse all

Calculate the reflected radar signal from a nonfluctuating point target with a peak RCS of 10.0 ${m}^{2}$. Use a simplified expression of an RCS pattern of a target for illustrative purposes. Real RCS patterns are more complicated. The RCS pattern covers a range of angles from 10°–30° in azimuth and 5°–15° in elevation. The RCS peaks at 20° azimuth and 10° elevation. Assume that the radar operating frequency is 1 GHz and that the signal is a sinusoid at 1 MHz.

Create and plot the RCS pattern.

azmax = 20.0; elmax = 10.0; azpatangs = 10.0:0.1:30.0; elpatangs = 5.0:0.1:15.0; rcspattern = 10.0*cosd(4*(elpatangs - elmax))'*cosd(4*(azpatangs - azmax)); imagesc(azpatangs,elpatangs,rcspattern) axis image axis tight title('RCS') xlabel('Azimuth (deg)') ylabel('Elevation (deg)')

Generate and plot 50 samples of the radar signal.

foper = 1.0e9; freq = 1.0e6; fs = 10*freq; nsamp = 50; t = (0:(nsamp-1))'/fs; sig = sin(2*pi*freq*t); plot(t*1e6,sig) xlabel('Time (\mu seconds)') ylabel('Signal Amplitude') grid

Create the phased.BackscatterRadarTarget System object™.

target = phased.BackscatterRadarTarget('Model','Nonfluctuating',... 'AzimuthAngles',azpatangs,'ElevationAngles',elpatangs,... 'RCSPattern',rcspattern,'OperatingFrequency',foper);

For a sequence of incident angles at constant elevation angle, find and plot the scattered signal amplitude.

az0 = 13.0; el = 10.0; az = az0 + (0:2:20); naz = length(az); ss = zeros(1,naz); for k = 1:naz y = target(sig,[az(k);el]); ss(k) = max(abs(y)); end plot(az,ss,'.') xlabel('Azimuth (deg)') ylabel('Scattered Signal Amplitude') grid

Calculate the polarized radar signal scattered from a Swerling1 fluctuating point target. Assume the target axis is rotated from the global coordinate system. Use simple expressions for the scattering patterns for illustration. Real scattering patterns are more complicated. For polarized signals, you need to specify the HH, HV, and VV components of the scattering matrix for a range of incident angles. In this example, the patterns cover the range 10°–30° in azimuth and 5°–15° in elevation. Angles are with respect to the target local coordinate system. Assume that the radar operating frequency is 1 GHz and that the signal is a sinusoid with a frequency of 1 MHz. The incident angle is 13.0° azimuth and 14.0° elevation with respect to the target orientation.

Create and plot the scattering matrix patterns.

azmax = 20.0; elmax = 10.0; azpatangs = (10.0:0.1:35.0); elpatangs = (5.0:0.1:15.0); shhpat = cosd(4*(elpatangs - elmax))'*cosd(4*(azpatangs - azmax)); shvpat = 1i*cosd(4*(elpatangs - elmax))'*sind(4*(azpatangs - azmax)); svvpat = sind(4*(elpatangs - elmax))'*sind(4*(azpatangs - azmax)); subplot(1,3,1) imagesc(azpatangs,elpatangs,abs(shhpat)) axis image axis tight title('HH') xlabel('Azimuth (deg)') ylabel('Elevation (deg)') subplot(1,3,2) imagesc(azpatangs,elpatangs,abs(shvpat)) axis image axis tight title('HV') xlabel('Azimuth (deg)') subplot(1,3,3) imagesc(azpatangs,elpatangs,abs(svvpat)) axis image axis tight title('VV') xlabel('Azimuth (deg)')

Create the phased.BackscatterRadarTarget System object™.

target = phased.BackscatterRadarTarget('EnablePolarization',true,... 'Model','Swerling1','AzimuthAngles',azpatangs,... 'ElevationAngles',elpatangs,'ShhPattern',shhpat,'ShvPattern',shvpat,... 'SvvPattern',svvpat);

Generate 50 samples of a polarized radar signal.

foper = 1.0e9; freq = 1.0e6; fs = 10*freq; nsamp = 50; t = (0:(nsamp-1))'/fs; signal.X = exp(1i*2*pi*freq*t); signal.Y = exp(1i*2*pi*freq*t + pi/3); signal.Z = zeros(size(signal.X)); tgtaxes = azelaxes(60,10); ang = [13.0;14.0];

Reflect the signal from the target and plot its components.

refl_signal = target(signal,ang,tgtaxes,true); figure plot(t*1e6,real(refl_signal.X)) hold on plot(t*1e6,real(refl_signal.Y)) plot(t*1e6,real(refl_signal.Z)) hold off xlabel('Time \mu seconds') ylabel('Amplitude') grid

expand all

## References

[1] Mott, H. Antennas for Radar and Communications. New York: John Wiley & Sons, 1992.

[2] Richards, M. A. Fundamentals of Radar Signal Processing. New York: McGraw-Hill, 2005.

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

## Version History

Introduced in R2016a