Main Content

sonarEmission

Emitted sonar signal structure

Description

The sonarEmission class creates a sonar emission object. This object contains all the properties that describe a signal radiated by a sonar source.

Creation

Description

signal = sonarEmission creates a sonarEmission object with default properties. The object represents sonar signals from emitters, channels, and sensors.

example

signal = sonarEmission(Name,Value) sets object properties specified by one or more Name,Value pair arguments. Name can also be a property name and Value is the corresponding value. Name must appear inside single quotes (''). You can specify several name-value pair arguments in any order as Name1,Value1,...,NameN,ValueN.

Properties

expand all

Platform identifier, specified as a positive integer. The emitter is mounted on the platform with this ID. Each platform identifier is unique within a scenario.

Example: 5

Data Types: double

Emitter identifier, specified as a positive integer. Each emitter index is unique.

Example: 2

Data Types: double

Location of the emitter in scenario coordinates, specified as a 1-by-3 real-valued vector. Units are in meters.

Example: [100 -500 1000]

Data Types: double

Velocity of the emitter in scenario coordinates, specified as a 1-by-3 real-valued vector. Units are in meters per second.

Example: [0 -50 100]

Data Types: double

Orientation of the emitter in scenario coordinates, specified as a quaternion or 3-by-3 real-valued orthogonal matrix.

Example: eye(3)

Data Types: double

Field of view of emitter, specified as a 2-by-1 vector of positive real values, [azfov, elfov]. The field of view defines the total angular extent of the signal emitted. The azimuth filed of view azfov must lie in the interval (0,360]. The elevation filed of view elfov must lie in the interval (0,180].

Example: [140;70]

Data Types: double

Cumulative source level of an emitted signal, specified as a scalar. The cumulative source level of the emitted signal in decibels is relative to the intensity of a sound wave having an rms pressure of 1 micro-pascal. Units are in dB // 1 micro-pascal.

Example: 10

Data Types: double

Cumulative target strength of the source platform emitting the signal, specified as a scalar. Units are in dB.

Example: 10

Data Types: double

Center frequency of the signal, specified as a positive scalar. Units are in Hz.

Example: 10.5e3

Data Types: double

Half-power bandwidth of the sonar signal, specified as a positive scalar. Units are in Hz.

Example: 1e3

Data Types: double

Waveform type identifier, specified as a nonnegative integer.

Example: 5e3

Data Types: double

Processing gain associated with the signal waveform, specified as a scalar. Units are in dB.

Example: 10

Data Types: double

Total distance over which the signal has propagated, specified as a nonnegative scalar. For direct-path signals, the range is zero. Units are in meters.

Example: 1000

Data Types: double

Total range rate for the path over which the signal has propagated, specified as a scalar. For direct-path signals, the range rate is zero. Units are in meters per second.

Example: 10

Data Types: double

Examples

collapse all

Create a sonarEmission object with specified properties.

signal = sonarEmission('PlatformID',6,'EmitterIndex',2, ...
    'OriginPosition',[100,3000,50],'TargetStrength',20, ...
    'CenterFrequency',20e3,'Bandwidth',500.0)
signal = 
  sonarEmission with properties:

              PlatformID: 6
            EmitterIndex: 2
          OriginPosition: [100 3000 50]
          OriginVelocity: [0 0 0]
             Orientation: [1x1 quaternion]
             FieldOfView: [180 180]
         CenterFrequency: 20000
               Bandwidth: 500
            WaveformType: 0
          ProcessingGain: 0
        PropagationRange: 0
    PropagationRangeRate: 0
             SourceLevel: 0
          TargetStrength: 20

Create a sonar emission and then detect the emission using a sonarSensor object.

First, create a sonar emission.

orient = quaternion([180 0 0],'eulerd','zyx','frame');
sonarSig = sonarEmission('PlatformID',1,'EmitterIndex',1, ...
    'OriginPosition',[30 0 0],'Orientation',orient, ...
    'SourceLevel',140,'TargetStrength',100);

Then create a passive sonar sensor.

sensor = sonarSensor(1,'No scanning');

Detect the sonar emission.

time = 0;
[dets, numDets, config] = sensor(sonarSig,time)
dets = 1x1 cell array
    {1x1 objectDetection}

numDets = 1
config = struct with fields:
              SensorIndex: 1
              IsValidTime: 1
               IsScanDone: 1
              FieldOfView: [1 5]
              RangeLimits: [0 Inf]
          RangeRateLimits: [0 Inf]
    MeasurementParameters: [1x1 struct]

Extended Capabilities

C/C++ Code Generation
Generate C and C++ code using MATLAB® Coder™.

Version History

Introduced in R2018b