emissionsInBody
Transform emissions to body frame of platform
Description
Examples
Convert Radar Emission to Body Frame
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: [1x1 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: [1x1 quaternion] FieldOfView: [180 180] CenterFrequency: 300000000 Bandwidth: 3000000 WaveformType: 0 ProcessingGain: 0 PropagationRange: 0 PropagationRangeRate: 0 EIRP: 0 RCS: 0
Convert Sonar Emission into Body Frame
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 = 1x1 cell array
{1x1 sonarEmission}
Propagate the emission through an underwater channel.
emPropScene = underwaterChannel(emScene,scene.Platforms)
emPropScene=2×1 cell array
{1x1 sonarEmission}
{1x1 sonarEmission}
Convert the emission to the body frame of the second platform.
emBodyRx = emissionsInBody(emPropScene, platRx); disp(emBodyRx(1))
{1x1 sonarEmission}
Input Arguments
emscene
— Emissions in scenario coordinates
emission object
Emissions in scenario coordinates, specified as a cell array of radarEmission
or sonarEmission
emission objects.
bodyframe
— Body frame
structure | Platform
object
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
embody
— Emissions in body coordinates
emission object
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.
Select a Web Site
Choose a web site to get translated content where available and see local events and offers. Based on your location, we recommend that you select: .
You can also select a web site from the following list
How to Get Best Site Performance
Select the China site (in Chinese or English) for best site performance. Other MathWorks country sites are not optimized for visits from your location.
Americas
- 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)
Asia Pacific
- Australia (English)
- India (English)
- New Zealand (English)
- 中国
- 日本Japanese (日本語)
- 한국Korean (한국어)