Main Content

link

Add link analysis objects to transmitter

Description

example

link(obj1,...,objN) adds Link objects defined by obj1, obj2, and so on..

lnk = link(___) returns a handle to the added Link object.

Examples

collapse all

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
           Viewers: [0x0 matlabshared.satellitescenario.Viewer]
        Satellites: [1x0 matlabshared.satellitescenario.Satellite]
    GroundStations: [1x0 matlabshared.satellitescenario.GroundStation]
          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 a transmitter to the satellite.

frequency = 27e9;                                                                             % Hz
power = 20;                                                                                   % dBW
bitRate = 20;                                                                                 % Mbps
systemLoss = 3;                                                                               % dB
txSat = transmitter(sat,"Name","Satellite Transmitter","Frequency",frequency,"power",power,...
        "BitRate",bitRate,"SystemLoss",systemLoss)
txSat = 
  Transmitter with properties:

                Name:  Satellite Transmitter
                  ID:  2
    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]

Add a receiver to the satellite.

gainToNoiseTemperatureRatio = 5;                                                                              % dB/K
systemLoss = 3;                                                                                               % dB
rxSat = receiver(sat,"Name","Satellite Receiver","GainToNoiseTemperatureRatio",gainToNoiseTemperatureRatio,...
        "SystemLoss",systemLoss)
rxSat = 
  Receiver with properties:

                           Name:  Satellite Receiver
                             ID:  3
               MountingLocation:  [0; 0; 0] meters
                 MountingAngles:  [0; 0; 0] degrees
                        Antenna:  [1x1 satcom.satellitescenario.GaussianAntenna]
                     SystemLoss:  3 decibels
    GainToNoiseTemperatureRatio:  5 decibels/Kelvin
                   RequiredEbNo:  10 decibels

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");

Add gimbals to the ground stations. These gimbals enable you to steer the ground station antennas to track the satellite.

mountingLocation = [0; 0; -5];                                                              % meters
mountingAngles = [0; 180; 0];                                                               % degrees
gimbalGs1 = gimbal(gs1,"MountingLocation",mountingLocation,"MountingAngles",mountingAngles);
gimbalGs2 = gimbal(gs2,"MountingLocation",mountingLocation,"MountingAngles",mountingAngles);

Track the satellite using the gimbals.

pointAt(gimbalGs1,sat);
pointAt(gimbalGs2,sat);

Add a transmitter to gimbal gimbalGs1.

frequency = 30e9;                                                                             % Hz
power = 40;                                                                                   % dBW
bitRate = 20;                                                                                 % Mbps
txGs1 = transmitter(gimbalGs1,"Name","Ground Stationn 1 Transmitter","Frequency",frequency,...
        "Power",power,"BitRate",bitRate);

Add a receiver to gimbal gimbalGs2.

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);

Add link analysis to transmitter txGs1.

lnk = link(txGs1,rxSat,txSat,rxGs2)
lnk = 
  Link with properties:

    Sequence:  [8 3 2 9]
    LineWidth:  1
    LineColor:  [0 1 0]

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 Stationn 1 Transmitter"    "Ground Station 2 Receiver"          1           25-Nov-2020 00:26:00    25-Nov-2020 00:40:00      840          NaN          NaN   
    "Ground Stationn 1 Transmitter"    "Ground Station 2 Receiver"          2           25-Nov-2020 03:24:00    25-Nov-2020 03:36:00      720          NaN          NaN   
    "Ground Stationn 1 Transmitter"    "Ground Station 2 Receiver"          3           25-Nov-2020 06:20:00    25-Nov-2020 06:36:00      960          NaN          NaN   
    "Ground Stationn 1 Transmitter"    "Ground Station 2 Receiver"          4           25-Nov-2020 22:25:00    25-Nov-2020 22:38:00      780          NaN          NaN   

Visualize the link using the Satellite Scenario Viewer.

play(sc);

Input Arguments

collapse all

Transmitter or Receiver object, specified as separate arguments where the obj1 must be a Transmitter object and any following arguments can be Transmitter or Receiver objects. These arguments specify the Sequence of the link. These objects must belong to the same satelliteScenario object. The function adds the link analysis object to the Link property of obj1.

Name-Value Arguments

Specify optional comma-separated pairs of Name,Value arguments. Name is the argument name and Value is the corresponding value. Name must appear inside quotes. You can specify several name and value pair arguments in any order as Name1,Value1,...,NameN,ValueN.

Example: 'LineWidth',2.5 sets the line width of the field of view to 2.5 pixels.

Satellite scenario viewer, specified as a scalar, row vector, or array of satelliteScenarioViewer objects.

Output Arguments

collapse all

Link analysis between input objects, returned as a row vector of Link objects.

Introduced in R2021a