Link
Description
The Link
object defines a link analysis object belonging
to Transmitter
.
Creation
You can create a Link
object using the link
object
function of the Transmitter
or
Receiver
objects.
Properties
Sequence
— Transmitter or receiver ID
vector of positive numbers
You can set this property only when calling Link. After you call Link, this property is read-only.
Transmitter or receiver ID, specified as a vector of positive numbers.
LineWidth
— Visual width of link line
1
(default) | scalar in the range (0 10]
Visual width of link line in pixels, specified as a scalar in the range (0 10].
The line width cannot be thinner than the width of a pixel. If you set the line width to a value that is less than the width of a pixel on your system, the line displays as one pixel wide.
LineColor
— Color of link line
[0 1 0]
(default) | RGB triplet
| string scalar of color name
| character vector of color name
Color of the link line, specified as an RGB triplet, a hexadecimal color code, a color name, or a short name.
For a custom color, specify an RGB triplet or a hexadecimal color code.
An RGB triplet is a three-element row vector whose elements specify the intensities of the red, green, and blue components of the color. The intensities must be in the range
[0,1]
, for example,[0.4 0.6 0.7]
.A hexadecimal color code is a string scalar or character vector that starts with a hash symbol (
#
) followed by three or six hexadecimal digits, which can range from0
toF
. The values are not case sensitive. Therefore, the color codes"#FF8800"
,"#ff8800"
,"#F80"
, and"#f80"
are equivalent.
Alternatively, you can specify some common colors by name. This table lists the named color options, the equivalent RGB triplets, and hexadecimal color codes.
Color Name | Short Name | RGB Triplet | Hexadecimal Color Code | Appearance |
---|---|---|---|---|
"red" | "r" | [1 0 0] | "#FF0000" | |
"green" | "g" | [0 1 0] | "#00FF00" | |
"blue" | "b" | [0 0 1] | "#0000FF" | |
"cyan"
| "c" | [0 1 1] | "#00FFFF" | |
"magenta" | "m" | [1 0 1] | "#FF00FF" | |
"yellow" | "y" | [1 1 0] | "#FFFF00" | |
"black" | "k" | [0 0 0] | "#000000" | |
"white" | "w" | [1 1 1] | "#FFFFFF" | |
"none" | Not applicable | Not applicable | Not applicable | No color |
Here are the RGB triplets and hexadecimal color codes for the default colors MATLAB® uses in many types of plots.
RGB Triplet | Hexadecimal Color Code | Appearance |
---|---|---|
[0 0.4470 0.7410] | "#0072BD" | |
[0.8500 0.3250 0.0980] | "#D95319" | |
[0.9290 0.6940 0.1250] | "#EDB120" | |
[0.4940 0.1840 0.5560] | "#7E2F8E" | |
[0.4660 0.6740 0.1880] | "#77AC30" | |
[0.3010 0.7450 0.9330] | "#4DBEEE" | |
[0.6350 0.0780 0.1840] | "#A2142F" |
Example: 'blue'
Example: [0 0 1]
Example: '#0000FF'
Object Functions
ebno | Eb/No at final node of link |
linkPercentage | Percentage of time when link between first and last node in link analysis is closed |
linkIntervals | Intervals during which link is closed |
linkStatus | Status of link closure between first and last node |
show | Show object in satellite scenario viewer |
sigstrength | Calculate received signal strength at last node of link |
hide | Hide satellite scenario entity from viewer |
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] 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
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]
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:21:00 25-Nov-2020 00:40:00 1140 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);
Version History
Introduced in R2021aR2022b: sigstrength object function added to the object
You can now compute the received signal strength at the last node of the link using
sigstrength
object function.
Open Example
You have a modified version of this example. Do you want to open this example with your edits?
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)