emissionsInBody
Transform emissions to body frame of platform
Description
Examples
Convert a radar emission from scenario coordinates to body frame.
Define a radar emission with respect to the scenario frame.
emScene = radarEmission('PlatformID',1,'EmitterIndex',1, ... 'OriginPosition',[0 0 0])
emScene =
radarEmission with properties:
PlatformID: 1
EmitterIndex: 1
OriginPosition: [0 0 0]
OriginVelocity: [0 0 0]
Orientation: [1×1 quaternion]
FieldOfView: [180 180]
CenterFrequency: 300000000
Bandwidth: 3000000
WaveformType: 0
ProcessingGain: 0
PropagationRange: 0
PropagationRangeRate: 0
EIRP: 0
RCS: 0
Define the position, velocity, and orientation, of the body relative to the scenario frame.
bodyFrame = struct( ... 'Position',[10 0 0], ... 'Velocity',[5 5 0], ... 'Orientation',quaternion([45 0 0],'eulerd','zyx','frame'));
Convert the emission into the body frame.
emBody = emissionsInBody(emScene,bodyFrame)
emBody =
radarEmission with properties:
PlatformID: 1
EmitterIndex: 1
OriginPosition: [-7.0711 7.0711 0]
OriginVelocity: [-7.0711 4.4409e-16 0]
Orientation: [1×1 quaternion]
FieldOfView: [180 180]
CenterFrequency: 300000000
Bandwidth: 3000000
WaveformType: 0
ProcessingGain: 0
PropagationRange: 0
PropagationRangeRate: 0
EIRP: 0
RCS: 0
Convert a sonar emission from scenario coordinates into body coordinates. Use trackingScenario to defined the motion of the body and use sonarEmitter to create the emission.
Set up a tracking scenario.
scene = trackingScenario;
Create a sonar emitter to mount on a platform.
emitter = sonarEmitter(1,'No scanning');Mount the emitter on a platform in the scenario 100 meters below sea-level.
platTx = platform(scene,'Emitters',emitter);
platTx.Trajectory.Position = [10 0 100];Create another platform in the scenario.
platRx = platform(scene); platRx.Trajectory.Position = [100 0 100]; platRx.Trajectory.Orientation = quaternion([45 0 0],'eulerd', ... 'zyx','frame');
Emit a signal. The emitted signal is in the scenario frame.
emScene = emit(platTx,scene.SimulationTime)
emScene = 1×1 cell array
{1×1 sonarEmission}
Propagate the emission through an underwater channel.
emPropScene = underwaterChannel(emScene,scene.Platforms)
emPropScene=2×1 cell array
{1×1 sonarEmission}
{1×1 sonarEmission}
Convert the emission to the body frame of the second platform.
emBodyRx = emissionsInBody(emPropScene, platRx); disp(emBodyRx(1))
{1×1 sonarEmission}
Input Arguments
Emissions in scenario coordinates, specified as a cell array of radarEmission
or sonarEmission
emission objects.
Body frame, specified as a structure or Platform
object. You can use a Platform
object because it contains the necessary information. The body frame structure must
contain at least these fields:
| Field | Description |
|---|---|
Position | Position of body in scenario coordinates, specified as a real-valued 1-by-3 vector. This field is required. There is no default value. Units are in meters. |
Velocity | Velocity of body in scenario coordinates, specified as a
real-valued 1-by-3 vector. Units are in meters per second. The default is
|
Orientation | Orientation of body with respect to the scenario coordinate frame,
specified as a scalar quaternion or a 3-by-3 rotation matrix. Orientation
defines the frame rotation from the scenario coordinate system to the body
coordinate system. Units are dimensionless. The default is
|
Because the fields in the body frame structure are a subset of the
fields in a platform structure, you can use the platform structure output from the
platformPoses method of trackingScenario as the input bodyframe.
Output Arguments
Emissions in body coordinates, returned as a cell array of radarEmission
and sonarEmission
emission objects.
Extended Capabilities
C/C++ Code Generation
Generate C and C++ code using MATLAB® Coder™.
Version History
Introduced in R2018b
See Also
Functions
Objects
MATLAB Command
You clicked a link that corresponds to this MATLAB command:
Run the command by entering it in the MATLAB Command Window. Web browsers do not support MATLAB commands.
Sélectionner un site web
Choisissez un site web pour accéder au contenu traduit dans votre langue (lorsqu'il est disponible) et voir les événements et les offres locales. D’après votre position, nous vous recommandons de sélectionner la région suivante : .
Vous pouvez également sélectionner un site web dans la liste suivante :
Comment optimiser les performances du site
Pour optimiser les performances du site, sélectionnez la région Chine (en chinois ou en anglais). Les sites de MathWorks pour les autres pays ne sont pas optimisés pour les visites provenant de votre région.
Amériques
- América Latina (Español)
- Canada (English)
- United States (English)
Europe
- Belgium (English)
- Denmark (English)
- Deutschland (Deutsch)
- España (Español)
- Finland (English)
- France (Français)
- Ireland (English)
- Italia (Italiano)
- Luxembourg (English)
- Netherlands (English)
- Norway (English)
- Österreich (Deutsch)
- Portugal (English)
- Sweden (English)
- Switzerland
- United Kingdom (English)