Description
Provides access to the properties and methods defining an Transmitter object.
Object Model
Public Methods
Public Properties
Example
Compute a link budget for a Transmtiter and Receiver pair, using simple models
[C#] | Copy Code |
---|
IAgStkObject xmtrAsStkObject = geoTransmitter as IAgStkObject;
IAgStkObject rcvrAsStkObject = facilityReceiver as IAgStkObject;
geoTransmitter.SetModel("Simple Transmitter Model");
IAgTransmitterModelSimple simpleTrans = geoTransmitter.Model as IAgTransmitterModelSimple;
simpleTrans.Frequency = 3.2;
simpleTrans.Eirp = 60.0;
facilityReceiver.SetModel("Simple Receiver Model");
IAgReceiverModelSimple simpleRcvr = facilityReceiver.Model as IAgReceiverModelSimple;
simpleRcvr.GOverT = 60.0;
IAgStkAccess linkAccess = xmtrAsStkObject.GetAccessToObject(rcvrAsStkObject);
linkAccess.ComputeAccess();
IAgIntervalCollection accessIntervals = linkAccess.ComputedAccessIntervalTimes;
Array dataPrvElements = new object[] { "Time", "Eb/No", "BER" };
IAgDataPrvTimeVar dp = linkAccess.DataProviders["Link Information"] as IAgDataPrvTimeVar;
for (int index0 = 0; index0 < accessIntervals.Count; ++index0)
{
object startTime = null, stopTime = null;
accessIntervals.GetInterval(index0, out startTime, out stopTime);
IAgDrResult result = dp.ExecElements(startTime, stopTime, 60, ref dataPrvElements);
Array timeValues = result.DataSets[0].GetValues();
Array ebno = result.DataSets[1].GetValues();
Array ber = result.DataSets[2].GetValues();
for (int index1 = 0; index1 < timeValues.GetLength(0); ++index1)
{
string time = (string)timeValues.GetValue(index1);
double ebnoVal = (double)ebno.GetValue(index1);
double berVal = (double)ber.GetValue(index1);
Console.WriteLine("{0}: Eb/No={1} BER={2}", time, ebnoVal, berVal);
}
Console.WriteLine();
}
|
|
Compute a link budget for a Transmtiter and Receiver pair, using complex models
[C#] | Copy Code |
---|
IAgStkObject xmtrAsStkObject = geoTransmitter as IAgStkObject;
IAgStkObject rcvrAsStkObject = facilityReceiver as IAgStkObject;
scenarioRFEnv.PropagationChannel.EnableRainLoss = true;
geoTransmitter.SetModel("Complex Transmitter Model");
IAgTransmitterModelComplex complexTrans = geoTransmitter.Model as IAgTransmitterModelComplex;
complexTrans.Frequency = 3.2;
complexTrans.Power = 50.0;
complexTrans.AntennaControl.SetEmbeddedModel("Helix");
IAgAntennaModelHelix helix = complexTrans.AntennaControl.EmbeddedModel as IAgAntennaModelHelix;
helix.NumberOfTurns = 30.0;
complexTrans.AntennaControl.EmbeddedModelOrientation.AssignAzEl(287.2, 83.4, AgEAzElAboutBoresight.eAzElAboutBoresightRotate);
facilityReceiver.SetModel("Complex Receiver Model");
IAgReceiverModelComplex complexRcvr = facilityReceiver.Model as IAgReceiverModelComplex;
complexRcvr.AntennaControl.ReferenceType = AgEAntennaControlRefType.eAntennaControlRefTypeLink;
complexRcvr.AntennaControl.LinkedAntennaObject = "Antenna/FacilityDish";
complexRcvr.UseRain = true;
complexRcvr.RainOutagePercent = 0.001;
complexRcvr.SystemNoiseTemperature.ComputeType = AgENoiseTempComputeType.eNoiseTempComputeTypeCalculate;
complexRcvr.SystemNoiseTemperature.AntennaNoiseTemperature.ComputeType = AgENoiseTempComputeType.eNoiseTempComputeTypeCalculate;
complexRcvr.SystemNoiseTemperature.AntennaNoiseTemperature.UseRain = true;
facilityDish.Orientation.AssignAzEl(202.6, 41.2, AgEAzElAboutBoresight.eAzElAboutBoresightRotate);
facilityDish.SetModel("Parabolic");
facilityDish.Model.DesignFrequency = 3.2;
IAgAntennaModelParabolic parabolic = facilityDish.Model as IAgAntennaModelParabolic;
parabolic.InputType = AgEAntennaModelInputType.eAntennaModelInputTypeDiameter;
parabolic.Diameter = 5.0;
IAgStkAccess linkAccess = xmtrAsStkObject.GetAccessToObject(rcvrAsStkObject);
linkAccess.ComputeAccess();
IAgIntervalCollection accessIntervals = linkAccess.ComputedAccessIntervalTimes;
Array dataPrvElements = new object[] { "Time", "Xmtr Gain", "Rcvr Gain", "Eb/No", "BER" };
IAgDataPrvTimeVar dp = linkAccess.DataProviders["Link Information"] as IAgDataPrvTimeVar;
for (int index0 = 0; index0 < accessIntervals.Count; ++index0)
{
object startTime = null, stopTime = null;
accessIntervals.GetInterval(index0, out startTime, out stopTime);
IAgDrResult result = dp.ExecElements(startTime, stopTime, 60, ref dataPrvElements);
Array timeValues = result.DataSets[0].GetValues();
Array xmtrGain = result.DataSets[1].GetValues();
Array rcvrGain = result.DataSets[2].GetValues();
Array ebno = result.DataSets[3].GetValues();
Array ber = result.DataSets[4].GetValues();
for (int index1 = 0; index1 < timeValues.GetLength(0); ++index1)
{
string time = (string)timeValues.GetValue(index1);
double xmtrGainVal = (double)xmtrGain.GetValue(index1);
double rcvrGainVal = (double)rcvrGain.GetValue(index1);
double ebnoVal = (double)ebno.GetValue(index1);
double berVal = (double)ber.GetValue(index1);
Console.WriteLine("{0}: Xmtr Gain = {1} Rcvr Gain = {2} Eb/No={3} BER={4}", time, xmtrGainVal, rcvrGainVal, ebnoVal, berVal);
}
Console.WriteLine();
}
|
|
Compute a link budget for a Transmtiter and Receiver pair, using simple models
[Visual Basic .NET] | Copy Code |
---|
Dim xmtrAsStkObject As IAgStkObject = TryCast(geoTransmitter, IAgStkObject) Dim rcvrAsStkObject As IAgStkObject = TryCast(facilityReceiver, IAgStkObject)
geoTransmitter.SetModel("Simple Transmitter Model") Dim simpleTrans As IAgTransmitterModelSimple = TryCast(geoTransmitter.Model, IAgTransmitterModelSimple)
simpleTrans.Frequency = 3.2
simpleTrans.Eirp = 60
facilityReceiver.SetModel("Simple Receiver Model") Dim simpleRcvr As IAgReceiverModelSimple = TryCast(facilityReceiver.Model, IAgReceiverModelSimple)
simpleRcvr.GOverT = 60
Dim linkAccess As IAgStkAccess = xmtrAsStkObject.GetAccessToObject(rcvrAsStkObject)
linkAccess.ComputeAccess()
Dim accessIntervals As IAgIntervalCollection = linkAccess.ComputedAccessIntervalTimes
Dim dataPrvElements As Array = New Object() {"Time", "Eb/No", "BER"} accessIntervals.GetInterval(index0, startTime, stopTime) Dim result As IAgDrResult = dp.ExecElements(startTime, stopTime, 60, dataPrvElements)
|
|
Compute a link budget for a Transmtiter and Receiver pair, using complex models
[Visual Basic .NET] | Copy Code |
---|
Dim xmtrAsStkObject As IAgStkObject = TryCast(geoTransmitter, IAgStkObject) Dim rcvrAsStkObject As IAgStkObject = TryCast(facilityReceiver, IAgStkObject)
scenarioRFEnv.PropagationChannel.EnableRainLoss = True
geoTransmitter.SetModel("Complex Transmitter Model") Dim complexTrans As IAgTransmitterModelComplex = TryCast(geoTransmitter.Model, IAgTransmitterModelComplex)
complexTrans.Frequency = 3.2
complexTrans.Power = 50
complexTrans.AntennaControl.SetEmbeddedModel("Helix")
Dim helix As IAgAntennaModelHelix = TryCast(complexTrans.AntennaControl.EmbeddedModel, IAgAntennaModelHelix) helix.NumberOfTurns = 30
complexTrans.AntennaControl.EmbeddedModelOrientation.AssignAzEl(287.2, 83.4, AgEAzElAboutBoresight.eAzElAboutBoresightRotate)
facilityReceiver.SetModel("Complex Receiver Model") Dim complexRcvr As IAgReceiverModelComplex = TryCast(facilityReceiver.Model, IAgReceiverModelComplex)
complexRcvr.AntennaControl.ReferenceType = AgEAntennaControlRefType.eAntennaControlRefTypeLink complexRcvr.AntennaControl.LinkedAntennaObject = "Antenna/FacilityDish"
complexRcvr.UseRain = True complexRcvr.RainOutagePercent = 0.001
complexRcvr.SystemNoiseTemperature.ComputeType = AgENoiseTempComputeType.eNoiseTempComputeTypeCalculate
complexRcvr.SystemNoiseTemperature.AntennaNoiseTemperature.ComputeType = AgENoiseTempComputeType.eNoiseTempComputeTypeCalculate complexRcvr.SystemNoiseTemperature.AntennaNoiseTemperature.UseRain = True
facilityDish.Orientation.AssignAzEl(202.6, 41.2, AgEAzElAboutBoresight.eAzElAboutBoresightRotate)
facilityDish.SetModel("Parabolic")
facilityDish.Model.DesignFrequency = 3.2
Dim parabolic As IAgAntennaModelParabolic = TryCast(facilityDish.Model, IAgAntennaModelParabolic) parabolic.InputType = AgEAntennaModelInputType.eAntennaModelInputTypeDiameter parabolic.Diameter = 5
Dim linkAccess As IAgStkAccess = xmtrAsStkObject.GetAccessToObject(rcvrAsStkObject)
linkAccess.ComputeAccess()
Dim accessIntervals As IAgIntervalCollection = linkAccess.ComputedAccessIntervalTimes
Dim dataPrvElements As Array = New Object() {"Time", "Xmtr Gain", "Rcvr Gain", "Eb/No", "BER"} accessIntervals.GetInterval(index0, startTime, stopTime) Dim result As IAgDrResult = dp.ExecElements(startTime, stopTime, 60, dataPrvElements)
|
|
Create a New Transmitter Object
[MATLAB] | Copy Code |
---|
% IAgSTKObject satellite: STK object transmitter = satellite.Children.New('eTransmitter', 'MyTransmitter');
|
|
Modify Transmitter Model Type
[MATLAB] | Copy Code |
---|
% IAgTransmitter transmitter: Transmitter object transmitter.SetModel('Complex Transmitter Model'); txModel = transmitter.Model; txModel.Frequency = 14; %GHz txModel.Power = 25; %dBW txModel.DataRate = 15; %Mb/sec
|
|
Modify Transmitter Embedded Antenna
[MATLAB] | Copy Code |
---|
% IAgTransmitter transmitter: Transmitter object txModel = transmitter.Model; antennaControl = txModel.AntennaControl; antennaControl.SetEmbeddedModel('Isotropic'); antennaControl.EmbeddedModel.Efficiency = 85; %Percent
|
|
Modify the Linked Antenna
[MATLAB] | Copy Code |
---|
% IAgTransmitter transmitter: Transmitter object transmitter.SetModel('Complex Transmitter Model') transmitter.Model.AntennaControl.ReferenceType = 'eAntennaControlRefTypeLink'; transmitter.Model.AntennaControl.LinkedAntennaObject = 'Antenna/MyAntenna';
|
|
Modify Transmitter Polarization Properties
[MATLAB] | Copy Code |
---|
% IAgTransmitter transmitter: Transmitter object txModel = transmitter.Model; txModel.EnablePolarization = true; recModel.SetPolarizationType('ePolarizationTypeLinear'); polarization = txModel.Polarization; polarization.ReferenceAxis = 'ePolarizationReferenceAxisY'; polarization.TiltAngle = 15; %deg
|
|
Modify Transmitter Orientation and Position
[MATLAB] | Copy Code |
---|
% IAgTransmitter transmitter: Transmitter object txModel = transmitter.Model; antennaControl = txModel.AntennaControl; antOrientation = antennaControl.EmbeddedModelOrientation; antOrientation.AssignAzEl(0, 90, 1); % 1 represents Rotate About Boresight antOrientation.PositionOffset.X = 0.0; %m antOrientation.PositionOffset.Y = 1; %m antOrientation.PositionOffset.Z = 0.25; %m
|
|
Modify Transmitter Modulator Properties
[MATLAB] | Copy Code |
---|
% IAgTransmitter transmitter: Transmitter object txModel = transmitter.Model; txModel.SetModulator('BPSK'); txModel.Modulator.AutoScaleBandwidth = true;
|
|
Modify Transmitter Filter
[MATLAB] | Copy Code |
---|
% IAgTransmitter transmitter: Transmitter object txModel = transmitter.Model; txModel.EnableFilter = true; txModel.SetFilter('Butterworth'); recFilter = txModel.Filter; recFilter.LowerBandwidthLimit = -20; recFilter.UpperBandwidthLimit = 20; recFilter.CutoffFrequency = 10;
|
|
Transmitter Additonal Gain
[MATLAB] | Copy Code |
---|
% IAgTransmitter transmitter: Transmitter object txModel = transmitter.Model; gain = txModel.PostTransmitGainsLosses.Add(-5); %dB gain.Identifier = 'Example Loss';
|
|
Create a New Transmitter Object
[Python] | Copy Code |
---|
# IAgSTKObject satellite: STK object transmitter = satellite.Children.New(24, 'MyTransmitter') # eTransmitter
|
|
Modify Transmitter Model Type
[Python] | Copy Code |
---|
# IAgTransmitter transmitter: Transmitter object transmitter.SetModel('Complex Transmitter Model') txModel = transmitter.Model txModel.Frequency = 14 # GHz txModel.Power = 25 # dBW txModel.DataRate = 15 # Mb/sec
|
|
Modify Transmitter Embedded Antenna
[Python] | Copy Code |
---|
# IAgTransmitter transmitter: Transmitter object txModel = transmitter.Model antennaControl = txModel.AntennaControl antennaControl.SetEmbeddedModel('Isotropic') antennaControl.EmbeddedModel.Efficiency = 85 # Percent
|
|
Modify Transmitter Polarization Properties
[Python] | Copy Code |
---|
# IAgTransmitter transmitter: Transmitter object txModel = transmitter.Model txModel.EnablePolarization = True recModel.SetPolarizationType(3) # ePolarizationTypeLinear polarization = txModel.Polarization polarization.ReferenceAxis = 1 # ePolarizationReferenceAxisY polarization.TiltAngle = 15 # deg
|
|
Modify Transmitter Orientation and Position
[Python] | Copy Code |
---|
# IAgTransmitter transmitter: Transmitter object txModel = transmitter.Model antennaControl = txModel.AntennaControl antOrientation = antennaControl.EmbeddedModelOrientation antOrientation.AssignAzEl(0, 90, 1) # 1 represents Rotate About Boresight antOrientation.PositionOffset.X = 0.0 # m antOrientation.PositionOffset.Y = 1 # m antOrientation.PositionOffset.Z = 0.25 # m
|
|
Modify Transmitter Modulator Properties
[Python] | Copy Code |
---|
# IAgTransmitter transmitter: Transmitter object txModel = transmitter.Model txModel.SetModulator('BPSK') txModel.Modulator.AutoScaleBandwidth = True
|
|
Modify Transmitter Filter
[Python] | Copy Code |
---|
# IAgTransmitter transmitter: Transmitter object txModel = transmitter.Model txModel.EnableFilter = True txModel.SetFilter('Butterworth') recFilter = txModel.Filter recFilter.LowerBandwidthLimit = -20 recFilter.UpperBandwidthLimit = 20 recFilter.CutoffFrequency = 10
|
|
Transmitter Additonal Gain
[Python] | Copy Code |
---|
# IAgTransmitter transmitter: Transmitter object txModel = transmitter.Model gain = txModel.PostTransmitGainsLosses.Add(-5) # dB gain.Identifier = 'Example Loss'
|
|
CoClasses that Implement IAgTransmitter