Receiver
Description
The Receiver
object defines a receiver object function
belonging to the satellite scenario.
For an illustration of the signal power and various losses encountered at a receiver, see Algorithms.
Creation
You can create Receiver
object using the receiver
object
function of the Satellite
, GroundStation
,
Platform
, or
Gimbal
object.
Properties
Name
— Receiver name
"Receiver idx"
(default) | string scalar | string vector | character vector | cell array of character vectors
You can set this property only when calling the receiver
function. After you call the receiver
function, this property is
read-only.
Receiver name, specified as a name-value argument consisting of
'Name'
and a string scalar, string vector, character vector, or a
cell array of character vectors.
If you are adding only one receiver, specify
Name
as a string scalar or a character vector.If you are adding multiple receivers, specify
Name
as a string scalar, character vector, string vector, or a cell array of character vectors. All receivers that you add as a string scalar or a character vector are assigned the same specified name. The number of elements in the string vector or cell array of character vectors must equal the number of receivers that you are adding. Each receiver is assigned the corresponding name from the vector or cell array.
In the default value, idx is the ID assigned by the satellite scenario.
Data Types: char
| string
ID
— Receiver ID assigned by simulator
real positive scalar
This property is set internally by the simulator and is read-only.
Receiver ID assigned by the simulator, specified as a positive scalar.
MountingLocation
— Mounting location with respect to parent
[0; 0; 0]
(default) | three-element vector | matrix
Mounting location with respect to the parent object in meters, specified as a
three-element vector or a matrix. The position vector is specified in the body frame of
the input parent
.
If you are adding one receiver,
MountingLocation
is a three-element vector. The elements specify the x, y, and z components of the Cartesian coordinates in the body frame of receiver.If you are adding multiple receivers,
MountingLocation
can be a three-element vector or a matrix. When specified as a vector, the same set of mounting locations are assigned to all specified receivers. When specified as a matrix,MountingLocation
must contain three rows and the same number of columns as the receivers. The columns correspond to the mounting location of each specified receiver and the rows correspond to the mounting location coordinates in the parent body frame.
When the AutoSimulate
property of the satellite scenario is
false
, you can modify the MountingLocation
property only when SimulationStatus
is NotStarted
. You can use the
restart
function to
reset SimulationStatus
to NotStarted
, but doing
so erases the simulation data.
Data Types: double
MountingAngles
— Mounting orientation with respect to parent object
[0; 0; 0]
(default) | three-element row vector of positive numbers | matrix
Mounting orientation with respect to parent object in degrees, specified as a three-element row vector of positive numbers. The elements of the vector correspond to yaw, pitch, and roll, in that order. Yaw, pitch, and roll are positive rotations about the z-axis, intermediate y-axis, and intermediate x-axis of the parent.
If you are adding one receiver, the
MountingAngles
property is a three-element vector.If you are adding multiple receivers the
MountingAngles
property can be a three-element vector or a matrix. When specified as a vector, the same set of mounting angles are assigned to all specified receivers. When specified as a matrix,MountingAngles
must contain three rows and the same number of columns as the receivers. The columns correspond to the mounting angles of each specified receiver and the rows correspond to the yaw, pitch, and roll angles in the parent body frame.
When the AutoSimulate
property of the satellite scenario is
false
, you can modify the MountingAngles
property only when SimulationStatus
is NotStarted
. You can use the
restart
function to
reset SimulationStatus
to NotStarted
, but doing
so erases the simulation data.
Example: [0; 30; 60]
Data Types: double
Antenna
— Antenna object associated with Receiver
scalar | vector
Antenna
object associated with the receiver, specified as
either a scalar or a vector. This object can be the default
gaussianAntenna
object, or one from the Antenna Toolbox or Phased
Array System Toolbox. The default Gaussian antenna has a dish diameter of 1 meter and an
aperture efficiency of 0.65.
Antenna can be specified in receiver as a name-value argument consisting of
'Antenna'
and a scalar, antenna or phased array objects.
If you are adding only one receiver,
Antenna
must be a scalar.If you are adding multiple receivers,
Antenna
as a vector. The same antenna is assigned to all receivers.
SystemLoss
— System loss in receiver
5
(default) | scalar | vector
System loss in dB, specified as a scalar or a vector. SystemLoss
must be
greater than or equal to PreReceiverLoss
.
System loss can be specified in receiver
function as a name-value
argument consisting of 'SystemLoss'
and a scalar, or a vector.
If you are adding only one receiver,
SystemLoss
is a scalar.If you are adding multiple receivers,
SystemLoss
is a scalar or a vector. WhenSystemLoss
is a scalar, the sameSystemLoss
is assigned to all receivers. WhenSystemLoss
is a vector, its length must equal the number of receivers and each element ofSystemLoss
is assigned to the corresponding receivers in the parent.
If you specify PreReceiverLoss
property as a name value argument in receiver
function , the default value is the greater of 5 dB and the specified PreReceiverLoss
value.
When the AutoSimulate
property of the satellite scenario is
false
, you can modify the SystemLoss
value
while SimulationStatus
is NotStarted
or
InProgress
.
PreReceiverLoss
— Pre-receiver loss
3 (default) | scalar | vector
Pre-receiver loss in dB, specified as a scalar or a vector. This is the total loss before the
receiver input in the receiver system, such as feeder loss, radome loss, and loss due to
polarization mismatch. PreReceiverLoss
must be less than or equal
to SystemLoss
.
Pre-receiver loss can be specified in receiver
function as a name-value
pair consisting of 'PreReceiverLoss'
and a scalar, or a vector.
If you are adding only one receiver,
PreReceiverLoss
is a scalar.If you are adding multiple receivers,
PreReceiverLoss
is a scalar or a vector. WhenPreReceiverLoss
is a scalar, the samePreReceiverLoss
is assigned to all receivers. WhenPreReceiverLoss
is a vector, its length must equal the number of receivers and each element ofPreReceiverLoss
is assigned to the corresponding receivers in the parent.
If you specify SystemLoss
property as a name value argument in
receiver
function , the default value is the lesser of 3 dB and
the specified SystemLoss
value.
When the AutoSimulate
property of the satellite scenario is
false
, you can modify the PreReceiverLoss
value while SimulationStatus
is NotStarted
or
InProgress
.
GainToNoiseTemperatureRatio
— Maximum antenna gain to manufacturer specified noise temperature ratio
3
(default) | scalar | vector
Maximum antenna gain to manufacturer specified noise temperature ratio in dB per Kelvin,
specified as the name-value argument consisting of
'GainToNoiseTemperatureRatio'
and a scalar or a vector.
If you are adding only one receiver,
GainToNoiseTemperatureRatio
is a scalar.If you are adding multiple receivers,
GainToNoiseTemperatureRatio
is a scalar, or a vector. WhenGainToNoiseTemperatureRatio
is a scalar, the sameGainToNoiseTemperatureRatio
is assigned to all receivers. WhenGainToNoiseTemperatureRatio
is a vector, its length must equal the number of receivers and each element ofGainToNoiseTemperatureRatio
is assigned to the corresponding receiver in the parent.
When the AutoSimulate
property of the satellite scenario is false
, you can modify the
GainToNoiseTemperatureRatio
value while SimulationStatus
is NotStarted
or
InProgress
.
CoordinateAxes
— Coordinate axes triad graphic object
CoordinateAxes
object (default)
You can set this property only when calling coordinateAxes
.
After you call coordinateAxes
,
this property is read-only.
Coordinate axes triad graphic object, specified as CoordinateAxes
object.
RequiredEbNo
— Minimum Eb/No necessary for link closure
10
(default) | scalar | vector
Minimum energy per bit to noise power spectral density ratio (Eb/No) necessary for
link closure in dB, specified as the name-value pair consisting of
'RequiredEbNo'
and a scalar or a vector.
If you are adding only one receiver,
RequiredEbNo
is a scalar.If you are adding multiple receivers,
RequiredEbNo
is a scalar or a vector. WhenRequiredEbNo
is a scalar, the sameRequiredEbNo
is assigned to all receivers. WhenRequiredEbNo
is a vector, its length must equal the number of receivers and each element ofRequiredEbNo
is assigned to the corresponding receiver in the parent.
When the AutoSimulate
property of the satellite scenario is
false
, the RequiredEbNo
property can be
modified while SimulationStatus
is NotStarted
or
InProgress
.
Note
The above properties except ID
can be specified as name-value
arguments in receiver
. The
size of specified name-value pairs determines the number of receivers specified. Refer to
these properties to understand how they must be defined when specifying multiple
receivers.
Object Functions
aer | Calculate azimuth angle, elevation angle, and range of another satellite or ground station in NED frame |
gaussianAntenna | Add Gaussian antennas |
pattern | Plot 3-D radiation pattern of antenna |
pointAt | Point transmitter or receiver at target |
pointAt | Point satellite at target |
coordinateAxes | Visualize coordinate axes triad of satellite scenario assets |
Examples
Determine Times of Availability for Satellite Link Between Two Ground Stations
Create a satellite scenario object.
startTime = datetime(2020,11,25,0,0,0);
stopTime = startTime + days(1);
sampleTime = 60; % seconds
sc = satelliteScenario(startTime,stopTime,sampleTime)
sc = satelliteScenario with properties: StartTime: 25-Nov-2020 StopTime: 26-Nov-2020 SampleTime: 60 AutoSimulate: 1 Satellites: [1×0 matlabshared.satellitescenario.Satellite] GroundStations: [1×0 matlabshared.satellitescenario.GroundStation] Platforms: [1×0 matlabshared.satellitescenario.Platform] Viewers: [0×0 matlabshared.satellitescenario.Viewer] AutoShow: 1
Add a satellite to the scenario.
semiMajorAxis = 10000000; % meters eccentricity = 0; inclination = 60; % degrees rightAscensionOfAscendingNode = 0; % degrees argumentOfPeriapsis = 0; % degrees trueAnomaly = 0; % degrees sat = satellite(sc,semiMajorAxis,eccentricity,inclination,rightAscensionOfAscendingNode, ... argumentOfPeriapsis,trueAnomaly,Name="Satellite");
Add gimbals to the satellite. These gimbals enable the satellite receiver antenna to steer to the first ground station, and its transmitter antenna to steer to the second ground station.
gimbalrxSat = gimbal(sat); gimbaltxSat = gimbal(sat);
Add a receiver to the first gimbal of the satellite.
gainToNoiseTemperatureRatio = 5; % dB/K systemLoss = 3; % dB rxSat = receiver(gimbalrxSat,Name="Satellite Receiver",GainToNoiseTemperatureRatio= ... gainToNoiseTemperatureRatio,SystemLoss=systemLoss)
rxSat = Receiver with properties: Name: Satellite Receiver ID: 4 MountingLocation: [0; 0; 0] meters MountingAngles: [0; 0; 0] degrees Antenna: [1x1 satcom.satellitescenario.GaussianAntenna] SystemLoss: 3 decibels PreReceiverLoss: 3 decibels GainToNoiseTemperatureRatio: 5 decibels/Kelvin RequiredEbNo: 10 decibels CoordinateAxes: [1x1 matlabshared.satellitescenario.CoordinateAxes]
Add a transmitter to the second gimbal of the satellite.
frequency = 27e9; % Hz power = 20; % dBW bitRate = 20; % Mbps systemLoss = 3; % dB txSat = transmitter(gimbaltxSat,Name="Satellite Transmitter",Frequency=frequency, ... power=power,BitRate=bitRate,SystemLoss=systemLoss)
txSat = Transmitter with properties: Name: Satellite Transmitter ID: 5 MountingLocation: [0; 0; 0] meters MountingAngles: [0; 0; 0] degrees Antenna: [1x1 satcom.satellitescenario.GaussianAntenna] SystemLoss: 3 decibels Frequency: 2.7e+10 Hertz BitRate: 20 Mbps Power: 20 decibel-watts Links: [1x0 satcom.satellitescenario.Link] CoordinateAxes: [1x1 matlabshared.satellitescenario.CoordinateAxes]
Specify the antenna specifications of the repeater.
dishDiameter = 0.5; % meters
apertureEfficiency = 0.5;
gaussianAntenna(txSat,DishDiameter=dishDiameter,ApertureEfficiency=apertureEfficiency);
gaussianAntenna(rxSat,DishDiameter=dishDiameter,ApertureEfficiency=apertureEfficiency);
Add two ground stations to the scenario.
gs1 = groundStation(sc,Name="Ground Station 1"); latitude = 52.2294963; % degrees longitude = 0.1487094; % degrees gs2 = groundStation(sc,latitude,longitude,Name="Ground Station 2");
Point gimbals of the satellite towards the two ground stations for the simulation duration.
pointAt(gimbaltxSat,gs2); pointAt(gimbalrxSat,gs1);
Add gimbals to the ground stations. These gimbals enable the ground station antennas to steer towards the satellite.
gimbalgs1 = gimbal(gs1); gimbalgs2 = gimbal(gs2);
Add a transmitter to ground station gs1
.
frequency = 30e9; % Hz power = 40; % dBW bitRate = 20; % Mbps txGs1 = transmitter(gimbalgs1,Name="Ground Station 1 Transmitter",Frequency=frequency, ... Power=power,BitRate=bitRate);
Add a receiver to ground station gs2
.
requiredEbNo = 14; % dB rxGs2 = receiver(gimbalgs2,Name="Ground Station 2 Receiver",RequiredEbNo=requiredEbNo);
Define the antenna specifications of the ground stations.
dishDiameter = 5; % meters
gaussianAntenna(txGs1,DishDiameter=dishDiameter);
gaussianAntenna(rxGs2,DishDiameter=dishDiameter);
Point gimbals of the ground stations towards the satellite for the simulation duration.
pointAt(gimbalgs1,sat); pointAt(gimbalgs2,sat);
Add link analysis to transmitter txGs1
.
lnk = link(txGs1,rxSat,txSat,rxGs2)
lnk = Link with properties: Sequence: [10 4 5 11] LineWidth: 2 LineColor: [0.3922 0.8314 0.0745]
Determine the times when ground station gs1
can send data to ground station gs2
via the satellite.
linkIntervals(lnk)
ans=4×8 table
Source Target IntervalNumber StartTime EndTime Duration StartOrbit EndOrbit
______________________________ ___________________________ ______________ ____________________ ____________________ ________ __________ ________
"Ground Station 1 Transmitter" "Ground Station 2 Receiver" 1 25-Nov-2020 00:20:00 25-Nov-2020 00:40:00 1200 NaN NaN
"Ground Station 1 Transmitter" "Ground Station 2 Receiver" 2 25-Nov-2020 03:19:00 25-Nov-2020 03:36:00 1020 NaN NaN
"Ground Station 1 Transmitter" "Ground Station 2 Receiver" 3 25-Nov-2020 06:15:00 25-Nov-2020 06:36:00 1260 NaN NaN
"Ground Station 1 Transmitter" "Ground Station 2 Receiver" 4 25-Nov-2020 22:20:00 25-Nov-2020 22:38:00 1080 NaN NaN
Visualize the link by using the Satellite Scenario Viewer.
play(sc);
Algorithms
This diagram shows the received power and the signal losses experienced by a receiver.
Version History
Introduced in R2021aR2022b: PreReceiverLoss property added to the object
You can now specify the pre-receiver loss in dB using the
PreReceiverLoss
property.
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 (한국어)