Main Content

transmitter

Add transmitter to satellite scenario

Description

transmitter(parent) adds a default Transmitter object to the parent which can be a Satellite, GroundStation or Gimbal.

example

transmitter(parent,Name,Value) specifies options using one or more name-value arguments. For example, 'MountingAngle',[20; 35; 10] sets the yaw, pitch, and roll angles of the transmitter to 20, 35, and 10 degrees, respectively.

tx = transmitter(___) returns a handle to the added transmitter. Specify any input argument combination from previous syntaxes.

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 =

  0x8 empty table

Visualize the link using the Satellite Scenario Viewer.

play(sc);

Input Arguments

collapse all

Element of scenario to which the transmitter is added, specified as a Satellite, GroundStation, or Gimbal object.

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: 'MountingAngle',[20; 35; 10] sets the yaw, pitch, and roll angles of the transmitter to 20, 35, and 10 degrees, respectively.

You can set this property only when calling transmitter. After you call transmitter, this property is read-only.

transmitter name, specified as a comma-separated pair consisting of 'Name' and a string scalar, string vector, character vector or a cell array of character vectors.

  • If only one transmitter is added, specify Name as a string scalar or a character vector.

  • If multiple transmitters are added, specify Name as a string vector or a cell array of character vectors. The number of elements in the string vector or cell array must be equal to the number of satellites being added.

In the default value, idx is the count of the transmitter added by the transmitter object function. If another transmitter of the same name exists, a suffix _idx2 is added, where idx2 is an integer that is incremented by 1 starting from 1 until the name duplication is resolved.

Data Types: char | string

Mounting location with respect to the parent object, specified as a three-element row vector of positive numbers in meters. The position vector is specified in the body frame of the input parent.

Mounting orientation with respect to parent object, specified as a three-element row vector of positive numbers in degrees. The elements of the vector correspond to yaw, pitch, and roll in that order. Yaw, pitch, and roll are positive rotations about the parent's z - axis, intermediate y - axis and intermediate x - axis of the parent.

Example: [0; 30; 60]

Antenna object associated with the transmitter, specified as an antenna object. 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 m and an aperture efficiency of 0.65.

Total loss in the transmitter, specified as a real positive scalar. Units are in dB.

Transmitter frequency, specified as a positive scalar. Units are in Hz.

Bit rate of the transmitter, specified as a real positive scalar. Units are in Mbps.

Power of the high power amplifier, specified as a real positive scalar. Units are in dbW.

Output Arguments

collapse all

Transmitter attached to parent, returned as a Transmitter object.

Introduced in R2021a